summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:26 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:26 +0000
commitc4e8a3222648fcf22ca207f1815ebbf7cd144eeb (patch)
tree93d5c6aa93d9987680dd1adad5685e2ad698f223 /epan/dissectors/asn1
parentAdding upstream version 4.2.6. (diff)
downloadwireshark-c4e8a3222648fcf22ca207f1815ebbf7cd144eeb.tar.xz
wireshark-c4e8a3222648fcf22ca207f1815ebbf7cd144eeb.zip
Adding upstream version 4.4.0.upstream/4.4.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1')
-rw-r--r--epan/dissectors/asn1/HI2Operations/HI2Operations.cnf8
-rw-r--r--epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c12
-rw-r--r--epan/dissectors/asn1/acp133/packet-acp133-template.c7
-rw-r--r--epan/dissectors/asn1/acse/acse.cnf24
-rw-r--r--epan/dissectors/asn1/acse/packet-acse-template.c41
-rw-r--r--epan/dissectors/asn1/ain/ain.cnf14
-rw-r--r--epan/dissectors/asn1/ain/packet-ain-template.c51
-rw-r--r--epan/dissectors/asn1/ansi_map/ansi_map.asn106
-rw-r--r--epan/dissectors/asn1/ansi_map/ansi_map.cnf2
-rw-r--r--epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c944
-rw-r--r--epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h4
-rw-r--r--epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf12
-rw-r--r--epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c105
-rw-r--r--epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h20
-rw-r--r--epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c38
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf24
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c66
-rw-r--r--epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf36
-rw-r--r--epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c152
-rw-r--r--epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h12
-rw-r--r--epan/dissectors/asn1/c1222/c1222.cnf6
-rw-r--r--epan/dissectors/asn1/c1222/packet-c1222-template.c485
-rw-r--r--epan/dissectors/asn1/camel/camel.cnf84
-rw-r--r--epan/dissectors/asn1/camel/packet-camel-template.c264
-rw-r--r--epan/dissectors/asn1/camel/packet-camel-template.h24
-rw-r--r--epan/dissectors/asn1/cbrs-oids/packet-cbrs-oids-template.c5
-rw-r--r--epan/dissectors/asn1/cdt/cdt.cnf4
-rw-r--r--epan/dissectors/asn1/cdt/packet-cdt-template.c16
-rw-r--r--epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c10
-rw-r--r--epan/dissectors/asn1/cmip/cmip.cnf86
-rw-r--r--epan/dissectors/asn1/cmip/packet-cmip-template.c30
-rw-r--r--epan/dissectors/asn1/cmp/cmp.cnf8
-rw-r--r--epan/dissectors/asn1/cmp/packet-cmp-template.c61
-rw-r--r--epan/dissectors/asn1/cms/cms.cnf4
-rw-r--r--epan/dissectors/asn1/cms/packet-cms-template.c19
-rw-r--r--epan/dissectors/asn1/credssp/credssp.cnf10
-rw-r--r--epan/dissectors/asn1/credssp/packet-credssp-template.c55
-rw-r--r--epan/dissectors/asn1/crmf/packet-crmf-template.c7
-rw-r--r--epan/dissectors/asn1/dap/dap.cnf18
-rw-r--r--epan/dissectors/asn1/dap/packet-dap-template.c11
-rw-r--r--epan/dissectors/asn1/disp/disp.cnf14
-rw-r--r--epan/dissectors/asn1/disp/packet-disp-template.c27
-rw-r--r--epan/dissectors/asn1/dop/dop.cnf6
-rw-r--r--epan/dissectors/asn1/dop/packet-dop-template.c29
-rw-r--r--epan/dissectors/asn1/dsp/packet-dsp-template.c21
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Constants.asn44
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-IEs.asn415
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn80
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn13
-rw-r--r--epan/dissectors/asn1/e1ap/e1ap.cnf616
-rw-r--r--epan/dissectors/asn1/e1ap/packet-e1ap-template.c108
-rw-r--r--epan/dissectors/asn1/e1ap/packet-e1ap-template.h8
-rw-r--r--epan/dissectors/asn1/e2ap/e2ap.cnf130
-rw-r--r--epan/dissectors/asn1/e2ap/packet-e2ap-template.c450
-rw-r--r--epan/dissectors/asn1/ess/ess.cnf2
-rw-r--r--epan/dissectors/asn1/ess/packet-ess-template.c27
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-Constants.asn224
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-IEs.asn1914
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn929
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn171
-rw-r--r--epan/dissectors/asn1/f1ap/f1ap.cnf719
-rw-r--r--epan/dissectors/asn1/f1ap/packet-f1ap-template.c388
-rw-r--r--epan/dissectors/asn1/ftam/ftam.cnf8
-rw-r--r--epan/dissectors/asn1/ftam/packet-ftam-template.c17
-rw-r--r--epan/dissectors/asn1/gdt/packet-gdt-template.c18
-rw-r--r--epan/dissectors/asn1/glow/packet-glow-template.c9
-rw-r--r--epan/dissectors/asn1/goose/goose.cnf24
-rw-r--r--epan/dissectors/asn1/goose/packet-goose-template.c185
-rw-r--r--epan/dissectors/asn1/gprscdr/gprscdr.cnf32
-rw-r--r--epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c27
-rw-r--r--epan/dissectors/asn1/gsm_map/gsm_map.cnf134
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c1118
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h14
-rw-r--r--epan/dissectors/asn1/h225/h225.cnf94
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.c171
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.h26
-rw-r--r--epan/dissectors/asn1/h235/packet-h235-template.c5
-rw-r--r--epan/dissectors/asn1/h245/h245.cnf136
-rw-r--r--epan/dissectors/asn1/h245/packet-h245-template.c95
-rw-r--r--epan/dissectors/asn1/h245/packet-h245-template.h22
-rw-r--r--epan/dissectors/asn1/h248/h248.cnf20
-rw-r--r--epan/dissectors/asn1/h248/packet-h248-template.c301
-rw-r--r--epan/dissectors/asn1/h248/packet-h248-template.h78
-rw-r--r--epan/dissectors/asn1/h282/h282.cnf12
-rw-r--r--epan/dissectors/asn1/h282/packet-h282-template.c7
-rw-r--r--epan/dissectors/asn1/h283/h283.cnf38
-rw-r--r--epan/dissectors/asn1/h283/packet-h283-template.c11
-rw-r--r--epan/dissectors/asn1/h323/packet-h323-template.c11
-rw-r--r--epan/dissectors/asn1/h323/packet-h323-template.h14
-rw-r--r--epan/dissectors/asn1/h450-ros/h450-ros.cnf2
-rw-r--r--epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c13
-rw-r--r--epan/dissectors/asn1/h450/packet-h450-template.c35
-rw-r--r--epan/dissectors/asn1/h460/packet-h460-template.c25
-rw-r--r--epan/dissectors/asn1/h501/h501.cnf4
-rw-r--r--epan/dissectors/asn1/h501/packet-h501-template.c11
-rw-r--r--epan/dissectors/asn1/hnbap/hnbap.cnf12
-rw-r--r--epan/dissectors/asn1/hnbap/packet-hnbap-template.c23
-rw-r--r--epan/dissectors/asn1/idmp/packet-idmp-template.c75
-rw-r--r--epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf18
-rw-r--r--epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c27
-rw-r--r--epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.h2
-rw-r--r--epan/dissectors/asn1/ilp/ilp.cnf8
-rw-r--r--epan/dissectors/asn1/ilp/packet-ilp-template.c15
-rw-r--r--epan/dissectors/asn1/inap/inap.cnf38
-rw-r--r--epan/dissectors/asn1/inap/packet-inap-template.c99
-rw-r--r--epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c41
-rw-r--r--epan/dissectors/asn1/its/CAMv2.asn139
-rw-r--r--epan/dissectors/asn1/its/ETSI-ITS-CDD.asn6312
-rw-r--r--epan/dissectors/asn1/its/ETSI-ITS-CDDv1.asn6468
-rw-r--r--epan/dissectors/asn1/its/ISO19321IVIv2.asn199
-rw-r--r--epan/dissectors/asn1/its/ISO_TS_19321.asn209
-rw-r--r--epan/dissectors/asn1/its/its.cnf82
-rw-r--r--epan/dissectors/asn1/its/packet-its-template.c303
-rw-r--r--epan/dissectors/asn1/its/packet-its-template.h11
-rw-r--r--epan/dissectors/asn1/kerberos/k5.asn72
-rw-r--r--epan/dissectors/asn1/kerberos/kerberos.cnf190
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.c1565
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.h52
-rw-r--r--epan/dissectors/asn1/kpm-v2/kpm-v2.cnf2
-rw-r--r--epan/dissectors/asn1/kpm-v2/packet-kpm-v2-template.c7
-rw-r--r--epan/dissectors/asn1/lcsap/lcsap.cnf35
-rw-r--r--epan/dissectors/asn1/lcsap/packet-lcsap-template.c33
-rw-r--r--epan/dissectors/asn1/ldap/ldap.cnf72
-rw-r--r--epan/dissectors/asn1/ldap/packet-ldap-template.c518
-rw-r--r--epan/dissectors/asn1/ldap/packet-ldap-template.h12
-rw-r--r--epan/dissectors/asn1/lix2/lix2.asn4506
-rw-r--r--epan/dissectors/asn1/lix2/lix2.cnf13
-rw-r--r--epan/dissectors/asn1/lix2/packet-lix2-template.c9
-rw-r--r--epan/dissectors/asn1/lnpdqp/lnpdqp.cnf4
-rw-r--r--epan/dissectors/asn1/lnpdqp/packet-lnpdqp-template.c49
-rw-r--r--epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c5
-rw-r--r--epan/dissectors/asn1/lpp/LPP-Broadcast-Definitions.asn22
-rw-r--r--epan/dissectors/asn1/lpp/LPP-PDU-Definitions.asn1505
-rw-r--r--epan/dissectors/asn1/lpp/lpp.cnf228
-rw-r--r--epan/dissectors/asn1/lpp/packet-lpp-template.c948
-rw-r--r--epan/dissectors/asn1/lpp/packet-lpp-template.h14
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn6
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-Constants.asn8
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-Containers.asn18
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-IEs.asn64
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn18
-rw-r--r--epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn4
-rw-r--r--epan/dissectors/asn1/lppa/lppa.cnf9
-rw-r--r--epan/dissectors/asn1/lppa/packet-lppa-template.c29
-rw-r--r--epan/dissectors/asn1/lppa/packet-lppa-template.h8
-rw-r--r--epan/dissectors/asn1/lppe/lppe.cnf2
-rw-r--r--epan/dissectors/asn1/lppe/packet-lppe-template.c9
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn530
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn7
-rw-r--r--epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn138
-rw-r--r--epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/lte-rrc.cnf720
-rw-r--r--epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c855
-rw-r--r--epan/dissectors/asn1/m2ap/m2ap.cnf6
-rw-r--r--epan/dissectors/asn1/m2ap/packet-m2ap-template.c34
-rw-r--r--epan/dissectors/asn1/m3ap/m3ap.cnf16
-rw-r--r--epan/dissectors/asn1/m3ap/packet-m3ap-template.c44
-rw-r--r--epan/dissectors/asn1/mms/mms.asn483
-rw-r--r--epan/dissectors/asn1/mms/mms.cnf888
-rw-r--r--epan/dissectors/asn1/mms/packet-mms-template.c775
-rw-r--r--epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c49
-rw-r--r--epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c161
-rw-r--r--epan/dissectors/asn1/mudurl/packet-mudurl-template.c5
-rw-r--r--epan/dissectors/asn1/nbap/nbap.cnf235
-rw-r--r--epan/dissectors/asn1/nbap/packet-nbap-template.c278
-rw-r--r--epan/dissectors/asn1/nbap/packet-nbap-template.h4
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-Constants.asn99
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-IEs.asn1221
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn573
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn89
-rw-r--r--epan/dissectors/asn1/ngap/ngap.cnf1301
-rw-r--r--epan/dissectors/asn1/ngap/packet-ngap-template.c659
-rw-r--r--epan/dissectors/asn1/nist-csor/packet-nist-csor-template.c5
-rw-r--r--epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c7
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn153
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn6229
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn10
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn21
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn158
-rw-r--r--epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn227
-rw-r--r--epan/dissectors/asn1/nr-rrc/nr-rrc.cnf604
-rw-r--r--epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c491
-rw-r--r--epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.h2
-rw-r--r--epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/nrppa/NRPPA-Constants.asn72
-rw-r--r--epan/dissectors/asn1/nrppa/NRPPA-Containers.asn2
-rw-r--r--epan/dissectors/asn1/nrppa/NRPPA-IEs.asn597
-rw-r--r--epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn75
-rw-r--r--epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn17
-rw-r--r--epan/dissectors/asn1/nrppa/nrppa.cnf535
-rw-r--r--epan/dissectors/asn1/nrppa/packet-nrppa-template.c28
-rw-r--r--epan/dissectors/asn1/ns_cert_exts/packet-ns_cert_exts-template.c5
-rw-r--r--epan/dissectors/asn1/ocsp/ocsp.cnf8
-rw-r--r--epan/dissectors/asn1/ocsp/packet-ocsp-template.c17
-rw-r--r--epan/dissectors/asn1/p1/p1.cnf68
-rw-r--r--epan/dissectors/asn1/p1/packet-p1-template.c95
-rw-r--r--epan/dissectors/asn1/p1/packet-p1-template.h2
-rw-r--r--epan/dissectors/asn1/p22/p22.cnf4
-rw-r--r--epan/dissectors/asn1/p22/packet-p22-template.c11
-rw-r--r--epan/dissectors/asn1/p7/p7.cnf16
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.c15
-rw-r--r--epan/dissectors/asn1/p772/packet-p772-template.c11
-rw-r--r--epan/dissectors/asn1/pcap/packet-pcap-template.c15
-rw-r--r--epan/dissectors/asn1/pcap/pcap.cnf7
-rw-r--r--epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c5
-rw-r--r--epan/dissectors/asn1/pkcs10/packet-pkcs10-template.c7
-rw-r--r--epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c87
-rw-r--r--epan/dissectors/asn1/pkinit/PKINIT.asn10
-rw-r--r--epan/dissectors/asn1/pkinit/packet-pkinit-template.c10
-rw-r--r--epan/dissectors/asn1/pkinit/pkinit.cnf14
-rw-r--r--epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn56
-rw-r--r--epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c13
-rw-r--r--epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf8
-rw-r--r--epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn20
-rw-r--r--epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c7
-rw-r--r--epan/dissectors/asn1/pkixac/packet-pkixac-template.c7
-rw-r--r--epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c5
-rw-r--r--epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c5
-rw-r--r--epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c15
-rw-r--r--epan/dissectors/asn1/pres/packet-pres-template.c81
-rw-r--r--epan/dissectors/asn1/pres/packet-pres-template.h2
-rw-r--r--epan/dissectors/asn1/pres/pres.cnf2
-rw-r--r--epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c13
-rw-r--r--epan/dissectors/asn1/q932-ros/q932-ros.cnf6
-rw-r--r--epan/dissectors/asn1/q932/packet-q932-template.c55
-rw-r--r--epan/dissectors/asn1/qsig/packet-qsig-template.c81
-rw-r--r--epan/dissectors/asn1/qsig/qsig.cnf2
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-IEs.asn4
-rw-r--r--epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn12
-rw-r--r--epan/dissectors/asn1/ranap/packet-ranap-template.c105
-rw-r--r--epan/dissectors/asn1/ranap/ranap.cnf34
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-Constants.asn14
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-IEs.asn76
-rw-r--r--epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn24
-rw-r--r--epan/dissectors/asn1/rnsap/packet-rnsap-template.c74
-rw-r--r--epan/dissectors/asn1/rnsap/rnsap.cnf22
-rw-r--r--epan/dissectors/asn1/ros/packet-ros-template.c101
-rw-r--r--epan/dissectors/asn1/ros/packet-ros-template.h12
-rw-r--r--epan/dissectors/asn1/ros/ros-err.cnf2
-rw-r--r--epan/dissectors/asn1/ros/ros-inv.cnf2
-rw-r--r--epan/dissectors/asn1/ros/ros-rej.cnf2
-rw-r--r--epan/dissectors/asn1/ros/ros-res.cnf2
-rw-r--r--epan/dissectors/asn1/ros/ros.cnf14
-rw-r--r--epan/dissectors/asn1/rrc/packet-rrc-template.c155
-rw-r--r--epan/dissectors/asn1/rrc/packet-rrc-template.h14
-rw-r--r--epan/dissectors/asn1/rrc/rrc.cnf173
-rw-r--r--epan/dissectors/asn1/rrlp/packet-rrlp-template.c7
-rw-r--r--epan/dissectors/asn1/rtse/packet-rtse-template.c85
-rw-r--r--epan/dissectors/asn1/rtse/packet-rtse-template.h2
-rw-r--r--epan/dissectors/asn1/rtse/rtse.cnf10
-rw-r--r--epan/dissectors/asn1/rua/packet-rua-template.c21
-rw-r--r--epan/dissectors/asn1/rua/rua.cnf5
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Constants.asn11
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-IEs.asn91
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn14
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.c361
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.h10
-rw-r--r--epan/dissectors/asn1/s1ap/s1ap.cnf123
-rw-r--r--epan/dissectors/asn1/sabp/packet-sabp-template.c51
-rw-r--r--epan/dissectors/asn1/sabp/sabp.cnf11
-rw-r--r--epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c53
-rw-r--r--epan/dissectors/asn1/sbc-ap/sbc-ap.cnf8
-rw-r--r--epan/dissectors/asn1/smrse/packet-smrse-template.c41
-rw-r--r--epan/dissectors/asn1/smrse/smrse.cnf12
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c705
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.h41
-rw-r--r--epan/dissectors/asn1/snmp/snmp.cnf32
-rw-r--r--epan/dissectors/asn1/spnego/packet-spnego-template.c214
-rw-r--r--epan/dissectors/asn1/spnego/spnego.asn17
-rw-r--r--epan/dissectors/asn1/spnego/spnego.cnf39
-rw-r--r--epan/dissectors/asn1/sv/packet-sv-template.c87
-rw-r--r--epan/dissectors/asn1/sv/packet-sv-template.h12
-rw-r--r--epan/dissectors/asn1/sv/sv.cnf30
-rw-r--r--epan/dissectors/asn1/t124/packet-t124-template.c47
-rw-r--r--epan/dissectors/asn1/t124/packet-t124-template.h4
-rw-r--r--epan/dissectors/asn1/t124/t124.cnf29
-rw-r--r--epan/dissectors/asn1/t125/packet-t125-template.c37
-rw-r--r--epan/dissectors/asn1/t125/t125.cnf2
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.c137
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.h42
-rw-r--r--epan/dissectors/asn1/t38/t38.cnf56
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.c293
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.h94
-rw-r--r--epan/dissectors/asn1/tcap/tcap.cnf30
-rw-r--r--epan/dissectors/asn1/tcg-cp-oids/packet-tcg-cp-oids-template.c11
-rw-r--r--epan/dissectors/asn1/tetra/packet-tetra-template.c117
-rw-r--r--epan/dissectors/asn1/ulp/packet-ulp-template.c88
-rw-r--r--epan/dissectors/asn1/ulp/ulp.cnf124
-rw-r--r--epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c6
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-Constants.asn21
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-IEs.asn105
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn96
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn30
-rw-r--r--epan/dissectors/asn1/x2ap/packet-x2ap-template.c372
-rw-r--r--epan/dissectors/asn1/x2ap/x2ap.cnf77
-rw-r--r--epan/dissectors/asn1/x509af/packet-x509af-template.c19
-rw-r--r--epan/dissectors/asn1/x509af/x509af.cnf24
-rw-r--r--epan/dissectors/asn1/x509ce/packet-x509ce-template.c35
-rw-r--r--epan/dissectors/asn1/x509ce/x509ce.cnf19
-rw-r--r--epan/dissectors/asn1/x509if/packet-x509if-template.c37
-rw-r--r--epan/dissectors/asn1/x509if/packet-x509if-template.h2
-rw-r--r--epan/dissectors/asn1/x509if/x509if.cnf12
-rw-r--r--epan/dissectors/asn1/x509sat/packet-x509sat-template.c5
-rw-r--r--epan/dissectors/asn1/x509sat/x509sat.cnf14
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-Constants.asn165
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-IEs.asn1580
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn584
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn68
-rw-r--r--epan/dissectors/asn1/xnap/packet-xnap-template.c414
-rw-r--r--epan/dissectors/asn1/xnap/xnap.cnf385
-rw-r--r--epan/dissectors/asn1/z3950/packet-z3950-template.c167
-rw-r--r--epan/dissectors/asn1/z3950/z3950.cnf26
330 files changed, 50180 insertions, 13411 deletions
diff --git a/epan/dissectors/asn1/HI2Operations/HI2Operations.cnf b/epan/dissectors/asn1/HI2Operations/HI2Operations.cnf
index b70a2c7d..db478bb2 100644
--- a/epan/dissectors/asn1/HI2Operations/HI2Operations.cnf
+++ b/epan/dissectors/asn1/HI2Operations/HI2Operations.cnf
@@ -33,12 +33,12 @@ GSMLocation/geoCoordinates/longitude geoCoordinates_longitude
#.FN_HDR UUS1-Content
/* Heuristic test to see if it's our content */
- gint8 tmp_class;
+ int8_t tmp_class;
bool tmp_pc;
- gint32 tmp_tag;
+ int32_t tmp_tag;
int tmp_offset;
- guint length = tvb_captured_length(tvb);
- guint32 tmp_length;
+ unsigned length = tvb_captured_length(tvb);
+ uint32_t tmp_length;
bool tmp_ind;
/* Check for min length */
diff --git a/epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c b/epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c
index 9b82c45f..64e67d62 100644
--- a/epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c
+++ b/epan/dissectors/asn1/HI2Operations/packet-HI2Operations-template.c
@@ -17,6 +17,8 @@
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
+
#include "packet-ber.h"
#include "packet-isup.h"
#include "packet-q931.h"
@@ -29,7 +31,7 @@ void proto_register_HI2Operations(void);
void proto_reg_handoff_HI2Operations(void);
/* Initialize the protocol and registered fields */
-int proto_HI2Operations = -1;
+int proto_HI2Operations;
#include "packet-HI2Operations-hf.c"
/* Initialize the subtree pointers */
@@ -37,6 +39,10 @@ int proto_HI2Operations = -1;
#include "packet-HI2Operations-fn.c"
+static bool
+dissect_UUS1_Content_PDU_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ return dissect_UUS1_Content_PDU(tvb, pinfo, tree, data) > 0;
+}
/*--- proto_register_HI2Operations ----------------------------------------------*/
void proto_register_HI2Operations(void) {
@@ -47,7 +53,7 @@ void proto_register_HI2Operations(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-HI2Operations-ettarr.c"
};
@@ -67,7 +73,7 @@ void proto_register_HI2Operations(void) {
/*--- proto_reg_handoff_HI2Operations -------------------------------------------*/
void proto_reg_handoff_HI2Operations(void) {
- heur_dissector_add("q931_user", dissect_UUS1_Content_PDU, "HI3CCLinkData", "hi3cclinkdata",
+ heur_dissector_add("q931_user", dissect_UUS1_Content_PDU_heur, "HI3CCLinkData", "hi3cclinkdata",
proto_HI2Operations, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/asn1/acp133/packet-acp133-template.c b/epan/dissectors/asn1/acp133/packet-acp133-template.c
index 22d3c385..dfa48271 100644
--- a/epan/dissectors/asn1/acp133/packet-acp133-template.c
+++ b/epan/dissectors/asn1/acp133/packet-acp133-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
#include <epan/oids.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
@@ -33,13 +34,13 @@ void proto_register_acp133(void);
void proto_reg_handoff_acp133(void);
/* Initialize the protocol and registered fields */
-static int proto_acp133 = -1;
+static int proto_acp133;
#include "packet-acp133-hf.c"
/* Initialize the subtree pointers */
-static gint ett_acp133 = -1;
+static int ett_acp133;
#include "packet-acp133-ett.c"
#include "packet-acp133-fn.c"
@@ -55,7 +56,7 @@ void proto_register_acp133(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_acp133,
#include "packet-acp133-ettarr.c"
};
diff --git a/epan/dissectors/asn1/acse/acse.cnf b/epan/dissectors/asn1/acse/acse.cnf
index 8676d687..924f0ae4 100644
--- a/epan/dissectors/asn1/acse/acse.cnf
+++ b/epan/dissectors/asn1/acse/acse.cnf
@@ -48,7 +48,7 @@ PDV-list/presentation-data-values/octet-aligned pDVList_octet_aligned
#.FN_BODY Authentication-value-other/other-mechanism-name
%(DEFAULT_BODY)s
- actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+ 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) {
@@ -59,37 +59,37 @@ PDV-list/presentation-data-values/octet-aligned pDVList_octet_aligned
/*XXX not implemented yet */
#.FN_BODY AARQ-apdu/_untag/aSO-context-name
- offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
+ 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;
+ 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,
+ 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;
+ 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,
+ 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;
+ 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,
+ 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;
+ 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,
+ 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(actx->pinfo->pool, oid);
- actx->external.direct_ref_present = TRUE;
+ actx->external.direct_ref_present = true;
}
if(session)
@@ -100,7 +100,7 @@ PDV-list/presentation-data-values/octet-aligned pDVList_octet_aligned
#.FN_BODY EXTERNALt/_untag/direct-reference
%(DEFAULT_BODY)s
- actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+ 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) {
diff --git a/epan/dissectors/asn1/acse/packet-acse-template.c b/epan/dissectors/asn1/acse/packet-acse-template.c
index d10208ab..07fa6fcc 100644
--- a/epan/dissectors/asn1/acse/packet-acse-template.c
+++ b/epan/dissectors/asn1/acse/packet-acse-template.c
@@ -26,6 +26,7 @@
#include <epan/expert.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -47,46 +48,46 @@ 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;
+int proto_acse;
+int proto_clacse;
#include "packet-acse-hf.c"
-static gint hf_acse_user_data = -1;
+static int hf_acse_user_data;
/* Initialize the subtree pointers */
-static gint ett_acse = -1;
+static int ett_acse;
#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;
+static expert_field ei_acse_dissector_not_available;
+static expert_field ei_acse_malformed;
+static expert_field ei_acse_invalid_oid;
-static dissector_handle_t acse_handle = NULL;
+static dissector_handle_t acse_handle;
/* 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 uint32_t indir_ref=0;
#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;
+ uint32_t ctx_id;
char *oid;
} acse_ctx_oid_t;
-static wmem_map_t *acse_ctx_oid_table = NULL;
+static wmem_map_t *acse_ctx_oid_table;
-static guint
-acse_ctx_oid_hash(gconstpointer k)
+static unsigned
+acse_ctx_oid_hash(const void *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)
+static int
+acse_ctx_oid_equal(const void *k1, const void *k2)
{
acse_ctx_oid_t *aco1=(acse_ctx_oid_t *)k1;
acse_ctx_oid_t *aco2=(acse_ctx_oid_t *)k2;
@@ -94,7 +95,7 @@ acse_ctx_oid_equal(gconstpointer k1, gconstpointer k2)
}
static void
-register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, char *oid)
+register_ctx_id_and_oid(packet_info *pinfo _U_, uint32_t idx, char *oid)
{
acse_ctx_oid_t *aco, *tmpaco;
aco=wmem_new(wmem_file_scope(), acse_ctx_oid_t);
@@ -109,7 +110,7 @@ register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, char *oid)
wmem_map_insert(acse_ctx_oid_table, aco, aco);
}
static char *
-find_oid_by_ctx_id(packet_info *pinfo _U_, guint32 idx)
+find_oid_by_ctx_id(packet_info *pinfo _U_, uint32_t idx)
{
acse_ctx_oid_t aco, *tmpaco;
aco.ctx_id=idx;
@@ -137,7 +138,7 @@ dissect_acse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
char *oid;
struct SESSION_DATA_STRUCTURE* session;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* do we have spdu type from the session dissector? */
if (data == NULL) {
@@ -215,7 +216,7 @@ dissect_acse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
/* 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);
+ 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;
@@ -238,7 +239,7 @@ void proto_register_acse(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_acse,
#include "packet-acse-ettarr.c"
};
diff --git a/epan/dissectors/asn1/ain/ain.cnf b/epan/dissectors/asn1/ain/ain.cnf
index 1ed7ab7e..faf6766f 100644
--- a/epan/dissectors/asn1/ain/ain.cnf
+++ b/epan/dissectors/asn1/ain/ain.cnf
@@ -31,12 +31,12 @@ ERROR.&ParameterType
OPERATION.&ArgumentType
OPERATION.&ResultType
-# This table creates the value_sting to name AIN operation codes and errors
+# This table creates the value_string to name AIN operation codes and errors
# in file packet-ain-table.c which is included in the template file
#
#.TABLE_HDR
/* AIN OPERATIONS */
-const value_string ain_opr_code_strings[] = {
+static const value_string ain_opr_code_strings[] = {
#.TABLE_BODY OPERATION.&operationCode
{ %(&operationCode)-40s, "%(_ident)s" },
#.TABLE_FTR
@@ -109,7 +109,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
# Create a table of opcode and corresponding args and res
#.TABLE11_HDR
typedef struct _ain_op_t {
- gint32 opcode;
+ int32_t opcode;
dissector_t arg_pdu;
dissector_t res_pdu;
} ain_op_t;
@@ -123,7 +123,7 @@ static const ain_op_t ain_op_tab[] = {
#.TABLE11_HDR
typedef struct _ain_err_t {
- gint32 errcode;
+ int32_t errcode;
dissector_t err_pdu;
} ain_err_t;
@@ -199,7 +199,7 @@ static const ain_err_t ain_err_tab[] = {
proto_tree_add_item(subtree, hf_ain_numbering_plan, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(subtree, hf_ain_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9);
+ proto_tree_add_item(subtree, hf_ain_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
#.FN_BODY CarrierFormat VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
@@ -218,7 +218,7 @@ static const ain_err_t ain_err_tab[] = {
proto_tree_add_item(subtree, hf_ain_nr_digits, parameter_tvb, 1, 1, ENC_BIG_ENDIAN);
/* 2nd Digit 1st Digit .. */
- proto_tree_add_item(subtree, hf_ain_carrier_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9);
+ proto_tree_add_item(subtree, hf_ain_carrier_bcd_digits, parameter_tvb, 2, tvb_reported_length_remaining(parameter_tvb, 2), ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
#.FN_BODY AMAslpID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
@@ -231,7 +231,7 @@ static const ain_err_t ain_err_tab[] = {
subtree = proto_item_add_subtree(actx->created_item, ett_ain_amaslpid);
- proto_tree_add_item(subtree, hf_ain_amaslpid, parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb, 0), ENC_BCD_DIGITS_0_9);
+ proto_tree_add_item(subtree, hf_ain_amaslpid, parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb, 0), ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
#.FIELD_ATTR
DisplayInformation/notificationIndicator ABBREV=displayInformation.notificationIndicator
diff --git a/epan/dissectors/asn1/ain/packet-ain-template.c b/epan/dissectors/asn1/ain/packet-ain-template.c
index cf64e68a..f6f90b80 100644
--- a/epan/dissectors/asn1/ain/packet-ain-template.c
+++ b/epan/dissectors/asn1/ain/packet-ain-template.c
@@ -18,6 +18,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-ansi_tcap.h"
@@ -41,41 +42,41 @@ void proto_reg_handoff_ain(void);
/* Initialize the protocol and registered fields */
-static int proto_ain = -1;
+static int proto_ain;
static dissector_handle_t ain_handle;
/* include constants */
#include "packet-ain-val.h"
-static int hf_ain_ext_type_oid = -1;
-static int hf_ain_odd_even_indicator = -1;
-static int hf_ain_nature_of_address = -1;
-static int hf_ain_numbering_plan = -1;
-static int hf_ain_bcd_digits = -1;
-static int hf_ain_carrier_selection = -1;
-static int hf_ain_nature_of_carrier = -1;
-static int hf_ain_nr_digits = -1;
-static int hf_ain_carrier_bcd_digits = -1;
-static int hf_ain_amaslpid = -1;
+static int hf_ain_ext_type_oid;
+static int hf_ain_odd_even_indicator;
+static int hf_ain_nature_of_address;
+static int hf_ain_numbering_plan;
+static int hf_ain_bcd_digits;
+static int hf_ain_carrier_selection;
+static int hf_ain_nature_of_carrier;
+static int hf_ain_nr_digits;
+static int hf_ain_carrier_bcd_digits;
+static int hf_ain_amaslpid;
#include "packet-ain-hf.c"
/* Initialize the subtree pointers */
-static int ett_ain = -1;
-static int ett_ain_digits = -1;
-static int ett_ain_carrierformat = -1;
-static int ett_ain_amaslpid = -1;
+static int ett_ain;
+static int ett_ain_digits;
+static int ett_ain_carrierformat;
+static int ett_ain_amaslpid;
#include "packet-ain-ett.c"
-static expert_field ei_ain_unknown_invokeData = EI_INIT;
-static expert_field ei_ain_unknown_returnResultData = EI_INIT;
-static expert_field ei_ain_unknown_returnErrorData = EI_INIT;
+static expert_field ei_ain_unknown_invokeData;
+static expert_field ei_ain_unknown_returnResultData;
+static expert_field ei_ain_unknown_returnErrorData;
/* Global variables */
-static guint32 opcode = 0;
-static guint32 errorCode = 0;
+static uint32_t opcode;
+static uint32_t errorCode;
//static const char *obj_id = NULL;
static int ain_opcode_type;
@@ -84,7 +85,7 @@ static int ain_opcode_type;
#define AIN_OPCODE_RETURN_ERROR 3
#define AIN_OPCODE_REJECT 4
-/* Forvard declarations */
+/* Forward 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);
@@ -135,7 +136,7 @@ dissect_ain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *da
proto_tree *ain_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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* The TCAP dissector should have provided data but didn't so reject it. */
if (data == NULL)
@@ -160,7 +161,7 @@ dissect_ain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *da
*/
case 1:
opcode = p_private_tcap->d.OperationCode_private;
- /*ansi_map_is_invoke = TRUE;*/
+ /*ansi_map_is_invoke = true;*/
col_add_fstr(pinfo->cinfo, COL_INFO, "%s Invoke ", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
proto_item_append_text(p_private_tcap->d.OperationCode_item, " %s", val_to_str(opcode, ain_opr_code_strings, "Unknown AIN PDU (%u)"));
dissect_invokeData(ain_tree, tvb, 0, &asn1_ctx);
@@ -189,7 +190,7 @@ dissect_ain(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *da
void proto_reg_handoff_ain(void) {
- /*static gboolean ain_prefs_initialized = FALSE;*/
+ /*static bool ain_prefs_initialized = false;*/
/*static range_t *ssn_range;*/
}
@@ -246,7 +247,7 @@ void proto_register_ain(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ain,
&ett_ain_digits,
&ett_ain_carrierformat,
diff --git a/epan/dissectors/asn1/ansi_map/ansi_map.asn b/epan/dissectors/asn1/ansi_map/ansi_map.asn
index bd7c4b6f..cfda655b 100644
--- a/epan/dissectors/asn1/ansi_map/ansi_map.asn
+++ b/epan/dissectors/asn1/ansi_map/ansi_map.asn
@@ -1773,9 +1773,6 @@ OriginationRequest ::= [PRIVATE 18] SET {
--(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,
@@ -1793,12 +1790,7 @@ OriginationRequest ::= [PRIVATE 18] SET {
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
@@ -1811,8 +1803,6 @@ OriginationRequest ::= [PRIVATE 18] SET {
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)
@@ -1825,11 +1815,101 @@ OriginationRequest ::= [PRIVATE 18] SET {
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,
+-- 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
+-- 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
-- O
- ... }
+ mpcAddress [370] IMPLICIT MPCAddress OPTIONAL,
+ -- O 6.5.2.ha z, ab
+ ...
+ }
-- OriginationRequest RETURN RESULT Parameters
OriginationRequestRes ::= [PRIVATE 18] SET {
diff --git a/epan/dissectors/asn1/ansi_map/ansi_map.cnf b/epan/dissectors/asn1/ansi_map/ansi_map.cnf
index cab89c13..0a90fa7a 100644
--- a/epan/dissectors/asn1/ansi_map/ansi_map.cnf
+++ b/epan/dissectors/asn1/ansi_map/ansi_map.cnf
@@ -443,7 +443,7 @@ ReturnData
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb){
- ServiceIndicator = tvb_get_guint8(parameter_tvb,0);
+ ServiceIndicator = tvb_get_uint8(parameter_tvb,0);
if (SMS_BearerData_tvb !=NULL)
{
switch(ServiceIndicator){
diff --git a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
index 14738320..11eef381 100644
--- a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
+++ b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
@@ -78,6 +78,9 @@
#include <epan/tap.h>
#include <epan/stat_tap_ui.h>
#include <epan/asn1.h>
+#include <epan/tfs.h>
+
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-ansi_map.h"
@@ -100,258 +103,258 @@ 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 int ansi_map_response_matching_type = ANSI_MAP_TID_AND_SOURCE;
-static dissector_handle_t ansi_map_handle=NULL;
+static dissector_handle_t ansi_map_handle;
/* Initialize the protocol and registered fields */
-static int ansi_map_tap = -1;
-static int proto_ansi_map = -1;
+static int ansi_map_tap;
+static int proto_ansi_map;
#if 0
-static int hf_ansi_map_op_code_fam = -1;
-static int hf_ansi_map_op_code = -1;
+static int hf_ansi_map_op_code_fam;
+static int hf_ansi_map_op_code;
#endif
-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;
+static int hf_ansi_map_reservedBitH;
+static int hf_ansi_map_reservedBitHG;
+static int hf_ansi_map_reservedBitHGFE;
+static int hf_ansi_map_reservedBitFED;
+static int hf_ansi_map_reservedBitD;
+static int hf_ansi_map_reservedBitED;
+
+static int hf_ansi_map_type_of_digits;
+static int hf_ansi_map_na;
+static int hf_ansi_map_pi;
+static int hf_ansi_map_navail;
+static int hf_ansi_map_si;
+static int hf_ansi_map_digits_enc;
+static int hf_ansi_map_np;
+static int hf_ansi_map_nr_digits;
+static int hf_ansi_map_bcd_digits;
+static int hf_ansi_map_ia5_digits;
+static int hf_ansi_map_subaddr_type;
+static int hf_ansi_map_subaddr_odd_even;
+static int hf_ansi_alertcode_cadence;
+static int hf_ansi_alertcode_pitch;
+static int hf_ansi_alertcode_alertaction;
+static int hf_ansi_map_announcementcode_tone;
+static int hf_ansi_map_announcementcode_class;
+static int hf_ansi_map_announcementcode_std_ann;
+static int hf_ansi_map_announcementcode_cust_ann;
+static int hf_ansi_map_authorizationperiod_period;
+static int hf_ansi_map_value;
+static int hf_ansi_map_msc_type;
+static int hf_ansi_map_handoffstate_pi;
+static int hf_ansi_map_tgn;
+static int hf_ansi_map_tmn;
+static int hf_ansi_map_messagewaitingnotificationcount_tom;
+static int hf_ansi_map_messagewaitingnotificationcount_no_mw;
+static int hf_ansi_map_messagewaitingnotificationtype_mwi;
+static int hf_ansi_map_messagewaitingnotificationtype_apt;
+static int hf_ansi_map_messagewaitingnotificationtype_pt;
+
+static int hf_ansi_map_trans_cap_prof;
+static int hf_ansi_map_trans_cap_busy;
+static int hf_ansi_map_trans_cap_ann;
+static int hf_ansi_map_trans_cap_rui;
+static int hf_ansi_map_trans_cap_spini;
+static int hf_ansi_map_trans_cap_uzci;
+static int hf_ansi_map_trans_cap_ndss;
+static int hf_ansi_map_trans_cap_nami;
+static int hf_ansi_trans_cap_multerm;
+static int hf_ansi_map_terminationtriggers_busy;
+static int hf_ansi_map_terminationtriggers_rf;
+static int hf_ansi_map_terminationtriggers_npr;
+static int hf_ansi_map_terminationtriggers_na;
+static int hf_ansi_map_terminationtriggers_nr;
+static int hf_ansi_trans_cap_tl;
+static int hf_ansi_map_cdmaserviceoption;
+static int hf_ansi_trans_cap_waddr;
+static int hf_ansi_map_MarketID;
+static int hf_ansi_map_swno;
+static int hf_ansi_map_idno;
+static int hf_ansi_map_segcount;
+static int hf_ansi_map_sms_originationrestrictions_fmc;
+static int hf_ansi_map_sms_originationrestrictions_direct;
+static int hf_ansi_map_sms_originationrestrictions_default;
+static int hf_ansi_map_systemcapabilities_auth;
+static int hf_ansi_map_systemcapabilities_se;
+static int hf_ansi_map_systemcapabilities_vp;
+static int hf_ansi_map_systemcapabilities_cave;
+static int hf_ansi_map_systemcapabilities_ssd;
+static int hf_ansi_map_systemcapabilities_dp;
+
+static int hf_ansi_map_mslocation_lat;
+static int hf_ansi_map_mslocation_long;
+static int hf_ansi_map_mslocation_res;
+static int hf_ansi_map_nampscallmode_namps;
+static int hf_ansi_map_nampscallmode_amps;
+static int hf_ansi_map_nampschanneldata_navca;
+static int hf_ansi_map_nampschanneldata_CCIndicator;
+
+static int hf_ansi_map_callingfeaturesindicator_cfufa;
+static int hf_ansi_map_callingfeaturesindicator_cfbfa;
+static int hf_ansi_map_callingfeaturesindicator_cfnafa;
+static int hf_ansi_map_callingfeaturesindicator_cwfa;
+static int hf_ansi_map_callingfeaturesindicator_3wcfa;
+static int hf_ansi_map_callingfeaturesindicator_pcwfa;
+static int hf_ansi_map_callingfeaturesindicator_dpfa;
+static int hf_ansi_map_callingfeaturesindicator_ahfa;
+static int hf_ansi_map_callingfeaturesindicator_uscfvmfa;
+static int hf_ansi_map_callingfeaturesindicator_uscfmsfa;
+static int hf_ansi_map_callingfeaturesindicator_uscfnrfa;
+static int hf_ansi_map_callingfeaturesindicator_cpdsfa;
+static int hf_ansi_map_callingfeaturesindicator_ccsfa;
+static int hf_ansi_map_callingfeaturesindicator_epefa;
+static int hf_ansi_map_callingfeaturesindicator_cdfa;
+static int hf_ansi_map_callingfeaturesindicator_vpfa;
+static int hf_ansi_map_callingfeaturesindicator_ctfa;
+static int hf_ansi_map_callingfeaturesindicator_cnip1fa;
+static int hf_ansi_map_callingfeaturesindicator_cnip2fa;
+static int hf_ansi_map_callingfeaturesindicator_cnirfa;
+static int hf_ansi_map_callingfeaturesindicator_cniroverfa;
+static int hf_ansi_map_cdmacallmode_cdma;
+static int hf_ansi_map_cdmacallmode_amps;
+static int hf_ansi_map_cdmacallmode_namps;
+static int hf_ansi_map_cdmacallmode_cls1;
+static int hf_ansi_map_cdmacallmode_cls2;
+static int hf_ansi_map_cdmacallmode_cls3;
+static int hf_ansi_map_cdmacallmode_cls4;
+static int hf_ansi_map_cdmacallmode_cls5;
+static int hf_ansi_map_cdmacallmode_cls6;
+static int hf_ansi_map_cdmacallmode_cls7;
+static int hf_ansi_map_cdmacallmode_cls8;
+static int hf_ansi_map_cdmacallmode_cls9;
+static int hf_ansi_map_cdmacallmode_cls10;
+static int hf_ansi_map_cdmachanneldata_Frame_Offset;
+static int hf_ansi_map_cdmachanneldata_CDMA_ch_no;
+static int hf_ansi_map_cdmachanneldata_band_cls;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b6;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b5;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b4;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b3;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b2;
+static int hf_ansi_map_cdmachanneldata_lc_mask_b1;
+static int hf_ansi_map_cdmachanneldata_np_ext;
+static int hf_ansi_map_cdmachanneldata_nominal_pwr;
+static int hf_ansi_map_cdmachanneldata_nr_preamble;
+
+static int hf_ansi_map_cdmastationclassmark_pc;
+static int hf_ansi_map_cdmastationclassmark_dtx;
+static int hf_ansi_map_cdmastationclassmark_smi;
+static int hf_ansi_map_cdmastationclassmark_dmi;
+static int hf_ansi_map_channeldata_vmac;
+static int hf_ansi_map_channeldata_dtx;
+static int hf_ansi_map_channeldata_scc;
+static int hf_ansi_map_channeldata_chno;
+static int hf_ansi_map_ConfidentialityModes_vp;
+static int hf_ansi_map_controlchanneldata_dcc;
+static int hf_ansi_map_controlchanneldata_cmac;
+static int hf_ansi_map_controlchanneldata_chno;
+static int hf_ansi_map_controlchanneldata_sdcc1;
+static int hf_ansi_map_controlchanneldata_sdcc2;
+static int hf_ansi_map_ConfidentialityModes_se;
+static int hf_ansi_map_deniedauthorizationperiod_period;
+static int hf_ansi_map_ConfidentialityModes_dp;
+
+static int hf_ansi_map_originationtriggers_all;
+static int hf_ansi_map_originationtriggers_local;
+static int hf_ansi_map_originationtriggers_ilata;
+static int hf_ansi_map_originationtriggers_olata;
+static int hf_ansi_map_originationtriggers_int;
+static int hf_ansi_map_originationtriggers_wz;
+static int hf_ansi_map_originationtriggers_unrec;
+static int hf_ansi_map_originationtriggers_rvtc;
+static int hf_ansi_map_originationtriggers_star;
+static int hf_ansi_map_originationtriggers_ds;
+static int hf_ansi_map_originationtriggers_pound;
+static int hf_ansi_map_originationtriggers_dp;
+static int hf_ansi_map_originationtriggers_pa;
+static int hf_ansi_map_originationtriggers_nodig;
+static int hf_ansi_map_originationtriggers_onedig;
+static int hf_ansi_map_originationtriggers_twodig;
+static int hf_ansi_map_originationtriggers_threedig;
+static int hf_ansi_map_originationtriggers_fourdig;
+static int hf_ansi_map_originationtriggers_fivedig;
+static int hf_ansi_map_originationtriggers_sixdig;
+static int hf_ansi_map_originationtriggers_sevendig;
+static int hf_ansi_map_originationtriggers_eightdig;
+static int hf_ansi_map_originationtriggers_ninedig;
+static int hf_ansi_map_originationtriggers_tendig;
+static int hf_ansi_map_originationtriggers_elevendig;
+static int hf_ansi_map_originationtriggers_twelvedig;
+static int hf_ansi_map_originationtriggers_thirteendig;
+static int hf_ansi_map_originationtriggers_fourteendig;
+static int hf_ansi_map_originationtriggers_fifteendig;
+static int hf_ansi_map_triggercapability_init;
+static int hf_ansi_map_triggercapability_kdigit;
+static int hf_ansi_map_triggercapability_all;
+static int hf_ansi_map_triggercapability_rvtc;
+static int hf_ansi_map_triggercapability_oaa;
+static int hf_ansi_map_triggercapability_oans;
+static int hf_ansi_map_triggercapability_odisc;
+static int hf_ansi_map_triggercapability_ona;
+static int hf_ansi_map_triggercapability_ct;
+static int hf_ansi_map_triggercapability_unrec;
+static int hf_ansi_map_triggercapability_pa;
+static int hf_ansi_map_triggercapability_at;
+static int hf_ansi_map_triggercapability_cgraa;
+static int hf_ansi_map_triggercapability_it;
+static int hf_ansi_map_triggercapability_cdraa;
+static int hf_ansi_map_triggercapability_obsy;
+static int hf_ansi_map_triggercapability_tra;
+static int hf_ansi_map_triggercapability_tbusy;
+static int hf_ansi_map_triggercapability_tna;
+static int hf_ansi_map_triggercapability_tans;
+static int hf_ansi_map_triggercapability_tdisc;
+static int hf_ansi_map_winoperationscapability_conn;
+static int hf_ansi_map_winoperationscapability_ccdir;
+static int hf_ansi_map_winoperationscapability_pos;
+static int hf_ansi_map_PACA_Level;
+static int hf_ansi_map_pacaindicator_pa;
+
+static int hf_ansi_map_point_code;
+static int hf_ansi_map_SSN;
+static int hf_ansi_map_win_trigger_list;
#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;
+static int ett_ansi_map;
+static int ett_mintype;
+static int ett_digitstype;
+static int ett_billingid;
+static int ett_sms_bearer_data;
+static int ett_sms_teleserviceIdentifier;
+static int ett_extendedmscid;
+static int ett_extendedsystemmytypecode;
+static int ett_handoffstate;
+static int ett_mscid;
+static int ett_cdmachanneldata;
+static int ett_cdmastationclassmark;
+static int ett_channeldata;
+static int ett_confidentialitymodes;
+static int ett_controlchanneldata;
+static int ett_CDMA2000HandoffInvokeIOSData;
+static int ett_CDMA2000HandoffResponseIOSData;
+static int ett_originationtriggers;
+static int ett_pacaindicator;
+static int ett_callingpartyname;
+static int ett_triggercapability;
+static int ett_winoperationscapability;
+static int ett_win_trigger_list;
+static int ett_controlnetworkid;
+static int ett_transactioncapability;
+static int ett_cdmaserviceoption;
+static int ett_systemcapabilities;
+static int ett_sms_originationrestrictions;
#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;
+static expert_field ei_ansi_map_nr_not_used;
+static expert_field ei_ansi_map_unknown_invokeData_blob;
+static expert_field ei_ansi_map_no_data;
/* Global variables */
static dissector_table_t is637_tele_id_dissector_table; /* IS-637 Teleservice ID */
@@ -359,25 +362,25 @@ 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;
+static tvbuff_t *SMS_BearerData_tvb;
+static int32_t ansi_map_sms_tele_id = -1;
+static bool is683_ota;
+static bool is801_pld;
+static bool ansi_map_is_invoke;
+static uint32_t OperationCode;
+static uint8_t ServiceIndicator;
struct ansi_map_invokedata_t {
- guint32 opcode;
- guint8 ServiceIndicator;
+ uint32_t opcode;
+ uint8_t 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 wmem_multimap_t *TransactionId_table=NULL;
+static wmem_multimap_t *TransactionId_table;
/* Store Invoke information needed for the corresponding reply */
static void
@@ -385,8 +388,8 @@ update_saved_invokedata(packet_info *pinfo, struct ansi_tcap_private_t *p_privat
struct ansi_map_invokedata_t *ansi_map_saved_invokedata;
address* src = &(pinfo->src);
address* dst = &(pinfo->dst);
- guint8 *src_str;
- guint8 *dst_str;
+ uint8_t *src_str;
+ uint8_t *dst_str;
const char *buf = NULL;
src_str = address_to_str(pinfo->pool, src);
@@ -395,7 +398,7 @@ update_saved_invokedata(packet_info *pinfo, struct ansi_tcap_private_t *p_privat
/* Data from the TCAP dissector */
if ((!pinfo->fd->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 */
+ /* The hash string needs to contain src and dest to distinguish different flows */
switch(ansi_map_response_matching_type){
case ANSI_MAP_TID_ONLY:
buf = wmem_strdup(pinfo->pool, p_private_tcap->TransactionID_str);
@@ -616,15 +619,15 @@ dissect_ansi_map_min_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
subtree = proto_item_add_subtree(actx->created_item, ett_mintype);
- proto_tree_add_item_ret_display_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_BCD_DIGITS_0_9, pinfo->pool, &digit_str);
+ proto_tree_add_item_ret_display_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN, pinfo->pool, &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;
+ uint8_t octet , octet_len;
+ uint8_t b1,b2,b3,b4;
int offset = 0;
char *digit_str;
@@ -645,7 +648,7 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
proto_tree_add_item(subtree, hf_ansi_map_na, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
/* Octet 3 */
- octet = tvb_get_guint8(tvb,offset);
+ octet = tvb_get_uint8(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++;
@@ -655,19 +658,19 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
switch ((octet&0xf)){
case 1:
/* BCD Coding */
- octet_len = tvb_get_guint8(tvb,offset);
+ octet_len = tvb_get_uint8(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_ret_display_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, ENC_KEYPAD_BC_TBCD, pinfo->pool, &digit_str);
+ proto_tree_add_item_ret_display_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, ENC_KEYPAD_BC_TBCD|ENC_LITTLE_ENDIAN, pinfo->pool, &digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
break;
case 2:
{
- const guint8* digits;
+ const uint8_t* digits;
/* IA5 Coding */
- octet_len = tvb_get_guint8(tvb,offset);
+ octet_len = tvb_get_uint8(tvb,offset);
proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
if(octet_len == 0)
return;
@@ -693,7 +696,7 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
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);
+ octet_len = tvb_get_uint8(tvb,offset);
proto_tree_add_item(subtree, hf_ansi_map_nr_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
if(octet_len == 0)
return;
@@ -701,12 +704,12 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
switch ((octet&0xf)){
case 1:
/* BCD Coding */
- proto_tree_add_item_ret_display_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, ENC_KEYPAD_BC_TBCD, pinfo->pool, &digit_str);
+ proto_tree_add_item_ret_display_string(subtree, hf_ansi_map_bcd_digits, tvb, offset, -1, ENC_KEYPAD_BC_TBCD|ENC_LITTLE_ENDIAN, pinfo->pool, &digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
break;
case 2:
{
- const guint8* digits;
+ const uint8_t* digits;
/* IA5 Coding */
proto_tree_add_item_ret_string(subtree, hf_ansi_map_ia5_digits, tvb, offset, tvb_reported_length_remaining(tvb,offset),
ENC_ASCII|ENC_NA, pinfo->pool, &digits);
@@ -725,17 +728,17 @@ dissect_ansi_map_digits_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
case 3:
/* Octet string */
/* Point Code Member Number octet 2 */
- b1 = tvb_get_guint8(tvb,offset);
+ b1 = tvb_get_uint8(tvb,offset);
offset++;
/* Point Code Cluster Number octet 3 */
- b2 = tvb_get_guint8(tvb,offset);
+ b2 = tvb_get_uint8(tvb,offset);
offset++;
/* Point Code Network Number octet 4 */
- b3 = tvb_get_guint8(tvb,offset);
+ b3 = tvb_get_uint8(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);
+ b4 = tvb_get_uint8(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;
@@ -895,7 +898,7 @@ static const value_string ansi_map_AlertResult_result_vals[] = {
{ 0, NULL }
};
-/* 6.5.2.5 AnnouncementCode Updatef from NS0018Re*/
+/* 6.5.2.5 AnnouncementCode Updated from NS0018Re*/
/* Tone (octet 1) */
static const value_string ansi_map_AnnouncementCode_tone_vals[] = {
{ 0, "DialTone"},
@@ -1617,7 +1620,7 @@ dissect_ansi_map_extendedsystemmytypecode(tvbuff_t *tvb, packet_info *pinfo _U_,
/* 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);
+ dissect_ansi_map_SystemMyTypeCode(true, tvb, offset, actx, subtree, hf_ansi_map_systemMyTypeCode);
}
@@ -1664,16 +1667,16 @@ dissect_ansi_map_intermsccircuitid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
int offset = 0;
proto_tree *subtree;
- guint8 octet, octet2;
+ uint8_t octet, octet2;
subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
/* Trunk Group Number (G) Octet 1 */
- octet = tvb_get_guint8(tvb,offset);
+ octet = tvb_get_uint8(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);
+ octet2 = tvb_get_uint8(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);
}
@@ -2211,7 +2214,7 @@ dissect_ansi_map_pc_ssn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
int offset = 0;
proto_tree *subtree;
- guint8 b1,b2,b3;
+ uint8_t b1,b2,b3;
subtree = proto_item_add_subtree(actx->created_item, ett_billingid);
@@ -2219,13 +2222,13 @@ dissect_ansi_map_pc_ssn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
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);
+ b1 = tvb_get_uint8(tvb,offset);
offset++;
/* Point Code Cluster Number octet 3 */
- b2 = tvb_get_guint8(tvb,offset);
+ b2 = tvb_get_uint8(tvb,offset);
offset++;
/* Point Code Network Number octet 4 */
- b3 = tvb_get_guint8(tvb,offset);
+ b3 = tvb_get_uint8(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);
@@ -2440,7 +2443,6 @@ static const value_string ansi_map_SSDUpdateReport_vals[] = {
{ 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 }
};
@@ -3603,13 +3605,13 @@ dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
int end_offset = 0;
int j = 0;
proto_tree *subtree;
- guint8 octet;
+ uint8_t 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);
+ octet = tvb_get_uint8(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");
@@ -3638,7 +3640,7 @@ dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
- static gboolean opCodeKnown = TRUE;
+ static bool opCodeKnown = true;
static ansi_map_tap_rec_t tap_rec[16];
static ansi_map_tap_rec_t *tap_p;
static int tap_current=0;
@@ -3655,55 +3657,55 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
switch(OperationCode){
case 1: /*Handoff Measurement Request*/
- offset = dissect_ansi_map_HandoffMeasurementRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffMeasurementRequest);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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)");
@@ -3712,296 +3714,296 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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_geoPositionRequest);
+ offset = dissect_ansi_map_GeoPositionRequest(true, tvb, offset, actx, tree, hf_ansi_map_geoPositionRequest);
break;
case 95: /*Inter System Position Request*/
- offset = dissect_ansi_map_InterSystemPositionRequest(TRUE, tvb, offset, actx, tree, hf_ansi_map_interSystemPositionRequest);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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;
+ opCodeKnown = false;
break;
}
@@ -4017,7 +4019,7 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
}
static int dissect_returnData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
- static gboolean opCodeKnown = TRUE;
+ static bool opCodeKnown = true;
static ansi_map_tap_rec_t tap_rec[16];
static ansi_map_tap_rec_t *tap_p;
static int tap_current=0;
@@ -4034,245 +4036,245 @@ static int dissect_returnData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
switch(OperationCode){
case 1: /*Handoff Measurement Request*/
- offset = dissect_ansi_map_HandoffMeasurementRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_handoffMeasurementRequestRes);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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_interSystemPositionRequestForwardRes);
+ offset = dissect_ansi_map_InterSystemPositionRequestForwardRes(true, tvb, offset, actx, tree, hf_ansi_map_interSystemPositionRequestForwardRes);
break;
case 98: /*Roamer Database Verification Request*/
- offset = dissect_ansi_map_RoamerDatabaseVerificationRequestRes(TRUE, tvb, offset, actx, tree, hf_ansi_map_roamerDatabaseVerificationRequestRes);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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;
+ opCodeKnown = false;
break;
}
@@ -4292,14 +4294,14 @@ find_saved_invokedata(asn1_ctx_t *actx, struct ansi_tcap_private_t *p_private_tc
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;
+ uint8_t *src_str;
+ uint8_t *dst_str;
char *buf;
buf=(char *)wmem_alloc(actx->pinfo->pool, 1024);
/* Data from the TCAP dissector */
- /* The hash string needs to contain src and dest to distiguish differnt flows */
+ /* The hash string needs to contain src and dest to distinguish different flows */
src_str = address_to_str(actx->pinfo->pool, src);
dst_str = address_to_str(actx->pinfo->pool, dst);
/* Reverse order to invoke */
@@ -4335,7 +4337,7 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
SMS_BearerData_tvb = NULL;
ansi_map_sms_tele_id = -1;
@@ -4355,9 +4357,9 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
*/
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;
+ ansi_map_is_invoke = false;
+ is683_ota = false;
+ is801_pld = false;
ServiceIndicator = 0;
switch(p_private_tcap->d.pdu){
@@ -4369,7 +4371,7 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
*/
case 1:
OperationCode = p_private_tcap->d.OperationCode_private & 0x00ff;
- ansi_map_is_invoke = TRUE;
+ 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);
@@ -4396,14 +4398,14 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
return tvb_captured_length(tvb);
}
-static void range_delete_callback(guint32 ssn, gpointer ptr _U_)
+static void range_delete_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
delete_ansi_tcap_subdissector(ssn, ansi_map_handle);
}
}
-static void range_add_callback(guint32 ssn, gpointer ptr _U_)
+static void range_add_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
add_ansi_tcap_subdissector(ssn, ansi_map_handle);
@@ -4427,10 +4429,10 @@ static stat_tap_table_item stat_fields[] = {{TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "
static void ansi_map_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "ANSI MAP Operation Statistics";
- int num_fields = sizeof(stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(stat_fields);
stat_tap_table *table;
int i = 0;
- stat_tap_table_item_type items[sizeof(stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(stat_fields)];
table = stat_tap_find_table(new_stat, table_name);
if (table) {
@@ -4470,7 +4472,7 @@ ansi_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt
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 count, total_bytes;
+ unsigned count, total_bytes;
/* Only tracking field values we know */
if (try_val_to_str(data_p->message_type, ansi_map_opr_code_strings) == NULL)
@@ -4498,7 +4500,7 @@ ansi_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt
static void
ansi_map_stat_reset(stat_tap_table* table)
{
- guint element;
+ unsigned element;
stat_tap_table_item_type* item_data;
for (element = 0; element < table->num_elements; element++)
@@ -4521,12 +4523,12 @@ ansi_map_stat_reset(stat_tap_table* table)
void
proto_reg_handoff_ansi_map(void)
{
- static gboolean ansi_map_prefs_initialized = FALSE;
+ static bool ansi_map_prefs_initialized = false;
static range_t *ssn_range;
if(!ansi_map_prefs_initialized)
{
- ansi_map_prefs_initialized = TRUE;
+ ansi_map_prefs_initialized = true;
}
else
{
@@ -5018,7 +5020,7 @@ void proto_register_ansi_map(void) {
{&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 }},
+ NULL, 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,
@@ -5364,7 +5366,7 @@ void proto_register_ansi_map(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ansi_map,
&ett_mintype,
&ett_digitstype,
@@ -5413,7 +5415,7 @@ void proto_register_ansi_map(void) {
/* TAP STAT INFO */
static stat_tap_table_ui stat_table = {
- REGISTER_STAT_GROUP_TELEPHONY_ANSI,
+ REGISTER_TELEPHONY_GROUP_ANSI,
"Map Operation Statistics",
"ansi_map",
"ansi_map",
@@ -5422,7 +5424,7 @@ void proto_register_ansi_map(void) {
ansi_map_stat_reset,
NULL,
NULL,
- sizeof(stat_fields)/sizeof(stat_tap_table_item), stat_fields,
+ array_length(stat_fields), stat_fields,
0, NULL,
NULL,
0
@@ -5465,7 +5467,7 @@ void proto_register_ansi_map(void) {
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);
+ &ansi_map_response_matching_type, ansi_map_response_matching_type_values, false);
TransactionId_table = wmem_multimap_new_autoreset(wmem_epan_scope(), wmem_file_scope(), wmem_str_hash, g_str_equal);
register_stat_tap_table_ui(&stat_table);
diff --git a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h
index c164521a..ea843df7 100644
--- a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h
+++ b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.h
@@ -17,8 +17,8 @@
#define ANSI_MAP_MAX_NUM_MESSAGE_TYPES 256
typedef struct _ansi_map_tap_rec_t {
- guint8 message_type;
- guint16 size;
+ uint8_t message_type;
+ uint16_t size;
} ansi_map_tap_rec_t;
diff --git a/epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf b/epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf
index b24c798e..9c8c8e06 100644
--- a/epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf
+++ b/epan/dissectors/asn1/ansi_tcap/ansi_tcap.cnf
@@ -31,8 +31,8 @@ OperationCode/private VAL_PTR = &ansi_tcap_private.d.OperationCode_private
proto_tree *subtree;
proto_item *spcifier_item;
int start_offset = offset;
- guint8 family;
- guint8 specifier;
+ uint8_t family;
+ uint8_t specifier;
%(DEFAULT_BODY)s
/* mask off the H bit */
@@ -43,7 +43,7 @@ OperationCode/private VAL_PTR = &ansi_tcap_private.d.OperationCode_private
* 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);
+ specifier = (uint8_t)(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);
@@ -129,7 +129,7 @@ OperationCode/private VAL_PTR = &ansi_tcap_private.d.OperationCode_private
%(DEFAULT_BODY)s
ansi_tcap_private.objectApplicationId_oid= (const void*) oid_str;
- ansi_tcap_private.oid_is_present=TRUE;
+ ansi_tcap_private.oid_is_present=true;
#.FN_HDR PackageType/unidirectional
gp_tcapsrt_info->ope=TC_ANSI_ALL;
@@ -162,7 +162,7 @@ col_set_str(actx->pinfo->cinfo, COL_INFO, "Abort ");
#.FN_BODY TransactionID/_untag VAL_PTR = &next_tvb
tvbuff_t *next_tvb;
-guint8 len;
+uint8_t len;
%(DEFAULT_BODY)s
@@ -184,7 +184,7 @@ if(next_tvb) {
}
switch(len) {
case 1:
- gp_tcapsrt_info->src_tid=tvb_get_guint8(next_tvb, 0);
+ gp_tcapsrt_info->src_tid=tvb_get_uint8(next_tvb, 0);
break;
case 2:
gp_tcapsrt_info->src_tid=tvb_get_ntohs(next_tvb, 0);
diff --git a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
index 10a5f4b7..789950b1 100644
--- a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
+++ b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
@@ -19,6 +19,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/strutil.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-tcap.h"
@@ -35,39 +36,39 @@ void proto_reg_handoff_ansi_tcap(void);
#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;
+static int ansi_tcap_response_matching_type = ANSI_TCAP_TID_ONLY;
/* Initialize the protocol and registered fields */
-static int proto_ansi_tcap = -1;
+static int proto_ansi_tcap;
#if 0
-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_tcapsrt_SessionId;
+static int hf_ansi_tcapsrt_Duplicate;
+static int hf_ansi_tcapsrt_BeginSession;
+static int hf_ansi_tcapsrt_EndSession;
+static int hf_ansi_tcapsrt_SessionTime;
#endif
-static int hf_ansi_tcap_bit_h = -1;
-static int hf_ansi_tcap_op_family = -1;
-static int hf_ansi_tcap_op_specifier = -1;
+static int hf_ansi_tcap_bit_h;
+static int hf_ansi_tcap_op_family;
+static int hf_ansi_tcap_op_specifier;
#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 int ett_tcap;
+static int ett_param;
+static int ett_ansi_tcap_op_code_nat;
-static gint ett_otid = -1;
-static gint ett_dtid = -1;
-static gint ett_ansi_tcap_stat = -1;
+static int ett_otid;
+static int ett_dtid;
+static int ett_ansi_tcap_stat;
-static expert_field ei_ansi_tcap_dissector_not_implemented = EI_INIT;
+static expert_field ei_ansi_tcap_dissector_not_implemented;
static struct tcapsrt_info_t * gp_tcapsrt_info;
-static gboolean tcap_subdissector_used=FALSE;
+static bool tcap_subdissector_used=false;
-static struct tcaphash_context_t * gp_tcap_context=NULL;
+static struct tcaphash_context_t * gp_tcap_context;
/* 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 */
@@ -76,10 +77,6 @@ static dissector_table_t ansi_tcap_national_opcode_table; /* National Operation
#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 */
@@ -87,7 +84,7 @@ extern guint gtcap_LostTimeout;
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 dissector_table_t ber_oid_dissector_table;
static const char * cur_oid;
static const char * tcapext_oid;
@@ -100,7 +97,7 @@ struct ansi_tcap_private_t ansi_tcap_private;
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->oid_is_present = false;
a_tcap_ctx->TransactionID_str = NULL;
}
@@ -125,22 +122,22 @@ static const value_string ansi_tcap_national_op_code_family_vals[] = {
/* Transaction tracking */
/* Transaction table */
struct ansi_tcap_invokedata_t {
- gint OperationCode;
+ int OperationCode;
/*
0 : national,
1 : private
*/
- gint32 OperationCode_private;
- gint32 OperationCode_national;
+ int32_t OperationCode_private;
+ int32_t OperationCode_national;
};
-static wmem_multimap_t *TransactionId_table=NULL;
+static wmem_multimap_t *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 *src, *dst;
char *buf;
src = address_to_str(pinfo->pool, &(pinfo->src));
@@ -149,7 +146,7 @@ save_invoke_data(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){
if ((!pinfo->fd->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 */
+ /* The hash string needs to contain src and dest to distinguish different flows */
switch(ansi_tcap_response_matching_type){
case ANSI_TCAP_TID_ONLY:
buf = wmem_strdup(pinfo->pool, ansi_tcap_private.TransactionID_str);
@@ -178,20 +175,20 @@ save_invoke_data(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){
}
}
-static gboolean
+static bool
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 *src, *dst;
char *buf;
if (!ansi_tcap_private.TransactionID_str) {
- return FALSE;
+ return false;
}
src = address_to_str(pinfo->pool, &(pinfo->src));
dst = address_to_str(pinfo->pool, &(pinfo->dst));
- /* The hash string needs to contain src and dest to distiguish differnt flows */
+ /* The hash string needs to contain src and dest to distinguish different flows */
buf = (char *)wmem_alloc(pinfo->pool, MAX_TID_STR_LEN);
buf[0] = '\0';
/* Reverse order to invoke */
@@ -213,9 +210,9 @@ find_saved_invokedata(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U
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 true;
}
- return FALSE;
+ return false;
}
/* As currently ANSI MAP is the only possible sub dissector this function
@@ -234,7 +231,7 @@ find_saved_invokedata(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U
* Use SCCP SSN table as before? or a ansi.tcap.private dissector table?
*
*/
-static gboolean
+static bool
find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
proto_item *item;
@@ -243,7 +240,7 @@ find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
*
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;
+ return true;
}
*/
if(ansi_tcap_private.d.pdu == 1){
@@ -264,16 +261,16 @@ find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
}
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);
+ uint8_t family = (ansi_tcap_private.d.OperationCode_national & 0x7f00)>>8;
+ uint8_t specifier = (uint8_t)(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, actx->subtree.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 false;
}
- return TRUE;
+ return true;
}else if(ansi_tcap_private.d.OperationCode == 1){
/* private */
if((ansi_tcap_private.d.OperationCode_private & 0xff00) == 0x0900){
@@ -288,17 +285,17 @@ find_tcap_subdissector(tvbuff_t *tvb, asn1_ctx_t *actx, proto_tree *tree){
*/
call_dissector_with_data(ansi_map_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
- return TRUE;
+ return true;
} else if ((ansi_tcap_private.d.OperationCode_private & 0xf000) == 0x6000) {
call_dissector_with_data(ain_handle, tvb, actx->pinfo, actx->subtree.top_tree, &ansi_tcap_private);
- return TRUE;
+ return true;
}
}
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;
+ return false;
}
#include "packet-ansi_tcap-fn.c"
@@ -314,13 +311,13 @@ dissect_ansi_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
#if 0
proto_item *stat_item=NULL;
proto_tree *stat_tree=NULL;
- gint offset = 0;
+ int 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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
ansi_tcap_ctx_init(&ansi_tcap_private);
asn1_ctx.subtree.top_tree = parent_tree;
@@ -335,9 +332,9 @@ dissect_ansi_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
tcapext_oid = NULL;
gp_tcapsrt_info=tcapsrt_razinfo();
- tcap_subdissector_used=FALSE;
+ tcap_subdissector_used=false;
gp_tcap_context=NULL;
- dissect_ansi_tcap_PackageType(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ 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 ) {
@@ -356,11 +353,11 @@ dissect_ansi_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
(void) 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;
+ p_tcap_context->oid_present=true;
}
}
if (g_ansi_tcap_HandleSRT && p_tcap_context && p_tcap_context->callback) {
- /* Callback fonction for the upper layer */
+ /* Callback function for the upper layer */
(p_tcap_context->callback)(tvb, pinfo, stat_tree, p_tcap_context);
}
}
@@ -441,7 +438,7 @@ proto_register_ansi_tcap(void)
};
/* Setup protocol subtree array */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_tcap,
&ett_param,
&ett_otid,
@@ -481,7 +478,7 @@ proto_register_ansi_tcap(void)
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);
+ &ansi_tcap_response_matching_type, ansi_tcap_response_matching_type_values, false);
TransactionId_table = wmem_multimap_new_autoreset(wmem_epan_scope(), wmem_file_scope(), wmem_str_hash, g_str_equal);
}
diff --git a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h
index 51f44771..b6a179ca 100644
--- a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h
+++ b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.h
@@ -16,36 +16,36 @@
#define ANSI_TCAP_CTX_SIGNATURE 0x41544341 /* "ATCA" */
struct ansi_tcap_private_t {
- guint32 signature;
- gboolean oid_is_present; /* Is the Application Context Version present */
+ uint32_t signature;
+ bool oid_is_present; /* Is the Application Context Version present */
const void * objectApplicationId_oid;
- guint32 session_id;
+ uint32_t session_id;
void * context;
- gchar *TransactionID_str;
+ char *TransactionID_str;
struct { /* "dynamic" data */
- gint pdu;
+ int pdu;
/*
1 : invoke,
2 : returnResult,
3 : returnError,
4 : reject
*/
- gint OperationCode;
+ int OperationCode;
/*
0 : national,
1 : private
*/
- gint32 OperationCode_national;
- gint32 OperationCode_private;
+ int32_t OperationCode_national;
+ int32_t OperationCode_private;
proto_item *OperationCode_item;
} d;
};
-/*extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);*/
+/*extern void add_ansi_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector);*/
-/*extern void delete_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector);*/
+/*extern void delete_ansi_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector);*/
#endif /* PACKET_ANSI_TCAP_H */
diff --git a/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c b/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
index e4628178..3d0755dd 100644
--- a/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
+++ b/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
@@ -5,19 +5,16 @@
* 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
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://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
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Second Edition here
* (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
-
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
+ *
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
@@ -30,6 +27,7 @@
#include <epan/packet.h>
#include <epan/exceptions.h>
#include <epan/conversation.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
#include "packet-atn-ulcs.h"
@@ -42,10 +40,10 @@ 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;
+static int ett_atn_cm;
#include "packet-atn-cm-fn.c"
-static int proto_atn_cm = -1;
+static int proto_atn_cm;
static int
dissect_atn_cm(
@@ -85,7 +83,7 @@ dissect_atn_cm(
return tvb_reported_length_remaining(tvb, 0);
}
-static gboolean
+static bool
dissect_atn_cm_heur(
tvbuff_t *tvb,
packet_info *pinfo,
@@ -93,7 +91,7 @@ dissect_atn_cm_heur(
void *data _U_)
{
atn_conversation_t *volatile atn_cv = NULL;
- volatile gboolean is_atn_cm = FALSE;
+ volatile bool is_atn_cm = false;
int type;
/* determine whether it is uplink or downlink */
@@ -108,9 +106,9 @@ dissect_atn_cm_heur(
pinfo,
NULL, NULL);
/* no exception thrown: looks like it is a CM PDU */
- is_atn_cm = TRUE; }
+ is_atn_cm = true; }
CATCH_ALL {
- is_atn_cm = FALSE; }
+ is_atn_cm = false; }
ENDTRY;
break;
case dm:
@@ -120,16 +118,16 @@ dissect_atn_cm_heur(
pinfo,
NULL, NULL);
/* no exception thrown: looks like it is a CM PDU */
- is_atn_cm = TRUE;}
+ is_atn_cm = true;}
CATCH_ALL {
- is_atn_cm = FALSE; }
+ is_atn_cm = false; }
ENDTRY;
break;
default:
break;
}
- if (is_atn_cm == TRUE) {
+ 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 */
@@ -181,7 +179,7 @@ void proto_register_atn_cm (void)
static hf_register_info hf_atn_cm[] = {
#include "packet-atn-cm-hfarr.c"
};
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-atn-cm-ettarr.c"
&ett_atn_cm
};
diff --git a/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf b/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf
index ca700443..84878a68 100644
--- a/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf
+++ b/epan/dissectors/asn1/atn-cpdlc/atn-cpdlc.cnf
@@ -52,7 +52,7 @@ ProtectedAircraftPDUs/startdown protectedstartDownmessage
#.FN_BODY CPDLCMessage
tvbuff_t *tvb_usr = NULL;
- offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, NULL, 0, &tvb_usr, NULL);
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, false, NULL, 0, &tvb_usr, NULL);
if (tvb_usr) {
switch(check_heur_msg_type(actx->pinfo)){
@@ -77,47 +77,47 @@ ProtectedAircraftPDUs/startdown protectedstartDownmessage
#.END
#.FN_BODY AircraftFlightIdentification
- offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,2, 8, FALSE, ia5alpha , 127, NULL);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,3, 18, false, ia5alpha , 127, NULL);
#.END
#
diff --git a/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c b/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
index 0e8bca4d..4ebd4a25 100644
--- a/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
+++ b/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
@@ -3,18 +3,15 @@
* 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
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://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
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Second Edition here
* (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -35,6 +32,7 @@
#include <epan/packet.h>
#include <epan/exceptions.h>
#include <epan/conversation.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
#include "packet-atn-ulcs.h"
@@ -47,7 +45,7 @@ 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[] = {
+static const char 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, \
@@ -84,12 +82,12 @@ static int dissect_ProtectedAircraftPDUs_PDU(
#include "packet-atn-cpdlc-hf.c"
#include "packet-atn-cpdlc-ett.c"
-static gint ett_atn_cpdlc = -1;
+static int ett_atn_cpdlc;
#include "packet-atn-cpdlc-fn.c"
/* Wireshark ID of CPDLC protocol */
-static int proto_atn_cpdlc = -1;
+static int proto_atn_cpdlc;
static int
@@ -195,7 +193,7 @@ dissect_atn_cpdlc(
return tvb_reported_length_remaining(tvb, 0);
}
-static gboolean
+static bool
dissect_atn_cpdlc_heur(
tvbuff_t *tvb,
packet_info *pinfo,
@@ -203,8 +201,8 @@ dissect_atn_cpdlc_heur(
void *data _U_)
{
atn_conversation_t *volatile atn_cv = NULL;
- volatile gboolean is_atn_cpdlc = FALSE;
- volatile gboolean is_pm = FALSE;
+ volatile bool is_atn_cpdlc = false;
+ volatile bool is_pm = false;
int type;
type = check_heur_msg_type(pinfo);
@@ -213,43 +211,43 @@ dissect_atn_cpdlc_heur(
case um:
TRY {
dissect_ProtectedGroundPDUs_PDU(tvb, pinfo, NULL, NULL);
- is_atn_cpdlc = TRUE;
- is_pm = TRUE;}
+ is_atn_cpdlc = true;
+ is_pm = true;}
CATCH_ALL{
- is_atn_cpdlc = FALSE;
- is_pm = FALSE;}
+ 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;}
+ is_pm = false;
+ is_atn_cpdlc = true;}
CATCH_ALL{
- is_atn_cpdlc = FALSE;
- is_pm = FALSE;}
+ 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;}
+ is_atn_cpdlc = true;
+ is_pm = true;}
CATCH_ALL {
- is_atn_cpdlc = FALSE;
- is_pm = FALSE; }
+ 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;}
+ is_atn_cpdlc = true;
+ is_pm = false;}
CATCH_ALL{
- is_atn_cpdlc = FALSE;
- is_pm = FALSE;}
+ is_atn_cpdlc = false;
+ is_pm = false;}
ENDTRY;
break;
default:
@@ -283,14 +281,14 @@ dissect_atn_cpdlc_heur(
}
if(atn_cv){ /* atn conversation found */
- if(is_pm == TRUE) {
+ 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;
+ is_atn_cpdlc = false;
}
return is_atn_cpdlc;
@@ -304,7 +302,7 @@ void proto_register_atn_cpdlc (void)
#include "packet-atn-cpdlc-hfarr.c"
};
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-atn-cpdlc-ettarr.c"
&ett_atn_cpdlc
};
diff --git a/epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf b/epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf
index 793a4509..05a39b97 100644
--- a/epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf
+++ b/epan/dissectors/asn1/atn-ulcs/atn-ulcs.cnf
@@ -34,7 +34,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
1U,
127U,
&ulcs_context_value,
- TRUE);
+ true);
#.END
@@ -55,14 +55,14 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
hf_index,
NO_BOUND,
NO_BOUND,
- FALSE,
+ false,
NULL,
0,
&tvb_usr,
NULL);
if (tvb_usr) {
- /* call appropiate dissector for bitstring data */
+ /* call appropriate dissector for bitstring data */
switch(ulcs_context_value){
case 1: /* ACSE PDU*/
atn_ulcs_tree = proto_tree_add_subtree(
@@ -168,7 +168,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
#.FN_BODY AE-qualifier-form2
packet_info * pinfo = actx->pinfo;
atn_conversation_t *atn_cv = NULL;
- guint32 ae_qualifier = 0;
+ uint32_t ae_qualifier = 0;
/* dissect ae-qualifier */
offset = dissect_per_integer(
@@ -208,7 +208,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
packet_info * pinfo = actx->pinfo;
aarq_data_t *aarq_data = NULL;
atn_conversation_t *atn_cv = NULL;
- guint32 aircraft_24_bit_address = 0;
+ uint32_t aircraft_24_bit_address = 0;
/* AARQ/DT: dstref present, srcref is always zero */
if((pinfo->clnp_dstref) && (!pinfo->clnp_srcref)){
@@ -273,7 +273,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
/* alloc aarq data */
aarq_data = wmem_new(wmem_file_scope(), aarq_data_t);
- aarq_data-> aarq_pending = FALSE;
+ aarq_data-> aarq_pending = false;
/* insert aarq data */
wmem_tree_insert32(aarq_data_tree ,aircraft_24_bit_address,(void*)aarq_data);
@@ -282,13 +282,13 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
/* 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 ) {
+ 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;
+ aarq_data-> aarq_pending = true;
}
#.END
@@ -296,7 +296,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
#.FN_BODY AARE-apdu
packet_info * pinfo = actx->pinfo;
- guint32 aircraft_24_bit_address = 0 ;
+ uint32_t aircraft_24_bit_address = 0 ;
atn_conversation_t *atn_cv = NULL;
aarq_data_t *aarq_data = NULL;
@@ -374,7 +374,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
/* clear aarq data */
memset(aarq_data,0,sizeof(aarq_data_t));
- aarq_data-> aarq_pending = FALSE;
+ aarq_data-> aarq_pending = false;
%(DEFAULT_BODY)s
@@ -385,13 +385,13 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
#.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);
+ 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);
+ 0U, 30U, NULL, true);
#.END
#.FN_BODY Release-response-reason
@@ -406,7 +406,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
0U,
30U,
NULL,
- TRUE);
+ true);
#.END
@@ -436,7 +436,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
*/
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
ett_atn_ulcs_RDNSequence, RDNSequence_sequence_of,
- 1, 1, FALSE);
+ 1, 1, false);
#.END
@@ -447,7 +447,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
*/
offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
ett_atn_ulcs_RelativeDistinguishedName, RelativeDistinguishedName_set_of,
- 1, 1, FALSE);
+ 1, 1, false);
#.END
@@ -461,9 +461,9 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
hf_index,
-1,
-1,
- FALSE,
+ false,
&actx->external.data_value_descriptor);
- actx->external.data_value_descr_present = TRUE;
+ actx->external.data_value_descr_present = true;
#.END
@@ -493,7 +493,7 @@ PDV-list/presentation-data-values/arbitrary pdv-list_presentation-data-values_ar
tree, hf_index,
NO_BOUND,
NO_BOUND,
- FALSE,
+ false,
NULL,
0,
&tvb_usr,
diff --git a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
index 18e32836..33b22531 100644
--- a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
+++ b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
@@ -4,28 +4,26 @@
*
* 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
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://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
+ * We are dealing with ATN/ULCS aka ICAO Doc 9705 Second Edition here
* (don't think there is an ULCS equivalent for "FANS-1/A ").
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
+ *
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
@@ -38,10 +36,10 @@
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).
+ (it's PER instead of BER encoding to save bandwidth).
Session and presentation use the "null" encoding option,
meaning that they are only present at connection establishment
- and ommitted otherwise.
+ and omitted otherwise.
Instead of adapting existing dissectors it seemed simpler and cleaner
to implement everything the new atn-ulcs dissector.
@@ -104,6 +102,7 @@ which ATN standard is supported ?
#include <epan/packet.h>
#include <epan/address.h>
#include <epan/conversation.h>
+#include <wsutil/array.h>
#include <epan/osi-utils.h>
#include "packet-ber.h"
#include "packet-per.h"
@@ -118,18 +117,18 @@ 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 dissector_handle_t atn_cm_handle;
+static dissector_handle_t atn_cpdlc_handle;
-static int proto_atn_ulcs = -1;
-static guint32 ulcs_context_value = 0;
+static int proto_atn_ulcs;
+static uint32_t ulcs_context_value;
static const char *object_identifier_id;
-static wmem_tree_t *aarq_data_tree = NULL;
-static wmem_tree_t *atn_conversation_tree = NULL;
+static wmem_tree_t *aarq_data_tree;
+static wmem_tree_t *atn_conversation_tree;
-static proto_tree *root_tree = NULL;
+static proto_tree *root_tree;
/* forward declarations for functions generated from asn1 */
static int dissect_atn_ulcs_T_externalt_encoding_single_asn1_type(
@@ -160,15 +159,15 @@ static int dissect_ACSE_apdu_PDU(
proto_tree *tree _U_,
void *data _U_);
-guint32 dissect_per_object_descriptor_t(
+uint32_t dissect_per_object_descriptor_t(
tvbuff_t *tvb,
- guint32 offset,
+ uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree,
int hf_index,
tvbuff_t **value_tvb);
-static gint dissect_atn_ulcs(
+static int dissect_atn_ulcs(
tvbuff_t *tvb,
packet_info *pinfo,
proto_tree *tree,
@@ -177,8 +176,8 @@ static gint dissect_atn_ulcs(
#include "packet-atn-ulcs-hf.c"
#include "packet-atn-ulcs-ett.c"
-static gint ett_atn_ulcs = -1;
-static gint ett_atn_acse = -1;
+static int ett_atn_ulcs;
+static int ett_atn_acse;
#include "packet-atn-ulcs-fn.c"
@@ -223,30 +222,30 @@ static const per_choice_t External_encoding_choice[] =
#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 int hf_atn_ses_type;
+static int hf_atn_ses_param_ind;
+static int hf_atn_ses_param_b1;
+static int hf_atn_ses_param_b2;
-static gint ett_atn_ses = -1;
+static int ett_atn_ses;
#define ATN_SES_PROTO "ICAO Doc9705 ULCS Session (ISO 8326/8327-1:1994)"
-const value_string atn_ses_param_ind[] =
+static const value_string atn_ses_param_ind[] =
{
{0, "No Parameter Indication "},
{1, "Parameter Indication "},
{0, NULL }
};
-const value_string srf_b2[] =
+static const value_string srf_b2[] =
{
{0, "Transport Connection is kept"},
{1, "Transport Connection is released" },
{0, NULL }
};
-const value_string srf_b1[] =
+static const value_string srf_b1[] =
{
{0, "Transport Connection is transient"},
{1, "Transport Connection is persistent"},
@@ -260,7 +259,7 @@ const value_string srf_b1[] =
#define SES_ATN_SRF 0xe0
#define SES_ATN_SRFC 0xa0
-const value_string atn_ses_type[] =
+static const value_string atn_ses_type[] =
{
{ 0x1d, "Short Connect (SCN) SPDU" },
{ 0x1f, "Short Connect Accept (SAC) SPDU" },
@@ -273,15 +272,15 @@ const value_string atn_ses_type[] =
/* 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;
+static int hf_atn_pres_err;
+static int hf_atn_pres_pdu_type;
+static int ett_atn_pres;
#define ATN_SES_PRES_MASK 0xf803
#define PRES_CPR_ER_MASK 0x70
/* type determined by SPDU and PPDU */
-const value_string atn_pres_vals[] =
+static const value_string atn_pres_vals[] =
{
{ 0xe802, "Short Presentation Connect PPDU (CP) " },
{ 0xf802, "Short Presentation Connect PPDU (CP) " },
@@ -293,7 +292,7 @@ const value_string atn_pres_vals[] =
};
/* Short Presentation Connect Reject PPDU's 0yyy 00zz */
-const value_string atn_pres_err[] =
+static const value_string atn_pres_err[] =
{
{ 0x00, "Presentation-user" },
{ 0x01, "Reason not specified (transient)"},
@@ -329,9 +328,9 @@ static int atn_ulcs_Externalt_encoding(
}
/* re-implementing external data: packet-per.c */
-static guint32 atn_per_external_type(
+static uint32_t atn_per_external_type(
tvbuff_t *tvb _U_,
- guint32 offset,
+ uint32_t offset,
asn1_ctx_t *actx,
proto_tree *tree _U_,
int hf_index _U_,
@@ -363,12 +362,12 @@ static guint32 atn_per_external_type(
/* determine 24-bit aircraft address(ARS) */
/* from 20-byte ATN NSAP. */
-guint32 get_aircraft_24_bit_address_from_nsap(
+uint32_t get_aircraft_24_bit_address_from_nsap(
packet_info *pinfo)
{
- const guint8* addr = NULL;
- guint32 ars =0;
- guint32 adr_prefix =0;
+ const uint8_t* addr = NULL;
+ uint32_t ars =0;
+ uint32_t adr_prefix =0;
/* check NSAP address type*/
if( (pinfo->src.type != get_osi_address_type()) ||
@@ -386,7 +385,7 @@ guint32 get_aircraft_24_bit_address_from_nsap(
/* from an aircraft it's downlink */
/* convert addr into 32-bit integer */
- addr = (const guint8 *)pinfo->src.data;
+ addr = (const uint8_t *)pinfo->src.data;
adr_prefix =
((addr[0]<<24) |
(addr[1]<<16) |
@@ -400,7 +399,7 @@ guint32 get_aircraft_24_bit_address_from_nsap(
if((adr_prefix == 0x470027c1) ||
(adr_prefix == 0x47002741)) {
/* ICAO doc9507 Ed2 SV5 5.4.3.8.4.4 */
- /* states that the ARS subfield containes */
+ /* states that the ARS subfield contains */
/* the 24-bitaddress of the aircraft */
ars = ((addr[8])<<16) |
((addr[9])<<8) |
@@ -412,7 +411,7 @@ guint32 get_aircraft_24_bit_address_from_nsap(
/* from an aircraft it's downlink */
/* convert addr into 32-bit integer */
- addr = (const guint8 *)pinfo->dst.data;
+ addr = (const uint8_t *)pinfo->dst.data;
adr_prefix = ((addr[0]<<24) |
(addr[1]<<16) |
(addr[2]<<8) |
@@ -425,7 +424,7 @@ guint32 get_aircraft_24_bit_address_from_nsap(
if((adr_prefix == 0x470027c1) ||
(adr_prefix == 0x47002741)) {
/* ICAO doc9507 Ed2 SV5 5.4.3.8.4.4 */
- /* states that the ARS subfield containes */
+ /* states that the ARS subfield contains */
/* the 24-bitaddress of the aircraft */
ars = ((addr[8])<<16) |
((addr[9])<<8) |
@@ -435,12 +434,12 @@ guint32 get_aircraft_24_bit_address_from_nsap(
}
/* determine whether a PDU is uplink or downlink */
-/* by checking for known aircraft address prefices*/
+/* by checking for known aircraft address prefixes*/
int check_heur_msg_type(packet_info *pinfo _U_)
{
int t = no_msg;
- const guint8* addr = NULL;
- guint32 adr_prefix =0;
+ const uint8_t* addr = NULL;
+ uint32_t adr_prefix =0;
/* check NSAP address type*/
if( (pinfo->src.type != get_osi_address_type()) || (pinfo->dst.type != get_osi_address_type())) {
@@ -450,7 +449,7 @@ int check_heur_msg_type(packet_info *pinfo _U_)
if( (pinfo->src.len != 20) || (pinfo->dst.len != 20)) {
return t; }
- addr = (const guint8 *)pinfo->src.data;
+ addr = (const uint8_t *)pinfo->src.data;
/* convert address to 32-bit integer */
adr_prefix = ((addr[0]<<24) | (addr[1]<<16) | (addr[2]<<8) | addr[3] );
@@ -463,7 +462,7 @@ int check_heur_msg_type(packet_info *pinfo _U_)
t = dm; /* source is an aircraft: it's a downlink PDU */
}
- addr = (const guint8 *)pinfo->dst.data;
+ addr = (const uint8_t *)pinfo->dst.data;
/* convert address to 32-bit integer */
adr_prefix = ((addr[0]<<24) | (addr[1]<<16) | (addr[2]<<8) | addr[3] );
@@ -492,12 +491,12 @@ wmem_tree_t *get_atn_conversation_tree(void){
/* at transport layer (cotp) but this isn't working yet. */
atn_conversation_t * find_atn_conversation(
address *address1,
- guint16 clnp_ref1,
+ uint16_t clnp_ref1,
address *address2 )
{
atn_conversation_t *cv = NULL;
- guint32 key = 0;
- guint32 tmp = 0;
+ uint32_t key = 0;
+ uint32_t tmp = 0;
tmp = add_address_to_hash( tmp, address1);
key = (tmp << 16) | clnp_ref1 ;
@@ -517,13 +516,13 @@ atn_conversation_t * find_atn_conversation(
/* a conversation may be referenced from both endpoints */
atn_conversation_t * create_atn_conversation(
address *address1,
- guint16 clnp_ref1,
+ uint16_t clnp_ref1,
address *address2,
atn_conversation_t *conversation)
{
atn_conversation_t *cv = NULL;
- guint32 key = 0;
- guint32 tmp = 0;
+ uint32_t key = 0;
+ uint32_t tmp = 0;
tmp = add_address_to_hash( tmp, address1);
key = (tmp << 16) | clnp_ref1 ;
@@ -560,15 +559,15 @@ dissect_atn_ulcs(
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;
+ uint8_t value_pres = 0;
+ uint8_t value_ses = 0;
+ uint16_t value_ses_pres = 0;
root_tree = tree;
/* data pointer */
/* decode as PDV-list */
- if ( (int)(intptr_t) data == FALSE )
+ if ( (int)(intptr_t) data == false )
{
ti = proto_tree_add_item(
tree,
@@ -592,7 +591,7 @@ dissect_atn_ulcs(
}
/* decode as SPDU, PPDU and ACSE PDU */
- if ( (int)(intptr_t) data == TRUE )
+ if ( (int)(intptr_t) data == true )
{
/* get session and presentation PDU's */
value_ses_pres = tvb_get_ntohs(tvb, offset);
@@ -603,7 +602,7 @@ dissect_atn_ulcs(
ett_atn_ses, NULL, ATN_SES_PROTO );
/* get SPDU (1 octet) */
- value_ses = tvb_get_guint8(tvb, offset);
+ value_ses = tvb_get_uint8(tvb, offset);
/* SPDU type/identifier */
proto_tree_add_item(atn_ulcs_tree,
@@ -654,7 +653,7 @@ dissect_atn_ulcs(
tree, tvb, offset, 0,
ett_atn_pres, NULL, ATN_PRES_PROTO );
- value_pres = tvb_get_guint8(tvb, offset);
+ value_pres = tvb_get_uint8(tvb, offset);
/* need session context to identify PPDU type */
/* note: */
@@ -701,7 +700,7 @@ dissect_atn_ulcs(
return offset;
}
-static gboolean dissect_atn_ulcs_heur(
+static bool dissect_atn_ulcs_heur(
tvbuff_t *tvb,
packet_info *pinfo,
proto_tree *tree,
@@ -710,7 +709,7 @@ static gboolean dissect_atn_ulcs_heur(
/* do we have enough data*/
/* at least session + presentation data or pdv-list */
if (tvb_captured_length(tvb) < 2){
- return FALSE; }
+ return false; }
/* check for session/presentation/ACSE PDU's */
/* SPDU and PPDU are one octet each */
@@ -742,8 +741,8 @@ static gboolean dissect_atn_ulcs_heur(
tvb,
pinfo,
tree,
- (void*) TRUE);
- return TRUE;
+ (void*) true);
+ return true;
default: /* no SPDU */
break;
}
@@ -760,13 +759,12 @@ static gboolean dissect_atn_ulcs_heur(
/* 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;
+ dissect_atn_ulcs(tvb, pinfo, tree, (void*) false);
+ return true;
default: /* no or unsupported PDU */
break;
}
- return FALSE;
+ return false;
}
void proto_register_atn_ulcs (void)
@@ -827,7 +825,7 @@ void proto_register_atn_ulcs (void)
HFILL}},
};
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-atn-ulcs-ettarr.c"
&ett_atn_ses,
&ett_atn_pres,
@@ -855,7 +853,7 @@ void proto_register_atn_ulcs (void)
proto_atn_ulcs);
/* initiate sub dissector list */
- atn_ulcs_heur_subdissector_list = register_heur_dissector_list("atn-ulcs", proto_atn_ulcs);
+ atn_ulcs_heur_subdissector_list = register_heur_dissector_list_with_description("atn-ulcs", "ATN-ULCS unhandled data", proto_atn_ulcs);
/* init aare/aare data */
aarq_data_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
diff --git a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h
index 872403f8..6e2134bb 100644
--- a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h
+++ b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.h
@@ -33,18 +33,18 @@ enum ae_qualifier {
};
typedef struct atn_conversation_t {
- gint ae_qualifier; /* A/G application type */
+ int ae_qualifier; /* A/G application type */
} atn_conversation_t;
atn_conversation_t * create_atn_conversation(
address*,
- guint16,
+ uint16_t,
address*,
atn_conversation_t*);
atn_conversation_t * find_atn_conversation(
address*,
- guint16,
+ uint16_t,
address*);
/* struct for conversation data reconstruction used in AARQ and AARE */
@@ -53,16 +53,16 @@ atn_conversation_t * find_atn_conversation(
/* 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) */
+ bool 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 */
+ /* during simultaneous 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 *);
+uint32_t get_aircraft_24_bit_address_from_nsap(packet_info *);
int check_heur_msg_type(packet_info *);
#endif
diff --git a/epan/dissectors/asn1/c1222/c1222.cnf b/epan/dissectors/asn1/c1222/c1222.cnf
index d3bf6dd5..51e6d8af 100644
--- a/epan/dissectors/asn1/c1222/c1222.cnf
+++ b/epan/dissectors/asn1/c1222/c1222.cnf
@@ -23,10 +23,10 @@ AP-invocation-id TYPE=FT_UINT32
AE-qualifier TYPE=FT_UINT32
#.FN_BODY User-information
- gint8 end_device_class;
+ int8_t end_device_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
proto_item *tf = NULL;
proto_tree *epsem_tree = NULL;
FILL_START;
diff --git a/epan/dissectors/asn1/c1222/packet-c1222-template.c b/epan/dissectors/asn1/c1222/packet-c1222-template.c
index 276a9278..bdf27c0e 100644
--- a/epan/dissectors/asn1/c1222/packet-c1222-template.c
+++ b/epan/dissectors/asn1/c1222/packet-c1222-template.c
@@ -19,6 +19,7 @@
#include <epan/uat.h>
#include <epan/oids.h>
#include <wsutil/eax.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-tcp.h"
#include "packet-c1222.h"
@@ -37,8 +38,8 @@
#define C1222_EPSEM_FLAG_RESPONSE_CONTROL 0x03
#define C1222_PROCEDURE_RESPONSE 0xf000
-#define C1222_PROCEDURE_MFG 0x800
-#define C1222_PROCEDURE_NUMBER 0x7ff
+#define C1222_PROCEDURE_MFG 0x0800
+#define C1222_PROCEDURE_NUMBER 0x07ff
/* if the packet is encrypted, it can be
* good, bad, or simply not checked
@@ -66,22 +67,22 @@
void proto_register_c1222(void);
-static dissector_handle_t c1222_handle=NULL;
-static dissector_handle_t c1222_udp_handle=NULL;
+static dissector_handle_t c1222_handle;
+static dissector_handle_t c1222_udp_handle;
/* Initialize the protocol and registered fields */
-static int proto_c1222 = -1;
+static int proto_c1222;
#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;
+static int hf_c1222_epsem_flags;
+static int hf_c1222_epsem_flags_reserved;
+static int hf_c1222_epsem_flags_recovery;
+static int hf_c1222_epsem_flags_proxy;
+static int hf_c1222_epsem_flags_ed_class;
+static int hf_c1222_epsem_flags_security_modes;
+static int hf_c1222_epsem_flags_response_control;
/* and the structure of the flag components */
static int * const c1222_flags[] = {
&hf_c1222_epsem_flags_reserved,
@@ -93,112 +94,112 @@ static int * const c1222_flags[] = {
NULL
};
/* next the optional ed_class */
-static int hf_c1222_epsem_ed_class = -1;
+static int hf_c1222_epsem_ed_class;
/* now the aggregate epsem */
-static int hf_c1222_epsem_total = -1;
+static int hf_c1222_epsem_total;
/* generic command */
-static int hf_c1222_cmd = -1;
-static int hf_c1222_err = -1;
-static int hf_c1222_data = -1;
+static int hf_c1222_cmd;
+static int hf_c1222_err;
+static int hf_c1222_data;
/* 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_response = -1;
-static int hf_c1222_procedure_mfg = -1;
-static int hf_c1222_procedure_num = -1;
-static int hf_c1222_procedure_sequence = -1;
-static int hf_c1222_write_chksum = -1;
-static int hf_c1222_write_chksum_status = -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;
+static int hf_c1222_logon_id;
+static int hf_c1222_logon_user;
+static int hf_c1222_security_password;
+static int hf_c1222_auth_len;
+static int hf_c1222_auth_data;
+static int hf_c1222_read_table;
+static int hf_c1222_read_offset;
+static int hf_c1222_read_count;
+static int hf_c1222_write_table;
+static int hf_c1222_write_offset;
+static int hf_c1222_write_size;
+static int hf_c1222_write_data;
+static int hf_c1222_procedure_response;
+static int hf_c1222_procedure_mfg;
+static int hf_c1222_procedure_num;
+static int hf_c1222_procedure_sequence;
+static int hf_c1222_write_chksum;
+static int hf_c1222_write_chksum_status;
+static int hf_c1222_wait_secs;
+static int hf_c1222_neg_pkt_size;
+static int hf_c1222_neg_nbr_pkts;
+static int hf_c1222_timing_setup_traffic;
+static int hf_c1222_timing_setup_inter_char;
+static int hf_c1222_timing_setup_resp_to;
+static int hf_c1222_timing_setup_nbr_retries;
/* the MAC */
-static int hf_c1222_epsem_mac = -1;
+static int hf_c1222_epsem_mac;
/* crypto result flags */
-static int hf_c1222_epsem_crypto_good = -1;
-static int hf_c1222_epsem_crypto_bad = -1;
+static int hf_c1222_epsem_crypto_good;
+static int hf_c1222_epsem_crypto_bad;
/* 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;
+static int ett_c1222;
+static int ett_c1222_epsem;
+static int ett_c1222_flags;
+static int ett_c1222_crypto;
+static int ett_c1222_cmd;
/* 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;
+static uint8_t *aSO_context;
+static uint8_t *called_AP_title;
+static uint8_t *called_AP_invocation_id;
+static uint8_t *calling_AE_qualifier;
+static uint8_t *calling_AP_invocation_id;
+static uint8_t *mechanism_name;
+static uint8_t *calling_authentication_value;
+static uint8_t *user_information;
+static uint8_t *calling_AP_title;
+static uint8_t *key_id_element;
+static uint8_t *iv_element;
/* 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;
+static uint32_t aSO_context_len;
+static uint32_t called_AP_title_len;
+static uint32_t called_AP_invocation_id_len;
+static uint32_t calling_AE_qualifier_len;
+static uint32_t calling_AP_invocation_id_len;
+static uint32_t mechanism_name_len;
+static uint32_t calling_authentication_value_len;
+static uint32_t user_information_len;
+static uint32_t calling_AP_title_len;
+static uint32_t key_id_element_len;
+static uint32_t iv_element_len;
/* these are the related allocation sizes (which might be different from the lengths) */
-static guint32 aSO_context_allocated = 0;
-static guint32 called_AP_title_allocated = 0;
-static guint32 called_AP_invocation_id_allocated = 0;
-static guint32 calling_AE_qualifier_allocated = 0;
-static guint32 calling_AP_invocation_id_allocated = 0;
-static guint32 mechanism_name_allocated = 0;
-static guint32 calling_authentication_value_allocated = 0;
-static guint32 user_information_allocated = 0;
-static guint32 calling_AP_title_allocated = 0;
-static guint32 key_id_element_allocated = 0;
-static guint32 iv_element_allocated = 0;
+static uint32_t aSO_context_allocated;
+static uint32_t called_AP_title_allocated;
+static uint32_t called_AP_invocation_id_allocated;
+static uint32_t calling_AE_qualifier_allocated;
+static uint32_t calling_AP_invocation_id_allocated;
+static uint32_t mechanism_name_allocated;
+static uint32_t calling_authentication_value_allocated;
+static uint32_t user_information_allocated;
+static uint32_t calling_AP_title_allocated;
+static uint32_t key_id_element_allocated;
+static uint32_t iv_element_allocated;
#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;
-static expert_field ei_c1222_epsem_failed_authentication = EI_INIT;
-static expert_field ei_c1222_epsem_not_decrypted = 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;
+static expert_field ei_c1222_command_truncated;
+static expert_field ei_c1222_bad_checksum;
+static expert_field ei_c1222_epsem_missing;
+static expert_field ei_c1222_epsem_failed_authentication;
+static expert_field ei_c1222_epsem_not_decrypted;
+static expert_field ei_c1222_ed_class_missing;
+static expert_field ei_c1222_epsem_ber_length_error;
+static expert_field ei_c1222_epsem_field_length_error;
+static expert_field ei_c1222_mac_missing;
/* Preferences */
-static gboolean c1222_desegment = TRUE;
-static gboolean c1222_decrypt = TRUE;
-static gboolean c1222_big_endian = FALSE;
-static const gchar *c1222_baseoid_str = NULL;
-static guint8 *c1222_baseoid = NULL;
-static guint c1222_baseoid_len = 0;
+static bool c1222_desegment = true;
+static bool c1222_decrypt = true;
+static bool c1222_big_endian;
+static const char *c1222_baseoid_str;
+static uint8_t *c1222_baseoid;
+static unsigned c1222_baseoid_len;
/*------------------------------
* Data Structures
@@ -296,37 +297,37 @@ static const value_string commandnames[] = {
/* these are for the key tables */
typedef struct _c1222_uat_data {
- guint keynum;
- guchar *key;
- guint keylen;
+ unsigned keynum;
+ unsigned char *key;
+ unsigned 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 c1222_uat_data_t *c1222_uat_data;
+static unsigned num_c1222_uat_data;
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(actx->pinfo->pool, tvb, start_offset, length); \
+ fieldname = (uint8_t *)tvb_memdup(actx->pinfo->pool, tvb, start_offset, length); \
fieldname##_len = length; \
fieldname##_allocated = length;
#define FILL_TABLE_TRUNCATE(fieldname, len) \
length = 1 + 2*(offset - start_offset); \
- fieldname = (guint8 *)tvb_memdup(actx->pinfo->pool, tvb, start_offset, length); \
+ fieldname = (uint8_t *)tvb_memdup(actx->pinfo->pool, tvb, start_offset, length); \
fieldname##_len = len; \
fieldname##_allocated = length;
#define FILL_TABLE_APTITLE(fieldname) \
length = offset - start_offset; \
- switch (tvb_get_guint8(tvb, start_offset)) { \
+ switch (tvb_get_uint8(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(actx->pinfo->pool, fieldname##_len); \
+ fieldname = (uint8_t *)wmem_alloc(actx->pinfo->pool, fieldname##_len); \
fieldname##_allocated = fieldname##_len; \
fieldname[0] = 0x06; /* create absolute OID tag */ \
fieldname[1] = (fieldname##_len - 2) & 0xff; \
@@ -335,7 +336,7 @@ static uat_t *c1222_uat;
break; \
case 0x06: /* absolute OID */ \
default: \
- fieldname = (guint8 *)tvb_memdup(actx->pinfo->pool, tvb, start_offset, length); \
+ fieldname = (uint8_t *)tvb_memdup(actx->pinfo->pool, tvb, start_offset, length); \
fieldname##_len = length; \
fieldname##_allocated = length; \
break; \
@@ -361,12 +362,12 @@ void proto_reg_handoff_c1222(void);
* \param len length of data to be checksummed
* \returns calculated checksum
*/
-static guint8
-c1222_cksum(tvbuff_t *tvb, gint offset, int len)
+static uint8_t
+c1222_cksum(tvbuff_t *tvb, int offset, int len)
{
- guint8 sum;
+ uint8_t sum;
for (sum = 0; len; offset++, len--)
- sum += tvb_get_guint8(tvb, offset);
+ sum += tvb_get_uint8(tvb, offset);
return ~sum + 1;
}
/**
@@ -379,27 +380,27 @@ c1222_cksum(tvbuff_t *tvb, gint offset, int len)
* \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)
+parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cmd, uint32_t *length, int *offset)
{
- guint16 user_id = 0;
- const guint8 *user_name = NULL;
- const guint8 *password = NULL;
- guint8 auth_len = 0;
- gchar *auth_req = NULL;
- guint16 table = 0;
- guint16 tblsize = 0;
- guint16 calcsum = 0;
- guint8 wait_seconds = 0;
- guint8 proc_seq = 0;
+ uint16_t user_id = 0;
+ const uint8_t *user_name = NULL;
+ const uint8_t *password = NULL;
+ uint8_t auth_len = 0;
+ char *auth_req = NULL;
+ uint16_t table = 0;
+ uint16_t tblsize = 0;
+ uint16_t calcsum = 0;
+ uint8_t wait_seconds = 0;
+ uint8_t proc_seq = 0;
int numrates = 0;
- guint16 packet_size;
- guint16 procedure_num = 0;
- guint8 nbr_packet;
+ uint16_t packet_size;
+ uint16_t procedure_num = 0;
+ uint8_t nbr_packet;
/* timing setup parameters */
- guint8 traffic;
- guint8 inter_char;
- guint8 resp_to;
- guint8 nbr_retries;
+ uint8_t traffic;
+ uint8_t inter_char;
+ uint8_t resp_to;
+ uint8_t nbr_retries;
/* special case to simplify handling of Negotiate service */
if ((cmd & 0xF0) == C1222_CMD_NEGOTIATE) {
@@ -446,7 +447,7 @@ parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cm
break;
case C1222_CMD_AUTHENTICATE:
if (*length >= 1) {
- auth_len = tvb_get_guint8(tvb, *offset);
+ auth_len = tvb_get_uint8(tvb, *offset);
proto_tree_add_uint(tree, hf_c1222_auth_len, tvb, *offset, 1, auth_len);
*offset += 1;
if (*length >= auth_len) {
@@ -507,13 +508,13 @@ parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cm
*length -= 2;
if (*length >= tblsize+1U) {
if (table == 7) {/* is it a procedure call? */
- procedure_num = tvb_get_guint16(tvb, *offset, c1222_big_endian ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN);
+ procedure_num = tvb_get_uint16(tvb, *offset, c1222_big_endian ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN);
proto_tree_add_uint(tree, hf_c1222_procedure_response, tvb, *offset, 2, procedure_num);
proto_tree_add_uint(tree, hf_c1222_procedure_mfg, tvb, *offset, 2, procedure_num);
proto_tree_add_uint(tree, hf_c1222_procedure_num, tvb, *offset, 2, procedure_num);
*offset += 2;
*length -= 2;
- proc_seq = tvb_get_guint8(tvb, *offset);
+ proc_seq = tvb_get_uint8(tvb, *offset);
proto_tree_add_uint(tree, hf_c1222_procedure_sequence, tvb, *offset, 1, proc_seq);
*offset += 1;
*length -= 1;
@@ -583,7 +584,7 @@ parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cm
break;
case C1222_CMD_WAIT:
if (*length >= 1) {
- wait_seconds = tvb_get_guint8(tvb, *offset);
+ wait_seconds = tvb_get_uint8(tvb, *offset);
proto_tree_add_uint(tree, hf_c1222_wait_secs, tvb, *offset, 1, wait_seconds);
*offset += 1;
*length -= 1;
@@ -599,7 +600,7 @@ parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cm
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);
+ nbr_packet = tvb_get_uint8(tvb, *offset);
proto_tree_add_uint(tree, hf_c1222_neg_nbr_pkts, tvb, *offset, 1, nbr_packet);
*offset += 1;
*length -= 1;
@@ -611,19 +612,19 @@ parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cm
break;
case C1222_CMD_TIMING_SETUP:
if (*length >= 4) {
- traffic = tvb_get_guint8(tvb, *offset);
+ traffic = tvb_get_uint8(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);
+ inter_char = tvb_get_uint8(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);
+ resp_to = tvb_get_uint8(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);
+ nbr_retries = tvb_get_uint8(tvb, *offset);
proto_tree_add_uint(tree, hf_c1222_timing_setup_nbr_retries, tvb, *offset, 1, nbr_retries);
*offset += 1;
*length -= 1;
@@ -646,35 +647,35 @@ parse_c1222_detailed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int cm
typedef struct tagTOP_ELEMENT_CONTROL
{
- /* TRUE if this tag is required */
- gboolean required;
- /* TRUE if we must truncate this tag */
- gboolean truncate;
+ /* true if this tag is required */
+ bool required;
+ /* true if we must truncate this tag */
+ bool truncate;
/* actual hex value of the tag we're seeking */
- guint8 tag;
- /* if TRUE, add tag and length before copying */
- gboolean addtag;
+ uint8_t tag;
+ /* if true, add tag and length before copying */
+ bool addtag;
/* pointer to pointer to memory copy of element */
- guint8 **element;
+ uint8_t **element;
/* pointer to element length */
- guint32 *length;
+ uint32_t *length;
/* pointer to element allocated size */
- guint32 *allocated;
+ uint32_t *allocated;
} TOP_ELEMENT_CONTROL;
static const TOP_ELEMENT_CONTROL canonifyTable[] = {
- { FALSE, FALSE, 0xA1, TRUE, &aSO_context, &aSO_context_len, &aSO_context_allocated },
- { TRUE , FALSE, 0xA2, TRUE, &called_AP_title, &called_AP_title_len, &called_AP_title_allocated },
- { FALSE, FALSE, 0xA4, TRUE, &called_AP_invocation_id, &called_AP_invocation_id_len, &called_AP_invocation_id_allocated },
- { FALSE, FALSE, 0xA7, TRUE, &calling_AE_qualifier, &calling_AE_qualifier_len, &calling_AE_qualifier_allocated },
- { TRUE, FALSE, 0xA8, TRUE, &calling_AP_invocation_id, &calling_AP_invocation_id_len, &calling_AP_invocation_id_allocated },
- { FALSE, FALSE, 0x8B, TRUE, &mechanism_name, &mechanism_name_len, &mechanism_name_allocated },
- { FALSE, FALSE, 0xAC, TRUE, &calling_authentication_value, &calling_authentication_value_len, &calling_authentication_value_allocated },
- { TRUE , TRUE , 0xBE, TRUE, &user_information, &user_information_len, &user_information_allocated },
- { FALSE, FALSE, 0xA6, TRUE, &calling_AP_title, &calling_AP_title_len, &calling_AP_title_allocated },
- { FALSE, FALSE, 0xAC, FALSE, &key_id_element, &key_id_element_len, &key_id_element_allocated },
- { FALSE, FALSE, 0xAC, FALSE, &iv_element, &iv_element_len, &iv_element_allocated },
- { FALSE, FALSE, 0x0, TRUE, NULL, NULL, NULL }
+ { false, false, 0xA1, true, &aSO_context, &aSO_context_len, &aSO_context_allocated },
+ { true , false, 0xA2, true, &called_AP_title, &called_AP_title_len, &called_AP_title_allocated },
+ { false, false, 0xA4, true, &called_AP_invocation_id, &called_AP_invocation_id_len, &called_AP_invocation_id_allocated },
+ { false, false, 0xA7, true, &calling_AE_qualifier, &calling_AE_qualifier_len, &calling_AE_qualifier_allocated },
+ { true, false, 0xA8, true, &calling_AP_invocation_id, &calling_AP_invocation_id_len, &calling_AP_invocation_id_allocated },
+ { false, false, 0x8B, true, &mechanism_name, &mechanism_name_len, &mechanism_name_allocated },
+ { false, false, 0xAC, true, &calling_authentication_value, &calling_authentication_value_len, &calling_authentication_value_allocated },
+ { true , true , 0xBE, true, &user_information, &user_information_len, &user_information_allocated },
+ { false, false, 0xA6, true, &calling_AP_title, &calling_AP_title_len, &calling_AP_title_allocated },
+ { false, false, 0xAC, false, &key_id_element, &key_id_element_len, &key_id_element_allocated },
+ { false, false, 0xAC, false, &iv_element, &iv_element_len, &iv_element_allocated },
+ { false, false, 0x0, true, NULL, NULL, NULL }
};
static void
@@ -694,10 +695,10 @@ clear_canon(void)
* \param n is the length value to be BER encoded
* \returns the sized of the encoding
*/
-static guint32
-get_ber_len_size(guint32 n)
+static uint32_t
+get_ber_len_size(uint32_t n)
{
- guint32 len = 1;
+ uint32_t len = 1;
if (n > 0x7f) len++;
if (n > 0xff) len++;
if (n > 0xffff) len++;
@@ -713,7 +714,7 @@ get_ber_len_size(guint32 n)
* \returns length of encoded value in bytes
*/
static int
-encode_ber_len(guint8 *ptr, guint32 n, int maxsize)
+encode_ber_len(uint8_t *ptr, uint32_t n, int maxsize)
{
int len = get_ber_len_size(n);
if (len > maxsize) return 0;
@@ -736,7 +737,7 @@ c1222_uat_data_copy_cb(void *dest, const void *source, size_t len _U_)
d->keynum = o->keynum;
d->keylen = o->keylen;
- d->key = (guchar *)g_memdup2(o->key, o->keylen);
+ d->key = (unsigned char *)g_memdup2(o->key, o->keylen);
return dest;
}
@@ -746,7 +747,7 @@ c1222_uat_data_copy_cb(void *dest, const void *source, size_t len _U_)
*
* \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
+ * \return false if error; true otherwise
*/
static bool
c1222_uat_data_update_cb(void* n, char** err)
@@ -755,13 +756,13 @@ c1222_uat_data_update_cb(void* n, char** err)
if (new_rec->keynum > 0xff) {
*err = g_strdup("Invalid key number; must be less than 256");
- return FALSE;
+ return false;
}
if (new_rec->keylen != EAX_SIZEOF_KEY) {
*err = g_strdup("Invalid key size; must be 16 bytes");
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
static void
@@ -778,20 +779,20 @@ c1222_uat_data_free_cb(void *r)
* \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
+ * \return false if element is required and not present; otherwise true
*/
-static gboolean
-canonify_unencrypted_header(guchar *buff, guint32 *offset, guint32 buffsize)
+static bool
+canonify_unencrypted_header(unsigned char *buff, uint32_t *offset, uint32_t buffsize)
{
const TOP_ELEMENT_CONTROL *t = canonifyTable;
- guint32 len, allocated;
+ uint32_t len, allocated;
for (t = canonifyTable; t->element != NULL; t++)
{
len = *(t->length);
allocated = *(t->allocated);
if (t->required && *(t->element) == NULL)
- return FALSE;
+ return false;
if (*(t->element) != NULL) {
if (t->addtag) {
/* recreate original tag and length */
@@ -804,12 +805,12 @@ canonify_unencrypted_header(guchar *buff, guint32 *offset, guint32 buffsize)
/* bail out if the cannonization buffer is too small */
/* this should never happen! */
if (buffsize < *offset + len) {
- return FALSE;
+ return false;
}
/* bail out if our we're trying to read past the end of our element */
/* the network is always hostile */
if (allocated < len) {
- return FALSE;
+ return false;
}
memcpy(&buff[*offset], *(t->element), len);
(*offset) += len;
@@ -818,7 +819,7 @@ canonify_unencrypted_header(guchar *buff, guint32 *offset, guint32 buffsize)
}
}
}
- return TRUE;
+ return true;
}
/**
@@ -826,22 +827,22 @@ canonify_unencrypted_header(guchar *buff, guint32 *offset, guint32 buffsize)
*
* \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
+ * \returns true if key was found; otherwise false
*/
-static gboolean
-keylookup(guint8 *keybuff, guint8 keyid)
+static bool
+keylookup(uint8_t *keybuff, uint8_t keyid)
{
- guint i;
+ unsigned i;
if (c1222_uat_data == NULL)
- return FALSE;
+ 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 true;
}
}
- return FALSE;
+ return false;
}
/**
@@ -850,18 +851,18 @@ keylookup(guint8 *keybuff, guint8 keyid)
* \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
+ * \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)
+static bool
+decrypt_packet(unsigned char *buffer, uint32_t length, bool decrypt)
{
#define CANONBUFFSIZE 300U
- guchar canonbuff[CANONBUFFSIZE];
- guint8 c1222_key[EAX_SIZEOF_KEY];
- guchar key_id = 0;
- guint32 offset = 0;
- gboolean status = FALSE;
+ unsigned char canonbuff[CANONBUFFSIZE];
+ uint8_t c1222_key[EAX_SIZEOF_KEY];
+ unsigned char key_id = 0;
+ uint32_t offset = 0;
+ bool status = false;
/* must be at least 4 bytes long to include the MAC */
if (length < 4)
@@ -880,11 +881,11 @@ decrypt_packet(guchar *buffer, guint32 length, gboolean decrypt)
/* 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. */
+/* 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;
+ if (!keylookup((uint8_t *)&c1222_key, key_id))
+ return false;
status = Eax_Decrypt(canonbuff, c1222_key, buffer,
offset, EAX_SIZEOF_KEY, length-4,
(MAC_T *)&buffer[length-4],
@@ -898,39 +899,39 @@ decrypt_packet(guchar *buffer, guint32 length, gboolean decrypt)
*
* \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
+ * \returns true if a complete, valid BER-encoded length is in the buffer; otherwise false
*/
-static gboolean
+static bool
ber_len_ok(tvbuff_t *tvb, int offset)
{
- guint8 ch;
+ uint8_t ch;
if (tvb_offset_exists(tvb, offset)) {
- ch = tvb_get_guint8(tvb, offset);
+ ch = tvb_get_uint8(tvb, offset);
offset++;
if (!(ch & 0x80)) {
- return TRUE;
+ return true;
} else if (tvb_offset_exists(tvb, offset)) {
- ch = tvb_get_guint8(tvb, offset);
+ ch = tvb_get_uint8(tvb, offset);
offset++;
if (!(ch & 0x80)) {
- return TRUE;
+ return true;
} else if (tvb_offset_exists(tvb, offset)) {
- ch = tvb_get_guint8(tvb, offset);
+ ch = tvb_get_uint8(tvb, offset);
offset++;
if (!(ch & 0x80)) {
- return TRUE;
+ return true;
} else if (tvb_offset_exists(tvb, offset)) {
- ch = tvb_get_guint8(tvb, offset);
+ ch = tvb_get_uint8(tvb, offset);
/*offset++;*/
if (!(ch & 0x80)) {
- return TRUE;
+ return true;
}
}
}
}
}
- return FALSE;
+ return false;
}
/**
@@ -943,68 +944,68 @@ ber_len_ok(tvbuff_t *tvb, int offset)
* \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)
+dissect_epsem(tvbuff_t *tvb, int offset, uint32_t 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;
+ uint8_t flags;
int local_offset;
- gint len2;
+ int len2;
int cmd_err;
bool ind;
- guchar *buffer;
+ unsigned char *buffer;
tvbuff_t *epsem_buffer = NULL;
- gboolean crypto_good = FALSE;
- gboolean crypto_bad = FALSE;
- gboolean hasmac = FALSE;
- gboolean encrypted = FALSE;
+ bool crypto_good = false;
+ bool crypto_bad = false;
+ bool hasmac = false;
+ bool 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);
+ flags = tvb_get_uint8(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;
+ hasmac = true;
len2 = tvb_reported_length_remaining(tvb, offset);
if (len2 <= 0)
return offset;
- encrypted = TRUE;
+ encrypted = true;
if (c1222_decrypt) {
- buffer = (guchar *)tvb_memdup(pinfo->pool, tvb, offset, len2);
- if (!decrypt_packet(buffer, len2, TRUE)) {
- crypto_bad = TRUE;
+ buffer = (unsigned char *)tvb_memdup(pinfo->pool, 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;
+ crypto_good = true;
+ encrypted = false;
}
}
break;
case EAX_MODE_CLEARTEXT_AUTH:
/* mode is cleartext with authentication */
- hasmac = TRUE;
+ hasmac = true;
len2 = tvb_reported_length_remaining(tvb, offset);
if (len2 <= 0)
return offset;
epsem_buffer = tvb_new_subset_remaining(tvb, offset);
- buffer = (guchar *)tvb_memdup(pinfo->pool, tvb, offset, len2);
+ buffer = (unsigned char *)tvb_memdup(pinfo->pool, tvb, offset, len2);
if (c1222_decrypt) {
- if (!decrypt_packet(buffer, len2, FALSE)) {
- crypto_bad = TRUE;
+ if (!decrypt_packet(buffer, len2, false)) {
+ crypto_bad = true;
expert_add_info(pinfo, tree, &ei_c1222_epsem_failed_authentication);
} else {
- crypto_good = TRUE;
+ crypto_good = true;
}
}
break;
@@ -1036,16 +1037,16 @@ dissect_epsem(tvbuff_t *tvb, int offset, guint32 len, packet_info *pinfo, proto_
*/
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);
+ local_offset = dissect_ber_length(pinfo, tree, epsem_buffer, local_offset, (uint32_t *)&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);
+ cmd_err = tvb_get_uint8(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);
+ parse_c1222_detailed(epsem_buffer, pinfo, cmd_tree, cmd_err, (uint32_t *)&len2, &local_offset);
local_offset += len2;
} else {
expert_add_info(pinfo, tree, &ei_c1222_epsem_field_length_error);
@@ -1102,11 +1103,11 @@ dissect_c1222_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
* \param offset the offset in the tvb
* \returns length of entire C12.22 message
*/
-static guint
+static unsigned
get_c1222_message_len(packet_info *pinfo, tvbuff_t *tvb, int offset, void *data _U_)
{
int orig_offset;
- guint length;
+ unsigned length;
bool ind;
orig_offset = offset;
@@ -1379,7 +1380,7 @@ void proto_register_c1222(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_c1222,
&ett_c1222_epsem,
&ett_c1222_flags,
@@ -1440,7 +1441,7 @@ void proto_register_c1222(void) {
c1222_uat = uat_new("Decryption Table",
sizeof(c1222_uat_data_t), /* record size */
"c1222_decryption_table", /* filename */
- TRUE, /* from_profile */
+ 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 */
@@ -1463,17 +1464,17 @@ void proto_register_c1222(void) {
void
proto_reg_handoff_c1222(void)
{
- static gboolean initialized = FALSE;
- guint8 *temp = NULL;
+ static bool initialized = false;
+ uint8_t *temp = NULL;
if( !initialized ) {
dissector_add_uint_with_preference("tcp.port", C1222_PORT, c1222_handle);
dissector_add_uint_with_preference("udp.port", C1222_PORT, c1222_udp_handle);
- initialized = TRUE;
+ 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);
+ c1222_baseoid = (uint8_t *)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) {
diff --git a/epan/dissectors/asn1/camel/camel.cnf b/epan/dissectors/asn1/camel/camel.cnf
index 40fa1959..c1830639 100644
--- a/epan/dissectors/asn1/camel/camel.cnf
+++ b/epan/dissectors/asn1/camel/camel.cnf
@@ -83,7 +83,7 @@ CAMEL-AChBillingChargingCharacteristics/timeDurationCharging/tariffSwitchInterva
ApplyChargingGPRSArg/tariffSwitchInterval applyChargingGPRS-tariffSwitchInterval
TimeIfTariffSwitch/tariffSwitchInterval timeIfTariffSwitch-tariffSwitchInterval
-# This table creates the value_sting to name Camel operation codes and errors
+# This table creates the value_string to name Camel operation codes and errors
# in file packet-camel-table.c which is included in the template file
#
#.TABLE_HDR
@@ -169,7 +169,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
hf_index = hf_camel_error_code_local;
}
%(DEFAULT_BODY)s
- if (is_ExtensionField == FALSE){
+ if (is_ExtensionField == false){
if (camel_opcode_type == CAMEL_OPCODE_RETURN_ERROR){
errorCode = opcode;
col_append_str(actx->pinfo->cinfo, COL_INFO,
@@ -218,7 +218,7 @@ if((camel_ver == 2)||(camel_ver == 1)){
#.FN_HDR ExtensionField
camel_obj_id = NULL;
- is_ExtensionField =TRUE;
+ is_ExtensionField =true;
#.FN_PARS Code/global FN_VARIANT = _str VAL_PTR = &camel_obj_id
@@ -227,7 +227,7 @@ if((camel_ver == 2)||(camel_ver == 1)){
if(camel_obj_id){
offset=call_ber_oid_callback(camel_obj_id, tvb, offset, actx->pinfo, tree, NULL);
}
- is_ExtensionField = FALSE;
+ is_ExtensionField = false;
#----------------------------------------------------------------------------------------
#.FN_BODY CallingPartyNumber VAL_PTR = &parameter_tvb
@@ -287,7 +287,7 @@ dissect_isup_generic_number_parameter(parameter_tvb, actx->pinfo, tree, NULL);
#.FN_BODY Cause VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
-guint8 Cause_value;
+uint8_t Cause_value;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -303,7 +303,7 @@ proto_tree *subtree;
#.FN_BODY RPCause VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
-guint8 Cause_value;
+uint8_t Cause_value;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -330,8 +330,8 @@ proto_tree *subtree;
* otherwise.
*/
- guint8 digit_pair;
- guint8 i = 0, curr_offset;
+ uint8_t digit_pair;
+ uint8_t i = 0, curr_offset;
char camel_time[CAMEL_DATE_AND_TIME_LEN];
char c[CAMEL_DATE_AND_TIME_LEN]; /*temporary container*/
@@ -340,7 +340,7 @@ proto_tree *subtree;
for (curr_offset = 0; curr_offset < 7 ; curr_offset++)
/*Loop to extract date*/
{
- digit_pair = tvb_get_guint8(tvb, curr_offset);
+ digit_pair = tvb_get_uint8(tvb, curr_offset);
proto_tree_add_uint(tree,
hf_digit,
@@ -364,7 +364,7 @@ proto_tree *subtree;
}
/* Pretty print date */
- /* XXX - Should we use sprintf here instead of assembling the string by
+ /* XXX - Should we use snprintf here instead of assembling the string by
* hand? */
camel_time[0] = c[8];
@@ -482,7 +482,7 @@ proto_tree *subtree;
if (!parameter_tvb)
return offset;
- PDPTypeOrganization = (tvb_get_guint8(parameter_tvb,0) &0x0f);
+ PDPTypeOrganization = (tvb_get_uint8(parameter_tvb,0) &0x0f);
#.END
#----------------------------------------------------------------------------------------
@@ -495,7 +495,7 @@ proto_tree *subtree;
if (!parameter_tvb)
return offset;
- PDPTypeNumber = tvb_get_guint8(parameter_tvb,0);
+ PDPTypeNumber = tvb_get_uint8(parameter_tvb,0);
subtree = proto_item_add_subtree(actx->created_item, ett_camel_pdptypenumber);
switch (PDPTypeOrganization){
case 0: /* ETSI */
@@ -551,9 +551,9 @@ proto_tree *subtree;
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);
+ 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);
+ dissect_gsm_map_LAIFixedLength(true, tvb, start_offset, actx, subtree, hf_camel_locationAreaId);
}
#.END
@@ -567,9 +567,9 @@ proto_tree *subtree;
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);
+ 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);
+ 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;
@@ -579,7 +579,7 @@ proto_tree *subtree;
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);
+ 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;
@@ -589,7 +589,7 @@ proto_tree *subtree;
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);
+ 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;
@@ -599,7 +599,7 @@ proto_tree *subtree;
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);
+ 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;
@@ -609,7 +609,7 @@ proto_tree *subtree;
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);
+ 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;
@@ -619,7 +619,7 @@ proto_tree *subtree;
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);
+ 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;
@@ -629,12 +629,12 @@ proto_tree *subtree;
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);
+ 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);
+ offset = dissect_camel_BOOLEAN(true, tvb, offset, actx , tree, hf_camel_audibleIndicatorTone);
else
%(DEFAULT_BODY)s
@@ -704,8 +704,8 @@ proto_tree *subtree;
*/
tvbuff_t *parameter_tvb;
proto_tree *subtree;
- gint ett = -1;
- bool digits = FALSE;
+ int ett = -1;
+ bool digits = false;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -723,19 +723,19 @@ proto_tree *subtree;
ett = ett_camel_assistingSSPIPRoutingAddress;
} else if (hf_index == hf_camel_correlationID) {
ett = ett_camel_correlationID;
- digits = (opcode == opcode_establishTemporaryConnection) ? TRUE : FALSE;
+ digits = (opcode == opcode_establishTemporaryConnection) ? true : false;
} else if (hf_index == hf_camel_dTMFDigitsCompleted) {
ett = ett_camel_dTMFDigitsCompleted;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_camel_dTMFDigitsTimeOut) {
ett = ett_camel_dTMFDigitsTimeOut;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_camel_number) {
ett = ett_camel_number;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_camel_digitsResponse) {
ett = ett_camel_digitsResponse;
- digits = TRUE;
+ digits = true;
}
subtree = proto_item_add_subtree(actx->created_item, ett);
@@ -763,16 +763,16 @@ proto_tree *subtree;
tvbuff_t *parameter_tvb;
proto_tree *subtree;
proto_item *item;
- gchar *digit_str;
- guint length;
- gchar year[5];
- gchar month[3];
- gchar day[3];
- gchar hour[3];
- gchar minute[3];
- gchar second[3];
-
- guint8 oct;
+ char *digit_str;
+ unsigned length;
+ char year[5];
+ char month[3];
+ char day[3];
+ char hour[3];
+ char minute[3];
+ char second[3];
+
+ uint8_t oct;
int8_t tz;
%(DEFAULT_BODY)s
@@ -784,13 +784,13 @@ proto_tree *subtree;
return offset;
}
subtree = proto_item_add_subtree(actx->created_item, ett_camel_timeandtimezone);
- item = proto_tree_add_item_ret_display_string(subtree, hf_camel_timeandtimezone_time, parameter_tvb, 0, 7, ENC_BCD_DIGITS_0_9, actx->pinfo->pool, &digit_str);
+ item = proto_tree_add_item_ret_display_string(subtree, hf_camel_timeandtimezone_time, parameter_tvb, 0, 7, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN, actx->pinfo->pool, &digit_str);
/*
The Time Zone indicates the difference, expressed in quarters of an hour, between the local time and GMT. In the first of the two semi octets,
the first bit (bit 3 of the seventh octet of the TP Service Centre Time Stamp field) represents the algebraic sign of this difference (0: positive, 1: negative).
*/
- oct = tvb_get_guint8(parameter_tvb,7);
+ oct = tvb_get_uint8(parameter_tvb,7);
/* packet-gsm_sms.c time dis_field_scts_aux() */
tz = (oct >> 4) + (oct & 0x07) * 10;
diff --git a/epan/dissectors/asn1/camel/packet-camel-template.c b/epan/dissectors/asn1/camel/packet-camel-template.c
index cf36f5c2..7c678f9d 100644
--- a/epan/dissectors/asn1/camel/packet-camel-template.c
+++ b/epan/dissectors/asn1/camel/packet-camel-template.c
@@ -31,7 +31,9 @@
#include <epan/stat_tap_ui.h>
#include <epan/asn1.h>
#include <epan/expert.h>
+#include <epan/tfs.h>
#include <wsutil/strtoi.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-camel.h"
@@ -48,13 +50,13 @@
#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;
+static int proto_camel;
+static int date_format = 1; /*assume european date format */
+static int camel_tap;
/* Global variables */
-static guint32 opcode=0;
-static guint32 errorCode=0;
-static guint32 camel_ver = 0;
+static uint32_t opcode=0;
+static uint32_t errorCode=0;
+static uint32_t camel_ver;
/* When several Camel components are received in a single TCAP message,
we have to use several buffers for the stored parameters
@@ -66,40 +68,40 @@ 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;
+static int hf_digit;
+static int hf_camel_extension_code_local;
+static int hf_camel_error_code_local;
+static int hf_camel_cause_indicator;
+static int hf_camel_PDPTypeNumber_etsi;
+static int hf_camel_PDPTypeNumber_ietf;
+static int hf_camel_PDPAddress_IPv4;
+static int hf_camel_PDPAddress_IPv6;
+static int hf_camel_cellGlobalIdOrServiceAreaIdFixedLength;
+static int hf_camel_RP_Cause;
+static int hf_camel_CAMEL_AChBillingChargingCharacteristics;
+static int hf_camel_CAMEL_FCIBillingChargingCharacteristics;
+static int hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics;
+static int hf_camel_CAMEL_FCISMSBillingChargingCharacteristics;
+static int hf_camel_CAMEL_SCIBillingChargingCharacteristics;
+static int hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics;
+static int hf_camel_CAMEL_CallResult;
/* 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;
-static int hf_camel_timeandtimezone_time = -1;
-static int hf_camel_timeandtimezone_tz = -1;
+static int hf_camelsrt_SessionId;
+//static int hf_camelsrt_RequestNumber;
+static int hf_camelsrt_Duplicate;
+static int hf_camelsrt_RequestFrame;
+static int hf_camelsrt_ResponseFrame;
+//static int hf_camelsrt_DeltaTime;
+//static int hf_camelsrt_SessionTime;
+static int hf_camelsrt_DeltaTime31;
+static int hf_camelsrt_DeltaTime75;
+static int hf_camelsrt_DeltaTime65;
+static int hf_camelsrt_DeltaTime22;
+static int hf_camelsrt_DeltaTime35;
+static int hf_camelsrt_DeltaTime80;
+static int hf_camel_timeandtimezone_time;
+static int hf_camel_timeandtimezone_tz;
#include "packet-camel-hf.c"
@@ -116,41 +118,41 @@ static int dissect_camel_EstablishTemporaryConnectionArgV2(bool implicit_tag _U_
static int dissect_camel_SpecializedResourceReportArgV23(bool 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_PersistentSRT=FALSE;
-static gboolean gcamel_DisplaySRT=FALSE;
-gboolean gcamel_StatSRT=FALSE;
+static bool gcamel_PersistentSRT=false;
+static bool gcamel_DisplaySRT=false;
+bool 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_originalcalledpartyid = -1;
-static gint ett_camel_redirectingpartyid = -1;
-static gint ett_camel_locationnumber = -1;
-static gint ett_camel_additionalcallingpartynumber = -1;
-static gint ett_camel_calledAddressValue = -1;
-static gint ett_camel_callingAddressValue = -1;
-static gint ett_camel_assistingSSPIPRoutingAddress = -1;
-static gint ett_camel_correlationID = -1;
-static gint ett_camel_dTMFDigitsCompleted = -1;
-static gint ett_camel_dTMFDigitsTimeOut = -1;
-static gint ett_camel_number = -1;
-static gint ett_camel_digitsResponse = -1;
-static gint ett_camel_timeandtimezone = -1;
+static int ett_camel;
+static int ett_camelisup_parameter;
+static int ett_camel_AccessPointName;
+static int ett_camel_pdptypenumber;
+static int ett_camel_cause;
+static int ett_camel_RPcause;
+static int ett_camel_stat;
+static int ett_camel_calledpartybcdnumber;
+static int ett_camel_callingpartynumber;
+static int ett_camel_originalcalledpartyid;
+static int ett_camel_redirectingpartyid;
+static int ett_camel_locationnumber;
+static int ett_camel_additionalcallingpartynumber;
+static int ett_camel_calledAddressValue;
+static int ett_camel_callingAddressValue;
+static int ett_camel_assistingSSPIPRoutingAddress;
+static int ett_camel_correlationID;
+static int ett_camel_dTMFDigitsCompleted;
+static int ett_camel_dTMFDigitsTimeOut;
+static int ett_camel_number;
+static int ett_camel_digitsResponse;
+static int ett_camel_timeandtimezone;
#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;
-static expert_field ei_camel_par_wrong_length = EI_INIT;
-static expert_field ei_camel_bcd_not_digit = EI_INIT;
+static expert_field ei_camel_unknown_invokeData;
+static expert_field ei_camel_unknown_returnResultData;
+static expert_field ei_camel_unknown_returnErrorData;
+static expert_field ei_camel_par_wrong_length;
+static expert_field ei_camel_bcd_not_digit;
/* Preference settings default */
#define MAX_SSN 254
@@ -163,14 +165,14 @@ static dissector_handle_t camel_v4_handle;
/* Global variables */
-static guint8 PDPTypeOrganization;
-static guint8 PDPTypeNumber;
-const char *camel_obj_id = NULL;
-gboolean is_ExtensionField =FALSE;
+static uint8_t PDPTypeOrganization;
+static uint8_t PDPTypeNumber;
+const char *camel_obj_id;
+bool is_ExtensionField;
/* Global hash tables*/
-static wmem_map_t *srt_calls = NULL;
-static guint32 camelsrt_global_SessionId=1;
+static wmem_map_t *srt_calls;
+static uint32_t camelsrt_global_SessionId=1;
static int camel_opcode_type;
#define CAMEL_OPCODE_INVOKE 1
@@ -317,9 +319,9 @@ static const value_string camel_ectTreatmentIndicator_values[] = {
#ifdef DEBUG_CAMELSRT
#include <stdio.h>
#include <stdarg.h>
-static guint debug_level = 99;
+static unsigned debug_level = 99;
-static void dbg(guint level, char *fmt, ...) {
+static void dbg(unsigned level, char *fmt, ...) {
va_list ap;
if (level > debug_level) return;
@@ -333,8 +335,8 @@ static void
camelstat_init(struct register_srt* srt _U_, GArray* srt_array)
{
srt_stat_table *camel_srt_table;
- gchar* tmp_str;
- guint32 i;
+ char* tmp_str;
+ uint32_t i;
camel_srt_table = init_srt_table("CAMEL Commands", NULL, srt_array, NB_CAMELSRT_CATEGORY, NULL, NULL, NULL);
for (i = 0; i < NB_CAMELSRT_CATEGORY; i++)
@@ -348,7 +350,7 @@ camelstat_init(struct register_srt* srt _U_, GArray* srt_array)
static tap_packet_status
camelstat_packet(void *pcamel, packet_info *pinfo, epan_dissect_t *edt _U_, const void *psi, tap_flags_t flags _U_)
{
- guint idx = 0;
+ unsigned 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;
@@ -379,15 +381,15 @@ static char camel_number_to_char(int number)
/*
* 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)
+static uint8_t
+dissect_RP_cause_ie(tvbuff_t *tvb, uint32_t offset, _U_ unsigned len,
+ proto_tree *tree, int hf_cause_value, uint8_t *cause_value)
{
- guint8 oct;
- guint32 curr_offset;
+ uint8_t oct;
+ uint32_t curr_offset;
curr_offset = offset;
- oct = tvb_get_guint8(tvb, curr_offset);
+ oct = tvb_get_uint8(tvb, curr_offset);
*cause_value = oct & 0x7f;
@@ -395,13 +397,13 @@ dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, _U_ guint len,
curr_offset++;
if ((oct & 0x80)) {
- oct = tvb_get_guint8(tvb, curr_offset);
+ oct = tvb_get_uint8(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);
+ return curr_offset - offset;
}
static int dissect_camel_InitialDPArgExtensionV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -415,8 +417,8 @@ static int dissect_camel_InitialDPArgExtensionV2(bool implicit_tag _U_, tvbuff_t
*/
/* compare 2 keys */
-static gint
-camelsrt_call_equal(gconstpointer k1, gconstpointer k2)
+static int
+camelsrt_call_equal(const void *k1, const void *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;
@@ -425,8 +427,8 @@ camelsrt_call_equal(gconstpointer k1, gconstpointer k2)
}
/* calculate a hash key */
-static guint
-camelsrt_call_hash(gconstpointer k)
+static unsigned
+camelsrt_call_hash(const void *k)
{
const struct camelsrt_call_info_key_t *key = (const struct camelsrt_call_info_key_t *) k;
return key->SessionIdKey;
@@ -511,11 +513,11 @@ camelsrt_init_routine(void)
*/
static void
update_camelsrt_call(struct camelsrt_call_t *p_camelsrt_call, packet_info *pinfo,
- guint msg_category)
+ unsigned 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].responded = false;
p_camelsrt_call->category[msg_category].req_time = pinfo->abs_ts;
}
@@ -531,7 +533,7 @@ camelsrt_close_call_matching(packet_info *pinfo,
struct camelsrt_call_info_key_t camelsrt_call_key;
nstime_t delta;
- p_camelsrt_info->bool_msginfo[CAMELSRT_SESSION]=TRUE;
+ p_camelsrt_info->bool_msginfo[CAMELSRT_SESSION]=true;
#ifdef DEBUG_CAMELSRT
dbg(10,"\n Session end #%u\n", pinfo->num);
#endif
@@ -548,9 +550,9 @@ camelsrt_close_call_matching(packet_info *pinfo,
#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_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;
@@ -608,7 +610,7 @@ camelsrt_begin_call_matching(packet_info *pinfo,
struct camelsrt_call_t *p_camelsrt_call;
struct camelsrt_call_info_key_t camelsrt_call_key;
- p_camelsrt_info->bool_msginfo[CAMELSRT_SESSION]=TRUE;
+ p_camelsrt_info->bool_msginfo[CAMELSRT_SESSION]=true;
/* prepare the key data */
camelsrt_call_key.SessionIdKey = p_camelsrt_info->tcap_session_id;
@@ -647,7 +649,7 @@ 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 )
+ unsigned srt_type )
{
struct camelsrt_call_t *p_camelsrt_call;
struct camelsrt_call_info_key_t camelsrt_call_key;
@@ -702,7 +704,7 @@ camelsrt_request_call_matching(tvbuff_t *tvb, packet_info *pinfo,
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;
+ p_camelsrt_info->bool_msginfo[srt_type]=true;
if (p_camelsrt_call->category[srt_type].req_num == 0) {
@@ -721,7 +723,7 @@ camelsrt_request_call_matching(tvbuff_t *tvb, packet_info *pinfo,
#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;
+ 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);
@@ -764,7 +766,7 @@ camelsrt_request_call_matching(tvbuff_t *tvb, packet_info *pinfo,
*/
static void
camelsrt_display_DeltaTime(proto_tree *tree, tvbuff_t *tvb, nstime_t *value_ptr,
- guint category)
+ unsigned category)
{
proto_item *ti;
@@ -816,7 +818,7 @@ 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)
+ unsigned srt_type)
{
struct camelsrt_call_t *p_camelsrt_call;
struct camelsrt_call_info_key_t camelsrt_call_key;
@@ -855,7 +857,7 @@ camelsrt_report_call_matching(tvbuff_t *tvb, packet_info *pinfo,
dbg(70,"Report ACR %u ",srt_type);
#endif
} /* not ACR */
- p_camelsrt_info->bool_msginfo[srt_type]=TRUE;
+ 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)
@@ -879,7 +881,7 @@ camelsrt_report_call_matching(tvbuff_t *tvb, packet_info *pinfo,
#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;
+ 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);
@@ -891,8 +893,8 @@ camelsrt_report_call_matching(tvbuff_t *tvb, packet_info *pinfo,
(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;
+ 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
@@ -908,7 +910,7 @@ camelsrt_report_call_matching(tvbuff_t *tvb, packet_info *pinfo,
/* 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].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;
@@ -967,7 +969,7 @@ camelsrt_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 64: /*EventReportSMS*/
- /* Session has been explicity closed without TC_END */
+ /* Session has been explicitly 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;
@@ -1053,8 +1055,8 @@ camelsrt_razinfo(void)
}
-static guint8 camel_pdu_type = 0;
-static guint8 camel_pdu_size = 0;
+static uint8_t camel_pdu_type;
+static uint8_t camel_pdu_size;
static int
@@ -1068,16 +1070,16 @@ dissect_camel_camelPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ct
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;
+ camel_pdu_type = tvb_get_uint8(tvb, offset)&0x0f;
/* Get the length and add 2 */
- camel_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+ camel_pdu_size = tvb_get_uint8(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);
+ is_ExtensionField =false;
+ offset = dissect_camel_ROS(true, tvb, offset, actx, tree, hf_index);
return offset;
}
@@ -1090,7 +1092,7 @@ dissect_camel_all(int version, const char* col_protocol, const char* suffix,
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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, col_protocol);
@@ -1106,7 +1108,7 @@ dissect_camel_all(int version, const char* col_protocol, const char* suffix,
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);
+ dissect_camel_camelPDU(false, tvb, 0, &asn1_ctx , tree, -1, p_private_tcap);
/* If a Tcap context is associated to this transaction */
if (gp_camelsrt_info->tcap_context ) {
@@ -1162,10 +1164,10 @@ static stat_tap_table_item camel_stat_fields[] = {{TABLE_ITEM_STRING, TAP_ALIGN_
static void camel_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "CAMEL Message Counters";
- int num_fields = sizeof(camel_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(camel_stat_fields);
stat_tap_table *table;
int i;
- stat_tap_table_item_type items[sizeof(camel_stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(camel_stat_fields)];
table = stat_tap_find_table(new_stat, table_name);
if (table) {
@@ -1220,7 +1222,7 @@ camel_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_
static void
camel_stat_reset(stat_tap_table* table)
{
- guint element;
+ unsigned element;
stat_tap_table_item_type* item_data;
for (element = 0; element < table->num_elements; element++)
@@ -1232,21 +1234,21 @@ camel_stat_reset(stat_tap_table* table)
}
static void
-camel_stat_free_table_item(stat_tap_table* table _U_, guint row _U_, guint column, stat_tap_table_item_type* field_data)
+camel_stat_free_table_item(stat_tap_table* table _U_, unsigned row _U_, unsigned 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, gpointer ptr _U_)
+static void range_delete_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
delete_itu_tcap_subdissector(ssn, camel_handle);
}
}
-static void range_add_callback(guint32 ssn, gpointer ptr _U_)
+static void range_add_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
add_itu_tcap_subdissector(ssn, camel_handle);
@@ -1254,12 +1256,12 @@ static void range_add_callback(guint32 ssn, gpointer ptr _U_)
}
void proto_reg_handoff_camel(void) {
- static gboolean camel_prefs_initialized = FALSE;
+ static bool camel_prefs_initialized = false;
static range_t *ssn_range;
if (!camel_prefs_initialized) {
- camel_prefs_initialized = TRUE;
+ camel_prefs_initialized = true;
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" );
@@ -1470,7 +1472,7 @@ void proto_register_camel(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_camel,
&ett_camelisup_parameter,
&ett_camel_AccessPointName,
@@ -1508,11 +1510,11 @@ void proto_register_camel(void) {
expert_module_t* expert_camel;
static tap_param camel_stat_params[] = {
- { PARAM_FILTER, "filter", "Filter", NULL, TRUE }
+ { PARAM_FILTER, "filter", "Filter", NULL, true }
};
static stat_tap_table_ui camel_stat_table = {
- REGISTER_STAT_GROUP_TELEPHONY_GSM,
+ REGISTER_TELEPHONY_GROUP_GSM,
"CAMEL Messages and Response Status",
PSNAME,
"camel,counter",
@@ -1521,8 +1523,8 @@ void proto_register_camel(void) {
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,
+ array_length(camel_stat_fields), camel_stat_fields,
+ array_length(camel_stat_params), camel_stat_params,
NULL,
0
};
@@ -1562,7 +1564,7 @@ void proto_register_camel(void) {
prefs_register_enum_preference(camel_module, "date.format", "Date Format",
"The date format: (DD/MM) or (MM/DD)",
- &date_format, date_options, FALSE);
+ &date_format, date_options, false);
prefs_register_range_preference(camel_module, "tcap.ssn",
diff --git a/epan/dissectors/asn1/camel/packet-camel-template.h b/epan/dissectors/asn1/camel/packet-camel-template.h
index 4db9e099..b6f94a79 100644
--- a/epan/dissectors/asn1/camel/packet-camel-template.h
+++ b/epan/dissectors/asn1/camel/packet-camel-template.h
@@ -57,10 +57,10 @@ WS_DLL_PUBLIC const value_string camelSRTtype_naming[];
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 */
+ uint32_t req_num; /**< frame number request seen */
+ uint32_t rsp_num; /**< frame number response seen */
nstime_t req_time; /**< arrival time of request */
- gboolean responded; /**< true, if request has been responded */
+ bool responded; /**< true, if request has been responded */
};
/** List of stored parameters for a Camel dialogue
@@ -69,7 +69,7 @@ struct camelsrt_category_t {
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 */
+ uint32_t session_id; /**< Identify the session, with an internal number */
struct tcaphash_context_t * tcap_context;
struct camelsrt_category_t category[NB_CAMELSRT_CATEGORY];
};
@@ -79,7 +79,7 @@ struct camelsrt_call_t {
of the TC_BEGIN containing the InitialDP */
struct camelsrt_call_info_key_t {
- guint32 SessionIdKey;
+ uint32_t SessionIdKey;
};
/** Info for a couple of messages (or category)
@@ -88,9 +88,9 @@ struct camelsrt_call_info_key_t {
we can deduce the Delta Time between Request/response */
struct camelsrt_msginfo_t {
- gboolean request_available;
- gboolean is_duplicate;
- gboolean is_delta_time;
+ bool request_available;
+ bool is_duplicate;
+ bool is_delta_time;
nstime_t req_time;
nstime_t delta_time;
};
@@ -98,10 +98,10 @@ struct camelsrt_msginfo_t {
/** List of infos to store for the analyse */
struct camelsrt_info_t {
- guint32 tcap_session_id;
+ uint32_t tcap_session_id;
void * tcap_context;
- guint8 opcode; /**< operation code of message received */
- guint8 bool_msginfo[NB_CAMELSRT_CATEGORY]; /**< category for the received message */
+ uint8_t opcode; /**< operation code of message received */
+ uint8_t bool_msginfo[NB_CAMELSRT_CATEGORY]; /**< category for the received message */
struct camelsrt_msginfo_t msginfo[NB_CAMELSRT_CATEGORY];
};
@@ -122,6 +122,6 @@ void camelsrt_call_matching(tvbuff_t *tvb,
proto_tree *tree,
struct camelsrt_info_t * p_camel_info);
-WS_DLL_PUBLIC gboolean gcamel_StatSRT;
+WS_DLL_PUBLIC bool gcamel_StatSRT;
#endif /* PACKET_camel_H */
diff --git a/epan/dissectors/asn1/cbrs-oids/packet-cbrs-oids-template.c b/epan/dissectors/asn1/cbrs-oids/packet-cbrs-oids-template.c
index 542c01e5..996e6dac 100644
--- a/epan/dissectors/asn1/cbrs-oids/packet-cbrs-oids-template.c
+++ b/epan/dissectors/asn1/cbrs-oids/packet-cbrs-oids-template.c
@@ -20,6 +20,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
@@ -31,9 +32,9 @@ void proto_register_cbrs_oids(void);
void proto_reg_handoff_cbrs_oids(void);
/* Initialize the protocol and registered fields */
-static int proto_cbrs_oids = -1;
+static int proto_cbrs_oids;
#include "packet-cbrs-oids-hf.c"
-static int hf_cbrs_oids_UTF8String_PDU = -1;
+static int hf_cbrs_oids_UTF8String_PDU;
/* Initialize the subtree pointers */
#include "packet-cbrs-oids-fn.c"
diff --git a/epan/dissectors/asn1/cdt/cdt.cnf b/epan/dissectors/asn1/cdt/cdt.cnf
index 4369bd69..e288bbdc 100644
--- a/epan/dissectors/asn1/cdt/cdt.cnf
+++ b/epan/dissectors/asn1/cdt/cdt.cnf
@@ -16,7 +16,7 @@ CompressedData B "1.3.26.0.4406.0.4.2" "cdt"
VAL_PTR = &value
#.FN_BODY AlgorithmID-ShortForm
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
proto_item_append_text (cdt_item, ", %%s",
@@ -76,7 +76,7 @@ CompressedData B "1.3.26.0.4406.0.4.2" "cdt"
return offset;
}
- next_tvb = tvb_child_uncompress (tvb, compr_tvb, 0, tvb_reported_length (compr_tvb));
+ next_tvb = tvb_child_uncompress_zlib(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,
diff --git a/epan/dissectors/asn1/cdt/packet-cdt-template.c b/epan/dissectors/asn1/cdt/packet-cdt-template.c
index 8cf27bbd..4ae9c331 100644
--- a/epan/dissectors/asn1/cdt/packet-cdt-template.c
+++ b/epan/dissectors/asn1/cdt/packet-cdt-template.c
@@ -19,7 +19,7 @@
#include <epan/oids.h>
#include <epan/expert.h>
#include <epan/asn1.h>
-
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-p1.h"
@@ -38,20 +38,20 @@
void proto_register_cdt(void);
void proto_reg_handoff_cdt(void);
-static proto_tree *top_tree = NULL;
-static proto_item *cdt_item = NULL;
+static proto_tree *top_tree;
+static proto_item *cdt_item;
-static guint32 content_type = 0;
+static uint32_t content_type;
/* Initialize the protocol and registered fields */
-static int proto_cdt = -1;
+static int proto_cdt;
#include "packet-cdt-hf.c"
/* 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;
+static expert_field ei_cdt_unable_compress_content;
+static expert_field ei_cdt_unable_uncompress_content;
#include "packet-cdt-fn.c"
@@ -89,7 +89,7 @@ void proto_register_cdt (void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-cdt-ettarr.c"
};
diff --git a/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c b/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c
index 72d02b50..92556751 100644
--- a/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c
+++ b/epan/dissectors/asn1/charging_ase/packet-charging_ase-template.c
@@ -14,7 +14,7 @@
#include <epan/packet.h>
#include <epan/expert.h>
#include <epan/asn1.h>
-
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-charging_ase.h"
@@ -26,14 +26,14 @@ void proto_register_charging_ase(void);
void proto_reg_handoff_charging_ase(void);
/* Define the Charging ASE proto */
-static int proto_charging_ase = -1;
+static int proto_charging_ase;
#include "packet-charging_ase-hf.c"
-static int ett_charging_ase = -1;
+static int ett_charging_ase;
#include "packet-charging_ase-ett.c"
-static expert_field ei_charging_ase_extensions_not_dissected = EI_INIT;
+static expert_field ei_charging_ase_extensions_not_dissected;
static dissector_handle_t charging_ase_handle;
@@ -65,7 +65,7 @@ proto_register_charging_ase(void)
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_charging_ase,
#include "packet-charging_ase-ettarr.c"
};
diff --git a/epan/dissectors/asn1/cmip/cmip.cnf b/epan/dissectors/asn1/cmip/cmip.cnf
index 0b547579..075293fe 100644
--- a/epan/dissectors/asn1/cmip/cmip.cnf
+++ b/epan/dissectors/asn1/cmip/cmip.cnf
@@ -228,7 +228,7 @@ RejectProblem
#.END
#.FN_BODY CMIPAbortSource VAL_PTR = &value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " AbortSource:%%s", val_to_str(value, cmip_CMIPAbortSource_vals, " Unknown AbortSource:%%d"));
@@ -265,11 +265,11 @@ RejectProblem
#.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;
+ 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;
+ actx->external.indirect_ref_present = true;
#.FN_BODY Attribute/value
if(actx->external.direct_ref_present){
@@ -285,7 +285,7 @@ RejectProblem
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;
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
#.FN_BODY AttributeValueAssertion/value
if (actx->external.direct_ref_present) {
@@ -295,37 +295,37 @@ RejectProblem
#.FN_BODY Invoke/argument
switch(opcode){
case 0: /* M-eventreport */
- offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset = dissect_cmip_InvokeIDType(false, tvb, offset, actx, tree, -1);
break;
}
@@ -336,28 +336,28 @@ RejectProblem
case 0: /* M-eventreport*/
break; /* No return data */
case 1: /* M-eventreport-confirmed */
- offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset = dissect_cmip_DeleteResult(false, tvb, offset, actx, tree, -1);
break;
case 10: /* M-cancelget */
break; /* doe this one return any data? */
@@ -368,68 +368,68 @@ RejectProblem
switch(opcode){
case 19: /* classInstanceConflict */
- dissect_cmip_BaseManagedObjectId(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_BaseManagedObjectId(false, tvb, offset, actx, tree, -1);
break;
case 20: /* complexityLimitation */
- dissect_cmip_ComplexityLimitation(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_ComplexityLimitation(false, tvb, offset, actx, tree, -1);
break;
case 11: /* duplicateManagedObjectInstance */
- dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_ObjectInstance(false, tvb, offset, actx, tree, -1);
break;
case 7: /* getListError */
- dissect_cmip_GetListError(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_GetListError(false, tvb, offset, actx, tree, -1);
break;
case 15: /* invalidArgumentValue */
- dissect_cmip_InvalidArgumentValue(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_InvalidArgumentValue(false, tvb, offset, actx, tree, -1);
break;
case 6: /* invalidAttributeValue */
- dissect_cmip_Attribute(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_Attribute(false, tvb, offset, actx, tree, -1);
break;
case 4: /* invalidFilter */
- dissect_cmip_CMISFilter(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_CMISFilter(false, tvb, offset, actx, tree, -1);
break;
case 17: /* invalidObjectInstance */
- dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_ObjectInstance(false, tvb, offset, actx, tree, -1);
break;
case 16: /* invalidScope */
- dissect_cmip_Scope(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ dissect_cmip_PAR_missingAttributeValue(false, tvb, offset, actx, tree, -1);
break;
case 9: /* noSuchAction */
- dissect_cmip_NoSuchAction(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_NoSuchAction(false, tvb, offset, actx, tree, -1);
break;
case 14: /* noSuchArgument */
- dissect_cmip_NoSuchArgument(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_NoSuchArgument(false, tvb, offset, actx, tree, -1);
break;
case 5: /* noSuchAttribute */
- dissect_cmip_AttributeId(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_AttributeId(false, tvb, offset, actx, tree, -1);
break;
case 13: /* noSuchEventType */
- dissect_cmip_NoSuchEventType(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_NoSuchEventType(false, tvb, offset, actx, tree, -1);
break;
case 22: /* noSuchInvokeId */
- dissect_cmip_InvokeIDType(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_InvokeIDType(false, tvb, offset, actx, tree, -1);
break;
case 0: /* noSuchObjectClass */
- dissect_cmip_ObjectClass(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_ObjectClass(false, tvb, offset, actx, tree, -1);
break;
case 1:/* noSuchObjectInstance */
- dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_ObjectInstance(false, tvb, offset, actx, tree, -1);
break;
case 12: /* noSuchReferenceObject */
- dissect_cmip_ObjectInstance(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_ObjectInstance(false, tvb, offset, actx, tree, -1);
break;
- case 10: /* processingFailure OPTIONAL TRUE*/
- dissect_cmip_ProcessingFailure(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ dissect_cmip_SetListError(false, tvb, offset, actx, tree, -1);
break;
case 3:/* syncNotSupported */
- dissect_cmip_CMISSync(FALSE, tvb, offset, actx, tree, -1);
+ dissect_cmip_CMISSync(false, tvb, offset, actx, tree, -1);
break;
}
diff --git a/epan/dissectors/asn1/cmip/packet-cmip-template.c b/epan/dissectors/asn1/cmip/packet-cmip-template.c
index 53caeb03..cbc52d13 100644
--- a/epan/dissectors/asn1/cmip/packet-cmip-template.c
+++ b/epan/dissectors/asn1/cmip/packet-cmip-template.c
@@ -16,7 +16,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
-
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
#include "packet-x509if.h"
@@ -34,23 +34,23 @@ void proto_reg_handoff_cmip(void);
#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 proto_cmip;
+static int hf_cmip_actionType_OID;
+static int hf_cmip_eventType_OID;
+static int hf_cmip_attributeId_OID;
+static int hf_cmip_errorId_OID;
#include "packet-cmip-hf.c"
/* Initialize the subtree pointers */
-static gint ett_cmip = -1;
+static int ett_cmip;
#include "packet-cmip-ett.c"
-static expert_field ei_wrong_spdu_type = EI_INIT;
+static expert_field ei_wrong_spdu_type;
-static guint32 opcode;
+static uint32_t opcode;
-static dissector_handle_t cmip_handle = NULL;
+static dissector_handle_t cmip_handle;
/* Dissector table */
static dissector_table_t attribute_id_dissector_table;
@@ -79,7 +79,7 @@ dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
proto_item *item;
proto_tree *tree;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* Reject the packet if data is NULL */
if (data == NULL)
@@ -105,13 +105,13 @@ dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
case SES_DISCONNECT:
case SES_FINISH:
case SES_REFUSE:
- dissect_cmip_CMIPUserInfo(FALSE,tvb,0,&asn1_ctx,tree,-1);
+ dissect_cmip_CMIPUserInfo(false,tvb,0,&asn1_ctx,tree,-1);
break;
case SES_ABORT:
- dissect_cmip_CMIPAbortInfo(FALSE,tvb,0,&asn1_ctx,tree,-1);
+ 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);
+ dissect_cmip_ROS(false,tvb,0,&asn1_ctx,tree,-1);
break;
default:
;
@@ -146,7 +146,7 @@ void proto_register_cmip(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_cmip,
#include "packet-cmip-ettarr.c"
};
diff --git a/epan/dissectors/asn1/cmp/cmp.cnf b/epan/dissectors/asn1/cmp/cmp.cnf
index 05d3b5e4..fd135d67 100644
--- a/epan/dissectors/asn1/cmp/cmp.cnf
+++ b/epan/dissectors/asn1/cmp/cmp.cnf
@@ -59,20 +59,20 @@ RevRepContent/status ABBREV=rvrpcnt_status
VAL_PTR = &branch_taken
#.FN_BODY PKIBody
- gint branch_taken;
+ int branch_taken;
%(DEFAULT_BODY)s
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Body=%%s", val_to_str(branch_taken, cmp_PKIBody_vals, "unknown"));
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Body=%%s", val_to_str_const(branch_taken, cmp_PKIBody_vals, "unknown"));
#.FN_PARS PKIStatus
VAL_PTR = &value
#.FN_BODY PKIStatus
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Status=%%s", val_to_str(value, cmp_PKIStatus_vals, "unknown"));
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " Status=%%s", val_to_str_const(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
index 888c01ff..fc32893d 100644
--- a/epan/dissectors/asn1/cmp/packet-cmp-template.c
+++ b/epan/dissectors/asn1/cmp/packet-cmp-template.c
@@ -19,6 +19,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-cmp.h"
#include "packet-crmf.h"
@@ -42,25 +43,25 @@ static dissector_handle_t cmp_tcp_style_http_handle;
static dissector_handle_t cmp_tcp_handle;
/* desegmentation of CMP over TCP */
-static gboolean cmp_desegment = TRUE;
+static bool cmp_desegment = true;
-static guint cmp_alternate_http_port = 0;
-static guint cmp_alternate_tcp_style_http_port = 0;
+static unsigned cmp_alternate_http_port;
+static unsigned cmp_alternate_tcp_style_http_port;
/* 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;
+static int proto_cmp;
+static int hf_cmp_type_oid;
+static int hf_cmp_tcptrans_len;
+static int hf_cmp_tcptrans_type;
+static int hf_cmp_tcptrans_poll_ref;
+static int hf_cmp_tcptrans_next_poll_ref;
+static int hf_cmp_tcptrans_ttcb;
+static int hf_cmp_tcptrans10_version;
+static int hf_cmp_tcptrans10_flags;
#include "packet-cmp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_cmp = -1;
+static int ett_cmp;
#include "packet-cmp-ett.c"
#include "packet-cmp-fn.c"
@@ -68,9 +69,9 @@ static int
dissect_cmp_pdu(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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
- return dissect_cmp_PKIMessage(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ return dissect_cmp_PKIMessage(false, tvb, 0, &asn1_ctx, tree, -1);
}
#define CMP_TYPE_PKIMSG 0
@@ -95,8 +96,8 @@ static const value_string cmp_pdu_types[] = {
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;
+ uint32_t pdu_len;
+ uint8_t pdu_type;
proto_item *item=NULL;
proto_item *ti=NULL;
proto_tree *tree=NULL;
@@ -112,7 +113,7 @@ static int dissect_cmp_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pa
}
pdu_len=tvb_get_ntohl(tvb, 0);
- pdu_type=tvb_get_guint8(tvb, 4);
+ pdu_type=tvb_get_uint8(tvb, 4);
if (pdu_type < 10) {
/* RFC2510 TCP transport */
@@ -124,7 +125,7 @@ static int dissect_cmp_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pa
} 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);
+ pdu_type=tvb_get_uint8(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);
@@ -177,10 +178,10 @@ static int dissect_cmp_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pa
return offset;
}
-static guint get_cmp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
+static unsigned get_cmp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
{
- guint32 plen;
+ uint32_t plen;
/*
* Get the length of the CMP-over-TCP packet.
@@ -195,8 +196,8 @@ static guint get_cmp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
static int
dissect_cmp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data)
{
- guint32 pdu_len;
- guint8 pdu_type;
+ uint32_t pdu_len;
+ uint8_t pdu_type;
int offset=4; /* RFC2510 TCP transport header length */
/* only attempt to dissect it as CMP over TCP if we have
@@ -207,11 +208,11 @@ dissect_cmp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void
}
pdu_len=tvb_get_ntohl(tvb, 0);
- pdu_type=tvb_get_guint8(tvb, 4);
+ pdu_type=tvb_get_uint8(tvb, 4);
if(pdu_type == 10) {
/* post RFC2510 TCP transport */
- pdu_type = tvb_get_guint8(tvb, 7);
+ pdu_type = tvb_get_uint8(tvb, 7);
offset = 7; /* post RFC2510 TCP transport header length */
/* arbitrary limit: assume a CMP over TCP pdu is never >10000 bytes
* in size.
@@ -308,7 +309,7 @@ void proto_register_cmp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_cmp,
#include "packet-cmp-ettarr.c"
};
@@ -353,9 +354,9 @@ void proto_register_cmp(void) {
/*--- proto_reg_handoff_cmp -------------------------------------------*/
void proto_reg_handoff_cmp(void) {
- static gboolean inited = FALSE;
- static guint cmp_alternate_http_port_prev = 0;
- static guint cmp_alternate_tcp_style_http_port_prev = 0;
+ static bool inited = false;
+ static unsigned cmp_alternate_http_port_prev = 0;
+ static unsigned cmp_alternate_tcp_style_http_port_prev = 0;
if (!inited) {
dissector_add_string("media_type", "application/pkixcmp", cmp_http_handle);
@@ -375,7 +376,7 @@ void proto_reg_handoff_cmp(void) {
oid_add_from_string("HMAC RIPEMD-160","1.3.6.1.5.5.8.1.4");
#include "packet-cmp-dis-tab.c"
- inited = TRUE;
+ inited = true;
}
/* change alternate HTTP port if changed in the preferences */
diff --git a/epan/dissectors/asn1/cms/cms.cnf b/epan/dissectors/asn1/cms/cms.cnf
index 77da3143..c1e0c276 100644
--- a/epan/dissectors/asn1/cms/cms.cnf
+++ b/epan/dissectors/asn1/cms/cms.cnf
@@ -165,7 +165,7 @@ FirmwarePackageLoadError/version fwErrorVersion
#.FN_BODY EncapsulatedContentInfo/eContent
struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo);
cms_data->content_tvb = NULL;
- offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &cms_data->content_tvb);
+ offset = dissect_ber_octet_string(false, actx, tree, tvb, offset, hf_index, &cms_data->content_tvb);
if(cms_data->content_tvb) {
proto_item_set_text(actx->created_item, "eContent (%%u bytes)", tvb_reported_length(cms_data->content_tvb));
@@ -267,7 +267,7 @@ FirmwarePackageLoadError/version fwErrorVersion
VAL_PTR = &length
#.FN_BODY RC2ParameterVersion
- guint32 length = 0;
+ uint32_t length = 0;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/cms/packet-cms-template.c b/epan/dissectors/asn1/cms/packet-cms-template.c
index aca1ecb0..c1380f57 100644
--- a/epan/dissectors/asn1/cms/packet-cms-template.c
+++ b/epan/dissectors/asn1/cms/packet-cms-template.c
@@ -18,6 +18,7 @@
#include <epan/asn1.h>
#include <epan/proto_data.h>
#include <wsutil/wsgcrypt.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-cms.h"
@@ -35,15 +36,15 @@ 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;
+static int proto_cms;
+static int hf_cms_ci_contentType;
#include "packet-cms-hf.c"
/* Initialize the subtree pointers */
-static gint ett_cms = -1;
+static int ett_cms;
#include "packet-cms-ett.c"
-static dissector_handle_t cms_handle = NULL;
+static dissector_handle_t cms_handle;
static int dissect_cms_OCTET_STRING(bool 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 */
@@ -52,8 +53,8 @@ struct cms_private_data {
tvbuff_t *content_tvb;
};
-static proto_tree *top_tree=NULL;
-static proto_tree *cap_tree=NULL;
+static proto_tree *top_tree;
+static proto_tree *cap_tree;
#define HASH_SHA1 "1.3.14.3.2.26"
@@ -78,7 +79,7 @@ dissect_cms(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
if(parent_tree){
item = proto_tree_add_item(parent_tree, proto_cms, tvb, 0, -1, ENC_NA);
@@ -88,7 +89,7 @@ dissect_cms(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
col_clear(pinfo->cinfo, COL_INFO);
while (tvb_reported_length_remaining(tvb, offset) > 0){
- offset=dissect_cms_ContentInfo(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ offset=dissect_cms_ContentInfo(false, tvb, offset, &asn1_ctx , tree, -1);
}
return tvb_captured_length(tvb);
}
@@ -155,7 +156,7 @@ void proto_register_cms(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_cms,
#include "packet-cms-ettarr.c"
};
diff --git a/epan/dissectors/asn1/credssp/credssp.cnf b/epan/dissectors/asn1/credssp/credssp.cnf
index a55b1507..3a90e73c 100644
--- a/epan/dissectors/asn1/credssp/credssp.cnf
+++ b/epan/dissectors/asn1/credssp/credssp.cnf
@@ -19,7 +19,7 @@ TSRequest
decr_tvb = gssapi_encrypt.gssapi_decrypted_tvb;
if(decr_tvb != NULL)
- dissect_credssp_TSCredentials(FALSE, decr_tvb, 0, actx, tree, hf_credssp_TSCredentials);
+ dissect_credssp_TSCredentials(false, decr_tvb, 0, actx, tree, hf_credssp_TSCredentials);
#.FN_BODY TSRequest/pubKeyAuth VAL_PTR = &auth_tvb
tvbuff_t *auth_tvb = NULL;
@@ -64,13 +64,13 @@ TSRequest
switch(creds_type) {
case TS_PASSWORD_CREDS:
- dissect_credssp_TSPasswordCreds(FALSE, creds_tvb, 0, actx, tree, hf_credssp_TSPasswordCreds);
+ dissect_credssp_TSPasswordCreds(false, creds_tvb, 0, actx, tree, hf_credssp_TSPasswordCreds);
break;
case TS_SMARTCARD_CREDS:
- dissect_credssp_TSSmartCardCreds(FALSE, creds_tvb, 0, actx, tree, hf_credssp_TSSmartCardCreds);
+ dissect_credssp_TSSmartCardCreds(false, creds_tvb, 0, actx, tree, hf_credssp_TSSmartCardCreds);
break;
case TS_REMOTEGUARD_CREDS:
- dissect_credssp_TSRemoteGuardCreds(FALSE, creds_tvb, 0, actx, tree, hf_credssp_TSRemoteGuardCreds);
+ dissect_credssp_TSRemoteGuardCreds(false, creds_tvb, 0, actx, tree, hf_credssp_TSRemoteGuardCreds);
break;
}
@@ -95,7 +95,7 @@ TSRemoteGuardPackageCred/packageName TYPE = FT_STRING DISPLAY = BASE_NONE STRING
offset = dissect_ber_octet_string(implicit_tag, actx, NULL, tvb, offset, hf_index, &pname);
if(pname != NULL) {
- gint nlen = tvb_captured_length(pname);
+ int nlen = tvb_captured_length(pname);
if (nlen == sizeof(kerberos_pname) && memcmp(tvb_get_ptr(pname, 0, nlen), kerberos_pname, nlen) == 0) {
credssp_TS_RGC_package = TS_RGC_KERBEROS;
diff --git a/epan/dissectors/asn1/credssp/packet-credssp-template.c b/epan/dissectors/asn1/credssp/packet-credssp-template.c
index 5eef5741..0100c8ce 100644
--- a/epan/dissectors/asn1/credssp/packet-credssp-template.c
+++ b/epan/dissectors/asn1/credssp/packet-credssp-template.c
@@ -15,6 +15,7 @@
#include <epan/asn1.h>
#include <epan/tap.h>
#include <epan/exported_pdu.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-gssapi.h"
@@ -30,8 +31,8 @@
#define TS_SMARTCARD_CREDS 2
#define TS_REMOTEGUARD_CREDS 6
-static gint creds_type;
-static gint credssp_ver;
+static int creds_type;
+static int credssp_ver;
static char kerberos_pname[] = "K\0e\0r\0b\0e\0r\0o\0s";
static char ntlm_pname[] = "N\0T\0L\0M";
@@ -40,12 +41,12 @@ static char ntlm_pname[] = "N\0T\0L\0M";
#define TS_RGC_KERBEROS 1
#define TS_RGC_NTLM 2
-static gint credssp_TS_RGC_package;
+static int credssp_TS_RGC_package;
-static gint exported_pdu_tap = -1;
+static int exported_pdu_tap = -1;
/* Initialize the protocol and registered fields */
-static int proto_credssp = -1;
+static int proto_credssp;
/* List of dissectors to call for negoToken data */
static heur_dissector_list_t credssp_heur_subdissector_list;
@@ -53,16 +54,16 @@ static heur_dissector_list_t credssp_heur_subdissector_list;
static dissector_handle_t gssapi_handle;
static dissector_handle_t gssapi_wrap_handle;
-static int hf_credssp_TSPasswordCreds = -1; /* TSPasswordCreds */
-static int hf_credssp_TSSmartCardCreds = -1; /* TSSmartCardCreds */
-static int hf_credssp_TSRemoteGuardCreds = -1;/* TSRemoteGuardCreds */
-static int hf_credssp_TSCredentials = -1; /* TSCredentials */
-static int hf_credssp_decr_PublicKeyAuth = -1;/* decr_PublicKeyAuth */
+static int hf_credssp_TSPasswordCreds; /* TSPasswordCreds */
+static int hf_credssp_TSSmartCardCreds; /* TSSmartCardCreds */
+static int hf_credssp_TSRemoteGuardCreds;/* TSRemoteGuardCreds */
+static int hf_credssp_TSCredentials; /* TSCredentials */
+static int hf_credssp_decr_PublicKeyAuth;/* decr_PublicKeyAuth */
#include "packet-credssp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_credssp = -1;
-static gint ett_credssp_RGC_CredBuffer = -1;
+static int ett_credssp;
+static int ett_credssp_RGC_CredBuffer;
#include "packet-credssp-ett.c"
@@ -90,23 +91,23 @@ dissect_credssp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void
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_)
+static bool
+dissect_credssp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data)
{
asn1_ctx_t asn1_ctx;
int offset = 0;
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
- guint32 length;
- gint8 ver;
+ int32_t tag;
+ uint32_t length;
+ int8_t ver;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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)) {
+ 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)) {
@@ -114,7 +115,7 @@ dissect_credssp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
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);
+ ver = tvb_get_uint8(tvb, offset);
if((length == 1) && (ver > 1) && (ver < 99)) {
if (have_tap_listener(exported_pdu_tap)) {
exp_pdu_data_t *exp_pdu_data = export_pdu_create_common_tags(pinfo, "credssp", EXP_PDU_TAG_DISSECTOR_NAME);
@@ -125,14 +126,14 @@ dissect_credssp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
tap_queue_packet(exported_pdu_tap, pinfo, exp_pdu_data);
}
- dissect_credssp(tvb, pinfo, parent_tree, NULL);
- return TRUE;
+ dissect_credssp(tvb, pinfo, parent_tree, data);
+ return true;
}
}
}
}
}
- return FALSE;
+ return false;
}
@@ -166,7 +167,7 @@ void proto_register_credssp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_credssp,
&ett_credssp_RGC_CredBuffer,
#include "packet-credssp-ettarr.c"
@@ -181,8 +182,8 @@ void proto_register_credssp(void) {
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_credssp);
+ /* heuristic dissectors for any preamble e.g. CredSSP before RDP */
+ credssp_heur_subdissector_list = register_heur_dissector_list_with_description("credssp", "Unused", proto_credssp);
}
diff --git a/epan/dissectors/asn1/crmf/packet-crmf-template.c b/epan/dissectors/asn1/crmf/packet-crmf-template.c
index 682f8bd1..7d3dbef2 100644
--- a/epan/dissectors/asn1/crmf/packet-crmf-template.c
+++ b/epan/dissectors/asn1/crmf/packet-crmf-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-crmf.h"
@@ -29,8 +30,8 @@ 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;
+static int proto_crmf;
+static int hf_crmf_type_oid;
#include "packet-crmf-hf.c"
/* Initialize the subtree pointers */
@@ -51,7 +52,7 @@ void proto_register_crmf(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-crmf-ettarr.c"
};
diff --git a/epan/dissectors/asn1/dap/dap.cnf b/epan/dissectors/asn1/dap/dap.cnf
index 9c11b4d4..0ab35d10 100644
--- a/epan/dissectors/asn1/dap/dap.cnf
+++ b/epan/dissectors/asn1/dap/dap.cnf
@@ -186,12 +186,12 @@ SaslCredentials/credentials ABBREV=saslCredentials
TokenData/time ABBREV=utctime
NameErrorData/matched ABBREV=matched_name
-# This table creates the value_sting to name DAP operation codes and errors
+# This table creates the value_string 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[] = {
+static const value_string dap_opr_code_string_vals[] = {
#.TABLE_BODY OPERATION
{ %(&operationCode)s, "%(_ident)s" },
#.TABLE_FTR
@@ -262,7 +262,7 @@ OPERATION.&ResultType
#.FN_BODY DirectoryBindArgument
- guint32 len;
+ uint32_t len;
/* check and see if this is an empty set */
dissect_ber_length(actx->pinfo, tree, tvb, offset+1, &len, NULL);
@@ -302,7 +302,7 @@ OPERATION.&ResultType
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,"%%c",tvb_get_uint8(out_tvb,i));
proto_item_append_text(actx->created_item,")");
}
}
@@ -312,7 +312,7 @@ OPERATION.&ResultType
VAL_PTR = &problem
#.FN_BODY SecurityProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
@@ -322,7 +322,7 @@ OPERATION.&ResultType
VAL_PTR = &problem
#.FN_BODY ServiceProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
@@ -332,7 +332,7 @@ OPERATION.&ResultType
VAL_PTR = &problem
#.FN_BODY UpdateProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
@@ -342,7 +342,7 @@ OPERATION.&ResultType
VAL_PTR = &problem
#.FN_BODY LimitProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
@@ -352,7 +352,7 @@ OPERATION.&ResultType
#.FN_BODY SearchArgumentData/subset VAL_PTR=&subset
- guint32 subset;
+ uint32_t subset;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/dap/packet-dap-template.c b/epan/dissectors/asn1/dap/packet-dap-template.c
index 8c14a03b..ad23cc63 100644
--- a/epan/dissectors/asn1/dap/packet-dap-template.c
+++ b/epan/dissectors/asn1/dap/packet-dap-template.c
@@ -17,6 +17,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -43,16 +44,16 @@ void proto_register_dap(void);
void proto_reg_handoff_dap(void);
/* Initialize the protocol and registered fields */
-static int proto_dap = -1;
+static int proto_dap;
#include "packet-dap-hf.c"
/* Initialize the subtree pointers */
-static gint ett_dap = -1;
+static int ett_dap;
#include "packet-dap-ett.c"
-static expert_field ei_dap_anonymous = EI_INIT;
+static expert_field ei_dap_anonymous;
#include "packet-dap-val.h"
@@ -84,7 +85,7 @@ void proto_register_dap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_dap,
#include "packet-dap-ettarr.c"
};
@@ -129,7 +130,7 @@ void proto_reg_handoff_dap(void) {
/* 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_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");
diff --git a/epan/dissectors/asn1/disp/disp.cnf b/epan/dissectors/asn1/disp/disp.cnf
index 13370111..04b40176 100644
--- a/epan/dissectors/asn1/disp/disp.cnf
+++ b/epan/dissectors/asn1/disp/disp.cnf
@@ -42,7 +42,7 @@ ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
#.FN_BODY RequestShadowUpdateArgumentData/requestedStrategy/standard VAL_PTR=&update
- guint32 update;
+ uint32_t update;
%(DEFAULT_BODY)s
@@ -52,7 +52,7 @@ ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
VAL_PTR = &update
#.FN_BODY RefreshInformation
- guint32 update;
+ uint32_t update;
%(DEFAULT_BODY)s
@@ -62,7 +62,7 @@ ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
#.FN_BODY CoordinateShadowUpdateArgumentData/updateStrategy/standard VAL_PTR = &update
- guint32 update;
+ uint32_t update;
%(DEFAULT_BODY)s
@@ -72,7 +72,7 @@ ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
VAL_PTR = &update
#.FN_BODY CoordinateShadowUpdateResult
- guint32 update;
+ uint32_t update;
%(DEFAULT_BODY)s
@@ -82,7 +82,7 @@ ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
VAL_PTR = &update
#.FN_BODY RequestShadowUpdateResult
- guint32 update;
+ uint32_t update;
%(DEFAULT_BODY)s
@@ -92,7 +92,7 @@ ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
VAL_PTR = &update
#.FN_BODY UpdateShadowResult
- guint32 update;
+ uint32_t update;
%(DEFAULT_BODY)s
@@ -102,7 +102,7 @@ ModificationParameter S dop.oid "modify.roleb.2.5.19.1"
VAL_PTR = &problem
#.FN_BODY ShadowProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/disp/packet-disp-template.c b/epan/dissectors/asn1/disp/packet-disp-template.c
index a004a2db..cf081705 100644
--- a/epan/dissectors/asn1/disp/packet-disp-template.c
+++ b/epan/dissectors/asn1/disp/packet-disp-template.c
@@ -17,6 +17,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -44,20 +45,20 @@ void proto_register_disp(void);
void proto_reg_handoff_disp(void);
/* Initialize the protocol and registered fields */
-static int proto_disp = -1;
+static int proto_disp;
#include "packet-disp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_disp = -1;
+static int ett_disp;
#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;
+static expert_field ei_disp_unsupported_opcode;
+static expert_field ei_disp_unsupported_errcode;
+static expert_field ei_disp_unsupported_pdu;
+static expert_field ei_disp_zero_pdu;
-static dissector_handle_t disp_handle = NULL;
+static dissector_handle_t disp_handle;
#include "packet-disp-fn.c"
@@ -81,7 +82,7 @@ dissect_disp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
return 0;
session = (struct SESSION_DATA_STRUCTURE*)data;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
asn1_ctx.private_data = session;
@@ -166,7 +167,7 @@ dissect_disp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
while (tvb_reported_length_remaining(tvb, offset) > 0){
old_offset=offset;
- offset=(*disp_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ 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;
@@ -188,7 +189,7 @@ void proto_register_disp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_disp,
#include "packet-disp-ettarr.c"
};
@@ -238,9 +239,9 @@ void proto_reg_handoff_disp(void) {
oid_add_from_string("id-ac-reliable-shadow-supplier-initiated","2.5.3.7");
/* ABSTRACT SYNTAXES */
- 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);
+ 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");
diff --git a/epan/dissectors/asn1/dop/dop.cnf b/epan/dissectors/asn1/dop/dop.cnf
index 2a16b355..9e6f6716 100644
--- a/epan/dissectors/asn1/dop/dop.cnf
+++ b/epan/dissectors/asn1/dop/dop.cnf
@@ -181,7 +181,7 @@ OpBindingErrorParam/bindingType BindingType
#.FN_BODY OperationalBindingID/identifier VAL_PTR = &value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
@@ -190,7 +190,7 @@ OpBindingErrorParam/bindingType BindingType
#.FN_BODY OperationalBindingID/version VAL_PTR = &value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
@@ -199,7 +199,7 @@ OpBindingErrorParam/bindingType BindingType
#.FN_PARS Precedence VAL_PTR = &precedence
#.FN_BODY Precedence
- guint32 precedence = 0;
+ uint32_t precedence = 0;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/dop/packet-dop-template.c b/epan/dissectors/asn1/dop/packet-dop-template.c
index 56de6bca..2c8ad631 100644
--- a/epan/dissectors/asn1/dop/packet-dop-template.c
+++ b/epan/dissectors/asn1/dop/packet-dop-template.c
@@ -16,6 +16,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -39,26 +40,26 @@ void proto_register_dop(void);
void proto_reg_handoff_dop(void);
/* Initialize the protocol and registered fields */
-static int proto_dop = -1;
+static int proto_dop;
-static const char *binding_type = NULL; /* binding_type */
+static const char *binding_type; /* 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;
+static int ett_dop;
+static int ett_dop_unknown;
#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;
+static expert_field ei_dop_unknown_binding_parameter;
+static expert_field ei_dop_unsupported_opcode;
+static expert_field ei_dop_unsupported_errcode;
+static expert_field ei_dop_unsupported_pdu;
+static expert_field ei_dop_zero_pdu;
-static dissector_handle_t dop_handle = NULL;
+static dissector_handle_t dop_handle;
/* Dissector table */
static dissector_table_t dop_dissector_table;
@@ -119,7 +120,7 @@ dissect_dop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
return 0;
session = (struct SESSION_DATA_STRUCTURE*)data;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
@@ -204,7 +205,7 @@ dissect_dop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
while (tvb_reported_length_remaining(tvb, offset) > 0){
old_offset=offset;
- offset=(*dop_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ 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;
@@ -227,7 +228,7 @@ void proto_register_dop(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_dop,
&ett_dop_unknown,
#include "packet-dop-ettarr.c"
@@ -281,7 +282,7 @@ void proto_reg_handoff_dop(void) {
/* ABSTRACT SYNTAXES */
/* Register DOP with ROS (with no use of RTSE) */
- register_ros_oid_dissector_handle("2.5.9.4", dop_handle, 0, "id-as-directory-operational-binding-management", FALSE);
+ register_ros_oid_dissector_handle("2.5.9.4", dop_handle, 0, "id-as-directory-operational-binding-management", false);
/* BINDING TYPES */
diff --git a/epan/dissectors/asn1/dsp/packet-dsp-template.c b/epan/dissectors/asn1/dsp/packet-dsp-template.c
index 46fea89c..fce64e32 100644
--- a/epan/dissectors/asn1/dsp/packet-dsp-template.c
+++ b/epan/dissectors/asn1/dsp/packet-dsp-template.c
@@ -16,6 +16,7 @@
#include <epan/prefs.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -37,18 +38,18 @@ void proto_register_dsp(void);
void proto_reg_handoff_dsp(void);
/* Initialize the protocol and registered fields */
-static int proto_dsp = -1;
+static int proto_dsp;
#include "packet-dsp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_dsp = -1;
+static int ett_dsp;
#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;
+static expert_field ei_dsp_unsupported_opcode;
+static expert_field ei_dsp_unsupported_errcode;
+static expert_field ei_dsp_unsupported_pdu;
+static expert_field ei_dsp_zero_pdu;
#include "packet-dsp-fn.c"
@@ -74,7 +75,7 @@ dissect_dsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
return 0;
session = (struct SESSION_DATA_STRUCTURE*)data;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
@@ -237,7 +238,7 @@ dissect_dsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
while (tvb_reported_length_remaining(tvb, offset) > 0){
old_offset=offset;
- offset=(*dsp_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ 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;
@@ -259,7 +260,7 @@ void proto_register_dsp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_dsp,
#include "packet-dsp-ettarr.c"
};
@@ -308,6 +309,6 @@ void proto_reg_handoff_dsp(void) {
/* ABSTRACT SYNTAXES */
/* Register DSP with ROS (with no use of RTSE) */
- register_ros_oid_dissector_handle("2.5.9.2", dsp_handle, 0, "id-as-directory-system", FALSE);
+ register_ros_oid_dissector_handle("2.5.9.2", dsp_handle, 0, "id-as-directory-system", false);
}
diff --git a/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
index 76fa9490..e81ce95a 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.5.0 (2023-06)
+-- 3GPP TS 37.483 V18.2.0 (2024-06)
-- **************************************************************
--
-- Common definitions
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Constants.asn b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
index ed364b24..ce1df741 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.5.0 (2023-06)
+-- 3GPP TS 37.483 V18.2.0 (2024-06)
-- **************************************************************
--
-- Constant definitions
@@ -65,7 +65,7 @@ id-MCBearerContextModification ProcedureCode ::= 35
id-MCBearerContextModificationRequired ProcedureCode ::= 36
id-MCBearerContextRelease ProcedureCode ::= 37
id-MCBearerContextReleaseRequest ProcedureCode ::= 38
-
+id-MCBearerNotification ProcedureCode ::= 39
-- **************************************************************
@@ -103,6 +103,10 @@ maxnoofMBSAreaSessionIDs INTEGER ::= 256
maxnoofSharedNG-UTerminations INTEGER ::= 8
maxnoofMRBs INTEGER ::= 32
maxnoofMBSSessionIDs INTEGER ::= 512
+maxnoofCellsforMBS INTEGER ::= 512
+maxnoofTAIforMBS INTEGER ::= 512
+maxnoofMBSServiceAreaInformation INTEGER ::= 256
+maxnoofDUs INTEGER ::= 512
-- **************************************************************
@@ -236,7 +240,7 @@ id-CHOInitiation ProtocolIE-ID ::= 121
id-EarlyForwardingCOUNTReq ProtocolIE-ID ::= 122
id-EarlyForwardingCOUNTInfo ProtocolIE-ID ::= 123
id-AlternativeQoSParaSetList ProtocolIE-ID ::= 124
-id-ExtendedSliceSupportList ProtocolIE-ID ::= 125
+id-ExtendedSliceSupportList ProtocolIE-ID ::= 125
id-MCG-OfferedGBRQoSFlowInfo ProtocolIE-ID ::= 126
id-Number-of-tunnels ProtocolIE-ID ::= 127
id-DRB-Measurement-Results-Information-List ProtocolIE-ID ::= 128
@@ -298,6 +302,40 @@ id-MCForwardingResourceReleaseIndication ProtocolIE-ID ::= 183
id-PDCP-COUNT-Reset ProtocolIE-ID ::= 184
id-MBSSessionAssociatedInfoNonSupportToSupport ProtocolIE-ID ::= 185
id-VersionID ProtocolIE-ID ::= 186
+id-InactivityInformationRequest ProtocolIE-ID ::= 187
+id-UEInactivityInformation ProtocolIE-ID ::= 188
+id-MBSAreaSessionID ProtocolIE-ID ::= 189
+id-Secondary-PDU-Session-Data-Forwarding-Information ProtocolIE-ID ::= 190
+id-MBSSessionResourceNotification ProtocolIE-ID ::= 191
+id-MCBearerContextInactivityTimer ProtocolIE-ID ::= 192
+id-MCBearerContextStatusChange ProtocolIE-ID ::= 193
+id-MT-SDT-Information ProtocolIE-ID ::= 194
+id-MT-SDT-Information-Request ProtocolIE-ID ::= 195
+id-SDT-data-size-threshold ProtocolIE-ID ::= 196
+id-SDT-data-size-threshold-Crossed ProtocolIE-ID ::= 197
+id-SpecialTriggeringPurpose ProtocolIE-ID ::= 198
+id-AssociatedSessionID ProtocolIE-ID ::= 199
+id-MBS-ServiceArea ProtocolIE-ID ::= 200
+id-PDUSetQoSParameters ProtocolIE-ID ::= 201
+id-N6JitterInformation ProtocolIE-ID ::= 202
+id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID ::= 203
+id-ECNMarkingorCongestionInformationReportingStatus ProtocolIE-ID ::= 204
+id-PDUSetbasedHandlingIndicator ProtocolIE-ID ::= 205
+id-IndirectPathIndication ProtocolIE-ID ::= 206
+id-F1UTunnelNotEstablished ProtocolIE-ID ::= 207
+id-F1U-TNL-InfoToAdd-List ProtocolIE-ID ::= 208
+id-F1U-TNL-InfoAdded-List ProtocolIE-ID ::= 209
+id-F1U-TNL-InfoToAddOrModify-List ProtocolIE-ID ::= 210
+id-F1U-TNL-InfoAddedOrModified-List ProtocolIE-ID ::= 211
+id-F1U-TNL-InfoToRelease-List ProtocolIE-ID ::= 212
+id-BroadcastF1U-ContextReferenceE1 ProtocolIE-ID ::= 213
+id-PSIbasedDiscardTimer ProtocolIE-ID ::= 214
+id-UserPlaneErrorIndicator ProtocolIE-ID ::= 215
+id-MaximumDataBurstVolume ProtocolIE-ID ::= 216
+id-BCBearerContextNGU-TNLInfoatNGRAN-Request ProtocolIE-ID ::= 217
+id-PDCPSNGapReport ProtocolIE-ID ::= 218
+id-UserPlaneFailureIndication ProtocolIE-ID ::= 219
+
END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Containers.asn b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
index d7d1392d..0423b219 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.5.0 (2023-06)
+-- 3GPP TS 37.483 V18.2.0 (2024-06)
-- **************************************************************
--
-- Container definitions
diff --git a/epan/dissectors/asn1/e1ap/E1AP-IEs.asn b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
index 536691e6..baeb3522 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.5.0 (2023-06)
+-- 3GPP TS 37.483 V18.2.0 (2024-06)
-- **************************************************************
--
-- Information Element Definitions
@@ -24,6 +24,7 @@ IMPORTS
id-QoSFlowMappingIndication,
id-TNLAssociationTransportLayerAddressgNBCUUP,
id-Cause,
+ id-BCBearerContextNGU-TNLInfoatNGRAN-Request,
id-QoSMonitoringRequest,
id-QosMonitoringReportingFrequency,
id-QoSMonitoringDisabled,
@@ -76,6 +77,30 @@ IMPORTS
id-PDCP-COUNT-Reset,
id-MBSSessionAssociatedInfoNonSupportToSupport,
id-VersionID,
+ id-MBSAreaSessionID,
+ id-Secondary-PDU-Session-Data-Forwarding-Information,
+ id-MBSSessionResourceNotification,
+ id-MCBearerContextInactivityTimer,
+ id-MCBearerContextStatusChange,
+ id-SpecialTriggeringPurpose,
+ id-F1UTunnelNotEstablished,
+ id-PDUSetQoSParameters,
+ id-N6JitterInformation,
+ id-ECNMarkingorCongestionInformationReportingRequest,
+ id-ECNMarkingorCongestionInformationReportingStatus,
+ id-PDUSetbasedHandlingIndicator,
+ id-IndirectPathIndication,
+ id-F1U-TNL-InfoToAdd-List,
+ id-F1U-TNL-InfoAdded-List,
+ id-F1U-TNL-InfoToAddOrModify-List,
+ id-F1U-TNL-InfoAddedOrModified-List,
+ id-F1U-TNL-InfoToRelease-List,
+ id-BroadcastF1U-ContextReferenceE1,
+ id-PSIbasedDiscardTimer,
+ id-UserPlaneErrorIndicator,
+ id-MaximumDataBurstVolume,
+ id-PDCPSNGapReport,
+ id-UserPlaneFailureIndication,
maxnoofMBSAreaSessionIDs,
maxnoofSharedNG-UTerminations,
maxnoofMRBs,
@@ -100,7 +125,12 @@ IMPORTS
maxnoofDataForwardingTunneltoE-UTRAN,
maxnoofExtNRCGI,
maxnoofECGI,
- maxnoofSMBRValues
+ maxnoofSMBRValues,
+ maxnoofCellsforMBS,
+ maxnoofTAIforMBS,
+ maxnoofMBSServiceAreaInformation,
+ maxnoofDUs
+
FROM E1AP-Constants
@@ -167,9 +197,12 @@ AlternativeQoSParaSetItem ::= SEQUENCE {
}
AlternativeQoSParaSetItem-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-MaximumDataBurstVolume CRITICALITY ignore EXTENSION MaxDataBurstVolume PRESENCE optional },
...
}
+AssociatedSessionID ::= OCTET STRING
+
-- B
-- BCBearerContextToSetup
@@ -210,6 +243,7 @@ BCMRBSetupConfiguration-Item ::= SEQUENCE {
}
BCMRBSetupConfiguration-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoToAdd-List CRITICALITY ignore EXTENSION F1U-TNL-InfoToAdd-List PRESENCE optional},
...
}
@@ -250,6 +284,7 @@ BCMRBSetupResponseList-Item ::= SEQUENCE {
}
BCMRBSetupResponseList-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoAdded-List CRITICALITY ignore EXTENSION F1U-TNL-InfoAdded-List PRESENCE optional},
...
}
@@ -289,6 +324,17 @@ BCBearerContextToModify ::= SEQUENCE {
}
BCBearerContextToModify-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-BCBearerContextNGU-TNLInfoatNGRAN-Request CRITICALITY ignore EXTENSION BCBearerContextNGU-TNLInfoatNGRAN-Request PRESENCE optional},
+ ...
+}
+
+BCBearerContextNGU-TNLInfoatNGRAN-Request ::= CHOICE {
+ locationindependent MBSNGUInformationAtNGRAN-Request,
+ locationdependent MBSNGUInformationAtNGRAN-Request-List,
+ choice-extension ProtocolIE-SingleContainer {{ BCBearerContextNGU-TNLInfoatNGRAN-Request-ExtIEs}}
+}
+
+BCBearerContextNGU-TNLInfoatNGRAN-Request-ExtIEs E1AP-PROTOCOL-IES ::= {
...
}
@@ -305,6 +351,8 @@ BCMRBModifyConfiguration-Item ::= SEQUENCE {
}
BCMRBModifyConfiguration-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoToAddOrModify-List CRITICALITY ignore EXTENSION F1U-TNL-InfoToAddOrModify-List PRESENCE optional}|
+ {ID id-F1U-TNL-InfoToRelease-List CRITICALITY ignore EXTENSION F1U-TNL-InfoToRelease-List PRESENCE optional},
...
}
@@ -348,9 +396,12 @@ BCMRBSetupModifyResponseList-Item ::= SEQUENCE {
}
BCMRBSetupModifyResponseList-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoAddedOrModified-List CRITICALITY ignore EXTENSION F1U-TNL-InfoAddedOrModified-List PRESENCE optional},
...
}
+BroadcastF1U-ContextReferenceE1 ::= OCTET STRING (SIZE(4))
+
-- BCBearerContextToModifyRequired
@@ -391,6 +442,7 @@ BufferSize ::= ENUMERATED {
...
}
+
-- C
Cause ::= CHOICE {
@@ -600,7 +652,8 @@ Data-Forwarding-Information ::= SEQUENCE {
}
Data-Forwarding-Information-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
- {ID id-DataForwardingtoNG-RANQoSFlowInformationList CRITICALITY ignore EXTENSION DataForwardingtoNG-RANQoSFlowInformationList PRESENCE optional},
+ {ID id-DataForwardingtoNG-RANQoSFlowInformationList CRITICALITY ignore EXTENSION DataForwardingtoNG-RANQoSFlowInformationList PRESENCE optional}|
+ {ID id-PDUSetbasedHandlingIndicator CRITICALITY ignore EXTENSION PDUSetbasedHandlingIndicator PRESENCE optional},
...
}
@@ -685,6 +738,8 @@ DiscardTimer ::= ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms
DiscardTimerExtended ::= ENUMERATED {ms0dot5, ms1, ms2, ms4, ms6, ms8,..., ms2000}
+PSIbasedDiscardTimer ::= ENUMERATED {ms0, ms2, ms4, ms6, ms8, ms10, ms12, ms14, ms18, ms22, ms26, ms30, ms40, ms50, ms75, ms100, ...}
+
DLDiscarding ::= SEQUENCE {
dLDiscardingCountVal PDCP-Count,
iE-Extensions ProtocolExtensionContainer { { DLDiscarding-ExtIEs } } OPTIONAL
@@ -1212,7 +1267,8 @@ DRB-To-Setup-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-DAPSRequestInfo CRITICALITY ignore EXTENSION DAPSRequestInfo PRESENCE optional}|
{ID id-ignoreMappingRuleIndication CRITICALITY reject EXTENSION IgnoreMappingRuleIndication PRESENCE optional}|
{ID id-QoSFlowsDRBRemapping CRITICALITY reject EXTENSION QoS-Flows-DRB-Remapping PRESENCE optional}|
- {ID id-SDTindicatorSetup CRITICALITY reject EXTENSION SDTindicatorSetup PRESENCE optional},
+ {ID id-SDTindicatorSetup CRITICALITY reject EXTENSION SDTindicatorSetup PRESENCE optional}|
+ {ID id-SpecialTriggeringPurpose CRITICALITY ignore EXTENSION SpecialTriggeringPurpose PRESENCE optional},
...
}
@@ -1235,7 +1291,8 @@ DRB-To-Setup-Mod-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-DRB-QoS CRITICALITY ignore EXTENSION QoSFlowLevelQoSParameters PRESENCE optional}|
{ID id-ignoreMappingRuleIndication CRITICALITY reject EXTENSION IgnoreMappingRuleIndication PRESENCE optional}|
{ID id-DAPSRequestInfo CRITICALITY ignore EXTENSION DAPSRequestInfo PRESENCE optional}|
- {ID id-SDTindicatorSetup CRITICALITY reject EXTENSION SDTindicatorSetup PRESENCE optional},
+ {ID id-SDTindicatorSetup CRITICALITY reject EXTENSION SDTindicatorSetup PRESENCE optional}|
+ {ID id-SpecialTriggeringPurpose CRITICALITY ignore EXTENSION SpecialTriggeringPurpose PRESENCE optional},
...
}
@@ -1267,7 +1324,9 @@ Dynamic5QIDescriptor ::= SEQUENCE {
packetErrorRate PacketErrorRate,
fiveQI INTEGER (0..255, ...) OPTIONAL,
delayCritical ENUMERATED {delay-critical, non-delay-critical} OPTIONAL,
+-- This IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.--
averagingWindow AveragingWindow OPTIONAL,
+-- This IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.--
maxDataBurstVolume MaxDataBurstVolume OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { Dynamic5QIDescriptor-ExtIEs } } OPTIONAL
}
@@ -1300,6 +1359,21 @@ EarlyForwardingCOUNTInfo-ExtIEs E1AP-PROTOCOL-IES ::= {
EarlyForwardingCOUNTReq ::= ENUMERATED { first-dl-count, dl-discarding, ...}
+ECNMarkingorCongestionInformationReportingRequest ::= CHOICE {
+ eCNMarkingatNGRAN ENUMERATED { ul, dl, both, stop, ...},
+ eCNMarkingatUPF ENUMERATED { ul, dl, both, stop, ...},
+ congestionInformation ENUMERATED { ul, dl, both, stop, ...},
+ choice-extension ProtocolIE-SingleContainer {{ECNMarkingorCongestionInformationReportingRequest-ExtIEs}}
+}
+
+ECNMarkingorCongestionInformationReportingRequest-ExtIEs E1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+
+ECNMarkingorCongestionInformationReportingStatus ::= ENUMERATED { active, not-active, ...}
+
+
EHC-Common-Parameters ::= SEQUENCE {
ehc-CID-Length ENUMERATED { bits7, bits15, ...},
iE-Extensions ProtocolExtensionContainer { { EHC-Common-Parameters-ExtIEs } } OPTIONAL
@@ -1425,6 +1499,72 @@ FirstDLCount-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
...
}
+FiveGS-TAC ::= OCTET STRING (SIZE(3))
+
+F1U-TNL-InfoAdded-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoAdded-Item
+
+F1U-TNL-InfoAdded-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ bcBearerContextF1U-TNLInfoatCU BCBearerContextF1U-TNLInfoatCU,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoAdded-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoAdded-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoToAdd-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoToAdd-Item
+
+F1U-TNL-InfoToAdd-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoToAdd-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoToAdd-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoAddedOrModified-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoAddedOrModified-Item
+
+F1U-TNL-InfoAddedOrModified-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ bcBearerContextF1U-TNLInfoatCU BCBearerContextF1U-TNLInfoatCU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoAddedOrModified-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoAddedOrModified-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoToAddOrModify-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoToAddOrModify-Item
+
+F1U-TNL-InfoToAddOrModify-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ bcBearerContextF1U-TNLInfoatDU BCBearerContextF1U-TNLInfoatDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoToAddOrModify-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoToAddOrModify-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoToRelease-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoToRelease-Item
+
+F1U-TNL-InfoToRelease-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoToRelease-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoToRelease-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- G
GlobalMBSSessionID ::= SEQUENCE {
@@ -1644,6 +1784,12 @@ HW-CapacityIndicator-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
-- I
+
+IndirectPathIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
IgnoreMappingRuleIndication ::= ENUMERATED {
true,
...
@@ -1679,8 +1825,11 @@ InterfacesToTrace ::= BIT STRING (SIZE(8))
ImmediateMDT ::= SEQUENCE {
measurementsToActivate MeasurementsToActivate,
measurementFour M4Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the fourth bit set to “1â€.--
measurementSix M6Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the seventh bit set to “1â€.--
measurementSeven M7Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the eighth bit set to “1â€.--
iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL,
...
}
@@ -1700,6 +1849,9 @@ IAB-donor-CU-UPPSKInfoItemExtIEs E1AP-PROTOCOL-EXTENSION ::= {
}
IAB-donor-CU-UPPSK ::= OCTET STRING
+InactivityInformationRequest ::= ENUMERATED {true, ...}
+
+
-- J
-- K
@@ -1750,6 +1902,7 @@ LocationDependentMBSF1UInformationAtDU-Item ::= SEQUENCE {
}
LocationDependentMBSF1UInformationAtDU-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-F1UTunnelNotEstablished CRITICALITY ignore EXTENSION F1UTunnelNotEstablished PRESENCE optional },
...
}
@@ -1809,6 +1962,7 @@ MBSF1UInformationAtDU ::= SEQUENCE {
}
MBSF1UInformationAtDU-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-F1UTunnelNotEstablished CRITICALITY ignore EXTENSION F1UTunnelNotEstablished PRESENCE optional },
...
}
@@ -1842,6 +1996,20 @@ MBSNGUInformationAtNGRAN-ExtIEs E1AP-PROTOCOL-IES ::= {
...
}
+MBSNGUInformationAtNGRAN-Request ::= ENUMERATED {true, ... }
+
+MBSNGUInformationAtNGRAN-Request-List ::= SEQUENCE (SIZE(1..maxnoofMBSAreaSessionIDs)) OF MBSNGUInformationAtNGRAN-Request-Item
+
+MBSNGUInformationAtNGRAN-Request-Item ::= SEQUENCE {
+ mbsAreaSession-ID MBSAreaSessionID,
+ mbsNGUInformationAtNGRAN-Request MBSNGUInformationAtNGRAN-Request,
+ iE-Extensions ProtocolExtensionContainer { { MBSNGUInformationAtNGRAN-Request-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MBSNGUInformationAtNGRAN-Request-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
MBSSessionAssociatedInfoNonSupportToSupport ::= SEQUENCE {
ue-Reference-ID GNB-CU-CP-UE-E1AP-ID,
@@ -1857,7 +2025,7 @@ MBSSessionAssociatedInfoNonSupportToSupport-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
MBSSessionAssociatedInformation ::= SEQUENCE {
mbsSessionAssociatedInformationList MBSSessionAssociatedInformationList,
- mbsSessionForwardingAddress TransportLayerAddress,
+ mbsSessionForwardingAddress UP-TNL-Information,
iE-Extensions ProtocolExtensionContainer { {MBSSessionAssociatedInformation-ExtIEs} } OPTIONAL,
...
}
@@ -1893,6 +2061,38 @@ MBS-Support-Info-ToAdd-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
MBS-Support-Info-ToRemove-List ::= SEQUENCE (SIZE(1..maxnoofMBSSessionIDs)) OF MBS-Support-Info-ToRemove-Item
+MBSSessionResourceNotification ::= CHOICE {
+ mbs-DL-Data-Arrival MBS-DL-Data-Arrival,
+ inactivity MCBearerContext-Inactivity,
+ choice-extension ProtocolIE-SingleContainer {{ MBSSessionResourceNotification-ExtIEs}}
+}
+
+MBSSessionResourceNotification-ExtIEs E1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+MBS-DL-Data-Arrival ::= SEQUENCE {
+ dlDataArrival ENUMERATED {true, ...},
+ ppi PPI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBS-DL-Data-Arrival-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-DL-Data-Arrival-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MCBearerContext-Inactivity ::= SEQUENCE {
+ mcBearerContext-Inactivity-Indication ENUMERATED {true, ...},
+ iE-Extensions ProtocolExtensionContainer { {MCBearerContext-Inactivity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MCBearerContext-Inactivity-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
MBS-Support-Info-ToRemove-Item ::= SEQUENCE {
globalMBSSessionID GlobalMBSSessionID,
iE-Extensions ProtocolExtensionContainer { { MBS-Support-Info-ToRemove-Item-ExtIEs} } OPTIONAL,
@@ -1914,7 +2114,10 @@ MCBearerContextToSetup ::= SEQUENCE {
}
MCBearerContextToSetup-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
- {ID id-MBSSessionAssociatedInfoNonSupportToSupport CRITICALITY ignore EXTENSION MBSSessionAssociatedInfoNonSupportToSupport PRESENCE optional},
+ {ID id-MBSSessionAssociatedInfoNonSupportToSupport CRITICALITY ignore EXTENSION MBSSessionAssociatedInfoNonSupportToSupport PRESENCE optional}|
+ {ID id-MBSAreaSessionID CRITICALITY ignore EXTENSION MBSAreaSessionID PRESENCE optional}|
+ {ID id-MCBearerContextInactivityTimer CRITICALITY ignore EXTENSION Inactivity-Timer PRESENCE optional}|
+ {ID id-MCBearerContextStatusChange CRITICALITY ignore EXTENSION MCBearerContextStatusChange PRESENCE optional},
...
}
@@ -1933,6 +2136,8 @@ MCMRBSetupConfiguration-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
...
}
+MCBearerContextStatusChange ::= ENUMERATED {suspend, resume, ...}
+
-- MCBearerContextToSetupResponse
@@ -2008,7 +2213,9 @@ MCBearerContextToModify-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-MCForwardingResourceRequest CRITICALITY ignore EXTENSION MCForwardingResourceRequest PRESENCE optional}|
{ID id-MCForwardingResourceIndication CRITICALITY ignore EXTENSION MCForwardingResourceIndication PRESENCE optional}|
{ID id-MCForwardingResourceRelease CRITICALITY ignore EXTENSION MCForwardingResourceRelease PRESENCE optional}|
- {ID id-MBSSessionAssociatedInfoNonSupportToSupport CRITICALITY ignore EXTENSION MBSSessionAssociatedInfoNonSupportToSupport PRESENCE optional},
+ {ID id-MBSSessionAssociatedInfoNonSupportToSupport CRITICALITY ignore EXTENSION MBSSessionAssociatedInfoNonSupportToSupport PRESENCE optional}|
+ {ID id-MCBearerContextInactivityTimer CRITICALITY ignore EXTENSION Inactivity-Timer PRESENCE optional}|
+ {ID id-MCBearerContextStatusChange CRITICALITY ignore EXTENSION MCBearerContextStatusChange PRESENCE optional},
...
}
@@ -2430,6 +2637,71 @@ MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity
MDTPLMNModificationList ::= SEQUENCE (SIZE(0..maxnoofMDTPLMNs)) OF PLMN-Identity
+MT-SDT-Information ::= SEQUENCE {
+ mT-SDT-Data-Size MT-SDT-Data-Size,
+ iE-Extensions ProtocolExtensionContainer { {MT-SDT-Information-ExtIEs} } OPTIONAL
+}
+
+MT-SDT-Information-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MT-SDT-Information-Request ::= ENUMERATED {true, ...}
+
+MT-SDT-Data-Size::= INTEGER (1..96000, ...)
+
+
+
+
+MBS-ServiceArea ::= SEQUENCE {
+ mBS-ServiceAreaInformationList MBS-ServiceAreaInformationList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MBS-ServiceArea-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-ServiceArea-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MBS-ServiceAreaInformation ::= SEQUENCE {
+ mBS-ServiceAreaCellList MBS-ServiceAreaCellList OPTIONAL,
+ mBS-ServiceAreaTAIList MBS-ServiceAreaTAIList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MBS-ServiceAreaInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-ServiceAreaInformation-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBS-ServiceAreaCellList ::= SEQUENCE (SIZE(1.. maxnoofCellsforMBS)) OF NR-CGI
+
+MBS-ServiceAreaTAIList ::= SEQUENCE (SIZE(1.. maxnoofTAIforMBS)) OF MBS-ServiceAreaTAIList-Item
+MBS-ServiceAreaTAIList-Item ::= SEQUENCE {
+ plmn-ID PLMN-Identity,
+ fiveGS-TAC FiveGS-TAC,
+ iE-Extensions ProtocolExtensionContainer { {MBS-ServiceAreaTAIList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-ServiceAreaTAIList-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MBS-ServiceAreaInformationList ::= SEQUENCE (SIZE(1..maxnoofMBSServiceAreaInformation)) OF MBS-ServiceAreaInformationItem
+
+MBS-ServiceAreaInformationItem ::= SEQUENCE {
+ mBS-AreaSessionID MBSAreaSessionID,
+ mBS-ServiceAreaInformation MBS-ServiceAreaInformation,
+ iE-Extensions ProtocolExtensionContainer { { MBS-ServiceAreaInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+MBS-ServiceAreaInformationItem-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- N
NetworkInstance ::= INTEGER (1..256, ...)
@@ -2547,6 +2819,19 @@ Extended-NR-CGI-Support-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
...
}
+N6JitterInformation ::= SEQUENCE {
+ n6JitterLowerBound INTEGER (-127..127),
+ n6JitterUpperBound INTEGER (-127..127),
+ iE-Extensions ProtocolExtensionContainer { { N6JitterInformationExtIEs } } OPTIONAL,
+ ...
+}
+
+N6JitterInformationExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
-- O
OutOfOrderDelivery ::= ENUMERATED {
@@ -2596,10 +2881,14 @@ PDCP-Configuration-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ ID id-AdditionalPDCPduplicationInformation CRITICALITY ignore EXTENSION AdditionalPDCPduplicationInformation PRESENCE optional }|
{ ID id-EHC-Parameters CRITICALITY ignore EXTENSION EHC-Parameters PRESENCE optional}|
{ ID id-UDC-Parameters CRITICALITY ignore EXTENSION UDC-Parameters PRESENCE optional}|
- { ID id-DiscardTimerExtended CRITICALITY reject EXTENSION DiscardTimerExtended PRESENCE optional},
+ { ID id-DiscardTimerExtended CRITICALITY reject EXTENSION DiscardTimerExtended PRESENCE optional}|
+ { ID id-PSIbasedDiscardTimer CRITICALITY ignore EXTENSION PSIbasedDiscardTimer PRESENCE optional}|
+ { ID id-PDCPSNGapReport CRITICALITY ignore EXTENSION PDCPSNGapReport PRESENCE optional},
...
}
+PDCPSNGapReport ::= ENUMERATED {true, ...}
+
PDCP-COUNT-Reset ::= ENUMERATED {
true,
...
@@ -2655,9 +2944,9 @@ PDCP-SN-Size ::= ENUMERATED {
s-12,
s-18,
...,
-s-7,
-s-15,
-s-16
+ s-7,
+ s-15,
+ s-16
}
PDCP-SN-Status-Information ::= SEQUENCE {
@@ -2863,7 +3152,9 @@ PDU-Session-Resource-To-Modify-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-redundant-nG-UL-UP-TNL-Information CRITICALITY ignore EXTENSION UP-TNL-Information PRESENCE optional }|
{ID id-RedundantCommonNetworkInstance CRITICALITY ignore EXTENSION CommonNetworkInstance PRESENCE optional }|
{ID id-DataForwardingtoE-UTRANInformationList CRITICALITY ignore EXTENSION DataForwardingtoE-UTRANInformationList PRESENCE optional }|
- {ID id-SecurityIndicationModify CRITICALITY ignore EXTENSION SecurityIndication PRESENCE optional },
+ {ID id-SecurityIndicationModify CRITICALITY ignore EXTENSION SecurityIndication PRESENCE optional }|
+ {ID id-Secondary-PDU-Session-Data-Forwarding-Information CRITICALITY ignore EXTENSION Data-Forwarding-Information PRESENCE optional }|
+ {ID id-UserPlaneFailureIndication CRITICALITY ignore EXTENSION UserPlaneFailureIndication PRESENCE optional },
...
}
@@ -2876,7 +3167,8 @@ PDU-Session-Resource-To-Remove-Item ::= SEQUENCE {
}
PDU-Session-Resource-To-Remove-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
- {ID id-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ {ID id-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional}|
+ {ID id-UserPlaneErrorIndicator CRITICALITY ignore EXTENSION UserPlaneErrorIndicator PRESENCE optional},
...
}
@@ -2902,7 +3194,8 @@ PDU-Session-Resource-To-Setup-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ ID id-CommonNetworkInstance CRITICALITY ignore EXTENSION CommonNetworkInstance PRESENCE optional }|
{ ID id-redundant-nG-UL-UP-TNL-Information CRITICALITY ignore EXTENSION UP-TNL-Information PRESENCE optional }|
{ ID id-RedundantCommonNetworkInstance CRITICALITY ignore EXTENSION CommonNetworkInstance PRESENCE optional }|
- { ID id-RedundantPDUSessionInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional },
+ { ID id-RedundantPDUSessionInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional }|
+ {ID id-SpecialTriggeringPurpose CRITICALITY ignore EXTENSION SpecialTriggeringPurpose PRESENCE optional},
...
}
@@ -2926,7 +3219,8 @@ PDU-Session-Resource-To-Setup-Mod-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-NetworkInstance CRITICALITY ignore EXTENSION NetworkInstance PRESENCE optional}|
{ID id-CommonNetworkInstance CRITICALITY ignore EXTENSION CommonNetworkInstance PRESENCE optional}|
{ID id-redundant-nG-UL-UP-TNL-Information CRITICALITY ignore EXTENSION UP-TNL-Information PRESENCE optional }|
- {ID id-RedundantCommonNetworkInstance CRITICALITY ignore EXTENSION CommonNetworkInstance PRESENCE optional },
+ {ID id-RedundantCommonNetworkInstance CRITICALITY ignore EXTENSION CommonNetworkInstance PRESENCE optional }|
+ {ID id-SpecialTriggeringPurpose CRITICALITY ignore EXTENSION SpecialTriggeringPurpose PRESENCE optional},
...
}
@@ -2952,6 +3246,8 @@ PDU-Session-Type ::= ENUMERATED {
...
}
+PDUSetbasedHandlingIndicator ::= ENUMERATED {supported, ...}
+
PLMN-Identity ::= OCTET STRING (SIZE(3))
PortNumber ::= BIT STRING (SIZE(16))
@@ -2976,6 +3272,27 @@ PrivacyIndicator ::= ENUMERATED {
...
}
+PDUSetQoSParameters ::= SEQUENCE {
+ ulPDUSetQoSInformation PDUSetQoSInformation OPTIONAL,
+ dlPDUSetQoSInformation PDUSetQoSInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUSetQoSParameters-ExtIEs } } OPTIONAL
+}
+
+PDUSetQoSParameters-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+ }
+
+PDUSetQoSInformation ::= SEQUENCE {
+ pduSetDelayBudget ExtendedPacketDelayBudget OPTIONAL,
+ pduSetErrorRate PacketErrorRate OPTIONAL,
+ pduSetIntegratedHandlingInformation ENUMERATED {true, false, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUSetQoSInformation-ExtIEs } } OPTIONAL
+}
+
+PDUSetQoSInformation-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- Q
QCI ::= INTEGER (0..255)
@@ -3002,7 +3319,8 @@ QoS-Flow-Item ::= SEQUENCE {
QoS-Flow-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-QoSFlowMappingIndication CRITICALITY ignore EXTENSION QoS-Flow-Mapping-Indication PRESENCE optional}|
- {ID id-DataForwardingSourceIPAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional},
+ {ID id-DataForwardingSourceIPAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional}|
+ {ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional},
...
}
@@ -3062,7 +3380,8 @@ QoS-Flow-QoS-Parameter-Item ::= SEQUENCE {
QoS-Flow-QoS-Parameter-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-RedundantQosFlowIndicator CRITICALITY ignore EXTENSION RedundantQoSFlowIndicator PRESENCE optional}|
- {ID id-TSCTrafficCharacteristics CRITICALITY ignore EXTENSION TSCTrafficCharacteristics PRESENCE optional},
+ {ID id-TSCTrafficCharacteristics CRITICALITY ignore EXTENSION TSCTrafficCharacteristics PRESENCE optional}|
+ {ID id-ECNMarkingorCongestionInformationReportingRequest CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingRequest PRESENCE optional},
...
}
@@ -3083,7 +3402,8 @@ QoSFlowLevelQoSParameters-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-MCG-OfferedGBRQoSFlowInfo CRITICALITY ignore EXTENSION GBR-QoSFlowInformation PRESENCE optional}|
{ID id-QosMonitoringReportingFrequency CRITICALITY ignore EXTENSION QosMonitoringReportingFrequency PRESENCE optional}|
{ID id-QoSMonitoringDisabled CRITICALITY ignore EXTENSION QosMonitoringDisabled PRESENCE optional}|
- {ID id-DataForwardingSourceIPAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional},
+ {ID id-DataForwardingSourceIPAddress CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional}|
+ {ID id-PDUSetQoSParameters CRITICALITY ignore EXTENSION PDUSetQoSParameters PRESENCE optional},
...
}
@@ -3218,6 +3538,10 @@ ROHC-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
-- S
+SDT-data-size-threshold ::= INTEGER (1.. 192000, ...)
+
+SDT-data-size-threshold-Crossed ::= ENUMERATED {true, ...}
+
SCGActivationStatus ::= ENUMERATED { scg-activated, scg-deactivated, ...}
SecurityAlgorithm ::= SEQUENCE {
@@ -3235,6 +3559,7 @@ SecurityIndication ::= SEQUENCE {
integrityProtectionIndication IntegrityProtectionIndication,
confidentialityProtectionIndication ConfidentialityProtectionIndication,
maximumIPdatarate MaximumIPdatarate OPTIONAL,
+-- This IE shall be present if the Integrity Protection Indication IE within the Security Indication IE is set to “required†or “preferredâ€.--
iE-Extensions ProtocolExtensionContainer { {SecurityIndication-ExtIEs} } OPTIONAL,
...
}
@@ -3321,6 +3646,16 @@ SubscriberProfileIDforRFP ::= INTEGER (1..256, ...)
SurvivalTime ::= INTEGER (0..1920000, ...)
+SpecialTriggeringPurpose ::= ENUMERATED {
+ indirect-data-forwarding,
+ ...
+}
+
+F1UTunnelNotEstablished::= ENUMERATED {
+ true,
+ ...
+}
+
-- T
TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
@@ -3346,8 +3681,8 @@ TNL-AvailableCapacityIndicator-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
}
TSCTrafficCharacteristics ::= SEQUENCE {
- tSCTrafficCharacteristicsUL TSCTrafficInformation OPTIONAL,
- tSCTrafficCharacteristicsDL TSCTrafficInformation OPTIONAL,
+ tSCTrafficCharacteristicsUL TSCAssistanceInformation OPTIONAL,
+ tSCTrafficCharacteristicsDL TSCAssistanceInformation OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { TSCTrafficCharacteristics-ExtIEs } } OPTIONAL
}
@@ -3355,14 +3690,15 @@ TSCTrafficCharacteristics-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
...
}
-TSCTrafficInformation ::= SEQUENCE {
+TSCAssistanceInformation ::= SEQUENCE {
periodicity Periodicity,
burstArrivalTime BurstArrivalTime OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { { TSCTrafficInformation-ExtIEs } } OPTIONAL
+ iE-Extensions ProtocolExtensionContainer { { TSCAssistanceInformation-ExtIEs } } OPTIONAL
}
-TSCTrafficInformation-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
- {ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional},
+TSCAssistanceInformation-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional}|
+ {ID id-N6JitterInformation CRITICALITY ignore EXTENSION N6JitterInformation PRESENCE optional},
...
}
@@ -3533,7 +3869,8 @@ UP-Parameters-Item ::= SEQUENCE {
}
UP-Parameters-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
- {ID id-QoS-Mapping-Information CRITICALITY reject EXTENSION QoS-Mapping-Information PRESENCE optional},
+ {ID id-QoS-Mapping-Information CRITICALITY reject EXTENSION QoS-Mapping-Information PRESENCE optional}|
+ {ID id-IndirectPathIndication CRITICALITY ignore EXTENSION IndirectPathIndication PRESENCE optional},
...
}
@@ -3570,6 +3907,32 @@ UplinkOnlyROHC-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
URIaddress ::= VisibleString
+UserPlaneErrorIndicator ::= ENUMERATED {
+ gTP-U-error-indication-received,
+ ...
+}
+
+UEInactivityInformation ::= INTEGER (1..7200, ...)
+
+UserPlaneFailureIndication ::= SEQUENCE {
+ userPlaneFailureType UserPlaneFailureType,
+ nG-DL-UP-TNL-Information UP-TNL-Information,
+ nG-UL-UP-TNL-Information UP-TNL-Information,
+
+ iE-Extensions ProtocolExtensionContainer { { UserPlaneFailureIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneFailureIndication-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserPlaneFailureType ::= ENUMERATED {
+ gtp-u-error-indication-received,
+ up-path-failure,
+ ...
+}
+
-- V
-- W
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
index 33514e0e..f953aa25 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.5.0 (2023-06)
+-- 3GPP TS 37.483 V18.2.0 (2024-06)
-- **************************************************************
--
-- PDU definitions for E1AP
@@ -21,6 +21,7 @@ BEGIN
IMPORTS
+ AssociatedSessionID,
Cause,
CriticalityDiagnostics,
GNB-CU-CP-MBS-E1AP-ID,
@@ -55,7 +56,6 @@ IMPORTS
DRB-To-Setup-Mod-List-EUTRAN,
DRB-Setup-Mod-List-EUTRAN,
DRB-Failed-Mod-List-EUTRAN,
- ExtendedSliceSupportList,
PDU-Session-Resource-To-Setup-List,
PDU-Session-Resource-Setup-List,
PDU-Session-Resource-Failed-List,
@@ -137,9 +137,19 @@ IMPORTS
MCBearerContextToModifyRequired,
MCBearerContextToModifyConfirm,
MBSMulticastF1UContextDescriptor,
+ MBS-ServiceArea,
GNB-CU-UP-MBS-Support-Info,
SDTContinueROHC,
- MDTPLMNModificationList
+ MDTPLMNModificationList,
+ InactivityInformationRequest,
+ UEInactivityInformation,
+ MBSSessionResourceNotification,
+ MT-SDT-Information,
+ MT-SDT-Information-Request,
+ SDT-data-size-threshold,
+ SDT-data-size-threshold-Crossed
+
+
FROM E1AP-IEs
@@ -155,6 +165,7 @@ FROM E1AP-IEs
FROM E1AP-Containers
+ id-AssociatedSessionID,
id-Cause,
id-CriticalityDiagnostics,
id-gNB-CU-CP-UE-E1AP-ID,
@@ -281,7 +292,14 @@ FROM E1AP-Containers
id-gNB-CU-UP-MBS-Support-Info,
id-SDTContinueROHC,
id-ManagementBasedMDTPLMNModificationList,
-
+ id-MBS-ServiceArea,
+ id-InactivityInformationRequest,
+ id-UEInactivityInformation,
+ id-MBSSessionResourceNotification,
+ id-MT-SDT-Information,
+ id-MT-SDT-Information-Request,
+ id-SDT-data-size-threshold,
+ id-SDT-data-size-threshold-Crossed,
maxnoofErrors,
maxnoofSPLMNs,
maxnoofDRBs,
@@ -766,7 +784,9 @@ BearerContextSetupRequestIEs E1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY ignore TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE optional }|
{ ID id-MDTPollutedMeasurementIndicator CRITICALITY ignore TYPE MDTPollutedMeasurementIndicator PRESENCE optional }|
{ ID id-UESliceMaximumBitRateList CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
- { ID id-SCGActivationStatus CRITICALITY ignore TYPE SCGActivationStatus PRESENCE optional },
+ { ID id-SCGActivationStatus CRITICALITY ignore TYPE SCGActivationStatus PRESENCE optional }|
+ { ID id-MT-SDT-Information-Request CRITICALITY ignore TYPE MT-SDT-Information-Request PRESENCE optional }|
+ { ID id-SDT-data-size-threshold CRITICALITY ignore TYPE SDT-data-size-threshold PRESENCE optional },
...
}
@@ -891,7 +911,10 @@ BearerContextModificationRequestIEs E1AP-PROTOCOL-IES ::= {
{ ID id-UESliceMaximumBitRateList CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
{ ID id-SCGActivationStatus CRITICALITY ignore TYPE SCGActivationStatus PRESENCE optional }|
{ ID id-SDTContinueROHC CRITICALITY reject TYPE SDTContinueROHC PRESENCE optional }|
- { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional},
+ { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional}|
+ { ID id-InactivityInformationRequest CRITICALITY ignore TYPE InactivityInformationRequest PRESENCE optional}|
+ { ID id-MT-SDT-Information-Request CRITICALITY ignore TYPE MT-SDT-Information-Request PRESENCE optional }|
+ { ID id-SDT-data-size-threshold CRITICALITY ignore TYPE SDT-data-size-threshold PRESENCE optional },
...
}
@@ -938,7 +961,8 @@ BearerContextModificationResponseIEs E1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
{ ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
{ ID id-System-BearerContextModificationResponse CRITICALITY ignore TYPE System-BearerContextModificationResponse PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-UEInactivityInformation CRITICALITY ignore TYPE UEInactivityInformation PRESENCE optional},
...
}
@@ -1196,7 +1220,9 @@ DLDataNotificationIEs E1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-CP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-UE-E1AP-ID PRESENCE mandatory }|
{ ID id-gNB-CU-UP-UE-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-UE-E1AP-ID PRESENCE mandatory }|
{ ID id-PPI CRITICALITY ignore TYPE PPI PRESENCE optional }|
- { ID id-PDU-Session-To-Notify-List CRITICALITY ignore TYPE PDU-Session-To-Notify-List PRESENCE optional },
+ { ID id-PDU-Session-To-Notify-List CRITICALITY ignore TYPE PDU-Session-To-Notify-List PRESENCE optional }|
+ { ID id-MT-SDT-Information CRITICALITY ignore TYPE MT-SDT-Information PRESENCE optional }|
+ { ID id-SDT-data-size-threshold-Crossed CRITICALITY ignore TYPE SDT-data-size-threshold-Crossed PRESENCE optional },
...
}
@@ -1204,7 +1230,7 @@ DLDataNotificationIEs E1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- UL Data Notification
+-- UL DATA NOTIFICATION
--
-- **************************************************************
@@ -1401,8 +1427,8 @@ DeactivateTraceIEs E1AP-PROTOCOL-IES ::= {
-- **************************************************************
CellTrafficTrace ::= SEQUENCE {
-protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
-...
+ protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+ ...
}
CellTrafficTraceIEs E1AP-PROTOCOL-IES ::= {
@@ -1411,7 +1437,7 @@ CellTrafficTraceIEs E1AP-PROTOCOL-IES ::= {
{ID id-TraceID CRITICALITY ignore TYPE TraceID PRESENCE mandatory}|
{ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }|
{ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional}|
-{ID id-URIaddress CRITICALITY ignore TYPE URIaddress PRESENCE optional},
+ {ID id-URIaddress CRITICALITY ignore TYPE URIaddress PRESENCE optional},
...
}
@@ -1453,9 +1479,11 @@ ResourceStatusRequestIEs E1AP-PROTOCOL-IES ::= {
-- WS modification: define a specific type
-- { ID id-gNB-CU-UP-Measurement-ID CRITICALITY ignore TYPE INTEGER (1..4095, ...) PRESENCE optional}|
{ ID id-gNB-CU-UP-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE optional}|
+-- This IE shall be present if the Registration Request IE is set to the value “stop†--
{ ID id-RegistrationRequest CRITICALITY reject TYPE RegistrationRequest PRESENCE mandatory}|
- { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE conditional}|
- { ID id-ReportingPeriodicity CRITICALITY reject TYPE ReportingPeriodicity PRESENCE optional},
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE conditional}
+-- This IE shall be present if the Registration Request IE is set to the value "start". --|
+ { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional},
...
}
@@ -1666,7 +1694,9 @@ BCBearerContextSetupRequest ::= SEQUENCE {
BCBearerContextSetupRequestIEs E1AP-PROTOCOL-IES ::= {
{ ID id-GNB-CU-CP-MBS-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-MBS-E1AP-ID PRESENCE mandatory }|
{ ID id-GlobalMBSSessionID CRITICALITY reject TYPE GlobalMBSSessionID PRESENCE mandatory }|
- { ID id-BCBearerContextToSetup CRITICALITY reject TYPE BCBearerContextToSetup PRESENCE mandatory },
+ { ID id-BCBearerContextToSetup CRITICALITY reject TYPE BCBearerContextToSetup PRESENCE mandatory }|
+ { ID id-AssociatedSessionID CRITICALITY ignore TYPE AssociatedSessionID PRESENCE optional }|
+ { ID id-MBS-ServiceArea CRITICALITY ignore TYPE MBS-ServiceArea PRESENCE optional },
...
}
@@ -2025,7 +2055,7 @@ MCBearerContextModificationRequired ::= SEQUENCE {
MCBearerContextModificationRequiredIEs E1AP-PROTOCOL-IES ::= {
{ ID id-GNB-CU-CP-MBS-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-MBS-E1AP-ID PRESENCE mandatory }|
{ ID id-GNB-CU-UP-MBS-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-MBS-E1AP-ID PRESENCE mandatory }|
- { ID id-MCBearerContextToModifyRequired CRITICALITY ignore TYPE MCBearerContextToModifyRequired PRESENCE mandatory },
+ { ID id-MCBearerContextToModifyRequired CRITICALITY reject TYPE MCBearerContextToModifyRequired PRESENCE mandatory },
...
}
@@ -2114,5 +2144,23 @@ MCBearerContextReleaseRequestIEs E1AP-PROTOCOL-IES ::= {
...
}
+-- **************************************************************
+--
+-- MC BEARER NOTIFICATION
+--
+-- **************************************************************
+
+MCBearerNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MCBearerNotificationIEs } },
+ ...
+}
+
+MCBearerNotificationIEs E1AP-PROTOCOL-IES ::= {
+ { ID id-GNB-CU-CP-MBS-E1AP-ID CRITICALITY reject TYPE GNB-CU-CP-MBS-E1AP-ID PRESENCE mandatory }|
+ { ID id-GNB-CU-UP-MBS-E1AP-ID CRITICALITY reject TYPE GNB-CU-UP-MBS-E1AP-ID PRESENCE mandatory }|
+ { ID id-MBSSessionResourceNotification CRITICALITY ignore TYPE MBSSessionResourceNotification PRESENCE mandatory },
+ ...
+}
+
END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
index ce104d1e..37e7e53b 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.5.0 (2023-06)
+-- 3GPP TS 37.483 V18.2.0 (2024-06)
-- **************************************************************
--
-- Elementary Procedure definitions
@@ -77,6 +77,7 @@ FROM E1AP-CommonDataTypes
MCBearerContextModificationFailure,
MCBearerContextModificationRequired,
MCBearerContextModificationConfirm,
+ MCBearerNotification,
MCBearerContextReleaseCommand,
MCBearerContextReleaseComplete,
MCBearerContextReleaseRequest,
@@ -134,6 +135,7 @@ FROM E1AP-PDU-Contents
id-MCBearerContextSetup,
id-MCBearerContextModification,
id-MCBearerContextModificationRequired,
+ id-MCBearerNotification,
id-MCBearerContextRelease,
id-MCBearerContextReleaseRequest
@@ -248,7 +250,8 @@ E1AP-ELEMENTARY-PROCEDURES-CLASS-2 E1AP-ELEMENTARY-PROCEDURE ::= {
gNB-CU-CPMeasurementResultsInformation |
iABPSKNotification |
bCBearerContextReleaseRequest |
- mCBearerContextReleaseRequest ,
+ mCBearerContextReleaseRequest |
+ mCBearerNotification ,
...
}
@@ -511,6 +514,12 @@ mCBearerContextModificationRequired E1AP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY reject
}
+mCBearerNotification E1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MCBearerNotification
+ PROCEDURE CODE id-MCBearerNotification
+ CRITICALITY reject
+}
+
mCBearerContextRelease E1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MCBearerContextReleaseCommand
SUCCESSFUL OUTCOME MCBearerContextReleaseComplete
diff --git a/epan/dissectors/asn1/e1ap/e1ap.cnf b/epan/dissectors/asn1/e1ap/e1ap.cnf
index 3517db2c..3d8b2bd2 100644
--- a/epan/dissectors/asn1/e1ap/e1ap.cnf
+++ b/epan/dissectors/asn1/e1ap/e1ap.cnf
@@ -158,195 +158,230 @@ id-MCBearerContextModification ProcedureCode
id-MCBearerContextModificationRequired ProcedureCode
id-MCBearerContextRelease ProcedureCode
id-MCBearerContextReleaseRequest ProcedureCode
+id-MCBearerNotification ProcedureCode
# ProtocolIE-ID
-id-Cause ProtocolIE-ID
-id-CriticalityDiagnostics ProtocolIE-ID
-id-gNB-CU-CP-UE-E1AP-ID ProtocolIE-ID
-id-gNB-CU-UP-UE-E1AP-ID ProtocolIE-ID
-id-ResetType ProtocolIE-ID
-id-UE-associatedLogicalE1-ConnectionItem ProtocolIE-ID
-id-UE-associatedLogicalE1-ConnectionListResAck ProtocolIE-ID
-id-gNB-CU-UP-ID ProtocolIE-ID
-id-gNB-CU-UP-Name ProtocolIE-ID
-id-gNB-CU-CP-Name ProtocolIE-ID
-id-CNSupport ProtocolIE-ID
-id-SupportedPLMNs ProtocolIE-ID
-id-TimeToWait ProtocolIE-ID
-id-SecurityInformation ProtocolIE-ID
-id-UEDLAggregateMaximumBitRate ProtocolIE-ID
-id-System-BearerContextSetupRequest ProtocolIE-ID
-id-System-BearerContextSetupResponse ProtocolIE-ID
-id-BearerContextStatusChange ProtocolIE-ID
-id-System-BearerContextModificationRequest ProtocolIE-ID
-id-System-BearerContextModificationResponse ProtocolIE-ID
-id-System-BearerContextModificationConfirm ProtocolIE-ID
-id-System-BearerContextModificationRequired ProtocolIE-ID
-id-DRB-Status-List ProtocolIE-ID
-id-ActivityNotificationLevel ProtocolIE-ID
-id-ActivityInformation ProtocolIE-ID
-id-Data-Usage-Report-List ProtocolIE-ID
-id-New-UL-TNL-Information-Required ProtocolIE-ID
-id-GNB-CU-CP-TNLA-To-Add-List ProtocolIE-ID
-id-GNB-CU-CP-TNLA-To-Remove-List ProtocolIE-ID
-id-GNB-CU-CP-TNLA-To-Update-List ProtocolIE-ID
-id-GNB-CU-CP-TNLA-Setup-List ProtocolIE-ID
-id-GNB-CU-CP-TNLA-Failed-To-Setup-List ProtocolIE-ID
-id-DRB-To-Setup-List-EUTRAN ProtocolIE-ID
-id-DRB-To-Modify-List-EUTRAN ProtocolIE-ID
-id-DRB-To-Remove-List-EUTRAN ProtocolIE-ID
-id-DRB-Required-To-Modify-List-EUTRAN ProtocolIE-ID
-id-DRB-Required-To-Remove-List-EUTRAN ProtocolIE-ID
-id-DRB-Setup-List-EUTRAN ProtocolIE-ID
-id-DRB-Failed-List-EUTRAN ProtocolIE-ID
-id-DRB-Modified-List-EUTRAN ProtocolIE-ID
-id-DRB-Failed-To-Modify-List-EUTRAN ProtocolIE-ID
-id-DRB-Confirm-Modified-List-EUTRAN ProtocolIE-ID
-id-PDU-Session-Resource-To-Setup-List ProtocolIE-ID
-id-PDU-Session-Resource-To-Modify-List ProtocolIE-ID
-id-PDU-Session-Resource-To-Remove-List ProtocolIE-ID
-id-PDU-Session-Resource-Required-To-Modify-List ProtocolIE-ID
-id-PDU-Session-Resource-Setup-List ProtocolIE-ID
-id-PDU-Session-Resource-Failed-List ProtocolIE-ID
-id-PDU-Session-Resource-Modified-List ProtocolIE-ID
-id-PDU-Session-Resource-Failed-To-Modify-List ProtocolIE-ID
-id-PDU-Session-Resource-Confirm-Modified-List ProtocolIE-ID
-id-DRB-To-Setup-Mod-List-EUTRAN ProtocolIE-ID
-id-DRB-Setup-Mod-List-EUTRAN ProtocolIE-ID
-id-DRB-Failed-Mod-List-EUTRAN ProtocolIE-ID
-id-PDU-Session-Resource-Setup-Mod-List ProtocolIE-ID
-id-PDU-Session-Resource-Failed-Mod-List ProtocolIE-ID
-id-PDU-Session-Resource-To-Setup-Mod-List ProtocolIE-ID
-id-TransactionID ProtocolIE-ID
-id-Serving-PLMN ProtocolIE-ID
-id-UE-Inactivity-Timer ProtocolIE-ID
-id-System-GNB-CU-UP-CounterCheckRequest ProtocolIE-ID
-id-DRBs-Subject-To-Counter-Check-List-EUTRAN ProtocolIE-ID
-id-DRBs-Subject-To-Counter-Check-List-NG-RAN ProtocolIE-ID
-id-PPI ProtocolIE-ID
-id-gNB-CU-UP-Capacity ProtocolIE-ID
-id-GNB-CU-UP-OverloadInformation ProtocolIE-ID
-id-UEDLMaximumIntegrityProtectedDataRate ProtocolIE-ID
-id-PDU-Session-To-Notify-List ProtocolIE-ID
-id-PDU-Session-Resource-Data-Usage-List ProtocolIE-ID
-id-SNSSAI ProtocolIE-ID
-id-DataDiscardRequired ProtocolIE-ID
-id-OldQoSFlowMap-ULendmarkerexpected ProtocolIE-ID
-id-DRB-QoS ProtocolIE-ID
-id-GNB-CU-UP-TNLA-To-Remove-List ProtocolIE-ID
-id-endpoint-IP-Address-and-Port ProtocolIE-ID
-id-TNLAssociationTransportLayerAddressgNBCUUP ProtocolIE-ID
-id-RANUEID ProtocolIE-ID
-id-GNB-DU-ID ProtocolIE-ID
-id-CommonNetworkInstance ProtocolIE-ID
-id-NetworkInstance ProtocolIE-ID
-id-QoSFlowMappingIndication ProtocolIE-ID
-id-TraceActivation ProtocolIE-ID
-id-TraceID ProtocolIE-ID
-id-SubscriberProfileIDforRFP ProtocolIE-ID
-id-AdditionalRRMPriorityIndex ProtocolIE-ID
-id-RetainabilityMeasurementsInfo ProtocolIE-ID
-id-Transport-Layer-Address-Info ProtocolIE-ID
-id-QoSMonitoringRequest ProtocolIE-ID
-id-PDCP-StatusReportIndication ProtocolIE-ID
-id-gNB-CU-CP-Measurement-ID ProtocolIE-ID
-id-gNB-CU-UP-Measurement-ID ProtocolIE-ID
-id-RegistrationRequest ProtocolIE-ID
-id-ReportCharacteristics ProtocolIE-ID
-id-ReportingPeriodicity ProtocolIE-ID
-id-TNL-AvailableCapacityIndicator ProtocolIE-ID
-id-HW-CapacityIndicator ProtocolIE-ID
-id-RedundantCommonNetworkInstance ProtocolIE-ID
-id-redundant-nG-UL-UP-TNL-Information ProtocolIE-ID
-id-redundant-nG-DL-UP-TNL-Information ProtocolIE-ID
-id-RedundantQosFlowIndicator ProtocolIE-ID
-id-TSCTrafficCharacteristics ProtocolIE-ID
-id-CNPacketDelayBudgetDownlink ProtocolIE-ID
-id-CNPacketDelayBudgetUplink ProtocolIE-ID
-id-ExtendedPacketDelayBudget ProtocolIE-ID
-id-AdditionalPDCPduplicationInformation ProtocolIE-ID
-id-RedundantPDUSessionInformation ProtocolIE-ID
-id-RedundantPDUSessionInformation-used ProtocolIE-ID
-id-QoS-Mapping-Information ProtocolIE-ID
-id-DLUPTNLAddressToUpdateList ProtocolIE-ID
-id-ULUPTNLAddressToUpdateList ProtocolIE-ID
-id-NPNSupportInfo ProtocolIE-ID
-id-NPNContextInfo ProtocolIE-ID
-id-MDTConfiguration ProtocolIE-ID
-id-ManagementBasedMDTPLMNList ProtocolIE-ID
-id-TraceCollectionEntityIPAddress ProtocolIE-ID
-id-PrivacyIndicator ProtocolIE-ID
-id-TraceCollectionEntityURI ProtocolIE-ID
-id-URIaddress ProtocolIE-ID
-id-EHC-Parameters ProtocolIE-ID
-id-DRBs-Subject-To-Early-Forwarding-List ProtocolIE-ID
-id-DAPSRequestInfo ProtocolIE-ID
-id-CHOInitiation ProtocolIE-ID
-id-EarlyForwardingCOUNTReq ProtocolIE-ID
-id-EarlyForwardingCOUNTInfo ProtocolIE-ID
-id-AlternativeQoSParaSetList ProtocolIE-ID
-id-ExtendedSliceSupportList ProtocolIE-ID
-id-MCG-OfferedGBRQoSFlowInfo ProtocolIE-ID
-id-Number-of-tunnels ProtocolIE-ID
-id-DRB-Measurement-Results-Information-List ProtocolIE-ID
-id-Extended-GNB-CU-CP-Name ProtocolIE-ID
-id-Extended-GNB-CU-UP-Name ProtocolIE-ID
-id-DataForwardingtoE-UTRANInformationList ProtocolIE-ID
-id-QosMonitoringReportingFrequency ProtocolIE-ID
-id-QoSMonitoringDisabled ProtocolIE-ID
-id-AdditionalHandoverInfo ProtocolIE-ID
-id-Extended-NR-CGI-Support-List ProtocolIE-ID
-id-DataForwardingtoNG-RANQoSFlowInformationList ProtocolIE-ID
-id-MaxCIDEHCDL ProtocolIE-ID
-id-ignoreMappingRuleIndication ProtocolIE-ID
-id-DirectForwardingPathAvailability ProtocolIE-ID
-id-EarlyDataForwardingIndicator ProtocolIE-ID
-id-QoSFlowsDRBRemapping ProtocolIE-ID
-id-DataForwardingSourceIPAddress ProtocolIE-ID
-id-SecurityIndicationModify ProtocolIE-ID
-id-IAB-Donor-CU-UPPSKInfo ProtocolIE-ID
-id-ECGI-Support-List ProtocolIE-ID
-id-MDTPollutedMeasurementIndicator ProtocolIE-ID
-id-M4ReportAmount ProtocolIE-ID
-id-M6ReportAmount ProtocolIE-ID
-id-M7ReportAmount ProtocolIE-ID
-id-UESliceMaximumBitRateList ProtocolIE-ID
-id-PDUSession-PairID ProtocolIE-ID
-id-SurvivalTime ProtocolIE-ID
-id-UDC-Parameters ProtocolIE-ID
-id-SCGActivationStatus ProtocolIE-ID
-id-GNB-CU-CP-MBS-E1AP-ID ProtocolIE-ID
-id-GNB-CU-UP-MBS-E1AP-ID ProtocolIE-ID
-id-GlobalMBSSessionID ProtocolIE-ID
-id-BCBearerContextToSetup ProtocolIE-ID
-id-BCBearerContextToSetupResponse ProtocolIE-ID
-id-BCBearerContextToModify ProtocolIE-ID
-id-BCBearerContextToModifyResponse ProtocolIE-ID
-id-BCBearerContextToModifyRequired ProtocolIE-ID
-id-BCBearerContextToModifyConfirm ProtocolIE-ID
-id-MCBearerContextToSetup ProtocolIE-ID
-id-MCBearerContextToSetupResponse ProtocolIE-ID
-id-MCBearerContextToModify ProtocolIE-ID
-id-MCBearerContextToModifyResponse ProtocolIE-ID
-id-MCBearerContextToModifyRequired ProtocolIE-ID
-id-MCBearerContextToModifyConfirm ProtocolIE-ID
-id-MBSMulticastF1UContextDescriptor ProtocolIE-ID
-id-gNB-CU-UP-MBS-Support-Info ProtocolIE-ID
-id-SecurityIndication ProtocolIE-ID
-id-SecurityResult ProtocolIE-ID
-id-SDTContinueROHC ProtocolIE-ID
-id-SDTindicatorSetup ProtocolIE-ID
-id-SDTindicatorMod ProtocolIE-ID
-id-DiscardTimerExtended ProtocolIE-ID
-id-ManagementBasedMDTPLMNModificationList ProtocolIE-ID
-id-MCForwardingResourceRequest ProtocolIE-ID
-id-MCForwardingResourceIndication ProtocolIE-ID
-id-MCForwardingResourceResponse ProtocolIE-ID
-id-MCForwardingResourceRelease ProtocolIE-ID
-id-MCForwardingResourceReleaseIndication ProtocolIE-ID
-id-PDCP-COUNT-Reset ProtocolIE-ID
-id-MBSSessionAssociatedInfoNonSupportToSupport ProtocolIE-ID
-id-VersionID ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-gNB-CU-CP-UE-E1AP-ID ProtocolIE-ID
+id-gNB-CU-UP-UE-E1AP-ID ProtocolIE-ID
+id-ResetType ProtocolIE-ID
+id-UE-associatedLogicalE1-ConnectionItem ProtocolIE-ID
+id-UE-associatedLogicalE1-ConnectionListResAck ProtocolIE-ID
+id-gNB-CU-UP-ID ProtocolIE-ID
+id-gNB-CU-UP-Name ProtocolIE-ID
+id-gNB-CU-CP-Name ProtocolIE-ID
+id-CNSupport ProtocolIE-ID
+id-SupportedPLMNs ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-SecurityInformation ProtocolIE-ID
+id-UEDLAggregateMaximumBitRate ProtocolIE-ID
+id-System-BearerContextSetupRequest ProtocolIE-ID
+id-System-BearerContextSetupResponse ProtocolIE-ID
+id-BearerContextStatusChange ProtocolIE-ID
+id-System-BearerContextModificationRequest ProtocolIE-ID
+id-System-BearerContextModificationResponse ProtocolIE-ID
+id-System-BearerContextModificationConfirm ProtocolIE-ID
+id-System-BearerContextModificationRequired ProtocolIE-ID
+id-DRB-Status-List ProtocolIE-ID
+id-ActivityNotificationLevel ProtocolIE-ID
+id-ActivityInformation ProtocolIE-ID
+id-Data-Usage-Report-List ProtocolIE-ID
+id-New-UL-TNL-Information-Required ProtocolIE-ID
+id-GNB-CU-CP-TNLA-To-Add-List ProtocolIE-ID
+id-GNB-CU-CP-TNLA-To-Remove-List ProtocolIE-ID
+id-GNB-CU-CP-TNLA-To-Update-List ProtocolIE-ID
+id-GNB-CU-CP-TNLA-Setup-List ProtocolIE-ID
+id-GNB-CU-CP-TNLA-Failed-To-Setup-List ProtocolIE-ID
+id-DRB-To-Setup-List-EUTRAN ProtocolIE-ID
+id-DRB-To-Modify-List-EUTRAN ProtocolIE-ID
+id-DRB-To-Remove-List-EUTRAN ProtocolIE-ID
+id-DRB-Required-To-Modify-List-EUTRAN ProtocolIE-ID
+id-DRB-Required-To-Remove-List-EUTRAN ProtocolIE-ID
+id-DRB-Setup-List-EUTRAN ProtocolIE-ID
+id-DRB-Failed-List-EUTRAN ProtocolIE-ID
+id-DRB-Modified-List-EUTRAN ProtocolIE-ID
+id-DRB-Failed-To-Modify-List-EUTRAN ProtocolIE-ID
+id-DRB-Confirm-Modified-List-EUTRAN ProtocolIE-ID
+id-PDU-Session-Resource-To-Setup-List ProtocolIE-ID
+id-PDU-Session-Resource-To-Modify-List ProtocolIE-ID
+id-PDU-Session-Resource-To-Remove-List ProtocolIE-ID
+id-PDU-Session-Resource-Required-To-Modify-List ProtocolIE-ID
+id-PDU-Session-Resource-Setup-List ProtocolIE-ID
+id-PDU-Session-Resource-Failed-List ProtocolIE-ID
+id-PDU-Session-Resource-Modified-List ProtocolIE-ID
+id-PDU-Session-Resource-Failed-To-Modify-List ProtocolIE-ID
+id-PDU-Session-Resource-Confirm-Modified-List ProtocolIE-ID
+id-DRB-To-Setup-Mod-List-EUTRAN ProtocolIE-ID
+id-DRB-Setup-Mod-List-EUTRAN ProtocolIE-ID
+id-DRB-Failed-Mod-List-EUTRAN ProtocolIE-ID
+id-PDU-Session-Resource-Setup-Mod-List ProtocolIE-ID
+id-PDU-Session-Resource-Failed-Mod-List ProtocolIE-ID
+id-PDU-Session-Resource-To-Setup-Mod-List ProtocolIE-ID
+id-TransactionID ProtocolIE-ID
+id-Serving-PLMN ProtocolIE-ID
+id-UE-Inactivity-Timer ProtocolIE-ID
+id-System-GNB-CU-UP-CounterCheckRequest ProtocolIE-ID
+id-DRBs-Subject-To-Counter-Check-List-EUTRAN ProtocolIE-ID
+id-DRBs-Subject-To-Counter-Check-List-NG-RAN ProtocolIE-ID
+id-PPI ProtocolIE-ID
+id-gNB-CU-UP-Capacity ProtocolIE-ID
+id-GNB-CU-UP-OverloadInformation ProtocolIE-ID
+id-UEDLMaximumIntegrityProtectedDataRate ProtocolIE-ID
+id-PDU-Session-To-Notify-List ProtocolIE-ID
+id-PDU-Session-Resource-Data-Usage-List ProtocolIE-ID
+id-SNSSAI ProtocolIE-ID
+id-DataDiscardRequired ProtocolIE-ID
+id-OldQoSFlowMap-ULendmarkerexpected ProtocolIE-ID
+id-DRB-QoS ProtocolIE-ID
+id-GNB-CU-UP-TNLA-To-Remove-List ProtocolIE-ID
+id-endpoint-IP-Address-and-Port ProtocolIE-ID
+id-TNLAssociationTransportLayerAddressgNBCUUP ProtocolIE-ID
+id-RANUEID ProtocolIE-ID
+id-GNB-DU-ID ProtocolIE-ID
+id-CommonNetworkInstance ProtocolIE-ID
+id-NetworkInstance ProtocolIE-ID
+id-QoSFlowMappingIndication ProtocolIE-ID
+id-TraceActivation ProtocolIE-ID
+id-TraceID ProtocolIE-ID
+id-SubscriberProfileIDforRFP ProtocolIE-ID
+id-AdditionalRRMPriorityIndex ProtocolIE-ID
+id-RetainabilityMeasurementsInfo ProtocolIE-ID
+id-Transport-Layer-Address-Info ProtocolIE-ID
+id-QoSMonitoringRequest ProtocolIE-ID
+id-PDCP-StatusReportIndication ProtocolIE-ID
+id-gNB-CU-CP-Measurement-ID ProtocolIE-ID
+id-gNB-CU-UP-Measurement-ID ProtocolIE-ID
+id-RegistrationRequest ProtocolIE-ID
+id-ReportCharacteristics ProtocolIE-ID
+id-ReportingPeriodicity ProtocolIE-ID
+id-TNL-AvailableCapacityIndicator ProtocolIE-ID
+id-HW-CapacityIndicator ProtocolIE-ID
+id-RedundantCommonNetworkInstance ProtocolIE-ID
+id-redundant-nG-UL-UP-TNL-Information ProtocolIE-ID
+id-redundant-nG-DL-UP-TNL-Information ProtocolIE-ID
+id-RedundantQosFlowIndicator ProtocolIE-ID
+id-TSCTrafficCharacteristics ProtocolIE-ID
+id-CNPacketDelayBudgetDownlink ProtocolIE-ID
+id-CNPacketDelayBudgetUplink ProtocolIE-ID
+id-ExtendedPacketDelayBudget ProtocolIE-ID
+id-AdditionalPDCPduplicationInformation ProtocolIE-ID
+id-RedundantPDUSessionInformation ProtocolIE-ID
+id-RedundantPDUSessionInformation-used ProtocolIE-ID
+id-QoS-Mapping-Information ProtocolIE-ID
+id-DLUPTNLAddressToUpdateList ProtocolIE-ID
+id-ULUPTNLAddressToUpdateList ProtocolIE-ID
+id-NPNSupportInfo ProtocolIE-ID
+id-NPNContextInfo ProtocolIE-ID
+id-MDTConfiguration ProtocolIE-ID
+id-ManagementBasedMDTPLMNList ProtocolIE-ID
+id-TraceCollectionEntityIPAddress ProtocolIE-ID
+id-PrivacyIndicator ProtocolIE-ID
+id-TraceCollectionEntityURI ProtocolIE-ID
+id-URIaddress ProtocolIE-ID
+id-EHC-Parameters ProtocolIE-ID
+id-DRBs-Subject-To-Early-Forwarding-List ProtocolIE-ID
+id-DAPSRequestInfo ProtocolIE-ID
+id-CHOInitiation ProtocolIE-ID
+id-EarlyForwardingCOUNTReq ProtocolIE-ID
+id-EarlyForwardingCOUNTInfo ProtocolIE-ID
+id-AlternativeQoSParaSetList ProtocolIE-ID
+id-ExtendedSliceSupportList ProtocolIE-ID
+id-MCG-OfferedGBRQoSFlowInfo ProtocolIE-ID
+id-Number-of-tunnels ProtocolIE-ID
+id-DRB-Measurement-Results-Information-List ProtocolIE-ID
+id-Extended-GNB-CU-CP-Name ProtocolIE-ID
+id-Extended-GNB-CU-UP-Name ProtocolIE-ID
+id-DataForwardingtoE-UTRANInformationList ProtocolIE-ID
+id-QosMonitoringReportingFrequency ProtocolIE-ID
+id-QoSMonitoringDisabled ProtocolIE-ID
+id-AdditionalHandoverInfo ProtocolIE-ID
+id-Extended-NR-CGI-Support-List ProtocolIE-ID
+id-DataForwardingtoNG-RANQoSFlowInformationList ProtocolIE-ID
+id-MaxCIDEHCDL ProtocolIE-ID
+id-ignoreMappingRuleIndication ProtocolIE-ID
+id-DirectForwardingPathAvailability ProtocolIE-ID
+id-EarlyDataForwardingIndicator ProtocolIE-ID
+id-QoSFlowsDRBRemapping ProtocolIE-ID
+id-DataForwardingSourceIPAddress ProtocolIE-ID
+id-SecurityIndicationModify ProtocolIE-ID
+id-IAB-Donor-CU-UPPSKInfo ProtocolIE-ID
+id-ECGI-Support-List ProtocolIE-ID
+id-MDTPollutedMeasurementIndicator ProtocolIE-ID
+id-M4ReportAmount ProtocolIE-ID
+id-M6ReportAmount ProtocolIE-ID
+id-M7ReportAmount ProtocolIE-ID
+id-UESliceMaximumBitRateList ProtocolIE-ID
+id-PDUSession-PairID ProtocolIE-ID
+id-SurvivalTime ProtocolIE-ID
+id-UDC-Parameters ProtocolIE-ID
+id-SCGActivationStatus ProtocolIE-ID
+id-GNB-CU-CP-MBS-E1AP-ID ProtocolIE-ID
+id-GNB-CU-UP-MBS-E1AP-ID ProtocolIE-ID
+id-GlobalMBSSessionID ProtocolIE-ID
+id-BCBearerContextToSetup ProtocolIE-ID
+id-BCBearerContextToSetupResponse ProtocolIE-ID
+id-BCBearerContextToModify ProtocolIE-ID
+id-BCBearerContextToModifyResponse ProtocolIE-ID
+id-BCBearerContextToModifyRequired ProtocolIE-ID
+id-BCBearerContextToModifyConfirm ProtocolIE-ID
+id-MCBearerContextToSetup ProtocolIE-ID
+id-MCBearerContextToSetupResponse ProtocolIE-ID
+id-MCBearerContextToModify ProtocolIE-ID
+id-MCBearerContextToModifyResponse ProtocolIE-ID
+id-MCBearerContextToModifyRequired ProtocolIE-ID
+id-MCBearerContextToModifyConfirm ProtocolIE-ID
+id-MBSMulticastF1UContextDescriptor ProtocolIE-ID
+id-gNB-CU-UP-MBS-Support-Info ProtocolIE-ID
+id-SecurityIndication ProtocolIE-ID
+id-SecurityResult ProtocolIE-ID
+id-SDTContinueROHC ProtocolIE-ID
+id-SDTindicatorSetup ProtocolIE-ID
+id-SDTindicatorMod ProtocolIE-ID
+id-DiscardTimerExtended ProtocolIE-ID
+id-ManagementBasedMDTPLMNModificationList ProtocolIE-ID
+id-MCForwardingResourceRequest ProtocolIE-ID
+id-MCForwardingResourceIndication ProtocolIE-ID
+id-MCForwardingResourceResponse ProtocolIE-ID
+id-MCForwardingResourceRelease ProtocolIE-ID
+id-MCForwardingResourceReleaseIndication ProtocolIE-ID
+id-PDCP-COUNT-Reset ProtocolIE-ID
+id-MBSSessionAssociatedInfoNonSupportToSupport ProtocolIE-ID
+id-VersionID ProtocolIE-ID
+id-InactivityInformationRequest ProtocolIE-ID
+id-UEInactivityInformation ProtocolIE-ID
+id-MBSAreaSessionID ProtocolIE-ID
+id-Secondary-PDU-Session-Data-Forwarding-Information ProtocolIE-ID
+id-MBSSessionResourceNotification ProtocolIE-ID
+id-MCBearerContextInactivityTimer ProtocolIE-ID
+id-MCBearerContextStatusChange ProtocolIE-ID
+id-MT-SDT-Information ProtocolIE-ID
+id-MT-SDT-Information-Request ProtocolIE-ID
+id-SDT-data-size-threshold ProtocolIE-ID
+id-SDT-data-size-threshold-Crossed ProtocolIE-ID
+id-SpecialTriggeringPurpose ProtocolIE-ID
+id-AssociatedSessionID ProtocolIE-ID
+id-MBS-ServiceArea ProtocolIE-ID
+id-PDUSetQoSParameters ProtocolIE-ID
+id-N6JitterInformation ProtocolIE-ID
+id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID
+id-ECNMarkingorCongestionInformationReportingStatus ProtocolIE-ID
+id-PDUSetbasedHandlingIndicator ProtocolIE-ID
+id-IndirectPathIndication ProtocolIE-ID
+id-F1UTunnelNotEstablished ProtocolIE-ID
+id-F1U-TNL-InfoToAdd-List ProtocolIE-ID
+id-F1U-TNL-InfoAdded-List ProtocolIE-ID
+id-F1U-TNL-InfoToAddOrModify-List ProtocolIE-ID
+id-F1U-TNL-InfoAddedOrModified-List ProtocolIE-ID
+id-F1U-TNL-InfoToRelease-List ProtocolIE-ID
+id-BroadcastF1U-ContextReferenceE1 ProtocolIE-ID
+id-PSIbasedDiscardTimer ProtocolIE-ID
+id-UserPlaneErrorIndicator ProtocolIE-ID
+id-MaximumDataBurstVolume ProtocolIE-ID
+id-BCBearerContextNGU-TNLInfoatNGRAN-Request ProtocolIE-ID
+id-PDCPSNGapReport ProtocolIE-ID
+id-UserPlaneFailureIndication ProtocolIE-ID
+
#.END
@@ -477,71 +512,103 @@ MBSMulticastF1UContextDescriptor N e1ap.ies id-MBSMulticastF1UContex
GNB-CU-UP-MBS-Support-Info N e1ap.ies id-gNB-CU-UP-MBS-Support-Info
SDTContinueROHC N e1ap.ies id-SDTContinueROHC
MDTPLMNModificationList N e1ap.ies id-ManagementBasedMDTPLMNModificationList
+InactivityInformationRequest N e1ap.ies id-InactivityInformationRequest
+UEInactivityInformation N e1ap.ies id-UEInactivityInformation
+MBSSessionResourceNotification N e1ap.ies id-MBSSessionResourceNotification
+MT-SDT-Information N e1ap.ies id-MT-SDT-Information
+MT-SDT-Information-Request N e1ap.ies id-MT-SDT-Information-Request
+SDT-data-size-threshold N e1ap.ies id-SDT-data-size-threshold
+SDT-data-size-threshold-Crossed N e1ap.ies id-SDT-data-size-threshold-Crossed
+AssociatedSessionID N e1ap.ies id-AssociatedSessionID
+MBS-ServiceArea N e1ap.ies id-MBS-ServiceArea
#E1AP-PROTOCOL-EXTENSION
-SNSSAI N e1ap.extension id-SNSSAI
-QoS-Flow-List N e1ap.extension id-OldQoSFlowMap-ULendmarkerexpected
-QoSFlowLevelQoSParameters N e1ap.extension id-DRB-QoS
-CP-TNL-Information N e1ap.extension id-TNLAssociationTransportLayerAddressgNBCUUP
-CommonNetworkInstance N e1ap.extension id-CommonNetworkInstance
-NetworkInstance N e1ap.extension id-NetworkInstance
-QoS-Flow-Mapping-Indication N e1ap.extension id-QoSFlowMappingIndication
-QosMonitoringRequest N e1ap.extension id-QoSMonitoringRequest
-PDCP-StatusReportIndication N e1ap.extension id-PDCP-StatusReportIndication
-CommonNetworkInstance N e1ap.extension id-RedundantCommonNetworkInstance
-UP-TNL-Information N e1ap.extension id-redundant-nG-UL-UP-TNL-Information
-UP-TNL-Information N e1ap.extension id-redundant-nG-DL-UP-TNL-Information
-RedundantQoSFlowIndicator N e1ap.extension id-RedundantQosFlowIndicator
-TSCTrafficCharacteristics N e1ap.extension id-TSCTrafficCharacteristics
-ExtendedPacketDelayBudget N e1ap.extension id-CNPacketDelayBudgetDownlink
-ExtendedPacketDelayBudget N e1ap.extension id-CNPacketDelayBudgetUplink
-ExtendedPacketDelayBudget N e1ap.extension id-ExtendedPacketDelayBudget
-AdditionalPDCPduplicationInformation N e1ap.extension id-AdditionalPDCPduplicationInformation
-RedundantPDUSessionInformation N e1ap.extension id-RedundantPDUSessionInformation
-RedundantPDUSessionInformation N e1ap.extension id-RedundantPDUSessionInformation-used
-QoS-Mapping-Information N e1ap.extension id-QoS-Mapping-Information
-NPNSupportInfo N e1ap.extension id-NPNSupportInfo
-MDT-Configuration N e1ap.extension id-MDTConfiguration
-URIaddress N e1ap.extension id-TraceCollectionEntityURI
-EHC-Parameters N e1ap.extension id-EHC-Parameters
-DAPSRequestInfo N e1ap.extension id-DAPSRequestInfo
-EarlyForwardingCOUNTReq N e1ap.extension id-EarlyForwardingCOUNTReq
-EarlyForwardingCOUNTInfo N e1ap.extension id-EarlyForwardingCOUNTInfo
-AlternativeQoSParaSetList N e1ap.extension id-AlternativeQoSParaSetList
-ExtendedSliceSupportList N e1ap.extension id-ExtendedSliceSupportList
-GBR-QoSFlowInformation N e1ap.extension id-MCG-OfferedGBRQoSFlowInfo
-Number-of-tunnels N e1ap.extension id-Number-of-tunnels
-DataForwardingtoE-UTRANInformationList N e1ap.extension id-DataForwardingtoE-UTRANInformationList
-QosMonitoringReportingFrequency N e1ap.extension id-QosMonitoringReportingFrequency
-QosMonitoringDisabled N e1ap.extension id-QoSMonitoringDisabled
-Extended-NR-CGI-Support-List N e1ap.extension id-Extended-NR-CGI-Support-List
-DataForwardingtoNG-RANQoSFlowInformationList N e1ap.extension id-DataForwardingtoNG-RANQoSFlowInformationList
-MaxCIDEHCDL N e1ap.extension id-MaxCIDEHCDL
-IgnoreMappingRuleIndication N e1ap.extension id-ignoreMappingRuleIndication
-EarlyDataForwardingIndicator N e1ap.extension id-EarlyDataForwardingIndicator
-QoS-Flows-DRB-Remapping N e1ap.extension id-QoSFlowsDRBRemapping
-TransportLayerAddress N e1ap.extension id-DataForwardingSourceIPAddress
-SecurityIndication N e1ap.extension id-SecurityIndicationModify
-ECGI-Support-List N e1ap.extension id-ECGI-Support-List
-M4ReportAmount N e1ap.extension id-M4ReportAmount
-M6ReportAmount N e1ap.extension id-M6ReportAmount
-M7ReportAmount N e1ap.extension id-M7ReportAmount
-PDUSession-PairID N e1ap.extension id-PDUSession-PairID
-SurvivalTime N e1ap.extension id-SurvivalTime
-UDC-Parameters N e1ap.extension id-UDC-Parameters
-SecurityIndication N e1ap.extension id-SecurityIndication
-SecurityResult N e1ap.extension id-SecurityResult
-SDTindicatorSetup N e1ap.extension id-SDTindicatorSetup
-SDTindicatorMod N e1ap.extension id-SDTindicatorMod
-DiscardTimerExtended N e1ap.extension id-DiscardTimerExtended
-MCForwardingResourceRequest N e1ap.extension id-MCForwardingResourceRequest
-MCForwardingResourceIndication N e1ap.extension id-MCForwardingResourceIndication
-MCForwardingResourceResponse N e1ap.extension id-MCForwardingResourceResponse
-MCForwardingResourceRelease N e1ap.extension id-MCForwardingResourceRelease
-MCForwardingResourceReleaseIndication N e1ap.extension id-MCForwardingResourceReleaseIndication
-PDCP-COUNT-Reset N e1ap.extension id-PDCP-COUNT-Reset
-MBSSessionAssociatedInfoNonSupportToSupport N e1ap.extension id-MBSSessionAssociatedInfoNonSupportToSupport
-VersionID N e1ap.extension id-VersionID
+SNSSAI N e1ap.extension id-SNSSAI
+QoS-Flow-List N e1ap.extension id-OldQoSFlowMap-ULendmarkerexpected
+QoSFlowLevelQoSParameters N e1ap.extension id-DRB-QoS
+CP-TNL-Information N e1ap.extension id-TNLAssociationTransportLayerAddressgNBCUUP
+CommonNetworkInstance N e1ap.extension id-CommonNetworkInstance
+NetworkInstance N e1ap.extension id-NetworkInstance
+QoS-Flow-Mapping-Indication N e1ap.extension id-QoSFlowMappingIndication
+QosMonitoringRequest N e1ap.extension id-QoSMonitoringRequest
+PDCP-StatusReportIndication N e1ap.extension id-PDCP-StatusReportIndication
+CommonNetworkInstance N e1ap.extension id-RedundantCommonNetworkInstance
+UP-TNL-Information N e1ap.extension id-redundant-nG-UL-UP-TNL-Information
+UP-TNL-Information N e1ap.extension id-redundant-nG-DL-UP-TNL-Information
+RedundantQoSFlowIndicator N e1ap.extension id-RedundantQosFlowIndicator
+TSCTrafficCharacteristics N e1ap.extension id-TSCTrafficCharacteristics
+ExtendedPacketDelayBudget N e1ap.extension id-CNPacketDelayBudgetDownlink
+ExtendedPacketDelayBudget N e1ap.extension id-CNPacketDelayBudgetUplink
+ExtendedPacketDelayBudget N e1ap.extension id-ExtendedPacketDelayBudget
+AdditionalPDCPduplicationInformation N e1ap.extension id-AdditionalPDCPduplicationInformation
+RedundantPDUSessionInformation N e1ap.extension id-RedundantPDUSessionInformation
+RedundantPDUSessionInformation N e1ap.extension id-RedundantPDUSessionInformation-used
+QoS-Mapping-Information N e1ap.extension id-QoS-Mapping-Information
+NPNSupportInfo N e1ap.extension id-NPNSupportInfo
+MDT-Configuration N e1ap.extension id-MDTConfiguration
+URIaddress N e1ap.extension id-TraceCollectionEntityURI
+EHC-Parameters N e1ap.extension id-EHC-Parameters
+DAPSRequestInfo N e1ap.extension id-DAPSRequestInfo
+EarlyForwardingCOUNTReq N e1ap.extension id-EarlyForwardingCOUNTReq
+EarlyForwardingCOUNTInfo N e1ap.extension id-EarlyForwardingCOUNTInfo
+AlternativeQoSParaSetList N e1ap.extension id-AlternativeQoSParaSetList
+ExtendedSliceSupportList N e1ap.extension id-ExtendedSliceSupportList
+GBR-QoSFlowInformation N e1ap.extension id-MCG-OfferedGBRQoSFlowInfo
+Number-of-tunnels N e1ap.extension id-Number-of-tunnels
+DataForwardingtoE-UTRANInformationList N e1ap.extension id-DataForwardingtoE-UTRANInformationList
+QosMonitoringReportingFrequency N e1ap.extension id-QosMonitoringReportingFrequency
+QosMonitoringDisabled N e1ap.extension id-QoSMonitoringDisabled
+Extended-NR-CGI-Support-List N e1ap.extension id-Extended-NR-CGI-Support-List
+DataForwardingtoNG-RANQoSFlowInformationList N e1ap.extension id-DataForwardingtoNG-RANQoSFlowInformationList
+MaxCIDEHCDL N e1ap.extension id-MaxCIDEHCDL
+IgnoreMappingRuleIndication N e1ap.extension id-ignoreMappingRuleIndication
+EarlyDataForwardingIndicator N e1ap.extension id-EarlyDataForwardingIndicator
+QoS-Flows-DRB-Remapping N e1ap.extension id-QoSFlowsDRBRemapping
+TransportLayerAddress N e1ap.extension id-DataForwardingSourceIPAddress
+SecurityIndication N e1ap.extension id-SecurityIndicationModify
+ECGI-Support-List N e1ap.extension id-ECGI-Support-List
+M4ReportAmount N e1ap.extension id-M4ReportAmount
+M6ReportAmount N e1ap.extension id-M6ReportAmount
+M7ReportAmount N e1ap.extension id-M7ReportAmount
+PDUSession-PairID N e1ap.extension id-PDUSession-PairID
+SurvivalTime N e1ap.extension id-SurvivalTime
+UDC-Parameters N e1ap.extension id-UDC-Parameters
+SecurityIndication N e1ap.extension id-SecurityIndication
+SecurityResult N e1ap.extension id-SecurityResult
+SDTindicatorSetup N e1ap.extension id-SDTindicatorSetup
+SDTindicatorMod N e1ap.extension id-SDTindicatorMod
+DiscardTimerExtended N e1ap.extension id-DiscardTimerExtended
+MCForwardingResourceRequest N e1ap.extension id-MCForwardingResourceRequest
+MCForwardingResourceIndication N e1ap.extension id-MCForwardingResourceIndication
+MCForwardingResourceResponse N e1ap.extension id-MCForwardingResourceResponse
+MCForwardingResourceRelease N e1ap.extension id-MCForwardingResourceRelease
+MCForwardingResourceReleaseIndication N e1ap.extension id-MCForwardingResourceReleaseIndication
+PDCP-COUNT-Reset N e1ap.extension id-PDCP-COUNT-Reset
+MBSSessionAssociatedInfoNonSupportToSupport N e1ap.extension id-MBSSessionAssociatedInfoNonSupportToSupport
+VersionID N e1ap.extension id-VersionID
+MBSAreaSessionID N e1ap.extension id-MBSAreaSessionID
+Data-Forwarding-Information N e1ap.extension id-Secondary-PDU-Session-Data-Forwarding-Information
+Inactivity-Timer N e1ap.extension id-MCBearerContextInactivityTimer
+MCBearerContextStatusChange N e1ap.extension id-MCBearerContextStatusChange
+SpecialTriggeringPurpose N e1ap.extension id-SpecialTriggeringPurpose
+PDUSetQoSParameters N e1ap.extension id-PDUSetQoSParameters
+N6JitterInformation N e1ap.extension id-N6JitterInformation
+ECNMarkingorCongestionInformationReportingRequest N e1ap.extension id-ECNMarkingorCongestionInformationReportingRequest
+ECNMarkingorCongestionInformationReportingStatus N e1ap.extension id-ECNMarkingorCongestionInformationReportingStatus
+PDUSetbasedHandlingIndicator N e1ap.extension id-PDUSetbasedHandlingIndicator
+IndirectPathIndication N e1ap.extension id-IndirectPathIndication
+F1UTunnelNotEstablished N e1ap.extension id-F1UTunnelNotEstablished
+F1U-TNL-InfoToAdd-List N e1ap.extension id-F1U-TNL-InfoToAdd-List
+F1U-TNL-InfoAdded-List N e1ap.extension id-F1U-TNL-InfoAdded-List
+F1U-TNL-InfoToAddOrModify-List N e1ap.extension id-F1U-TNL-InfoToAddOrModify-List
+F1U-TNL-InfoAddedOrModified-List N e1ap.extension id-F1U-TNL-InfoAddedOrModified-List
+F1U-TNL-InfoToRelease-List N e1ap.extension id-F1U-TNL-InfoToRelease-List
+PSIbasedDiscardTimer N e1ap.extension id-PSIbasedDiscardTimer
+UserPlaneErrorIndicator N e1ap.extension id-UserPlaneErrorIndicator
+MaxDataBurstVolume N e1ap.extension id-MaximumDataBurstVolume
+BCBearerContextNGU-TNLInfoatNGRAN-Request N e1ap.extension id-BCBearerContextNGU-TNLInfoatNGRAN-Request
+PDCPSNGapReport N e1ap.extension id-PDCPSNGapReport
+UserPlaneFailureIndication N e1ap.extension id-UserPlaneFailureIndication
#E1AP-ELEMENTARY-PROCEDURE
Reset N e1ap.proc.imsg id-reset
@@ -649,6 +716,8 @@ MCBearerContextModificationFailure N e1ap.proc.uout id-MCBearerContextModi
MCBearerContextModificationRequired N e1ap.proc.imsg id-MCBearerContextModificationRequired
MCBearerContextModificationConfirm N e1ap.proc.sout id-MCBearerContextModificationRequired
+MCBearerNotification N e1ap.proc.imsg id-MCBearerNotification
+
MCBearerContextReleaseCommand N e1ap.proc.imsg id-MCBearerContextRelease
MCBearerContextReleaseComplete N e1ap.proc.sout id-MCBearerContextRelease
@@ -662,7 +731,7 @@ MCBearerContextReleaseRequest N e1ap.proc.imsg id-MCBearerContextRele
%(DEFAULT_BODY)s
if (param_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_e1ap_PLMN_Identity);
- dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, number_type, false);
}
#.FN_BODY NR-CGI
@@ -681,7 +750,7 @@ PortNumber TYPE = FT_UINT16 DISPLAY = BASE_DEC
}
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.FN_BODY DRB-Usage-Report-Item/startTimeStamp VAL_PTR = &timestamp_tvb
tvbuff_t *timestamp_tvb = NULL;
@@ -702,10 +771,10 @@ BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
}
#.TYPE_ATTR
-DRB-Usage-Report-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+DRB-Usage-Report-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
-DRB-Usage-Report-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+DRB-Usage-Report-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
MaxPacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(e1ap_MaxPacketLossRate_fmt)
@@ -714,20 +783,20 @@ MaxPacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(e1ap_MaxPacketLossRate
PacketDelayBudget DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(e1ap_PacketDelayBudget_uL_D1_Result_fmt)
#.TYPE_ATTR
-AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-MaxDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_bytes
+MaxDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
#.TYPE_ATTR
-Inactivity-Timer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Inactivity-Timer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY TransportLayerAddress VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
%(DEFAULT_BODY)s
if (param_tvb) {
proto_tree *subtree;
- gint tvb_len;
+ int tvb_len;
tvb_len = tvb_reported_length(param_tvb);
subtree = proto_item_add_subtree(actx->created_item, ett_e1ap_TransportLayerAddress);
@@ -764,16 +833,16 @@ Inactivity-Timer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
}
#.TYPE_ATTR
-MRDC-Data-Usage-Report-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+MRDC-Data-Usage-Report-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
-MRDC-Data-Usage-Report-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+MRDC-Data-Usage-Report-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
ExtendedPacketDelayBudget DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(e1ap_ExtendedPacketDelayBudget_fmt)
#.TYPE_ATTR
-HW-CapacityIndicator/offeredThroughput DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kbps
+HW-CapacityIndicator/offeredThroughput DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kbps)
#.FN_BODY InterfacesToTrace VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -793,7 +862,7 @@ HW-CapacityIndicator/offeredThroughput DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS
}
#.TYPE_ATTR
-M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
+M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_minutes)
#.FN_BODY MeasurementsToActivate VAL_PTR=&param_tvb
tvbuff_t *param_tvb = NULL;
@@ -826,7 +895,7 @@ M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
}
#.TYPE_ATTR
-Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
#.FN_BODY BurstArrivalTime VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -840,10 +909,25 @@ Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
DRB-Measurement-Results-Information-Item/uL-D1-Result DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(e1ap_PacketDelayBudget_uL_D1_Result_fmt)
#.TYPE_ATTR
-QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.TYPE_ATTR
+SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
+
+#.TYPE_ATTR
+UEInactivityInformation DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.TYPE_ATTR
+MT-SDT-Data-Size DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterLowerBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(e1ap_N6Jitter_fmt)
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterUpperBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(e1ap_N6Jitter_fmt)
#.TYPE_ATTR
-SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+SDT-data-size-threshold DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
#.FN_HDR Reset
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset");
@@ -981,6 +1065,8 @@ SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MCBearerContextModificationRequired");
#.FN_HDR MCBearerContextModificationConfirm
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MCBearerContextModificationConfirm");
+#.FN_HDR MCBearerNotification
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MCBearerNotification");
#.FN_HDR MCBearerContextReleaseCommand
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MCBearerContextReleaseCommand");
#.FN_HDR MCBearerContextReleaseComplete
diff --git a/epan/dissectors/asn1/e1ap/packet-e1ap-template.c b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
index f51884a2..6ac4e789 100644
--- a/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
+++ b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
@@ -1,6 +1,6 @@
/* packet-e1ap.c
* Routines for E-UTRAN E1 Application Protocol (E1AP) packet dissection
- * Copyright 2018-2023, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2018-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 37.483 V17.5.0 (2023-06)
+ * References: 3GPP TS 37.483 V18.2.0 (2024-06)
*/
#include "config.h"
@@ -18,6 +18,9 @@
#include <epan/asn1.h>
#include <epan/sctpppids.h>
#include <epan/proto_data.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-e1ap.h"
#include "packet-per.h"
@@ -38,35 +41,35 @@ void proto_reg_handoff_e1ap(void);
#include "packet-e1ap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_e1ap = -1;
-
-static int hf_e1ap_transportLayerAddressIPv4 = -1;
-static int hf_e1ap_transportLayerAddressIPv6 = -1;
-static int hf_e1ap_InterfacesToTrace_NG_C = -1;
-static int hf_e1ap_InterfacesToTrace_Xn_C = -1;
-static int hf_e1ap_InterfacesToTrace_Uu = -1;
-static int hf_e1ap_InterfacesToTrace_F1_C = -1;
-static int hf_e1ap_InterfacesToTrace_E1 = -1;
-static int hf_e1ap_InterfacesToTrace_Reserved = -1;
-static int hf_e1ap_MeasurementsToActivate_Reserved1 = -1;
-static int hf_e1ap_MeasurementsToActivate_M4 = -1;
-static int hf_e1ap_MeasurementsToActivate_Reserved2 = -1;
-static int hf_e1ap_MeasurementsToActivate_M6 = -1;
-static int hf_e1ap_MeasurementsToActivate_M7 = -1;
-static int hf_e1ap_ReportCharacteristics_TNLAvailableCapacityIndPeriodic = -1;
-static int hf_e1ap_ReportCharacteristics_HWCapacityIndPeriodic = -1;
-static int hf_e1ap_ReportCharacteristics_Reserved = -1;
-static int hf_e1ap_tcp_pdu_len = -1;
+static int proto_e1ap;
+
+static int hf_e1ap_transportLayerAddressIPv4;
+static int hf_e1ap_transportLayerAddressIPv6;
+static int hf_e1ap_InterfacesToTrace_NG_C;
+static int hf_e1ap_InterfacesToTrace_Xn_C;
+static int hf_e1ap_InterfacesToTrace_Uu;
+static int hf_e1ap_InterfacesToTrace_F1_C;
+static int hf_e1ap_InterfacesToTrace_E1;
+static int hf_e1ap_InterfacesToTrace_Reserved;
+static int hf_e1ap_MeasurementsToActivate_Reserved1;
+static int hf_e1ap_MeasurementsToActivate_M4;
+static int hf_e1ap_MeasurementsToActivate_Reserved2;
+static int hf_e1ap_MeasurementsToActivate_M6;
+static int hf_e1ap_MeasurementsToActivate_M7;
+static int hf_e1ap_ReportCharacteristics_TNLAvailableCapacityIndPeriodic;
+static int hf_e1ap_ReportCharacteristics_HWCapacityIndPeriodic;
+static int hf_e1ap_ReportCharacteristics_Reserved;
+static int hf_e1ap_tcp_pdu_len;
#include "packet-e1ap-hf.c"
/* Initialize the subtree pointers */
-static gint ett_e1ap = -1;
-static gint ett_e1ap_PLMN_Identity = -1;
-static gint ett_e1ap_TransportLayerAddress = -1;
-static gint ett_e1ap_InterfacesToTrace = -1;
-static gint ett_e1ap_MeasurementsToActivate = -1;
-static gint ett_e1ap_ReportCharacteristics = -1;
-static gint ett_e1ap_BurstArrivalTime = -1;
+static int ett_e1ap;
+static int ett_e1ap_PLMN_Identity;
+static int ett_e1ap_TransportLayerAddress;
+static int ett_e1ap_InterfacesToTrace;
+static int ett_e1ap_MeasurementsToActivate;
+static int ett_e1ap_ReportCharacteristics;
+static int ett_e1ap_BurstArrivalTime;
#include "packet-e1ap-ett.c"
enum{
@@ -76,9 +79,9 @@ enum{
};
typedef struct {
- guint32 message_type;
- guint32 procedure_code;
- guint32 protocol_ie_id;
+ uint32_t message_type;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
const char *obj_id;
e212_number_type_t number_type;
} e1ap_private_data_t;
@@ -100,29 +103,30 @@ static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, pro
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 const true_false_string e1ap_tfs_InterfacesToTrace = {
- "Should be traced",
- "Should not be traced"
-};
-
static void
-e1ap_MaxPacketLossRate_fmt(gchar *s, guint32 v)
+e1ap_MaxPacketLossRate_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1f%% (%u)", (float)v/10, v);
}
static void
-e1ap_PacketDelayBudget_uL_D1_Result_fmt(gchar *s, guint32 v)
+e1ap_PacketDelayBudget_uL_D1_Result_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
}
static void
-e1ap_ExtendedPacketDelayBudget_fmt(gchar *s, guint32 v)
+e1ap_ExtendedPacketDelayBudget_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fms (%u)", (float)v/100, v);
}
+static void
+e1ap_N6Jitter_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%d)", (float)v/2, (int32_t)v);
+}
+
static e1ap_private_data_t*
e1ap_get_private_data(packet_info *pinfo)
{
@@ -145,7 +149,7 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
e1ap_ctx.ProcedureCode = e1ap_data->procedure_code;
e1ap_ctx.ProtocolIE_ID = e1ap_data->protocol_ie_id;
- return (dissector_try_uint_new(e1ap_ies_dissector_table, e1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e1ap_ies_dissector_table, e1ap_data->protocol_ie_id, tvb, pinfo, tree, false, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -157,28 +161,28 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in
e1ap_ctx.ProcedureCode = e1ap_data->procedure_code;
e1ap_ctx.ProtocolIE_ID = e1ap_data->protocol_ie_id;
- return (dissector_try_uint_new(e1ap_extension_dissector_table, e1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e1ap_extension_dissector_table, e1ap_data->protocol_ie_id, tvb, pinfo, tree, false, &e1ap_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(e1ap_proc_imsg_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e1ap_proc_imsg_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(e1ap_proc_sout_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e1ap_proc_sout_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
e1ap_private_data_t *e1ap_data = e1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(e1ap_proc_uout_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e1ap_proc_uout_dissector_table, e1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
@@ -200,7 +204,7 @@ dissect_e1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
return tvb_captured_length(tvb);
}
-static guint
+static unsigned
get_e1ap_tcp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
{
@@ -221,7 +225,7 @@ dissect_e1ap_tcp_pdu(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void*
static int
dissect_e1ap_tcp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
{
- tcp_dissect_pdus(tvb, pinfo, tree, TRUE, 4,
+ tcp_dissect_pdus(tvb, pinfo, tree, true, 4,
get_e1ap_tcp_pdu_len, dissect_e1ap_tcp_pdu, data);
return tvb_captured_length(tvb);
}
@@ -241,23 +245,23 @@ void proto_register_e1ap(void) {
NULL, HFILL }},
{ &hf_e1ap_InterfacesToTrace_NG_C,
{ "NG-C", "e1ap.InterfacesToTrace.NG_C",
- FT_BOOLEAN, 8, TFS(&e1ap_tfs_InterfacesToTrace), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x80,
NULL, HFILL }},
{ &hf_e1ap_InterfacesToTrace_Xn_C,
{ "Xn-C", "e1ap.InterfacesToTrace.Xn_C",
- FT_BOOLEAN, 8, TFS(&e1ap_tfs_InterfacesToTrace), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x40,
NULL, HFILL }},
{ &hf_e1ap_InterfacesToTrace_Uu,
{ "Uu", "e1ap.InterfacesToTrace.Uu",
- FT_BOOLEAN, 8, TFS(&e1ap_tfs_InterfacesToTrace), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x20,
NULL, HFILL }},
{ &hf_e1ap_InterfacesToTrace_F1_C,
{ "F1-C", "e1ap.InterfacesToTrace.F1_C",
- FT_BOOLEAN, 8, TFS(&e1ap_tfs_InterfacesToTrace), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x10,
NULL, HFILL }},
{ &hf_e1ap_InterfacesToTrace_E1,
{ "E1", "e1ap.InterfacesToTrace.E1",
- FT_BOOLEAN, 8, TFS(&e1ap_tfs_InterfacesToTrace), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x08,
NULL, HFILL }},
{ &hf_e1ap_InterfacesToTrace_Reserved,
{ "Reserved", "e1ap.InterfacesToTrace.Reserved",
@@ -303,7 +307,7 @@ void proto_register_e1ap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_e1ap,
&ett_e1ap_PLMN_Identity,
&ett_e1ap_TransportLayerAddress,
diff --git a/epan/dissectors/asn1/e1ap/packet-e1ap-template.h b/epan/dissectors/asn1/e1ap/packet-e1ap-template.h
index 40dbbc77..60753991 100644
--- a/epan/dissectors/asn1/e1ap/packet-e1ap-template.h
+++ b/epan/dissectors/asn1/e1ap/packet-e1ap-template.h
@@ -12,10 +12,10 @@
#define PACKET_E1AP_H
typedef struct {
- guint32 message_type;
- guint32 ProcedureCode;
- guint32 ProtocolIE_ID;
- guint32 ProtocolExtensionID;
+ uint32_t message_type;
+ uint32_t ProcedureCode;
+ uint32_t ProtocolIE_ID;
+ uint32_t ProtocolExtensionID;
} e1ap_ctx_t;
diff --git a/epan/dissectors/asn1/e2ap/e2ap.cnf b/epan/dissectors/asn1/e2ap/e2ap.cnf
index dc37391d..205bdefd 100644
--- a/epan/dissectors/asn1/e2ap/e2ap.cnf
+++ b/epan/dissectors/asn1/e2ap/e2ap.cnf
@@ -111,7 +111,7 @@ SuccessfulOutcome/value successfulOutcome_value
# TODO: probably not worth it
# #.FN_BODY E2AP-PDU VAL_PTR=&value
-# guint32 value;
+# uint32_t value;
# %(DEFAULT_BODY)s
# col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(value, e2ap_E2AP_PDU_vals, "Unknown"));
@@ -259,25 +259,36 @@ SuccessfulOutcome/value successfulOutcome_value
%(DEFAULT_BODY)s
/* Looking for shortName string near beginning of tvb */
- gboolean found = FALSE;
+ bool found = false;
/* For each RAN function name.. */
- for (int n=KPM_RANFUNCTIONS; n<MAX_RANFUNCTIONS && !found; n++) {
- guint32 tvb_len = tvb_captured_length(parameter_tvb);
- guint name_len = (gint)strlen(g_ran_function_name_table[n]);
+ int n, found_index;
+ for (n=KPM_RANFUNCTIONS; n<MAX_RANFUNCTIONS && !found; n++) {
+ uint32_t tvb_len = tvb_captured_length(parameter_tvb);
+ unsigned name_len = (int)strlen(g_ran_function_name_table[n]);
/* For each of several byte positions.. */
for (int m=0; (m<30) && ((m+name_len+1))<tvb_len; m++) {
/* Have we found a match on the name? */
if (tvb_strneql(parameter_tvb, m, g_ran_function_name_table[n], name_len) == 0) {
- /* TODO: we don't yet know the OID (hopefully won't make a difference for this message though...),
+ /* We don't yet know the OID (should be OK),
so for now just call with the first/only available dissector for this RAN Function name */
if (g_ran_functions_available_dissectors[n].num_available_dissectors) {
g_ran_functions_available_dissectors[n].ran_function_dissectors[0]->functions.ran_function_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
- found = TRUE;
+ found = true;
+ found_index = n;
break;
}
}
}
}
+
+ if (found && (found_index==CCC_RANFUNCTIONS)) {
+ // ranFunctionName, for this ranFunction, is inside the JSON. Rather than try to retrive it,
+ // just use this proxy that ought to appear at the start... OID should get set in the normal way.
+ if (!actx->pinfo->fd->visited) {
+ e2ap_store_ran_function_mapping(actx->pinfo, tree, parameter_tvb, "{" /*"ORAN-E2SM-CCC"*/);
+ }
+ }
+
if (!found) {
proto_item *ti = proto_tree_add_item(tree, hf_e2ap_ran_function_name_not_recognised, tvb, 0, 0, ENC_NA);
expert_add_info_format(actx->pinfo, ti, &ei_e2ap_ran_function_names_no_match,
@@ -290,18 +301,21 @@ SuccessfulOutcome/value successfulOutcome_value
if (!actx->pinfo->fd->visited) {
/* N.B. too early to work out exact dissector, as don't have OID yet */
e2ap_store_ran_function_mapping(actx->pinfo, tree, value_tvb,
- tvb_get_string_enc(wmem_packet_scope(), value_tvb, 0, tvb_captured_length(value_tvb), ENC_ASCII));
+ tvb_get_string_enc(actx->pinfo->pool, value_tvb, 0, tvb_captured_length(value_tvb), ENC_ASCII));
}
-
-#.FN_BODY RANfunction-Name/ranFunction-E2SM-OID VAL_PTR = &parameter_tvb
+#.FN_BODY RANfunctionOID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
+ /* Now complete mapping with OID string */
e2ap_update_ran_function_mapping(actx->pinfo, tree, parameter_tvb,
tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0,
tvb_captured_length(parameter_tvb), ENC_ASCII));
+
+# TODO: for these IEs, report as expert info if have RAN Function dissector, but it lacks that IE!
+
#.FN_BODY RICcontrolHeader VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
@@ -712,7 +726,7 @@ RICQueryResponse N e2ap.proc.sout id-RICquery
#.FN_BODY RANfunctionID VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
/* Store value in packet-private data */
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
@@ -753,9 +767,9 @@ RICQueryResponse N e2ap.proc.sout id-RICquery
if (e2ap_data->component_configuration_dissector) {
col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "|");
col_set_fence(actx->pinfo->cinfo, COL_PROTOCOL);
- col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
call_dissector(e2ap_data->component_configuration_dissector, value_tvb, actx->pinfo, tree);
- col_set_writable(actx->pinfo->cinfo, COL_INFO, TRUE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
}
#.FN_BODY E2nodeComponentConfiguration/e2nodeComponentResponsePart VAL_PTR=&value_tvb
@@ -763,9 +777,9 @@ RICQueryResponse N e2ap.proc.sout id-RICquery
%(DEFAULT_BODY)s
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
if (e2ap_data->component_configuration_dissector) {
- col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
call_dissector(e2ap_data->component_configuration_dissector, value_tvb, actx->pinfo, tree);
- col_set_writable(actx->pinfo->cinfo, COL_INFO, TRUE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
}
@@ -809,98 +823,130 @@ RICQueryResponse N e2ap.proc.sout id-RICquery
+# Set labels and update stats for the various message types
+
#.FN_HDR E2connectionUpdate
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdate");
+ set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE);
+
#.FN_HDR E2connectionUpdateAcknowledge
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdateAcknowledge");
+ set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE_ACK);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE_ACK);
#.FN_HDR E2connectionUpdateFailure
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdateFailure");
+ set_message_label(actx, MTYPE_E2_CONNECTION_UPDATE_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_CONNECTION_UPDATE_FAIL);
#.FN_HDR E2nodeConfigurationUpdate
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdate");
+ set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
+
#.FN_HDR E2nodeConfigurationUpdateAcknowledge
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdateAcknowledge");
+ set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE_ACK);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE_ACK);
#.FN_HDR E2nodeConfigurationUpdateFailure
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdateFailure");
+ set_message_label(actx, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_CONFIGURATION_UPDATE_FAIL);
#.FN_HDR E2setupFailure
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupFailure");
+ set_message_label(actx, MTYPE_E2_SETUP_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_FAIL);
#.FN_HDR E2setupRequest
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupRequest");
+ set_message_label(actx, MTYPE_E2_SETUP_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_REQUEST);
#.FN_HDR E2setupResponse
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupResponse");
+ set_message_label(actx, MTYPE_E2_SETUP_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_E2_SETUP_RESPONSE);
+
#.FN_HDR ErrorIndication
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
+ set_message_label(actx, MTYPE_ERROR_INDICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_ERROR_INDICATION);
#.FN_HDR ResetRequest
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest");
+ set_message_label(actx, MTYPE_RESET_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_RESET_REQUEST);
#.FN_HDR ResetResponse
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse");
+ set_message_label(actx, MTYPE_RESET_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_RESET_RESPONSE);
#.FN_HDR RICcontrolAcknowledge
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolAcknowledge");
+ set_message_label(actx, MTYPE_RIC_CONTROL_ACK);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_ACK);
#.FN_HDR RICcontrolFailure
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolFailure");
+ set_message_label(actx, MTYPE_RIC_CONTROL_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_FAIL);
#.FN_HDR RICcontrolRequest
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolRequest");
+ set_message_label(actx, MTYPE_RIC_CONTROL_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_CONTROL_REQUEST);
#.FN_HDR RICindication
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICindication");
+ set_message_label(actx, MTYPE_RIC_IND);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_IND);
#.FN_HDR RICserviceQuery
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceQuery");
+ set_message_label(actx, MTYPE_RIC_SERVICE_QUERY);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_QUERY);
#.FN_HDR RICserviceUpdate
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdate");
+ set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE);
#.FN_HDR RICserviceUpdateAcknowledge
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdateAcknowledge");
+ set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE_ACK);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE_ACK);
#.FN_HDR RICserviceUpdateFailure
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdateFailure");
+ set_message_label(actx, MTYPE_RIC_SERVICE_UPDATE_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SERVICE_UPDATE_FAIL);
#.FN_HDR RICsubscriptionFailure
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionFailure");
+ set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_FAIL);
#.FN_HDR RICsubscriptionRequest
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionRequest");
+ set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_REQUEST);
#.FN_HDR RICsubscriptionResponse
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionResponse");
+ set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_RESPONSE);
#.FN_HDR RICsubscriptionDeleteFailure
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteFailure");
+ set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL);
#.FN_HDR RICsubscriptionDeleteRequest
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteRequest");
+ set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST);
#.FN_HDR RICsubscriptionDeleteResponse
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteResponse");
+ set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE);
#.FN_HDR RICsubscriptionDeleteRequired
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteRequired");
+ set_message_label(actx, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED);
+ set_stats_message_type(actx->pinfo, MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED);
#
diff --git a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
index 709469f6..644d6a64 100644
--- a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
+++ b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
@@ -23,6 +23,9 @@
#include <epan/conversation.h>
#include <epan/to_str.h>
#include <epan/oids.h>
+#include <epan/tap.h>
+#include <epan/stats_tree.h>
+#include <wsutil/array.h>
#include "packet-e2ap.h"
#include "packet-per.h"
@@ -43,26 +46,27 @@ static dissector_handle_t e2ap_handle;
#include "packet-e2ap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_e2ap = -1;
+static int proto_e2ap;
#include "packet-e2ap-hf.c"
-static int hf_e2ap_unmapped_ran_function_id = -1;
-static int hf_e2ap_ran_function_name_not_recognised = -1;
-static int hf_e2ap_ran_function_setup_frame = -1;
+static int hf_e2ap_unmapped_ran_function_id;
+static int hf_e2ap_ran_function_name_not_recognised;
+static int hf_e2ap_ran_function_setup_frame;
+/* TODO: for each RAN Function, also link forward to where setup is referenced (if at all?). Maybe just first usage? */
-static int hf_e2ap_dissector_version= -1;
-static int hf_e2ap_frame_version = -1;
+static int hf_e2ap_dissector_version;
+static int hf_e2ap_frame_version;
-static int hf_e2ap_timestamp_string = -1;
+static int hf_e2ap_timestamp_string;
/* Initialize the subtree pointers */
-static gint ett_e2ap = -1;
+static int ett_e2ap;
-static expert_field ei_e2ap_ran_function_names_no_match = EI_INIT;
-static expert_field ei_e2ap_ran_function_id_not_mapped = EI_INIT;
-static expert_field ei_e2ap_ran_function_dissector_mismatch = EI_INIT;
-static expert_field ei_e2ap_ran_function_max_dissectors_registered = EI_INIT;
+static expert_field ei_e2ap_ran_function_names_no_match;
+static expert_field ei_e2ap_ran_function_id_not_mapped;
+static expert_field ei_e2ap_ran_function_dissector_mismatch;
+static expert_field ei_e2ap_ran_function_max_dissectors_registered;
#include "packet-e2ap-ett.c"
@@ -86,9 +90,6 @@ static int dissect_E2SM_RC_CallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pin
static int dissect_E2SM_RC_ControlHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_ControlMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_ControlOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
-//static int dissect_E2SM_RC_QueryOutcome_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
-//static int dissect_E2SM_RC_QueryDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
-//static int dissect_E2SM_RC_QueryHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_NI_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_NI_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@@ -106,27 +107,106 @@ enum {
UNSUCCESSFUL_OUTCOME
};
-typedef struct _e2ap_ctx_t {
- guint32 message_type;
- guint32 ProcedureCode;
- guint32 ProtocolIE_ID;
- guint32 ProtocolExtensionID;
-} e2ap_ctx_t;
+
+/* E2AP stats - Tap interface */
+
+static void set_stats_message_type(packet_info *pinfo, int type);
+
+static const uint8_t *st_str_packets = "Total Packets";
+static const uint8_t *st_str_packet_types = "E2AP Packet Types";
+
+static int st_node_packets = -1;
+static int st_node_packet_types = -1;
+static int e2ap_tap;
+
+struct e2ap_tap_t {
+ int e2ap_mtype;
+};
+
+#define MTYPE_E2_CONNECTION_UPDATE 1
+#define MTYPE_E2_CONNECTION_UPDATE_ACK 2
+#define MTYPE_E2_CONNECTION_UPDATE_FAIL 3
+#define MTYPE_E2_CONFIGURATION_UPDATE 4
+#define MTYPE_E2_CONFIGURATION_UPDATE_ACK 5
+#define MTYPE_E2_CONFIGURATION_UPDATE_FAIL 6
+#define MTYPE_E2_SETUP_FAIL 7
+#define MTYPE_E2_SETUP_REQUEST 8
+#define MTYPE_E2_SETUP_RESPONSE 9
+#define MTYPE_ERROR_INDICATION 10
+#define MTYPE_RESET_REQUEST 11
+#define MTYPE_RESET_RESPONSE 12
+#define MTYPE_RIC_CONTROL_ACK 13
+#define MTYPE_RIC_CONTROL_FAIL 14
+#define MTYPE_RIC_CONTROL_REQUEST 15
+#define MTYPE_RIC_IND 16
+#define MTYPE_RIC_SERVICE_QUERY 17
+#define MTYPE_RIC_SERVICE_UPDATE 18
+#define MTYPE_RIC_SERVICE_UPDATE_ACK 19
+#define MTYPE_RIC_SERVICE_UPDATE_FAIL 20
+#define MTYPE_RIC_SUBSCRIPTION_FAIL 21
+#define MTYPE_RIC_SUBSCRIPTION_REQUEST 22
+#define MTYPE_RIC_SUBSCRIPTION_RESPONSE 23
+#define MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL 24
+#define MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST 25
+#define MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE 26
+#define MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED 27
+
+/* Value Strings. TODO: ext? */
+static const value_string mtype_names[] = {
+ { MTYPE_E2_CONNECTION_UPDATE, "E2connectionUpdate"},
+ { MTYPE_E2_CONNECTION_UPDATE_ACK, "E2connectionUpdateAcknowledge"},
+ { MTYPE_E2_CONNECTION_UPDATE_FAIL, "E2connectionUpdateFailure"},
+ { MTYPE_E2_CONFIGURATION_UPDATE, "E2nodeConfigurationUpdate"},
+ { MTYPE_E2_CONFIGURATION_UPDATE_ACK, "E2nodeConfigurationUpdateAcknowledge"},
+ { MTYPE_E2_CONFIGURATION_UPDATE_FAIL, "E2nodeConfigurationUpdateFailure"},
+ { MTYPE_E2_SETUP_FAIL, "E2setupFailure"},
+ { MTYPE_E2_SETUP_REQUEST, "E2setupRequest"},
+ { MTYPE_E2_SETUP_RESPONSE, "E2setupResponse"},
+ { MTYPE_ERROR_INDICATION, "ErrorIndication"},
+ { MTYPE_RESET_REQUEST, "ResetRequest"},
+ { MTYPE_RESET_RESPONSE, "ResetResponse"},
+ { MTYPE_RIC_CONTROL_ACK, "RICcontrolAcknowledge"},
+ { MTYPE_RIC_CONTROL_FAIL, "RICcontrolFailure"},
+ { MTYPE_RIC_CONTROL_REQUEST, "RICcontrolRequest"},
+ { MTYPE_RIC_IND, "RICindication"},
+ { MTYPE_RIC_SERVICE_QUERY, "RICserviceQuery"},
+ { MTYPE_RIC_SERVICE_UPDATE, "RICserviceUpdate"},
+ { MTYPE_RIC_SERVICE_UPDATE_ACK, "RICserviceUpdateAcknowledge"},
+ { MTYPE_RIC_SERVICE_UPDATE_FAIL, "RICserviceUpdateFailure"},
+ { MTYPE_RIC_SUBSCRIPTION_FAIL, "RICsubscriptionFailure"},
+ { MTYPE_RIC_SUBSCRIPTION_REQUEST, "RICsubscriptionRequest"},
+ { MTYPE_RIC_SUBSCRIPTION_RESPONSE, "RICsubscriptionResponse"},
+ { MTYPE_RIC_SUBSCRIPTION_DELETE_FAIL, "RICsubscriptionDeleteFailure"},
+ { MTYPE_RIC_SUBSCRIPTION_DELETE_REQUEST, "RICsubscriptionDeleteRequest"},
+ { MTYPE_RIC_SUBSCRIPTION_DELETE_RESPONSE, "RICsubscriptionDeleteResponse"},
+ { MTYPE_RIC_SUBSCRIPTION_DELETE_REQUIRED, "RICsubscriptionDeleteRequired"},
+ { 0, NULL }
+};
+
+static proto_tree *top_tree;
+
+static void set_message_label(asn1_ctx_t *actx, int type)
+{
+ const char *label = val_to_str_const(type, mtype_names, "Unknown");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, label);
+ proto_item_append_text(top_tree, " (%s)", label);
+}
+
+
/* Temporary private info to remember while dissecting frame */
struct e2ap_private_data {
- guint32 procedure_code;
- guint32 protocol_ie_id;
- guint32 protocol_extension_id;
- guint32 message_type;
- guint32 ran_ue_e2ap_id;
-
- guint32 ran_function_id;
- guint32 gnb_id_len;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
+ uint32_t message_type;
+
+ uint32_t ran_function_id;
+ uint32_t gnb_id_len;
#define MAX_GNB_ID_BYTES 6
- guint8 gnb_id_bytes[MAX_GNB_ID_BYTES];
+ uint8_t gnb_id_bytes[MAX_GNB_ID_BYTES];
dissector_handle_t component_configuration_dissector;
+ struct e2ap_tap_t *stats_tap;
};
/* Lookup temporary private info */
@@ -142,25 +222,22 @@ e2ap_get_private_data(packet_info *pinfo)
}
/****************************************************************************************************************/
-/* We learn which set of RAN functions pointers corresponds to a given ranFunctionID when we see E2SetupRequest */
-/* TODO: unfortunately, it seems that different versions of these protocols are not backward-compatible, so */
-/* it would be good to show where (going by OID) the dissector isn't at the same version as the message.. */
-/* An alternative would be to have multiple versions of each protocol and have them register in tables... */
-
+/* These are the strings that we look for at the beginning of RAN Function Description to identify RAN Function */
/* Static table mapping from string -> ran_function */
static const char* g_ran_function_name_table[MAX_RANFUNCTIONS] =
{
"ORAN-E2SM-KPM",
"ORAN-E2SM-RC",
- "ORAN-E2SM-NI"
+ "ORAN-E2SM-NI",
+ "{" /* For now, CCC is the only JSON-based RAN Function, so just match opening */
};
/* Per-conversation mapping: ranFunctionId -> ran_function+dissector */
typedef struct {
- guint32 setup_frame;
- guint32 ran_function_id;
+ uint32_t setup_frame;
+ uint32_t ran_function_id;
ran_function_t ran_function;
char oid[MAX_OID_LEN]; // i.e., OID from setupRequest
ran_function_dissector_t *dissector;
@@ -168,7 +245,7 @@ typedef struct {
typedef struct {
#define MAX_RANFUNCTION_ENTRIES 8
- guint32 num_entries;
+ uint32_t num_entries;
ran_function_id_mapping_t entries[MAX_RANFUNCTION_ENTRIES];
} ran_functionid_table_t;
@@ -181,6 +258,9 @@ static const char *ran_function_to_str(ran_function_t ran_function)
return "RC";
case NI_RANFUNCTIONS:
return "NI";
+ case CCC_RANFUNCTIONS:
+ return "CCC";
+
default:
return "Unknown";
}
@@ -189,10 +269,10 @@ static const char *ran_function_to_str(ran_function_t ran_function)
/* Table of RAN Function tables, indexed by gnbId (bytes) */
typedef struct {
#define MAX_GNBS 6
- guint32 num_gnbs;
+ uint32_t num_gnbs;
struct {
- guint8 id_value[MAX_GNB_ID_BYTES];
- guint32 id_len;
+ uint8_t id_value[MAX_GNB_ID_BYTES];
+ uint32_t id_len;
ran_functionid_table_t *ran_function_table;
} gnb[MAX_GNBS];
} gnb_ran_functions_t;
@@ -202,8 +282,8 @@ static gnb_ran_functions_t s_gnb_ran_functions_table;
/* Table of available dissectors for each RAN function */
typedef struct {
- guint32 num_available_dissectors;
-#define MAX_DISSECTORS_PER_RAN_FUNCTION 3
+ uint32_t num_available_dissectors;
+#define MAX_DISSECTORS_PER_RAN_FUNCTION 8
ran_function_dissector_t* ran_function_dissectors[MAX_DISSECTORS_PER_RAN_FUNCTION];
} ran_function_available_dissectors_t;
@@ -213,7 +293,7 @@ static ran_function_available_dissectors_t g_ran_functions_available_dissectors[
/* Will be called from outside this file by separate dissectors */
void register_e2ap_ran_function_dissector(ran_function_t ran_function, ran_function_dissector_t *dissector)
{
- if ((ran_function >= MIN_RANFUNCTIONS) && (ran_function <= MAX_RANFUNCTIONS)) {
+ if ((ran_function >= MIN_RANFUNCTIONS) && (ran_function < MAX_RANFUNCTIONS)) {
ran_function_available_dissectors_t *available_dissectors = &g_ran_functions_available_dissectors[ran_function];
if (available_dissectors->num_available_dissectors < MAX_DISSECTORS_PER_RAN_FUNCTION) {
available_dissectors->ran_function_dissectors[available_dissectors->num_available_dissectors++] = dissector;
@@ -255,9 +335,11 @@ void e2ap_store_ran_function_mapping(packet_info *pinfo, proto_tree *tree, tvbuf
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
- if (!name) {
+ /* Need these pointers not to be NULL */
+ if (!name || !table) {
return;
}
+
/* Stop if already reached table limit */
if (table->num_entries == MAX_RANFUNCTION_ENTRIES) {
proto_tree_add_expert_format(tree, pinfo, &ei_e2ap_ran_function_max_dissectors_registered,
@@ -267,7 +349,7 @@ void e2ap_store_ran_function_mapping(packet_info *pinfo, proto_tree *tree, tvbuf
return;
}
- guint32 ran_function_id = e2ap_data->ran_function_id;
+ uint32_t ran_function_id = e2ap_data->ran_function_id;
ran_function_t ran_function = MAX_RANFUNCTIONS; /* i.e. invalid */
ran_function_dissector_t *ran_function_dissector = NULL;
@@ -292,14 +374,14 @@ void e2ap_store_ran_function_mapping(packet_info *pinfo, proto_tree *tree, tvbuf
}
/* If ID already mapped, can stop here */
- for (guint n=0; n < table->num_entries; n++) {
+ for (unsigned n=0; n < table->num_entries; n++) {
if (table->entries[n].ran_function_id == ran_function_id) {
return;
}
}
/* OK, store this new entry */
- guint idx = table->num_entries++;
+ unsigned idx = table->num_entries++;
table->entries[idx].setup_frame = pinfo->num;
table->entries[idx].ran_function_id = ran_function_id;
table->entries[idx].ran_function = ran_function;
@@ -307,22 +389,22 @@ void e2ap_store_ran_function_mapping(packet_info *pinfo, proto_tree *tree, tvbuf
/* When add first entry, also want to set up table from gnbId -> table */
if (idx == 0) {
- guint id_len = e2ap_data->gnb_id_len;
- guint8 *id_value = &e2ap_data->gnb_id_bytes[0];
+ unsigned id_len = e2ap_data->gnb_id_len;
+ uint8_t *id_value = &e2ap_data->gnb_id_bytes[0];
- gboolean found = FALSE;
- for (guint n=0; n<s_gnb_ran_functions_table.num_gnbs; n++) {
+ bool found = false;
+ for (unsigned n=0; n<s_gnb_ran_functions_table.num_gnbs; n++) {
if ((s_gnb_ran_functions_table.gnb[n].id_len = id_len) &&
(memcmp(s_gnb_ran_functions_table.gnb[n].id_value, id_value, id_len) == 0)) {
/* Already have an entry for this gnb. */
- found = TRUE;
+ found = true;
break;
}
}
if (!found) {
/* Add entry (if room for 1 more) */
- guint32 new_idx = s_gnb_ran_functions_table.num_gnbs;
+ uint32_t new_idx = s_gnb_ran_functions_table.num_gnbs;
if (new_idx < MAX_GNBS-1) {
s_gnb_ran_functions_table.gnb[new_idx].id_len = id_len;
memcpy(s_gnb_ran_functions_table.gnb[new_idx].id_value, id_value, id_len);
@@ -339,7 +421,7 @@ static ran_function_dissector_t* lookup_ranfunction_dissector(packet_info *pinfo
{
/* Get ranFunctionID from this frame */
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
- guint ran_function_id = e2ap_data->ran_function_id;
+ unsigned ran_function_id = e2ap_data->ran_function_id;
/* Get ranFunction table corresponding to this frame's conversation */
ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
@@ -349,7 +431,7 @@ static ran_function_dissector_t* lookup_ranfunction_dissector(packet_info *pinfo
}
/* Find the entry in this table corresponding to ran_function_id */
- for (guint n=0; n < table->num_entries; n++) {
+ for (unsigned n=0; n < table->num_entries; n++) {
if (ran_function_id == table->entries[n].ran_function_id) {
if (tree) {
/* Point back at the setup frame where this ranfunction was mapped */
@@ -396,7 +478,7 @@ static char* lookup_ranfunction_oid(packet_info *pinfo)
{
/* Get ranFunctionID from this frame */
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
- guint ran_function_id = e2ap_data->ran_function_id;
+ unsigned ran_function_id = e2ap_data->ran_function_id;
/* Get ranFunction table corresponding to this frame's conversation */
ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
@@ -406,7 +488,7 @@ static char* lookup_ranfunction_oid(packet_info *pinfo)
}
/* Find the entry in this table corresponding to ran_function_id */
- for (guint n=0; n < table->num_entries; n++) {
+ for (unsigned n=0; n < table->num_entries; n++) {
if (ran_function_id == table->entries[n].ran_function_id) {
return (char*)(table->entries[n].oid);
}
@@ -426,7 +508,7 @@ static void update_dissector_using_oid(packet_info *pinfo, ran_function_t ran_fu
return;
}
- gboolean found = FALSE;
+ bool found = false;
/* Look at available dissectors for this RAN function */
ran_function_available_dissectors_t *available = &g_ran_functions_available_dissectors[ran_function];
@@ -437,11 +519,15 @@ static void update_dissector_using_oid(packet_info *pinfo, ran_function_t ran_fu
// Get mapping in use
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
- guint ran_function_id = e2ap_data->ran_function_id;
+ unsigned ran_function_id = e2ap_data->ran_function_id;
ran_function_id_mapping_t *mapping = NULL;
ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
+ if (!table) {
+ return;
+ }
+
/* Find the entry in this table corresponding to ran_function_id */
- for (guint n=0; n < table->num_entries; n++) {
+ for (unsigned n=0; n < table->num_entries; n++) {
if (ran_function_id == table->entries[n].ran_function_id) {
mapping = &(table->entries[n]);
}
@@ -452,11 +538,11 @@ static void update_dissector_using_oid(packet_info *pinfo, ran_function_t ran_fu
}
/* Set dissector pointer in ran_function_id_mapping_t */
- for (guint32 n=0; n < available->num_available_dissectors; n++) {
+ for (uint32_t n=0; n < available->num_available_dissectors; n++) {
/* If exact match, set it */
if (strcmp(frame_oid, available->ran_function_dissectors[n]->oid) == 0) {
mapping->dissector = available->ran_function_dissectors[n];
- found = TRUE;
+ found = true;
break;
}
}
@@ -474,8 +560,12 @@ void e2ap_update_ran_function_mapping(packet_info *pinfo, proto_tree *tree, tvbu
/* Copy OID into table entry (so may be used to choose and be compared with chosen available dissector */
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
+ /* Make sure we have private and table data to compare */
+ if (!e2ap_data || !table) {
+ return;
+ }
ran_function_t ran_function = MAX_RANFUNCTIONS;
- for (guint n=0; n < table->num_entries; n++) {
+ for (unsigned n=0; n < table->num_entries; n++) {
if (e2ap_data->ran_function_id == table->entries[n].ran_function_id) {
ran_function = table->entries[n].ran_function;
g_strlcpy(table->entries[n].oid, oid, MAX_OID_LEN);
@@ -519,10 +609,10 @@ static void update_conversation_from_gnb_id(asn1_ctx_t *actx)
conversation_add_proto_data(p_conv, proto_e2ap, p_conv_data);
/* Look to see if we already know about the mappings in effect on this gNB */
- guint id_len = e2ap_data->gnb_id_len;
- guint8 *id_value = &e2ap_data->gnb_id_bytes[0];
+ unsigned id_len = e2ap_data->gnb_id_len;
+ uint8_t *id_value = &e2ap_data->gnb_id_bytes[0];
- for (guint n=0; n<s_gnb_ran_functions_table.num_gnbs; n++) {
+ for (unsigned n=0; n<s_gnb_ran_functions_table.num_gnbs; n++) {
if ((s_gnb_ran_functions_table.gnb[n].id_len = id_len) &&
(memcmp(s_gnb_ran_functions_table.gnb[n].id_value, id_value, id_len) == 0)) {
@@ -538,6 +628,14 @@ static void update_conversation_from_gnb_id(asn1_ctx_t *actx)
}
}
+static dissector_handle_t json_handle;
+
+static int dissect_E2SM_NI_JSON_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ /* Send to JSON dissector */
+ return call_dissector_only(json_handle, tvb, pinfo, tree, NULL);
+}
+
/* Dissector tables */
static dissector_table_t e2ap_ies_dissector_table;
@@ -567,15 +665,8 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- e2ap_ctx_t e2ap_ctx;
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
-
- e2ap_ctx.message_type = e2ap_data->message_type;
- e2ap_ctx.ProcedureCode = e2ap_data->procedure_code;
- e2ap_ctx.ProtocolIE_ID = e2ap_data->protocol_ie_id;
- e2ap_ctx.ProtocolExtensionID = e2ap_data->protocol_extension_id;
-
- return (dissector_try_uint_new(e2ap_ies_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &e2ap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e2ap_ies_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
@@ -601,39 +692,82 @@ static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, pro
{
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
- return (dissector_try_uint_new(e2ap_proc_imsg_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e2ap_proc_imsg_dissector_table, e2ap_data->procedure_code, 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)
{
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
- return (dissector_try_uint_new(e2ap_proc_sout_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e2ap_proc_sout_dissector_table, e2ap_data->procedure_code, 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)
{
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
- return (dissector_try_uint_new(e2ap_proc_uout_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(e2ap_proc_uout_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, true, data)) ? tvb_captured_length(tvb) : 0;
}
+static void set_stats_message_type(packet_info *pinfo, int type)
+{
+ struct e2ap_private_data* priv_data = e2ap_get_private_data(pinfo);
+ priv_data->stats_tap->e2ap_mtype = type;
+}
+
+static void
+e2ap_stats_tree_init(stats_tree *st)
+{
+ st_node_packets = stats_tree_create_node(st, st_str_packets, 0, STAT_DT_INT, true);
+ st_node_packet_types = stats_tree_create_pivot(st, st_str_packet_types, st_node_packets);
+}
+
+static tap_packet_status
+e2ap_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_,
+ epan_dissect_t* edt _U_ , const void* p, tap_flags_t flags _U_)
+{
+ const struct e2ap_tap_t *pi = (const struct e2ap_tap_t *)p;
+
+ tick_stat_node(st, st_str_packets, 0, false);
+ stats_tree_tick_pivot(st, st_node_packet_types,
+ val_to_str(pi->e2ap_mtype, mtype_names,
+ "Unknown packet type (%d)"));
+ return TAP_PACKET_REDRAW;
+}
+
+
+/* Main dissection function */
static int
dissect_e2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *e2ap_item = NULL;
proto_tree *e2ap_tree = NULL;
+ struct e2ap_tap_t *tap_info;
+
/* make entry in the Protocol column on summary display */
col_set_str(pinfo->cinfo, COL_PROTOCOL, "E2AP");
col_clear(pinfo->cinfo, COL_INFO);
+ tap_info = wmem_new(pinfo->pool, struct e2ap_tap_t);
+ tap_info->e2ap_mtype = 0; /* unknown/invalid */
+
+ /* Add stats tap to private struct */
+ struct e2ap_private_data *priv_data = e2ap_get_private_data(pinfo);
+ priv_data->stats_tap = tap_info;
+
+ /* Store top-level tree */
+ top_tree = e2ap_tree;
+
/* create the e2ap protocol tree */
e2ap_item = proto_tree_add_item(tree, proto_e2ap, tvb, 0, -1, ENC_NA);
e2ap_tree = proto_item_add_subtree(e2ap_item, ett_e2ap);
- return dissect_E2AP_PDU_PDU(tvb, pinfo, e2ap_tree, NULL);
+ dissect_E2AP_PDU_PDU(tvb, pinfo, e2ap_tree, NULL);
+
+ tap_queue_packet(e2ap_tap, pinfo, tap_info);
+ return tvb_captured_length(tvb);
}
@@ -656,11 +790,18 @@ proto_reg_handoff_e2ap(void)
/********************************/
/* Known OIDs for RAN providers */
+ /* N.B. These appear in the RAN Function ASN.1 definitions (except for CCC, which is based on JSON).
+ * There is a registry of known OIDs though in the E2SM specification
+ */
/* KPM */
oid_add_from_string("KPM v1", "1.3.6.1.4.1.53148.1.1.2.2");
oid_add_from_string("KPM v2", "1.3.6.1.4.1.53148.1.2.2.2");
oid_add_from_string("KPM v3", "1.2.6.1.4.1.53148.1.3.2.2");
+ oid_add_from_string("KPM v4", "1.2.6.1.4.1.53148.1.4.2.2");
+ oid_add_from_string("KPM v5", "1.2.6.1.4.1.53148.1.5.2.2");
+ oid_add_from_string("KPM v6", "1.2.6.1.4.1.53148.1.6.2.2");
+
/* RC */
// TODO: appears to be the same??? Asking for clarification from ORAN..
@@ -670,9 +811,24 @@ proto_reg_handoff_e2ap(void)
/* NI */
oid_add_from_string("NI v1", "1.3.6.1.4.1.53148.1.1.2.1");
+ oid_add_from_string("NI v2", "1.3.6.1.4.1.53148.1.2.2.1");
+ oid_add_from_string("NI v3", "1.3.6.1.4.1.53148.1.3.2.1");
+ oid_add_from_string("NI v4", "1.3.6.1.4.1.53148.1.4.2.1");
+ oid_add_from_string("NI v5", "1.3.6.1.4.1.53148.1.5.2.1");
+ oid_add_from_string("NI v6", "1.3.6.1.4.1.53148.1.6.2.1");
- /********************************/
- /* Register 'built-in' dissectors */
+
+ /* CCC */
+ oid_add_from_string("CCC v1", "1.3.6.1.4.1.53148.1.1.2.4");
+ oid_add_from_string("CCC v2", "1.3.6.1.4.1.53148.1.2.2.4");
+ oid_add_from_string("CCC v3", "1.3.6.1.4.1.53148.1.3.2.4");
+ oid_add_from_string("CCC v4", "1.3.6.1.4.1.53148.1.4.2.4");
+ oid_add_from_string("CCC v5", "1.3.6.1.4.1.53148.1.5.2.4");
+ oid_add_from_string("CCC v6", "1.3.6.1.4.1.53148.1.6.2.4");
+
+
+ /*********************************************************/
+ /* Register 'built-in' dissectors (i.e., from asn1/e2ap) */
static ran_function_dissector_t kpm_v3 =
{ "ORAN-E2SM-KPM", "1.2.6.1.4.1.53148.1.3.2.2", 3, 0,
@@ -701,9 +857,9 @@ proto_reg_handoff_e2ap(void)
dissect_E2SM_RC_ControlMessage_PDU,
dissect_E2SM_RC_ControlOutcome_PDU,
/* new for v3 */
- NULL, //dissect_E2SM_RC_QueryOutcome_PDU,
- NULL, //dissect_E2SM_RC_QueryDefinition_PDU,
- NULL, //dissect_E2SM_RC_QueryHeader_PDU,
+ NULL,
+ NULL,
+ NULL,
dissect_E2SM_RC_ActionDefinition_PDU,
dissect_E2SM_RC_IndicationMessage_PDU,
@@ -732,11 +888,127 @@ proto_reg_handoff_e2ap(void)
}
};
- /* Register available dissectors. TODO: break these out into separate
- * ASN.1 protocols that register themselves, or leave one of each here? */
+ static ran_function_dissector_t ccc_v1 =
+ { "{", /*"ORAN-E2SM-CCC",*/ "1.3.6.1.4.1.53148.1.1.2.4", 1, 0,
+ /* See table 5.1 */
+ { dissect_E2SM_NI_JSON_PDU,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ NULL,
+ NULL,
+ NULL,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU
+ }
+ };
+
+ static ran_function_dissector_t ccc_v2 =
+ { "{", /*"ORAN-E2SM-CCC",*/ "1.3.6.1.4.1.53148.1.2.2.4", 2, 0,
+ /* See table 5.1 */
+ { dissect_E2SM_NI_JSON_PDU,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ NULL,
+ NULL,
+ NULL,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU
+ }
+ };
+
+ static ran_function_dissector_t ccc_v3 =
+ { "{", /*"ORAN-E2SM-CCC",*/ "1.3.6.1.4.1.53148.1.3.2.4", 3, 0,
+ /* See table 5.1 */
+ { dissect_E2SM_NI_JSON_PDU,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ NULL,
+ NULL,
+ NULL,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU
+ }
+ };
+
+ static ran_function_dissector_t ccc_v4 =
+ { "{", /*"ORAN-E2SM-CCC",*/ "1.3.6.1.4.1.53148.1.4.2.4", 4, 0,
+ /* See table 5.1 */
+ { dissect_E2SM_NI_JSON_PDU,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ NULL,
+ NULL,
+ NULL,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU
+ }
+ };
+
+ static ran_function_dissector_t ccc_v5 =
+ { "{", /*"ORAN-E2SM-CCC",*/ "1.3.6.1.4.1.53148.1.5.2.4", 5, 0,
+ /* See table 5.1 */
+ { dissect_E2SM_NI_JSON_PDU,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ NULL,
+ NULL,
+ NULL,
+
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU,
+ dissect_E2SM_NI_JSON_PDU
+ }
+ };
+
+
+ /* Register available dissectors.
+ * Registering one version of each RAN Function here - others will need to be
+ * registered in sepparate dissectors (e.g. kpm_v2) */
register_e2ap_ran_function_dissector(KPM_RANFUNCTIONS, &kpm_v3);
register_e2ap_ran_function_dissector(RC_RANFUNCTIONS, &rc_v1);
register_e2ap_ran_function_dissector(NI_RANFUNCTIONS, &ni_v1);
+
+ register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS, &ccc_v1);
+ register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS, &ccc_v2);
+ register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS, &ccc_v3);
+ register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS, &ccc_v4);
+ register_e2ap_ran_function_dissector(CCC_RANFUNCTIONS, &ccc_v5);
+
+
+ /* Cache JSON dissector */
+ json_handle = find_dissector("json");
+
+ stats_tree_register("e2ap", "e2ap", "E2AP", 0,
+ e2ap_stats_tree_packet, e2ap_stats_tree_init, NULL);
+
}
@@ -777,7 +1049,7 @@ void proto_register_e2ap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_e2ap,
#include "packet-e2ap-ettarr.c"
};
@@ -817,6 +1089,8 @@ void proto_register_e2ap(void) {
e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, STRING_CASE_SENSITIVE);
register_init_routine(&e2ap_init_protocol);
+
+ e2ap_tap = register_tap("e2ap");
}
/*
diff --git a/epan/dissectors/asn1/ess/ess.cnf b/epan/dissectors/asn1/ess/ess.cnf
index 85d040da..e9eb3a42 100644
--- a/epan/dissectors/asn1/ess/ess.cnf
+++ b/epan/dissectors/asn1/ess/ess.cnf
@@ -64,7 +64,7 @@ FreeFormField/bitSetAttributes informativeAttributeFlags
VAL_PTR = &attribute
#.FN_BODY SecurityAttribute
- guint32 attribute;
+ uint32_t attribute;
%(DEFAULT_BODY)s
ess_dissect_attribute (attribute, actx);
diff --git a/epan/dissectors/asn1/ess/packet-ess-template.c b/epan/dissectors/asn1/ess/packet-ess-template.c
index c8d579f9..55d95acc 100644
--- a/epan/dissectors/asn1/ess/packet-ess-template.c
+++ b/epan/dissectors/asn1/ess/packet-ess-template.c
@@ -17,6 +17,7 @@
#include <epan/asn1.h>
#include <epan/prefs.h>
#include <epan/uat.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-ess.h"
@@ -33,19 +34,19 @@ void proto_reg_handoff_ess(void);
typedef struct _ess_category_attributes_t {
char *oid;
- guint lacv;
+ unsigned lacv;
char *name;
} ess_category_attributes_t;
static ess_category_attributes_t *ess_category_attributes;
-static guint num_ess_category_attributes;
+static unsigned 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 int proto_ess;
+static int hf_ess_SecurityCategory_type_OID;
+static int hf_ess_Category_attribute;
-static gint ett_Category_attributes = -1;
+static int ett_Category_attributes;
#include "packet-ess-hf.c"
@@ -83,9 +84,9 @@ ess_free_cb(void *r)
}
static void
-ess_dissect_attribute (guint32 value, asn1_ctx_t *actx)
+ess_dissect_attribute (uint32_t value, asn1_ctx_t *actx)
{
- guint i;
+ unsigned i;
for (i = 0; i < num_ess_category_attributes; i++) {
ess_category_attributes_t *u = &(ess_category_attributes[i]);
@@ -103,11 +104,11 @@ static void
ess_dissect_attribute_flags (tvbuff_t *tvb, asn1_ctx_t *actx)
{
proto_tree *tree;
- guint8 *value;
- guint i;
+ uint8_t *value;
+ unsigned i;
tree = proto_item_add_subtree (actx->created_item, ett_Category_attributes);
- value = (guint8 *)tvb_memdup (actx->pinfo->pool, tvb, 0, tvb_captured_length (tvb));
+ value = (uint8_t *)tvb_memdup (actx->pinfo->pool, tvb, 0, tvb_captured_length (tvb));
for (i = 0; i < num_ess_category_attributes; i++) {
ess_category_attributes_t *u = &(ess_category_attributes[i]);
@@ -140,7 +141,7 @@ void proto_register_ess(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_Category_attributes,
#include "packet-ess-ettarr.c"
};
@@ -155,7 +156,7 @@ void proto_register_ess(void) {
uat_t *attributes_uat = uat_new("ESS Category Attributes",
sizeof(ess_category_attributes_t),
"ess_category_attributes",
- TRUE,
+ true,
&ess_category_attributes,
&num_ess_category_attributes,
UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
diff --git a/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
index ddd5bc25..b930e3a5 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.5.0 (2023-06)
+-- 3GPP TS 38.473 V18.2.0 (2024-06)
-- 9.4.6 Common Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/f1ap/F1AP-Constants.asn b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
index f3ca5df0..388193b2 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.5.0 (2023-06)
+-- 3GPP TS 38.473 V18.2.0 (2024-06)
-- 9.4.7 Constant Definitions
-- **************************************************************
--
@@ -42,7 +42,7 @@ id-UEContextSetup ProcedureCode ::= 5
id-UEContextRelease ProcedureCode ::= 6
id-UEContextModification ProcedureCode ::= 7
id-UEContextModificationRequired ProcedureCode ::= 8
-id-UEMobilityCommand ProcedureCode ::= 9
+id-procedure-code-9-not-to-be-used ProcedureCode ::= 9
id-UEContextReleaseRequest ProcedureCode ::= 10
id-InitialULRRCMessageTransfer ProcedureCode ::= 11
id-DLRRCMessageTransfer ProcedureCode ::= 12
@@ -73,7 +73,7 @@ id-resourceStatusReportingInitiation ProcedureCode ::= 36
id-resourceStatusReporting ProcedureCode ::= 37
id-accessAndMobilityIndication ProcedureCode ::= 38
id-accessSuccess ProcedureCode ::= 39
-id-cellTrafficTrace ProcedureCode ::= 40
+id-cellTrafficTrace ProcedureCode ::= 40
id-PositioningMeasurementExchange ProcedureCode ::= 41
id-PositioningAssistanceInformationControl ProcedureCode ::= 42
id-PositioningAssistanceInformationFeedback ProcedureCode ::= 43
@@ -105,9 +105,9 @@ id-MulticastDistributionSetup ProcedureCode ::= 68
id-MulticastDistributionRelease ProcedureCode ::= 69
id-PDCMeasurementInitiation ProcedureCode ::= 70
id-PDCMeasurementReport ProcedureCode ::= 71
-id-PDCMeasurementInitiationRequest ProcedureCode ::= 72
-id-PDCMeasurementInitiationResponse ProcedureCode ::= 73
-id-PDCMeasurementInitiationFailure ProcedureCode ::= 74
+id-procedure-code-72-not-to-be-used ProcedureCode ::= 72
+id-procedure-code-73-not-to-be-used ProcedureCode ::= 73
+id-procedure-code-74-not-to-be-used ProcedureCode ::= 74
id-pRSConfigurationExchange ProcedureCode ::= 75
id-measurementPreconfiguration ProcedureCode ::= 76
id-measurementActivation ProcedureCode ::= 77
@@ -115,6 +115,22 @@ id-QoEInformationTransfer ProcedureCode ::= 78
id-PDCMeasurementTerminationCommand ProcedureCode ::= 79
id-PDCMeasurementFailureIndication ProcedureCode ::= 80
id-PosSystemInformationDeliveryCommand ProcedureCode ::= 81
+id-DUCUCellSwitchNotification ProcedureCode ::= 82
+id-CUDUCellSwitchNotification ProcedureCode ::= 83
+id-DUCUTAInformationTransfer ProcedureCode ::= 84
+id-CUDUTAInformationTransfer ProcedureCode ::= 85
+id-QoEInformationTransferControl ProcedureCode ::= 86
+id-RachIndication ProcedureCode ::= 87
+id-TimingSynchronisationStatus ProcedureCode ::= 88
+id-TimingSynchronisationStatusReport ProcedureCode ::= 89
+id-MIABF1SetupTriggering ProcedureCode ::= 90
+id-MIABF1SetupOutcomeNotification ProcedureCode ::= 91
+id-MulticastContextNotification ProcedureCode ::= 92
+id-MulticastCommonConfiguration ProcedureCode ::= 93
+id-BroadcastTransportResourceRequest ProcedureCode ::= 94
+id-DUCUAccessAndMobilityIndication ProcedureCode ::= 95
+id-SRSInformationReservationNotification ProcedureCode ::= 96
+
@@ -170,6 +186,7 @@ maxnoofServingCells INTEGER ::= 32
maxnoofDUFSlots INTEGER ::= 320
maxnoofHSNASlots INTEGER ::= 5120
maxnoofServedCellsIAB INTEGER ::= 512
+maxnoofSSBarea INTEGER ::=64
maxnoofChildIABNodes INTEGER ::= 1024
maxnoofNonUPTrafficMappings INTEGER ::= 32
maxnoofTLAsIAB INTEGER ::= 1024
@@ -185,7 +202,7 @@ maxnoofSSBAreas INTEGER ::= 64
maxnoofPhysicalResourceBlocks INTEGER ::= 275
maxnoofPhysicalResourceBlocks-1 INTEGER ::= 274
maxnoofPRACHconfigs INTEGER ::= 16
-maxnoofRACHReports INTEGER ::= 64
+maxnoofRAReports INTEGER ::= 64
maxnoofRLFReports INTEGER ::= 64
maxnoofAdditionalPDCPDuplicationTNL INTEGER ::= 2
maxnoofRLCDuplicationState INTEGER ::= 3
@@ -258,6 +275,29 @@ maxnoofSDTBearers INTEGER ::= 72
maxnoofServingCellMOs INTEGER ::= 16
maxNrofBWPs INTEGER ::= 8
maxnoofPosSITypes INTEGER ::= 32
+maxnoofUETypes INTEGER ::= 8
+maxnoofLTMCells INTEGER ::= 8
+maxnoofTAList INTEGER ::= 8
+maxnoofLTMgNB-DUs INTEGER ::= 8
+maxnoofUEsInQMCTransferControlMessage INTEGER ::= 512
+maxnoofUEsforRAReportIndications INTEGER ::= 64
+maxnoofSuccessfulPSCellChangeReports INTEGER ::= 64
+maxnoofPeriodicities INTEGER ::= 8
+maxnoofThresholdMBS-1 INTEGER ::= 7
+maxMBSSessionsinSessionInfoList INTEGER ::= 1024
+maxnoofLBTFailureInformation INTEGER ::= 64
+maxnoofRSPPQoSFlows INTEGER ::= 2048
+maxnoVACell INTEGER ::= 32
+maxnoAggregatedSRS-Resources INTEGER ::= 3
+maxnoAggregatedPosSRSResourceSets INTEGER ::= 48
+maxnoAggregatedPosPRSResourceSets INTEGER ::= 3
+maxnoofTimeWindowSRS INTEGER ::= 16
+maxnoofTimeWindowMea INTEGER ::= 16
+maxnoPreconfiguredSRS INTEGER ::= 16
+maxnoHopsMinusOne INTEGER ::= 5
+maxnoAggCombinations INTEGER ::= 2
+
+
@@ -314,7 +354,7 @@ id-gNB-DU-ID ProtocolIE-ID ::= 42
id-GNB-DU-Served-Cells-Item ProtocolIE-ID ::= 43
id-gNB-DU-Served-Cells-List ProtocolIE-ID ::= 44
id-gNB-DU-Name ProtocolIE-ID ::= 45
-id-NRCellID ProtocolIE-ID ::= 46
+id-ProtocolIE-ID-46-not-to-be-used ProtocolIE-ID ::= 46
id-oldgNB-DU-UE-F1AP-ID ProtocolIE-ID ::= 47
id-ResetType ProtocolIE-ID ::= 48
id-ResourceCoordinationTransferContainer ProtocolIE-ID ::= 49
@@ -408,7 +448,7 @@ id-GNB-CU-TNL-Association-Failed-To-Setup-List ProtocolIE-ID ::= 134
id-GNB-CU-TNL-Association-Failed-To-Setup-Item ProtocolIE-ID ::= 135
id-DRB-Notify-Item ProtocolIE-ID ::= 136
id-DRB-Notify-List ProtocolIE-ID ::= 137
-id-NotficationControl ProtocolIE-ID ::= 138
+id-ProtocolIE-ID-138-not-to-be-used ProtocolIE-ID ::= 138
id-RANAC ProtocolIE-ID ::= 139
id-PWSSystemInformation ProtocolIE-ID ::= 140
id-RepetitionPeriod ProtocolIE-ID ::= 141
@@ -423,8 +463,8 @@ id-Broadcast-To-Be-Cancelled-List ProtocolIE-ID ::= 148
id-Broadcast-To-Be-Cancelled-Item ProtocolIE-ID ::= 149
id-Cells-Broadcast-Cancelled-List ProtocolIE-ID ::= 150
id-Cells-Broadcast-Cancelled-Item ProtocolIE-ID ::= 151
-id-NR-CGI-List-For-Restart-List ProtocolIE-ID ::= 152
-id-NR-CGI-List-For-Restart-Item ProtocolIE-ID ::= 153
+id-NR-CGI-List-For-Restart-List ProtocolIE-ID ::= 152
+id-NR-CGI-List-For-Restart-Item ProtocolIE-ID ::= 153
id-PWS-Failed-NR-CGI-List ProtocolIE-ID ::= 154
id-PWS-Failed-NR-CGI-Item ProtocolIE-ID ::= 155
id-ConfirmedUEID ProtocolIE-ID ::= 156
@@ -520,8 +560,8 @@ id-TraceID ProtocolIE-ID ::= 243
id-Neighbour-Cell-Information-List ProtocolIE-ID ::= 244
-- WS extension
id-Unknown-245 ProtocolIE-ID ::= 245
-id-SymbolAllocInSlot ProtocolIE-ID ::= 246
-id-NumDLULSymbols ProtocolIE-ID ::= 247
+id-ProtocolIE-ID-246-not-to-be-used ProtocolIE-ID ::= 246
+id-ProtocolIE-ID-247-not-to-be-used ProtocolIE-ID ::= 247
id-AdditionalRRMPriorityIndex ProtocolIE-ID ::= 248
id-DUCURadioInformationType ProtocolIE-ID ::= 249
id-CUDURadioInformationType ProtocolIE-ID ::= 250
@@ -633,7 +673,7 @@ id-ULCarrierList ProtocolIE-ID ::= 355
id-FrequencyShift7p5khz ProtocolIE-ID ::= 356
id-SSB-PositionsInBurst ProtocolIE-ID ::= 357
id-NRPRACHConfig ProtocolIE-ID ::= 358
-id-RACHReportInformationList ProtocolIE-ID ::= 359
+id-RAReportList ProtocolIE-ID ::= 359
id-RLFReportInformationList ProtocolIE-ID ::= 360
id-TDD-UL-DLConfigCommonNR ProtocolIE-ID ::= 361
id-CNPacketDelayBudgetDownlink ProtocolIE-ID ::= 362
@@ -724,12 +764,12 @@ id-NR-U-Channel-List ProtocolIE-ID ::= 444
id-NR-U ProtocolIE-ID ::= 445
id-Coverage-Modification-Notification ProtocolIE-ID ::= 446
id-CCO-Assistance-Information ProtocolIE-ID ::= 447
-id-Neighbor-node-CCO-Assistance-Information-List ProtocolIE-ID ::= 448
+id-ProtocolIE-ID-448-not-to-be-used ProtocolIE-ID ::= 448
id-CellsForSON-List ProtocolIE-ID ::= 449
id-MIMOPRBusageInformation ProtocolIE-ID ::= 450
id-gNB-CU-MBS-F1AP-ID ProtocolIE-ID ::= 451
id-gNB-DU-MBS-F1AP-ID ProtocolIE-ID ::= 452
-id-MBS-Area-Session-ID ProtocolIE-ID ::= 453
+id-ProtocolIE-ID-453-not-to-be-used ProtocolIE-ID ::= 453
id-MBS-CUtoDURRCInformation ProtocolIE-ID ::= 454
id-MBS-Session-ID ProtocolIE-ID ::= 455
id-SNSSAI ProtocolIE-ID ::= 456
@@ -854,7 +894,7 @@ id-Unknown-572 ProtocolIE-ID ::= 572
id-MeasurementTimeOccasion ProtocolIE-ID ::= 573
id-MeasurementCharacteristicsRequestIndicator ProtocolIE-ID ::= 574
id-UEReportingInformation ProtocolIE-ID ::= 575
-id-PosConextRevIndication ProtocolIE-ID ::= 576
+id-PosContextRevIndication ProtocolIE-ID ::= 576
id-TRPBeamAntennaInformation ProtocolIE-ID ::= 577
id-NRRedCapUEIndication ProtocolIE-ID ::= 578
id-Redcap-Bcast-Information ProtocolIE-ID ::= 579
@@ -946,9 +986,9 @@ id-PEISubgroupingSupportIndication ProtocolIE-ID ::= 664
id-NeedForGapsInfoNR ProtocolIE-ID ::= 665
id-NeedForGapNCSGInfoNR ProtocolIE-ID ::= 666
id-NeedForGapNCSGInfoEUTRA ProtocolIE-ID ::= 667
-id-procedure-code-668-not-to-be-used ProtocolIE-ID ::= 668
-id-procedure-code-669-not-to-be-used ProtocolIE-ID ::= 669
-id-procedure-code-670-not-to-be-used ProtocolIE-ID ::= 670
+id-ProtocolIE-ID-668-not-to-be-used ProtocolIE-ID ::= 668
+id-ProtocolIE-ID-669-not-to-be-used ProtocolIE-ID ::= 669
+id-ProtocolIE-ID-670-not-to-be-used ProtocolIE-ID ::= 670
id-Source-MRB-ID ProtocolIE-ID ::= 671
id-PosMeasurementPeriodicityNR-AoA ProtocolIE-ID ::= 672
id-RedCapIndication ProtocolIE-ID ::= 673
@@ -985,5 +1025,149 @@ id-repetitionFactorExtended ProtocolIE-ID ::= 703
id-startRBHopping ProtocolIE-ID ::= 704
id-startRBIndex ProtocolIE-ID ::= 705
id-transmissionCombn8 ProtocolIE-ID ::= 706
+id-ServCellInfoList ProtocolIE-ID ::= 707
+id-DedicatedSIDeliveryIndication ProtocolIE-ID ::= 708
+id-Configured-BWP-List ProtocolIE-ID ::= 709
+id-Preconfigured-measurement-GAP-Request ProtocolIE-ID ::= 710
+id-BWP-Id ProtocolIE-ID ::= 711
+id-NetworkControlledRepeaterAuthorized ProtocolIE-ID ::= 712
+id-MT-SDT-Information ProtocolIE-ID ::= 713
+id-ExtendedResourceSymbolOffset ProtocolIE-ID ::= 714
+id-NeedForInterruptionInfoNR ProtocolIE-ID ::= 715
+id-SDT-Volume-Threshold ProtocolIE-ID ::= 716
+id-SupportedUETypeList ProtocolIE-ID ::= 717
+id-MusimCapabilityRestrictionIndication ProtocolIE-ID ::= 718
+id-duplicationIndication ProtocolIE-ID ::= 719
+id-LTMInformation-Setup ProtocolIE-ID ::= 720
+id-LTMConfigurationIDMappingList ProtocolIE-ID ::= 721
+id-LTMInformation-Modify ProtocolIE-ID ::= 722
+id-LTMCells-ToBeReleased-List ProtocolIE-ID ::= 723
+id-ProtocolIE-ID-724-not-to-be-used ProtocolIE-ID ::= 724
+id-LTMConfiguration ProtocolIE-ID ::= 725
+id-EarlySyncInformation-Request ProtocolIE-ID ::= 726
+id-EarlySyncInformation ProtocolIE-ID ::= 727
+id-EarlySyncCandidateCellInformation-List ProtocolIE-ID ::= 728
+id-LTMCellSwitchInformation ProtocolIE-ID ::= 729
+id-DUtoCUTAInformation-List ProtocolIE-ID ::= 730
+id-ProtocolIE-ID-731-not-to-be-used ProtocolIE-ID ::= 731
+id-dRB-List ProtocolIE-ID ::= 732
+id-DeactivationIndication ProtocolIE-ID ::= 733
+id-RAReportIndicationList ProtocolIE-ID ::= 734
+id-ChannelOccupancyTimePercentageUL ProtocolIE-ID ::= 735
+id-SuccessfulPSCellChangeReportInformationList ProtocolIE-ID ::= 736
+id-RadioResourceStatusNR-U ProtocolIE-ID ::= 737
+id-FiveG-ProSeLayer2Multipath ProtocolIE-ID ::= 738
+id-FiveG-ProSeLayer2UEtoUERelay ProtocolIE-ID ::= 739
+id-FiveG-ProSeLayer2UEtoUERemote ProtocolIE-ID ::= 740
+id-PathAdditionInformation ProtocolIE-ID ::= 741
+id-Recommended-SSBs-List ProtocolIE-ID ::= 742
+id-Recommended-SSBs-for-Paging-List ProtocolIE-ID ::= 743
+id-SSBs-withinTheCell-tobe-Activated-List ProtocolIE-ID ::= 744
+id-Cells-With-SSBs-Activated-List ProtocolIE-ID ::= 745
+id-Cells-Allowed-to-be-Deactivated-List ProtocolIE-ID ::= 746
+id-Cells-Allowed-to-be-Deactivated-List-Item ProtocolIE-ID ::= 747
+id-Coverage-Modification-Cause ProtocolIE-ID ::= 748
+id-RANTSSRequestType ProtocolIE-ID ::= 749
+id-RANTimingSynchronisationStatusInfo ProtocolIE-ID ::= 750
+id-TSCTrafficCharacteristicsFeedback ProtocolIE-ID ::= 751
+id-RANfeedbacktype ProtocolIE-ID ::= 752
+id-Mobile-TRP-LocationInformation ProtocolIE-ID ::= 753
+id-Mobile-IAB-MT-UE-ID ProtocolIE-ID ::= 754
+id-Target-gNB-ID ProtocolIE-ID ::= 755
+id-Target-gNB-IP-address ProtocolIE-ID ::= 756
+id-Target-SeGW-IP-address ProtocolIE-ID ::= 757
+id-Activated-Cells-Mapping-List ProtocolIE-ID ::= 758
+id-Activated-Cells-Mapping-List-Item ProtocolIE-ID ::= 759
+id-F1SetupOutcome ProtocolIE-ID ::= 760
+id-RRC-Terminating-IAB-Donor-Related-Info ProtocolIE-ID ::= 761
+id-RRC-Terminating-IAB-Donor-gNB-ID ProtocolIE-ID ::= 762
+id-NCGI-to-be-Updated-List ProtocolIE-ID ::= 763
+id-NCGI-to-be-Updated-List-Item ProtocolIE-ID ::= 764
+id-Mobile-IAB-MTUserLocationInformation ProtocolIE-ID ::= 765
+id-MobileAccessPointLocation ProtocolIE-ID ::= 766
+id-AssociatedSessionID ProtocolIE-ID ::= 767
+id-IndicationMCInactiveReception ProtocolIE-ID ::= 768
+id-MulticastCU2DURRCInfo ProtocolIE-ID ::= 769
+id-MBSMulticastSessionReceptionState ProtocolIE-ID ::= 770
+id-F1UTunnelNotEstablished ProtocolIE-ID ::= 771
+id-MulticastDU2CURRCInfo ProtocolIE-ID ::= 772
+id-SIB24-message ProtocolIE-ID ::= 773
+id-MulticastCU2DUCommonRRCInfo ProtocolIE-ID ::= 774
+id-PDUSetQoSParameters ProtocolIE-ID ::= 775
+id-N6JitterInformation ProtocolIE-ID ::= 776
+id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID ::= 777
+id-ECNMarkingorCongestionInformationReportingStatus ProtocolIE-ID ::= 778
+id-NRA2XServicesAuthorized ProtocolIE-ID ::= 779
+id-LTEA2XServicesAuthorized ProtocolIE-ID ::= 780
+id-NRUESidelinkAggregateMaximumBitrateForA2X ProtocolIE-ID ::= 781
+id-LTEUESidelinkAggregateMaximumBitrateForA2X ProtocolIE-ID ::= 782
+id-NReRedCapUEIndication ProtocolIE-ID ::= 783
+id-ERedcap-Bcast-Information ProtocolIE-ID ::= 784
+id-NRPaginglongeDRXInformationforRRCINACTIVE ProtocolIE-ID ::= 785
+id-SCPAC-Request ProtocolIE-ID ::= 786
+id-Target-F1-Terminating-Donor-gNB-ID ProtocolIE-ID ::= 787
+id-MobileIAB-Barred ProtocolIE-ID ::= 788
+id-Broadcast-MRBs-Transport-Request-List ProtocolIE-ID ::= 789
+id-Broadcast-MRBs-Transport-Request-Item ProtocolIE-ID ::= 790
+id-S-CPACLowerLayerReferenceConfigRequest ProtocolIE-ID ::= 791
+id-S-CPAC-Configuration ProtocolIE-ID ::= 792
+id-MusimCandidateBandList ProtocolIE-ID ::= 793
+id-DLLBTFailureInformationRequest ProtocolIE-ID ::= 794
+id-DLLBTFailureInformationList ProtocolIE-ID ::= 795
+id-PSIbasedSDUdiscardUL ProtocolIE-ID ::= 796
+id-SIB22-message ProtocolIE-ID ::= 797
+id-CUtoDUTAInformation-List ProtocolIE-ID ::= 798
+id-U2URLCChannelQoS ProtocolIE-ID ::= 799
+id-SL-PHY-MAC-RLC-ConfigExt ProtocolIE-ID ::= 800
+id-SLPositioning-Ranging-Service-Info ProtocolIE-ID ::= 801
+id-TimeWindowInformation-SRS-List ProtocolIE-ID ::= 802
+id-TimeWindowInformation-Measurement-List ProtocolIE-ID ::= 803
+id-UL-RSCP ProtocolIE-ID ::= 804
+id-BW-Aggregation-Request-Indication ProtocolIE-ID ::= 805
+id-ReportingGranularitykminus1 ProtocolIE-ID ::= 806
+id-ReportingGranularitykminus2 ProtocolIE-ID ::= 807
+id-ReportingGranularitykminus1additionalpath ProtocolIE-ID ::= 808
+id-ReportingGranularitykminus2additionalpath ProtocolIE-ID ::= 809
+id-TimingReportingGranularityFactorExtended ProtocolIE-ID ::= 810
+id-SRSPosRRCInactiveValidityAreaConfig ProtocolIE-ID ::= 811
+id-PosValidityAreaCellList ProtocolIE-ID ::= 812
+id-SRSReservationType ProtocolIE-ID ::= 813
+id-SymbolIndex ProtocolIE-ID ::= 814
+id-PRSBandwidthAggregationRequestIndication ProtocolIE-ID ::= 815
+id-AggregatedPosSRSResourceIDList ProtocolIE-ID ::= 816
+id-AggregatedPRSResourceSetList ProtocolIE-ID ::= 817
+id-PhaseQuality ProtocolIE-ID ::= 818
+id-MeasuredFrequencyHops ProtocolIE-ID ::= 819
+id-TxHoppingConfiguration ProtocolIE-ID ::= 820
+id-ReportingGranularitykminus3 ProtocolIE-ID ::= 821
+id-ReportingGranularitykminus4 ProtocolIE-ID ::= 822
+id-ReportingGranularitykminus5 ProtocolIE-ID ::= 823
+id-ReportingGranularitykminus6 ProtocolIE-ID ::= 824
+id-ReportingGranularitykminus3additionalpath ProtocolIE-ID ::= 825
+id-ReportingGranularitykminus4additionalpath ProtocolIE-ID ::= 826
+id-ReportingGranularitykminus5additionalpath ProtocolIE-ID ::= 827
+id-ReportingGranularitykminus6additionalpath ProtocolIE-ID ::= 828
+id-AggregatedPosSRSResourceSetList ProtocolIE-ID ::= 829
+id-RequestedSRSPreconfigurationCharacteristics-List ProtocolIE-ID ::= 830
+id-SRSPreconfiguration-List ProtocolIE-ID ::= 831
+id-SRSInformation ProtocolIE-ID ::= 832
+id-ValidityAreaSpecificSRSInformation ProtocolIE-ID ::= 833
+id-E-CID-MeasuredResultsAssociatedInfoList ProtocolIE-ID ::= 834
+id-XR-Bcast-Information ProtocolIE-ID ::= 835
+id-MaxDataBurstVolume ProtocolIE-ID ::= 836
+id-TAInformation-List ProtocolIE-ID ::= 837
+id-NonIntegerDRXCycle ProtocolIE-ID ::= 838
+id-PointA ProtocolIE-ID ::= 839
+id-SCS-SpecificCarrier ProtocolIE-ID ::= 840
+id-NR-PCI ProtocolIE-ID ::= 841
+id-PeerUE-ID ProtocolIE-ID ::= 842
+id-EarlySyncServingCellInformation ProtocolIE-ID ::= 843
+id-RANSharingAssistanceInformation ProtocolIE-ID ::= 844
+id-LTMCFRAResourceConfig-List ProtocolIE-ID ::= 845
+id-F1U-PathFailure ProtocolIE-ID ::= 846
+id-MeasBasedOnAggregatedResources ProtocolIE-ID ::= 847
+id-SIB23-message ProtocolIE-ID ::= 848
+
+
END
diff --git a/epan/dissectors/asn1/f1ap/F1AP-Containers.asn b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
index 31e149d6..315b1549 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.5.0 (2023-06)
+-- 3GPP TS 38.473 V18.2.0 (2024-06)
-- 9.4.8 Container Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/f1ap/F1AP-IEs.asn b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
index 292b06bf..b0a51f39 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.5.0 (2023-06)
+-- 3GPP TS 38.473 V18.2.0 (2024-06)
-- 9.4.5 Information Element Definitions
-- **************************************************************
--
@@ -20,6 +20,7 @@ IMPORTS
id-TAISliceSupportList,
id-RANAC,
id-BearerTypeChange,
+ id-Coverage-Modification-Cause,
id-Cell-Direction,
id-Cell-Type,
id-CellGroupConfig,
@@ -167,6 +168,8 @@ IMPORTS
id-SRBMappingInfo,
id-DRBMappingInfo,
id-LastUsedCellIndication,
+ id-Recommended-SSBs-List,
+ id-SSBs-withinTheCell-tobe-Activated-List,
id-SIB17-message,
id-MUSIM-GapConfig,
id-SIB20-message,
@@ -202,6 +205,73 @@ IMPORTS
id-startRBHopping,
id-startRBIndex,
id-transmissionCombn8,
+ id-ServCellInfoList,
+ id-Preconfigured-measurement-GAP-Request,
+ id-BWP-Id,
+ id-ExtendedResourceSymbolOffset,
+ id-MusimCapabilityRestrictionIndication,
+ id-duplicationIndication,
+ id-dRB-List,
+ id-ChannelOccupancyTimePercentageUL,
+ id-RadioResourceStatusNR-U,
+ id-FiveG-ProSeLayer2Multipath,
+ id-FiveG-ProSeLayer2UEtoUERelay,
+ id-FiveG-ProSeLayer2UEtoUERemote,
+ id-TSCTrafficCharacteristicsFeedback,
+ id-RANfeedbacktype,
+ id-Mobile-TRP-LocationInformation,
+ id-Mobile-IAB-MT-UE-ID,
+ id-MobileAccessPointLocation,
+ id-SIB24-message,
+ id-PDUSetQoSParameters,
+ id-N6JitterInformation,
+ id-ECNMarkingorCongestionInformationReportingRequest,
+ id-ECNMarkingorCongestionInformationReportingStatus,
+ id-ERedcap-Bcast-Information,
+ id-NeedForInterruptionInfoNR,
+ id-SCPAC-Request,
+ id-MobileIAB-Barred,
+ id-F1UTunnelNotEstablished,
+ id-S-CPACLowerLayerReferenceConfigRequest,
+ id-MusimCandidateBandList,
+ id-PSIbasedSDUdiscardUL,
+ id-SIB22-message,
+ id-U2URLCChannelQoS,
+ id-SL-PHY-MAC-RLC-ConfigExt,
+ id-UL-RSCP,
+ id-BW-Aggregation-Request-Indication,
+ id-ReportingGranularitykminus1,
+ id-ReportingGranularitykminus1additionalpath,
+ id-ReportingGranularitykminus2,
+ id-ReportingGranularitykminus2additionalpath,
+ id-ReportingGranularitykminus3,
+ id-ReportingGranularitykminus3additionalpath,
+ id-ReportingGranularitykminus4,
+ id-ReportingGranularitykminus4additionalpath,
+ id-ReportingGranularitykminus5,
+ id-ReportingGranularitykminus5additionalpath,
+ id-ReportingGranularitykminus6,
+ id-ReportingGranularitykminus6additionalpath,
+ id-TimingReportingGranularityFactorExtended,
+ id-PosValidityAreaCellList,
+ id-SymbolIndex,
+ id-AggregatedPosSRSResourceIDList,
+ id-PhaseQuality,
+ id-PRSBandwidthAggregationRequestIndication,
+ id-AggregatedPRSResourceSetList,
+ id-MeasuredFrequencyHops,
+ id-TxHoppingConfiguration,
+ id-AggregatedPosSRSResourceSetList,
+ id-ValidityAreaSpecificSRSInformation,
+ id-PeerUE-ID,
+ id-MeasBasedOnAggregatedResources,
+ id-SIB23-message,
+ id-PointA,
+ id-SCS-SpecificCarrier,
+ id-NR-PCI,
+ id-E-CID-MeasuredResultsAssociatedInfoList,
+ id-XR-Bcast-Information,
+ id-MaxDataBurstVolume,
maxNRARFCN,
maxnoofErrors,
maxnoofBPLMNs,
@@ -227,7 +297,6 @@ IMPORTS
maxnoofServedCellsIAB,
maxnoofChildIABNodes,
maxnoofIABSTCInfo,
- maxnoofSymbols,
maxnoofDUFSlots,
maxnoofHSNASlots,
maxnoofEgressLinks,
@@ -240,7 +309,7 @@ IMPORTS
maxnoofPhysicalResourceBlocks,
maxnoofPhysicalResourceBlocks-1,
maxnoofPRACHconfigs,
- maxnoofRACHReports,
+ maxnoofRAReports,
maxnoofRLFReports,
maxnoofAdditionalPDCPDuplicationTNL,
maxnoofRLCDuplicationState,
@@ -255,7 +324,6 @@ IMPORTS
maxnoofSpatialRelations,
maxnoBcastCell,
maxnoofTRPs,
- maxnoofAngleInfo,
maxnooflcs-gcs-translation,
maxnoofPath,
maxnoofMeasE-CID,
@@ -310,7 +378,32 @@ IMPORTS
maxnoofSDTBearers,
maxnoofPosSITypes,
maxnoofMRBs,
- maxNrofBWPs
+ maxNrofBWPs,
+ maxnoofUETypes,
+ maxnoofLTMCells,
+ maxnoofLTMgNB-DUs,
+ maxnoofTAList,
+ maxnoofDRBs,
+ maxnoofUEsInQMCTransferControlMessage,
+ maxnoofUEsforRAReportIndications,
+ maxnoofSuccessfulPSCellChangeReports,
+ maxnoofPeriodicities,
+ maxnoofThresholdMBS-1,
+ maxMBSSessionsinSessionInfoList,
+ maxnoofLBTFailureInformation,
+ maxnoofRSPPQoSFlows,
+ maxnoVACell,
+ maxnoAggregatedSRS-Resources,
+ maxnoAggregatedPosSRSResourceSets,
+ maxnoAggregatedPosPRSResourceSets,
+ maxnoofTimeWindowSRS,
+ maxnoofTimeWindowMea,
+ maxnoPreconfiguredSRS,
+ maxnoHopsMinusOne,
+ maxnoAggCombinations
+
+
+
FROM F1AP-Constants
@@ -359,6 +452,17 @@ AccessPointPosition-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+Activated-Cells-Mapping-List-Item ::= SEQUENCE {
+ nRCGIforTargetLogicalDU NRCGI,
+ nRCGIforSourceLogicalDU NRCGI,
+ iE-Extensions ProtocolExtensionContainer { { Activated-Cells-Mapping-List-ItemExtIEs } } OPTIONAL,
+ ...
+}
+
+Activated-Cells-Mapping-List-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
Activated-Cells-to-be-Updated-List ::= SEQUENCE (SIZE(1..maxnoofServedCellsIAB)) OF Activated-Cells-to-be-Updated-List-Item
Activated-Cells-to-be-Updated-List-Item ::= SEQUENCE{
@@ -474,6 +578,60 @@ AffectedSSB-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+AggregatedPosSRSResourceIDList ::= SEQUENCE (SIZE(2..maxnoAggregatedSRS-Resources)) OF Aggregated-PosSRS-Resource-ID-Item
+
+Aggregated-PosSRS-Resource-ID-Item ::= SEQUENCE {
+ positioningSRS SRSPosResourceID,
+ iE-Extensions ProtocolExtensionContainer { { Aggregated-PosSRS-Resource-ID-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Aggregated-PosSRS-Resource-ID-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-PointA CRITICALITY ignore EXTENSION PointA PRESENCE mandatory}|
+ { ID id-SCS-SpecificCarrier CRITICALITY ignore EXTENSION SCS-SpecificCarrier PRESENCE mandatory}|
+ { ID id-NR-PCI CRITICALITY ignore EXTENSION NRPCI PRESENCE optional},
+ ...
+}
+
+AggregatedPosSRSResourceSetList ::= SEQUENCE (SIZE(1..maxnoAggregatedPosSRSResourceSets)) OF AggregatedPosSRSResourceSet-Item
+
+AggregatedPosSRSResourceSet-Item ::= SEQUENCE {
+ pointA INTEGER (0..3279165),
+ nRPCI NRPCI OPTIONAL,
+ posSRSResourceSetID INTEGER(0..15),
+ iE-Extensions ProtocolExtensionContainer { { AggregatedPosSRSResourceSet-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AggregatedPosSRSResourceSet-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+AggregatedPRSResourceSetList ::= SEQUENCE (SIZE (1..maxnoAggCombinations)) OF AggregatedPRSResourceSet-Item
+
+AggregatedPRSResourceSet-Item ::= SEQUENCE {
+ dl-PRS-ResourceSet-List DL-PRS-ResourceSet-List,
+ iE-Extensions ProtocolExtensionContainer { { AggregatedPRSResourceSet-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AggregatedPRSResourceSet-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+DL-PRS-ResourceSet-List ::= SEQUENCE (SIZE (1..maxnoAggregatedPosPRSResourceSets)) OF DL-PRS-ResourceSet-Item
+
+DL-PRS-ResourceSet-Item ::= SEQUENCE {
+ dl-prs-ResourceSetIndex INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { { DL-PRS-ResourceSet-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-PRS-ResourceSet-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
AggressorCellList ::= SEQUENCE (SIZE(1..maxCellingNBDU)) OF AggressorCellList-Item
@@ -520,6 +678,7 @@ AlternativeQoSParaSetItem ::= SEQUENCE {
}
AlternativeQoSParaSetItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-MaxDataBurstVolume CRITICALITY ignore EXTENSION MaxDataBurstVolume PRESENCE optional },
...
}
@@ -549,6 +708,9 @@ Associated-SCell-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+AssociatedSessionID ::= OCTET STRING
+
+
AvailablePLMNList ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF AvailablePLMNList-Item
AvailablePLMNList-Item ::= SEQUENCE {
@@ -1094,6 +1256,35 @@ BufferSizeThresh ::= INTEGER(0..16777215)
BurstArrivalTime ::= OCTET STRING
+BW-Aggregation-Request-Indication ::= ENUMERATED {true, ...}
+
+
+BWP-Id ::= INTEGER (0..4)
+
+
+BurstArrivalTimeWindow ::= SEQUENCE {
+ burstArrivalTimeWindowStart INTEGER (0..640000, ...),
+ burstArrivalTimeWindowEnd INTEGER (0..640000, ...),
+ iE-Extension ProtocolExtensionContainer { {BurstArrivalTimeWindow-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BurstArrivalTimeWindow-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Broadcast-MRBs-Transport-Request-Item ::= SEQUENCE {
+ mRB-ID MRB-ID,
+ bcBearerCtxtF1U-TNLInfoatDU BCBearerContextF1U-TNLInfo,
+ iE-Extensions ProtocolExtensionContainer { {Broadcast-MRBs-Transport-Request-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Broadcast-MRBs-Transport-Request-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- C
CAGID ::= BIT STRING (SIZE(32))
@@ -1193,7 +1384,9 @@ CauseRadioNetwork ::= ENUMERATED {
unknown-or-already-allocated-gNB-DU-MBS-F1AP-ID,
unknown-or-inconsistent-pair-of-MBS-F1AP-ID,
unknown-or-inconsistent-MRB-ID,
- tat-sdt-expiry
+ tat-sdt-expiry,
+ lTM-command-triggered,
+ sSB-not-available
}
@@ -1319,10 +1512,33 @@ Cells-to-be-Activated-List-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-ExtendedAvailablePLMN-List CRITICALITY ignore EXTENSION ExtendedAvailablePLMN-List PRESENCE optional }|
{ ID id-IAB-Info-IAB-donor-CU CRITICALITY ignore EXTENSION IAB-Info-IAB-donor-CU PRESENCE optional}|
{ ID id-AvailableSNPN-ID-List CRITICALITY ignore EXTENSION AvailableSNPN-ID-List PRESENCE optional }|
- { ID id-MBS-Broadcast-NeighbourCellList CRITICALITY ignore EXTENSION MBS-Broadcast-NeighbourCellList PRESENCE optional },
+ { ID id-MBS-Broadcast-NeighbourCellList CRITICALITY ignore EXTENSION MBS-Broadcast-NeighbourCellList PRESENCE optional }|
+ { ID id-SSBs-withinTheCell-tobe-Activated-List CRITICALITY reject EXTENSION SSBs-toBeActivated-List PRESENCE optional },
+ ...
+}
+Cells-With-SSBs-Activated-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF Cells-With-SSBs-Activated-List-Item
+
+Cells-With-SSBs-Activated-List-Item::= SEQUENCE {
+ nRCGI NRCGI,
+ sSBs-activated-List SSBs-activated-List,
+ iE-Extensions ProtocolExtensionContainer { { Cells-With-SSBs-Activated-List-Item-ExtIEs} } OPTIONAL
+}
+
+Cells-With-SSBs-Activated-List-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+Cells-Allowed-to-be-Deactivated-List-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ iE-Extensions ProtocolExtensionContainer { { Cells-Allowed-to-be-Deactivated-List-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+Cells-Allowed-to-be-Deactivated-List-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
Cells-to-be-Deactivated-List-Item ::= SEQUENCE {
nRCGI NRCGI ,
iE-Extensions ProtocolExtensionContainer { { Cells-to-be-Deactivated-List-ItemExtIEs } } OPTIONAL,
@@ -1340,8 +1556,8 @@ Cells-to-be-Barred-Item::= SEQUENCE {
}
Cells-to-be-Barred-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
- { ID id-IAB-Barred CRITICALITY ignore EXTENSION IAB-Barred PRESENCE optional },
-
+ { ID id-IAB-Barred CRITICALITY ignore EXTENSION IAB-Barred PRESENCE optional }|
+ { ID id-MobileIAB-Barred CRITICALITY ignore EXTENSION MobileIAB-Barred PRESENCE optional },
...
}
@@ -1494,26 +1710,30 @@ CHO-Probability ::= INTEGER (1..100)
ConditionalInterDUMobilityInformation ::= SEQUENCE {
cho-trigger CHOtrigger-InterDU,
targetgNB-DUUEF1APID GNB-DU-UE-F1AP-ID OPTIONAL
- -- This IE shall be present if the cho-trigger IE is present and set to "cho-replace" --,
+ -- The above IE shall be present if the cho-trigger IE is present and set to "cho-replace" --,
iE-Extensions ProtocolExtensionContainer { { ConditionalInterDUMobilityInformation-ExtIEs} } OPTIONAL,
...
}
ConditionalInterDUMobilityInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::={
- { ID id-EstimatedArrivalProbability CRITICALITY ignore EXTENSION CHO-Probability PRESENCE optional },
+ { ID id-EstimatedArrivalProbability CRITICALITY ignore EXTENSION CHO-Probability PRESENCE optional }|
+ { ID id-SCPAC-Request CRITICALITY reject EXTENSION SCPAC-Request PRESENCE optional }|
+ { ID id-S-CPACLowerLayerReferenceConfigRequest CRITICALITY reject EXTENSION S-CPACLowerLayerReferenceConfigRequest PRESENCE optional },
...
}
ConditionalIntraDUMobilityInformation ::= SEQUENCE {
cho-trigger CHOtrigger-IntraDU,
targetCellsTocancel TargetCellList OPTIONAL,
- -- This IE may be present if the cho-trigger IE is present and set to "cho-cancel"
+ -- The above IE shall be present if the cho-trigger IE is present and set to "cho-cancel"
iE-Extensions ProtocolExtensionContainer { { ConditionalIntraDUMobilityInformation-ExtIEs} } OPTIONAL,
...
}
ConditionalIntraDUMobilityInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::={
- { ID id-EstimatedArrivalProbability CRITICALITY ignore EXTENSION CHO-Probability PRESENCE optional },
+ { ID id-EstimatedArrivalProbability CRITICALITY ignore EXTENSION CHO-Probability PRESENCE optional }|
+ { ID id-SCPAC-Request CRITICALITY reject EXTENSION SCPAC-Request PRESENCE optional }|
+ { ID id-S-CPACLowerLayerReferenceConfigRequest CRITICALITY reject EXTENSION S-CPACLowerLayerReferenceConfigRequest PRESENCE optional },
...
}
@@ -1524,6 +1744,19 @@ ConfiguredTACIndication ::= ENUMERATED {
...
}
+Configured-BWP-List ::= SEQUENCE (SIZE(1.. maxNrofBWPs)) OF Configured-BWP-Item
+
+Configured-BWP-Item ::= SEQUENCE {
+ bWP-Id BWP-Id,
+ bWP-Location-and-bandwidth INTEGER (0..37949),
+ iE-Extensions ProtocolExtensionContainer { { Configured-BWP-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+Configured-BWP-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
CoordinateID ::= INTEGER (0..511, ...)
@@ -1548,6 +1781,7 @@ Coverage-Modification-Item ::= SEQUENCE {
}
Coverage-Modification-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Coverage-Modification-Cause CRITICALITY ignore EXTENSION CCO-issue-detection PRESENCE optional },
...
}
@@ -1569,7 +1803,8 @@ CCO-Assistance-Information-ExtIEs F1AP-PROTOCOL-EXTENSION ::={
CCO-issue-detection ::= ENUMERATED {
coverage,
cell-edge-capacity,
- ...}
+ ...,
+ network-energy-saving}
CP-TransportLayerAddress ::= CHOICE {
@@ -1672,16 +1907,71 @@ CUtoDURRCInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-NeedForGapsInfoNR CRITICALITY ignore EXTENSION NeedForGapsInfoNR PRESENCE optional }|
{ ID id-NeedForGapNCSGInfoNR CRITICALITY ignore EXTENSION NeedForGapNCSGInfoNR PRESENCE optional }|
{ ID id-NeedForGapNCSGInfoEUTRA CRITICALITY ignore EXTENSION NeedForGapNCSGInfoEUTRA PRESENCE optional }|
- { ID id-ConfigRestrictInfoDAPS CRITICALITY ignore EXTENSION ConfigRestrictInfoDAPS PRESENCE optional },
+ { ID id-ConfigRestrictInfoDAPS CRITICALITY ignore EXTENSION ConfigRestrictInfoDAPS PRESENCE optional }|
+ { ID id-Preconfigured-measurement-GAP-Request CRITICALITY ignore EXTENSION Preconfigured-measurement-GAP-Request PRESENCE optional }|
+ { ID id-NeedForInterruptionInfoNR CRITICALITY ignore EXTENSION NeedForInterruptionInfoNR PRESENCE optional }|
+ { ID id-MusimCapabilityRestrictionIndication CRITICALITY ignore EXTENSION MusimCapabilityRestrictionIndication PRESENCE optional }|
+ { ID id-MusimCandidateBandList CRITICALITY ignore EXTENSION MusimCandidateBandList PRESENCE optional },
...
}
+CUtoDUTAInformation-List ::= SEQUENCE (SIZE(1.. maxnoofTAList)) OF CUtoDUTAInformation-Item
+
+CUtoDUTAInformation-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ tAValue TAValue,
+ preambleIndex PreambleIndex,
+ rA-RNTI RA-RNTI,
+ tagIDPointer TagIDPointer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CUtoDUTAInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CUtoDUTAInformation-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSIResourceConfiguration ::= SEQUENCE {
+ cSIResourceConfigToAddModList OCTET STRING OPTIONAL,
+ cSIResourceConfigToReleaseList OCTET STRING OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CSIResourceConfiguration-ExtIEs} } OPTIONAL
+}
+
+CSIResourceConfiguration-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
-- D
DAPS-HO-Status::= ENUMERATED{initiation,... }
DCBasedDuplicationConfigured::= ENUMERATED{true,..., false}
+DeactivationIndication ::= CHOICE {
+ perUE DeactivationIndicationList,
+ deactivateAll NULL,
+ choice-extension ProtocolIE-SingleContainer { { DeactivationIndication-ExtIEs} }
+}
+
+DeactivationIndication-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+DeactivationIndicationList ::= SEQUENCE (SIZE(1..maxnoofUEsInQMCTransferControlMessage)) OF DeactivationIndicationList-Item
+
+DeactivationIndicationList-Item ::= SEQUENCE {
+ gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID,
+ gNB-DU-UE-F1AP-ID GNB-DU-UE-F1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { { DeactivationIndicationList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DeactivationIndicationList-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
Dedicated-SIDelivery-NeededUE-Item ::= SEQUENCE {
gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID,
nRCGI NRCGI,
@@ -1693,6 +1983,7 @@ DedicatedSIDeliveryNeededUE-Item-ExtIEs F1AP-PROTOCOL-EXTENSION::={
...
}
+DedicatedSIDeliveryIndication::= ENUMERATED{true, ...}
DL-PRS ::= SEQUENCE {
prsid INTEGER (0..255),
@@ -1852,6 +2143,8 @@ DRB-Information ::= SEQUENCE {
}
DRB-Information-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ECNMarkingorCongestionInformationReportingRequest CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingRequest PRESENCE optional }|
+ { ID id-PSIbasedSDUdiscardUL CRITICALITY ignore EXTENSION PSIbasedSDUdiscardUL PRESENCE optional },
...
}
@@ -1866,7 +2159,9 @@ DRBs-Modified-Item ::= SEQUENCE {
DRBs-Modified-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional }|
{ ID id-AdditionalPDCPDuplicationTNL-List CRITICALITY ignore EXTENSION AdditionalPDCPDuplicationTNL-List PRESENCE optional }|
- { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetIndex PRESENCE optional },
+ { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetIndex PRESENCE optional }|
+ { ID id-TSCTrafficCharacteristicsFeedback CRITICALITY ignore EXTENSION TSCTrafficCharacteristicsFeedback PRESENCE optional }|
+ { ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional },
...
}
@@ -1890,7 +2185,8 @@ DRB-Notify-Item ::= SEQUENCE {
}
DRB-Notify-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
- { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetNotifyIndex PRESENCE optional },
+ { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetNotifyIndex PRESENCE optional }|
+ { ID id-TSCTrafficCharacteristicsFeedback CRITICALITY ignore EXTENSION TSCTrafficCharacteristicsFeedback PRESENCE optional },
...
}
@@ -1927,7 +2223,9 @@ DRBs-Setup-Item ::= SEQUENCE {
DRBs-Setup-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-AdditionalPDCPDuplicationTNL-List CRITICALITY ignore EXTENSION AdditionalPDCPDuplicationTNL-List PRESENCE optional }|
- { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetIndex PRESENCE optional },
+ { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetIndex PRESENCE optional }|
+ { ID id-TSCTrafficCharacteristicsFeedback CRITICALITY ignore EXTENSION TSCTrafficCharacteristicsFeedback PRESENCE optional }|
+ { ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional },
...
}
@@ -1941,7 +2239,9 @@ DRBs-SetupMod-Item ::= SEQUENCE {
DRBs-SetupMod-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-AdditionalPDCPDuplicationTNL-List CRITICALITY ignore EXTENSION AdditionalPDCPDuplicationTNL-List PRESENCE optional }|
- { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetIndex PRESENCE optional },
+ { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION QoSParaSetIndex PRESENCE optional }|
+ { ID id-TSCTrafficCharacteristicsFeedback CRITICALITY ignore EXTENSION TSCTrafficCharacteristicsFeedback PRESENCE optional }|
+ { ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional },
...
}
@@ -2025,6 +2325,17 @@ DRBs-ToBeSetupMod-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+DRB-List ::= SEQUENCE (SIZE(1.. maxnoofDRBs)) OF DRB-List-Item
+
+DRB-List-Item ::= SEQUENCE {
+ dRBID DRBID,
+ iE-Extensions ProtocolExtensionContainer { { DRB-List-Item-ExtIEs} } OPTIONAL
+}
+
+DRB-List-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
DRXCycle ::= SEQUENCE {
longDRXCycleLength LongDRXCycleLength,
shortDRXCycleLength ShortDRXCycleLength OPTIONAL,
@@ -2037,6 +2348,18 @@ DRXCycle-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+NonIntegerDRXCycle ::= SEQUENCE {
+ longNonIntegerDRXCycleLength LongNonIntegerDRXCycleLength,
+ shortNonIntegerDRXCycleLength ShortNonIntegerDRXCycleLength OPTIONAL,
+ shortDRXCycleTimer ShortDRXCycleTimer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NonIntegerDRXCycle-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NonIntegerDRXCycle-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
DRX-Config ::= OCTET STRING
DRXConfigurationIndicator ::= ENUMERATED{ release, ...}
@@ -2123,14 +2446,33 @@ DUtoCURRCInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-SL-PHY-MAC-RLC-Config CRITICALITY ignore EXTENSION SL-PHY-MAC-RLC-Config PRESENCE optional }|
{ ID id-SL-ConfigDedicatedEUTRA-Info CRITICALITY ignore EXTENSION SL-ConfigDedicatedEUTRA-Info PRESENCE optional }|
{ ID id-RequestedP-MaxFR2 CRITICALITY ignore EXTENSION RequestedP-MaxFR2 PRESENCE optional }|
- { ID id-SDT-MAC-PHY-CG-Config CRITICALITY ignore EXTENSION SDT-MAC-PHY-CG-Config PRESENCE optional }|
+ { ID id-SDT-MAC-PHY-CG-Config CRITICALITY ignore EXTENSION SDT-MAC-PHY-CG-Config PRESENCE optional }|
{ ID id-MUSIM-GapConfig CRITICALITY ignore EXTENSION MUSIM-GapConfig PRESENCE optional }|
{ ID id-SL-RLC-ChannelToAddModList CRITICALITY ignore EXTENSION SL-RLC-ChannelToAddModList PRESENCE optional }|
{ ID id-InterFrequencyConfig-NoGap CRITICALITY ignore EXTENSION InterFrequencyConfig-NoGap PRESENCE optional }|
{ ID id-UL-GapFR2-Config CRITICALITY ignore EXTENSION UL-GapFR2-Config PRESENCE optional }|
{ ID id-TwoPHRModeMCG CRITICALITY ignore EXTENSION TwoPHRModeMCG PRESENCE optional }|
{ ID id-TwoPHRModeSCG CRITICALITY ignore EXTENSION TwoPHRModeSCG PRESENCE optional }|
- { ID id-ncd-SSB-RedCapInitialBWP-SDT CRITICALITY ignore EXTENSION Ncd-SSB-RedCapInitialBWP-SDT PRESENCE optional },
+ { ID id-ncd-SSB-RedCapInitialBWP-SDT CRITICALITY ignore EXTENSION Ncd-SSB-RedCapInitialBWP-SDT PRESENCE optional }|
+ { ID id-ServCellInfoList CRITICALITY ignore EXTENSION ServCellInfoList PRESENCE optional }|
+ { ID id-SL-PHY-MAC-RLC-ConfigExt CRITICALITY ignore EXTENSION SL-PHY-MAC-RLC-ConfigExt PRESENCE optional },
+ ...
+}
+
+DUtoCUTAInformation-List ::= SEQUENCE (SIZE(1.. maxnoofTAList)) OF DUtoCUTAInformation-Item
+
+DUtoCUTAInformation-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ tAValue TAValue,
+ preambleIndex PreambleIndex,
+ rA-RNTI RA-RNTI,
+ sourceGNB-DU-ID GNB-DU-ID,
+ tagIDPointer TagIDPointer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DUtoCUTAInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DUtoCUTAInformation-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
@@ -2150,9 +2492,9 @@ Dynamic5QIDescriptor ::= SEQUENCE {
packetErrorRate PacketErrorRate,
fiveQI INTEGER (0..255, ...) OPTIONAL,
delayCritical ENUMERATED {delay-critical, non-delay-critical} OPTIONAL,
- -- C-ifGBRflow: This IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.
+ -- The above IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.
averagingWindow AveragingWindow OPTIONAL,
- -- C-ifGBRflow: This IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.
+ -- The above IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.
maxDataBurstVolume MaxDataBurstVolume OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { Dynamic5QIDescriptor-ExtIEs } } OPTIONAL
}
@@ -2170,7 +2512,7 @@ DynamicPQIDescriptor ::= SEQUENCE {
packetDelayBudget PacketDelayBudget,
packetErrorRate PacketErrorRate,
averagingWindow AveragingWindow OPTIONAL,
- -- C-ifGBRflow: This IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.
+ -- The above IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE.
maxDataBurstVolume MaxDataBurstVolume OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { DynamicPQIDescriptor-ExtIEs } } OPTIONAL
}
@@ -2179,9 +2521,90 @@ DynamicPQIDescriptor-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+DLLBTFailureInformationRequest ::= ENUMERATED {inquiry, ...}
+DLLBTFailureInformationList ::= SEQUENCE (SIZE(1.. maxnoofLBTFailureInformation)) OF DLLBTFailureInformationList-Item
+
+DLLBTFailureInformationList-Item::= SEQUENCE {
+ uEAssistantIdentifier GNB-CU-UE-F1AP-ID,
+ numberOfDLLBTFailures INTEGER (1..1000,...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DLLBTFailureInformationList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DLLBTFailureInformationList-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- E
+EarlyULSyncConfig ::= SEQUENCE {
+ rACH RACHConfiguration,
+ lTMgNB-DU-IDs-PreambleIndexList LTMgNB-DU-IDs-PreambleIndexList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EarlyULSyncConfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+EarlyULSyncConfig-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EarlySyncInformation-Request ::= SEQUENCE {
+ requestforRACHConfiguration RequestforRACHConfiguration,
+ lTMgNB-DU-IDsList LTMgNB-DU-IDsList,
+ iE-Extensions ProtocolExtensionContainer { { EarlySyncInformation-Request-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+EarlySyncInformation-Request-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EarlySyncInformation ::= SEQUENCE {
+ tCIStatesConfigurationsList TCIStatesConfigurationsList,
+ earlyULSyncConfig EarlyULSyncConfig OPTIONAL,
+ earlyULSyncConfigSUL EarlyULSyncConfig OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EarlySyncInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+EarlySyncInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EarlySyncCandidateCellInformation-List ::= SEQUENCE (SIZE (1.. maxnoofLTMCells)) OF EarlySyncCandidateCellInformation-Item
+
+EarlySyncCandidateCellInformation-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ tCIStatesConfigurationsList TCIStatesConfigurationsList OPTIONAL,
+ earlyULSyncConfig EarlyULSyncConfig OPTIONAL,
+ earlyULSyncConfigSUL EarlyULSyncConfig OPTIONAL,
+ tAAssistanceInfo TAAssistanceInfo OPTIONAL,
+ uEbasedTAmeasurementConfig OCTET STRING OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EarlySyncCandidateCellInformation-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EarlySyncCandidateCellInformation-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EarlySyncServingCellInformation ::= SEQUENCE {
+ uEbasedTAmeasurementConfig OCTET STRING OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { EarlySyncServingCellInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+EarlySyncServingCellInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
E-CID-MeasurementQuantities ::= SEQUENCE (SIZE (1.. maxnoofMeasE-CID)) OF ProtocolIE-SingleContainer { {E-CID-MeasurementQuantities-ItemIEs} }
E-CID-MeasurementQuantities-ItemIEs F1AP-PROTOCOL-IES ::= {
@@ -2211,6 +2634,8 @@ E-CID-MeasurementResult ::= SEQUENCE {
}
E-CID-MeasurementResult-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-MobileAccessPointLocation CRITICALITY ignore EXTENSION Mobile-TRP-LocationInformation PRESENCE optional }|
+ { ID id-E-CID-MeasuredResultsAssociatedInfoList CRITICALITY ignore EXTENSION E-CID-MeasuredResultsAssociatedInfoList PRESENCE optional},
...
}
@@ -2235,6 +2660,19 @@ E-CID-MeasuredResults-Value-ExtIEs F1AP-PROTOCOL-IES ::= {
...
}
+E-CID-MeasuredResultsAssociatedInfoList ::= SEQUENCE (SIZE (1..maxnoofMeasE-CID)) OF E-CID-MeasuredResultsAssociatedInfoItem
+
+E-CID-MeasuredResultsAssociatedInfoItem ::= SEQUENCE {
+ timeStamp TimeStamp OPTIONAL,
+ measurementQuality TRPMeasurementQuality OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-CID-MeasuredResultsAssociatedInfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-CID-MeasuredResultsAssociatedInfoItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
E-CID-ReportCharacteristics ::= ENUMERATED {
onDemand,
periodic,
@@ -2372,7 +2810,7 @@ EUTRA-PRACH-Configuration ::= SEQUENCE {
highSpeedFlag BOOLEAN,
prach-FreqOffset INTEGER (0..94),
prach-ConfigIndex INTEGER (0..63) OPTIONAL,
- -- C-ifTDD: This IE shall be present if the EUTRA-Mode-Info IE in the Resource Coordination E-UTRA Cell Information IE is set to the value "TDD"
+ -- The above IE shall be present if the EUTRA-Mode-Info IE in the Resource Coordination E-UTRA Cell Information IE is set to the value "TDD"
iE-Extensions ProtocolExtensionContainer { {EUTRA-PRACH-Configuration-ExtIEs} } OPTIONAL,
...
}
@@ -2536,6 +2974,20 @@ Expected-Value-AoA ::= INTEGER (0..3599)
Expected-Value-ZoA ::= INTEGER (0..1799)
+ECNMarkingorCongestionInformationReportingRequest ::= CHOICE {
+ ecnMarking ECNmarkingRequest,
+ congestionInformation CongestionInformationRequest,
+ choice-extension ProtocolIE-SingleContainer { { ECNMarkingorCongestionInformationReportingRequest-ExtIEs } }
+}
+
+ECNMarkingorCongestionInformationReportingRequest-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+ECNmarkingRequest ::= ENUMERATED { ul, dl, both, stop, ... }
+CongestionInformationRequest ::= ENUMERATED { ul, dl, both, stop, ... }
+ECNMarkingorCongestionInformationReportingStatus ::= ENUMERATED { active, not-active, ...}
+
-- F
F1CPathNSA ::= ENUMERATED {lte, nr, both}
@@ -2562,6 +3014,16 @@ F1CTransferPathNRDC-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+F1U-PathFailure ::= ENUMERATED {
+ true,
+ ...
+}
+
+
+F1UTunnelNotEstablished ::= ENUMERATED {
+ true,
+ ...
+}
FDD-Info ::= SEQUENCE {
uL-NRFreqInfo NRFreqInfo,
@@ -2600,6 +3062,9 @@ FiveG-ProSeAuthorized ::= SEQUENCE {
}
FiveG-ProSeAuthorized-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-FiveG-ProSeLayer2Multipath CRITICALITY ignore EXTENSION FiveG-ProSeLayer2Multipath PRESENCE optional }|
+ { ID id-FiveG-ProSeLayer2UEtoUERelay CRITICALITY ignore EXTENSION FiveG-ProSeLayer2UEtoUERelay PRESENCE optional }|
+ { ID id-FiveG-ProSeLayer2UEtoUERemote CRITICALITY ignore EXTENSION FiveG-ProSeLayer2UEtoUERemote PRESENCE optional },
...
}
@@ -2633,6 +3098,27 @@ FiveG-ProSeLayer2RemoteUE ::= ENUMERATED {
...
}
+FiveG-ProSeLayer2Multipath ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+
+FiveG-ProSeLayer2UEtoUERelay ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+FiveG-ProSeLayer2UEtoUERemote ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+FiveQI ::= INTEGER (0..255, ...)
+
Flows-Mapped-To-DRB-List ::= SEQUENCE (SIZE(1.. maxnoofQoSFlows)) OF Flows-Mapped-To-DRB-Item
Flows-Mapped-To-DRB-Item ::= SEQUENCE {
@@ -2647,9 +3133,9 @@ Flows-Mapped-To-DRB-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
-FR1-Bandwidth ::= ENUMERATED {bw5, bw10, bw20, bw40, bw50, bw80, bw100, ...}
+FR1-Bandwidth ::= ENUMERATED {bw5, bw10, bw20, bw40, bw50, bw80, bw100, ..., bw160, bw200}
-FR2-Bandwidth ::= ENUMERATED {bw50, bw100, bw200, bw400, ..., bw800, bw1600, bw2000}
+FR2-Bandwidth ::= ENUMERATED {bw50, bw100, bw200, bw400, ..., bw800, bw1600, bw2000, bw600}
FreqBandNrItem ::= SEQUENCE {
freqBandIndicatorNr INTEGER (1..1024,...),
@@ -2774,6 +3260,26 @@ GeographicalCoordinates-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+GlobalGNB-ID ::= SEQUENCE {
+ pLMNIdentity PLMN-Identity,
+ gNB-ID GNB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalGNB-ID-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+GNB-ID ::= CHOICE {
+ gNB-ID BIT STRING (SIZE(22..32)),
+ choice-Extensions ProtocolIE-SingleContainer { {GNB-ID-ExtIEs} }
+}
+
+GNB-ID-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+
GNB-CU-MBS-F1AP-ID ::= INTEGER (0..4294967295)
GNBCUMeasurementID ::= INTEGER (0.. 4095, ...)
@@ -2928,7 +3434,10 @@ GNB-DU-System-Information-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-SIB10-message CRITICALITY ignore EXTENSION SIB10-message PRESENCE optional}|
{ ID id-SIB17-message CRITICALITY ignore EXTENSION SIB17-message PRESENCE optional}|
{ ID id-SIB20-message CRITICALITY ignore EXTENSION SIB20-message PRESENCE optional}|
- { ID id-SIB15-message CRITICALITY ignore EXTENSION SIB15-message PRESENCE optional},
+ { ID id-SIB15-message CRITICALITY ignore EXTENSION SIB15-message PRESENCE optional}|
+ { ID id-SIB24-message CRITICALITY ignore EXTENSION SIB24-message PRESENCE optional}|
+ { ID id-SIB22-message CRITICALITY ignore EXTENSION SIB22-message PRESENCE optional}|
+ { ID id-SIB23-message CRITICALITY ignore EXTENSION SIB23-message PRESENCE optional},
...
}
@@ -2982,6 +3491,12 @@ GNBRxTxTimeDiffMeas ::= CHOICE {
}
GNBRxTxTimeDiffMeas-ExtIEs F1AP-PROTOCOL-IES ::= {
+ {ID id-ReportingGranularitykminus1 CRITICALITY ignore TYPE ReportingGranularitykminus1 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus2 CRITICALITY ignore TYPE ReportingGranularitykminus2 PRESENCE mandatory }|
+ {ID id-ReportingGranularitykminus3 CRITICALITY ignore TYPE ReportingGranularitykminus3 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus4 CRITICALITY ignore TYPE ReportingGranularitykminus4 PRESENCE mandatory }|
+ {ID id-ReportingGranularitykminus5 CRITICALITY ignore TYPE ReportingGranularitykminus5 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus6 CRITICALITY ignore TYPE ReportingGranularitykminus6 PRESENCE mandatory },
...
}
@@ -3311,6 +3826,17 @@ IABv4AddressesRequested-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+Mobile-IAB-MTUserLocationInformation ::= SEQUENCE {
+ nRCGI NRCGI,
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { { Mobile-IAB-MTUserLocationInformation-ExtIEs} } OPTIONAL
+}
+
+Mobile-IAB-MTUserLocationInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
ImplicitFormat ::= SEQUENCE {
dUFSlotformatIndex DUFSlotformatIndex,
iE-Extensions ProtocolExtensionContainer { { ImplicitFormat-ExtIEs } } OPTIONAL
@@ -3325,6 +3851,17 @@ IgnorePRACHConfiguration::= ENUMERATED { true,...}
IgnoreResourceCoordinationContainer ::= ENUMERATED { yes,...}
InactivityMonitoringRequest ::= ENUMERATED { true,...}
InactivityMonitoringResponse ::= ENUMERATED { not-supported,...}
+
+IndirectPathAddition ::= SEQUENCE {
+ targetRelayUEID BIT STRING(SIZE(24)),
+ remoteUELocalID RemoteUELocalID,
+ iE-Extensions ProtocolExtensionContainer { { IndirectPathAddition-ExtIEs } } OPTIONAL,
+ ...
+}
+
+IndirectPathAddition-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
InterfacesToTrace ::= BIT STRING (SIZE(8))
IntendedTDD-DL-ULConfig ::= SEQUENCE {
@@ -3346,6 +3883,8 @@ IntendedTDD-DL-ULConfig-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+IndicationMCInactiveReception ::= ENUMERATED {true, ...}
+
IPHeaderInformation ::= SEQUENCE {
destinationIABTNLAddress IABTNLAddress,
dsInformationList DSInformationList OPTIONAL,
@@ -3380,10 +3919,24 @@ IPtolayer2TrafficMappingInfo-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
-- J
+JointorDLTCIStateID ::= OCTET STRING
+
+
+
-- K
-- L
+LTEA2XServicesAuthorized ::= SEQUENCE {
+ aerialUE AerialUE OPTIONAL,
+ controllerUE ControllerUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {LTEA2XServicesAuthorized-ExtIEs} } OPTIONAL
+}
+
+LTEA2XServicesAuthorized-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
L139Info ::= SEQUENCE {
prachSCS ENUMERATED {scs15, scs30, scs60, scs120, ..., scs480, scs960},
rootSequenceIndex INTEGER (0..137) OPTIONAL,
@@ -3476,6 +4029,7 @@ LocationDependentMBSF1UInformation-Item ::= SEQUENCE {
}
LocationDependentMBSF1UInformation-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-F1UTunnelNotEstablished CRITICALITY ignore EXTENSION F1UTunnelNotEstablished PRESENCE optional },
...
}
@@ -3496,6 +4050,9 @@ LocationUncertainty-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
LongDRXCycleLength ::= ENUMERATED
{ms10, ms20, ms32, ms40, ms60, ms64, ms70, ms80, ms128, ms160, ms256, ms320, ms512, ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, ...}
+LongNonIntegerDRXCycleLength ::= ENUMERATED
+{ ms1001over240, ms25over6, ms25over3, ms1001over120, ms100over9, ms25over2, ms40over3, ms125over9, ms50over3, ms1001over60, ms125over6, ms200over9, ms250over9, ms100over3, ms1001over30, ms75over2, ms125over3, ms1001over24, ms200over3, ms1001over15, ms250over3, ms1001over12, ms400over3, ...}
+
LowerLayerPresenceStatusChange ::= ENUMERATED {
suspend-lower-layers,
resume-lower-layers,
@@ -3536,6 +4093,131 @@ LTEV2XServicesAuthorized-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+
+LTMCells-ToBeReleased-List ::= SEQUENCE (SIZE(1..maxnoofLTMCells)) OF LTMCells-ToBeReleased-Item
+
+
+
+LTMCells-ToBeReleased-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ iE-Extensions ProtocolExtensionContainer { { LTMCells-ToBeReleased-ItemExtIEs } } OPTIONAL,
+ ...
+}
+
+LTMCells-ToBeReleased-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTMInformation-Setup ::= SEQUENCE {
+ lTMIndicator LTMIndicator,
+ referenceConfiguration ReferenceConfiguration OPTIONAL,
+ cSIResourceConfiguration CSIResourceConfiguration OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LTMInformation-Setup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTMInformation-Setup-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTMConfigurationIDMappingList ::= SEQUENCE (SIZE(1..maxnoofLTMCells)) OF LTMConfigurationIDMapping-Item
+
+LTMConfigurationIDMapping-Item::= SEQUENCE{
+ lTMCellID NRCGI,
+ lTMConfigurationID LTMConfigurationID,
+ iE-Extensions ProtocolExtensionContainer {{ LTMConfigurationIDMapping-Item-ExtIEs}} OPTIONAL
+}
+
+LTMConfigurationIDMapping-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+LTMInformation-Modify ::= SEQUENCE {
+ lTMIndicator LTMIndicator,
+ referenceConfiguration ReferenceConfiguration OPTIONAL,
+ cSIResourceConfiguration CSIResourceConfiguration OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LTMInformation-Modify-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTMInformation-Modify-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+LTMIndicator ::= ENUMERATED {true, ...}
+
+CompleteConfigurationIndicator ::= ENUMERATED {complete, ...}
+
+LTMConfigurationID ::= INTEGER (1..8)
+ReferenceConfigurationInformation ::= OCTET STRING
+
+LTMConfiguration ::= SEQUENCE {
+ sSBInformation SSBInformation,
+ referenceConfigurationInformation ReferenceConfigurationInformation OPTIONAL,
+ completeConfigurationIndicator CompleteConfigurationIndicator OPTIONAL,
+ lTMCFRAResourceConfig LTMCFRAResourceConfig OPTIONAL,
+ lTMCFRAResourceConfigSUL LTMCFRAResourceConfig OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LTMConfiguration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LTMConfiguration-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTMCellSwitchInformation ::= SEQUENCE {
+ jointorDLTCIStateID JointorDLTCIStateID,
+ uLTCIStateID ULTCIStateID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LTMCellSwitchInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LTMCellSwitchInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTMgNB-DU-IDsList ::= SEQUENCE (SIZE(1..maxnoofLTMgNB-DUs)) OF LTMgNB-DU-IDs-Item
+
+LTMgNB-DU-IDs-Item ::= SEQUENCE{
+ lTMgNB-DU-ID GNB-DU-ID,
+ iE-Extensions ProtocolExtensionContainer {{ LTMgNB-DU-IDs-Item-ExtIEs}} OPTIONAL
+}
+
+LTMgNB-DU-IDs-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+LTMgNB-DU-IDs-PreambleIndexList ::= SEQUENCE (SIZE(1..maxnoofLTMgNB-DUs)) OF LTMgNB-DU-IDs-PreambleIndex-Item
+
+LTMgNB-DU-IDs-PreambleIndex-Item ::= SEQUENCE{
+ lTMgNB-DU-ID GNB-DU-ID,
+ preambleIndexList PreambleIndexList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ LTMgNB-DU-IDs-PreambleIndex-Item-ExtIEs}} OPTIONAL
+}
+
+LTMgNB-DU-IDs-PreambleIndex-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTMCFRAResourceConfig-List ::= SEQUENCE (SIZE (1.. maxnoofLTMCells)) OF LTMCFRAResourceConfig-Item
+
+LTMCFRAResourceConfig-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ lTMCFRAResourceConfig LTMCFRAResourceConfig OPTIONAL,
+ lTMCFRAResourceConfigSUL LTMCFRAResourceConfig OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LTMCFRAResourceConfig-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LTMCFRAResourceConfig-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+LTMCFRAResourceConfig ::= OCTET STRING
+
+
-- M
MappingInformationIndex ::= BIT STRING (SIZE (26))
@@ -3569,6 +4251,7 @@ MBSF1UInformation ::= SEQUENCE {
}
MBSF1UInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-F1UTunnelNotEstablished CRITICALITY ignore EXTENSION F1UTunnelNotEstablished PRESENCE optional },
...
}
@@ -3637,12 +4320,261 @@ MBSMulticastF1UContextDescriptor-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+MT-SDT-Information ::= SEQUENCE {
+ mt-SDT-Indicator MT-SDT-Indicator,
+ iE-Extensions ProtocolExtensionContainer { { MT-SDT-Information-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MT-SDT-Information-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MT-SDT-Indicator ::= ENUMERATED {true, ...}
+
+MBSMulticastSessionReceptionState ::= ENUMERATED {start-monitoring-G-RNTI, stop-monitoring-G-RNTI, ...}
+
+MulticastCU2DURRCInfo ::= SEQUENCE {
+ mBS-Multicast-CU2DU-Cell-List MBS-Multicast-CU2DU-Cell-List OPTIONAL,
+ mBS-Multicast-MRB-List MBS-Multicast-MRB-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MulticastCU2DURRCInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MulticastCU2DURRCInfo-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBS-Multicast-CU2DU-Cell-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF MBS-Multicast-CU2DU-Cell-Item
+
+MBS-Multicast-CU2DU-Cell-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ mbsMulticastRRC-INACTIVEReceptionMode MBSMulticastRRCINACTIVEReceptionMode OPTIONAL,
+ mbsMulticastConfigurationRequest ENUMERATED {query, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBS-Multicast-CU2DU-Cell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-Multicast-CU2DU-Cell-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBSMulticastRRCINACTIVEReceptionMode ::= ENUMERATED {activated, deactivated, ...}
+
+MBS-Multicast-MRB-List ::= SEQUENCE (SIZE(1.. maxnoofMRBs)) OF MBS-Multicast-MRB-Item
+
+MBS-Multicast-MRB-Item ::= SEQUENCE {
+ mRB-ID MRB-ID,
+ mRB-PDCP-Config-Broadcast OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer { { MBS-Multicast-MRB-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-Multicast-MRB-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MulticastCU2DUCommonRRCInfo ::= SEQUENCE {
+ multicastCommonCU2DUCellList MulticastCommonCU2DUCellList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MulticastCU2DUCommonRRCInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MulticastCU2DUCommonRRCInfo-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MulticastCommonCU2DUCellList ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF MulticastCommonCU2DUCell-Item
+
+MulticastCommonCU2DUCell-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ multicastCommonCu2DUCellInformation MulticastCommonCu2DUCellInformation,
+ iE-Extensions ProtocolExtensionContainer { {MulticastCommonCU2DUCell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MulticastCommonCU2DUCell-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MulticastCommonCu2DUCellInformation ::= SEQUENCE {
+ mBSMulticastNeighbourCellListItem MBSMulticastNeighbourCellListItem OPTIONAL,
+ thresholdMBS-ListItem ThresholdMBS-ListItem OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MulticastCommonCu2DUCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MulticastCommonCu2DUCellInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBSMulticastNeighbourCellListItem ::= CHOICE {
+ mbsMulticastNeighbourCellListInformationprovided UpdateMBSMulticastNeighbourCellListInformation,
+ nombsMulticastNeighbourCellListInformationprovided NULL,
+ choice-extension ProtocolIE-SingleContainer { {MBSMulticastNeighbourCellListItem-ExtIEs} }
+}
+
+MBSMulticastNeighbourCellListItem-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+ThresholdMBS-ListItem ::= CHOICE {
+ thresholdMBS-ListInformationprovided UpdateThresholdMBS-ListInformation,
+ nothresholdMBSListInformationprovided NULL,
+ choice-extension ProtocolIE-SingleContainer { {ThresholdMBS-ListItem-ExtIEs} }
+}
+
+ThresholdMBS-ListItem-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+UpdateMBSMulticastNeighbourCellListInformation ::= SEQUENCE {
+ mbs-NeighbourCellList OCTET STRING OPTIONAL,
+ mbs-MulticastSessionList MTCH-NeighbourCellSessionList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UpdateMBSMulticastNeighbourCellListInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UpdateMBSMulticastNeighbourCellListInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MTCH-NeighbourCellSessionList ::= SEQUENCE (SIZE(1..maxMBSSessionsinSessionInfoList)) OF MTCH-NeighbourCellSession-Item
+MTCH-NeighbourCellSession-Item ::= SEQUENCE {
+ mbsSessionID MBS-Session-ID,
+ mtch-NeighbourCellInformation MTCH-NeighbourCellInformation,
+ iE-Extensions ProtocolExtensionContainer { {MTCH-NeighbourCellSession-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MTCH-NeighbourCellSession-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MTCH-NeighbourCellInformation ::= CHOICE {
+ mtch-NeighbourCellprovided OCTET STRING,
+ mtch-NeighbourCellnotprovided NULL,
+ choice-extension ProtocolIE-SingleContainer { {MTCH-NeighbourCellInformation-ExtIEs} }
+}
+
+MTCH-NeighbourCellInformation-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+UpdateThresholdMBS-ListInformation ::= SEQUENCE {
+ thresholdMBSList OCTET STRING OPTIONAL,
+ thresholdIndexSessionList ThresholdIndexSessionList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UpdateThresholdMBS-ListInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UpdateThresholdMBS-ListInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ThresholdIndexSessionList ::= SEQUENCE (SIZE(1..maxMBSSessionsinSessionInfoList)) OF ThresholdIndexSession-Item
+ThresholdIndexSession-Item ::= SEQUENCE {
+ mbsSessionID MBS-Session-ID,
+ thresholdIndexInformation ThresholdIndexInformation,
+ iE-Extensions ProtocolExtensionContainer { {ThresholdIndexSession-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ThresholdIndexSession-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ThresholdIndexInformation ::= CHOICE {
+ thresholdIndexprovided ThresholdIndex,
+ thresholdIndexnotprovided NULL,
+ choice-extension ProtocolIE-SingleContainer { {ThresholdIndexInformation-ExtIEs} }
+}
+
+ThresholdIndexInformation-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+ThresholdIndex ::= INTEGER (0..maxnoofThresholdMBS-1)
+
+MulticastDU2CURRCInfo ::= SEQUENCE {
+ mBS-Multicast-DU2CU-Cell-List MBS-Multicast-DU2CU-Cell-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MulticastDU2CURRCInfo-ExtIEs } } OPTIONAL,
+ ...
+}
+
+MulticastDU2CURRCInfo-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBS-Multicast-DU2CU-Cell-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF MBS-Multicast-DU2CU-Cell-Item
+
+MBS-Multicast-DU2CU-Cell-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ mbsMulticastConfigurationResponseInfo MBSMulticastConfigurationResponseInfo OPTIONAL,
+ mbsMulticastConfigurationNotification MBSMulticastConfigurationNotification OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MBS-Multicast-DU2CU-Cell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-Multicast-DU2CU-Cell-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBSMulticastConfigurationResponseInfo ::= CHOICE {
+ mbsMulticastConfiguration-available MBSMulticastConfiguration-available,
+ mbsMulticastConfiguration-notavailable MBSMulticastConfiguration-notavailable,
+ choice-extension ProtocolIE-SingleContainer { {MBSMulticastConfigurationResponseInfo-ExtIEs} }
+}
+
+MBSMulticastConfigurationResponseInfo-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+MBSMulticastConfiguration-available ::= SEQUENCE {
+ mBSMulticastConfiguration OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer { { MBSMulticastConfiguration-available-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSMulticastConfiguration-available-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBSMulticastConfiguration-notavailable ::= SEQUENCE {
+ mBSMulticastConfiguration-notavailable ENUMERATED {not-available, ...},
+ iE-Extensions ProtocolExtensionContainer { { MBSMulticastConfiguration-notavailable-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSMulticastConfiguration-notavailable-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBSMulticastConfigurationNotification ::= SEQUENCE {
+ mbsMulticastConfigurationNotificationInfo MBSMulticastConfigurationNotificationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MBSMulticastConfigurationNotification-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSMulticastConfigurationNotification-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBSMulticastConfigurationNotificationInfo ::= CHOICE {
+ mbsMulticastConfigurationChanged OCTET STRING,
+ mbsMulticastConfigurationRemoved NULL,
+ choice-extension ProtocolIE-SingleContainer { {MBSMulticastConfigurationNotificationInfo-ExtIEs} }
+}
+
+MBSMulticastConfigurationNotificationInfo-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
MulticastF1UContext-ToBeSetup-Item ::= SEQUENCE {
mRB-ID MRB-ID,
mbs-f1u-info-at-DU UPTransportLayerInformation,
mbsProgressInformation MRB-ProgressInformation OPTIONAL,
+ -- The above IE shall be present if the MC F1-U Context usage IE in the MBS Multicast F1-U Context Descriptor IE is set to "ptp forwarding".
iE-Extensions ProtocolExtensionContainer { {MulticastF1UContext-ToBeSetup-Item-ExtIEs} } OPTIONAL,
...
}
@@ -3706,7 +4638,7 @@ MBS-ServiceAreaCellList ::= SEQUENCE (SIZE(1.. maxnoofCellsforMBS)) OF NRCGI
MBS-ServiceAreaTAIList ::= SEQUENCE (SIZE(1.. maxnoofTAIforMBS)) OF MBS-ServiceAreaTAIList-Item
MBS-ServiceAreaTAIList-Item ::= SEQUENCE {
plmn-ID PLMN-Identity,
- five5-TAC FiveGS-TAC,
+ fiveGS-TAC FiveGS-TAC,
iE-Extensions ProtocolExtensionContainer { {MBS-ServiceAreaTAIList-Item-ExtIEs} } OPTIONAL,
...
}
@@ -3943,6 +4875,10 @@ MultiplexingInfo-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+MusimCapabilityRestrictionIndication ::= ENUMERATED {true, ...}
+
+MusimCandidateBandList ::= OCTET STRING
+
M2Configuration ::= ENUMERATED {true, ...}
@@ -4013,13 +4949,13 @@ MDTConfiguration ::= SEQUENCE {
mdt-Activation MDT-Activation,
measurementsToActivate MeasurementsToActivate,
m2Configuration M2Configuration OPTIONAL,
- -- C-ifM2: This IE shall be present if the Measurements to Activate IE has the second bit set to "1".
+ -- The above IE shall be present if the Measurements to Activate IE has the second bit set to "1".
m5Configuration M5Configuration OPTIONAL,
- -- C-ifM5: This IE shall be present if the Measurements to Activate IE has the fifth bit set to "1".
+ -- The above IE shall be present if the Measurements to Activate IE has the fifth bit set to "1".
m6Configuration M6Configuration OPTIONAL,
- -- C-ifM6: This IE shall be present if the Measurements to Activate IE has the seventh bit set to "1".
+ -- The above IE shall be present if the Measurements to Activate IE has the seventh bit set to "1".
m7Configuration M7Configuration OPTIONAL,
- -- C-ifM7: This IE shall be present if the Measurements to Activate IE has the eighth bit set to "1".
+ -- The above IE shall be present if the Measurements to Activate IE has the eighth bit set to "1".
iE-Extensions ProtocolExtensionContainer { { MDTConfiguration-ExtIEs} } OPTIONAL,
...
}
@@ -4032,6 +4968,8 @@ MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity
MDTPLMNModificationList ::= SEQUENCE (SIZE(0..maxnoofMDTPLMNs)) OF PLMN-Identity
+MeasuredFrequencyHops ::= ENUMERATED {singleHop, multiHop, ...}
+
MeasuredResultsValue ::= CHOICE {
uL-AngleOfArrival UL-AoA,
uL-SRS-RSRP UL-SRS-RSRP,
@@ -4043,17 +4981,69 @@ MeasuredResultsValue ::= CHOICE {
MeasuredResultsValue-ExtIEs F1AP-PROTOCOL-IES ::= {
{ ID id-ZoAInformation CRITICALITY reject TYPE ZoAInformation PRESENCE mandatory}|
{ ID id-MultipleULAoA CRITICALITY reject TYPE MultipleULAoA PRESENCE mandatory}|
- { ID id-UL-SRS-RSRPP CRITICALITY reject TYPE UL-SRS-RSRPP PRESENCE mandatory},
+ { ID id-UL-SRS-RSRPP CRITICALITY reject TYPE UL-SRS-RSRPP PRESENCE mandatory}|
+ { ID id-UL-RSCP CRITICALITY reject TYPE UL-RSCP PRESENCE mandatory},
...
}
MeasurementsToActivate ::= BIT STRING (SIZE (8))
+Mobile-TRP-LocationInformation ::= SEQUENCE {
+ location-Information OCTET STRING,
+ velocity-Information OCTET STRING OPTIONAL,
+ location-time-stamp TimeStamp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Mobile-TRP-LocationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Mobile-TRP-LocationInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Mobile-IAB-MT-UE-ID ::= OCTET STRING
+
+
MUSIM-GapConfig ::= OCTET STRING
+MobileIAB-Barred ::= ENUMERATED {barred, not-barred, ...}
+
+MeasBasedOnAggregatedResources ::= ENUMERATED { true, ... }
-- N
+NRA2XServicesAuthorized ::= SEQUENCE {
+ aerialUE AerialUE OPTIONAL,
+ controllerUE ControllerUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {NRA2XServicesAuthorized-ExtIEs} } OPTIONAL
+}
+
+NRA2XServicesAuthorized-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AerialUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ControllerUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+
+N3CIndirectPathAddition::= SEQUENCE {
+ targetRelayUEID GNB-DU-UE-F1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { { N3CIndirectPathAddition-ExtIEs } } OPTIONAL,
+ ...
+}
+
+N3CIndirectPathAddition-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
NA-Resource-Configuration-List ::= SEQUENCE (SIZE(1.. maxnoofHSNASlots)) OF NA-Resource-Configuration-Item
NA-Resource-Configuration-Item ::= SEQUENCE {
@@ -4073,6 +5063,19 @@ NAUplink ::= ENUMERATED { true, false, ...}
Ncd-SSB-RedCapInitialBWP-SDT ::= OCTET STRING
+NetworkControlledRepeaterAuthorized ::= ENUMERATED { authorized, not-authorized, ...}
+
+NCGI-to-be-Updated-List-Item ::= SEQUENCE {
+ oLDNCGI NRCGI,
+ nEWNCGI NRCGI,
+ iE-Extensions ProtocolExtensionContainer { { NCGI-to-be-Updated-List-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+NCGI-to-be-Updated-List-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
Neighbour-Node-Cells-List ::= SEQUENCE (SIZE(1..maxnoofNeighbourNodeCellsIAB)) OF Neighbour-Node-Cells-List-Item
Neighbour-Node-Cells-List-Item ::= SEQUENCE{
@@ -4103,6 +5106,8 @@ NeedForGapNCSGInfoNR ::= OCTET STRING
NeedForGapNCSGInfoEUTRA ::= OCTET STRING
+NeedForInterruptionInfoNR ::= OCTET STRING
+
Neighbour-Cell-Information-Item ::= SEQUENCE {
nRCGI NRCGI,
intendedTDD-DL-ULConfig IntendedTDD-DL-ULConfig OPTIONAL,
@@ -4201,6 +5206,10 @@ NR-PRSBeamInformationItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
NR-TADV ::= INTEGER (0.. 7690)
+NReRedCapUEIndication ::= ENUMERATED {true, ...}
+
+ERedcap-Bcast-Information ::= BIT STRING(SIZE(8))
+
NRRedCapUEIndication ::= ENUMERATED {true, ...}
NRPagingeDRXInformation ::= SEQUENCE {
@@ -4238,6 +5247,7 @@ NRPagingeDRXInformationforRRCINACTIVE ::= SEQUENCE {
}
NRPagingeDRXInformationforRRCINACTIVE-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+
...
}
@@ -4246,6 +5256,32 @@ NRPaging-eDRX-Cycle-Inactive ::= ENUMERATED {
...
}
+
+NRPaginglongeDRXInformationforRRCINACTIVE ::= SEQUENCE {
+ nRPaging-long-eDRX-Cycle-Inactive NRPaging-long-eDRX-Cycle-Inactive,
+ nRPaging-Time-Window-Inactive NRPaging-Time-Window-Inactive,
+ iE-Extensions ProtocolExtensionContainer { { NRPaginglongeDRXInformationforRRCINACTIVE-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NRPaginglongeDRXInformationforRRCINACTIVE-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NRPaging-long-eDRX-Cycle-Inactive ::= ENUMERATED {
+ hf2, hf4, hf8, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...
+}
+
+
+NRPaging-Time-Window-Inactive ::= ENUMERATED {
+ s1, s2, s3, s4, s5,
+ s6, s7, s8, s9, s10,
+ s11, s12, s13, s14, s15, s16,
+ s17, s18, s19, s20, s21, s22,
+ s23, s24, s25, s26, s27, s28, s29,
+ s30, s31, s32, ...
+}
+
NonDynamic5QIDescriptor ::= SEQUENCE {
fiveQI INTEGER (0..255, ...),
qoSPriorityLevel INTEGER (1..127) OPTIONAL,
@@ -4377,7 +5413,7 @@ NR-Mode-Info ::= CHOICE {
}
NR-Mode-Info-ExtIEs F1AP-PROTOCOL-IES ::= {
- { ID id-NR-U CRITICALITY ignore TYPE NR-U-Channel-Info-List PRESENCE optional },
+ { ID id-NR-U CRITICALITY ignore TYPE NR-U-Channel-Info-List PRESENCE mandatory},
...
}
@@ -4405,7 +5441,7 @@ NRPRACHConfig-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
NRCellIdentity ::= BIT STRING (SIZE(36))
-NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ..., nrb33, nrb62, nrb124, nrb148, nrb248, nrb44, nrb58, nrb92, nrb119, nrb188, nrb242}
+NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ..., nrb33, nrb62, nrb124, nrb148, nrb248, nrb44, nrb58, nrb92, nrb119, nrb188, nrb242, nrb15}
NRPCI ::= INTEGER(0..1007)
@@ -4439,7 +5475,7 @@ NR-U-Channel-Info-List ::= SEQUENCE (SIZE (1..maxnoofNR-UChannelIDs)) OF NR-U-Ch
NR-U-Channel-Info-Item ::= SEQUENCE {
nr-U-channel-ID INTEGER(1.. maxnoofNR-UChannelIDs,...),
nR-ARFCN INTEGER (0..maxNRARFCN),
- bandwidth ENUMERATED{mHz-10,mHz-20,mHz-40, mHz-60, mHz-80,...},
+ bandwidth ENUMERATED{mHz-10,mHz-20,mHz-40, mHz-60, mHz-80,..., mHz-100},
iE-Extensions ProtocolExtensionContainer { { NR-U-Channel-Info-List-ExtIEs } } OPTIONAL,
...
}
@@ -4460,6 +5496,8 @@ NR-U-Channel-Item ::= SEQUENCE {
}
NR-U-Channel-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ChannelOccupancyTimePercentageUL CRITICALITY ignore EXTENSION ChannelOccupancyTimePercentage PRESENCE optional}|
+ { ID id-RadioResourceStatusNR-U CRITICALITY ignore EXTENSION RadioResourceStatusNR-U PRESENCE optional},
...
}
@@ -4507,6 +5545,15 @@ NRUESidelinkAggregateMaximumBitrate-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
NZP-CSI-RS-ResourceID::= INTEGER (0..191)
+N6JitterInformation ::= SEQUENCE {
+ n6JitterLowerBound INTEGER (-127..127),
+ n6JitterUpperBound INTEGER (-127..127),
+ iE-Extensions ProtocolExtensionContainer { { N6JitterInformationExtIEs } } OPTIONAL,
+ ...}
+
+N6JitterInformationExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
-- O
@@ -4543,6 +5590,18 @@ PacketErrorRate-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+PathAdditionInformation ::= CHOICE {
+ indirectPathAddition IndirectPathAddition,
+ directPathAddition NULL,
+ n3C-indirectPathAddition N3CIndirectPathAddition,
+ choice-extension ProtocolIE-SingleContainer { { PathAdditionInformation-ExtIEs} }
+}
+
+PathAdditionInformation-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+
PER-Scalar ::= INTEGER (0..9, ...)
PER-Exponent ::= INTEGER (0..9, ...)
@@ -4553,7 +5612,19 @@ PagingCell-Item ::= SEQUENCE {
PagingCell-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-LastUsedCellIndication CRITICALITY ignore EXTENSION LastUsedCellIndication PRESENCE optional }|
- { ID id-PEISubgroupingSupportIndication CRITICALITY ignore EXTENSION PEISubgroupingSupportIndication PRESENCE optional },
+ { ID id-PEISubgroupingSupportIndication CRITICALITY ignore EXTENSION PEISubgroupingSupportIndication PRESENCE optional }|
+ { ID id-Recommended-SSBs-List CRITICALITY ignore EXTENSION Recommended-SSBs-List PRESENCE optional },
+ ...
+}
+
+Recommended-SSBs-List ::= SEQUENCE (SIZE(1.. maxnoofSSBAreas)) OF RecommendedSSBItem-List-Item
+
+RecommendedSSBItem-List-Item::= SEQUENCE {
+ sSB-Index SSB-Index,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedSSBItem-List-Item-ExtIEs} } OPTIONAL
+}
+
+RecommendedSSBItem-List-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
@@ -4581,6 +5652,8 @@ PagingOrigin ::= ENUMERATED { non-3gpp, ...}
PagingPriority ::= ENUMERATED { priolevel1, priolevel2, priolevel3, priolevel4, priolevel5, priolevel6, priolevel7, priolevel8,...}
+ParentTImeSource ::= ENUMERATED {synce, ptp, gnss, atomicclock, terrestrialradio, serialtimecode, ntp, handset, other, ...}
+
PEIPSAssistanceInfo ::= SEQUENCE {
cNSubgroupID CNSubgroupID,
iE-Extensions ProtocolExtensionContainer { { PEIPSAssistanceInfo-ExtIEs } } OPTIONAL
@@ -4601,6 +5674,12 @@ RelativePathDelay ::= CHOICE {
}
RelativePathDelay-ExtIEs F1AP-PROTOCOL-IES ::= {
+ {ID id-ReportingGranularitykminus1additionalpath CRITICALITY ignore TYPE ReportingGranularitykminus1AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus2additionalpath CRITICALITY ignore TYPE ReportingGranularitykminus2AdditionalPath PRESENCE mandatory }|
+ {ID id-ReportingGranularitykminus3additionalpath CRITICALITY ignore TYPE ReportingGranularitykminus3AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus4additionalpath CRITICALITY ignore TYPE ReportingGranularitykminus4AdditionalPath PRESENCE mandatory }|
+ {ID id-ReportingGranularitykminus5additionalpath CRITICALITY ignore TYPE ReportingGranularitykminus5AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus6additionalpath CRITICALITY ignore TYPE ReportingGranularitykminus6AdditionalPath PRESENCE mandatory },
...
}
@@ -4701,6 +5780,8 @@ PC5RLCChannelQoSInformation ::= CHOICE {
}
PC5RLCChannelQoSInformation-ExtIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-U2URLCChannelQoS CRITICALITY reject TYPE PC5QoSParameters PRESENCE mandatory},
+
...
}
@@ -4715,7 +5796,13 @@ PC5RLCChannelToBeSetupItem ::= SEQUENCE {
...
}
+-- WS modification: define a dedicated type
+PeerUE-ID ::= BIT STRING (SIZE (24))
+
PC5RLCChannelToBeSetupItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+-- WS modification: define a dedicated type
+-- { ID id-PeerUE-ID CRITICALITY reject EXTENSION BIT STRING (SIZE (24)) PRESENCE optional },
+ { ID id-PeerUE-ID CRITICALITY reject EXTENSION PeerUE-ID PRESENCE optional },
...
}
@@ -4918,6 +6005,28 @@ PeriodicityList-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+PeriodicityBound ::= SEQUENCE {
+ periodicityLowerBound Periodicity,
+ periodicityUpperBound Periodicity,
+ iE-Extensions ProtocolExtensionContainer { {PeriodicityBound-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PeriodicityBound-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedPeriodicityList ::= SEQUENCE (SIZE(1..maxnoofPeriodicities)) OF Periodicity
+
+PeriodicityRange ::= CHOICE {
+ periodicityBound PeriodicityBound,
+ periodicityList AllowedPeriodicityList,
+ choice-extensions ProtocolIE-SingleContainer { {PeriodicityRange-ExtIEs} }
+}
+
+PeriodicityRange-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
Permutation ::= ENUMERATED {dfu, ufd, ...}
@@ -4942,7 +6051,7 @@ PosBroadcast ::= ENUMERATED {
...
}
-PosConextRevIndication ::= ENUMERATED {true, ...}
+PosContextRevIndication ::= ENUMERATED {true, ...}
PositioningBroadcastCells ::= SEQUENCE (SIZE (1..maxnoBcastCell)) OF NRCGI
@@ -4991,6 +6100,7 @@ PosMeasurementQuantities-Item ::= SEQUENCE {
}
PosMeasurementQuantities-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-TimingReportingGranularityFactorExtended CRITICALITY ignore EXTENSION TimingReportingGranularityFactorExtended PRESENCE optional},
...
}
@@ -5007,7 +6117,11 @@ PosMeasurementResultItem ::= SEQUENCE {
PosMeasurementResultItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-ARP-ID CRITICALITY ignore EXTENSION ARP-ID PRESENCE optional}|
{ ID id-SRSResourcetype CRITICALITY ignore EXTENSION SRSResourcetype PRESENCE optional}|
- { ID id-LoS-NLoSInformation CRITICALITY ignore EXTENSION LoS-NLoSInformation PRESENCE optional },
+ { ID id-LoS-NLoSInformation CRITICALITY ignore EXTENSION LoS-NLoSInformation PRESENCE optional }|
+ { ID id-Mobile-TRP-LocationInformation CRITICALITY ignore EXTENSION Mobile-TRP-LocationInformation PRESENCE optional }|
+ { ID id-AggregatedPosSRSResourceIDList CRITICALITY ignore EXTENSION AggregatedPosSRSResourceIDList PRESENCE optional }|
+ { ID id-MeasuredFrequencyHops CRITICALITY ignore EXTENSION MeasuredFrequencyHops PRESENCE optional }|
+ { ID id-MeasBasedOnAggregatedResources CRITICALITY ignore EXTENSION MeasBasedOnAggregatedResources PRESENCE optional },
...
}
@@ -5031,7 +6145,8 @@ PosMeasurementType ::= ENUMERATED {
ul-rtoa,
... ,
multiple-ul-aoa,
- ul-srs-rsrpp
+ ul-srs-rsrpp,
+ ul-rscp
}
PosReportCharacteristics ::= ENUMERATED {
@@ -5107,6 +6222,7 @@ PosSRSResource-Item ::= SEQUENCE {
}
PosSRSResource-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-TxHoppingConfiguration CRITICALITY ignore EXTENSION TxHoppingConfiguration PRESENCE optional},
...
}
@@ -5120,9 +6236,21 @@ PosSRSResourceSet-Item ::= SEQUENCE {
}
PosSRSResourceSet-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-AggregatedPosSRSResourceSetList CRITICALITY ignore EXTENSION AggregatedPosSRSResourceSetList PRESENCE optional},
...
}
+PosValidityAreaCellList ::= SEQUENCE (SIZE(1.. maxnoVACell)) OF PosValidityAreaCellList-Item
+
+PosValidityAreaCellList-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ nRPCI INTEGER (0..1007) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PosValidityAreaCellList-Item-ExtIEs } } OPTIONAL
+}
+
+PosValidityAreaCellList-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
PosSRSResourceSet-List ::= SEQUENCE (SIZE (1..maxnoSRS-PosResourceSets)) OF PosSRSResourceSet-Item
PrimaryPathIndication ::= ENUMERATED {
@@ -5131,6 +6259,17 @@ PrimaryPathIndication ::= ENUMERATED {
...
}
+PreambleIndexList ::= SEQUENCE (SIZE (1.. maxnoofLTMCells)) OF PreambleIndexList-Item
+
+PreambleIndexList-Item::= SEQUENCE {
+ preambleIndex INTEGER (0..63),
+ iE-Extensions ProtocolExtensionContainer { { PreambleIndex-Item-ExtIEs} } OPTIONAL
+}
+
+PreambleIndex-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
Pre-emptionCapability ::= ENUMERATED {
shall-not-trigger-pre-emption,
may-trigger-pre-emption
@@ -5141,6 +6280,8 @@ Pre-emptionVulnerability ::= ENUMERATED {
pre-emptable
}
+Preconfigured-measurement-GAP-Request ::= ENUMERATED {true, ...}
+
PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
ProtectedEUTRAResourceIndication ::= OCTET STRING
@@ -5161,6 +6302,7 @@ PRSConfiguration ::= SEQUENCE {
}
PRSConfiguration-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-AggregatedPRSResourceSetList CRITICALITY ignore EXTENSION AggregatedPRSResourceSetList PRESENCE optional },
...
}
@@ -5206,9 +6348,9 @@ PRSAngleList ::= SEQUENCE (SIZE(1.. maxnoofPRS-ResourcesPerSet)) OF PRSAngleItem
PRSAngleItem ::= SEQUENCE {
nR-PRS-Azimuth INTEGER (0..359),
- nR-PRS-Azimuth-fine INTEGER (0..9),
- nR-PRS-Elevation INTEGER (0..180),
- nR-PRS-Elevation-fine INTEGER (0..9),
+ nR-PRS-Azimuth-fine INTEGER (0..9) OPTIONAL,
+ nR-PRS-Elevation INTEGER (0..180) OPTIONAL,
+ nR-PRS-Elevation-fine INTEGER (0..9) OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { PRSAngleItem-ItemExtIEs } } OPTIONAL
}
@@ -5263,9 +6405,16 @@ PRSResource-Item ::= SEQUENCE {
}
PRSResource-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ExtendedResourceSymbolOffset CRITICALITY ignore EXTENSION ExtendedResourceSymbolOffset PRESENCE optional}|
+ {ID id-AggregatedPRSResourceSetList CRITICALITY ignore EXTENSION AggregatedPRSResourceSetList PRESENCE optional},
...
}
+PRSBandwidthAggregationRequestIndication ::= ENUMERATED{true, ...}
+
+ExtendedResourceSymbolOffset ::= INTEGER (0..13,...)
+
+
PRSResource-QCLInfo ::= CHOICE {
qCLSourceSSB PRSResource-QCLSourceSSB,
qCLSourcePRS PRSResource-QCLSourcePRS,
@@ -5307,11 +6456,11 @@ PRSResourceSet-Item ::= SEQUENCE {
pointA INTEGER (0..3279165),
combSize ENUMERATED{n2, n4, n6, n12, ...},
cPType ENUMERATED{normal, extended, ...},
- resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,...},
+ resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,..., n128, n256, n512},
resourceSetSlotOffset INTEGER(0..81919,...),
resourceRepetitionFactor ENUMERATED{rf1,rf2,rf4,rf6,rf8,rf16,rf32,...},
resourceTimeGap ENUMERATED{tg1,tg2,tg4,tg8,tg16,tg32,...},
- resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...},
+ resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...,n1},
pRSMuting PRSMuting OPTIONAL,
pRSResourceTransmitPower INTEGER(-60..50),
pRSResource-List PRSResource-List,
@@ -5405,7 +6554,6 @@ PWSSystemInformationExtIEs F1AP-PROTOCOL-EXTENSION ::= {
PrivacyIndicator ::= ENUMERATED {immediate-MDT, logged-MDT, ...}
-PRS-ID ::= INTEGER(0..255)
PRSTRPList ::= SEQUENCE (SIZE(1.. maxnoofTRPs)) OF PRSTRPItem
@@ -5432,17 +6580,18 @@ RequestedDLPRSTransmissionCharacteristics ::= SEQUENCE {
...
}
RequestedDLPRSTransmissionCharacteristics-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-PRSBandwidthAggregationRequestIndication CRITICALITY ignore EXTENSION PRSBandwidthAggregationRequestIndication PRESENCE optional},
...
}
RequestedDLPRSResourceSet-List ::= SEQUENCE (SIZE (1..maxnoofPRSresourceSets)) OF RequestedDLPRSResourceSet-Item
RequestedDLPRSResourceSet-Item ::= SEQUENCE {
- pRSbandwidth INTEGER(1..63),
+ pRSbandwidth INTEGER(1..63) OPTIONAL,
combSize ENUMERATED{n2, n4, n6, n12, ...} OPTIONAL,
- resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,...} OPTIONAL,
+ resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,..., n128, n256, n512} OPTIONAL,
resourceRepetitionFactor ENUMERATED{rf1,rf2,rf4,rf6,rf8,rf16,rf32,...} OPTIONAL,
- resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...} OPTIONAL,
+ resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...,n1} OPTIONAL,
requestedDLPRSResource-List RequestedDLPRSResource-List OPTIONAL,
resourceSetStartTimeAndDuration StartTimeAndDuration OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { RequestedDLPRSResourceSet-Item-ExtIEs} } OPTIONAL,
@@ -5479,6 +6628,32 @@ PRSTransmissionTRPItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+PreambleIndex ::= INTEGER(0..63)
+
+PDUSetQoSParameters ::= SEQUENCE {
+ ulPDUSetQoSInformation PDUSetQoSInformation OPTIONAL,
+ dlPDUSetQoSInformation PDUSetQoSInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUSetQoSParameters-ExtIEs } } OPTIONAL
+}
+
+PDUSetQoSParameters-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDUSetQoSInformation ::= SEQUENCE {
+ pduSetDelayBudget ExtendedPacketDelayBudget OPTIONAL,
+ pduSetErrorRate PacketErrorRate OPTIONAL,
+ pduSetIntegratedHandlingInformation ENUMERATED {true, false, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUSetQoSInformation-ExtIEs } } OPTIONAL
+}
+
+PDUSetQoSInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PSIbasedSDUdiscardUL ::= ENUMERATED {start, stop, ...}
+
+PointA ::= INTEGER (0..3279165)
-- Q
@@ -5501,6 +6676,7 @@ QoEInformationList-Item ::= SEQUENCE {
}
QoEInformationList-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-dRB-List CRITICALITY ignore EXTENSION DRB-List PRESENCE optional},
...
}
@@ -5539,7 +6715,8 @@ QoSFlowLevelQoSParameters-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-PDUSessionID CRITICALITY ignore EXTENSION PDUSessionID PRESENCE optional}|
{ ID id-ULPDUSessionAggregateMaximumBitRate CRITICALITY ignore EXTENSION BitRate PRESENCE optional}|
{ ID id-QosMonitoringRequest CRITICALITY ignore EXTENSION QosMonitoringRequest PRESENCE optional}|
- { ID id-PDCPTerminatingNodeDLTNLAddrInfo CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional },
+ { ID id-PDCPTerminatingNodeDLTNLAddrInfo CRITICALITY ignore EXTENSION TransportLayerAddress PRESENCE optional }|
+ { ID id-PDUSetQoSParameters CRITICALITY ignore EXTENSION PDUSetQoSParameters PRESENCE optional},
...
}
@@ -5567,18 +6744,33 @@ RACH-Config-Common ::= OCTET STRING
RACH-Config-Common-IAB ::= OCTET STRING
-RACHReportContainer::= OCTET STRING
+Range ::= ENUMERATED {m50, m80, m180, m200, m350, m400, m500, m700, m1000, ...}
+
+RAReportContainer::= OCTET STRING
-RACHReportInformationList ::= SEQUENCE (SIZE(1.. maxnoofRACHReports)) OF RACHReportInformationItem
+RAReportList ::= SEQUENCE (SIZE(1.. maxnoofRAReports)) OF RAReportItem
-RACHReportInformationItem ::= SEQUENCE {
- rACHReportContainer RACHReportContainer,
+RAReportItem ::= SEQUENCE {
+ rAReportContainer RAReportContainer,
uEAssitantIdentifier GNB-DU-UE-F1AP-ID OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { { RACHReportInformationItem-ExtIEs} } OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RAReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RAReportItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAReportIndicationList ::= SEQUENCE (SIZE(1..maxnoofUEsforRAReportIndications)) OF RAReportIndicationList-Item
+
+RAReportIndicationList-Item ::= SEQUENCE {
+ gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { { RAReportIndicationList-Item-ExtIEs} } OPTIONAL,
...
+
}
-RACHReportInformationItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+RAReportIndicationList-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
@@ -5595,6 +6787,16 @@ RadioResourceStatus-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+RadioResourceStatusNR-U ::= SEQUENCE {
+ dl-Total-PRB-usage INTEGER (0..100),
+ ul-Total-PRB-usage INTEGER (0..100),
+ iE-Extensions ProtocolExtensionContainer { { RadioResourceStatusNR-U-ExtIEs} } OPTIONAL,
+ ...
+}
+RadioResourceStatusNR-U-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
MIMOPRBusageInformation ::= SEQUENCE {
dl-GBR-PRB-usage-for-MIMO INTEGER (0..100),
ul-GBR-PRB-usage-for-MIMO INTEGER (0..100),
@@ -5610,6 +6812,69 @@ MIMOPRBusageInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+RANfeedbacktype ::= CHOICE {
+ proactive RANfeedbacktype-proactive,
+ reactive RANfeedbacktype-reactive,
+ choice-extensions ProtocolIE-SingleContainer { {RANfeedbacktype-ExtIEs} }
+}
+
+RANfeedbacktype-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+RANfeedbacktype-proactive ::= SEQUENCE {
+ burstArrivalTimeWindow BurstArrivalTimeWindow,
+ periodicityRange PeriodicityRange OPTIONAL,
+ iE-Extension ProtocolExtensionContainer { {RANfeedbacktype-proactive-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RANfeedbacktype-proactive-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANfeedbacktype-reactive ::= SEQUENCE {
+ capabilityForBATAdaptation ENUMERATED {true, ...},
+ iE-Extension ProtocolExtensionContainer { {RANfeedbacktype-reactive-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RANfeedbacktype-reactive-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANSharingAssistanceInformation ::= ENUMERATED {
+ mbs-session-in-non-shared-cell-resources,
+ ...
+}
+
+RANTSSRequestType ::= ENUMERATED {start, stop, ...}
+
+RANTimingSynchronisationStatusInfo ::= SEQUENCE {
+ synchronisationstate ENUMERATED {locked, holdover, freeRun, ...} OPTIONAL,
+ traceabletoUTC ENUMERATED { true, false, ...} OPTIONAL,
+ traceabletoGNSS ENUMERATED { true, false, ...} OPTIONAL,
+ clockFrequencyStability BIT STRING (SIZE(16)) OPTIONAL,
+ clockAccuracy ClockAccuracy OPTIONAL,
+ parentTimeSource ParentTImeSource OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RANTimingSynchronisationStatusInfo-ExtIEs} } OPTIONAL,
+...
+}
+
+RANTimingSynchronisationStatusInfo-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+ }
+
+ClockAccuracy ::= CHOICE {
+ clockAccuracyValue INTEGER (1..40000000, ...),
+ clockAccuracyIndex INTEGER (32..47, ...),
+ choice-Extensions ProtocolIE-SingleContainer { { ClockAccuracy-ExtIEs} }
+}
+
+ClockAccuracy-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
RANAC ::= INTEGER (0..255)
RAN-MeasurementID ::= INTEGER (1.. 65536, ...)
@@ -5661,6 +6926,20 @@ Re-routingEnableIndicator ::= ENUMERATED {
...
}
+Recommended-SSBs-for-Paging-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF Recommended-SSBs-for-Paging-List-Item
+
+Recommended-SSBs-for-Paging-List-Item::= SEQUENCE {
+ nRCGI NRCGI,
+ sSBs-forPaging-List SSBs-forPaging-List,
+ iE-Extensions ProtocolExtensionContainer { { Recommended-SSBs-for-Paging-List-Item-ExtIEs} } OPTIONAL
+}
+
+Recommended-SSBs-for-Paging-List-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
Redcap-Bcast-Information ::= BIT STRING(SIZE(8))
RedCapIndication ::= ENUMERATED {true, ...}
@@ -5696,6 +6975,20 @@ ReferenceSignal-ExtIEs F1AP-PROTOCOL-IES ::= {
...
}
+
+RA-RNTI ::= INTEGER (0..65535, ...)
+
+ReferenceConfiguration ::= CHOICE {
+ rEQUESTforLowerLayerConfiguration RequestforLowerLayerConfiguration,
+ referenceConfiguration ReferenceConfigurationInformation,
+ choice-extension ProtocolIE-SingleContainer { { ReferenceConfiguration-ExtIEs } }
+}
+
+ReferenceConfiguration-ExtIEs F1AP-PROTOCOL-IES ::= {
+...
+}
+
+
RelativeCartesianLocation ::= SEQUENCE {
xYZunit ENUMERATED {mm, cm, dm, ...},
xvalue INTEGER (-65536..65535),
@@ -5732,6 +7025,34 @@ RegistrationRequest ::= ENUMERATED{start, stop, add, ...}
ReportCharacteristics ::= BIT STRING (SIZE(32))
+ReportingGranularitykminus1 ::= INTEGER(0..3940097)
+
+ReportingGranularitykminus2 ::= INTEGER(0..7880193)
+
+
+
+ReportingGranularitykminus3 ::= INTEGER(0..15760385)
+
+ReportingGranularitykminus4 ::= INTEGER(0..31520769)
+
+ReportingGranularitykminus5 ::= INTEGER(0..63041537)
+
+ReportingGranularitykminus6 ::= INTEGER(0..126083073)
+
+
+ReportingGranularitykminus1AdditionalPath ::= INTEGER(0..32701)
+
+ReportingGranularitykminus2AdditionalPath ::= INTEGER(0..65401)
+
+ReportingGranularitykminus3AdditionalPath ::= INTEGER(0..130801)
+
+ReportingGranularitykminus4AdditionalPath ::= INTEGER(0..261601)
+
+ReportingGranularitykminus5AdditionalPath ::= INTEGER(0..523201)
+
+ReportingGranularitykminus6AdditionalPath ::= INTEGER(0..1046401)
+
+
ReportingPeriodicity ::= ENUMERATED{ms500, ms1000, ms2000, ms5000, ms10000, ...}
RequestedBandCombinationIndex ::= OCTET STRING
@@ -5742,10 +7063,21 @@ RequestedP-MaxFR2 ::= OCTET STRING
Requested-PDCCH-BlindDetectionSCG ::= OCTET STRING
+RequestedSRSPreconfigurationCharacteristics-List ::= SEQUENCE (SIZE (1.. maxnoPreconfiguredSRS)) OF RequestedSRSPreconfigurationCharacteristics-Item
+
+RequestedSRSPreconfigurationCharacteristics-Item ::= SEQUENCE {
+ requestedSRSTransmissionCharacteristics RequestedSRSTransmissionCharacteristics,
+ iE-Extensions ProtocolExtensionContainer {{ RequestedSRSPreconfigurationCharacteristics-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+RequestedSRSPreconfigurationCharacteristics-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
RequestedSRSTransmissionCharacteristics ::= SEQUENCE {
numberOfTransmissions INTEGER (0..500, ...) OPTIONAL,
--- The IE shall be present if the Resource Type IE is set to “periodic†--
+ -- The above IE shall be present if the Resource Type IE is set to “periodic†--
resourceType ENUMERATED {periodic, semi-persistent, aperiodic,...},
bandwidthSRS BandwidthSRS,
sRSResourceSetList SRSResourceSetList OPTIONAL,
@@ -5754,7 +7086,10 @@ RequestedSRSTransmissionCharacteristics ::= SEQUENCE {
}
RequestedSRSTransmissionCharacteristics-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
- { ID id-SrsFrequency CRITICALITY ignore EXTENSION SrsFrequency PRESENCE optional },
+ { ID id-SrsFrequency CRITICALITY ignore EXTENSION SrsFrequency PRESENCE optional }|
+ { ID id-BW-Aggregation-Request-Indication CRITICALITY ignore EXTENSION BW-Aggregation-Request-Indication PRESENCE optional }|
+ { ID id-PosValidityAreaCellList CRITICALITY ignore EXTENSION PosValidityAreaCellList PRESENCE optional }|
+ { ID id-ValidityAreaSpecificSRSInformation CRITICALITY ignore EXTENSION ValidityAreaSpecificSRSInformation PRESENCE optional },
...
}
@@ -5786,6 +7121,19 @@ ResourceCoordinationTransferInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
ResourceCoordinationTransferContainer ::= OCTET STRING
+
+ResourceMapping ::= SEQUENCE {
+ startPosition INTEGER (0..13),
+ nrofSumbols ENUMERATED {n1, n2, n4, n8, n12},
+ iE-Extensions ProtocolExtensionContainer { { ResourceMapping-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResourceMapping-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
ResourceSetType ::= CHOICE {
periodic ResourceSetTypePeriodic,
semi-persistent ResourceSetTypeSemi-persistent,
@@ -5831,7 +7179,7 @@ RepetitionPeriod ::= INTEGER (0..131071, ...)
ReportingRequestType ::= SEQUENCE {
eventType EventType,
reportingPeriodicityValue ReportingPeriodicityValue OPTIONAL,
- -- C-ifEventTypeisPeriodic: This IE shall be present if the Event Type IE is set to "periodic" in the Event Type IE.
+ -- The above IE shall be present if the Event Type IE is set to "periodic" in the Event Type IE.
iE-Extensions ProtocolExtensionContainer { {ReportingRequestType-ExtIEs} } OPTIONAL
}
@@ -5891,7 +7239,7 @@ ResourceTypePos-ExtIEs F1AP-PROTOCOL-IES ::= {
}
ResourceTypePeriodicPos ::= SEQUENCE {
- periodicity ENUMERATED{slot1, slot2, slot4, slot5, slot8, slot10, slot16, slot20, slot32, slot40, slot64, slot80, slot160, slot320, slot640, slot1280, slot2560, slot5120, slot10240, slot40960, slot81920, ..., slot128, slot256, slot512, slot20480},
+ periodicity SRS-Periodicity,
offset INTEGER(0..81919, ...),
iE-Extensions ProtocolExtensionContainer { { ResourceTypePeriodicPos-ExtIEs} } OPTIONAL
}
@@ -5901,7 +7249,7 @@ ResourceTypePeriodicPos-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
}
ResourceTypeSemi-persistentPos ::= SEQUENCE {
- periodicity ENUMERATED{slot1, slot2, slot4, slot5, slot8, slot10, slot16, slot20, slot32, slot40, slot64, slot80, slot160, slot320, slot640, slot1280, slot2560, slot5120, slot10240, slot40960, slot81920, ..., slot128, slot256, slot512, slot20480},
+ periodicity SRS-Periodicity,
offset INTEGER(0..81919, ...),
iE-Extensions ProtocolExtensionContainer { { ResourceTypeSemi-persistentPos-ExtIEs} } OPTIONAL
}
@@ -6006,6 +7354,18 @@ RRCReconfigurationCompleteIndicator ::= ENUMERATED {
failure
}
+RRC-Terminating-IAB-Donor-Related-Info ::= SEQUENCE {
+ rRC-TerminatingIAB-Donor-gNB-ID GlobalGNB-ID,
+ mobileIAB-MT-BAP-Address BAPAddress,
+ iE-Extensions ProtocolExtensionContainer { { RRC-Terminating-IAB-Donor-Related-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RRC-Terminating-IAB-Donor-Related-Info-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
RRC-Version ::= SEQUENCE {
latest-RRC-Version BIT STRING (SIZE(3)),
iE-Extensions ProtocolExtensionContainer { { RRC-Version-ExtIEs } } OPTIONAL}
@@ -6033,6 +7393,14 @@ ResponseTime-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+RACHConfiguration ::= OCTET STRING
+
+RequestforRACHConfiguration ::= ENUMERATED {true, ...}
+
+RequestforLowerLayerConfiguration::= ENUMERATED {true, ...}
+
+
+
RxTxTimingErrorMargin ::= ENUMERATED {tc0dot5, tc1, tc2, tc4, tc8, tc12, tc16, tc20, tc24, tc32, tc40, tc48, tc64, tc80, tc96, tc128, ...}
-- S
@@ -6103,6 +7471,21 @@ SCGActivationStatus ::= ENUMERATED {scg-activated, scg-deactivated, ...}
SCGIndicator ::= ENUMERATED{released, ...}
+SCPAC-Request ::= ENUMERATED {initiation, ...}
+
+S-CPAC-Configuration ::= SEQUENCE {
+ referenceConfigurationInformation ReferenceConfigurationInformation OPTIONAL,
+ completeConfigurationIndicator CompleteConfigurationIndicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { S-CPAC-Configuration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+S-CPAC-Configuration-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+S-CPACLowerLayerReferenceConfigRequest ::= ENUMERATED{true, ...}
+
SCS-480 ::= INTEGER(0..319)
SCS-960 ::= INTEGER(0..639)
@@ -6165,8 +7548,9 @@ SDTInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
SDTRLCBearerConfiguration ::= OCTET STRING
-SDT-Termination-Request ::= ENUMERATED {radio-link-problem, normal, ...}
+SDT-Termination-Request ::= ENUMERATED {radio-link-problem, normal, ...,sdt-volume-threshold-crossed}
+SDT-Volume-Threshold ::= INTEGER(1.. 192000,...)
Search-window-information ::= SEQUENCE {
expectedPropagationDelay INTEGER (-3841..3841,...),
@@ -6188,6 +7572,8 @@ SelectedFeatureSetEntryIndex ::= OCTET STRING
CG-ConfigInfo ::= OCTET STRING
+ServCellInfoList ::= OCTET STRING
+
ServCellIndex ::= INTEGER (0..31, ...)
ServingCellMO ::= INTEGER (1..64, ...)
@@ -6211,6 +7597,7 @@ ServingCellMO-encoded-in-CGC-Item ::= SEQUENCE {
}
ServingCellMO-encoded-in-CGC-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-BWP-Id CRITICALITY ignore EXTENSION BWP-Id PRESENCE optional },
...
}
@@ -6241,7 +7628,9 @@ Served-Cell-Information-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
{ ID id-SFN-Offset CRITICALITY ignore EXTENSION SFN-Offset PRESENCE optional }|
{ ID id-NPNBroadcastInformation CRITICALITY reject EXTENSION NPNBroadcastInformation PRESENCE optional }|
{ ID id-Supported-MBS-FSA-ID-List CRITICALITY ignore EXTENSION Supported-MBS-FSA-ID-List PRESENCE optional }|
- { ID id-Redcap-Bcast-Information CRITICALITY ignore EXTENSION Redcap-Bcast-Information PRESENCE optional },
+ { ID id-Redcap-Bcast-Information CRITICALITY ignore EXTENSION Redcap-Bcast-Information PRESENCE optional }|
+ { ID id-ERedcap-Bcast-Information CRITICALITY ignore EXTENSION ERedcap-Bcast-Information PRESENCE optional }|
+ { ID id-XR-Bcast-Information CRITICALITY ignore EXTENSION XR-Bcast-Information PRESENCE optional },
...
}
@@ -6337,6 +7726,8 @@ RelativeTime1900 ::= BIT STRING (SIZE (64))
ShortDRXCycleLength ::= ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32, ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, ...}
+ShortNonIntegerDRXCycleLength ::= ENUMERATED { ms1001over240, ms25over6, ms25over3, ms1001over120, ms100over9, ms25over2, ms40over3, ms125over9, ms50over3, ms1001over60, ms125over6, ms200over9, ms100over3, ms1001over30, ms125over3, ms1001over24, ms200over3, ...}
+
ShortDRXCycleTimer ::= INTEGER (1..16)
SIB1-message ::= OCTET STRING
@@ -6355,6 +7746,12 @@ SIB17-message ::= OCTET STRING
SIB20-message ::= OCTET STRING
+SIB24-message ::= OCTET STRING
+
+SIB22-message ::= OCTET STRING
+
+SIB23-message ::= OCTET STRING
+
SItype ::= INTEGER (1..32, ...)
SItype-List ::= SEQUENCE (SIZE(1.. maxnoofSITypes)) OF SItype-Item
@@ -6403,7 +7800,6 @@ SLDRBInformation ::= SEQUENCE {
flowsMappedToSLDRB-List FlowsMappedToSLDRB-List,
...
}
-
SLDRBs-FailedToBeModified-Item ::= SEQUENCE {
sLDRBID SLDRBID ,
cause Cause OPTIONAL,
@@ -6496,6 +7892,7 @@ SLDRBs-ToBeModified-Item ::= SEQUENCE {
}
SLDRBs-ToBeModified-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-duplicationIndication CRITICALITY ignore EXTENSION DuplicationIndication PRESENCE optional},
...
}
@@ -6517,6 +7914,7 @@ SLDRBs-ToBeSetup-Item ::= SEQUENCE {
}
SLDRBs-ToBeSetup-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-duplicationIndication CRITICALITY ignore EXTENSION DuplicationIndication PRESENCE optional},
...
}
@@ -6528,6 +7926,7 @@ SLDRBs-ToBeSetupMod-Item ::= SEQUENCE {
}
SLDRBs-ToBeSetupMod-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-duplicationIndication CRITICALITY ignore EXTENSION DuplicationIndication PRESENCE optional},
...
}
@@ -6560,6 +7959,8 @@ SLDRXInformation-ExtIEs F1AP-PROTOCOL-IES ::= {
SL-PHY-MAC-RLC-Config ::= OCTET STRING
+SL-PHY-MAC-RLC-ConfigExt ::= OCTET STRING
+
SL-RLC-ChannelToAddModList::= OCTET STRING
SL-ConfigDedicatedEUTRA-Info ::= OCTET STRING
@@ -6662,6 +8063,60 @@ SliceToReportItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
SlotNumber ::= INTEGER (0..79)
+SLPositioning-Ranging-Service-Info ::= SEQUENCE{
+ sLPositioning-Ranging-Authorized SLPositioning-Ranging-Authorized,
+ rSPP-transport-QoS-parameters RSPP-transport-QoS-parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SLPositioning-Ranging-Service-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SLPositioning-Ranging-Service-Info-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SLPositioning-Ranging-Authorized ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+RSPP-transport-QoS-parameters ::= SEQUENCE {
+ rSPPQoSFlowList RSPPQoSFlowList,
+ rSPPLinkAggregateBitRates BitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RSPP-transport-QoS-parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPP-transport-QoS-parameters-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+RSPPQoSFlowList ::= SEQUENCE (SIZE(1..maxnoofRSPPQoSFlows)) OF RSPPQoSFlowItem
+
+RSPPQoSFlowItem ::= SEQUENCE {
+ pQI FiveQI,
+ rSPPFlowBitRates RSPPFlowBitRates OPTIONAL,
+ range Range OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RSPPQoSFlowItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPPQoSFlowItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RSPPFlowBitRates ::= SEQUENCE {
+ guaranteedFlowBitRate BitRate,
+ maximumFlowBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { { RSPPFlowBitRates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPPFlowBitRates-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
SNSSAI-list ::= SEQUENCE (SIZE(1.. maxnoofSliceItems)) OF SNSSAI-Item
SNSSAI-Item ::= SEQUENCE {
@@ -6685,6 +8140,63 @@ Slot-Configuration-ItemExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+SlotOffsetForRemainingHopsList ::= SEQUENCE (SIZE (1..maxnoHopsMinusOne)) OF SlotOffsetForRemainingHopsItem
+
+SlotOffsetForRemainingHopsItem ::= SEQUENCE {
+ slotOffsetRemainingHops SlotOffsetRemainingHops,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetForRemainingHopsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetForRemainingHopsItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SlotOffsetRemainingHops ::= CHOICE {
+ aperiodic SlotOffsetRemainingHopsAperiodic,
+ semi-persistent SlotOffsetRemainingHopsSemiPersistent,
+ periodic SlotOffsetRemainingHopsPeriodic,
+ choice-extension ProtocolIE-SingleContainer {{ SlotOffsetRemainingHops-ExtIEs }}
+}
+
+SlotOffsetRemainingHops-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+SlotOffsetRemainingHopsAperiodic ::= SEQUENCE {
+ slotOffset INTEGER (1..32) OPTIONAL,
+ startPosition INTEGER (0..13) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetRemainingHopsAperiodic-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetRemainingHopsAperiodic-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SlotOffsetRemainingHopsSemiPersistent ::= SEQUENCE {
+ sRSperiodicity SRS-Periodicity,
+ offset INTEGER(0..81919, ...),
+ startPosition INTEGER (0..13) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetRemainingHopsSemiPersistent-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetRemainingHopsSemiPersistent-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SlotOffsetRemainingHopsPeriodic ::= SEQUENCE {
+ sRSperiodicity SRS-Periodicity,
+ offset INTEGER(0..81919, ...),
+ startPosition INTEGER (0..13) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetRemainingHopsSemiPeriodic-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetRemainingHopsSemiPeriodic-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
SNSSAI ::= SEQUENCE {
sST OCTET STRING (SIZE(1)),
@@ -6759,7 +8271,7 @@ SpatialInformationPos-ExtIEs F1AP-PROTOCOL-IES ::= {
SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB)
-SRBID ::= INTEGER (0..3, ...)
+SRBID ::= INTEGER (0..3, ..., 4 | 5)
SRBs-FailedToBeSetup-Item ::= SEQUENCE {
sRBID SRBID ,
@@ -6905,6 +8417,19 @@ SRSPortIndex ::= ENUMERATED {id1000, id1001, id1002, id1003,...}
SRSPosResourceID ::= INTEGER (0..63)
+SRSPreconfiguration-List ::= SEQUENCE (SIZE (1.. maxnoPreconfiguredSRS)) OF SRSPreconfiguration-Item
+
+SRSPreconfiguration-Item ::= SEQUENCE {
+ sRSPosRRCInactiveValidityAreaConfig SRSPosRRCInactiveValidityAreaConfig,
+ posValidityAreaCellList PosValidityAreaCellList,
+ iE-Extensions ProtocolExtensionContainer {{ SRSPreconfiguration-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SRSPreconfiguration-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
SRSResource::= SEQUENCE {
sRSResourceID SRSResourceID,
nrofSRS-Ports ENUMERATED {port1, ports2, ports4},
@@ -6924,10 +8449,10 @@ SRSResource::= SEQUENCE {
}
SRSResource-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
-{ ID id-nrofSymbolsExtended CRITICALITY ignore EXTENSION NrofSymbolsExtended PRESENCE optional}|
-{ ID id-repetitionFactorExtended CRITICALITY ignore EXTENSION RepetitionFactorExtended PRESENCE optional}|
-{ ID id-startRBHopping CRITICALITY ignore EXTENSION StartRBHopping PRESENCE optional}|
-{ ID id-startRBIndex CRITICALITY ignore EXTENSION StartRBIndex PRESENCE optional},
+ { ID id-nrofSymbolsExtended CRITICALITY ignore EXTENSION NrofSymbolsExtended PRESENCE optional}|
+ { ID id-repetitionFactorExtended CRITICALITY ignore EXTENSION RepetitionFactorExtended PRESENCE optional}|
+ { ID id-startRBHopping CRITICALITY ignore EXTENSION StartRBHopping PRESENCE optional}|
+ { ID id-startRBIndex CRITICALITY ignore EXTENSION StartRBIndex PRESENCE optional},
...
}
@@ -7003,8 +8528,12 @@ SRSInfo ::= SEQUENCE {
...
}
+SRS-Periodicity ::= ENUMERATED{slot1, slot2, slot4, slot5, slot8, slot10, slot16, slot20, slot32, slot40, slot64, slot80, slot160, slot320, slot640, slot1280, slot2560, slot5120, slot10240, slot40960, slot81920, ..., slot128, slot256, slot512, slot20480}
+
SRSPosRRCInactiveConfig ::= OCTET STRING
+SRSPosRRCInactiveValidityAreaConfig ::= OCTET STRING
+
SRSPosRRCInactiveQueryIndication ::= ENUMERATED {true, ...}
PosSRSInfo ::= SEQUENCE {
@@ -7012,12 +8541,16 @@ PosSRSInfo ::= SEQUENCE {
...
}
+SRSReservationType ::= ENUMERATED {reserve, release, ...}
+
+
SSB ::= SEQUENCE {
pCI-NR NRPCI,
ssb-index SSB-Index OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {SSB-ExtIEs} } OPTIONAL
}
+
SSBCoverageModification-List ::= SEQUENCE (SIZE (1..maxnoofSSBAreas)) OF SSBCoverageModification-Item
SSBCoverageModification-Item::= SEQUENCE {
@@ -7123,6 +8656,13 @@ SSB-PositionsInBurst-ExtIEs F1AP-PROTOCOL-IES ::= {
...
}
+SSBs-activated-List ::= SEQUENCE (SIZE(1.. maxnoofSSBAreas)) OF SSB-Index
+
+SSBs-forPaging-List ::= SEQUENCE (SIZE(1.. maxnoofSSBAreas)) OF SSB-Index
+
+SSBs-toBeActivated-List ::= SEQUENCE (SIZE(1.. maxnoofSSBAreas)) OF SSB-Index
+
+
SSB-TF-Configuration ::= SEQUENCE {
sSB-frequency INTEGER (0..3279165),
sSB-subcarrier-spacing ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, ..., kHz480, kHz960},
@@ -7202,6 +8742,18 @@ SuccessfulHOReportInformation-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+SuccessfulPSCellChangeReportInformationList::= SEQUENCE (SIZE(1.. maxnoofSuccessfulPSCellChangeReports)) OF SuccessfulPSCellChangeReportInformation-Item
+
+SuccessfulPSCellChangeReportInformation-Item ::= SEQUENCE {
+ successfulPSCellChangeReportContainer OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer { { SuccessfulPSCellChangeReportInformation-Item-ExtIEs } } OPTIONAL
+}
+
+SuccessfulPSCellChangeReportInformation-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
SULAccessIndication ::= ENUMERATED {true,...}
@@ -7215,6 +8767,18 @@ SupportedSULFreqBandItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+SupportedUETypeList ::= SEQUENCE (SIZE(1.. maxnoofUETypes)) OF SupportedUETypeList-Item
+
+SupportedUETypeList-Item ::= SEQUENCE {
+ supportedUEtype ENUMERATED {non-redcap-ue, redcap-ue, ...},
+ iE-Extensions ProtocolExtensionContainer { { SupportedUETypeList-Item-ExtIEs } } OPTIONAL,
+ ...
+}
+
+SupportedUETypeList-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
SurvivalTime ::= INTEGER (0.. 1920000,...)
SymbolAllocInSlot ::= CHOICE {
@@ -7228,16 +8792,34 @@ SymbolAllocInSlot-ExtIEs F1AP-PROTOCOL-IES ::= {
...
}
+SymbolIndex ::= INTEGER (0..13)
+
+
SystemFrameNumber ::= INTEGER (0..1023)
SystemInformationAreaID ::=BIT STRING (SIZE (24))
-- T
+TAI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ fiveGS-TAC FiveGS-TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAAssistanceInfo ::= ENUMERATED{zero, ...}
+
FiveGS-TAC ::= OCTET STRING (SIZE(3))
Configured-EPS-TAC ::= OCTET STRING (SIZE(2))
+TagIDPointer ::= OCTET STRING
+
TargetCellList ::= SEQUENCE (SIZE(1..maxnoofCHOcells)) OF TargetCellList-Item
TargetCellList-Item ::= SEQUENCE {
@@ -7264,6 +8846,12 @@ NSAGSupportItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
NSAG-ID ::= INTEGER (0..255, ...)
+
+TCIStatesConfigurationsList ::= OCTET STRING
+
+TAValue ::= INTEGER (0..4095)
+
+
TDD-Info ::= SEQUENCE {
nRFreqInfo NRFreqInfo,
transmission-Bandwidth Transmission-Bandwidth,
@@ -7328,8 +8916,8 @@ RxTEG-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
TimeReferenceInformation ::= SEQUENCE {
referenceTime ReferenceTime,
referenceSFN ReferenceSFN,
- uncertainty Uncertainty,
- timeInformationType TimeInformationType,
+ uncertainty Uncertainty OPTIONAL,
+ timeInformationType TimeInformationType OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {TimeReferenceInformation-ExtIEs} } OPTIONAL
}
@@ -7347,6 +8935,7 @@ TimeStamp ::= SEQUENCE {
}
TimeStamp-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-SymbolIndex CRITICALITY ignore EXTENSION SymbolIndex PRESENCE optional },
...
}
@@ -7378,6 +8967,75 @@ TimingMeasurementQuality-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+TimingReportingGranularityFactorExtended ::=INTEGER(-6..-1,...)
+
+TimeWindowInformation-Measurement-List ::= SEQUENCE (SIZE (1.. maxnoofTimeWindowMea)) OF TimeWindowInformation-Measurement-Item
+
+
+TimeWindowInformation-Measurement-Item ::= SEQUENCE {
+ timeWindowDurationMeasurement TimeWindowDurationMeasurement,
+ timeWindowType ENUMERATED {single, periodic, ...},
+ timeWindowPeriodicityMeasurement TimeWindowPeriodicityMeasurement OPTIONAL,
+ -- This IE shall be present if the Time Window Type IE is set to the value “periodicâ€.
+ iE-Extension ProtocolExtensionContainer { { TimeWindowInformation-Measurement-Item-ExtIEs} } OPTIONAL,
+ ...}
+
+TimeWindowInformation-Measurement-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeWindowInformation-SRS-List ::= SEQUENCE (SIZE (1.. maxnoofTimeWindowSRS)) OF TimeWindowInformation-SRS-Item
+
+TimeWindowInformation-SRS-Item ::= SEQUENCE {
+ timeWindowStartSRS TimeWindowStartSRS,
+ timeWindowDurationSRS TimeWindowDurationSRS,
+ timeWindowType ENUMERATED {single, periodic, ...},
+ timeWindowPeriodicitySRS TimeWindowPeriodicitySRS OPTIONAL,
+ -- The above IE shall be present if the Time Window Type IE is set to the value “periodicâ€.
+ iE-Extension ProtocolExtensionContainer { { TimeWindowInformation-SRS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeWindowInformation-SRS-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeWindowDurationMeasurement ::= CHOICE {
+ durationSlots ENUMERATED {n1, n2, n4, n6, n8, n12, n16, ...},
+ choice-extension ProtocolIE-SingleContainer { { TimeWindowDurationMeasurement-ExtIEs} }
+}
+
+TimeWindowDurationMeasurement-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+TimeWindowDurationSRS ::= CHOICE {
+ durationSymbols ENUMERATED {n1, n2, n4, n8, n12, ...},
+ durationSlots ENUMERATED {n1, n2, n4, n6, n8, n12, n16, ...},
+ choice-extension ProtocolIE-SingleContainer { { TimeWindowDurationSRS-ExtIEs} }
+}
+
+TimeWindowDurationSRS-ExtIEs F1AP-PROTOCOL-IES ::= {
+ ...
+}
+
+TimeWindowPeriodicityMeasurement ::= ENUMERATED {ms160, ms320, ms640, ms1280, ms2560, ms5120, ms10240, ms20480, ms40960, ms61440, ms81920, ms368640, ms737280, ms1843200, ...}
+
+TimeWindowPeriodicitySRS ::= ENUMERATED {ms0dot125, ms0dot25, ms0dot5, ms0dot625, ms1, ms1dot25, ms2, ms2dot5, ms4, ms5, ms8, ms10, ms16, ms20, ms32, ms40, ms64, ms80, ms160, ms320, ms640, ms1280, ms2560, ms5120, ms10240, ...}
+
+TimeWindowStartSRS ::= SEQUENCE {
+ systemFrameNumber SystemFrameNumber,
+ slotNumber SlotNumber,
+ symbolIndex SymbolIndex,
+ iE-Extension ProtocolExtensionContainer { { TimeWindowStartSRS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeWindowStartSRS-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
TMGI ::= OCTET STRING (SIZE(6))
TNLAssociationUsage ::= ENUMERATED {
@@ -7606,6 +9264,8 @@ TRPInformation ::= SEQUENCE {
}
TRPInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Mobile-IAB-MT-UE-ID CRITICALITY reject EXTENSION Mobile-IAB-MT-UE-ID PRESENCE optional},
+ -- The above IE shall be present if the TRP type IE is set to the value "mobile-trp"
...
}
@@ -7631,7 +9291,9 @@ TRPInformationTypeItem ::= ENUMERATED {
trp-type,
ondemandPRS,
trpTxTeg,
- beam-antenna-info
+ beam-antenna-info,
+ mobile-trp-location-info
+
}
@@ -7652,8 +9314,9 @@ TRPInformationTypeResponseItem ::= CHOICE {
TRPInformationTypeResponseItem-ExtIEs F1AP-PROTOCOL-IES ::= {
{ ID id-TRPType CRITICALITY reject TYPE TRPType PRESENCE mandatory }|
{ ID id-OnDemandPRS CRITICALITY reject TYPE OnDemandPRS-Info PRESENCE mandatory}|
- { ID id-TRPTxTEGAssociation CRITICALITY reject TYPE TRPTxTEGAssociation PRESENCE optional }|
- { ID id-TRPBeamAntennaInformation CRITICALITY reject TYPE TRPBeamAntennaInformation PRESENCE mandatory },
+ { ID id-TRPTxTEGAssociation CRITICALITY reject TYPE TRPTxTEGAssociation PRESENCE mandatory}|
+ { ID id-TRPBeamAntennaInformation CRITICALITY reject TYPE TRPBeamAntennaInformation PRESENCE mandatory }|
+ { ID id-Mobile-TRP-LocationInformation CRITICALITY ignore TYPE Mobile-TRP-LocationInformation PRESENCE mandatory },
...
}
@@ -7666,6 +9329,7 @@ TRPListItem ::= SEQUENCE {
}
TRPListItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-PRSBandwidthAggregationRequestIndication CRITICALITY ignore EXTENSION PRSBandwidthAggregationRequestIndication PRESENCE optional},
...
}
@@ -7685,6 +9349,17 @@ TRPMeasurementQuality-Item ::= CHOICE {
}
TRPMeasurementQuality-Item-ExtIEs F1AP-PROTOCOL-IES ::= {
+ {ID id-PhaseQuality CRITICALITY ignore TYPE PhaseQuality PRESENCE mandatory},
+ ...
+}
+
+PhaseQuality ::= SEQUENCE {
+ phaseQualityIndex INTEGER(0..179),
+ phaseQualityResolution ENUMERATED {deg0dot1, deg1, ...},
+ iE-Extensions ProtocolExtensionContainer { { PhaseQuality-ExtIEs } } OPTIONAL
+}
+
+PhaseQuality-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
@@ -7850,7 +9525,8 @@ TRPType ::= ENUMERATED {
tp,
rp,
trp,
- ...
+ ...,
+ mobile-trp
}
TSCAssistanceInformation ::= SEQUENCE {
@@ -7861,7 +9537,9 @@ TSCAssistanceInformation ::= SEQUENCE {
}
TSCAssistanceInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
- { ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional },
+ { ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional }|
+ { ID id-RANfeedbacktype CRITICALITY ignore EXTENSION RANfeedbacktype PRESENCE optional}|
+ { ID id-N6JitterInformation CRITICALITY ignore EXTENSION N6JitterInformation PRESENCE optional },
...
}
@@ -7876,6 +9554,28 @@ TSCTrafficCharacteristics-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+TSCTrafficCharacteristicsFeedback ::= SEQUENCE {
+ tSCFeedbackInformationDL TSCFeedbackInformation OPTIONAL,
+ tSCFeedbackInformationUL TSCFeedbackInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TSCTrafficCharacteristicsFeedback-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TSCTrafficCharacteristicsFeedback-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TSCFeedbackInformation ::= SEQUENCE {
+ burstArrivalTimeOffset INTEGER (-640000..640000, ...),
+ adjustedPeriodicity Periodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TSCFeedbackInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TSCFeedbackInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
TRP-MeasurementUpdateList ::= SEQUENCE (SIZE (1..maxNoOfMeasTRPs)) OF TRP-MeasurementUpdateItem
TRP-MeasurementUpdateItem ::= SEQUENCE {
@@ -7895,6 +9595,31 @@ TwoPHRModeMCG ::= ENUMERATED {enabled, ...}
TwoPHRModeSCG ::= ENUMERATED {enabled, ...}
+TxHoppingConfiguration ::= SEQUENCE {
+ overlapValue ENUMERATED {rb0, rb1, rb2, rb4},
+ numberOfHops INTEGER (1..6),
+ slotOffsetForRemainingHopsList SlotOffsetForRemainingHopsList,
+ iE-extensions ProtocolExtensionContainer { { TxHoppingConfiguration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TxHoppingConfiguration-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAInformation-List ::= SEQUENCE (SIZE(1.. maxnoofTAList)) OF TAInformation-Item
+
+TAInformation-Item ::= SEQUENCE {
+ nRCGI NRCGI,
+ tAValue TAValue,
+ iE-Extensions ProtocolExtensionContainer { { TAInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAInformation-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- U
UAC-Assistance-Info ::= SEQUENCE {
@@ -8020,6 +9745,7 @@ UE-MulticastMRBs-RequiredToBeModified-Item::= SEQUENCE {
three-rlc-um-dl-ptp-ul-ptp-dl-ptm,
two-rlc-am-ptp-um-dl-ptm,
...} OPTIONAL,
+ -- The above IE shall be present if the MRB Type Reconfiguration IE is present.
iE-Extensions ProtocolExtensionContainer { { UE-MulticastMRBs-RequiredToBeModified-Item-ExtIEs } } OPTIONAL
}
@@ -8039,7 +9765,7 @@ UE-MulticastMRBs-RequiredToBeReleased-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
UE-MulticastMRBs-Setup-Item ::= SEQUENCE {
mRB-ID MRB-ID,
- multicastF1UContextReferenceCU MulticastF1UContextReferenceCU OPTIONAL,
+ multicastF1UContextReferenceCU MulticastF1UContextReferenceCU,
iE-Extensions ProtocolExtensionContainer { { UE-MulticastMRBs-Setup-Item-ExtIEs } } OPTIONAL
}
@@ -8181,6 +9907,8 @@ UL-RTOA-MeasurementItem ::= CHOICE {
}
UL-RTOA-MeasurementItem-ExtIEs F1AP-PROTOCOL-IES ::= {
+ {ID id-ReportingGranularitykminus1 CRITICALITY ignore TYPE ReportingGranularitykminus1 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus2 CRITICALITY ignore TYPE ReportingGranularitykminus2 PRESENCE mandatory },
...
}
@@ -8196,6 +9924,16 @@ UL-SRS-RSRPP-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
...
}
+UL-RSCP ::= SEQUENCE {
+ uLRSCP INTEGER (0..3599),
+ iE-extensions ProtocolExtensionContainer { { UL-RSCP-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-RSCP-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
ULUEConfiguration ::= ENUMERATED {no-data, shared, only, ...}
@@ -8244,6 +9982,8 @@ UplinkTxDirectCurrentListInformation ::= OCTET STRING
UplinkTxDirectCurrentTwoCarrierListInfo ::= OCTET STRING
+ULTCIStateID ::= OCTET STRING
+
UPTransportLayerInformation ::= CHOICE {
gTPTunnel GTPTunnel,
choice-extension ProtocolIE-SingleContainer { { UPTransportLayerInformation-ExtIEs} }
@@ -8410,9 +10150,27 @@ PedestrianUE ::= ENUMERATED {
...
}
+-- V
+
+ValidityAreaSpecificSRSInformation ::= SEQUENCE {
+ transmissionCombPos TransmissionCombPos OPTIONAL,
+ resourceMapping ResourceMapping OPTIONAL,
+ freqDomainShift INTEGER (0..268) OPTIONAL,
+ c-SRS INTEGER (0..63) OPTIONAL,
+ resourceTypePos ResourceTypePos OPTIONAL,
+ sequenceIDPos INTEGER (0..65535) OPTIONAL,
+ iE-extensions ProtocolExtensionContainer { { ValidityAreaSpecificSRSInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ValidityAreaSpecificSRSInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- W
-- X
+XR-Bcast-Information ::= ENUMERATED {true, ...}
-- Y
diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
index 29efd82c..a31ad260 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.5.0 (2023-06)
+-- 3GPP TS 38.473 V18.2.0 (2024-06)
-- 9.4.4 PDU Definitions
-- **************************************************************
--
@@ -21,6 +21,7 @@ BEGIN
-- **************************************************************
IMPORTS
+ AssociatedSessionID,
BroadcastMRBs-FailedToBeModified-Item,
BroadcastMRBs-FailedToBeSetup-Item,
BroadcastMRBs-FailedToBeSetupMod-Item,
@@ -33,6 +34,7 @@ IMPORTS
BroadcastMRBs-ToBeSetupMod-Item,
Candidate-SpCell-Item,
Cause,
+ Cells-Allowed-to-be-Deactivated-List-Item,
Cells-Failed-to-be-Activated-List-Item,
Cells-Status-Item,
Cells-to-be-Activated-List-Item,
@@ -42,7 +44,6 @@ IMPORTS
C-RNTI,
CUtoDURRCInformation,
DRB-Activity-Item,
- DRBID,
DRBs-FailedToBeModified-Item,
DRBs-FailedToBeSetup-Item,
DRBs-FailedToBeSetupMod-Item,
@@ -60,7 +61,6 @@ IMPORTS
DRXCycle,
DRXConfigurationIndicator,
DUtoCURRCInformation,
- EUTRANQoS,
ExecuteDuplication,
FullConfiguration,
GNB-CU-MBS-F1AP-ID,
@@ -69,13 +69,11 @@ IMPORTS
GNB-DU-UE-F1AP-ID,
GNB-DU-ID,
GNB-DU-Served-Cells-Item,
- GNB-DU-System-Information,
GNB-CU-Name,
GNB-DU-Name,
InactivityMonitoringRequest,
InactivityMonitoringResponse,
LowerLayerPresenceStatusChange,
- MBS-Area-Session-ID,
MBS-CUtoDURRCInformation,
MBSMulticastF1UContextDescriptor,
MBS-Session-ID,
@@ -96,25 +94,24 @@ IMPORTS
MulticastMRBs-Modified-Item,
MulticastMRBs-FailedToBeModified-Item,
BroadcastAreaScope,
- NotificationControl,
+ NetworkControlledRepeaterAuthorized,
NRCGI,
- NRPCI,
UEContextNotRetrievable,
Potential-SpCell-Item,
+ RANSharingAssistanceInformation,
RAT-FrequencyPriorityInformation,
RequestedSRSTransmissionCharacteristics,
ResourceCoordinationTransferContainer,
RRCContainer,
RRCContainer-RRCSetupComplete,
RRCReconfigurationCompleteIndicator,
- SCellIndex,
SCell-ToBeRemoved-Item,
SCell-ToBeSetup-Item,
SCell-ToBeSetupMod-Item,
SCell-FailedtoSetup-Item,
SCell-FailedtoSetupMod-Item,
+ SDT-Volume-Threshold,
ServCellIndex,
- Served-Cell-Information,
Served-Cells-To-Add-Item,
Served-Cells-To-Delete-Item,
Served-Cells-To-Modify-Item,
@@ -130,6 +127,7 @@ IMPORTS
SRBs-Modified-Item,
SRBs-Setup-Item,
SRBs-SetupMod-Item,
+ SupportedUETypeList,
TimeToWait,
TransactionID,
TransmissionActionIndicator,
@@ -186,8 +184,6 @@ IMPORTS
TraceActivation,
TraceID,
Neighbour-Cell-Information-Item,
- SymbolAllocInSlot,
- NumDLULSymbols,
AdditionalRRMPriorityIndex,
DUCURadioInformationType,
CUDURadioInformationType,
@@ -204,18 +200,11 @@ IMPORTS
BHChannels-SetupMod-Item,
BHChannels-Required-ToBeReleased-Item,
BAPAddress,
- BAPPathID,
- BAPRoutingID,
BH-Routing-Information-Added-List-Item,
BH-Routing-Information-Removed-List-Item,
Child-Nodes-List,
- Child-Nodes-List-Item,
- Child-Node-Cells-List,
- Child-Node-Cells-List-Item,
Activated-Cells-to-be-Updated-List,
- Activated-Cells-to-be-Updated-List-Item,
UL-BH-Non-UP-Traffic-Mapping,
- IABTNLAddressesRequested,
IABIPv6RequestType,
IAB-TNL-Addresses-To-Remove-Item,
IABTNLAddress,
@@ -231,7 +220,6 @@ IMPORTS
LTEUESidelinkAggregateMaximumBitrate,
SLDRBs-SetupMod-Item,
SLDRBs-ModifiedConf-Item,
- SLDRBID,
SLDRBs-FailedToBeModified-Item,
SLDRBs-FailedToBeSetup-Item,
SLDRBs-FailedToBeSetupMod-Item,
@@ -252,7 +240,7 @@ IMPORTS
CellMeasurementResultList,
ReportingPeriodicity,
TNLCapacityIndicator,
- RACHReportInformationList,
+ RAReportList,
RLFReportInformationList,
ReportingRequestType,
TimeReferenceInformation,
@@ -312,15 +300,8 @@ IMPORTS
IAB-TNL-Addresses-Exception,
BAP-Header-Rewriting-Added-List-Item,
Re-routingEnableIndicator,
- NonF1terminatingTopologyIndicator,
- EgressNonF1terminatingTopologyIndicator,
- IngressNonF1terminatingTopologyIndicator,
Neighbour-Node-Cells-List,
- Neighbour-Node-Cells-List-Item,
- NA-Resource-Configuration-List,
- NA-Resource-Configuration-Item,
Serving-Cells-List,
- Serving-Cells-List-Item,
RBSetConfiguration,
PDCMeasurementPeriodicity,
PDCMeasurementQuantities,
@@ -339,7 +320,7 @@ IMPORTS
MeasurementCharacteristicsRequestIndicator,
MeasurementTimeOccasion,
UEReportingInformation,
- PosConextRevIndication,
+ PosContextRevIndication,
NRRedCapUEIndication,
NRPagingeDRXInformation,
NRPagingeDRXInformationforRRCINACTIVE,
@@ -404,7 +385,61 @@ IMPORTS
UlTxDirectCurrentMoreCarrierInformation,
CPACMCGInformation,
ExtendedUEIdentityIndexValue,
- HashedUEIdentityIndexValue
+ HashedUEIdentityIndexValue,
+ DedicatedSIDeliveryIndication,
+ Configured-BWP-List,
+ MT-SDT-Information,
+ LTMInformation-Setup,
+ LTMConfigurationIDMappingList,
+ LTMInformation-Modify,
+ LTMCells-ToBeReleased-List,
+ LTMCFRAResourceConfig-List,
+ LTMConfiguration,
+ EarlySyncInformation-Request,
+ EarlySyncInformation,
+ EarlySyncCandidateCellInformation-List,
+ EarlySyncServingCellInformation,
+ LTMCellSwitchInformation,
+ DUtoCUTAInformation-List,
+ CUtoDUTAInformation-List,
+ DeactivationIndication,
+ RAReportIndicationList,
+ SuccessfulPSCellChangeReportInformationList,
+ PathAdditionInformation,
+ RANTSSRequestType,
+ RANTimingSynchronisationStatusInfo,
+ GlobalGNB-ID,
+ Activated-Cells-Mapping-List-Item,
+ RRC-Terminating-IAB-Donor-Related-Info,
+ NCGI-to-be-Updated-List-Item,
+ Mobile-IAB-MTUserLocationInformation,
+ TAI,
+ IndicationMCInactiveReception,
+ MulticastCU2DURRCInfo,
+ MulticastDU2CURRCInfo,
+ MBSMulticastSessionReceptionState,
+ MulticastCU2DUCommonRRCInfo,
+ NRA2XServicesAuthorized,
+ LTEA2XServicesAuthorized,
+ NReRedCapUEIndication,
+ NRPaginglongeDRXInformationforRRCINACTIVE,
+ Cells-With-SSBs-Activated-List,
+ Recommended-SSBs-for-Paging-List,
+ S-CPAC-Configuration,
+ DLLBTFailureInformationRequest,
+ DLLBTFailureInformationList,
+ SLPositioning-Ranging-Service-Info,
+ TimeWindowInformation-SRS-List,
+ TimeWindowInformation-Measurement-List,
+ SRSPosRRCInactiveValidityAreaConfig,
+ SRSReservationType,
+ RequestedSRSPreconfigurationCharacteristics-List,
+ SRSPreconfiguration-List,
+ Broadcast-MRBs-Transport-Request-Item,
+ TAInformation-List,
+ NonIntegerDRXCycle,
+ AggregatedPosSRSResourceSetList,
+ F1U-PathFailure
@@ -422,6 +457,7 @@ FROM F1AP-IEs
FROM F1AP-Containers
+ id-AssociatedSessionID,
id-BroadcastMRBs-FailedToBeModified-List,
id-BroadcastMRBs-FailedToBeModified-Item,
id-BroadcastMRBs-FailedToBeSetup-List,
@@ -454,6 +490,10 @@ FROM F1AP-Containers
id-Cells-to-be-Activated-List-Item,
id-Cells-to-be-Deactivated-List,
id-Cells-to-be-Deactivated-List-Item,
+ id-Cells-Allowed-to-be-Deactivated-List,
+ id-Cells-Allowed-to-be-Deactivated-List-Item,
+ id-Cells-With-SSBs-Activated-List,
+ id-Recommended-SSBs-for-Paging-List,
id-ConfirmedUEID,
id-CriticalityDiagnostics,
id-C-RNTI,
@@ -505,7 +545,6 @@ FROM F1AP-Containers
id-Extended-GNB-DU-Name,
id-InactivityMonitoringRequest,
id-InactivityMonitoringResponse,
- id-MBS-Area-Session-ID,
id-MBS-CUtoDURRCInformation,
id-MBS-Session-ID,
id-MBS-ServiceArea,
@@ -567,6 +606,7 @@ FROM F1AP-Containers
id-SCell-ToBeSetupMod-Item,
id-SCell-ToBeSetupMod-List,
id-SDT-Termination-Request,
+ id-SDT-Volume-Threshold,
id-SelectedPLMNID,
id-Served-Cells-To-Add-Item,
id-Served-Cells-To-Add-List,
@@ -598,6 +638,7 @@ FROM F1AP-Containers
id-SRBs-Setup-List,
id-SRBs-SetupMod-Item,
id-SRBs-SetupMod-List,
+ id-SupportedUETypeList,
id-TimeToWait,
id-TransactionID,
id-TransmissionActionIndicator,
@@ -693,8 +734,6 @@ FROM F1AP-Containers
id-TraceID,
id-Neighbour-Cell-Information-List,
id-Neighbour-Cell-Information-Item,
- id-SymbolAllocInSlot,
- id-NumDLULSymbols,
id-AdditionalRRMPriorityIndex,
id-DUCURadioInformationType,
id-CUDURadioInformationType,
@@ -784,7 +823,7 @@ FROM F1AP-Containers
id-HardwareLoadIndicator,
id-ReportingPeriodicity,
id-TNLCapacityIndicator,
- id-RACHReportInformationList,
+ id-RAReportList,
id-RLFReportInformationList,
id-ReportingRequestType,
id-TimeReferenceInformation,
@@ -845,9 +884,6 @@ FROM F1AP-Containers
id-BAP-Header-Rewriting-Added-List,
id-BAP-Header-Rewriting-Added-List-Item,
id-Re-routingEnableIndicator,
- id-NonF1terminatingTopologyIndicator,
- id-EgressNonF1terminatingTopologyIndicator,
- id-IngressNonF1terminatingTopologyIndicator,
id-Neighbour-Node-Cells-List,
id-Serving-Cells-List,
id-MDTPollutedMeasurementIndicator,
@@ -868,7 +904,7 @@ FROM F1AP-Containers
id-MeasurementCharacteristicsRequestIndicator,
id-MeasurementTimeOccasion,
id-UEReportingInformation,
- id-PosConextRevIndication,
+ id-PosContextRevIndication,
id-NRRedCapUEIndication,
id-RANUEPagingDRX,
id-CNUEPagingDRX,
@@ -930,10 +966,73 @@ FROM F1AP-Containers
id-CPACMCGInformation,
id-ExtendedUEIdentityIndexValue,
id-HashedUEIdentityIndexValue,
+ id-DedicatedSIDeliveryIndication,
+ id-Configured-BWP-List,
+ id-NetworkControlledRepeaterAuthorized,
+ id-MT-SDT-Information,
+ id-LTMInformation-Setup,
+ id-LTMConfigurationIDMappingList,
+ id-LTMInformation-Modify,
+ id-LTMCells-ToBeReleased-List,
+ id-LTMConfiguration,
+ id-LTMCFRAResourceConfig-List,
+ id-EarlySyncInformation-Request,
+ id-EarlySyncInformation,
+ id-EarlySyncCandidateCellInformation-List,
+ id-EarlySyncServingCellInformation,
+ id-LTMCellSwitchInformation,
+ id-DUtoCUTAInformation-List,
+ id-CUtoDUTAInformation-List,
+ id-DeactivationIndication,
+ id-RAReportIndicationList,
+ id-SuccessfulPSCellChangeReportInformationList,
+ id-PathAdditionInformation,
+ id-RANTSSRequestType,
+ id-RANTimingSynchronisationStatusInfo,
+ id-Target-gNB-ID,
+ id-Target-gNB-IP-address,
+ id-Target-SeGW-IP-address,
+ id-Activated-Cells-Mapping-List,
+ id-Activated-Cells-Mapping-List-Item,
+ id-F1SetupOutcome,
+ id-RRC-Terminating-IAB-Donor-Related-Info,
+ id-RRC-Terminating-IAB-Donor-gNB-ID,
+ id-NCGI-to-be-Updated-List,
+ id-NCGI-to-be-Updated-List-Item,
+ id-Mobile-IAB-MTUserLocationInformation,
+ id-IndicationMCInactiveReception,
+ id-MulticastCU2DURRCInfo,
+ id-MulticastDU2CURRCInfo,
+ id-MBSMulticastSessionReceptionState,
+ id-MulticastCU2DUCommonRRCInfo,
+ id-NRA2XServicesAuthorized,
+ id-LTEA2XServicesAuthorized,
+ id-NRUESidelinkAggregateMaximumBitrateForA2X,
+ id-LTEUESidelinkAggregateMaximumBitrateForA2X,
+ id-NReRedCapUEIndication,
+ id-NRPaginglongeDRXInformationforRRCINACTIVE,
+ id-Target-F1-Terminating-Donor-gNB-ID,
+ id-Broadcast-MRBs-Transport-Request-List,
+ id-Broadcast-MRBs-Transport-Request-Item,
+ id-S-CPAC-Configuration,
+ id-DLLBTFailureInformationRequest,
+ id-DLLBTFailureInformationList,
+ id-SLPositioning-Ranging-Service-Info,
+ id-TimeWindowInformation-SRS-List,
+ id-TimeWindowInformation-Measurement-List,
+ id-SRSPosRRCInactiveValidityAreaConfig,
+ id-SRSReservationType,
+ id-RequestedSRSPreconfigurationCharacteristics-List,
+ id-SRSPreconfiguration-List,
+ id-SRSInformation,
+ id-TAInformation-List,
+ id-NonIntegerDRXCycle,
+ id-AggregatedPosSRSResourceSetList,
+ id-RANSharingAssistanceInformation,
+ id-F1U-PathFailure,
maxCellingNBDU,
maxnoofCandidateSpCells,
maxnoofDRBs,
- maxnoofErrors,
maxnoofIndividualF1ConnectionsToReset,
maxnoofPotentialSpCells,
maxnoofSCells,
@@ -944,8 +1043,6 @@ FROM F1AP-Containers
maxnoofUEIDs,
maxnoofBHRLCChannels,
maxnoofRoutingEntries,
- maxnoofChildIABNodes,
- maxnoofServedCellsIAB,
maxnoofTLAsIAB,
maxnoofULUPTNLInformationforIAB,
maxnoofUPTNLAddresses,
@@ -954,7 +1051,6 @@ FROM F1AP-Containers
maxnoofTRPs,
maxnoofMRBs,
maxnoofUEIDforPaging,
- maxnoofNeighbourNodeCellsIAB,
maxnoofMRBsforUE,
maxnoofServingCellMOs
@@ -1088,7 +1184,9 @@ F1SetupRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-GNB-DU-RRC-Version CRITICALITY reject TYPE RRC-Version PRESENCE mandatory }|
{ ID id-Transport-Layer-Address-Info CRITICALITY ignore TYPE Transport-Layer-Address-Info PRESENCE optional }|
{ ID id-BAPAddress CRITICALITY ignore TYPE BAPAddress PRESENCE optional }|
- { ID id-Extended-GNB-DU-Name CRITICALITY ignore TYPE Extended-GNB-DU-Name PRESENCE optional },
+ { ID id-Extended-GNB-DU-Name CRITICALITY ignore TYPE Extended-GNB-DU-Name PRESENCE optional }|
+ { ID id-RRC-Terminating-IAB-Donor-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE optional }|
+ { ID id-Mobile-IAB-MTUserLocationInformation CRITICALITY ignore TYPE Mobile-IAB-MTUserLocationInformation PRESENCE optional },
...
}
@@ -1121,7 +1219,8 @@ F1SetupResponseIEs F1AP-PROTOCOL-IES ::= {
{ ID id-Transport-Layer-Address-Info CRITICALITY ignore TYPE Transport-Layer-Address-Info PRESENCE optional }|
{ ID id-UL-BH-Non-UP-Traffic-Mapping CRITICALITY reject TYPE UL-BH-Non-UP-Traffic-Mapping PRESENCE optional }|
{ ID id-BAPAddress CRITICALITY ignore TYPE BAPAddress PRESENCE optional }|
- { ID id-Extended-GNB-CU-Name CRITICALITY ignore TYPE Extended-GNB-CU-Name PRESENCE optional },
+ { ID id-Extended-GNB-CU-Name CRITICALITY ignore TYPE Extended-GNB-CU-Name PRESENCE optional }|
+ { ID id-NCGI-to-be-Updated-List CRITICALITY reject TYPE NCGI-to-be-Updated-List PRESENCE optional },
...
}
@@ -1134,6 +1233,13 @@ Cells-to-be-Activated-List-ItemIEs F1AP-PROTOCOL-IES::= {
}
+NCGI-to-be-Updated-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { NCGI-to-be-Updated-List-ItemIEs } }
+
+NCGI-to-be-Updated-List-ItemIEs F1AP-PROTOCOL-IES::= {
+ { ID id-NCGI-to-be-Updated-List-Item CRITICALITY reject TYPE NCGI-to-be-Updated-List-Item PRESENCE mandatory},
+ ...
+}
+
-- **************************************************************
--
@@ -1184,7 +1290,9 @@ GNBDUConfigurationUpdateIEs F1AP-PROTOCOL-IES ::= {
{ ID id-Transport-Layer-Address-Info CRITICALITY ignore TYPE Transport-Layer-Address-Info PRESENCE optional }|
{ ID id-Coverage-Modification-Notification CRITICALITY ignore TYPE Coverage-Modification-Notification PRESENCE optional }|
{ ID id-gNB-DU-Name CRITICALITY ignore TYPE GNB-DU-Name PRESENCE optional }|
- { ID id-Extended-GNB-DU-Name CRITICALITY ignore TYPE Extended-GNB-DU-Name PRESENCE optional },
+ { ID id-Extended-GNB-DU-Name CRITICALITY ignore TYPE Extended-GNB-DU-Name PRESENCE optional }|
+ { ID id-RRC-Terminating-IAB-Donor-Related-Info CRITICALITY reject TYPE RRC-Terminating-IAB-Donor-Related-Info PRESENCE optional }|
+ { ID id-Mobile-IAB-MTUserLocationInformation CRITICALITY ignore TYPE Mobile-IAB-MTUserLocationInformation PRESENCE optional },
...
}
@@ -1305,7 +1413,8 @@ GNBCUConfigurationUpdateIEs F1AP-PROTOCOL-IES ::= {
{ ID id-CCO-Assistance-Information CRITICALITY ignore TYPE CCO-Assistance-Information PRESENCE optional }|
{ ID id-CellsForSON-List CRITICALITY ignore TYPE CellsForSON-List PRESENCE optional }|
{ ID id-gNB-CU-Name CRITICALITY ignore TYPE GNB-CU-Name PRESENCE optional }|
- { ID id-Extended-GNB-CU-Name CRITICALITY ignore TYPE Extended-GNB-CU-Name PRESENCE optional },
+ { ID id-Extended-GNB-CU-Name CRITICALITY ignore TYPE Extended-GNB-CU-Name PRESENCE optional }|
+ { ID id-Cells-Allowed-to-be-Deactivated-List CRITICALITY ignore TYPE Cells-Allowed-to-be-Deactivated-List PRESENCE optional },
...
}
@@ -1315,6 +1424,13 @@ GNB-CU-TNL-Association-To-Remove-List ::= SEQUENCE (SIZE(1.. maxnoofTNLAssociati
GNB-CU-TNL-Association-To-Update-List ::= SEQUENCE (SIZE(1.. maxnoofTNLAssociations)) OF ProtocolIE-SingleContainer { { GNB-CU-TNL-Association-To-Update-ItemIEs } }
Cells-to-be-Barred-List ::= SEQUENCE(SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Cells-to-be-Barred-ItemIEs } }
+Cells-Allowed-to-be-Deactivated-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Cells-Allowed-to-be-Deactivated-List-ItemIEs } }
+
+Cells-Allowed-to-be-Deactivated-List-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Cells-Allowed-to-be-Deactivated-List-Item CRITICALITY ignore TYPE Cells-Allowed-to-be-Deactivated-List-Item PRESENCE mandatory },
+ ...
+}
+
Cells-to-be-Deactivated-List-ItemIEs F1AP-PROTOCOL-IES ::= {
{ ID id-Cells-to-be-Deactivated-List-Item CRITICALITY reject TYPE Cells-to-be-Deactivated-List-Item PRESENCE mandatory },
@@ -1373,7 +1489,8 @@ GNBCUConfigurationUpdateAcknowledgeIEs F1AP-PROTOCOL-IES ::= {
{ ID id-GNB-CU-TNL-Association-Setup-List CRITICALITY ignore TYPE GNB-CU-TNL-Association-Setup-List PRESENCE optional }|
{ ID id-GNB-CU-TNL-Association-Failed-To-Setup-List CRITICALITY ignore TYPE GNB-CU-TNL-Association-Failed-To-Setup-List PRESENCE optional }|
{ ID id-Dedicated-SIDelivery-NeededUE-List CRITICALITY ignore TYPE Dedicated-SIDelivery-NeededUE-List PRESENCE optional }|
- { ID id-Transport-Layer-Address-Info CRITICALITY ignore TYPE Transport-Layer-Address-Info PRESENCE optional },
+ { ID id-Transport-Layer-Address-Info CRITICALITY ignore TYPE Transport-Layer-Address-Info PRESENCE optional }|
+ { ID id-Cells-With-SSBs-Activated-List CRITICALITY ignore TYPE Cells-With-SSBs-Activated-List PRESENCE optional },
...
}
@@ -1398,6 +1515,7 @@ GNB-CU-TNL-Association-Failed-To-Setup-ItemIEs F1AP-PROTOCOL-IES ::= {
}
+
-- **************************************************************
--
-- GNB-CU CONFIGURATION UPDATE FAILURE
@@ -1491,6 +1609,7 @@ UEContextSetupRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }|
{ ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional }|
{ ID id-GNB-DU-UE-AMBR-UL CRITICALITY ignore TYPE BitRate PRESENCE conditional }|
+ -- The above IE shall be present only if the DRB to Be Setup List IE is present.
{ ID id-RRCDeliveryStatusRequest CRITICALITY ignore TYPE RRCDeliveryStatusRequest PRESENCE optional }|
{ ID id-ResourceCoordinationTransferInformation CRITICALITY ignore TYPE ResourceCoordinationTransferInformation PRESENCE optional }|
{ ID id-ServingCellMO CRITICALITY ignore TYPE ServingCellMO PRESENCE optional }|
@@ -1523,7 +1642,20 @@ UEContextSetupRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-GNBDUUESliceMaximumBitRateList CRITICALITY ignore TYPE GNBDUUESliceMaximumBitRateList PRESENCE optional }|
{ ID id-MulticastMBSSessionSetupList CRITICALITY reject TYPE MulticastMBSSessionList PRESENCE optional }|
{ ID id-UE-MulticastMRBs-ToBeSetup-List CRITICALITY reject TYPE UE-MulticastMRBs-ToBeSetup-List PRESENCE optional }|
- { ID id-ServingCellMO-List CRITICALITY ignore TYPE ServingCellMO-List PRESENCE optional },
+ { ID id-ServingCellMO-List CRITICALITY ignore TYPE ServingCellMO-List PRESENCE optional }|
+ { ID id-NetworkControlledRepeaterAuthorized CRITICALITY ignore TYPE NetworkControlledRepeaterAuthorized PRESENCE optional }|
+ { ID id-SDT-Volume-Threshold CRITICALITY ignore TYPE SDT-Volume-Threshold PRESENCE optional }|
+ { ID id-LTMInformation-Setup CRITICALITY reject TYPE LTMInformation-Setup PRESENCE optional }|
+ { ID id-LTMConfigurationIDMappingList CRITICALITY reject TYPE LTMConfigurationIDMappingList PRESENCE optional }|
+ { ID id-EarlySyncInformation-Request CRITICALITY ignore TYPE EarlySyncInformation-Request PRESENCE optional }|
+ { ID id-PathAdditionInformation CRITICALITY reject TYPE PathAdditionInformation PRESENCE optional}|
+ { ID id-NRA2XServicesAuthorized CRITICALITY ignore TYPE NRA2XServicesAuthorized PRESENCE optional }|
+ { ID id-LTEA2XServicesAuthorized CRITICALITY ignore TYPE LTEA2XServicesAuthorized PRESENCE optional }|
+ { ID id-NRUESidelinkAggregateMaximumBitrateForA2X CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-LTEUESidelinkAggregateMaximumBitrateForA2X CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-DLLBTFailureInformationRequest CRITICALITY ignore TYPE DLLBTFailureInformationRequest PRESENCE optional }|
+ { ID id-SLPositioning-Ranging-Service-Info CRITICALITY ignore TYPE SLPositioning-Ranging-Service-Info PRESENCE optional }|
+ { ID id-NonIntegerDRXCycle CRITICALITY ignore TYPE NonIntegerDRXCycle PRESENCE optional },
...
}
@@ -1613,7 +1745,12 @@ UEContextSetupResponseIEs F1AP-PROTOCOL-IES ::= {
{ ID id-PC5RLCChannelSetupList CRITICALITY ignore TYPE PC5RLCChannelSetupList PRESENCE optional}|
{ ID id-PC5RLCChannelFailedToBeSetupList CRITICALITY ignore TYPE PC5RLCChannelFailedToBeSetupList PRESENCE optional}|
{ ID id-ServingCellMO-encoded-in-CGC-List CRITICALITY ignore TYPE ServingCellMO-encoded-in-CGC-List PRESENCE optional}|
- { ID id-UE-MulticastMRBs-Setupnew-List CRITICALITY reject TYPE UE-MulticastMRBs-Setupnew-List PRESENCE optional},
+ { ID id-UE-MulticastMRBs-Setupnew-List CRITICALITY reject TYPE UE-MulticastMRBs-Setupnew-List PRESENCE optional}|
+ { ID id-DedicatedSIDeliveryIndication CRITICALITY ignore TYPE DedicatedSIDeliveryIndication PRESENCE optional}|
+ { ID id-Configured-BWP-List CRITICALITY ignore TYPE Configured-BWP-List PRESENCE optional}|
+ { ID id-EarlySyncInformation CRITICALITY ignore TYPE EarlySyncInformation PRESENCE optional }|
+ { ID id-LTMConfiguration CRITICALITY ignore TYPE LTMConfiguration PRESENCE optional }|
+ { ID id-S-CPAC-Configuration CRITICALITY ignore TYPE S-CPAC-Configuration PRESENCE optional },
...
}
@@ -1734,7 +1871,8 @@ UEContextReleaseRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-UE-F1AP-ID CRITICALITY reject TYPE GNB-CU-UE-F1AP-ID PRESENCE mandatory }|
{ ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
- { ID id-targetCellsToCancel CRITICALITY reject TYPE TargetCellList PRESENCE optional },
+ { ID id-targetCellsToCancel CRITICALITY reject TYPE TargetCellList PRESENCE optional }|
+ { ID id-LTMCells-ToBeReleased-List CRITICALITY reject TYPE LTMCells-ToBeReleased-List PRESENCE optional },
...
}
@@ -1762,12 +1900,14 @@ UEContextReleaseCommandIEs F1AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
{ ID id-RRCContainer CRITICALITY ignore TYPE RRCContainer PRESENCE optional }|
{ ID id-SRBID CRITICALITY ignore TYPE SRBID PRESENCE conditional }|
+ -- The above IE shall be present if the RRC container IE is present.
{ ID id-oldgNB-DU-UE-F1AP-ID CRITICALITY ignore TYPE GNB-DU-UE-F1AP-ID PRESENCE optional }|
{ ID id-ExecuteDuplication CRITICALITY ignore TYPE ExecuteDuplication PRESENCE optional}|
{ ID id-RRCDeliveryStatusRequest CRITICALITY ignore TYPE RRCDeliveryStatusRequest PRESENCE optional }|
{ ID id-targetCellsToCancel CRITICALITY reject TYPE TargetCellList PRESENCE optional}|
- { ID id-PosConextRevIndication CRITICALITY reject TYPE PosConextRevIndication PRESENCE optional}|
- { ID id-CG-SDTKeptIndicator CRITICALITY ignore TYPE CG-SDTKeptIndicator PRESENCE optional},
+ { ID id-PosContextRevIndication CRITICALITY ignore TYPE PosContextRevIndication PRESENCE optional}|
+ { ID id-CG-SDTKeptIndicator CRITICALITY ignore TYPE CG-SDTKeptIndicator PRESENCE optional}|
+ { ID id-LTMCells-ToBeReleased-List CRITICALITY reject TYPE LTMCells-ToBeReleased-List PRESENCE optional },
...
}
@@ -1786,7 +1926,8 @@ UEContextReleaseComplete ::= SEQUENCE {
UEContextReleaseCompleteIEs F1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-UE-F1AP-ID CRITICALITY reject TYPE GNB-CU-UE-F1AP-ID PRESENCE mandatory }|
{ ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-Recommended-SSBs-for-Paging-List CRITICALITY ignore TYPE Recommended-SSBs-for-Paging-List PRESENCE optional },
...
}
@@ -1883,7 +2024,24 @@ UEContextModificationRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-DAPS-HO-Status CRITICALITY ignore TYPE DAPS-HO-Status PRESENCE optional }|
{ ID id-ServingCellMO-List CRITICALITY ignore TYPE ServingCellMO-List PRESENCE optional }|
{ ID id-UlTxDirectCurrentMoreCarrierInformation CRITICALITY ignore TYPE UlTxDirectCurrentMoreCarrierInformation PRESENCE optional }|
- { ID id-CPACMCGInformation CRITICALITY ignore TYPE CPACMCGInformation PRESENCE optional },
+ { ID id-CPACMCGInformation CRITICALITY ignore TYPE CPACMCGInformation PRESENCE optional }|
+ { ID id-NetworkControlledRepeaterAuthorized CRITICALITY ignore TYPE NetworkControlledRepeaterAuthorized PRESENCE optional }|
+ { ID id-SDT-Volume-Threshold CRITICALITY ignore TYPE SDT-Volume-Threshold PRESENCE optional }|
+ { ID id-LTMInformation-Modify CRITICALITY reject TYPE LTMInformation-Modify PRESENCE optional }|
+ { ID id-LTMCFRAResourceConfig-List CRITICALITY ignore TYPE LTMCFRAResourceConfig-List PRESENCE optional }|
+ { ID id-LTMConfigurationIDMappingList CRITICALITY reject TYPE LTMConfigurationIDMappingList PRESENCE optional }|
+ { ID id-EarlySyncInformation-Request CRITICALITY ignore TYPE EarlySyncInformation-Request PRESENCE optional }|
+ { ID id-EarlySyncCandidateCellInformation-List CRITICALITY ignore TYPE EarlySyncCandidateCellInformation-List PRESENCE optional }|
+ { ID id-EarlySyncServingCellInformation CRITICALITY ignore TYPE EarlySyncServingCellInformation PRESENCE optional }|
+ { ID id-LTMCells-ToBeReleased-List CRITICALITY reject TYPE LTMCells-ToBeReleased-List PRESENCE optional }|
+ { ID id-PathAdditionInformation CRITICALITY reject TYPE PathAdditionInformation PRESENCE optional}|
+ { ID id-NRA2XServicesAuthorized CRITICALITY ignore TYPE NRA2XServicesAuthorized PRESENCE optional }|
+ { ID id-LTEA2XServicesAuthorized CRITICALITY ignore TYPE LTEA2XServicesAuthorized PRESENCE optional }|
+ { ID id-NRUESidelinkAggregateMaximumBitrateForA2X CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-LTEUESidelinkAggregateMaximumBitrateForA2X CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-DLLBTFailureInformationRequest CRITICALITY ignore TYPE DLLBTFailureInformationRequest PRESENCE optional }|
+ { ID id-SLPositioning-Ranging-Service-Info CRITICALITY ignore TYPE SLPositioning-Ranging-Service-Info PRESENCE optional }|
+ { ID id-NonIntegerDRXCycle CRITICALITY ignore TYPE NonIntegerDRXCycle PRESENCE optional },
...
}
@@ -2036,7 +2194,12 @@ UEContextModificationResponseIEs F1AP-PROTOCOL-IES ::= {
{ ID id-PC5RLCChannelFailedToBeModifiedList CRITICALITY ignore TYPE PC5RLCChannelFailedToBeModifiedList PRESENCE optional}|
{ ID id-SDTBearerConfigurationInfo CRITICALITY ignore TYPE SDTBearerConfigurationInfo PRESENCE optional}|
{ ID id-UE-MulticastMRBs-Setup-List CRITICALITY reject TYPE UE-MulticastMRBs-Setup-List PRESENCE optional}|
- { ID id-ServingCellMO-encoded-in-CGC-List CRITICALITY ignore TYPE ServingCellMO-encoded-in-CGC-List PRESENCE optional},
+ { ID id-ServingCellMO-encoded-in-CGC-List CRITICALITY ignore TYPE ServingCellMO-encoded-in-CGC-List PRESENCE optional}|
+ { ID id-DedicatedSIDeliveryIndication CRITICALITY ignore TYPE DedicatedSIDeliveryIndication PRESENCE optional}|
+ { ID id-Configured-BWP-List CRITICALITY ignore TYPE Configured-BWP-List PRESENCE optional}|
+ { ID id-EarlySyncInformation CRITICALITY ignore TYPE EarlySyncInformation PRESENCE optional}|
+ { ID id-LTMConfiguration CRITICALITY ignore TYPE LTMConfiguration PRESENCE optional}|
+ { ID id-S-CPAC-Configuration CRITICALITY ignore TYPE S-CPAC-Configuration PRESENCE optional },
...
}
@@ -2215,7 +2378,8 @@ UEContextModificationRequiredIEs F1AP-PROTOCOL-IES ::= {
{ ID id-PC5RLCChannelRequiredToBeModifiedList CRITICALITY reject TYPE PC5RLCChannelRequiredToBeModifiedList PRESENCE optional}|
{ ID id-PC5RLCChannelRequiredToBeReleasedList CRITICALITY reject TYPE PC5RLCChannelRequiredToBeReleasedList PRESENCE optional}|
{ ID id-UE-MulticastMRBs-RequiredToBeModified-List CRITICALITY reject TYPE UE-MulticastMRBs-RequiredToBeModified-List PRESENCE optional }|
- { ID id-UE-MulticastMRBs-RequiredToBeReleased-List CRITICALITY reject TYPE UE-MulticastMRBs-RequiredToBeReleased-List PRESENCE optional },
+ { ID id-UE-MulticastMRBs-RequiredToBeReleased-List CRITICALITY reject TYPE UE-MulticastMRBs-RequiredToBeReleased-List PRESENCE optional }|
+ { ID id-LTMCells-ToBeReleased-List CRITICALITY reject TYPE LTMCells-ToBeReleased-List PRESENCE optional },
...
}
@@ -2526,7 +2690,8 @@ InitialULRRCMessageTransferIEs F1AP-PROTOCOL-IES ::= {
{ ID id-RRCContainer-RRCSetupComplete CRITICALITY ignore TYPE RRCContainer-RRCSetupComplete PRESENCE optional }|
{ ID id-NRRedCapUEIndication CRITICALITY ignore TYPE NRRedCapUEIndication PRESENCE optional }|
{ ID id-SDTInformation CRITICALITY ignore TYPE SDTInformation PRESENCE optional }|
- { ID id-SidelinkRelayConfiguration CRITICALITY ignore TYPE SidelinkRelayConfiguration PRESENCE optional },
+ { ID id-SidelinkRelayConfiguration CRITICALITY ignore TYPE SidelinkRelayConfiguration PRESENCE optional }|
+{ ID id-NReRedCapUEIndication CRITICALITY ignore TYPE NReRedCapUEIndication PRESENCE optional },
...
}
@@ -2671,7 +2836,9 @@ PagingIEs F1AP-PROTOCOL-IES ::= {
{ ID id-PEIPSAssistanceInfo CRITICALITY ignore TYPE PEIPSAssistanceInfo PRESENCE optional }|
{ ID id-UEPagingCapability CRITICALITY ignore TYPE UEPagingCapability PRESENCE optional }|
{ ID id-ExtendedUEIdentityIndexValue CRITICALITY ignore TYPE ExtendedUEIdentityIndexValue PRESENCE optional}|
- { ID id-HashedUEIdentityIndexValue CRITICALITY ignore TYPE HashedUEIdentityIndexValue PRESENCE optional},
+ { ID id-HashedUEIdentityIndexValue CRITICALITY ignore TYPE HashedUEIdentityIndexValue PRESENCE optional}|
+ { ID id-MT-SDT-Information CRITICALITY ignore TYPE MT-SDT-Information PRESENCE optional }|
+ { ID id-NRPaginglongeDRXInformationforRRCINACTIVE CRITICALITY ignore TYPE NRPaginglongeDRXInformationforRRCINACTIVE PRESENCE optional },
...
}
@@ -2964,10 +3131,8 @@ CellTrafficTraceIEs F1AP-PROTOCOL-IES ::= {
{ID id-TraceID CRITICALITY ignore TYPE TraceID PRESENCE mandatory }|
{ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }|
{ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }|
-
{ID id-TraceCollectionEntityURI CRITICALITY ignore TYPE URI-address PRESENCE optional },
...
-
}
-- **************************************************************
@@ -2988,7 +3153,7 @@ DUCURadioInformationTransfer ::= SEQUENCE {
}
DUCURadioInformationTransferIEs F1AP-PROTOCOL-IES ::= {
- { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-DUCURadioInformationType CRITICALITY ignore TYPE DUCURadioInformationType PRESENCE mandatory },
...
}
@@ -3013,7 +3178,7 @@ CUDURadioInformationTransfer ::= SEQUENCE {
}
CUDURadioInformationTransferIEs F1AP-PROTOCOL-IES ::= {
- { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-CUDURadioInformationType CRITICALITY ignore TYPE CUDURadioInformationType PRESENCE mandatory },
...
}
@@ -3032,6 +3197,7 @@ CUDURadioInformationTransferIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
-- BAP MAPPING CONFIGURATION
+--
-- **************************************************************
@@ -3082,6 +3248,7 @@ BAP-Header-Rewriting-Removed-List-ItemIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
-- BAP MAPPING CONFIGURATION ACKNOWLEDGE
+--
-- **************************************************************
BAPMappingConfigurationAcknowledge ::= SEQUENCE {
@@ -3124,6 +3291,7 @@ BAPMappingConfigurationFailureIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
-- GNB-DU RESOURCE CONFIGURATION
+--
-- **************************************************************
@@ -3148,6 +3316,7 @@ GNBDUResourceConfigurationIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
-- GNB-DU RESOURCE CONFIGURATION ACKNOWLEDGE
+--
-- **************************************************************
@@ -3192,6 +3361,7 @@ GNBDUResourceConfigurationFailureIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
-- IAB TNL ADDRESS REQUEST
+--
-- **************************************************************
@@ -3222,6 +3392,7 @@ IAB-TNL-Addresses-To-Remove-ItemIEs F1AP-PROTOCOL-IES::= {
-- **************************************************************
--
-- IAB TNL ADDRESS RESPONSE
+--
-- **************************************************************
@@ -3348,6 +3519,66 @@ IABUPConfigurationUpdateFailureIEs F1AP-PROTOCOL-IES ::= {
...
}
+-- MIAB F1 SETUP TRIGGERING PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- MIAB F1 SETUP TRIGGERING
+--
+-- **************************************************************
+
+MIABF1SetupTriggering ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MIABF1SetupTriggeringIEs}},
+ ...
+}
+
+MIABF1SetupTriggeringIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-Target-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory }|
+ { ID id-Target-gNB-IP-address CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional }|
+ { ID id-Target-SeGW-IP-address CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional },
+ ...
+}
+
+
+-- MIAB F1 SETUP OUTCOME NOTIFICATION PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- MIAB F1 SETUP OUTCOME NOTIFICATION
+--
+-- **************************************************************
+
+MIABF1SetupOutcomeNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MIABF1SetupOutcomeNotificationIEs}},
+ ...
+}
+
+MIABF1SetupOutcomeNotificationIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-F1SetupOutcome CRITICALITY reject TYPE F1SetupOutcome PRESENCE mandatory }|
+ { ID id-Activated-Cells-Mapping-List CRITICALITY ignore TYPE Activated-Cells-Mapping-List PRESENCE optional }|
+ { ID id-Target-F1-Terminating-Donor-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE optional },
+ ...
+}
+
+F1SetupOutcome ::= ENUMERATED {success, failure,...}
+
+Activated-Cells-Mapping-List ::= SEQUENCE (SIZE(1.. maxCellingNBDU)) OF ProtocolIE-SingleContainer { { Activated-Cells-Mapping-List-ItemIEs } }
+
+Activated-Cells-Mapping-List-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Activated-Cells-Mapping-List-Item CRITICALITY ignore TYPE Activated-Cells-Mapping-List-Item PRESENCE mandatory },
+ ...
+}
+
+
+
-- **************************************************************
--
-- Resource Status Reporting Initiation ELEMENTARY PROCEDURE
@@ -3369,8 +3600,10 @@ ResourceStatusRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-gNBCUMeasurementID CRITICALITY reject TYPE GNBCUMeasurementID PRESENCE mandatory }|
{ ID id-gNBDUMeasurementID CRITICALITY ignore TYPE GNBDUMeasurementID PRESENCE conditional }|
+ -- The above IE shall be present if the Registration Request IE is set to the value "stop" or "add".
{ ID id-RegistrationRequest CRITICALITY ignore TYPE RegistrationRequest PRESENCE mandatory }|
{ ID id-ReportCharacteristics CRITICALITY ignore TYPE ReportCharacteristics PRESENCE conditional }|
+ -- The above IE shall be present if the Registration Request IE is set to the value "start".
{ ID id-CellToReportList CRITICALITY ignore TYPE CellToReportList PRESENCE optional }|
{ ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional },
...
@@ -3464,15 +3697,23 @@ AccessAndMobilityIndication ::= SEQUENCE {
AccessAndMobilityIndicationIEs F1AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
- { ID id-RACHReportInformationList CRITICALITY ignore TYPE RACHReportInformationList PRESENCE optional }|
+ { ID id-RAReportList CRITICALITY ignore TYPE RAReportList PRESENCE optional }|
{ ID id-RLFReportInformationList CRITICALITY ignore TYPE RLFReportInformationList PRESENCE optional }|
- { ID id-SuccessfulHOReportInformationList CRITICALITY ignore TYPE SuccessfulHOReportInformationList PRESENCE optional },
+ { ID id-SuccessfulHOReportInformationList CRITICALITY ignore TYPE SuccessfulHOReportInformationList PRESENCE optional }|
+ { ID id-SuccessfulPSCellChangeReportInformationList CRITICALITY ignore TYPE SuccessfulPSCellChangeReportInformationList PRESENCE optional },
...
}
-- **************************************************************
--
+-- REFERENCE TIME INFORMATION REPORTING CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
-- REFERENCE TIME INFORMATION REPORTING CONTROL
--
-- **************************************************************
@@ -3491,6 +3732,13 @@ ReferenceTimeInformationReportingControlIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
+-- REFERENCE TIME INFORMATION REPORT ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
-- REFERENCE TIME INFORMATION REPORT
--
-- **************************************************************
@@ -3509,6 +3757,12 @@ ReferenceTimeInformationReportIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
+-- ACCESS SUCCESS ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
-- Access Success
--
-- **************************************************************
@@ -3615,7 +3869,8 @@ PositioningMeasurementRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-ResponseTime CRITICALITY ignore TYPE ResponseTime PRESENCE optional}|
{ ID id-MeasurementCharacteristicsRequestIndicator CRITICALITY ignore TYPE MeasurementCharacteristicsRequestIndicator PRESENCE optional}|
{ ID id-MeasurementTimeOccasion CRITICALITY ignore TYPE MeasurementTimeOccasion PRESENCE optional }|
- { ID id-PosMeasurementAmount CRITICALITY ignore TYPE PosMeasurementAmount PRESENCE optional },
+ { ID id-PosMeasurementAmount CRITICALITY ignore TYPE PosMeasurementAmount PRESENCE optional }|
+ { ID id-TimeWindowInformation-Measurement-List CRITICALITY ignore TYPE TimeWindowInformation-Measurement-List PRESENCE optional },
...
}
@@ -3865,7 +4120,9 @@ PositioningInformationRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }|
{ ID id-RequestedSRSTransmissionCharacteristics CRITICALITY ignore TYPE RequestedSRSTransmissionCharacteristics PRESENCE optional}|
{ ID id-UEReportingInformation CRITICALITY ignore TYPE UEReportingInformation PRESENCE optional}|
- { ID id-SRSPosRRCInactiveQueryIndication CRITICALITY ignore TYPE SRSPosRRCInactiveQueryIndication PRESENCE optional},
+ { ID id-SRSPosRRCInactiveQueryIndication CRITICALITY ignore TYPE SRSPosRRCInactiveQueryIndication PRESENCE optional}|
+ { ID id-TimeWindowInformation-SRS-List CRITICALITY ignore TYPE TimeWindowInformation-SRS-List PRESENCE optional}|
+ { ID id-RequestedSRSPreconfigurationCharacteristics-List CRITICALITY ignore TYPE RequestedSRSPreconfigurationCharacteristics-List PRESENCE optional },
...
}
@@ -3888,7 +4145,9 @@ PositioningInformationResponseIEs F1AP-PROTOCOL-IES ::= {
{ ID id-SRSConfiguration CRITICALITY ignore TYPE SRSConfiguration PRESENCE optional}|
{ ID id-SFNInitialisationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
- { ID id-SRSPosRRCInactiveConfig CRITICALITY ignore TYPE SRSPosRRCInactiveConfig PRESENCE optional},
+ { ID id-SRSPosRRCInactiveConfig CRITICALITY ignore TYPE SRSPosRRCInactiveConfig PRESENCE optional}|
+ { ID id-SRSPosRRCInactiveValidityAreaConfig CRITICALITY ignore TYPE SRSPosRRCInactiveValidityAreaConfig PRESENCE optional}|
+ { ID id-SRSPreconfiguration-List CRITICALITY ignore TYPE SRSPreconfiguration-List PRESENCE optional},
...
}
@@ -3916,7 +4175,7 @@ PositioningInformationFailureIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- POSITIONING ACTIVATION PROCEDURE
+-- POSITIONING ACTIVATION ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -3935,7 +4194,8 @@ PositioningActivationRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-UE-F1AP-ID CRITICALITY reject TYPE GNB-CU-UE-F1AP-ID PRESENCE mandatory }|
{ ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }|
{ ID id-SRSType CRITICALITY reject TYPE SRSType PRESENCE mandatory }|
- { ID id-ActivationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional },
+ { ID id-ActivationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional }|
+ { ID id-AggregatedPosSRSResourceSetList CRITICALITY ignore TYPE AggregatedPosSRSResourceSetList PRESENCE optional},
...
}
@@ -4019,7 +4279,7 @@ PositioningActivationFailureIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- POSITIONING DEACTIVATION PROCEDURE
+-- POSITIONING DEACTIVATION ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4043,7 +4303,7 @@ PositioningDeactivationIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- POSITIONING INFORMATION UPDATE PROCEDURE
+-- POSITIONING INFORMATION UPDATE ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4069,7 +4329,26 @@ PositioningInformationUpdateIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- E-CID MEASUREMENT PROCEDURE
+-- SRS Information Reservation Notification
+--
+-- **************************************************************
+
+SRSInformationReservationNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ SRSInformationReservationNotificationIEs}},
+ ...
+}
+
+SRSInformationReservationNotificationIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-SRSReservationType CRITICALITY ignore TYPE SRSReservationType PRESENCE mandatory }|
+ { ID id-SRSInformation CRITICALITY ignore TYPE RequestedSRSTransmissionCharacteristics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-CID MEASUREMENT ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4091,10 +4370,10 @@ E-CIDMeasurementInitiationRequest-IEs F1AP-PROTOCOL-IES ::= {
{ ID id-RAN-UE-MeasurementID CRITICALITY reject TYPE RAN-UE-MeasurementID PRESENCE mandatory }|
{ ID id-E-CID-ReportCharacteristics CRITICALITY reject TYPE E-CID-ReportCharacteristics PRESENCE mandatory }|
{ ID id-E-CID-MeasurementPeriodicity CRITICALITY reject TYPE MeasurementPeriodicity PRESENCE conditional }|
--- The above IE shall be present if the E-CID-ReportCharacteristics IE is set to “periodic†–-
+ -- The above IE shall be present if the E-CID-ReportCharacteristics IE is set to “periodic†–-
{ ID id-E-CID-MeasurementQuantities CRITICALITY reject TYPE E-CID-MeasurementQuantities PRESENCE mandatory}|
{ ID id-PosMeasurementPeriodicityNR-AoA CRITICALITY reject TYPE PosMeasurementPeriodicityNR-AoA PRESENCE conditional},
--- The IE shall be present if the E-CID-ReportCharacteristics IE is set to “periodic†and the E-CID-MeasurementQuantities-Item IE in the E-CID-MeasurementQuantities IE is set to the value "angleOfArrivalNR"--
+ -- The IE shall be present if the E-CID-ReportCharacteristics IE is set to “periodic†and the E-CID-MeasurementQuantities-Item IE in the E-CID-MeasurementQuantities IE is set to the value "angleOfArrivalNR"--
...
}
@@ -4144,7 +4423,7 @@ E-CIDMeasurementInitiationFailure-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- E-CID MEASUREMENT FAILURE INDICATION PROCEDURE
+-- E-CID MEASUREMENT FAILURE INDICATION ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4171,7 +4450,7 @@ E-CIDMeasurementFailureIndication-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- E-CID MEASUREMENT REPORT PROCEDURE
+-- E-CID MEASUREMENT REPORT ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4200,7 +4479,7 @@ E-CIDMeasurementReport-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- E-CID MEASUREMENT TERMINATION PROCEDURE
+-- E-CID MEASUREMENT TERMINATION ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4243,12 +4522,15 @@ BroadcastContextSetupRequest ::= SEQUENCE {
}
BroadcastContextSetupRequestIEs F1AP-PROTOCOL-IES ::= {
- { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
- { ID id-MBS-Session-ID CRITICALITY reject TYPE MBS-Session-ID PRESENCE mandatory }|
- { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
- { ID id-MBS-CUtoDURRCInformation CRITICALITY reject TYPE MBS-CUtoDURRCInformation PRESENCE mandatory }|
- { ID id-SNSSAI CRITICALITY reject TYPE SNSSAI PRESENCE mandatory }|
- { ID id-BroadcastMRBs-ToBeSetup-List CRITICALITY reject TYPE BroadcastMRBs-ToBeSetup-List PRESENCE mandatory },
+ { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-MBS-Session-ID CRITICALITY reject TYPE MBS-Session-ID PRESENCE mandatory }|
+ { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
+ { ID id-MBS-CUtoDURRCInformation CRITICALITY reject TYPE MBS-CUtoDURRCInformation PRESENCE mandatory }|
+ { ID id-SNSSAI CRITICALITY reject TYPE SNSSAI PRESENCE mandatory }|
+ { ID id-BroadcastMRBs-ToBeSetup-List CRITICALITY reject TYPE BroadcastMRBs-ToBeSetup-List PRESENCE mandatory }|
+ { ID id-SupportedUETypeList CRITICALITY ignore TYPE SupportedUETypeList PRESENCE optional }|
+ { ID id-AssociatedSessionID CRITICALITY ignore TYPE AssociatedSessionID PRESENCE optional }|
+ { ID id-RANSharingAssistanceInformation CRITICALITY ignore TYPE RANSharingAssistanceInformation PRESENCE optional },
...
}
@@ -4404,10 +4686,11 @@ BroadcastContextModificationRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
{ ID id-gNB-DU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-DU-MBS-F1AP-ID PRESENCE mandatory }|
{ ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
- { ID id-MBS-CUtoDURRCInformation CRITICALITY reject TYPE MBS-CUtoDURRCInformation PRESENCE mandatory }|
- { ID id-BroadcastMRBs-ToBeSetupMod-List CRITICALITY reject TYPE BroadcastMRBs-ToBeSetupMod-List PRESENCE optional }|
- { ID id-BroadcastMRBs-ToBeModified-List CRITICALITY reject TYPE BroadcastMRBs-ToBeModified-List PRESENCE optional }|
- { ID id-BroadcastMRBs-ToBeReleased-List CRITICALITY reject TYPE BroadcastMRBs-ToBeReleased-List PRESENCE optional },
+ { ID id-MBS-CUtoDURRCInformation CRITICALITY reject TYPE MBS-CUtoDURRCInformation PRESENCE mandatory }|
+ { ID id-BroadcastMRBs-ToBeSetupMod-List CRITICALITY reject TYPE BroadcastMRBs-ToBeSetupMod-List PRESENCE optional }|
+ { ID id-BroadcastMRBs-ToBeModified-List CRITICALITY reject TYPE BroadcastMRBs-ToBeModified-List PRESENCE optional }|
+ { ID id-BroadcastMRBs-ToBeReleased-List CRITICALITY reject TYPE BroadcastMRBs-ToBeReleased-List PRESENCE optional }|
+ { ID id-SupportedUETypeList CRITICALITY ignore TYPE SupportedUETypeList PRESENCE optional },
...
}
@@ -4504,10 +4787,43 @@ BroadcastContextModificationFailureIEs F1AP-PROTOCOL-IES ::= {
...
}
+-- **************************************************************
+--
+-- BROADCAST TRANSPORT RESOURCE REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
-- **************************************************************
--
--- Multicast Group Paging PROCEDURE
+-- BROADCAST TRANSPORT RESOURCE REQUEST
+--
+-- **************************************************************
+
+BroadcastTransportResourceRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ BroadcastTransportResourceRequestIEs}},
+ ...
+}
+
+BroadcastTransportResourceRequestIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-DU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-Broadcast-MRBs-Transport-Request-List CRITICALITY reject TYPE Broadcast-MRBs-Transport-Request-List PRESENCE optional }|
+ { ID id-F1U-PathFailure CRITICALITY ignore TYPE F1U-PathFailure PRESENCE optional },
+ ...
+}
+
+Broadcast-MRBs-Transport-Request-List ::= SEQUENCE (SIZE(1..maxnoofMRBs)) OF ProtocolIE-SingleContainer { { Broadcast-MRBs-Transport-Request-ItemIEs} }
+
+Broadcast-MRBs-Transport-Request-ItemIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-Broadcast-MRBs-Transport-Request-Item CRITICALITY reject TYPE Broadcast-MRBs-Transport-Request-Item PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Multicast Group Paging ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4526,7 +4842,8 @@ MulticastGroupPaging ::= SEQUENCE {
MulticastGroupPagingIEs F1AP-PROTOCOL-IES ::= {
{ ID id-MBS-Session-ID CRITICALITY reject TYPE MBS-Session-ID PRESENCE mandatory }|
{ ID id-UEIdentity-List-For-Paging-List CRITICALITY ignore TYPE UEIdentity-List-For-Paging-List PRESENCE optional }|
- { ID id-MC-PagingCell-List CRITICALITY ignore TYPE MC-PagingCell-list PRESENCE optional },
+ { ID id-MC-PagingCell-List CRITICALITY ignore TYPE MC-PagingCell-list PRESENCE optional }|
+ { ID id-IndicationMCInactiveReception CRITICALITY ignore TYPE IndicationMCInactiveReception PRESENCE optional },
...
}
@@ -4566,11 +4883,13 @@ MulticastContextSetupRequest ::= SEQUENCE {
}
MulticastContextSetupRequestIEs F1AP-PROTOCOL-IES ::= {
- { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
- { ID id-MBS-Session-ID CRITICALITY reject TYPE MBS-Session-ID PRESENCE mandatory }|
- { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
- { ID id-SNSSAI CRITICALITY reject TYPE SNSSAI PRESENCE mandatory }|
- { ID id-MulticastMRBs-ToBeSetup-List CRITICALITY reject TYPE MulticastMRBs-ToBeSetup-List PRESENCE mandatory },
+ { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-MBS-Session-ID CRITICALITY reject TYPE MBS-Session-ID PRESENCE mandatory }|
+ { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
+ { ID id-SNSSAI CRITICALITY reject TYPE SNSSAI PRESENCE mandatory }|
+ { ID id-MulticastMRBs-ToBeSetup-List CRITICALITY reject TYPE MulticastMRBs-ToBeSetup-List PRESENCE mandatory }|
+ { ID id-MulticastCU2DURRCInfo CRITICALITY reject TYPE MulticastCU2DURRCInfo PRESENCE optional }|
+ { ID id-MBSMulticastSessionReceptionState CRITICALITY reject TYPE MBSMulticastSessionReceptionState PRESENCE optional },
...
}
@@ -4599,7 +4918,8 @@ MulticastContextSetupResponseIEs F1AP-PROTOCOL-IES ::= {
{ ID id-gNB-DU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-DU-MBS-F1AP-ID PRESENCE mandatory }|
{ ID id-MulticastMRBs-Setup-List CRITICALITY reject TYPE MulticastMRBs-Setup-List PRESENCE mandatory }|
{ ID id-MulticastMRBs-FailedToBeSetup-List CRITICALITY ignore TYPE MulticastMRBs-FailedToBeSetup-List PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-MulticastDU2CURRCInfo CRITICALITY reject TYPE MulticastDU2CURRCInfo PRESENCE optional },
...
}
@@ -4730,10 +5050,12 @@ MulticastContextModificationRequest ::= SEQUENCE {
MulticastContextModificationRequestIEs F1AP-PROTOCOL-IES ::= {
{ ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
{ ID id-gNB-DU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-DU-MBS-F1AP-ID PRESENCE mandatory }|
- { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
- { ID id-MulticastMRBs-ToBeSetupMod-List CRITICALITY reject TYPE MulticastMRBs-ToBeSetupMod-List PRESENCE optional }|
- { ID id-MulticastMRBs-ToBeModified-List CRITICALITY reject TYPE MulticastMRBs-ToBeModified-List PRESENCE optional }|
- { ID id-MulticastMRBs-ToBeReleased-List CRITICALITY reject TYPE MulticastMRBs-ToBeReleased-List PRESENCE optional },
+ { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
+ { ID id-MulticastMRBs-ToBeSetupMod-List CRITICALITY reject TYPE MulticastMRBs-ToBeSetupMod-List PRESENCE optional }|
+ { ID id-MulticastMRBs-ToBeModified-List CRITICALITY reject TYPE MulticastMRBs-ToBeModified-List PRESENCE optional }|
+ { ID id-MulticastMRBs-ToBeReleased-List CRITICALITY reject TYPE MulticastMRBs-ToBeReleased-List PRESENCE optional }|
+ { ID id-MulticastCU2DURRCInfo CRITICALITY reject TYPE MulticastCU2DURRCInfo PRESENCE optional }|
+ { ID id-MBSMulticastSessionReceptionState CRITICALITY reject TYPE MBSMulticastSessionReceptionState PRESENCE optional },
...
}
@@ -4775,7 +5097,8 @@ MulticastContextModificationResponseIEs F1AP-PROTOCOL-IES ::= {
{ ID id-MulticastMRBs-FailedToBeSetupMod-List CRITICALITY ignore TYPE MulticastMRBs-FailedToBeSetupMod-List PRESENCE optional }|
{ ID id-MulticastMRBs-Modified-List CRITICALITY reject TYPE MulticastMRBs-Modified-List PRESENCE optional }|
{ ID id-MulticastMRBs-FailedToBeModified-List CRITICALITY ignore TYPE MulticastMRBs-FailedToBeModified-List PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-MulticastDU2CURRCInfo CRITICALITY reject TYPE MulticastDU2CURRCInfo PRESENCE optional },
...
}
@@ -4826,6 +5149,132 @@ MulticastContextModificationFailureIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
+-- MULTICAST CONTEXT NOTIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- MULTICAST CONTEXT NOTIFICATION INDICATION
+--
+-- **************************************************************
+
+MulticastContextNotificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MulticastContextNotificationIndicationIEs}},
+ ...
+}
+
+MulticastContextNotificationIndicationIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-DU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-MulticastDU2CURRCInfo CRITICALITY reject TYPE MulticastDU2CURRCInfo PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MULTICAST CONTEXT NOTIFICATION CONFIRM
+--
+-- **************************************************************
+
+MulticastContextNotificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MulticastContextNotificationConfirmIEs}},
+ ...
+}
+
+MulticastContextNotificationConfirmIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-DU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MULTICAST CONTEXT NOTIFICATION REFUSE
+--
+-- **************************************************************
+
+MulticastContextNotificationRefuse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MulticastContextNotificationRefuseIEs}},
+ ...
+}
+
+MulticastContextNotificationRefuseIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-CU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-MBS-F1AP-ID CRITICALITY reject TYPE GNB-DU-MBS-F1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MULTICAST COMMON CONFIGURATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- MULTICAST COMMON CONFIGURATION REQUEST
+--
+-- **************************************************************
+
+MulticastCommonConfigurationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MulticastCommonConfigurationRequestIEs}},
+ ...
+}
+
+MulticastCommonConfigurationRequestIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-MulticastCU2DUCommonRRCInfo CRITICALITY reject TYPE MulticastCU2DUCommonRRCInfo PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MULTICAST COMMON CONFIGURATION RESPONSE
+--
+-- **************************************************************
+
+MulticastCommonConfigurationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MulticastCommonConfigurationResponseIEs}},
+ ...
+}
+
+MulticastCommonConfigurationResponseIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MULTICAST COMMON CONFIGURATION REFUSE
+--
+-- **************************************************************
+
+MulticastCommonConfigurationRefuse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MulticastCommonConfigurationRefuseIEs}},
+ ...
+}
+
+MulticastCommonConfigurationRefuseIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
-- MULTICAST DISTRIBUTION SETUP ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4964,7 +5413,7 @@ MulticastDistributionReleaseCompleteIEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- PDC MEASUREMENT PROCEDURE
+-- PDC MEASUREMENT ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -4985,7 +5434,7 @@ PDCMeasurementInitiationRequest-IEs F1AP-PROTOCOL-IES ::= {
{ ID id-RAN-UE-PDC-MeasID CRITICALITY reject TYPE RAN-UE-PDC-MeasID PRESENCE mandatory }|
{ ID id-PDCReportType CRITICALITY reject TYPE PDCReportType PRESENCE mandatory }|
{ ID id-PDCMeasurementPeriodicity CRITICALITY reject TYPE PDCMeasurementPeriodicity PRESENCE conditional }|
--- The above IE shall be present if the PDCReportType IE is set to “periodic†–-
+ -- The above IE shall be present if the PDCReportType IE is set to “periodic†–-
{ ID id-PDCMeasurementQuantities CRITICALITY reject TYPE PDCMeasurementQuantities PRESENCE mandatory },
...
}
@@ -5032,7 +5481,7 @@ PDCMeasurementInitiationFailure-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- PDC MEASUREMENT REPORT PROCEDURE
+-- PDC MEASUREMENT REPORT ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -5083,7 +5532,7 @@ PDCMeasurementTerminationCommand-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- PDC MEASUREMENT FAILURE INDICATION PROCEDURE
+-- PDC MEASUREMENT FAILURE INDICATION ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -5109,6 +5558,12 @@ PDCMeasurementFailureIndication-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
+-- PPS CONFIGURATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
-- PRS CONFIGURATION REQUEST
--
-- **************************************************************
@@ -5119,6 +5574,7 @@ PRSConfigurationRequest ::= SEQUENCE {
}
PRSConfigurationRequest-IEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-PRSConfigRequestType CRITICALITY reject TYPE PRSConfigRequestType PRESENCE mandatory }|
{ ID id-PRSTRPList CRITICALITY ignore TYPE PRSTRPList PRESENCE mandatory },
...
@@ -5163,7 +5619,7 @@ PRSConfigurationFailure-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- MEASUREMENT PRECONFIGURATION PROCEDURE
+-- MEASUREMENT PRECONFIGURATION ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -5231,7 +5687,7 @@ MeasurementPreconfigurationRefuse-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- MEASUREMENT ACTIVATION PROCEDURE
+-- MEASUREMENT ACTIVATION ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -5256,7 +5712,7 @@ MeasurementActivation-IEs F1AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- QOE INFORMATION TRANSFER
+-- QOE INFORMATION TRANSFER ELEMENTARY PROCEDURE
--
-- **************************************************************
@@ -5280,6 +5736,13 @@ QoEInformationTransfer-IEs F1AP-PROTOCOL-IES ::= {
...
}
+
+-- **************************************************************
+--
+-- POSITIONING SYSTEM INFORMATION DELIVERY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
-- **************************************************************
--
-- Positioning System information Delivery Command
@@ -5299,5 +5762,259 @@ PosSystemInformationDeliveryCommandIEs F1AP-PROTOCOL-IES ::= {
...
}
+-- **************************************************************
+--
+-- DU-CU CELL SWITCH NOTIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DU-CU Cell Switch Notification
+--
+-- **************************************************************
+
+DUCUCellSwitchNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ DUCUCellSwitchNotificationIEs}},
+ ...
+}
+
+DUCUCellSwitchNotificationIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-UE-F1AP-ID CRITICALITY reject TYPE GNB-CU-UE-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }|
+ { ID id-NRCGI CRITICALITY reject TYPE NRCGI PRESENCE mandatory }|
+ { ID id-LTMCellSwitchInformation CRITICALITY ignore TYPE LTMCellSwitchInformation PRESENCE optional }|
+ { ID id-TAInformation-List CRITICALITY ignore TYPE TAInformation-List PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- CU-DU CELL SWITCH NOTIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CU-DU Cell Switch Notification
+--
+-- **************************************************************
+
+CUDUCellSwitchNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ CUDUCellSwitchNotificationIEs}},
+ ...
+}
+
+CUDUCellSwitchNotificationIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-gNB-CU-UE-F1AP-ID CRITICALITY reject TYPE GNB-CU-UE-F1AP-ID PRESENCE mandatory }|
+ { ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }|
+ { ID id-NRCGI CRITICALITY reject TYPE NRCGI PRESENCE mandatory }|
+ { ID id-LTMCellSwitchInformation CRITICALITY ignore TYPE LTMCellSwitchInformation PRESENCE optional }|
+ { ID id-TAInformation-List CRITICALITY ignore TYPE TAInformation-List PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- DU-CU TA INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DU-CU TA Information Transfer
+--
+-- **************************************************************
+
+DUCUTAInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ DUCUTAInformationTransferIEs}},
+ ...
+}
+
+DUCUTAInformationTransferIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-DUtoCUTAInformation-List CRITICALITY ignore TYPE DUtoCUTAInformation-List PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CU-DU TA INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- CU-DU TA Information Transfer
+--
+-- **************************************************************
+
+CUDUTAInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ CUDUTAInformationTransferIEs}},
+ ...
+}
+
+CUDUTAInformationTransferIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-CUtoDUTAInformation-List CRITICALITY ignore TYPE CUtoDUTAInformation-List PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- QOE INFORMATION TRANSFER CONTROL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- QoE Information Transfer Control
+--
+-- **************************************************************
+
+
+QoEInformationTransferControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{QoEInformationTransferControl-IEs}},
+ ...
+}
+
+
+QoEInformationTransferControl-IEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-DeactivationIndication CRITICALITY ignore TYPE DeactivationIndication PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RACH Indication ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RACH Indication
+--
+-- **************************************************************
+
+
+RachIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ RachIndication-IEs}},
+ ...
+}
+
+
+RachIndication-IEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-RAReportIndicationList CRITICALITY reject TYPE RAReportIndicationList PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Timing Synchronisation Status Elementary Procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS REQUEST
+--
+-- **************************************************************
+
+TimingSynchronisationStatusRequest::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{TimingSynchronisationStatusRequest-IEs}},
+ ...
+}
+
+TimingSynchronisationStatusRequest-IEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-RANTSSRequestType CRITICALITY reject TYPE RANTSSRequestType PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS RESPONSE
+--
+-- **************************************************************
+
+TimingSynchronisationStatusResponse::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{TimingSynchronisationStatusResponse-IEs}},
+ ...
+}
+
+TimingSynchronisationStatusResponse-IEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS FAILURE
+--
+-- **************************************************************
+
+TimingSynchronisationStatusFailure::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{TimingSynchronisationStatusFailure-IEs}},
+ ...
+}
+
+TimingSynchronisationStatusFailure-IEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Timing Synchronisation Status Reporting Elementary Procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS REPORT
+--
+-- **************************************************************
+
+TimingSynchronisationStatusReport::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ TimingSynchronisationStatusReport-IEs}},
+ ...
+}
+
+TimingSynchronisationStatusReport-IEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-RANTimingSynchronisationStatusInfo CRITICALITY ignore TYPE RANTimingSynchronisationStatusInfo PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DU-CU Access And Mobility Indication ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DU-CU Access And Mobility Indication
+--
+-- **************************************************************
+
+DUCUAccessAndMobilityIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DUCUAccessAndMobilityIndicationIEs} },
+ ...
+}
+
+DUCUAccessAndMobilityIndicationIEs F1AP-PROTOCOL-IES ::= {
+ { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
+ { ID id-DLLBTFailureInformationList CRITICALITY ignore TYPE DLLBTFailureInformationList PRESENCE optional},
+ ...
+}
+
END
diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
index 25975fb9..05bdd5f7 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.5.0 (2023-06)
+-- 3GPP TS 38.473 V18.2.0 (2024-06)
-- 9.4.3 Elementary Procedure Definitions
-- **************************************************************
--
@@ -160,7 +160,28 @@ FROM F1AP-CommonDataTypes
MeasurementPreconfigurationRefuse,
MeasurementActivation,
QoEInformationTransfer,
- PosSystemInformationDeliveryCommand
+ PosSystemInformationDeliveryCommand,
+ DUCUCellSwitchNotification,
+ CUDUCellSwitchNotification,
+ DUCUTAInformationTransfer,
+ CUDUTAInformationTransfer,
+ QoEInformationTransferControl,
+ RachIndication,
+ TimingSynchronisationStatusRequest,
+ TimingSynchronisationStatusResponse,
+ TimingSynchronisationStatusFailure,
+ TimingSynchronisationStatusReport,
+ MIABF1SetupTriggering,
+ MIABF1SetupOutcomeNotification,
+ MulticastContextNotificationIndication,
+ MulticastContextNotificationConfirm,
+ MulticastContextNotificationRefuse,
+ MulticastCommonConfigurationRequest,
+ MulticastCommonConfigurationResponse,
+ MulticastCommonConfigurationRefuse,
+ BroadcastTransportResourceRequest,
+ DUCUAccessAndMobilityIndication,
+ SRSInformationReservationNotification
@@ -174,6 +195,7 @@ FROM F1AP-PDU-Contents
id-UEContextRelease,
id-UEContextModification,
id-UEContextModificationRequired,
+ id-DUCUAccessAndMobilityIndication,
id-ErrorIndication,
id-UEContextReleaseRequest,
id-DLRRCMessageTransfer,
@@ -236,9 +258,6 @@ FROM F1AP-PDU-Contents
id-MulticastDistributionSetup,
id-MulticastDistributionRelease,
id-PDCMeasurementInitiation,
- id-PDCMeasurementInitiationRequest,
- id-PDCMeasurementInitiationResponse,
- id-PDCMeasurementInitiationFailure,
id-PDCMeasurementTerminationCommand,
id-PDCMeasurementFailureIndication,
id-PDCMeasurementReport,
@@ -246,7 +265,24 @@ FROM F1AP-PDU-Contents
id-measurementPreconfiguration,
id-measurementActivation,
id-QoEInformationTransfer,
- id-PosSystemInformationDeliveryCommand
+ id-PosSystemInformationDeliveryCommand,
+ id-DUCUCellSwitchNotification,
+ id-CUDUCellSwitchNotification,
+ id-DUCUTAInformationTransfer,
+ id-CUDUTAInformationTransfer,
+ id-QoEInformationTransferControl,
+ id-RachIndication,
+ id-TimingSynchronisationStatus,
+ id-TimingSynchronisationStatusReport,
+ id-MIABF1SetupTriggering,
+ id-MIABF1SetupOutcomeNotification,
+ id-MulticastContextNotification,
+ id-MulticastCommonConfiguration,
+ id-BroadcastTransportResourceRequest,
+ id-SRSInformationReservationNotification
+
+
+
FROM F1AP-Constants
@@ -336,7 +372,7 @@ F1AP-ELEMENTARY-PROCEDURES-CLASS-1 F1AP-ELEMENTARY-PROCEDURE ::= {
uEContextModification |
uEContextModificationRequired |
writeReplaceWarning |
- pWSCancel |
+ pWSCancel |
gNBDUResourceCoordination |
f1Removal |
bAPMappingConfiguration |
@@ -351,15 +387,18 @@ F1AP-ELEMENTARY-PROCEDURES-CLASS-1 F1AP-ELEMENTARY-PROCEDURE ::= {
e-CIDMeasurementInitiation |
broadcastContextSetup |
broadcastContextRelease |
- broadcastContextModification|
+ broadcastContextModification |
multicastContextSetup |
- multicastContextRelease |
+ multicastContextRelease |
multicastContextModification |
multicastDistributionSetup |
multicastDistributionRelease |
pDCMeasurementInitiation |
pRSConfigurationExchange |
- measurementPreconfiguration ,
+ measurementPreconfiguration |
+ timingSynchronisationStatus |
+ multicastContextNotification |
+ multicastCommonConfiguration ,
...
}
@@ -408,7 +447,19 @@ F1AP-ELEMENTARY-PROCEDURES-CLASS-2 F1AP-ELEMENTARY-PROCEDURE ::= {
pDCMeasurementFailureIndication |
measurementActivation |
qoEInformationTransfer |
- posSystemInformationDelivery,
+ posSystemInformationDelivery |
+ dUCUCellSwitchNotification |
+ cUDUCellSwitchNotification |
+ dUCUTAInformationTransfer |
+ cUDUTAInformationTransfer |
+ qoEInformationTransferControl |
+ rachIndication |
+ timingSynchronisationStatusReport |
+ mIABF1SetupTriggering |
+ mIABF1SetupOutcomeNotification |
+ broadcastTransportResourceRequest |
+ dUCUAccessAndMobilityIndication |
+ sRSInformationReservationNotification,
...
}
-- **************************************************************
@@ -952,5 +1003,103 @@ posSystemInformationDelivery F1AP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY ignore
}
+dUCUCellSwitchNotification F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DUCUCellSwitchNotification
+ PROCEDURE CODE id-DUCUCellSwitchNotification
+ CRITICALITY ignore
+}
+
+cUDUCellSwitchNotification F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CUDUCellSwitchNotification
+ PROCEDURE CODE id-CUDUCellSwitchNotification
+ CRITICALITY ignore
+}
+
+
+dUCUTAInformationTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DUCUTAInformationTransfer
+ PROCEDURE CODE id-DUCUTAInformationTransfer
+ CRITICALITY ignore
+}
+
+cUDUTAInformationTransfer F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CUDUTAInformationTransfer
+ PROCEDURE CODE id-CUDUTAInformationTransfer
+ CRITICALITY ignore
+}
+
+qoEInformationTransferControl F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE QoEInformationTransferControl
+ PROCEDURE CODE id-QoEInformationTransferControl
+ CRITICALITY ignore
+}
+
+rachIndication F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RachIndication
+ PROCEDURE CODE id-RachIndication
+ CRITICALITY ignore
+}
+
+timingSynchronisationStatus F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TimingSynchronisationStatusRequest
+ SUCCESSFUL OUTCOME TimingSynchronisationStatusResponse
+ UNSUCCESSFUL OUTCOME TimingSynchronisationStatusFailure
+ PROCEDURE CODE id-TimingSynchronisationStatus
+ CRITICALITY reject
+}
+
+timingSynchronisationStatusReport F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TimingSynchronisationStatusReport
+ PROCEDURE CODE id-TimingSynchronisationStatusReport
+ CRITICALITY ignore
+}
+
+mIABF1SetupTriggering F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MIABF1SetupTriggering
+ PROCEDURE CODE id-MIABF1SetupTriggering
+ CRITICALITY ignore
+}
+
+mIABF1SetupOutcomeNotification F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MIABF1SetupOutcomeNotification
+ PROCEDURE CODE id-MIABF1SetupOutcomeNotification
+ CRITICALITY ignore
+}
+
+multicastContextNotification F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MulticastContextNotificationIndication
+ SUCCESSFUL OUTCOME MulticastContextNotificationConfirm
+ UNSUCCESSFUL OUTCOME MulticastContextNotificationRefuse
+ PROCEDURE CODE id-MulticastContextNotification
+ CRITICALITY reject
+}
+
+multicastCommonConfiguration F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MulticastCommonConfigurationRequest
+ SUCCESSFUL OUTCOME MulticastCommonConfigurationResponse
+ UNSUCCESSFUL OUTCOME MulticastCommonConfigurationRefuse
+ PROCEDURE CODE id-MulticastCommonConfiguration
+ CRITICALITY reject
+}
+
+
+broadcastTransportResourceRequest F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BroadcastTransportResourceRequest
+ PROCEDURE CODE id-BroadcastTransportResourceRequest
+ CRITICALITY reject
+}
+
+dUCUAccessAndMobilityIndication F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DUCUAccessAndMobilityIndication
+ PROCEDURE CODE id-DUCUAccessAndMobilityIndication
+ CRITICALITY ignore
+}
+
+sRSInformationReservationNotification F1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRSInformationReservationNotification
+ PROCEDURE CODE id-SRSInformationReservationNotification
+ CRITICALITY reject
+}
+
END
diff --git a/epan/dissectors/asn1/f1ap/f1ap.cnf b/epan/dissectors/asn1/f1ap/f1ap.cnf
index 8165479b..9749cf9d 100644
--- a/epan/dissectors/asn1/f1ap/f1ap.cnf
+++ b/epan/dissectors/asn1/f1ap/f1ap.cnf
@@ -31,7 +31,6 @@ ProtocolIE-ID
Presence
ProtocolIE-ContainerPair
ProtocolIE-FieldPair
-PRS-ID
#.END
@@ -119,7 +118,7 @@ id-UEContextSetup ProcedureCode
id-UEContextRelease ProcedureCode
id-UEContextModification ProcedureCode
id-UEContextModificationRequired ProcedureCode
-id-UEMobilityCommand ProcedureCode
+id-procedure-code-9-not-to-be-used ProcedureCode
id-UEContextReleaseRequest ProcedureCode
id-InitialULRRCMessageTransfer ProcedureCode
id-DLRRCMessageTransfer ProcedureCode
@@ -182,9 +181,9 @@ id-MulticastDistributionSetup ProcedureCode
id-MulticastDistributionRelease ProcedureCode
id-PDCMeasurementInitiation ProcedureCode
id-PDCMeasurementReport ProcedureCode
-id-PDCMeasurementInitiationRequest ProcedureCode
-id-PDCMeasurementInitiationResponse ProcedureCode
-id-PDCMeasurementInitiationFailure ProcedureCode
+id-procedure-code-72-not-to-be-used ProcedureCode
+id-procedure-code-73-not-to-be-used ProcedureCode
+id-procedure-code-74-not-to-be-used ProcedureCode
id-pRSConfigurationExchange ProcedureCode
id-measurementPreconfiguration ProcedureCode
id-measurementActivation ProcedureCode
@@ -192,6 +191,21 @@ id-QoEInformationTransfer ProcedureCode
id-PDCMeasurementTerminationCommand ProcedureCode
id-PDCMeasurementFailureIndication ProcedureCode
id-PosSystemInformationDeliveryCommand ProcedureCode
+id-DUCUCellSwitchNotification ProcedureCode
+id-CUDUCellSwitchNotification ProcedureCode
+id-DUCUTAInformationTransfer ProcedureCode
+id-CUDUTAInformationTransfer ProcedureCode
+id-QoEInformationTransferControl ProcedureCode
+id-RachIndication ProcedureCode
+id-TimingSynchronisationStatus ProcedureCode
+id-TimingSynchronisationStatusReport ProcedureCode
+id-MIABF1SetupTriggering ProcedureCode
+id-MIABF1SetupOutcomeNotification ProcedureCode
+id-MulticastContextNotification ProcedureCode
+id-MulticastCommonConfiguration ProcedureCode
+id-BroadcastTransportResourceRequest ProcedureCode
+id-DUCUAccessAndMobilityIndication ProcedureCode
+id-SRSInformationReservationNotification ProcedureCode
# ProtocolIE-ID
id-Cause ProtocolIE-ID
@@ -237,7 +251,7 @@ id-gNB-DU-ID ProtocolIE-ID
id-GNB-DU-Served-Cells-Item ProtocolIE-ID
id-gNB-DU-Served-Cells-List ProtocolIE-ID
id-gNB-DU-Name ProtocolIE-ID
-id-NRCellID ProtocolIE-ID
+id-ProtocolIE-ID-46-not-to-be-used ProtocolIE-ID
id-oldgNB-DU-UE-F1AP-ID ProtocolIE-ID
id-ResetType ProtocolIE-ID
id-ResourceCoordinationTransferContainer ProtocolIE-ID
@@ -326,7 +340,7 @@ id-GNB-CU-TNL-Association-Failed-To-Setup-List ProtocolIE-ID
id-GNB-CU-TNL-Association-Failed-To-Setup-Item ProtocolIE-ID
id-DRB-Notify-Item ProtocolIE-ID
id-DRB-Notify-List ProtocolIE-ID
-id-NotficationControl ProtocolIE-ID
+id-ProtocolIE-ID-138-not-to-be-used ProtocolIE-ID
id-RANAC ProtocolIE-ID
id-PWSSystemInformation ProtocolIE-ID
id-RepetitionPeriod ProtocolIE-ID
@@ -429,8 +443,8 @@ id-RRCContainer-RRCSetupComplete ProtocolIE-ID
id-TraceActivation ProtocolIE-ID
id-TraceID ProtocolIE-ID
id-Neighbour-Cell-Information-List ProtocolIE-ID
-id-SymbolAllocInSlot ProtocolIE-ID
-id-NumDLULSymbols ProtocolIE-ID
+id-ProtocolIE-ID-246-not-to-be-used ProtocolIE-ID
+id-ProtocolIE-ID-247-not-to-be-used ProtocolIE-ID
id-AdditionalRRMPriorityIndex ProtocolIE-ID
id-DUCURadioInformationType ProtocolIE-ID
id-CUDURadioInformationType ProtocolIE-ID
@@ -542,7 +556,7 @@ id-ULCarrierList ProtocolIE-ID
id-FrequencyShift7p5khz ProtocolIE-ID
id-SSB-PositionsInBurst ProtocolIE-ID
id-NRPRACHConfig ProtocolIE-ID
-id-RACHReportInformationList ProtocolIE-ID
+id-RAReportList ProtocolIE-ID
id-RLFReportInformationList ProtocolIE-ID
id-TDD-UL-DLConfigCommonNR ProtocolIE-ID
id-CNPacketDelayBudgetDownlink ProtocolIE-ID
@@ -628,12 +642,12 @@ id-NR-U-Channel-List ProtocolIE-ID
id-NR-U ProtocolIE-ID
id-Coverage-Modification-Notification ProtocolIE-ID
id-CCO-Assistance-Information ProtocolIE-ID
-id-Neighbor-node-CCO-Assistance-Information-List ProtocolIE-ID
+id-ProtocolIE-ID-448-not-to-be-used ProtocolIE-ID
id-CellsForSON-List ProtocolIE-ID
id-MIMOPRBusageInformation ProtocolIE-ID
id-gNB-CU-MBS-F1AP-ID ProtocolIE-ID
id-gNB-DU-MBS-F1AP-ID ProtocolIE-ID
-id-MBS-Area-Session-ID ProtocolIE-ID
+id-ProtocolIE-ID-453-not-to-be-used ProtocolIE-ID
id-MBS-CUtoDURRCInformation ProtocolIE-ID
id-MBS-Session-ID ProtocolIE-ID
id-SNSSAI ProtocolIE-ID
@@ -754,7 +768,7 @@ id-PRSConfigRequestType ProtocolIE-ID
id-MeasurementTimeOccasion ProtocolIE-ID
id-MeasurementCharacteristicsRequestIndicator ProtocolIE-ID
id-UEReportingInformation ProtocolIE-ID
-id-PosConextRevIndication ProtocolIE-ID
+id-PosContextRevIndication ProtocolIE-ID
id-TRPBeamAntennaInformation ProtocolIE-ID
id-NRRedCapUEIndication ProtocolIE-ID
id-Redcap-Bcast-Information ProtocolIE-ID
@@ -846,9 +860,9 @@ id-PEISubgroupingSupportIndication ProtocolIE-ID
id-NeedForGapsInfoNR ProtocolIE-ID
id-NeedForGapNCSGInfoNR ProtocolIE-ID
id-NeedForGapNCSGInfoEUTRA ProtocolIE-ID
-id-procedure-code-668-not-to-be-used ProtocolIE-ID
-id-procedure-code-669-not-to-be-used ProtocolIE-ID
-id-procedure-code-670-not-to-be-used ProtocolIE-ID
+id-ProtocolIE-ID-668-not-to-be-used ProtocolIE-ID
+id-ProtocolIE-ID-669-not-to-be-used ProtocolIE-ID
+id-ProtocolIE-ID-670-not-to-be-used ProtocolIE-ID
id-Source-MRB-ID ProtocolIE-ID
id-PosMeasurementPeriodicityNR-AoA ProtocolIE-ID
id-RedCapIndication ProtocolIE-ID
@@ -885,6 +899,148 @@ id-repetitionFactorExtended ProtocolIE-ID
id-startRBHopping ProtocolIE-ID
id-startRBIndex ProtocolIE-ID
id-transmissionCombn8 ProtocolIE-ID
+id-ServCellInfoList ProtocolIE-ID
+id-DedicatedSIDeliveryIndication ProtocolIE-ID
+id-Configured-BWP-List ProtocolIE-ID
+id-Preconfigured-measurement-GAP-Request ProtocolIE-ID
+id-BWP-Id ProtocolIE-ID
+id-NetworkControlledRepeaterAuthorized ProtocolIE-ID
+id-MT-SDT-Information ProtocolIE-ID
+id-ExtendedResourceSymbolOffset ProtocolIE-ID
+id-NeedForInterruptionInfoNR ProtocolIE-ID
+id-SDT-Volume-Threshold ProtocolIE-ID
+id-SupportedUETypeList ProtocolIE-ID
+id-MusimCapabilityRestrictionIndication ProtocolIE-ID
+id-duplicationIndication ProtocolIE-ID
+id-LTMInformation-Setup ProtocolIE-ID
+id-LTMConfigurationIDMappingList ProtocolIE-ID
+id-LTMInformation-Modify ProtocolIE-ID
+id-LTMCells-ToBeReleased-List ProtocolIE-ID
+id-ProtocolIE-ID-724-not-to-be-used ProtocolIE-ID
+id-LTMConfiguration ProtocolIE-ID
+id-EarlySyncInformation-Request ProtocolIE-ID
+id-EarlySyncInformation ProtocolIE-ID
+id-EarlySyncCandidateCellInformation-List ProtocolIE-ID
+id-LTMCellSwitchInformation ProtocolIE-ID
+id-DUtoCUTAInformation-List ProtocolIE-ID
+id-ProtocolIE-ID-731-not-to-be-used ProtocolIE-ID
+id-dRB-List ProtocolIE-ID
+id-DeactivationIndication ProtocolIE-ID
+id-RAReportIndicationList ProtocolIE-ID
+id-ChannelOccupancyTimePercentageUL ProtocolIE-ID
+id-SuccessfulPSCellChangeReportInformationList ProtocolIE-ID
+id-RadioResourceStatusNR-U ProtocolIE-ID
+id-FiveG-ProSeLayer2Multipath ProtocolIE-ID
+id-FiveG-ProSeLayer2UEtoUERelay ProtocolIE-ID
+id-FiveG-ProSeLayer2UEtoUERemote ProtocolIE-ID
+id-PathAdditionInformation ProtocolIE-ID
+id-Recommended-SSBs-List ProtocolIE-ID
+id-Recommended-SSBs-for-Paging-List ProtocolIE-ID
+id-SSBs-withinTheCell-tobe-Activated-List ProtocolIE-ID
+id-Cells-With-SSBs-Activated-List ProtocolIE-ID
+id-Cells-Allowed-to-be-Deactivated-List ProtocolIE-ID
+id-Cells-Allowed-to-be-Deactivated-List-Item ProtocolIE-ID
+id-Coverage-Modification-Cause ProtocolIE-ID
+id-RANTSSRequestType ProtocolIE-ID
+id-RANTimingSynchronisationStatusInfo ProtocolIE-ID
+id-TSCTrafficCharacteristicsFeedback ProtocolIE-ID
+id-RANfeedbacktype ProtocolIE-ID
+id-Mobile-TRP-LocationInformation ProtocolIE-ID
+id-Mobile-IAB-MT-UE-ID ProtocolIE-ID
+id-Target-gNB-ID ProtocolIE-ID
+id-Target-gNB-IP-address ProtocolIE-ID
+id-Target-SeGW-IP-address ProtocolIE-ID
+id-Activated-Cells-Mapping-List ProtocolIE-ID
+id-Activated-Cells-Mapping-List-Item ProtocolIE-ID
+id-F1SetupOutcome ProtocolIE-ID
+id-RRC-Terminating-IAB-Donor-Related-Info ProtocolIE-ID
+id-RRC-Terminating-IAB-Donor-gNB-ID ProtocolIE-ID
+id-NCGI-to-be-Updated-List ProtocolIE-ID
+id-NCGI-to-be-Updated-List-Item ProtocolIE-ID
+id-Mobile-IAB-MTUserLocationInformation ProtocolIE-ID
+id-MobileAccessPointLocation ProtocolIE-ID
+id-AssociatedSessionID ProtocolIE-ID
+id-IndicationMCInactiveReception ProtocolIE-ID
+id-MulticastCU2DURRCInfo ProtocolIE-ID
+id-MBSMulticastSessionReceptionState ProtocolIE-ID
+id-F1UTunnelNotEstablished ProtocolIE-ID
+id-MulticastDU2CURRCInfo ProtocolIE-ID
+id-SIB24-message ProtocolIE-ID
+id-MulticastCU2DUCommonRRCInfo ProtocolIE-ID
+id-PDUSetQoSParameters ProtocolIE-ID
+id-N6JitterInformation ProtocolIE-ID
+id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID
+id-ECNMarkingorCongestionInformationReportingStatus ProtocolIE-ID
+id-NRA2XServicesAuthorized ProtocolIE-ID
+id-LTEA2XServicesAuthorized ProtocolIE-ID
+id-NRUESidelinkAggregateMaximumBitrateForA2X ProtocolIE-ID
+id-LTEUESidelinkAggregateMaximumBitrateForA2X ProtocolIE-ID
+id-NReRedCapUEIndication ProtocolIE-ID
+id-ERedcap-Bcast-Information ProtocolIE-ID
+id-NRPaginglongeDRXInformationforRRCINACTIVE ProtocolIE-ID
+id-SCPAC-Request ProtocolIE-ID
+id-Target-F1-Terminating-Donor-gNB-ID ProtocolIE-ID
+id-MobileIAB-Barred ProtocolIE-ID
+id-Broadcast-MRBs-Transport-Request-List ProtocolIE-ID
+id-Broadcast-MRBs-Transport-Request-Item ProtocolIE-ID
+id-S-CPACLowerLayerReferenceConfigRequest ProtocolIE-ID
+id-S-CPAC-Configuration ProtocolIE-ID
+id-MusimCandidateBandList ProtocolIE-ID
+id-DLLBTFailureInformationRequest ProtocolIE-ID
+id-DLLBTFailureInformationList ProtocolIE-ID
+id-PSIbasedSDUdiscardUL ProtocolIE-ID
+id-SIB22-message ProtocolIE-ID
+id-CUtoDUTAInformation-List ProtocolIE-ID
+id-U2URLCChannelQoS ProtocolIE-ID
+id-SL-PHY-MAC-RLC-ConfigExt ProtocolIE-ID
+id-SLPositioning-Ranging-Service-Info ProtocolIE-ID
+id-TimeWindowInformation-SRS-List ProtocolIE-ID
+id-TimeWindowInformation-Measurement-List ProtocolIE-ID
+id-UL-RSCP ProtocolIE-ID
+id-BW-Aggregation-Request-Indication ProtocolIE-ID
+id-ReportingGranularitykminus1 ProtocolIE-ID
+id-ReportingGranularitykminus2 ProtocolIE-ID
+id-ReportingGranularitykminus1additionalpath ProtocolIE-ID
+id-ReportingGranularitykminus2additionalpath ProtocolIE-ID
+id-TimingReportingGranularityFactorExtended ProtocolIE-ID
+id-SRSPosRRCInactiveValidityAreaConfig ProtocolIE-ID
+id-PosValidityAreaCellList ProtocolIE-ID
+id-SRSReservationType ProtocolIE-ID
+id-SymbolIndex ProtocolIE-ID
+id-PRSBandwidthAggregationRequestIndication ProtocolIE-ID
+id-AggregatedPosSRSResourceIDList ProtocolIE-ID
+id-AggregatedPRSResourceSetList ProtocolIE-ID
+id-PhaseQuality ProtocolIE-ID
+id-MeasuredFrequencyHops ProtocolIE-ID
+id-TxHoppingConfiguration ProtocolIE-ID
+id-ReportingGranularitykminus3 ProtocolIE-ID
+id-ReportingGranularitykminus4 ProtocolIE-ID
+id-ReportingGranularitykminus5 ProtocolIE-ID
+id-ReportingGranularitykminus6 ProtocolIE-ID
+id-ReportingGranularitykminus3additionalpath ProtocolIE-ID
+id-ReportingGranularitykminus4additionalpath ProtocolIE-ID
+id-ReportingGranularitykminus5additionalpath ProtocolIE-ID
+id-ReportingGranularitykminus6additionalpath ProtocolIE-ID
+id-AggregatedPosSRSResourceSetList ProtocolIE-ID
+id-RequestedSRSPreconfigurationCharacteristics-List ProtocolIE-ID
+id-SRSPreconfiguration-List ProtocolIE-ID
+id-SRSInformation ProtocolIE-ID
+id-ValidityAreaSpecificSRSInformation ProtocolIE-ID
+id-E-CID-MeasuredResultsAssociatedInfoList ProtocolIE-ID
+id-XR-Bcast-Information ProtocolIE-ID
+id-MaxDataBurstVolume ProtocolIE-ID
+id-TAInformation-List ProtocolIE-ID
+id-NonIntegerDRXCycle ProtocolIE-ID
+id-PointA ProtocolIE-ID
+id-SCS-SpecificCarrier ProtocolIE-ID
+id-NR-PCI ProtocolIE-ID
+id-PeerUE-ID ProtocolIE-ID
+id-EarlySyncServingCellInformation ProtocolIE-ID
+id-RANSharingAssistanceInformation ProtocolIE-ID
+id-LTMCFRAResourceConfig-List ProtocolIE-ID
+id-F1U-PathFailure ProtocolIE-ID
+id-MeasBasedOnAggregatedResources ProtocolIE-ID
+id-SIB23-message ProtocolIE-ID
#.END
#.REGISTER
@@ -1168,7 +1324,7 @@ CellMeasurementResultList N f1ap.ies id-CellMeasurementR
HardwareLoadIndicator N f1ap.ies id-HardwareLoadIndicator
ReportingPeriodicity N f1ap.ies id-ReportingPeriodicity
TNLCapacityIndicator N f1ap.ies id-TNLCapacityIndicator
-RACHReportInformationList N f1ap.ies id-RACHReportInformationList
+RAReportList N f1ap.ies id-RAReportList
RLFReportInformationList N f1ap.ies id-RLFReportInformationList
ReportingRequestType N f1ap.ies id-ReportingRequestType
TimeReferenceInformation N f1ap.ies id-TimeReferenceInformation
@@ -1313,7 +1469,7 @@ PRSConfigRequestType N f1ap.ies id-PRSConfigRequest
MeasurementTimeOccasion N f1ap.ies id-MeasurementTimeOccasion
MeasurementCharacteristicsRequestIndicator N f1ap.ies id-MeasurementCharacteristicsRequestIndicator
UEReportingInformation N f1ap.ies id-UEReportingInformation
-PosConextRevIndication N f1ap.ies id-PosConextRevIndication
+PosContextRevIndication N f1ap.ies id-PosContextRevIndication
TRPBeamAntennaInformation N f1ap.ies id-TRPBeamAntennaInformation
NRRedCapUEIndication N f1ap.ies id-NRRedCapUEIndication
PagingDRX N f1ap.ies id-RANUEPagingDRX
@@ -1403,6 +1559,93 @@ HashedUEIdentityIndexValue N f1ap.ies id-HashedUEIdentity
UE-MulticastMRBs-Setupnew-List N f1ap.ies id-UE-MulticastMRBs-Setupnew-List
UE-MulticastMRBs-Setupnew-Item N f1ap.ies id-UE-MulticastMRBs-Setupnew-Item
TransmissionCombn8 N f1ap.ies id-transmissionCombn8
+DedicatedSIDeliveryIndication N f1ap.ies id-DedicatedSIDeliveryIndication
+Configured-BWP-List N f1ap.ies id-Configured-BWP-List
+NetworkControlledRepeaterAuthorized N f1ap.ies id-NetworkControlledRepeaterAuthorized
+MT-SDT-Information N f1ap.ies id-MT-SDT-Information
+SDT-Volume-Threshold N f1ap.ies id-SDT-Volume-Threshold
+SupportedUETypeList N f1ap.ies id-SupportedUETypeList
+LTMInformation-Setup N f1ap.ies id-LTMInformation-Setup
+LTMConfigurationIDMappingList N f1ap.ies id-LTMConfigurationIDMappingList
+LTMInformation-Modify N f1ap.ies id-LTMInformation-Modify
+LTMCells-ToBeReleased-List N f1ap.ies id-LTMCells-ToBeReleased-List
+LTMConfiguration N f1ap.ies id-LTMConfiguration
+EarlySyncInformation-Request N f1ap.ies id-EarlySyncInformation-Request
+EarlySyncInformation N f1ap.ies id-EarlySyncInformation
+EarlySyncCandidateCellInformation-List N f1ap.ies id-EarlySyncCandidateCellInformation-List
+LTMCellSwitchInformation N f1ap.ies id-LTMCellSwitchInformation
+DUtoCUTAInformation-List N f1ap.ies id-DUtoCUTAInformation-List
+DeactivationIndication N f1ap.ies id-DeactivationIndication
+RAReportIndicationList N f1ap.ies id-RAReportIndicationList
+SuccessfulPSCellChangeReportInformationList N f1ap.ies id-SuccessfulPSCellChangeReportInformationList
+PathAdditionInformation N f1ap.ies id-PathAdditionInformation
+Recommended-SSBs-for-Paging-List N f1ap.ies id-Recommended-SSBs-for-Paging-List
+Cells-With-SSBs-Activated-List N f1ap.ies id-Cells-With-SSBs-Activated-List
+Cells-Allowed-to-be-Deactivated-List N f1ap.ies id-Cells-Allowed-to-be-Deactivated-List
+Cells-Allowed-to-be-Deactivated-List-Item N f1ap.ies id-Cells-Allowed-to-be-Deactivated-List-Item
+RANTSSRequestType N f1ap.ies id-RANTSSRequestType
+RANTimingSynchronisationStatusInfo N f1ap.ies id-RANTimingSynchronisationStatusInfo
+Mobile-TRP-LocationInformation N f1ap.ies id-Mobile-TRP-LocationInformation
+GlobalGNB-ID N f1ap.ies id-Target-gNB-ID
+TransportLayerAddress N f1ap.ies id-Target-gNB-IP-address
+TransportLayerAddress N f1ap.ies id-Target-SeGW-IP-address
+Activated-Cells-Mapping-List N f1ap.ies id-Activated-Cells-Mapping-List
+Activated-Cells-Mapping-List-Item N f1ap.ies id-Activated-Cells-Mapping-List-Item
+F1SetupOutcome N f1ap.ies id-F1SetupOutcome
+RRC-Terminating-IAB-Donor-Related-Info N f1ap.ies id-RRC-Terminating-IAB-Donor-Related-Info
+GlobalGNB-ID N f1ap.ies id-RRC-Terminating-IAB-Donor-gNB-ID
+NCGI-to-be-Updated-List N f1ap.ies id-NCGI-to-be-Updated-List
+NCGI-to-be-Updated-List-Item N f1ap.ies id-NCGI-to-be-Updated-List-Item
+Mobile-IAB-MTUserLocationInformation N f1ap.ies id-Mobile-IAB-MTUserLocationInformation
+AssociatedSessionID N f1ap.ies id-AssociatedSessionID
+IndicationMCInactiveReception N f1ap.ies id-IndicationMCInactiveReception
+MulticastCU2DURRCInfo N f1ap.ies id-MulticastCU2DURRCInfo
+MBSMulticastSessionReceptionState N f1ap.ies id-MBSMulticastSessionReceptionState
+MulticastDU2CURRCInfo N f1ap.ies id-MulticastDU2CURRCInfo
+MulticastCU2DUCommonRRCInfo N f1ap.ies id-MulticastCU2DUCommonRRCInfo
+NRA2XServicesAuthorized N f1ap.ies id-NRA2XServicesAuthorized
+LTEA2XServicesAuthorized N f1ap.ies id-LTEA2XServicesAuthorized
+NRUESidelinkAggregateMaximumBitrate N f1ap.ies id-NRUESidelinkAggregateMaximumBitrateForA2X
+LTEUESidelinkAggregateMaximumBitrate N f1ap.ies id-LTEUESidelinkAggregateMaximumBitrateForA2X
+NReRedCapUEIndication N f1ap.ies id-NReRedCapUEIndication
+NRPaginglongeDRXInformationforRRCINACTIVE N f1ap.ies id-NRPaginglongeDRXInformationforRRCINACTIVE
+GlobalGNB-ID N f1ap.ies id-Target-F1-Terminating-Donor-gNB-ID
+Broadcast-MRBs-Transport-Request-List N f1ap.ies id-Broadcast-MRBs-Transport-Request-List
+Broadcast-MRBs-Transport-Request-Item N f1ap.ies id-Broadcast-MRBs-Transport-Request-Item
+S-CPAC-Configuration N f1ap.ies id-S-CPAC-Configuration
+DLLBTFailureInformationRequest N f1ap.ies id-DLLBTFailureInformationRequest
+DLLBTFailureInformationList N f1ap.ies id-DLLBTFailureInformationList
+CUtoDUTAInformation-List N f1ap.ies id-CUtoDUTAInformation-List
+PC5QoSParameters N f1ap.ies id-U2URLCChannelQoS
+SLPositioning-Ranging-Service-Info N f1ap.ies id-SLPositioning-Ranging-Service-Info
+TimeWindowInformation-SRS-List N f1ap.ies id-TimeWindowInformation-SRS-List
+TimeWindowInformation-Measurement-List N f1ap.ies id-TimeWindowInformation-Measurement-List
+UL-RSCP N f1ap.ies id-UL-RSCP
+ReportingGranularitykminus1 N f1ap.ies id-ReportingGranularitykminus1
+ReportingGranularitykminus2 N f1ap.ies id-ReportingGranularitykminus2
+ReportingGranularitykminus1AdditionalPath N f1ap.ies id-ReportingGranularitykminus1additionalpath
+ReportingGranularitykminus2AdditionalPath N f1ap.ies id-ReportingGranularitykminus2additionalpath
+SRSPosRRCInactiveValidityAreaConfig N f1ap.ies id-SRSPosRRCInactiveValidityAreaConfig
+SRSReservationType N f1ap.ies id-SRSReservationType
+PhaseQuality N f1ap.ies id-PhaseQuality
+ReportingGranularitykminus3 N f1ap.ies id-ReportingGranularitykminus3
+ReportingGranularitykminus4 N f1ap.ies id-ReportingGranularitykminus4
+ReportingGranularitykminus5 N f1ap.ies id-ReportingGranularitykminus5
+ReportingGranularitykminus6 N f1ap.ies id-ReportingGranularitykminus6
+ReportingGranularitykminus3AdditionalPath N f1ap.ies id-ReportingGranularitykminus3additionalpath
+ReportingGranularitykminus4AdditionalPath N f1ap.ies id-ReportingGranularitykminus4additionalpath
+ReportingGranularitykminus5AdditionalPath N f1ap.ies id-ReportingGranularitykminus5additionalpath
+ReportingGranularitykminus6AdditionalPath N f1ap.ies id-ReportingGranularitykminus6additionalpath
+AggregatedPosSRSResourceSetList N f1ap.ies id-AggregatedPosSRSResourceSetList
+RequestedSRSPreconfigurationCharacteristics-List N f1ap.ies id-RequestedSRSPreconfigurationCharacteristics-List
+SRSPreconfiguration-List N f1ap.ies id-SRSPreconfiguration-List
+RequestedSRSTransmissionCharacteristics N f1ap.ies id-SRSInformation
+TAInformation-List N f1ap.ies id-TAInformation-List
+NonIntegerDRXCycle N f1ap.ies id-NonIntegerDRXCycle
+EarlySyncServingCellInformation N f1ap.ies id-EarlySyncServingCellInformation
+RANSharingAssistanceInformation N f1ap.ies id-RANSharingAssistanceInformation
+LTMCFRAResourceConfig-List N f1ap.ies id-LTMCFRAResourceConfig-List
+F1U-PathFailure N f1ap.ies id-F1U-PathFailure
#F1AP-PROTOCOL-EXTENSION
GNB-CUSystemInformation N f1ap.extension id-gNB-CUSystemInformation
@@ -1579,6 +1822,61 @@ NrofSymbolsExtended N f1ap.extension id-nrofSymbol
RepetitionFactorExtended N f1ap.extension id-repetitionFactorExtended
StartRBHopping N f1ap.extension id-startRBHopping
StartRBIndex N f1ap.extension id-startRBIndex
+ServCellInfoList N f1ap.extension id-ServCellInfoList
+Preconfigured-measurement-GAP-Request N f1ap.extension id-Preconfigured-measurement-GAP-Request
+BWP-Id N f1ap.extension id-BWP-Id
+ExtendedResourceSymbolOffset N f1ap.extension id-ExtendedResourceSymbolOffset
+NeedForInterruptionInfoNR N f1ap.extension id-NeedForInterruptionInfoNR
+MusimCapabilityRestrictionIndication N f1ap.extension id-MusimCapabilityRestrictionIndication
+DuplicationIndication N f1ap.extension id-duplicationIndication
+DRB-List N f1ap.extension id-dRB-List
+ChannelOccupancyTimePercentage N f1ap.extension id-ChannelOccupancyTimePercentageUL
+RadioResourceStatusNR-U N f1ap.extension id-RadioResourceStatusNR-U
+FiveG-ProSeLayer2Multipath N f1ap.extension id-FiveG-ProSeLayer2Multipath
+FiveG-ProSeLayer2UEtoUERelay N f1ap.extension id-FiveG-ProSeLayer2UEtoUERelay
+FiveG-ProSeLayer2UEtoUERemote N f1ap.extension id-FiveG-ProSeLayer2UEtoUERemote
+Recommended-SSBs-List N f1ap.extension id-Recommended-SSBs-List
+SSBs-toBeActivated-List N f1ap.extension id-SSBs-withinTheCell-tobe-Activated-List
+CCO-issue-detection N f1ap.extension id-Coverage-Modification-Cause
+TSCTrafficCharacteristicsFeedback N f1ap.extension id-TSCTrafficCharacteristicsFeedback
+RANfeedbacktype N f1ap.extension id-RANfeedbacktype
+Mobile-TRP-LocationInformation N f1ap.extension id-Mobile-TRP-LocationInformation
+Mobile-IAB-MT-UE-ID N f1ap.extension id-Mobile-IAB-MT-UE-ID
+Mobile-TRP-LocationInformation N f1ap.extension id-MobileAccessPointLocation
+F1UTunnelNotEstablished N f1ap.extension id-F1UTunnelNotEstablished
+SIB24-message N f1ap.extension id-SIB24-message
+PDUSetQoSParameters N f1ap.extension id-PDUSetQoSParameters
+N6JitterInformation N f1ap.extension id-N6JitterInformation
+ECNMarkingorCongestionInformationReportingRequest N f1ap.extension id-ECNMarkingorCongestionInformationReportingRequest
+ECNMarkingorCongestionInformationReportingStatus N f1ap.extension id-ECNMarkingorCongestionInformationReportingStatus
+ERedcap-Bcast-Information N f1ap.extension id-ERedcap-Bcast-Information
+SCPAC-Request N f1ap.extension id-SCPAC-Request
+MobileIAB-Barred N f1ap.extension id-MobileIAB-Barred
+S-CPACLowerLayerReferenceConfigRequest N f1ap.extension id-S-CPACLowerLayerReferenceConfigRequest
+MusimCandidateBandList N f1ap.extension id-MusimCandidateBandList
+PSIbasedSDUdiscardUL N f1ap.extension id-PSIbasedSDUdiscardUL
+SIB22-message N f1ap.extension id-SIB22-message
+SL-PHY-MAC-RLC-ConfigExt N f1ap.extension id-SL-PHY-MAC-RLC-ConfigExt
+BW-Aggregation-Request-Indication N f1ap.extension id-BW-Aggregation-Request-Indication
+TimingReportingGranularityFactorExtended N f1ap.extension id-TimingReportingGranularityFactorExtended
+PosValidityAreaCellList N f1ap.extension id-PosValidityAreaCellList
+SymbolIndex N f1ap.extension id-SymbolIndex
+PRSBandwidthAggregationRequestIndication N f1ap.extension id-PRSBandwidthAggregationRequestIndication
+AggregatedPosSRSResourceIDList N f1ap.extension id-AggregatedPosSRSResourceIDList
+AggregatedPRSResourceSetList N f1ap.extension id-AggregatedPRSResourceSetList
+MeasuredFrequencyHops N f1ap.extension id-MeasuredFrequencyHops
+TxHoppingConfiguration N f1ap.extension id-TxHoppingConfiguration
+AggregatedPosSRSResourceSetList N f1ap.extension id-AggregatedPosSRSResourceSetList
+ValidityAreaSpecificSRSInformation N f1ap.extension id-ValidityAreaSpecificSRSInformation
+E-CID-MeasuredResultsAssociatedInfoList N f1ap.extension id-E-CID-MeasuredResultsAssociatedInfoList
+XR-Bcast-Information N f1ap.extension id-XR-Bcast-Information
+MaxDataBurstVolume N f1ap.extension id-MaxDataBurstVolume
+PointA N f1ap.extension id-PointA
+SCS-SpecificCarrier N f1ap.extension id-SCS-SpecificCarrier
+NRPCI N f1ap.extension id-NR-PCI
+PeerUE-ID N f1ap.extension id-PeerUE-ID
+MeasBasedOnAggregatedResources N f1ap.extension id-MeasBasedOnAggregatedResources
+SIB23-message N f1ap.extension id-SIB23-message
#F1AP-ELEMENTARY-PROCEDURE
Reset N f1ap.proc.imsg id-Reset
@@ -1795,6 +2093,42 @@ QoEInformationTransfer N f1ap.proc.imsg id-QoEInformationTrans
PosSystemInformationDeliveryCommand N f1ap.proc.imsg id-PosSystemInformationDeliveryCommand
+DUCUCellSwitchNotification N f1ap.proc.imsg id-DUCUCellSwitchNotification
+
+CUDUCellSwitchNotification N f1ap.proc.imsg id-CUDUCellSwitchNotification
+
+DUCUTAInformationTransfer N f1ap.proc.imsg id-DUCUTAInformationTransfer
+
+CUDUTAInformationTransfer N f1ap.proc.imsg id-CUDUTAInformationTransfer
+
+QoEInformationTransferControl N f1ap.proc.imsg id-QoEInformationTransferControl
+
+RachIndication N f1ap.proc.imsg id-RachIndication
+
+TimingSynchronisationStatusRequest N f1ap.proc.imsg id-TimingSynchronisationStatus
+TimingSynchronisationStatusResponse N f1ap.proc.sout id-TimingSynchronisationStatus
+TimingSynchronisationStatusFailure N f1ap.proc.uout id-TimingSynchronisationStatus
+
+TimingSynchronisationStatusReport N f1ap.proc.imsg id-TimingSynchronisationStatusReport
+
+MIABF1SetupTriggering N f1ap.proc.imsg id-MIABF1SetupTriggering
+
+MIABF1SetupOutcomeNotification N f1ap.proc.imsg id-MIABF1SetupOutcomeNotification
+
+MulticastContextNotificationIndication N f1ap.proc.imsg id-MulticastContextNotification
+MulticastContextNotificationConfirm N f1ap.proc.sout id-MulticastContextNotification
+MulticastContextNotificationRefuse N f1ap.proc.uout id-MulticastContextNotification
+
+MulticastCommonConfigurationRequest N f1ap.proc.imsg id-MulticastCommonConfiguration
+MulticastCommonConfigurationResponse N f1ap.proc.sout id-MulticastCommonConfiguration
+MulticastCommonConfigurationRefuse N f1ap.proc.uout id-MulticastCommonConfiguration
+
+BroadcastTransportResourceRequest N f1ap.proc.imsg id-BroadcastTransportResourceRequest
+
+DUCUAccessAndMobilityIndication N f1ap.proc.imsg id-DUCUAccessAndMobilityIndication
+
+SRSInformationReservationNotification N f1ap.proc.imsg id-SRSInformationReservationNotification
+
#.FN_BODY AdditionalSIBMessageList-Item/additionalSIB VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
%(DEFAULT_BODY)s
@@ -1996,7 +2330,7 @@ PosSystemInformationDeliveryCommand N f1ap.proc.imsg id-PosSystemInformatio
%(DEFAULT_BODY)s
if (param_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_PLMN_Identity);
- dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(param_tvb, actx->pinfo, subtree, 0, number_type, false);
}
#.FN_BODY NRCGI
@@ -2031,52 +2365,46 @@ PortNumber TYPE = FT_UINT16 DISPLAY = BASE_DEC
}
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+ChannelOccupancyTimePercentage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kbit
+EnergyDetectionThreshold DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-ChannelOccupancyTimePercentage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MIMOPRBusageInformation/dl-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-EnergyDetectionThreshold DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+MIMOPRBusageInformation/ul-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-MIMOPRBusageInformation/dl-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MIMOPRBusageInformation/dl-non-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-MIMOPRBusageInformation/ul-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MIMOPRBusageInformation/ul-non-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-MIMOPRBusageInformation/dl-non-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MIMOPRBusageInformation/dl-Total-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-MIMOPRBusageInformation/ul-non-GBR-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MIMOPRBusageInformation/ul-Total-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-MIMOPRBusageInformation/dl-Total-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+SNSSAIRadioResourceStatus-Item/sNSSAIdlGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-MIMOPRBusageInformation/ul-Total-PRB-usage-for-MIMO DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+SNSSAIRadioResourceStatus-Item/sNSSAIulGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-SNSSAIRadioResourceStatus-Item/sNSSAIdlGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+SNSSAIRadioResourceStatus-Item/sNSSAIdlNonGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-SNSSAIRadioResourceStatus-Item/sNSSAIulGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+SNSSAIRadioResourceStatus-Item/sNSSAIulNonGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-SNSSAIRadioResourceStatus-Item/sNSSAIdlNonGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+SNSSAIRadioResourceStatus-Item/sNSSAIdlTotalPRBallocation DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-SNSSAIRadioResourceStatus-Item/sNSSAIulNonGBRPRBusage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
-
-#.TYPE_ATTR
-SNSSAIRadioResourceStatus-Item/sNSSAIdlTotalPRBallocation DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
-
-#.TYPE_ATTR
-SNSSAIRadioResourceStatus-Item/sNSSAIulTotalPRBallocation DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+SNSSAIRadioResourceStatus-Item/sNSSAIulTotalPRBallocation DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.FN_BODY CG-Config VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -2247,6 +2575,18 @@ Configured-EPS-TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
case 21:
dissect_nr_rrc_SIB21_r17_PDU(param_tvb, actx->pinfo, subtree, NULL);
break;
+ case 22:
+ dissect_nr_rrc_SIB22_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 23:
+ dissect_nr_rrc_SIB23_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 24:
+ dissect_nr_rrc_SIB24_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case 25:
+ dissect_nr_rrc_SIB25_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ break;
default:
break;
}
@@ -2284,10 +2624,10 @@ MaxPacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(f1ap_MaxPacketLossRate
PacketDelayBudget DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(f1ap_PacketDelayBudget_fmt)
#.TYPE_ATTR
-AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_bytes
+MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
#.FN_BODY ProtectedEUTRAResourceIndication VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -2318,7 +2658,7 @@ MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_byt
%(DEFAULT_BODY)s
#.FN_FTR Latest-RRC-Version-Enhanced
if (param_tvb) {
- proto_item_set_text(actx->created_item, "%u.%u.%u", tvb_get_guint8(param_tvb, 0), tvb_get_guint8(param_tvb, 1), tvb_get_guint8(param_tvb, 2));
+ proto_item_set_text(actx->created_item, "%u.%u.%u", tvb_get_uint8(param_tvb, 0), tvb_get_uint8(param_tvb, 1), tvb_get_uint8(param_tvb, 2));
}
#.FN_BODY TransportLayerAddress VAL_PTR = &param_tvb
@@ -2326,7 +2666,7 @@ MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_byt
%(DEFAULT_BODY)s
if (param_tvb) {
proto_tree *subtree;
- gint tvb_len;
+ int tvb_len;
tvb_len = tvb_reported_length(param_tvb);
subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_TransportLayerAddress);
@@ -2345,7 +2685,7 @@ MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_byt
}
#.TYPE_ATTR
-UACReductionIndication DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+UACReductionIndication DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.FN_BODY DRX-Config VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -2540,7 +2880,7 @@ ExtendedPacketDelayBudget DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(f1ap_ExtendedPacke
}
#.TYPE_ATTR
-M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
+M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_minutes)
#.FN_BODY MeasurementsToActivate VAL_PTR=&param_tvb
tvbuff_t *param_tvb = NULL;
@@ -2569,10 +2909,10 @@ M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
}
#.TYPE_ATTR
-RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
#.FN_BODY RACH-Config-Common VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -2590,11 +2930,11 @@ Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
dissect_nr_rrc_RACH_ConfigCommon_PDU(param_tvb, actx->pinfo, subtree, NULL);
}
-#.FN_BODY RACHReportContainer VAL_PTR = &param_tvb
+#.FN_BODY RAReportContainer VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
%(DEFAULT_BODY)s
if (param_tvb) {
- proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_RACHReportContainer);
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_RAReportContainer);
dissect_nr_rrc_RA_ReportList_r16_PDU(param_tvb, actx->pinfo, subtree, NULL);
}
@@ -2679,6 +3019,30 @@ Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
dissect_nr_rrc_SIB20_r17_PDU(param_tvb, actx->pinfo, subtree, NULL);
}
+#.FN_BODY SIB22-message VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SIB22_message);
+ dissect_nr_rrc_SIB22_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY SIB23-message VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SIB23_message);
+ dissect_nr_rrc_SIB23_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY SIB24-message VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SIB24_message);
+ dissect_nr_rrc_SIB24_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
#.FN_BODY SL-PHY-MAC-RLC-Config VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
%(DEFAULT_BODY)s
@@ -2687,6 +3051,14 @@ Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
dissect_nr_rrc_SL_PHY_MAC_RLC_Config_r16_PDU(param_tvb, actx->pinfo, subtree, NULL);
}
+#.FN_BODY SL-PHY-MAC-RLC-ConfigExt VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SL_PHY_MAC_RLC_ConfigExt);
+ dissect_nr_rrc_SL_PHY_MAC_RLC_Config_v1700_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
#.FN_BODY SL-RLC-ChannelToAddModList VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
%(DEFAULT_BODY)s
@@ -2866,7 +3238,7 @@ Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
}
#.TYPE_ATTR
-StartTimeAndDuration/duration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+StartTimeAndDuration/duration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY SuccessfulHOReportInformation-Item/successfulHOReportContainer VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -2877,7 +3249,7 @@ StartTimeAndDuration/duration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_s
}
#.TYPE_ATTR
-SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
#.FN_BODY UL-GapFR2-Config VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -2894,6 +3266,188 @@ SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
actx->created_item = proto_tree_add_item(tree, hf_index, param_tvb, 0, 8, ENC_TIME_NTP|ENC_BIG_ENDIAN);
}
+#.FN_BODY GNB-CU-UE-F1AP-ID VAL_PTR=&id
+ uint32_t id;
+%(DEFAULT_BODY)s
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo);
+ f1ap_data->gdb_cu_ue_f1ap_id = id;
+
+#.FN_BODY JointorDLTCIStateID VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (param_tvb && lte_rrc_conn_reconf_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_JointorDLTCIStateID);
+ dissect_nr_rrc_TCI_StateId_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY ULTCIStateID VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (param_tvb && lte_rrc_conn_reconf_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_ULTCIStateID);
+ dissect_nr_rrc_TCI_UL_StateId_r17_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY ReferenceConfigurationInformation VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (param_tvb && lte_rrc_conn_reconf_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_ReferenceConfigurationInformation);
+ dissect_nr_rrc_CellGroupConfig_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY LTMCFRAResourceConfig VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (param_tvb && lte_rrc_conn_reconf_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_LTMCFRAResourceConfig);
+ dissect_nr_rrc_RACH_ConfigDedicated_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY MBS-Multicast-MRB-Item/mRB-PDCP-Config-Broadcast VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+ proto_tree *subtree;
+%(DEFAULT_BODY)s
+ if (param_tvb && lte_rrc_conn_reconf_handle) {
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_mRB_PDCP_Config_Broadcast);
+ dissect_nr_rrc_MRB_PDCP_ConfigBroadcast_r17_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY Mobile-TRP-LocationInformation/location-Information VAL_PTR = &location_coordinate_tvb
+ tvbuff_t *location_coordinate_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (location_coordinate_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_location_Information);
+ dissect_lpp_LocationCoordinates_PDU(location_coordinate_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY Mobile-TRP-LocationInformation/velocity-Information VAL_PTR = &location_coordinate_tvb
+ tvbuff_t *location_coordinate_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (location_coordinate_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_velocity_Information);
+ dissect_lpp_Velocity_PDU(location_coordinate_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterLowerBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(f1ap_N6Jitter_fmt)
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterUpperBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(f1ap_N6Jitter_fmt)
+
+#.FN_BODY SuccessfulPSCellChangeReportInformation-Item/successfulPSCellChangeReportContainer VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_successfulPSCellChangeReportContainer);
+ dissect_nr_rrc_SuccessPSCell_Report_r18_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY CSIResourceConfiguration/cSIResourceConfigToAddModList VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_cSIResourceConfigToAddModList);
+ dissect_nr_rrc_LTM_CSI_ResourceConfigToAddModList_r18_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY CSIResourceConfiguration/cSIResourceConfigToReleaseList VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_cSIResourceConfigToReleaseList);
+ dissect_nr_rrc_LTM_CSI_ResourceConfigToReleaseList_r18_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY UpdateMBSMulticastNeighbourCellListInformation/mbs-NeighbourCellList VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_mbs_NeighbourCellList);
+ dissect_nr_rrc_MBS_NeighbourCellList_r17_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY MTCH-NeighbourCellInformation/mtch-NeighbourCellprovided VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_mtch_NeighbourCellprovided);
+ dissect_nr_rrc_MTCH_NeighbourCell_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY UpdateThresholdMBS-ListInformation/thresholdMBSList VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_thresholdMBSList);
+ dissect_nr_rrc_ThresholdMBS_List_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY MBSMulticastConfiguration-available/mBSMulticastConfiguration VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_mBSMulticastConfiguration);
+ dissect_nr_rrc_MBSMulticastConfiguration_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY MBSMulticastConfigurationNotificationInfo/mbsMulticastConfigurationChanged VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_mBSMulticastConfiguration);
+ dissect_nr_rrc_MBSMulticastConfiguration_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY MusimCandidateBandList VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_MusimCandidateBandList);
+ dissect_nr_rrc_MUSIM_CandidateBandList_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY NeedForInterruptionInfoNR VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_NeedForInterruptionInfoNR);
+ dissect_nr_rrc_NeedForInterruptionInfoNR_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY RACHConfiguration VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_RACHConfiguration);
+ dissect_nr_rrc_EarlyUL_SyncConfig_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY SRSPosRRCInactiveValidityAreaConfig VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SRSPosRRCInactiveValidityAreaConfig);
+ dissect_nr_rrc_SRS_PosRRC_InactiveValidityAreaConfig_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY TCIStatesConfigurationsList VAL_PTR = &param_tvb
+ tvbuff_t *param_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (param_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_TCIStatesConfigurationsList);
+ dissect_nr_rrc_LTM_TCI_Info_r18_PDU(param_tvb, actx->pinfo, subtree, NULL);
+ }
+
#.FN_HDR Reset
set_message_label(actx, MTYPE_RESET);
set_stats_message_type(actx->pinfo, MTYPE_RESET);
@@ -3394,6 +3948,69 @@ SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
#.FN_HDR PosSystemInformationDeliveryCommand
set_message_label(actx, MTYPE_POS_SYSTEM_INFORMATION_DELIVERY_COMMAND);
set_stats_message_type(actx->pinfo, MTYPE_POS_SYSTEM_INFORMATION_DELIVERY_COMMAND);
+#.FN_HDR DUCUCellSwitchNotification
+ set_message_label(actx, MTYPE_DU_CU_CELL_SWITCH_NOTIFICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_DU_CU_CELL_SWITCH_NOTIFICATION);
+#.FN_HDR CUDUCellSwitchNotification
+ set_message_label(actx, MTYPE_CU_DU_CELL_SWITCH_NOTIFICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_CU_DU_CELL_SWITCH_NOTIFICATION);
+#.FN_HDR DUCUTAInformationTransfer
+ set_message_label(actx, MTYPE_DU_CU_TA_INFORMATION_TRANSFER);
+ set_stats_message_type(actx->pinfo, MTYPE_DU_CU_TA_INFORMATION_TRANSFER);
+#.FN_HDR CUDUTAInformationTransfer
+ set_message_label(actx, MTYPE_CU_DU_TA_INFORMATION_TRANSFER);
+ set_stats_message_type(actx->pinfo, MTYPE_CU_DU_TA_INFORMATION_TRANSFER);
+#.FN_HDR QoEInformationTransferControl
+ set_message_label(actx, MTYPE_QOE_INFORMATION_TRANSFER_CONTROL);
+ set_stats_message_type(actx->pinfo, MTYPE_QOE_INFORMATION_TRANSFER_CONTROL);
+#.FN_HDR RachIndication
+ set_message_label(actx, MTYPE_RACH_INDICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_RACH_INDICATION);
+#.FN_HDR TimingSynchronisationStatusRequest
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST);
+#.FN_HDR TimingSynchronisationStatusResponse
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE);
+#.FN_HDR TimingSynchronisationStatusFailure
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE);
+#.FN_HDR TimingSynchronisationStatusReport
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT);
+#.FN_HDR MIABF1SetupTriggering
+ set_message_label(actx, MTYPE_MIAB_F1_SETUP_TRIGGERING);
+ set_stats_message_type(actx->pinfo, MTYPE_MIAB_F1_SETUP_TRIGGERING);
+#.FN_HDR MIABF1SetupOutcomeNotification
+ set_message_label(actx, MTYPE_MIAB_F1_SETUP_OUTCOME_NOTIFICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_MIAB_F1_SETUP_OUTCOME_NOTIFICATION);
+#.FN_HDR MulticastContextNotificationIndication
+ set_message_label(actx, MTYPE_MULTICAST_CONTEXT_NOTIFICATION_INDICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_MULTICAST_CONTEXT_NOTIFICATION_INDICATION);
+#.FN_HDR MulticastContextNotificationConfirm
+ set_message_label(actx, MTYPE_MULTICAST_CONTEXT_NOTIFICATION_CONFIRM);
+ set_stats_message_type(actx->pinfo, MTYPE_MULTICAST_CONTEXT_NOTIFICATION_CONFIRM);
+#.FN_HDR MulticastContextNotificationRefuse
+ set_message_label(actx, MTYPE_MULTICAST_CONTEXT_NOTIFICATION_REFUSE);
+ set_stats_message_type(actx->pinfo, MTYPE_MULTICAST_CONTEXT_NOTIFICATION_REFUSE);
+#.FN_HDR MulticastCommonConfigurationRequest
+ set_message_label(actx, MTYPE_MULTICAST_COMMON_CONFIGURATION_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_MULTICAST_COMMON_CONFIGURATION_REQUEST);
+#.FN_HDR MulticastCommonConfigurationResponse
+ set_message_label(actx, MTYPE_MULTICAST_COMMON_CONFIGURATION_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_MULTICAST_COMMON_CONFIGURATION_RESPONSE);
+#.FN_HDR MulticastCommonConfigurationRefuse
+ set_message_label(actx, MTYPE_MULTICAST_COMMON_CONFIGURATION_REFUSE);
+ set_stats_message_type(actx->pinfo, MTYPE_MULTICAST_COMMON_CONFIGURATION_REFUSE);
+#.FN_HDR BroadcastTransportResourceRequest
+ set_message_label(actx, MTYPE_BROADCAST_TRANSPORT_RESOURCE_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_BROADCAST_TRANSPORT_RESOURCE_REQUEST);
+#.FN_HDR DUCUAccessAndMobilityIndication
+ set_message_label(actx, MTYPE_DU_CU_ACCESS_AND_MOBILITY_INDICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_DU_CU_ACCESS_AND_MOBILITY_INDICATION);
+#.FN_HDR SRSInformationReservationNotification
+ set_message_label(actx, MTYPE_SRS_INFORMATION_RESERVATION_NOTIFICATION);
+ set_stats_message_type(actx->pinfo, MTYPE_SRS_INFORMATION_RESERVATION_NOTIFICATION);
#.END
#
diff --git a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
index 4c96fe8c..054a2f1e 100644
--- a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
+++ b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
@@ -1,6 +1,6 @@
/* packet-f1ap.c
* Routines for E-UTRAN F1 Application Protocol (F1AP) packet dissection
- * Copyright 2018-2023, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2018-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 38.473 V17.5.0 (2023-06)
+ * References: 3GPP TS 38.473 V18.2.0 (2024-06)
*/
#include "config.h"
@@ -19,6 +19,9 @@
#include <epan/sctpppids.h>
#include <epan/proto_data.h>
#include <epan/stats_tree.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-f1ap.h"
@@ -28,6 +31,7 @@
#include "packet-pdcp-nr.h"
#include "packet-lte-rrc.h"
#include "packet-nrppa.h"
+#include "packet-lpp.h"
#define PNAME "F1 Application Protocol"
#define PSNAME "F1AP"
@@ -41,114 +45,136 @@ void proto_reg_handoff_f1ap(void);
#include "packet-f1ap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_f1ap = -1;
-
-static int hf_f1ap_transportLayerAddressIPv4 = -1;
-static int hf_f1ap_transportLayerAddressIPv6 = -1;
-static int hf_f1ap_IABTNLAddressIPv4 = -1;
-static int hf_f1ap_IABTNLAddressIPv6 = -1;
-static int hf_f1ap_IABTNLAddressIPv6Prefix = -1;
-static int hf_f1ap_interfacesToTrace_NG_C = -1;
-static int hf_f1ap_interfacesToTrace_Xn_C = -1;
-static int hf_f1ap_interfacesToTrace_Uu = -1;
-static int hf_f1ap_interfacesToTrace_F1_C = -1;
-static int hf_f1ap_interfacesToTrace_E1 = -1;
-static int hf_f1ap_interfacesToTrace_Reserved = -1;
-static int hf_f1ap_MeasurementsToActivate_Reserved1 = -1;
-static int hf_f1ap_MeasurementsToActivate_M2 = -1;
-static int hf_f1ap_MeasurementsToActivate_Reserved2 = -1;
-static int hf_f1ap_MeasurementsToActivate_M5 = -1;
-static int hf_f1ap_MeasurementsToActivate_Reserved3 = -1;
-static int hf_f1ap_MeasurementsToActivate_M6 = -1;
-static int hf_f1ap_MeasurementsToActivate_M7 = -1;
-static int hf_f1ap_ReportCharacteristics_PRBPeriodic = -1;
-static int hf_f1ap_ReportCharacteristics_TNLCapacityIndPeriodic = -1;
-static int hf_f1ap_ReportCharacteristics_CompositeAvailableCapacityPeriodic = -1;
-static int hf_f1ap_ReportCharacteristics_HWLoadIndPeriodic = -1;
-static int hf_f1ap_ReportCharacteristics_NumberOfActiveUEs = -1;
-static int hf_f1ap_ReportCharacteristics_Reserved = -1;
+static int proto_f1ap;
+
+static int hf_f1ap_transportLayerAddressIPv4;
+static int hf_f1ap_transportLayerAddressIPv6;
+static int hf_f1ap_IABTNLAddressIPv4;
+static int hf_f1ap_IABTNLAddressIPv6;
+static int hf_f1ap_IABTNLAddressIPv6Prefix;
+static int hf_f1ap_interfacesToTrace_NG_C;
+static int hf_f1ap_interfacesToTrace_Xn_C;
+static int hf_f1ap_interfacesToTrace_Uu;
+static int hf_f1ap_interfacesToTrace_F1_C;
+static int hf_f1ap_interfacesToTrace_E1;
+static int hf_f1ap_interfacesToTrace_Reserved;
+static int hf_f1ap_MeasurementsToActivate_Reserved1;
+static int hf_f1ap_MeasurementsToActivate_M2;
+static int hf_f1ap_MeasurementsToActivate_Reserved2;
+static int hf_f1ap_MeasurementsToActivate_M5;
+static int hf_f1ap_MeasurementsToActivate_Reserved3;
+static int hf_f1ap_MeasurementsToActivate_M6;
+static int hf_f1ap_MeasurementsToActivate_M7;
+static int hf_f1ap_ReportCharacteristics_PRBPeriodic;
+static int hf_f1ap_ReportCharacteristics_TNLCapacityIndPeriodic;
+static int hf_f1ap_ReportCharacteristics_CompositeAvailableCapacityPeriodic;
+static int hf_f1ap_ReportCharacteristics_HWLoadIndPeriodic;
+static int hf_f1ap_ReportCharacteristics_NumberOfActiveUEs;
+static int hf_f1ap_ReportCharacteristics_Reserved;
#include "packet-f1ap-hf.c"
/* Initialize the subtree pointers */
-static gint ett_f1ap = -1;
-static gint ett_f1ap_ResourceCoordinationTransferContainer = -1;
-static gint ett_f1ap_PLMN_Identity = -1;
-static gint ett_f1ap_MIB_message = -1;
-static gint ett_f1ap_SIB1_message = -1;
-static gint ett_f1ap_CG_ConfigInfo = -1;
-static gint ett_f1ap_CellGroupConfig = -1;
-static gint ett_f1ap_TransportLayerAddress = -1;
-static gint ett_f1ap_UE_CapabilityRAT_ContainerList = -1;
-static gint ett_f1ap_measurementTimingConfiguration = -1;
-static gint ett_f1ap_DUtoCURRCContainer = -1;
-static gint ett_f1ap_requestedP_MaxFR1 = -1;
-static gint ett_f1ap_HandoverPreparationInformation = -1;
-static gint ett_f1ap_MeasConfig = -1;
-static gint ett_f1ap_MeasGapConfig = -1;
-static gint ett_f1ap_MeasGapSharingConfig = -1;
-static gint ett_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container = -1;
-static gint ett_f1ap_EUTRA_NR_CellResourceCoordinationReqAck_Container = -1;
-static gint ett_f1ap_ProtectedEUTRAResourceIndication = -1;
-static gint ett_f1ap_RRCContainer = -1;
-static gint ett_f1ap_RRCContainer_RRCSetupComplete = -1;
-static gint ett_f1ap_sIBmessage = -1;
-static gint ett_f1ap_UplinkTxDirectCurrentListInformation = -1;
-static gint ett_f1ap_DRX_Config = -1;
-static gint ett_f1ap_Ph_InfoSCG = -1;
-static gint ett_f1ap_RequestedBandCombinationIndex = -1;
-static gint ett_f1ap_RequestedFeatureSetEntryIndex = -1;
-static gint ett_f1ap_RequestedP_MaxFR2 = -1;
-static gint ett_f1ap_UEAssistanceInformation = -1;
-static gint ett_f1ap_CG_Config = -1;
-static gint ett_f1ap_Ph_InfoMCG = -1;
-static gint ett_f1ap_BurstArrivalTime = -1;
-static gint ett_f1ap_cSI_RS_Configuration = -1;
-static gint ett_f1ap_sR_Configuration = -1;
-static gint ett_f1ap_pDCCH_ConfigSIB1 = -1;
-static gint ett_f1ap_sCS_Common = -1;
-static gint ett_f1ap_IABTNLAddressIPv4Address = -1;
-static gint ett_f1ap_IABTNLAddressIPv6Address = -1;
-static gint ett_f1ap_IABTNLAddressIPv6Prefix = -1;
-static gint ett_f1ap_InterfacesToTrace = -1;
-static gint ett_f1ap_MeasurementsToActivate = -1;
-static gint ett_f1ap_NRUERLFReportContainer = -1;
-static gint ett_f1ap_RACH_Config_Common = -1;
-static gint ett_f1ap_RACH_Config_Common_IAB = -1;
-static gint ett_f1ap_RACHReportContainer = -1;
-static gint ett_f1ap_ReferenceTime = -1;
-static gint ett_f1ap_ReportCharacteristics = -1;
-static gint ett_f1ap_SIB10_message = -1;
-static gint ett_f1ap_SIB12_message = -1;
-static gint ett_f1ap_SIB13_message = -1;
-static gint ett_f1ap_SIB14_message = -1;
-static gint ett_f1ap_SIB15_message = -1;
-static gint ett_f1ap_SIB17_message = -1;
-static gint ett_f1ap_SIB20_message = -1;
-static gint ett_f1ap_SL_PHY_MAC_RLC_Config = -1;
-static gint ett_f1ap_SL_RLC_ChannelToAddModList = -1;
-static gint ett_f1ap_SL_ConfigDedicatedEUTRA_Info = -1;
-static gint ett_f1ap_TDD_UL_DLConfigCommonNR = -1;
-static gint ett_f1ap_UEAssistanceInformationEUTRA = -1;
-static gint ett_f1ap_PosAssistance_Information = -1;
-static gint ett_f1ap_LocationMeasurementInformation = -1;
-static gint ett_f1ap_MUSIM_GapConfig = -1;
-static gint ett_f1ap_SDT_MAC_PHY_CG_Config = -1;
-static gint ett_f1ap_SDTRLCBearerConfiguration = -1;
-static gint ett_f1ap_MBSInterestIndication = -1;
-static gint ett_f1ap_NeedForGapsInfoNR = -1;
-static gint ett_f1ap_NeedForGapNCSGInfoNR = -1;
-static gint ett_f1ap_NeedForGapNCSGInfoEUTRA = -1;
-static gint ett_f1ap_MBS_Broadcast_NeighbourCellList = -1;
-static gint ett_f1ap_mRB_PDCP_Config_Broadcast = -1;
-static gint ett_f1ap_posMeasGapPreConfigToAddModList = -1;
-static gint ett_f1ap_posMeasGapPreConfigToReleaseList = -1;
-static gint ett_f1ap_SidelinkConfigurationContainer = -1;
-static gint ett_f1ap_SRSPosRRCInactiveConfig = -1;
-static gint ett_f1ap_successfulHOReportContainer = -1;
-static gint ett_f1ap_UL_GapFR2_Config = -1;
-static gint ett_f1ap_ConfigRestrictInfoDAPS = -1;
-static gint ett_f1ap_UplinkTxDirectCurrentTwoCarrierListInfo = -1;
-static gint ett_f1ap_Ncd_SSB_RedCapInitialBWP_SDT = -1;
+static int ett_f1ap;
+static int ett_f1ap_ResourceCoordinationTransferContainer;
+static int ett_f1ap_PLMN_Identity;
+static int ett_f1ap_MIB_message;
+static int ett_f1ap_SIB1_message;
+static int ett_f1ap_CG_ConfigInfo;
+static int ett_f1ap_CellGroupConfig;
+static int ett_f1ap_TransportLayerAddress;
+static int ett_f1ap_UE_CapabilityRAT_ContainerList;
+static int ett_f1ap_measurementTimingConfiguration;
+static int ett_f1ap_DUtoCURRCContainer;
+static int ett_f1ap_requestedP_MaxFR1;
+static int ett_f1ap_HandoverPreparationInformation;
+static int ett_f1ap_MeasConfig;
+static int ett_f1ap_MeasGapConfig;
+static int ett_f1ap_MeasGapSharingConfig;
+static int ett_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container;
+static int ett_f1ap_EUTRA_NR_CellResourceCoordinationReqAck_Container;
+static int ett_f1ap_ProtectedEUTRAResourceIndication;
+static int ett_f1ap_RRCContainer;
+static int ett_f1ap_RRCContainer_RRCSetupComplete;
+static int ett_f1ap_sIBmessage;
+static int ett_f1ap_UplinkTxDirectCurrentListInformation;
+static int ett_f1ap_DRX_Config;
+static int ett_f1ap_Ph_InfoSCG;
+static int ett_f1ap_RequestedBandCombinationIndex;
+static int ett_f1ap_RequestedFeatureSetEntryIndex;
+static int ett_f1ap_RequestedP_MaxFR2;
+static int ett_f1ap_UEAssistanceInformation;
+static int ett_f1ap_CG_Config;
+static int ett_f1ap_Ph_InfoMCG;
+static int ett_f1ap_BurstArrivalTime;
+static int ett_f1ap_cSI_RS_Configuration;
+static int ett_f1ap_sR_Configuration;
+static int ett_f1ap_pDCCH_ConfigSIB1;
+static int ett_f1ap_sCS_Common;
+static int ett_f1ap_IABTNLAddressIPv4Address;
+static int ett_f1ap_IABTNLAddressIPv6Address;
+static int ett_f1ap_IABTNLAddressIPv6Prefix;
+static int ett_f1ap_InterfacesToTrace;
+static int ett_f1ap_MeasurementsToActivate;
+static int ett_f1ap_NRUERLFReportContainer;
+static int ett_f1ap_RACH_Config_Common;
+static int ett_f1ap_RACH_Config_Common_IAB;
+static int ett_f1ap_RAReportContainer;
+static int ett_f1ap_ReferenceTime;
+static int ett_f1ap_ReportCharacteristics;
+static int ett_f1ap_SIB10_message;
+static int ett_f1ap_SIB12_message;
+static int ett_f1ap_SIB13_message;
+static int ett_f1ap_SIB14_message;
+static int ett_f1ap_SIB15_message;
+static int ett_f1ap_SIB17_message;
+static int ett_f1ap_SIB20_message;
+static int ett_f1ap_SIB22_message;
+static int ett_f1ap_SIB23_message;
+static int ett_f1ap_SIB24_message;
+static int ett_f1ap_SL_PHY_MAC_RLC_Config;
+static int ett_f1ap_SL_PHY_MAC_RLC_ConfigExt;
+static int ett_f1ap_SL_RLC_ChannelToAddModList;
+static int ett_f1ap_SL_ConfigDedicatedEUTRA_Info;
+static int ett_f1ap_TDD_UL_DLConfigCommonNR;
+static int ett_f1ap_UEAssistanceInformationEUTRA;
+static int ett_f1ap_PosAssistance_Information;
+static int ett_f1ap_LocationMeasurementInformation;
+static int ett_f1ap_MUSIM_GapConfig;
+static int ett_f1ap_SDT_MAC_PHY_CG_Config;
+static int ett_f1ap_SDTRLCBearerConfiguration;
+static int ett_f1ap_MBSInterestIndication;
+static int ett_f1ap_NeedForGapsInfoNR;
+static int ett_f1ap_NeedForGapNCSGInfoNR;
+static int ett_f1ap_NeedForGapNCSGInfoEUTRA;
+static int ett_f1ap_MBS_Broadcast_NeighbourCellList;
+static int ett_f1ap_mRB_PDCP_Config_Broadcast;
+static int ett_f1ap_posMeasGapPreConfigToAddModList;
+static int ett_f1ap_posMeasGapPreConfigToReleaseList;
+static int ett_f1ap_SidelinkConfigurationContainer;
+static int ett_f1ap_SRSPosRRCInactiveConfig;
+static int ett_f1ap_successfulHOReportContainer;
+static int ett_f1ap_UL_GapFR2_Config;
+static int ett_f1ap_ConfigRestrictInfoDAPS;
+static int ett_f1ap_UplinkTxDirectCurrentTwoCarrierListInfo;
+static int ett_f1ap_Ncd_SSB_RedCapInitialBWP_SDT;
+static int ett_f1ap_JointorDLTCIStateID;
+static int ett_f1ap_ULTCIStateID;
+static int ett_f1ap_ReferenceConfigurationInformation;
+static int ett_f1ap_LTMCFRAResourceConfig;
+static int ett_f1ap_location_Information;
+static int ett_f1ap_velocity_Information;
+static int ett_f1ap_successfulPSCellChangeReportContainer;
+static int ett_f1ap_cSIResourceConfigToAddModList;
+static int ett_f1ap_cSIResourceConfigToReleaseList;
+static int ett_f1ap_mbs_NeighbourCellList;
+static int ett_f1ap_mtch_NeighbourCellprovided;
+static int ett_f1ap_thresholdMBSList;
+static int ett_f1ap_mBSMulticastConfiguration;
+static int ett_f1ap_MusimCandidateBandList;
+static int ett_f1ap_NeedForInterruptionInfoNR;
+static int ett_f1ap_RACHConfiguration;
+static int ett_f1ap_SRSPosRRCInactiveValidityAreaConfig;
+static int ett_f1ap_TCIStatesConfigurationsList;
#include "packet-f1ap-ett.c"
enum{
@@ -161,15 +187,15 @@ enum{
static void set_stats_message_type(packet_info *pinfo, int type);
-static const guint8 *st_str_packets = "Total Packets";
-static const guint8 *st_str_packet_types = "F1AP Packet Types";
+static const uint8_t *st_str_packets = "Total Packets";
+static const uint8_t *st_str_packet_types = "F1AP Packet Types";
static int st_node_packets = -1;
static int st_node_packet_types = -1;
-static int f1ap_tap = -1;
+static int f1ap_tap;
struct f1ap_tap_t {
- gint f1ap_mtype;
+ int f1ap_mtype;
};
#define MTYPE_RESET 1
@@ -308,6 +334,27 @@ struct f1ap_tap_t {
#define MTYPE_MEASUREMENT_ACTIVATION 134
#define MTYPE_QOE_INFORMATION_TRANSFER 135
#define MTYPE_POS_SYSTEM_INFORMATION_DELIVERY_COMMAND 136
+#define MTYPE_DU_CU_CELL_SWITCH_NOTIFICATION 137
+#define MTYPE_CU_DU_CELL_SWITCH_NOTIFICATION 138
+#define MTYPE_DU_CU_TA_INFORMATION_TRANSFER 139
+#define MTYPE_CU_DU_TA_INFORMATION_TRANSFER 140
+#define MTYPE_QOE_INFORMATION_TRANSFER_CONTROL 141
+#define MTYPE_RACH_INDICATION 142
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST 143
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE 144
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE 145
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT 146
+#define MTYPE_MIAB_F1_SETUP_TRIGGERING 147
+#define MTYPE_MIAB_F1_SETUP_OUTCOME_NOTIFICATION 148
+#define MTYPE_MULTICAST_CONTEXT_NOTIFICATION_INDICATION 149
+#define MTYPE_MULTICAST_CONTEXT_NOTIFICATION_CONFIRM 150
+#define MTYPE_MULTICAST_CONTEXT_NOTIFICATION_REFUSE 151
+#define MTYPE_MULTICAST_COMMON_CONFIGURATION_REQUEST 152
+#define MTYPE_MULTICAST_COMMON_CONFIGURATION_RESPONSE 153
+#define MTYPE_MULTICAST_COMMON_CONFIGURATION_REFUSE 154
+#define MTYPE_BROADCAST_TRANSPORT_RESOURCE_REQUEST 155
+#define MTYPE_DU_CU_ACCESS_AND_MOBILITY_INDICATION 156
+#define MTYPE_SRS_INFORMATION_RESERVATION_NOTIFICATION 157
static const value_string mtype_names[] = {
{ MTYPE_RESET, "Reset" },
@@ -446,28 +493,50 @@ static const value_string mtype_names[] = {
{ MTYPE_MEASUREMENT_ACTIVATION, "MeasurementActivation" },
{ MTYPE_QOE_INFORMATION_TRANSFER, "QoEInformationTransfer" },
{ MTYPE_POS_SYSTEM_INFORMATION_DELIVERY_COMMAND, "PosSystemInformationDeliveryCommand" },
+ { MTYPE_DU_CU_CELL_SWITCH_NOTIFICATION, "DUCUCellSwitchNotification" },
+ { MTYPE_CU_DU_CELL_SWITCH_NOTIFICATION, "CUDUCellSwitchNotification" },
+ { MTYPE_DU_CU_TA_INFORMATION_TRANSFER, "DUCUTAInformationTransfer" },
+ { MTYPE_CU_DU_TA_INFORMATION_TRANSFER, "CUDUTAInformationTransfer" },
+ { MTYPE_QOE_INFORMATION_TRANSFER_CONTROL, "QoEInformationTransferControl" },
+ { MTYPE_RACH_INDICATION, "RachIndication" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST, "TimingSynchronisationStatusRequest" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE, "TimingSynchronisationStatusResponse" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE, "TimingSynchronisationStatusFailure" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT, "TimingSynchronisationStatusReport" },
+ { MTYPE_MIAB_F1_SETUP_TRIGGERING, "MIABF1SetupTriggering" },
+ { MTYPE_MIAB_F1_SETUP_OUTCOME_NOTIFICATION, "MIABF1SetupOutcomeNotification" },
+ { MTYPE_MULTICAST_CONTEXT_NOTIFICATION_INDICATION, "MulticastContextNotificationIndication" },
+ { MTYPE_MULTICAST_CONTEXT_NOTIFICATION_CONFIRM, "MulticastContextNotificationConfirm" },
+ { MTYPE_MULTICAST_CONTEXT_NOTIFICATION_REFUSE, "MulticastContextNotificationRefuse" },
+ { MTYPE_MULTICAST_COMMON_CONFIGURATION_REQUEST, "MulticastCommonConfigurationRequest" },
+ { MTYPE_MULTICAST_COMMON_CONFIGURATION_RESPONSE, "MulticastCommonConfigurationResponse" },
+ { MTYPE_MULTICAST_COMMON_CONFIGURATION_REFUSE, "MulticastCommonConfigurationRefuse" },
+ { MTYPE_BROADCAST_TRANSPORT_RESOURCE_REQUEST, "BroadcastTransportResourceRequest" },
+ { MTYPE_DU_CU_ACCESS_AND_MOBILITY_INDICATION, "DUCUAccessAndMobilityIndication" },
+ { MTYPE_SRS_INFORMATION_RESERVATION_NOTIFICATION, "SRSInformationReservationNotification" },
{ 0, NULL }
};
static value_string_ext mtype_names_ext = VALUE_STRING_EXT_INIT(mtype_names);
typedef struct {
- guint32 message_type;
- guint32 procedure_code;
- guint32 protocol_ie_id;
- guint32 protocol_extension_id;
+ uint32_t message_type;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
+ uint32_t protocol_extension_id;
const char *obj_id;
- guint32 sib_type;
- guint32 srb_id;
+ uint32_t sib_type;
+ uint32_t srb_id;
+ uint32_t gdb_cu_ue_f1ap_id;
e212_number_type_t number_type;
struct f1ap_tap_t *stats_tap;
} f1ap_private_data_t;
typedef struct {
- guint32 message_type;
- guint32 ProcedureCode;
- guint32 ProtocolIE_ID;
- guint32 ProtocolExtensionID;
+ uint32_t message_type;
+ uint32_t ProcedureCode;
+ uint32_t ProtocolIE_ID;
+ uint32_t ProtocolExtensionID;
} f1ap_ctx_t;
/* Global variables */
@@ -491,13 +560,8 @@ static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, pro
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 const true_false_string f1ap_tfs_interfacesToTrace = {
- "Should be traced",
- "Should not be traced"
-};
-
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
@@ -510,23 +574,29 @@ static void set_message_label(asn1_ctx_t *actx, int type)
static void
-f1ap_MaxPacketLossRate_fmt(gchar *s, guint32 v)
+f1ap_MaxPacketLossRate_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1f%% (%u)", (float)v/10, v);
}
static void
-f1ap_PacketDelayBudget_fmt(gchar *s, guint32 v)
+f1ap_PacketDelayBudget_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
}
static void
-f1ap_ExtendedPacketDelayBudget_fmt(gchar *s, guint32 v)
+f1ap_ExtendedPacketDelayBudget_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fms (%u)", (float)v/100, v);
}
+static void
+f1ap_N6Jitter_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%d)", (float)v/2, (int32_t)v);
+}
+
static f1ap_private_data_t*
f1ap_get_private_data(packet_info *pinfo)
{
@@ -534,13 +604,14 @@ f1ap_get_private_data(packet_info *pinfo)
if (!f1ap_data) {
f1ap_data = wmem_new0(wmem_file_scope(), f1ap_private_data_t);
f1ap_data->srb_id = -1;
+ f1ap_data->gdb_cu_ue_f1ap_id = 1;
p_add_proto_data(wmem_file_scope(), pinfo, proto_f1ap, 0, f1ap_data);
}
return f1ap_data;
}
static void
-add_nr_pdcp_meta_data(packet_info *pinfo, guint8 direction, guint8 srb_id)
+add_nr_pdcp_meta_data(packet_info *pinfo, uint8_t direction, uint8_t srb_id)
{
pdcp_nr_info *p_pdcp_nr_info;
@@ -549,13 +620,16 @@ add_nr_pdcp_meta_data(packet_info *pinfo, guint8 direction, guint8 srb_id)
return;
}
+ f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
+
p_pdcp_nr_info = wmem_new0(wmem_file_scope(), pdcp_nr_info);
p_pdcp_nr_info->direction = direction;
+ p_pdcp_nr_info->ueid = f1ap_data->gdb_cu_ue_f1ap_id;
p_pdcp_nr_info->bearerType = Bearer_DCCH;
p_pdcp_nr_info->bearerId = srb_id;
p_pdcp_nr_info->plane = NR_SIGNALING_PLANE;
p_pdcp_nr_info->seqnum_length = PDCP_NR_SN_LENGTH_12_BITS;
- p_pdcp_nr_info->maci_present = TRUE;
+ p_pdcp_nr_info->maci_present = true;
set_pdcp_nr_proto_data(pinfo, p_pdcp_nr_info);
}
@@ -571,7 +645,7 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
f1ap_ctx.ProtocolIE_ID = f1ap_data->protocol_ie_id;
f1ap_ctx.ProtocolExtensionID = f1ap_data->protocol_extension_id;
- return (dissector_try_uint_new(f1ap_ies_dissector_table, f1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(f1ap_ies_dissector_table, f1ap_data->protocol_ie_id, tvb, pinfo, tree, false, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -584,35 +658,35 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in
f1ap_ctx.ProtocolIE_ID = f1ap_data->protocol_ie_id;
f1ap_ctx.ProtocolExtensionID = f1ap_data->protocol_extension_id;
- return (dissector_try_uint_new(f1ap_extension_dissector_table, f1ap_data->protocol_extension_id, tvb, pinfo, tree, FALSE, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(f1ap_extension_dissector_table, f1ap_data->protocol_extension_id, tvb, pinfo, tree, false, &f1ap_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(f1ap_proc_imsg_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(f1ap_proc_imsg_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(f1ap_proc_sout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(f1ap_proc_sout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
f1ap_private_data_t *f1ap_data = f1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(f1ap_proc_uout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(f1ap_proc_uout_dissector_table, f1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static void
f1ap_stats_tree_init(stats_tree *st)
{
- st_node_packets = stats_tree_create_node(st, st_str_packets, 0, STAT_DT_INT, TRUE);
+ st_node_packets = stats_tree_create_node(st, st_str_packets, 0, STAT_DT_INT, true);
st_node_packet_types = stats_tree_create_pivot(st, st_str_packet_types, st_node_packets);
}
@@ -622,7 +696,7 @@ f1ap_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_,
{
const struct f1ap_tap_t *pi = (const struct f1ap_tap_t *) p;
- tick_stat_node(st, st_str_packets, 0, FALSE);
+ tick_stat_node(st, st_str_packets, 0, false);
stats_tree_tick_pivot(st, st_node_packet_types,
val_to_str_ext(pi->f1ap_mtype, &mtype_names_ext,
"Unknown packet type (%d)"));
@@ -695,23 +769,23 @@ void proto_register_f1ap(void) {
NULL, HFILL }},
{ &hf_f1ap_interfacesToTrace_NG_C,
{ "NG-C", "f1ap.interfacesToTrace.NG_C",
- FT_BOOLEAN, 8, TFS(&f1ap_tfs_interfacesToTrace), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x80,
NULL, HFILL }},
{ &hf_f1ap_interfacesToTrace_Xn_C,
{ "Xn-C", "f1ap.interfacesToTrace.Xn_C",
- FT_BOOLEAN, 8, TFS(&f1ap_tfs_interfacesToTrace), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x40,
NULL, HFILL }},
{ &hf_f1ap_interfacesToTrace_Uu,
{ "Uu", "f1ap.interfacesToTrace.Uu",
- FT_BOOLEAN, 8, TFS(&f1ap_tfs_interfacesToTrace), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x20,
NULL, HFILL }},
{ &hf_f1ap_interfacesToTrace_F1_C,
{ "F1-C", "f1ap.interfacesToTrace.F1_C",
- FT_BOOLEAN, 8, TFS(&f1ap_tfs_interfacesToTrace), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x10,
NULL, HFILL }},
{ &hf_f1ap_interfacesToTrace_E1,
{ "E1", "f1ap.interfacesToTrace.E1",
- FT_BOOLEAN, 8, TFS(&f1ap_tfs_interfacesToTrace), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x08,
NULL, HFILL }},
{ &hf_f1ap_interfacesToTrace_Reserved,
{ "Reserved", "f1ap.interfacesToTrace.Reserved",
@@ -773,7 +847,7 @@ void proto_register_f1ap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_f1ap,
&ett_f1ap_ResourceCoordinationTransferContainer,
&ett_f1ap_PLMN_Identity,
@@ -818,7 +892,7 @@ void proto_register_f1ap(void) {
&ett_f1ap_NRUERLFReportContainer,
&ett_f1ap_RACH_Config_Common,
&ett_f1ap_RACH_Config_Common_IAB,
- &ett_f1ap_RACHReportContainer,
+ &ett_f1ap_RAReportContainer,
&ett_f1ap_ReferenceTime,
&ett_f1ap_ReportCharacteristics,
&ett_f1ap_SIB10_message,
@@ -828,7 +902,11 @@ void proto_register_f1ap(void) {
&ett_f1ap_SIB15_message,
&ett_f1ap_SIB17_message,
&ett_f1ap_SIB20_message,
+ &ett_f1ap_SIB22_message,
+ &ett_f1ap_SIB23_message,
+ &ett_f1ap_SIB24_message,
&ett_f1ap_SL_PHY_MAC_RLC_Config,
+ &ett_f1ap_SL_PHY_MAC_RLC_ConfigExt,
&ett_f1ap_SL_RLC_ChannelToAddModList,
&ett_f1ap_SL_ConfigDedicatedEUTRA_Info,
&ett_f1ap_TDD_UL_DLConfigCommonNR,
@@ -853,6 +931,24 @@ void proto_register_f1ap(void) {
&ett_f1ap_ConfigRestrictInfoDAPS,
&ett_f1ap_UplinkTxDirectCurrentTwoCarrierListInfo,
&ett_f1ap_Ncd_SSB_RedCapInitialBWP_SDT,
+ &ett_f1ap_JointorDLTCIStateID,
+ &ett_f1ap_ULTCIStateID,
+ &ett_f1ap_ReferenceConfigurationInformation,
+ &ett_f1ap_LTMCFRAResourceConfig,
+ &ett_f1ap_location_Information,
+ &ett_f1ap_velocity_Information,
+ &ett_f1ap_successfulPSCellChangeReportContainer,
+ &ett_f1ap_cSIResourceConfigToAddModList,
+ &ett_f1ap_cSIResourceConfigToReleaseList,
+ &ett_f1ap_mbs_NeighbourCellList,
+ &ett_f1ap_mtch_NeighbourCellprovided,
+ &ett_f1ap_thresholdMBSList,
+ &ett_f1ap_mBSMulticastConfiguration,
+ &ett_f1ap_MusimCandidateBandList,
+ &ett_f1ap_NeedForInterruptionInfoNR,
+ &ett_f1ap_RACHConfiguration,
+ &ett_f1ap_SRSPosRRCInactiveValidityAreaConfig,
+ &ett_f1ap_TCIStatesConfigurationsList,
#include "packet-f1ap-ettarr.c"
};
diff --git a/epan/dissectors/asn1/ftam/ftam.cnf b/epan/dissectors/asn1/ftam/ftam.cnf
index 5f538328..7ed79604 100644
--- a/epan/dissectors/asn1/ftam/ftam.cnf
+++ b/epan/dissectors/asn1/ftam/ftam.cnf
@@ -114,7 +114,7 @@ Legal-Qualification-Attribute/actual-values ABBREV=actual_values9
/* XXX have no idea about this one */
#.FN_BODY FTAM-Regime-PDU VAL_PTR = &branch_taken
- gint branch_taken;
+ int branch_taken;
%(DEFAULT_BODY)s
@@ -123,7 +123,7 @@ Legal-Qualification-Attribute/actual-values ABBREV=actual_values9
}
#.FN_BODY File-PDU VAL_PTR = &branch_taken
- gint branch_taken;
+ int branch_taken;
%(DEFAULT_BODY)s
@@ -132,7 +132,7 @@ Legal-Qualification-Attribute/actual-values ABBREV=actual_values9
}
#.FN_BODY Bulk-Data-PDU VAL_PTR = &branch_taken
- gint branch_taken;
+ int branch_taken;
%(DEFAULT_BODY)s
@@ -141,7 +141,7 @@ Legal-Qualification-Attribute/actual-values ABBREV=actual_values9
}
#.FN_BODY FSM-PDU VAL_PTR = &branch_taken
- gint branch_taken;
+ int branch_taken;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/ftam/packet-ftam-template.c b/epan/dissectors/asn1/ftam/packet-ftam-template.c
index 5d88c6fe..2b4d0bc0 100644
--- a/epan/dissectors/asn1/ftam/packet-ftam-template.c
+++ b/epan/dissectors/asn1/ftam/packet-ftam-template.c
@@ -20,6 +20,7 @@
#include <epan/expert.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -33,20 +34,20 @@ void proto_register_ftam(void);
void proto_reg_handoff_ftam(void);
/* Initialize the protocol and registered fields */
-static int proto_ftam = -1;
+static int proto_ftam;
/* Declare the function to avoid a compiler warning */
static int dissect_ftam_OR_Set(bool 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 */
+static int hf_ftam_unstructured_text; /* ISO FTAM unstructured text */
+static int hf_ftam_unstructured_binary; /* ISO FTAM unstructured binary */
#include "packet-ftam-hf.c"
/* Initialize the subtree pointers */
-static gint ett_ftam = -1;
+static int ett_ftam;
#include "packet-ftam-ett.c"
-static expert_field ei_ftam_zero_pdu = EI_INIT;
+static expert_field ei_ftam_zero_pdu;
#include "packet-ftam-fn.c"
@@ -82,7 +83,7 @@ dissect_ftam(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
@@ -93,7 +94,7 @@ dissect_ftam(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
while (tvb_reported_length_remaining(tvb, offset) > 0){
old_offset=offset;
- offset=dissect_ftam_PDU(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ 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;
@@ -119,7 +120,7 @@ void proto_register_ftam(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ftam,
#include "packet-ftam-ettarr.c"
};
diff --git a/epan/dissectors/asn1/gdt/packet-gdt-template.c b/epan/dissectors/asn1/gdt/packet-gdt-template.c
index 7c21c83c..f2f3fd24 100644
--- a/epan/dissectors/asn1/gdt/packet-gdt-template.c
+++ b/epan/dissectors/asn1/gdt/packet-gdt-template.c
@@ -12,13 +12,9 @@
# include "config.h"
-#include <glib.h>
#include <epan/packet.h>
-#include <epan/conversation.h>
#include <epan/sctpppids.h>
-
-#include <stdio.h>
-#include <string.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-gdt.h"
@@ -28,13 +24,13 @@
#define PFNAME "gdt"
/* Initialize the protocol and registered fields */
-static int proto_gdt = -1;
-static dissector_handle_t gdt_handle = NULL;
+static int proto_gdt;
+static dissector_handle_t gdt_handle;
#include "packet-gdt-hf.c"
/* Initialize the subtree pointers */
-static int ett_gdt = -1;
+static int ett_gdt;
#include "packet-gdt-ett.c"
#include "packet-gdt-fn.c"
@@ -66,7 +62,7 @@ void proto_register_gdt(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_gdt,
#include "packet-gdt-ettarr.c"
};
@@ -84,11 +80,11 @@ void proto_register_gdt(void) {
/*--- proto_reg_handoff_gdt -------------------------------------------*/
void proto_reg_handoff_gdt(void) {
- static gboolean initialized = FALSE;
+ static bool initialized = false;
if (!initialized) {
dissector_add_for_decode_as("sctp.ppi", gdt_handle);
dissector_add_uint("sctp.ppi", GDT_PROTOCOL_ID, gdt_handle);
- initialized = TRUE;
+ initialized = true;
}
}
diff --git a/epan/dissectors/asn1/glow/packet-glow-template.c b/epan/dissectors/asn1/glow/packet-glow-template.c
index 088d3c53..1eecd8b8 100644
--- a/epan/dissectors/asn1/glow/packet-glow-template.c
+++ b/epan/dissectors/asn1/glow/packet-glow-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#define PNAME "Glow"
@@ -22,13 +23,13 @@
void proto_register_glow(void);
-static dissector_handle_t glow_handle=NULL;
-static int proto_glow = -1;
+static dissector_handle_t glow_handle;
+static int proto_glow;
#include "packet-glow-hf.c"
/* Initialize the subtree pointers */
-static int ett_glow = -1;
+static int ett_glow;
#include "packet-glow-ett.c"
@@ -61,7 +62,7 @@ void proto_register_glow(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_glow,
#include "packet-glow-ettarr.c"
};
diff --git a/epan/dissectors/asn1/goose/goose.cnf b/epan/dissectors/asn1/goose/goose.cnf
index b0c84ffe..a47661b2 100644
--- a/epan/dissectors/asn1/goose/goose.cnf
+++ b/epan/dissectors/asn1/goose/goose.cnf
@@ -12,14 +12,14 @@ GOOSEpdu
#.FN_BODY IECGoosePdu/simulation VAL_PTR = &value
bool value;
- guint32 len = tvb_reported_length_remaining(tvb, offset);
+ uint32_t len = tvb_reported_length_remaining(tvb, offset);
int origin_offset = offset;
%(DEFAULT_BODY)s
if((actx->private_data) && (actx->created_item)){
goose_chk_data_t *data_chk = (goose_chk_data_t *)actx->private_data;
proto_tree *expert_inf_tree = NULL;
/* S bit set and Simulation attribute clear: reject as invalid GOOSE */
- if((data_chk->s_bit == TRUE) && (value == FALSE)){
+ if((data_chk->s_bit == true) && (value == false)){
/* It really looks better showed as a new subtree */
expert_inf_tree = proto_item_add_subtree(actx->created_item, ett_expert_inf_sim);
proto_tree_add_expert(expert_inf_tree, actx->pinfo, &ei_goose_invalid_sim, tvb, origin_offset, len);
@@ -29,19 +29,19 @@ GOOSEpdu
#.FN_BODY UtcTime
- guint32 len;
- guint32 seconds;
- guint32 fraction;
- guint32 nanoseconds;
+ uint32_t len;
+ uint32_t seconds;
+ uint32_t fraction;
+ uint32_t nanoseconds;
nstime_t ts;
- gchar * ptime;
+ char * 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)
+ if(hf_index > 0)
{
proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
}
@@ -50,14 +50,14 @@ GOOSEpdu
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) ) ;
+ nanoseconds = (uint32_t)( ((uint64_t)fraction * UINT64_C(1000000000)) / UINT64_C(0x100000000) ) ;
ts.secs = seconds;
ts.nsecs = nanoseconds;
- ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+ ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, true);
- if(hf_index >= 0)
+ if(hf_index > 0)
{
proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
}
@@ -69,7 +69,7 @@ GOOSEpdu
int len = tvb_reported_length_remaining(tvb, offset);
%(DEFAULT_BODY)s
- if ((len == FLOAT_ENC_LENGTH) && (tvb_get_guint8(tvb,0) == SINGLE_FLOAT_EXP_BITS) ){
+ if ((len == FLOAT_ENC_LENGTH) && (tvb_get_uint8(tvb,0) == SINGLE_FLOAT_EXP_BITS) ){
/* IEEE 754 single precision floating point */
proto_item_set_hidden(actx->created_item);
proto_tree_add_item(tree, hf_goose_float_value, tvb, 1, (FLOAT_ENC_LENGTH-1), ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/asn1/goose/packet-goose-template.c b/epan/dissectors/asn1/goose/packet-goose-template.c
index 70a3914f..b378ff34 100644
--- a/epan/dissectors/asn1/goose/packet-goose-template.c
+++ b/epan/dissectors/asn1/goose/packet-goose-template.c
@@ -19,6 +19,7 @@
#include <epan/proto_data.h>
#include <epan/etypes.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -35,40 +36,40 @@ void proto_register_goose(void);
void proto_reg_handoff_goose(void);
/* Initialize the protocol and registered fields */
-static int proto_goose = -1;
-static int proto_r_goose = -1;
-
-static int hf_goose_session_header = -1;
-static int hf_goose_spdu_id = -1;
-static int hf_goose_session_hdr_length = -1;
-static int hf_goose_hdr_length = -1;
-static int hf_goose_content_id = -1;
-static int hf_goose_spdu_lenth = -1;
-static int hf_goose_spdu_num = -1;
-static int hf_goose_version = -1;
-static int hf_goose_security_info = -1;
-static int hf_goose_current_key_t = -1;
-static int hf_goose_next_key_t = -1;
-static int hf_goose_key_id = -1;
-static int hf_goose_init_vec_length = -1;
-static int hf_goose_init_vec = -1;
-static int hf_goose_session_user_info = -1;
-static int hf_goose_payload = -1;
-static int hf_goose_payload_length = -1;
-static int hf_goose_apdu_tag = -1;
-static int hf_goose_apdu_simulation = -1;
-static int hf_goose_apdu_appid = -1;
-static int hf_goose_apdu_length = -1;
-static int hf_goose_padding_tag = -1;
-static int hf_goose_padding_length = -1;
-static int hf_goose_padding = -1;
-static int hf_goose_hmac = -1;
-static int hf_goose_appid = -1;
-static int hf_goose_length = -1;
-static int hf_goose_reserve1 = -1;
-static int hf_goose_reserve1_s_bit = -1;
-static int hf_goose_reserve2 = -1;
-static int hf_goose_float_value = -1;
+static int proto_goose;
+static int proto_r_goose;
+
+static int hf_goose_session_header;
+static int hf_goose_spdu_id;
+static int hf_goose_session_hdr_length;
+static int hf_goose_hdr_length;
+static int hf_goose_content_id;
+static int hf_goose_spdu_lenth;
+static int hf_goose_spdu_num;
+static int hf_goose_version;
+static int hf_goose_security_info;
+static int hf_goose_current_key_t;
+static int hf_goose_next_key_t;
+static int hf_goose_key_id;
+static int hf_goose_init_vec_length;
+static int hf_goose_init_vec;
+static int hf_goose_session_user_info;
+static int hf_goose_payload;
+static int hf_goose_payload_length;
+static int hf_goose_apdu_tag;
+static int hf_goose_apdu_simulation;
+static int hf_goose_apdu_appid;
+static int hf_goose_apdu_length;
+static int hf_goose_padding_tag;
+static int hf_goose_padding_length;
+static int hf_goose_padding;
+static int hf_goose_hmac;
+static int hf_goose_appid;
+static int hf_goose_length;
+static int hf_goose_reserve1;
+static int hf_goose_reserve1_s_bit;
+static int hf_goose_reserve2;
+static int hf_goose_float_value;
/* Bit fields in the Reserved fields */
@@ -76,13 +77,13 @@ static int hf_goose_float_value = -1;
/* GOOSE stored data for expert info verifications */
typedef struct _goose_chk_data{
- gboolean s_bit;
+ bool s_bit;
}goose_chk_data_t;
#define GOOSE_CHK_DATA_LEN (sizeof(goose_chk_data_t))
-static expert_field ei_goose_mal_utctime = EI_INIT;
-static expert_field ei_goose_zero_pdu = EI_INIT;
-static expert_field ei_goose_invalid_sim = EI_INIT;
+static expert_field ei_goose_mal_utctime;
+static expert_field ei_goose_zero_pdu;
+static expert_field ei_goose_invalid_sim;
#define SINGLE_FLOAT_EXP_BITS 8
#define FLOAT_ENC_LENGTH 5
@@ -90,22 +91,21 @@ static expert_field ei_goose_invalid_sim = EI_INIT;
#include "packet-goose-hf.c"
/* Initialize the subtree pointers */
-static int ett_r_goose = -1;
-static int ett_session_header = -1;
-static int ett_security_info = -1;
-static int ett_session_user_info = -1;
-static int ett_payload = -1;
-static int ett_padding = -1;
-static int ett_goose = -1;
-static int ett_reserve1 = -1;
-static int ett_expert_inf_sim = -1;
+static int ett_r_goose;
+static int ett_session_header;
+static int ett_security_info;
+static int ett_session_user_info;
+static int ett_payload;
+static int ett_padding;
+static int ett_goose;
+static int ett_reserve1;
+static int ett_expert_inf_sim;
#include "packet-goose-ett.c"
#include "packet-goose-fn.c"
-static dissector_handle_t goose_handle = NULL;
-static dissector_handle_t ositp_handle = NULL;
+static dissector_handle_t goose_handle;
#define OSI_SPDU_TUNNELED 0xA0 /* Tunneled */
@@ -143,15 +143,15 @@ static int
dissect_goose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
void* data _U_)
{
- guint32 offset = 0;
- guint32 old_offset;
- guint32 length;
- guint32 reserve1_val;
+ uint32_t offset = 0;
+ uint32_t old_offset;
+ uint32_t length;
+ uint32_t reserve1_val;
proto_item *item = NULL;
proto_tree *tree = NULL;
goose_chk_data_t *data_chk = NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
static int * const reserve1_flags[] = {
&hf_goose_reserve1_s_bit,
@@ -177,16 +177,16 @@ dissect_goose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
ENC_BIG_ENDIAN, &length);
/* Reserved 1 */
- reserve1_val = tvb_get_guint16(tvb, offset + 4, ENC_BIG_ENDIAN);
+ reserve1_val = tvb_get_uint16(tvb, offset + 4, ENC_BIG_ENDIAN);
proto_tree_add_bitmask_value(tree, tvb, offset + 4, hf_goose_reserve1, ett_reserve1,
reserve1_flags, reserve1_val);
/* Store the header sim value for later expert info checks */
if(data_chk){
if(reserve1_val & F_RESERVE1_S_BIT){
- data_chk->s_bit = TRUE;
+ data_chk->s_bit = true;
}else{
- data_chk->s_bit = FALSE;
+ data_chk->s_bit = false;
}
}
@@ -198,7 +198,7 @@ dissect_goose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
offset = 8;
while (offset < length){
old_offset = offset;
- offset = dissect_goose_GOOSEpdu(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ 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;
@@ -216,14 +216,14 @@ static int
dissect_rgoose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
void* data _U_)
{
- guint offset = 0, old_offset = 0;
- guint32 init_v_length, payload_tag, padding_length, length;
- guint32 payload_length, apdu_offset = 0, apdu_length, apdu_simulation;
+ unsigned offset = 0, old_offset = 0;
+ uint32_t init_v_length, payload_tag, padding_length, length;
+ uint32_t payload_length, apdu_offset = 0, apdu_length, apdu_simulation;
proto_item *item = NULL;
proto_tree *tree = NULL, *r_goose_tree = NULL, *sess_user_info_tree = NULL;
goose_chk_data_t *data_chk = NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
asn1_ctx.private_data = wmem_alloc(pinfo->pool, GOOSE_CHK_DATA_LEN);
data_chk = (goose_chk_data_t *)asn1_ctx.private_data;
@@ -325,9 +325,9 @@ dissect_rgoose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
/* Store the header sim value for later expert info checks */
if(data_chk){
if(apdu_simulation){
- data_chk->s_bit = TRUE;
+ data_chk->s_bit = true;
}else{
- data_chk->s_bit = FALSE;
+ data_chk->s_bit = false;
}
}
@@ -339,7 +339,7 @@ dissect_rgoose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
offset += 2;
old_offset = offset;
- offset = dissect_goose_GOOSEpdu(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ 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;
@@ -348,7 +348,7 @@ dissect_rgoose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
/* Check do we have padding bytes */
if ((tvb_captured_length(tvb) > offset) &&
- (tvb_get_guint8(tvb, offset) == 0xAF)) {
+ (tvb_get_uint8(tvb, offset) == 0xAF)) {
/* Padding subtree */
item = proto_tree_add_item(sess_user_info_tree, hf_goose_padding, tvb,
offset, -1, ENC_NA);
@@ -378,62 +378,27 @@ dissect_rgoose(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
return tvb_captured_length(tvb);
}
-static gboolean
+static bool
dissect_rgoose_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
void *data)
{
- guint8 spdu;
+ uint8_t spdu;
/* Check do we have at least min size of Session header bytes */
if (tvb_captured_length(tvb) < 27) {
- return FALSE;
+ return false;
}
/* Is it R-GOOSE? */
- spdu = tvb_get_guint8(tvb, 0);
+ spdu = tvb_get_uint8(tvb, 0);
if (spdu != OSI_SPDU_GOOSE) {
- return FALSE;
+ return false;
}
dissect_rgoose(tvb, pinfo, parent_tree, data);
- return TRUE;
+ return true;
}
-static gboolean
-dissect_cltp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- void *data _U_)
-{
- guint8 li, tpdu, spdu;
-
- /* First, check do we have at least 2 bytes (length + tpdu) */
- if (tvb_captured_length(tvb) < 2) {
- return FALSE;
- }
-
- li = tvb_get_guint8(tvb, 0);
-
- /* Is it OSI on top of the UDP? */
- tpdu = (tvb_get_guint8(tvb, 1) & 0xF0) >> 4;
- if (tpdu != 0x4) {
- return FALSE;
- }
-
- /* Check do we have SPDU ID byte, too */
- if (tvb_captured_length(tvb) < (guint) (li + 2)) {
- return FALSE;
- }
-
- /* And let's see if it is GOOSE SPDU */
- spdu = tvb_get_guint8(tvb, li + 1);
- if (spdu != OSI_SPDU_GOOSE) {
- return FALSE;
- }
-
- call_dissector(ositp_handle, tvb, pinfo, parent_tree);
- return TRUE;
-}
-
-
/*--- proto_register_goose -------------------------------------------*/
void proto_register_goose(void) {
@@ -568,7 +533,7 @@ void proto_register_goose(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_r_goose,
&ett_session_header,
&ett_security_info,
@@ -614,10 +579,6 @@ void proto_reg_handoff_goose(void) {
dissector_add_uint("ethertype", ETHERTYPE_IEC61850_GOOSE, goose_handle);
- ositp_handle = find_dissector_add_dependency("ositp", proto_goose);
-
- heur_dissector_add("udp", dissect_cltp_heur,
- "CLTP over UDP", "cltp_udp", proto_goose, HEURISTIC_ENABLE);
heur_dissector_add("cltp", dissect_rgoose_heur,
"R-GOOSE (GOOSE over CLTP)", "rgoose_cltp", proto_goose, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/asn1/gprscdr/gprscdr.cnf b/epan/dissectors/asn1/gprscdr/gprscdr.cnf
index c3c85b3e..f14e56bc 100644
--- a/epan/dissectors/asn1/gprscdr/gprscdr.cnf
+++ b/epan/dissectors/asn1/gprscdr/gprscdr.cnf
@@ -90,15 +90,15 @@ GPRSRecord
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_uint8(parameter_tvb,0), /* Year */
+ tvb_get_uint8(parameter_tvb,1), /* Month */
+ tvb_get_uint8(parameter_tvb,2), /* Day */
+ tvb_get_uint8(parameter_tvb,3), /* Hour */
+ tvb_get_uint8(parameter_tvb,4), /* Minute */
+ tvb_get_uint8(parameter_tvb,5), /* Second */
tvb_get_string_enc(actx->pinfo->pool, parameter_tvb,6,1,ENC_ASCII|ENC_NA), /* Sign */
- tvb_get_guint8(parameter_tvb,7), /* Hour */
- tvb_get_guint8(parameter_tvb,8) /* Minute */
+ tvb_get_uint8(parameter_tvb,7), /* Hour */
+ tvb_get_uint8(parameter_tvb,8) /* Minute */
);
#.FN_BODY MSTimeZone VAL_PTR = &parameter_tvb
@@ -107,7 +107,7 @@ GPRSRecord
* 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
*/
tvbuff_t *parameter_tvb;
- guint8 data, data2;
+ uint8_t data, data2;
char sign;
%(DEFAULT_BODY)s
@@ -115,11 +115,11 @@ GPRSRecord
if (!parameter_tvb)
return offset;
- data = tvb_get_guint8(parameter_tvb, 0);
+ data = tvb_get_uint8(parameter_tvb, 0);
sign = (data & 0x08) ? '-' : '+';
data = (data >> 4) + (data & 0x07) * 10;
- data2 = tvb_get_guint8(tvb, 1) & 0x3;
+ data2 = tvb_get_uint8(tvb, 1) & 0x3;
proto_item_append_text(actx->created_item, " (GMT %%c %%d hours %%d minutes %%s)",
sign,
@@ -138,7 +138,7 @@ GPRSRecord
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);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, true);
#.FN_BODY QoSInformation
@@ -154,7 +154,7 @@ GPRSRecord
#.FN_BODY EPCQoSInformation/aRP
proto_tree *ext_tree_arp;
- guint length;
+ unsigned length;
/*
* 8.86 Allocation/Retention Priority (ARP)
@@ -227,7 +227,7 @@ GPRSRecord
#.FN_BODY PDPType
proto_tree *ext_tree_pdp_pdn_type;
- guint length;
+ unsigned length;
length = tvb_reported_length(tvb);
@@ -254,8 +254,8 @@ GPRSRecord
#.FN_BODY GPRSRecord VAL_PTR = &branch_taken
proto_item *item;
-gint branch_taken, t_offset = offset;
-gint32 tag;
+int branch_taken, t_offset = offset;
+int32_t tag;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
index 160114f4..acc4957e 100644
--- a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
+++ b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
@@ -17,6 +17,7 @@
#include <epan/packet.h>
#include <epan/expert.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-gsm_map.h"
@@ -33,24 +34,24 @@
void proto_register_gprscdr(void);
/* Define the GPRS CDR proto */
-static int proto_gprscdr = -1;
+static int proto_gprscdr;
#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_pdp_pdn_type = -1;
-static int ett_gprscdr_eps_qos_arp = -1;
-static int ett_gprscdr_managementextension_information = -1;
-static int ett_gprscdr_userlocationinformation = -1;
+static int ett_gprscdr;
+static int ett_gprscdr_timestamp;
+static int ett_gprscdr_plmn_id;
+static int ett_gprscdr_pdp_pdn_type;
+static int ett_gprscdr_eps_qos_arp;
+static int ett_gprscdr_managementextension_information;
+static int ett_gprscdr_userlocationinformation;
#include "packet-gprscdr-ett.c"
-static expert_field ei_gprscdr_not_dissected = EI_INIT;
-static expert_field ei_gprscdr_choice_not_found = EI_INIT;
+static expert_field ei_gprscdr_not_dissected;
+static expert_field ei_gprscdr_choice_not_found;
/* Global variables */
-static const char *obj_id = NULL;
+static const char *obj_id;
static const value_string gprscdr_daylight_saving_time_vals[] = {
{0, "No adjustment"},
@@ -86,7 +87,7 @@ static const value_string gprscdr_rat_type_vals[] = {
static int
dissect_gprscdr_uli(tvbuff_t *tvb _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int type) {
proto_tree *ext_tree_uli;
- guint length;
+ unsigned length;
length = tvb_reported_length(tvb);
ext_tree_uli = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_userlocationinformation, NULL, "UserLocationInformation");
@@ -128,7 +129,7 @@ proto_register_gprscdr(void)
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_gprscdr,
&ett_gprscdr_timestamp,
&ett_gprscdr_plmn_id,
diff --git a/epan/dissectors/asn1/gsm_map/gsm_map.cnf b/epan/dissectors/asn1/gsm_map/gsm_map.cnf
index 4547facd..79921cd6 100644
--- a/epan/dissectors/asn1/gsm_map/gsm_map.cnf
+++ b/epan/dissectors/asn1/gsm_map/gsm_map.cnf
@@ -180,7 +180,7 @@ VelocityEstimate
#.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
+# This table creates the value_string to name GSM MAP operation codes and errors
# in file packet-camel-table.c which is included in the template file
#
#.TABLE_BODY OPERATION
@@ -224,7 +224,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.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;
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
#.FN_BODY PrivateExtension/extType
proto_tree *ext_tree;
@@ -269,7 +269,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
/* Hide the octet string default printout */
proto_item_set_hidden(actx->created_item);
imsi_str = dissect_e212_imsi(parameter_tvb, actx->pinfo, tree,
- 0, tvb_reported_length(parameter_tvb), FALSE);
+ 0, tvb_reported_length(parameter_tvb), false);
if (!PINFO_FD_VISITED(actx->pinfo))
actx->private_data = wmem_strdup(wmem_file_scope(), imsi_str);
@@ -293,7 +293,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_tbcd_digits);
- proto_tree_add_item(subtree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, ENC_KEYPAD_ABC_TBCD);
+ proto_tree_add_item(subtree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, ENC_KEYPAD_ABC_TBCD|ENC_LITTLE_ENDIAN);
#----------------------------------------------------------------------------------------
#.FN_BODY LongSignalInfo VAL_PTR = &parameter_tvb
@@ -305,7 +305,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#TS 25.413, 3GPP TS 48.006 [48] and 3GPP TS 48.008 [49].
tvbuff_t *parameter_tvb;
- guint8 octet;
+ uint8_t octet;
tvbuff_t *next_tvb;
proto_tree *subtree;
gsm_map_private_info_t *gsm_map_priv;
@@ -324,7 +324,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
switch (AccessNetworkProtocolId){
/* ts3G-48006 */
case 1:
- octet = tvb_get_guint8(parameter_tvb,0);
+ octet = tvb_get_uint8(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) */
@@ -354,9 +354,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS;
- gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -365,9 +365,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS;
- gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -376,9 +376,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI;
- gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -387,9 +387,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI;
- gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -398,9 +398,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI;
- gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -409,9 +409,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_SENT;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI;
- gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -420,9 +420,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN;
- gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -430,9 +430,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN;
- gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -441,9 +441,9 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS;
- gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
@@ -452,16 +452,16 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
actx->pinfo->p2p_dir = P2P_DIR_RECV;
%(DEFAULT_BODY)s
if (actx->private_data) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS;
- gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data;
+ gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
actx->private_data = NULL;
}
#.FN_BODY SM-RP-OAold/noSM-RP-OA
%(DEFAULT_BODY)s
if (!PINFO_FD_VISITED(actx->pinfo)) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
if (prev_packet_info) {
gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id;
@@ -472,7 +472,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY SM-RP-OA/noSM-RP-OA
%(DEFAULT_BODY)s
if (!PINFO_FD_VISITED(actx->pinfo)) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
if (prev_packet_info) {
gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id;
@@ -483,7 +483,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY SM-RP-DAold/noSM-RP-DA
%(DEFAULT_BODY)s
if (!PINFO_FD_VISITED(actx->pinfo)) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
if (prev_packet_info) {
gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id;
@@ -494,7 +494,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY SM-RP-DA/noSM-RP-DA
%(DEFAULT_BODY)s
if (!PINFO_FD_VISITED(actx->pinfo)) {
- gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE);
+ gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
if (prev_packet_info) {
gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id;
@@ -513,14 +513,14 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY SM-DeliveryFailureCause
/* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
- guint8 oct;
+ uint8_t oct;
gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
%(DEFAULT_BODY)s
if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
return offset;
/* Detailed diagnostic information contains either a SMS-SUBMIT-REPORT or a SMS-DELIVERY-REPORT */
- oct = tvb_get_guint8(gsm_map_priv->signal_info_tvb, 0);
+ oct = tvb_get_uint8(gsm_map_priv->signal_info_tvb, 0);
actx->pinfo->p2p_dir = ((oct & 0x03) == 0) ? P2P_DIR_RECV : P2P_DIR_SENT;
call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
@@ -615,14 +615,14 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY SS-Status VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
- guint8 octet;
+ uint8_t octet;
%(DEFAULT_BODY)s
if (!parameter_tvb)
return offset;
- octet = tvb_get_guint8(parameter_tvb,0);
+ octet = tvb_get_uint8(parameter_tvb,0);
proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
if ((octet & 0x01)== 1)
@@ -636,14 +636,14 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
/* Note Ext-SS-Status can have more than one byte */
tvbuff_t *parameter_tvb;
- guint8 octet;
+ uint8_t octet;
%(DEFAULT_BODY)s
if (!parameter_tvb)
return offset;
- octet = tvb_get_guint8(parameter_tvb,0);
+ octet = tvb_get_uint8(parameter_tvb,0);
proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
if ((octet & 0x01)== 1)
@@ -673,7 +673,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY USSD-String VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
- guint length;
+ unsigned length;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -714,7 +714,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY PDP-Type VAL_PTR = &parameter_tvb
- guint8 pdp_type_org;
+ uint8_t pdp_type_org;
tvbuff_t *parameter_tvb;
@@ -723,7 +723,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
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);
+ pdp_type_org = tvb_get_uint8(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);
@@ -789,7 +789,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
#.FN_BODY GSN-Address VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
- guint8 octet;
+ uint8_t octet;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -798,7 +798,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
- octet = tvb_get_guint8(parameter_tvb,0);
+ octet = tvb_get_uint8(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);
@@ -832,7 +832,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
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);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_LAI, true);
#.FN_BODY RadioResourceInformation VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
@@ -855,7 +855,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
if (!parameter_tvb)
return offset;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ 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
@@ -867,7 +867,7 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
if (!parameter_tvb)
return offset;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ 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
@@ -879,13 +879,13 @@ MAP-DialoguePDU B "0.4.0.0.1.1.1.1" "map-DialogueAS"
if (!parameter_tvb)
return offset;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ 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;
+ uint8_t octet;
+ uint8_t length;
tvbuff_t *next_tvb;
proto_tree *subtree;
/*
@@ -906,14 +906,14 @@ if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
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
+ * Unfortunately a branch for each IE must be made to call the appropriate
* function
*/
/* Get tag */
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
/* get length */
- length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1);
+ length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
/* Branch on tag */
switch(octet){
@@ -929,7 +929,7 @@ if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
break;
case 2:
/* gsm-0806 */
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
/* Discrimination parameter */
proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
@@ -946,7 +946,7 @@ if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
break;
case 3:
/* gsm-BSSMAP -- Value 3 is reserved and must not be used*/
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
@@ -954,8 +954,8 @@ if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
break;
/* ets-300102-1 (~Q.931 ) */
case 4:
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
- length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
+ length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
if ( octet == 4 )
dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree);
break;
@@ -972,8 +972,8 @@ This parameter contains concatenated information elements (including tag and len
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;
+ uint8_t octet;
+ uint8_t length;
tvbuff_t *next_tvb;
proto_tree *subtree;
gsm_map_private_info_t *gsm_map_priv;
@@ -988,14 +988,14 @@ MAP interfaces
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
+ * Unfortunately a branch for each IE must be made to call the appropriate
* function
*/
/* Get tag */
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
/* get length */
- length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1);
+ length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
/* Branch on tag */
switch(octet){
@@ -1011,7 +1011,7 @@ MAP interfaces
break;
case 2:
/* gsm-0806 */
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
/* Discrimination parameter */
proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
@@ -1028,7 +1028,7 @@ MAP interfaces
break;
case 3:
/* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
@@ -1036,8 +1036,8 @@ MAP interfaces
break;
/* ets-300102-1 (~Q.931 ) */
case 4:
- octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0);
- length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1);
+ octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
+ length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
if ( octet == 4 )
dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree);
break;
@@ -1082,7 +1082,7 @@ MAP interfaces
#.FN_BODY APN VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
proto_tree *subtree;
- const guint8 *apn_str = NULL;
+ const uint8_t *apn_str = NULL;
%(DEFAULT_BODY)s
if (!parameter_tvb)
@@ -1106,11 +1106,11 @@ MAP interfaces
#.FN_BODY EnhancedCheckIMEI-Arg/locationInformation VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
proto_tree *subtree;
- guint8 rat;
+ uint8_t 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);
+ rat = tvb_get_uint8(parameter_tvb, 0);
proto_tree_add_uint(subtree, hf_gsm_map_ericsson_locationInformation_rat, parameter_tvb, 0, 1, rat);
switch (rat) {
case 0:
@@ -1132,7 +1132,7 @@ MAP interfaces
tvbuff_t *payload_tvb;
%(DEFAULT_BODY)s
if (payload_tvb) {
- guint32 tvb_offset = 0;
+ uint32_t tvb_offset = 0;
proto_item_set_hidden(actx->created_item);
dis_field_addr(payload_tvb, actx->pinfo, tree, &tvb_offset, "SM-RP-SMEA");
}
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
index a46309c0..e39cf397 100644
--- a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
@@ -43,6 +43,8 @@
#include <epan/proto_data.h>
#include <epan/conversation.h>
#include <wsutil/strtoi.h>
+#include <epan/tfs.h>
+#include <wsutil/array.h>
#include <epan/asn1.h>
#include "packet-ber.h"
@@ -66,157 +68,157 @@ 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 proto_gsm_map_ms = -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_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_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;
-static int hf_gsm_map_spare_bits = -1;
-static int hf_gsm_map_qos_signalling_ind = -1;
-static int hf_gsm_map_qos_source_stat_desc = - 1;
-static int hf_gsm_map_qos_max_bitrate_upl_ext = -1;
-static int hf_gsm_map_qos_max_bitrate_downl_ext = -1;
-static int hf_gsm_map_qos_guar_bitrate_upl_ext = -1;
-static int hf_gsm_map_qos_guar_bitrate_downl_ext = -1;
+static int proto_gsm_map;
+static int proto_gsm_map_dialogue;
+static int proto_gsm_map_ms;
+
+static int hf_gsm_map_old_Component_PDU;
+static int hf_gsm_map_getPassword;
+static int hf_gsm_map_currentPassword;
+static int hf_gsm_map_extension;
+static int hf_gsm_map_nature_of_number;
+static int hf_gsm_map_number_plan;
+static int hf_gsm_map_address_digits;
+static int hf_gsm_map_TBCD_digits;
+static int hf_gsm_map_Ss_Status_unused;
+static int hf_gsm_map_Ss_Status_q_bit;
+static int hf_gsm_map_Ss_Status_p_bit;
+static int hf_gsm_map_Ss_Status_r_bit;
+static int hf_gsm_map_Ss_Status_a_bit;
+static int hf_gsm_map_notification_to_forwarding_party;
+static int hf_gsm_map_redirecting_presentation;
+static int hf_gsm_map_notification_to_calling_party;
+static int hf_gsm_map_forwarding_reason;
+static int hf_gsm_map_pdp_type_org;
+static int hf_gsm_map_etsi_pdp_type_number;
+static int hf_gsm_map_ietf_pdp_type_number;
+static int hf_gsm_map_ext_qos_subscribed_pri;
+
+static int hf_gsm_map_qos_traffic_cls;
+static int hf_gsm_map_qos_del_order;
+static int hf_gsm_map_qos_del_of_err_sdu;
+static int hf_gsm_map_qos_ber;
+static int hf_gsm_map_qos_sdu_err_rat;
+static int hf_gsm_map_qos_traff_hdl_pri;
+static int hf_gsm_map_qos_max_sdu;
+static int hf_gsm_map_max_brate_ulink;
+static int hf_gsm_map_max_brate_dlink;
+static int hf_gsm_map_qos_transfer_delay;
+static int hf_gsm_map_guaranteed_max_brate_ulink;
+static int hf_gsm_map_guaranteed_max_brate_dlink;
+static int hf_gsm_map_GSNAddress_IPv4;
+static int hf_gsm_map_GSNAddress_IPv6;
+static int hf_gsm_map_ranap_service_Handover;
+static int hf_gsm_map_IntegrityProtectionInformation;
+static int hf_gsm_map_EncryptionInformation;
+static int hf_gsm_map_ss_SS_UserData;
+static int hf_gsm_map_cbs_coding_grp;
+static int hf_gsm_map_cbs_coding_grp0_lang;
+static int hf_gsm_map_cbs_coding_grp1_lang;
+static int hf_gsm_map_cbs_coding_grp2_lang;
+static int hf_gsm_map_cbs_coding_grp3_lang;
+static int hf_gsm_map_cbs_coding_grp4_7_comp;
+static int hf_gsm_map_cbs_coding_grp4_7_class_ind;
+static int hf_gsm_map_cbs_coding_grp4_7_char_set;
+static int hf_gsm_map_cbs_coding_grp4_7_class;
+static int hf_gsm_map_cbs_coding_grp15_mess_code;
+static int hf_gsm_map_cbs_coding_grp15_class;
+static int hf_gsm_map_ie_tag;
+static int hf_gsm_map_len;
+static int hf_gsm_map_disc_par;
+static int hf_gsm_map_dlci;
+static int hf_gsm_apn_str;
+static int hf_gsm_map_ericsson_locationInformation_rat;
+static int hf_gsm_map_ericsson_locationInformation_lac;
+static int hf_gsm_map_ericsson_locationInformation_ci;
+static int hf_gsm_map_ericsson_locationInformation_sac;
+static int hf_gsm_map_ussd_string;
+static int hf_gsm_map_spare_bits;
+static int hf_gsm_map_qos_signalling_ind;
+static int hf_gsm_map_qos_source_stat_desc;
+static int hf_gsm_map_qos_max_bitrate_upl_ext;
+static int hf_gsm_map_qos_max_bitrate_downl_ext;
+static int hf_gsm_map_qos_guar_bitrate_upl_ext;
+static int hf_gsm_map_qos_guar_bitrate_downl_ext;
/*
-static int hf_gsm_map_qos_max_bitrate_upl_ext2 = -1;
-static int hf_gsm_map_qos_max_bitrate_downl_ext2 = -1;
-static int hf_gsm_map_qos_guar_bitrate_upl_ext2 = -1;
-static int hf_gsm_map_qos_guar_bitrate_downl_ext2 = -1;
+static int hf_gsm_map_qos_max_bitrate_upl_ext2;
+static int hf_gsm_map_qos_max_bitrate_downl_ext2;
+static int hf_gsm_map_qos_guar_bitrate_upl_ext2;
+static int hf_gsm_map_qos_guar_bitrate_downl_ext2;
*/
-static int hf_gsm_map_earp_pci = -1;
-static int hf_gsm_map_earp_pl = -1;
-static int hf_gsm_map_earp_pvi = -1;
+static int hf_gsm_map_earp_pci;
+static int hf_gsm_map_earp_pl;
+static int hf_gsm_map_earp_pvi;
#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;
-static gint ett_gsm_map_ext2_qos_subscribed = -1;
-static gint ett_gsm_map_ext3_qos_subscribed = -1;
-static gint ett_gsm_map_e_utranCellGlobalIdentity = -1;
-static gint ett_gsm_map_TA_id = -1;
-static gint ett_gsm_map_GeodeticInformation = -1;
+static int ett_gsm_map;
+static int ett_gsm_map_InvokeId;
+static int ett_gsm_map_InvokePDU;
+static int ett_gsm_map_ReturnResultPDU;
+static int ett_gsm_map_ReturnErrorPDU;
+static int ett_gsm_map_ReturnResult_result;
+static int ett_gsm_map_ReturnError_result;
+static int ett_gsm_map_GSMMAPPDU;
+static int ett_gsm_map_ext_qos_subscribed;
+static int ett_gsm_map_pdptypenumber;
+static int ett_gsm_map_RAIdentity;
+static int ett_gsm_map_LAIFixedLength;
+static int ett_gsm_map_isdn_address_string;
+static int ett_gsm_map_geo_desc;
+static int ett_gsm_map_LongSignalInfo;
+static int ett_gsm_map_RadioResourceInformation;
+static int ett_gsm_map_MSNetworkCapability;
+static int ett_gsm_map_MSRadioAccessCapability;
+static int ett_gsm_map_externalsignalinfo;
+static int ett_gsm_map_cbs_data_coding;
+static int ett_gsm_map_GlobalCellId;
+static int ett_gsm_map_GeographicalInformation;
+static int ett_gsm_map_apn_str;
+static int ett_gsm_map_LocationNumber;
+static int ett_gsm_map_ericsson_locationInformation;
+static int ett_gsm_map_extension_data;
+static int ett_gsm_map_tbcd_digits;
+static int ett_gsm_map_ussd_string;
+static int ett_gsm_map_ext2_qos_subscribed;
+static int ett_gsm_map_ext3_qos_subscribed;
+static int ett_gsm_map_e_utranCellGlobalIdentity;
+static int ett_gsm_map_TA_id;
+static int ett_gsm_map_GeodeticInformation;
#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 expert_field ei_gsm_map_unknown_sequence3;
+static expert_field ei_gsm_map_unknown_sequence;
+static expert_field ei_gsm_map_unknown_parameter;
+static expert_field ei_gsm_map_unknown_invokeData;
+static expert_field ei_gsm_map_undecoded;
static dissector_handle_t gsm_sms_handle; /* SMS TPDU */
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 */
+static dissector_table_t map_prop_arg_opcode_table; /* proprietary operation codes */
+static dissector_table_t map_prop_res_opcode_table; /* proprietary operation codes */
+static dissector_table_t map_prop_err_opcode_table; /* proprietary operation codes */
+/* Preference 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;
+static bool pref_context_version_from_trace = true;
+static int pref_application_context_version = 3;
+static bool pref_ericsson_proprietary_ext;
/* Global variables */
-static guint32 opcode=0;
-static guint32 errorCode;
+static uint32_t opcode=0;
+static uint32_t errorCode;
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;
+static unsigned ProtocolId;
+static unsigned AccessNetworkProtocolId;
+static int gsm_map_tap;
+static uint8_t gsmmap_pdu_type;
+static uint8_t gsm_map_pdu_size;
#define SMS_ENCODING_NOT_SET 0
#define SMS_ENCODING_7BIT 1
@@ -225,13 +227,13 @@ static guint8 gsm_map_pdu_size = 0;
#define SMS_ENCODING_7BIT_LANG 4
#define SMS_ENCODING_UCS2_LANG 5
-static guint8 sms_encoding;
+static uint8_t 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);
+const char* gsm_map_opr_code(uint32_t val, proto_item *item);
typedef struct {
struct tcap_private_t * tcap_private;
@@ -344,11 +346,11 @@ static const value_string gsm_map_ericsson_locationInformation_rat_vals[] = {
/* returns value in kb/s */
-static guint
-gsm_map_calc_bitrate(guint8 value){
+static unsigned
+gsm_map_calc_bitrate(uint8_t value){
- guint8 granularity;
- guint returnvalue;
+ uint8_t granularity;
+ unsigned returnvalue;
if (value == 0xff)
return 0;
@@ -376,8 +378,8 @@ 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;
+ uint8_t octet;
+ uint16_t value;
subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
/* OCTET 1:
@@ -401,7 +403,7 @@ dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
offset++;
/* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
- octet = tvb_get_guint8(tvb,offset);
+ octet = tvb_get_uint8(tvb,offset);
switch (octet){
case 0:
proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "Reserved");
@@ -429,7 +431,7 @@ dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
offset++;
/* Maximum bit rate for uplink, octet 8 */
- octet = tvb_get_guint8(tvb,offset);
+ octet = tvb_get_uint8(tvb,offset);
if (octet == 0 ){
proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, octet, "Reserved" );
}else{
@@ -437,7 +439,7 @@ dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
}
offset++;
/* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
- octet = tvb_get_guint8(tvb,offset);
+ octet = tvb_get_uint8(tvb,offset);
if (octet == 0 ){
proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, octet, "Reserved" );
}else{
@@ -459,7 +461,7 @@ dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
/* 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);
+ octet = tvb_get_uint8(tvb,offset);
if (octet == 0 ){
proto_tree_add_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, octet, "Subscribed guaranteed bit rate for uplink/reserved");
}else{
@@ -470,7 +472,7 @@ dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
/* 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);
+ octet = tvb_get_uint8(tvb,offset);
if (octet == 0 ){
proto_tree_add_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, octet, "Subscribed guaranteed bit rate for downlink/reserved");
}else{
@@ -493,8 +495,8 @@ static const true_false_string gsm_map_qos_signalling_ind_value = {
};
#if 0
/* Helper function returning the main bitrates in kbps */
-static guint32
-qos_calc_bitrate(guint8 oct)
+static uint32_t
+qos_calc_bitrate(uint8_t oct)
{
if (oct <= 0x3f)
return oct;
@@ -505,8 +507,8 @@ qos_calc_bitrate(guint8 oct)
}
#endif
/* Helper function returning the extended bitrates in kbps */
-static guint32
-qos_calc_ext_bitrate(guint8 oct)
+static uint32_t
+qos_calc_ext_bitrate(uint8_t oct)
{
if (oct <= 0x4a)
return 8600 + oct * 100;
@@ -516,8 +518,8 @@ qos_calc_ext_bitrate(guint8 oct)
return 128000 + (oct - 0xba) * 2000;
}
#if 0
-static guint32
-qos_calc_ext2_bitrate(guint8 oct)
+static uint32_t
+qos_calc_ext2_bitrate(uint8_t oct)
{
if (oct <= 0x3d)
return (256 + oct * 4);
@@ -534,15 +536,15 @@ dissect_gsm_map_ext2_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto
int offset = 0;
proto_tree *subtree;
- const gchar *str;
- guint8 oct, tmp_oct;
- guint32 temp32;
+ const char *str;
+ uint8_t oct, tmp_oct;
+ uint32_t temp32;
int length = tvb_reported_length(tvb);
subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext2_qos_subscribed);
/* Ocet 14 */
- oct = tvb_get_guint8(tvb, offset);
+ oct = tvb_get_uint8(tvb, offset);
proto_tree_add_bits_item(subtree, hf_gsm_map_spare_bits, tvb, (offset << 3), 3, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_gsm_map_qos_signalling_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -561,7 +563,7 @@ dissect_gsm_map_ext2_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto
}
/* Octet 15 */
- oct = tvb_get_guint8(tvb, offset);
+ oct = tvb_get_uint8(tvb, offset);
if (oct == 0x00)
str = "Use the value indicated by the Maximum bit rate for downlink";
@@ -582,7 +584,7 @@ dissect_gsm_map_ext2_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto
}
/* Octet 16 */
- oct = tvb_get_guint8(tvb, offset);
+ oct = tvb_get_uint8(tvb, offset);
if (oct == 0x00)
str = "Use the value indicated by the Guaranteed bit rate for downlink";
@@ -609,15 +611,15 @@ dissect_gsm_map_ext3_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto
int offset = 0;
proto_tree *subtree;
- const gchar *str;
- guint8 oct;
- guint32 temp32;
+ const char *str;
+ uint8_t oct;
+ uint32_t temp32;
int length = tvb_reported_length(tvb);
subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext3_qos_subscribed);
/* Maximum bit rate for uplink (extended) Octet 17 */
- oct = tvb_get_guint8(tvb, offset);
+ oct = tvb_get_uint8(tvb, offset);
if (oct == 0x00)
str = "Use the value indicated by the Maximum bit rate for uplink";
@@ -638,7 +640,7 @@ dissect_gsm_map_ext3_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto
}
/* Guaranteed bit rate for uplink (extended) Octet 18 */
- oct = tvb_get_guint8(tvb, offset);
+ oct = tvb_get_uint8(tvb, offset);
if (oct == 0x00)
str = "Use the value indicated by the Guaranteed bit rate for uplink";
@@ -864,14 +866,14 @@ static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
/* 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)
+uint8_t
+dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, uint16_t offset)
{
- guint8 octet;
- guint8 coding_grp;
- guint8 character_set;
+ uint8_t octet;
+ uint8_t coding_grp;
+ uint8_t character_set;
- octet = tvb_get_guint8(tvb,offset);
+ octet = tvb_get_uint8(tvb,offset);
coding_grp = octet >>4;
proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -999,9 +1001,9 @@ dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
void
dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- guint8 octet;
- guint8 na;
- guint8 np;
+ uint8_t octet;
+ uint8_t na;
+ uint8_t 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);
@@ -1010,7 +1012,7 @@ dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if(tvb_reported_length(tvb)==1)
return;
- octet = tvb_get_guint8(tvb,0);
+ octet = tvb_get_uint8(tvb,0);
/* nature of address indicator */
na = (octet & 0x70)>>4;
/* numbering plan indicator */
@@ -1024,16 +1026,16 @@ dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissect_e164_msisdn(tvb, tree, 1, tvb_reported_length(tvb)-1, E164_ENC_BCD);
break;
default:
- proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9);
+ proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
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);
+ dissect_e212_imsi(tvb, pinfo, tree, 1, tvb_reported_length(tvb)-1, false);
break;
default:
- proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9);
+ proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
break;
}
@@ -1042,7 +1044,7 @@ dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
#include "packet-gsm_map-fn.c"
/* Specific translation for MAP V3 */
-const value_string gsm_map_V1V2_opr_code_strings[] = {
+static const value_string gsm_map_V1V2_opr_code_strings[] = {
{ 44, "forwardSM" },
{ 45, "sendRoutingInfoForSM" },
{ 46, "forwardSM" },
@@ -1100,14 +1102,6 @@ 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"
@@ -1117,7 +1111,7 @@ static const true_false_string gsm_map_Ss_Status_a_values = {
* 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) {
+const char* gsm_map_opr_code(uint32_t val, proto_item *item) {
switch (val) {
case 44: /*mt-forwardSM*/
/* FALLTHRU */
@@ -1130,7 +1124,6 @@ const gchar* gsm_map_opr_code(guint32 val, proto_item *item) {
/* FALLTHRU */
default:
return val_to_str_ext_const(val, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, "Unknown GSM-MAP opcode");
- break;
}
}
@@ -1145,7 +1138,7 @@ typedef int (* dissect_function_t)( bool,
/*
* 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:
+ * For example, 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
@@ -1168,13 +1161,13 @@ static int dissect_mc_message(tvbuff_t *tvb,
bool implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_,
bool implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
{
- guint8 octet;
- gint8 bug_class;
+ uint8_t octet;
+ int8_t bug_class;
bool bug_pc, bug_ind_field;
- gint32 bug_tag;
- guint32 bug_len;
+ int32_t bug_tag;
+ uint32_t bug_len;
- octet = tvb_get_guint8(tvb,0);
+ octet = tvb_get_uint8(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
@@ -1206,179 +1199,178 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
switch(opcode){
case 2: /*updateLocation*/
- offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
+ 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*/
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_ch_SendRoutingInfoArg(false, tvb, offset, actx, tree, -1);
}else{
- offset = dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_ms_CancelVcsgLocationArg(false, tvb, offset, actx, tree, -1);
break;
case 37: /*reset*/
if (application_context_version == 1) {
- offset = dissect_gsm_old_ResetArgV1(FALSE, tvb, offset, actx, tree, -1);
+ offset = dissect_gsm_old_ResetArgV1(false, tvb, offset, actx, tree, -1);
} else {
- offset = dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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 */
+ 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 */
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(false, tvb, offset, actx, tree, -1);
break;
case 48: /*noteSubscriberPresent*/
- offset = dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imsi);
+ offset = dissect_gsm_map_IMSI(false, tvb, offset, actx, tree, hf_gsm_map_imsi);
break;
/* reserved alertServiceCentreWithoutResult (49)
* ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
@@ -1386,173 +1378,173 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
* -- version greater 1
*/
case 49:
- offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ case 72: /*ss-InvocationNotification*/
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_ms_NoteMM_EventArg(false, tvb, offset, actx, tree, -1);
break;
case 108: /*SS-protocol lcs-PeriodicTriggeredInvoke*/
- offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeArg(FALSE, tvb, offset, actx, tree, -1);
+ offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeArg(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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_ss_ForwardCUG_InfoArg(false, tvb, offset, actx, tree, -1);
break;
case 121: /*SS-protocol splitMPTY no Argument*/
break;
@@ -1563,12 +1555,12 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
case 124: /*SS-protocol buildMPTY no Argument*/
break;
case 125: /*SS-protocol forwardChargeAdvice*/
- offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1);
+ 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_new(map_prop_arg_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree, TRUE, actx->subtree.top_tree)){
+ if(!dissector_try_uint_new(map_prop_arg_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
tvb, offset, -1, "Unknown invokeData %d", opcode);
}
@@ -1584,268 +1576,268 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
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);
+ 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);
+ 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*/
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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*/
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_ss_USSD_Res(false, tvb, offset, actx, tree, -1);
break;
case 61: /*unstructuredSS-Notify*/
- /* TRUE ? */
+ /* 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);
+ offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(false, tvb, offset, actx, tree, -1);
break;
case 64: /*alertServiceCentre*/
- /* TRUE */
+ /* true */
break;
case 65: /*AnyTimeModification*/
- offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ case 72: /*ss-InvocationNotification*/
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_ms_NoteMM_EventRes(false, tvb, offset, actx, tree, -1);
break;
case 108: /*SS-protocol LCS-PeriodicTriggeredInvokeRes*/
- offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeRes(FALSE, tvb, offset, actx, tree, -1);
+ offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeRes(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);
+ 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);
+ offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(false, tvb, offset, actx, tree, -1);
break;
case 112: /*SS-protocol lcs-AreaEventCancellation*/
break;
@@ -1854,17 +1846,17 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_ss_RegisterCC_EntryRes(false, tvb, offset, actx, tree, -1);
break;
case 120: /*SS-protocol forwardCUG-Info*/
/* No RETURN RESULT*/
@@ -1883,7 +1875,7 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
break;
default:
- if(!dissector_try_uint_new(map_prop_res_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree, TRUE, actx->subtree.top_tree)){
+ if(!dissector_try_uint_new(map_prop_res_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
tvb, offset, -1, "Unknown returnResultData %d", opcode);
}
@@ -1899,158 +1891,158 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,
switch(errorCode){
case 1: /* UnknownSubscriberParam */
- offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(false, tvb, offset, actx, tree, -1);
break;
case 32: /* SM-DeliveryFailureCause */
offset = dissect_mc_message(tvb, offset, actx, tree,
- FALSE, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause, hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
- FALSE, dissect_gsm_map_er_SM_DeliveryFailureCause, -1,
- FALSE, NULL, -1);
+ false, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause, hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
+ false, dissect_gsm_map_er_SM_DeliveryFailureCause, -1,
+ false, NULL, -1);
break;
case 33: /* MessageWaitListFullParam */
- offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_gsm_map_er_InformationNotAvailableParam(false, tvb, offset, actx, tree, -1);
break;
default:
- if(!dissector_try_uint_new(map_prop_err_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree, TRUE, actx->subtree.top_tree)){
+ if(!dissector_try_uint_new(map_prop_err_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
tvb, offset, -1, "Unknown returnErrorData %d", opcode);
}
@@ -2064,254 +2056,254 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,
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);
+ 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);
+ return dissect_gsm_old_PlmnContainer(false, tvb, 0, &asn1_ctx, tree, -1);
}
static int dissect_gsm_map_ericsson_ext_ExtensionType(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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_map_ericsson_ExtensionType, NULL, "Ericsson Extension");
- return dissect_gsm_map_ericsson_ExtensionType(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ return dissect_gsm_map_ericsson_ExtensionType(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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
- return dissect_NokiaMAP_Extensions_NumberPorted(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ return dissect_NokiaMAP_Extensions_AnyTimeModArgExt(false, tvb, 0, &asn1_ctx, 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ return dissect_NokiaMAP_Extensions_DsdArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
}
static int
@@ -2321,28 +2313,26 @@ dissect_gsm_map_GSMMAPPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
char *version_ptr;
opcode = 0;
- if (pref_application_context_version == APPLICATON_CONTEXT_FROM_TRACE) {
+ application_context_version = pref_application_context_version;
+ if (pref_context_version_from_trace == true) {
gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
- application_context_version = 0;
if (gsm_map_priv && gsm_map_priv->tcap_private != NULL){
- if (gsm_map_priv->tcap_private->acv==TRUE ){
+ if (gsm_map_priv->tcap_private->acv==true ){
version_ptr = strrchr((const char*)gsm_map_priv->tcap_private->oid,'.');
if (version_ptr){
ws_strtoi32(version_ptr + 1, NULL, &application_context_version);
}
}
}
- }else{
- application_context_version = pref_application_context_version;
}
- gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
+ gsmmap_pdu_type = tvb_get_uint8(tvb, offset)&0x0f;
/* Get the length and add 2 */
- gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+ gsm_map_pdu_size = tvb_get_uint8(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_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);
@@ -2358,11 +2348,11 @@ dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void
proto_tree *tree=NULL;
/* Used for gsm_map TAP */
static gsm_map_tap_rec_t tap_rec;
- gint op_idx;
+ int op_idx;
asn1_ctx_t asn1_ctx;
gsm_map_private_info_t *gsm_map_priv;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
@@ -2376,11 +2366,11 @@ dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void
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);
+ dissect_gsm_map_GSMMAPPDU(false, tvb, 0, &asn1_ctx, tree, -1);
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.invoke = (gsmmap_pdu_type == 1) ? true : false;
tap_rec.opcode = opcode;
tap_rec.size = gsm_map_pdu_size;
@@ -2397,11 +2387,11 @@ dissect_gsm_map_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_tree *tree=NULL;
/* Used for gsm_map TAP */
static gsm_map_tap_rec_t tap_rec;
- gint op_idx;
+ int op_idx;
asn1_ctx_t asn1_ctx;
gsm_map_private_info_t *gsm_map_priv;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
@@ -2415,11 +2405,11 @@ dissect_gsm_map_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
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);
+ dissect_gsm_map_GSMMAPPDU(false, tvb, 0, &asn1_ctx, tree, -1);
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.invoke = (gsmmap_pdu_type == 1) ? true : false;
tap_rec.opcode = opcode;
tap_rec.size = gsm_map_pdu_size;
@@ -2726,10 +2716,10 @@ static stat_tap_table_item gsm_map_stat_fields[] = {
static void gsm_map_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "GSM MAP Operation Statistics";
- int num_fields = sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(gsm_map_stat_fields);
stat_tap_table* table;
- guint i;
- stat_tap_table_item_type items[sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item)];
+ unsigned i;
+ stat_tap_table_item_type items[array_length(gsm_map_stat_fields)];
memset(items, 0, sizeof(items));
@@ -2779,7 +2769,7 @@ gsm_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _
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;
+ unsigned invokes, fwd_bytes, results, rev_bytes;
table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0);
@@ -2832,7 +2822,7 @@ gsm_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _
static void
gsm_map_stat_reset(stat_tap_table* table)
{
- guint element;
+ unsigned element;
stat_tap_table_item_type* item_data;
for (element = 0; element < table->num_elements; element++)
@@ -2844,21 +2834,21 @@ gsm_map_stat_reset(stat_tap_table* table)
}
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)
+gsm_map_stat_free_table_item(stat_tap_table* table _U_, unsigned row _U_, unsigned 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, gpointer ptr _U_)
+static void range_delete_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
delete_itu_tcap_subdissector(ssn, map_handle);
}
}
-static void range_add_callback(guint32 ssn, gpointer ptr _U_)
+static void range_add_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
add_itu_tcap_subdissector(ssn, map_handle);
@@ -2867,11 +2857,11 @@ static void range_add_callback(guint32 ssn, gpointer ptr _U_)
void proto_reg_handoff_gsm_map(void) {
- static gboolean map_prefs_initialized = FALSE;
+ static bool map_prefs_initialized = false;
static range_t *ssn_range;
if (!map_prefs_initialized) {
- map_prefs_initialized = TRUE;
+ map_prefs_initialized = true;
ranap_handle = find_dissector_add_dependency("ranap", proto_gsm_map);
dtap_handle = find_dissector_add_dependency("gsm_a_dtap", proto_gsm_map);
gsm_sms_handle = find_dissector_add_dependency("gsm_sms", proto_gsm_map);
@@ -3046,11 +3036,11 @@ void proto_register_gsm_map(void) {
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,
+ FT_BOOLEAN, 8, TFS(&tfs_provisioned_not_provisioned), 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,
+ FT_BOOLEAN, 8, TFS(&tfs_registered_not_registered), 0x02,
NULL, HFILL }},
{ &hf_gsm_map_Ss_Status_a_bit,
{ "A bit", "gsm_map.ss_status_a_bit",
@@ -3120,23 +3110,23 @@ void proto_register_gsm_map(void) {
{ &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 }},
+ NULL, 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 }},
+ NULL, 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 }},
+ NULL, 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 }},
+ NULL, 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 }},
+ NULL, HFILL }},
{ &hf_gsm_map_GSNAddress_IPv4,
{ "GSN-Address IPv4", "gsm_map.gsnaddress_ipv4",
FT_IPv4, BASE_NONE, NULL, 0,
@@ -3333,7 +3323,7 @@ void proto_register_gsm_map(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_gsm_map,
&ett_gsm_map_InvokeId,
&ett_gsm_map_InvokePDU,
@@ -3380,7 +3370,6 @@ void proto_register_gsm_map(void) {
};
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},
@@ -3388,11 +3377,11 @@ void proto_register_gsm_map(void) {
};
static tap_param gsm_map_stat_params[] = {
- { PARAM_FILTER, "filter", "Filter", NULL, TRUE }
+ { PARAM_FILTER, "filter", "Filter", NULL, true }
};
static stat_tap_table_ui gsm_map_stat_table = {
- REGISTER_STAT_GROUP_TELEPHONY_GSM,
+ REGISTER_TELEPHONY_GROUP_GSM,
"MAP Operation",
"gsm_map",
"gsm_map,operation",
@@ -3401,8 +3390,8 @@ void proto_register_gsm_map(void) {
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,
+ array_length(gsm_map_stat_fields), gsm_map_stat_fields,
+ array_length(gsm_map_stat_params), gsm_map_stat_params,
NULL,
0
};
@@ -3444,10 +3433,19 @@ void proto_register_gsm_map(void) {
"TCAP Subsystem numbers used for GSM MAP",
&global_ssn_range, MAX_SSN);
+ prefs_register_bool_preference(gsm_map_module, "application.context.version.from.trace",
+ "Use application context from the trace",
+ "Use the application context version from the "
+ "lower level protocol (i.e., TCAP) transaction "
+ "if available",
+ &pref_context_version_from_trace);
+
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);
+ "Default application context version",
+ "The default application context version "
+ "when not using the version from the lower "
+ "layer transaction",
+ &pref_application_context_version, application_context_modes, 3);
prefs_register_bool_preference(gsm_map_module, "ericsson.proprietary.extensions",
"Dissect Ericsson proprietary extensions",
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h
index 0cebb20a..0ed9df77 100644
--- a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.h
@@ -18,9 +18,9 @@
#define GSM_MAP_MAX_NUM_OPR_CODES 256
typedef struct _gsm_map_tap_rec_t {
- gboolean invoke;
- guint32 opcode;
- guint16 size;
+ bool invoke;
+ uint32_t opcode;
+ uint16_t size;
} gsm_map_tap_rec_t;
@@ -38,7 +38,7 @@ 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);
+uint8_t dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, uint16_t offset);
void dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree);
typedef enum {
@@ -57,10 +57,10 @@ typedef enum {
/* structure accessible via p_get_proto_data(wmem_file_scope(), pinfo, proto_gsm_map, 0) */
typedef struct {
gsm_map_sm_rp_oa_id sm_rp_oa_id;
- const gchar *sm_rp_oa_str;
+ const char *sm_rp_oa_str;
gsm_map_sm_rp_da_id sm_rp_da_id;
- const gchar *sm_rp_da_str;
- guint32 tcap_src_tid;
+ const char *sm_rp_da_str;
+ uint32_t tcap_src_tid;
} gsm_map_packet_info_t;
#include "packet-gsm_map-exp.h"
diff --git a/epan/dissectors/asn1/h225/h225.cnf b/epan/dissectors/asn1/h225/h225.cnf
index 28a22f83..6bb7bf4c 100644
--- a/epan/dissectors/asn1/h225/h225.cnf
+++ b/epan/dissectors/asn1/h225/h225.cnf
@@ -260,14 +260,14 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#----------------------------------------------------------------------------------------
#.FN_BODY H323-UU-PDU/h323-message-body VAL_PTR = &message_body_val
- gint32 message_body_val;
+ int32_t message_body_val;
h225_packet_info* h225_pi;
- contains_faststart = FALSE;
+ contains_faststart = false;
call_id_guid = NULL;
%(DEFAULT_BODY)s
col_append_fstr(actx->pinfo->cinfo, COL_INFO, "CS: %%s ",
- val_to_str(message_body_val, T_h323_message_body_vals, "<unknown>"));
+ val_to_str_const(message_body_val, T_h323_message_body_vals, "<unknown>"));
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
@@ -281,7 +281,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
}
}
- if (contains_faststart == TRUE )
+ if (contains_faststart == true )
{
col_append_str(actx->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
}
@@ -307,19 +307,19 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
char temp[50];
snprintf(temp, 50, "%%s %%s", h225_pi->frame_label, codec_str);
(void) g_strlcpy(h225_pi->frame_label, temp, 50);
- h225_pi->is_faststart = TRUE;
+ h225_pi->is_faststart = true;
}
- contains_faststart = TRUE;
+ contains_faststart = true;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY RasMessage VAL_PTR = &rasmessage_value
- gint32 rasmessage_value;
+ int32_t rasmessage_value;
h225_packet_info* h225_pi;
call_id_guid = NULL;
%(DEFAULT_BODY)s
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RAS: %%s ",
- val_to_str(rasmessage_value, h225_RasMessage_vals, "<unknown>"));
+ val_to_str_const(rasmessage_value, h225_RasMessage_vals, "<unknown>"));
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
@@ -335,27 +335,27 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
- h225_pi->is_destinationInfo = TRUE;
+ h225_pi->is_destinationInfo = true;
}
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY DialedDigits VAL_PTR = &value_tvb
tvbuff_t *value_tvb = NULL;
- guint len = 0;
+ unsigned len = 0;
h225_packet_info* h225_pi;
%(DEFAULT_BODY)s
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
- if (h225_pi && h225_pi->is_destinationInfo == TRUE) {
+ 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);
+ tvb_memcpy(value_tvb, (uint8_t*)h225_pi->dialedDigits, 0, len);
}
h225_pi->dialedDigits[len] = '\0';
- h225_pi->is_destinationInfo = FALSE;
+ h225_pi->is_destinationInfo = false;
}
#.END
#----------------------------------------------------------------------------------------
@@ -415,7 +415,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
h225_pi->cs_type = H225_STATUS;
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -428,7 +428,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
h225_pi->cs_type = H225_INFORMATION;
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -443,10 +443,10 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi->cs_type = H225_PROGRESS;
if (contains_faststart) {
char temp[50];
- snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ snprintf(temp, 50, "%s OLC (%s)", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
(void) g_strlcpy(h225_pi->frame_label, temp, 50);
} else
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -459,7 +459,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
h225_pi->cs_type = H225_SETUP_ACK;
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -472,7 +472,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
h225_pi->cs_type = H225_FACILITY;
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -490,7 +490,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#----------------------------------------------------------------------------------------
#.FN_HDR Setup-UUIE
h225_packet_info* h225_pi;
- contains_faststart = FALSE;
+ contains_faststart = false;
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Setup-UUIE
@@ -500,10 +500,10 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi->cs_type = H225_SETUP;
if (contains_faststart) {
char temp[50];
- snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ snprintf(temp, 50, "%s OLC (%s)", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
(void) g_strlcpy(h225_pi->frame_label, temp, 50);
} else
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -518,10 +518,10 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi->cs_type = H225_CALL_PROCEDING;
if (contains_faststart) {
char temp[50];
- snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ snprintf(temp, 50, "%s OLC (%s)", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
(void) g_strlcpy(h225_pi->frame_label, temp, 50);
} else
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -536,10 +536,10 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi->cs_type = H225_ALERTING;
if (contains_faststart) {
char temp[50];
- snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ snprintf(temp, 50, "%s OLC (%s)", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
(void) g_strlcpy(h225_pi->frame_label, temp, 50);
} else
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -552,7 +552,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi != NULL) {
h225_pi->cs_type = H225_RELEASE_COMPLET;
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -567,10 +567,10 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi->cs_type = H225_CONNECT;
if (contains_faststart) {
char temp[50];
- snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
+ snprintf(temp, 50, "%s OLC (%s)", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
(void) g_strlcpy(h225_pi->frame_label, temp, 50);
} else
- snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
+ snprintf(h225_pi->frame_label, 50, "%s", val_to_str_const(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
}
#.END
#----------------------------------------------------------------------------------------
@@ -587,7 +587,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
if (h225_pi) {
- h225_pi->is_h245 = TRUE;
+ h225_pi->is_h245 = true;
h225_pi->h245_address = ipv4_address;
h225_pi->h245_port = ip_port;
}
@@ -612,7 +612,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY FacilityReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -623,7 +623,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY GatekeeperRejectReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -634,7 +634,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY UnregRequestReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -645,7 +645,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY UnregRejectReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -656,7 +656,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY BandRejectReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -667,7 +667,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY DisengageReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -677,7 +677,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
}
#----------------------------------------------------------------------------------------
#.FN_BODY DisengageRejectReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -688,7 +688,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY AdmissionRejectReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -699,7 +699,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY LocationRejectReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -710,7 +710,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY RegistrationRejectReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -721,7 +721,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY InfoRequestNakReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -732,7 +732,7 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY ReleaseCompleteReason VAL_PTR = &value
- gint32 value;
+ int32_t value;
h225_packet_info* h225_pi;
h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0);
@@ -802,7 +802,7 @@ NonStandardIdentifier/object FN_VARIANT = _str VAL_PTR = &nsiOID
#.END
#.FN_BODY NonStandardIdentifier VAL_PTR = &value
- gint32 value;
+ int32_t value;
nsiOID = "";
h221NonStandard = 0;
@@ -887,13 +887,13 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode
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_new(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, FALSE, actx);
+ dissector_try_string_new(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, false, actx);
}
actx->private_data = gefx; /* subdissector could overwrite it */
#.END
#.FN_BODY GenericIdentifier/standard VAL_PTR = &value_int
- guint32 value_int = (guint32)-1;
+ uint32_t value_int = (uint32_t)-1;
gef_ctx_t *gefx;
%(DEFAULT_BODY)s
@@ -902,7 +902,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode
#.END
#.FN_BODY GenericIdentifier/oid FN_VARIANT = _str VAL_PTR = &oid_str
- const gchar *oid_str = NULL;
+ const char *oid_str = NULL;
gef_ctx_t *gefx;
%(DEFAULT_BODY)s
@@ -932,7 +932,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode
#.FN_HDR TBCD-STRING
int min_len, max_len;
- gboolean has_extension;
+ bool has_extension;
get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
#.FN_PARS TBCD-STRING
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.c b/epan/dissectors/asn1/h225/packet-h225-template.c
index ab85ddbf..d84e68c0 100644
--- a/epan/dissectors/asn1/h225/packet-h225-template.c
+++ b/epan/dissectors/asn1/h225/packet-h225-template.c
@@ -32,6 +32,9 @@
#include <epan/tap.h>
#include <epan/stat_tap_ui.h>
#include <epan/rtd_table.h>
+#include <epan/tfs.h>
+#include <wsutil/array.h>
+
#include "packet-frame.h"
#include "packet-tpkt.h"
#include "packet-per.h"
@@ -56,25 +59,25 @@ static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
/* Item of ras request list*/
typedef struct _h225ras_call_t {
- guint32 requestSeqNum;
+ uint32_t requestSeqNum;
e_guid_t guid;
- guint32 req_num; /* frame number request seen */
- guint32 rsp_num; /* frame number response seen */
+ uint32_t req_num; /* frame number request seen */
+ uint32_t rsp_num; /* frame number response seen */
nstime_t req_time; /* arrival time of request */
- gboolean responded; /* true, if request has been responded */
+ bool 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;
+ unsigned reqSeqNum;
conversation_t *conversation;
} h225ras_call_info_key;
/* Global Memory Chunks for lists and Global hash tables*/
-static wmem_map_t *ras_calls[7] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL};
+static wmem_map_t *ras_calls[7];
/* functions, needed using ras-request and halfcall matching*/
static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category);
@@ -92,9 +95,9 @@ 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 h245_handle;
+static dissector_handle_t h245dg_handle;
+static dissector_handle_t h4501_handle;
static dissector_handle_t nsp_handle;
static dissector_handle_t tp_handle;
@@ -103,42 +106,42 @@ 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 h225_tap;
+static int proto_h225;
-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;
+static int hf_h221Manufacturer;
+static int hf_h225_ras_req_frame;
+static int hf_h225_ras_rsp_frame;
+static int hf_h225_ras_dup;
+static int hf_h225_ras_deltatime;
+static int hf_h225_debug_dissector_try_string;
#include "packet-h225-hf.c"
/* Initialize the subtree pointers */
-static gint ett_h225 = -1;
+static int ett_h225;
#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;
+static unsigned h225_tls_port = TLS_PORT_CS;
+static bool h225_reassembly = true;
+static bool h225_h245_in_tree = true;
+static bool h225_tp_in_tree = true;
/* Global variables */
-static guint32 ipv4_address;
+static uint32_t ipv4_address;
static ws_in6_addr ipv6_address;
static ws_in6_addr ipv6_address_zeros = {{0}};
-static guint32 ip_port;
-static gboolean contains_faststart = FALSE;
+static uint32_t ip_port;
+static bool contains_faststart;
static e_guid_t *call_id_guid;
/* NonStandardParameter */
static const char *nsiOID;
-static guint32 h221NonStandard;
-static guint32 t35CountryCode;
-static guint32 t35Extension;
-static guint32 manufacturerCode;
+static uint32_t h221NonStandard;
+static uint32_t t35CountryCode;
+static uint32_t t35Extension;
+static uint32_t manufacturerCode;
/* TunnelledProtocol */
static const char *tpOID;
@@ -243,7 +246,7 @@ void proto_reg_handoff_h225(void);
*/
/* compare 2 keys */
-static gint h225ras_call_equal(gconstpointer k1, gconstpointer k2)
+static int h225ras_call_equal(const void *k1, const void *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;
@@ -253,7 +256,7 @@ static gint h225ras_call_equal(gconstpointer k1, gconstpointer k2)
}
/* calculate a hash key */
-static guint h225ras_call_hash(gconstpointer k)
+static unsigned h225ras_call_hash(const void *k)
{
const h225ras_call_info_key* key = (const h225ras_call_info_key*) k;
@@ -286,7 +289,7 @@ h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packe
h225ras_call->req_num = pinfo->num;
h225ras_call->rsp_num = 0;
h225ras_call->requestSeqNum = h225ras_call_key->reqSeqNum;
- h225ras_call->responded = FALSE;
+ h225ras_call->responded = false;
h225ras_call->next_call = NULL;
h225ras_call->req_time=pinfo->abs_ts;
h225ras_call->guid=*guid;
@@ -309,7 +312,7 @@ h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pin
h225ras_call->req_num = pinfo->num;
h225ras_call->rsp_num = 0;
h225ras_call->requestSeqNum = prev_call->requestSeqNum;
- h225ras_call->responded = FALSE;
+ h225ras_call->responded = false;
h225ras_call->next_call = NULL;
h225ras_call->req_time=pinfo->abs_ts;
h225ras_call->guid=*guid;
@@ -367,7 +370,7 @@ 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;
+ uint32_t offset=0;
h225_packet_info* h225_pi;
/* Init struct for collecting h225_packet_info */
@@ -399,21 +402,21 @@ dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/* 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))
+#define RAS_MSG_TYPES array_length(h225_RasMessage_vals)
+#define CS_MSG_TYPES array_length(T_h323_message_body_vals)
+
+#define GRJ_REASONS array_length(GatekeeperRejectReason_vals)
+#define RRJ_REASONS array_length(RegistrationRejectReason_vals)
+#define URQ_REASONS array_length(UnregRequestReason_vals)
+#define URJ_REASONS array_length(UnregRejectReason_vals)
+#define ARJ_REASONS array_length(AdmissionRejectReason_vals)
+#define BRJ_REASONS array_length(BandRejectReason_vals)
+#define DRQ_REASONS array_length(DisengageReason_vals)
+#define DRJ_REASONS array_length(DisengageRejectReason_vals)
+#define LRJ_REASONS array_length(LocationRejectReason_vals)
+#define IRQNAK_REASONS array_length(InfoRequestNakReason_vals)
+#define REL_CMP_REASONS array_length(h225_ReleaseCompleteReason_vals)
+#define FACILITY_REASONS array_length(FacilityReason_vals)
/* TAP STAT INFO */
typedef enum
@@ -423,37 +426,37 @@ typedef enum
} h225_stat_columns;
typedef struct _h225_table_item {
- guint count; /* Message count */
- guint table_idx; /* stat_table index */
+ unsigned count; /* Message count */
+ unsigned 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 unsigned ras_msg_idx[RAS_MSG_TYPES];
+static unsigned 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 unsigned grj_reason_idx[GRJ_REASONS];
+static unsigned rrj_reason_idx[RRJ_REASONS];
+static unsigned urq_reason_idx[URQ_REASONS];
+static unsigned urj_reason_idx[URJ_REASONS];
+static unsigned arj_reason_idx[ARJ_REASONS];
+static unsigned brj_reason_idx[BRJ_REASONS];
+static unsigned drq_reason_idx[DRQ_REASONS];
+static unsigned drj_reason_idx[DRJ_REASONS];
+static unsigned lrj_reason_idx[LRJ_REASONS];
+static unsigned irqnak_reason_idx[IRQNAK_REASONS];
+static unsigned rel_cmp_reason_idx[REL_CMP_REASONS];
+static unsigned facility_reason_idx[FACILITY_REASONS];
-static guint other_idx;
+static unsigned other_idx;
static void h225_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "H.225 Messages and Message Reasons";
- int num_fields = sizeof(h225_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(h225_stat_fields);
stat_tap_table *table;
int row_idx = 0, msg_idx;
- stat_tap_table_item_type items[sizeof(h225_stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(h225_stat_fields)];
table = stat_tap_find_table(new_stat, table_name);
if (table) {
@@ -766,12 +769,12 @@ h225_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_,
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 = stat_tap_get_field_data(table, tag_idx, COUNT_COLUMN);;
+ stat_tap_table_item_type* msg_data = stat_tap_get_field_data(table, tag_idx, COUNT_COLUMN);
msg_data->value.uint_value++;
stat_tap_set_field_data(table, tag_idx, COUNT_COLUMN, msg_data);
if (reason_idx >= 0) {
- msg_data = stat_tap_get_field_data(table, reason_idx, COUNT_COLUMN);;
+ msg_data = stat_tap_get_field_data(table, reason_idx, COUNT_COLUMN);
msg_data->value.uint_value++;
stat_tap_set_field_data(table, reason_idx, COUNT_COLUMN, msg_data);
}
@@ -784,7 +787,7 @@ h225_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_,
static void
h225_stat_reset(stat_tap_table* table)
{
- guint element;
+ unsigned element;
stat_tap_table_item_type* item_data;
for (element = 0; element < table->num_elements; element++)
@@ -828,17 +831,17 @@ void proto_register_h225(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_h225,
#include "packet-h225-ettarr.c"
};
static tap_param h225_stat_params[] = {
- { PARAM_FILTER, "filter", "Filter", NULL, TRUE }
+ { PARAM_FILTER, "filter", "Filter", NULL, true }
};
static stat_tap_table_ui h225_stat_table = {
- REGISTER_STAT_GROUP_TELEPHONY,
+ REGISTER_TELEPHONY_GROUP_UNSORTED,
"H.225",
PFNAME,
"h225,counter",
@@ -847,8 +850,8 @@ void proto_register_h225(void) {
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,
+ array_length(h225_stat_fields), h225_stat_fields,
+ array_length(h225_stat_params), h225_stat_params,
NULL,
0
};
@@ -918,9 +921,9 @@ void proto_register_h225(void) {
void
proto_reg_handoff_h225(void)
{
- static gboolean h225_prefs_initialized = FALSE;
+ static bool h225_prefs_initialized = false;
static dissector_handle_t q931_tpkt_handle;
- static guint saved_h225_tls_port;
+ static unsigned saved_h225_tls_port;
if (!h225_prefs_initialized) {
dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RAS_RANGE, h225ras_handle);
@@ -929,7 +932,7 @@ proto_reg_handoff_h225(void)
h245dg_handle = find_dissector("h245dg");
h4501_handle = find_dissector_add_dependency("h4501", proto_h225);
data_handle = find_dissector("data");
- h225_prefs_initialized = TRUE;
+ h225_prefs_initialized = true;
q931_tpkt_handle = find_dissector("q931.tpkt");
} else {
ssl_dissector_delete(saved_h225_tls_port, q931_tpkt_handle);
@@ -986,7 +989,7 @@ static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
h225ras_call_info_key h225ras_call_key;
h225ras_call_t *h225ras_call = NULL;
nstime_t delta;
- guint msg_category;
+ unsigned 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 */
@@ -1032,7 +1035,7 @@ static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
} else {
/* No, so it's a duplicate request.
Mark it as such. */
- pi->is_duplicate = TRUE;
+ 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);
}
@@ -1102,7 +1105,7 @@ static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
if (h225ras_call->rsp_num != pinfo->num) {
/* No, so it's a duplicate response.
Mark it as such. */
- pi->is_duplicate = TRUE;
+ 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);
}
@@ -1110,8 +1113,8 @@ static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
if(h225ras_call->req_num != 0){
proto_item *ti;
- h225ras_call->responded = TRUE;
- pi->request_available = TRUE;
+ 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,
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.h b/epan/dissectors/asn1/h225/packet-h225-template.h
index 6a5501d6..049b8d86 100644
--- a/epan/dissectors/asn1/h225/packet-h225-template.h
+++ b/epan/dissectors/asn1/h225/packet-h225-template.h
@@ -38,22 +38,22 @@ typedef enum _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 */
+ int msg_tag; /* message tag*/
+ int reason; /* reason tag, if available */
+ unsigned 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 */
+ bool is_duplicate; /* true, if this is a repeated message */
+ bool 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 */
+ bool is_faststart; /* true, if faststart field is included */
+ bool is_h245;
+ bool is_h245Tunneling;
+ uint32_t h245_address;
+ uint16_t h245_port;
+ char dialedDigits[129]; /* Dialed Digits in the LRQ and LCF used for voip analysis */
+ bool is_destinationInfo;
+ char frame_label[50]; /* the Frame label used by graph_analysis, what is an abbreviation of cinfo */
} h225_packet_info;
/*
diff --git a/epan/dissectors/asn1/h235/packet-h235-template.c b/epan/dissectors/asn1/h235/packet-h235-template.c
index 4441bbb8..52f47afc 100644
--- a/epan/dissectors/asn1/h235/packet-h235-template.c
+++ b/epan/dissectors/asn1/h235/packet-h235-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-h235.h"
@@ -35,7 +36,7 @@ void proto_register_h235(void);
void proto_reg_handoff_h235(void);
/* Initialize the protocol and registered fields */
-static int proto_h235 = -1;
+static int proto_h235;
#include "packet-h235-hf.c"
/* Initialize the subtree pointers */
@@ -60,7 +61,7 @@ void proto_register_h235(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-h235-ettarr.c"
};
diff --git a/epan/dissectors/asn1/h245/h245.cnf b/epan/dissectors/asn1/h245/h245.cnf
index 1610861d..d4d7bf35 100644
--- a/epan/dissectors/asn1/h245/h245.cnf
+++ b/epan/dissectors/asn1/h245/h245.cnf
@@ -62,7 +62,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.FN_PARS MultiplexTableEntryNumber
VAL_PTR = &value
#.FN_BODY MultiplexTableEntryNumber
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
h223_mc = value & 0xf;
#.END
@@ -90,7 +90,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
VAL_PTR = &value
#.FN_BODY MultiplexElement/type/logicalChannelNumber
/*MultiplexElement/type/logicalChannelNumber*/
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
h223_me->sublist = NULL;
h223_me->vc = value & 0xffff;
@@ -113,20 +113,20 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.FN_PARS MultiplexElement/repeatCount/finite
VAL_PTR = &value
#.FN_BODY MultiplexElement/repeatCount/finite
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
h223_me->repeat_count = value & 0xffff;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY LogicalChannelNumber VAL_PTR = &value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
h245_lc_temp = value & 0xfff;
#.END
#=== OpenLogicalChannel =================================================================
#.FN_BODY OpenLogicalChannel
- gint32 temp;
+ int32_t temp;
upcoming_olc = (!actx->pinfo->fd->visited) ? wmem_new0(wmem_file_scope(), olc_info_t) : NULL;
@@ -215,10 +215,10 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#=== OpenLogicalChannelAck ==============================================================
#.FN_BODY OpenLogicalChannelAck
- guint32 temp;
+ uint32_t temp;
int p2p_dir;
h223_pending_olc *pend;
- const gchar *olc_key;
+ const char *olc_key;
olc_info_t *olc_req;
upcoming_olc = (!actx->pinfo->fd->visited) ? wmem_new0(actx->pinfo->pool, olc_info_t) : NULL;
@@ -320,7 +320,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.FN_PARS Al3/controlFieldOctets
VAL_PTR = &value
#.FN_BODY Al3/controlFieldOctets
- guint32 value;
+ uint32_t 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 ;
@@ -329,7 +329,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.FN_PARS Al3/sendBufferSize
VAL_PTR = &value
#.FN_BODY Al3/sendBufferSize
- guint32 value;
+ uint32_t 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;
@@ -353,7 +353,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.FN_PARS H223LogicalChannelParameters/segmentableFlag
VAL_PTR = &value
#.FN_BODY H223LogicalChannelParameters/segmentableFlag
- gboolean value;
+ bool value;
%(DEFAULT_BODY)s
if(h223_lc_params_temp)
h223_lc_params_temp->segmentable = value;
@@ -364,7 +364,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY RequestMessage VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_RequestMessage_vals, h245_RequestMessage_short_vals);
@@ -381,7 +381,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
if (strlen(h245_pi->frame_label) == 0)
{
- snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_RequestMessage_short_vals, "UKN"));
+ snprintf(h245_pi->frame_label, 50, "%%s", val_to_str_const(value, h245_RequestMessage_short_vals, "UKN"));
/* if it is OLC or RM*/
if ((codec_type != NULL) && (( value == RequestMessage_openLogicalChannel) || ( value == RequestMessage_requestMode)))
@@ -391,11 +391,11 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
(void) g_strlcat(h245_pi->frame_label, ")", 50);
}
}
- (void) g_strlcat(h245_pi->comment, val_to_str(value, h245_RequestMessage_vals, "<unknown>"), 50);
+ (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_RequestMessage_vals, "<unknown>"), 50);
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY ResponseMessage VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_ResponseMessage_vals, h245_ResponseMessage_short_vals);
@@ -404,15 +404,15 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
if (h245_pi != NULL){
/* Add to packet info */
if ( strlen(h245_pi->frame_label) == 0 ){
- snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_ResponseMessage_short_vals, "UKN"));
+ snprintf(h245_pi->frame_label, 50, "%%s", val_to_str_const(value, h245_ResponseMessage_short_vals, "UKN"));
}
- (void) g_strlcat(h245_pi->comment, val_to_str(value, h245_ResponseMessage_vals, "<unknown>"), 50);
+ (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_ResponseMessage_vals, "<unknown>"), 50);
}
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY IndicationMessage VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_IndicationMessage_vals, h245_IndicationMessage_short_vals);
@@ -421,16 +421,16 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
/* Add to packet info */
if (h245_pi !=NULL){
if ( strlen(h245_pi->frame_label) == 0 ){
- snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_IndicationMessage_short_vals, "UKN"));
+ snprintf(h245_pi->frame_label, 50, "%%s", val_to_str_const(value, h245_IndicationMessage_short_vals, "UKN"));
}
- (void) g_strlcat(h245_pi->comment, val_to_str(value, h245_IndicationMessage_vals, "<unknown>"), 50);
+ (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_IndicationMessage_vals, "<unknown>"), 50);
}
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY CommandMessage VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
print_info_column(%(ACTX)s->pinfo->cinfo, &value, h245_CommandMessage_vals, h245_CommandMessage_short_vals);
@@ -439,54 +439,54 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
/* Add to packet info */
if (h245_pi != NULL){
if ( strlen(h245_pi->frame_label) == 0 ){
- snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(value, h245_CommandMessage_short_vals, "UKN"));
+ snprintf(h245_pi->frame_label, 50, "%%s", val_to_str_const(value, h245_CommandMessage_short_vals, "UKN"));
}
- (void) g_strlcat(h245_pi->comment, val_to_str(value, h245_CommandMessage_vals, "<unknown>"), 50);
+ (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_CommandMessage_vals, "<unknown>"), 50);
}
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY AudioCapability VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
- codec_type = val_to_str(value, h245_AudioCapability_short_vals, "<unknown>");
+ codec_type = val_to_str_const(value, h245_AudioCapability_short_vals, "<unknown>");
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY VideoCapability VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
- codec_type = val_to_str(value, h245_VideoCapability_vals, "<unknown>");
+ codec_type = val_to_str_const(value, h245_VideoCapability_vals, "<unknown>");
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY Application VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
- codec_type = val_to_str(value, h245_Application_vals, "<unknown>");
+ codec_type = val_to_str_const(value, h245_Application_vals, "<unknown>");
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY AudioMode VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
- codec_type = val_to_str(value, h245_AudioMode_vals, "<unknown>");
+ codec_type = val_to_str_const(value, h245_AudioMode_vals, "<unknown>");
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY VideoMode VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
- codec_type = val_to_str(value, h245_VideoMode_vals, "<unknown>");
+ codec_type = val_to_str_const(value, h245_VideoMode_vals, "<unknown>");
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY DataMode/application VAL_PTR = &value
- gint32 value;
+ int32_t value;
%(DEFAULT_BODY)s
- codec_type = val_to_str(value, h245_DataModeApplication_vals, "<unknown>");
+ codec_type = val_to_str_const(value, h245_DataModeApplication_vals, "<unknown>");
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR MasterSlaveDeterminationAck
@@ -579,7 +579,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.END
#.FN_BODY GenericMessage/subMessageIdentifier VAL_PTR = &subMessageIdentifier
- guint32 subMessageIdentifier;
+ uint32_t subMessageIdentifier;
gef_ctx_t *gefx;
gefx = gef_ctx_get(actx->private_data);
@@ -599,8 +599,8 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
}
if (hf_index == hf_h245_subMessageIdentifier_standard)
{
- col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str(subMessageIdentifier, h245_h239subMessageIdentifier_vals, "<unknown>") );
- snprintf(h245_pi->frame_label, 50, "%%s", val_to_str(subMessageIdentifier, h245_h239subMessageIdentifier_vals, "<unknown>"));
+ col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str_const(subMessageIdentifier, h245_h239subMessageIdentifier_vals, "<unknown>") );
+ snprintf(h245_pi->frame_label, 50, "%%s", val_to_str_const(subMessageIdentifier, h245_h239subMessageIdentifier_vals, "<unknown>"));
}
#.END
@@ -690,7 +690,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.END
#.FN_BODY CapabilityIdentifier/standard FN_VARIANT = _str VAL_PTR = &standard_oid_str
- const gchar *standard_oid_str = NULL;
+ const char *standard_oid_str = NULL;
gef_ctx_t *gefx;
%(DEFAULT_BODY)s
@@ -699,7 +699,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
if(strcmp(standard_oid_str,"0.0.8.235.0.3.76") == 0) { /* MIKEY */
if (upcoming_channel)
- upcoming_channel->srtp_flag = TRUE;
+ upcoming_channel->srtp_flag = true;
}
if(!h245_lc_dissector && strcmp(standard_oid_str,"0.0.8.245.1.1.1") == 0)
@@ -715,13 +715,13 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
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_new(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, FALSE, actx);
+ dissector_try_string_new(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, false, actx);
}
actx->private_data = gefx; /* subdissector could overwrite it */
#.END
#.FN_BODY ParameterIdentifier/standard VAL_PTR = &value_int
- guint32 value_int = (guint32)-1;
+ uint32_t value_int = (uint32_t)-1;
gef_ctx_t *gefx;
%(DEFAULT_BODY)s
@@ -730,8 +730,8 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY ParameterValue/booleanArray VAL_PTR = &value
- guint32 value;
- guint8 *buf;
+ uint32_t value;
+ uint8_t *buf;
tvbuff_t *value_tvb;
gef_ctx_t *gefx;
proto_item* ti;
@@ -739,18 +739,18 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
%(DEFAULT_BODY)s
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
- buf = wmem_new(actx->pinfo->pool, guint8);
+ buf = wmem_new(actx->pinfo->pool, uint8_t);
buf[0] = value;
- value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint8), sizeof(guint8));
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint8_t), sizeof(uint8_t));
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_new(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, FALSE, %(ACTX)s);
+ dissector_try_string_new(gef_content_dissector_table, gefx->key, value_tvb, %(ACTX)s->pinfo, %(TREE)s, false, %(ACTX)s);
}
#.END
#.FN_BODY ParameterValue/unsignedMin VAL_PTR = &value
- guint32 value;
- guint8 *buf;
+ uint32_t value;
+ uint8_t *buf;
tvbuff_t *value_tvb;
gef_ctx_t *gefx;
proto_item* ti;
@@ -758,9 +758,9 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
%(DEFAULT_BODY)s
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
- buf = (guint8 *)wmem_new(actx->pinfo->pool, guint16);
+ buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint16_t);
phton16(buf, value);
- value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint16), sizeof(guint16));
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint16_t), sizeof(uint16_t));
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");
@@ -768,8 +768,8 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
}
#.END
#.FN_BODY ParameterValue/unsignedMax VAL_PTR = &value
- guint32 value;
- guint8 *buf;
+ uint32_t value;
+ uint8_t *buf;
tvbuff_t *value_tvb;
gef_ctx_t *gefx;
proto_item* ti;
@@ -777,9 +777,9 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
%(DEFAULT_BODY)s
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
- buf = (guint8 *)wmem_new(actx->pinfo->pool, guint16);
+ buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint16_t);
phton16(buf, value);
- value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint16), sizeof(guint16));
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint16_t), sizeof(uint16_t));
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");
@@ -787,8 +787,8 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
}
#.END
#.FN_BODY ParameterValue/unsigned32Min VAL_PTR = &value
- guint32 value;
- guint8 *buf;
+ uint32_t value;
+ uint8_t *buf;
tvbuff_t *value_tvb;
gef_ctx_t *gefx;
proto_item* ti;
@@ -796,9 +796,9 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
%(DEFAULT_BODY)s
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
- buf = (guint8 *)wmem_new(actx->pinfo->pool, guint32);
+ buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint32_t);
phton32(buf, value);
- value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint32), sizeof(guint32));
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint32_t), sizeof(uint32_t));
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");
@@ -806,8 +806,8 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
}
#.END
#.FN_BODY ParameterValue/unsigned32Max VAL_PTR = &value
- guint32 value;
- guint8 *buf;
+ uint32_t value;
+ uint8_t *buf;
tvbuff_t *value_tvb;
gef_ctx_t *gefx;
proto_item* ti;
@@ -815,9 +815,9 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
%(DEFAULT_BODY)s
gefx = gef_ctx_get(actx->private_data);
if (gefx) {
- buf = (guint8 *)wmem_new(actx->pinfo->pool, guint32);
+ buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint32_t);
phton32(buf, value);
- value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(guint32), sizeof(guint32));
+ value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint32_t), sizeof(uint32_t));
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");
@@ -853,7 +853,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY UnicastAddress/iPAddress/tsapIdentifier VAL_PTR = &tsapIdentifier
- guint32 tsapIdentifier;
+ uint32_t tsapIdentifier;
%(DEFAULT_BODY)s
@@ -874,7 +874,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY UnicastAddress/iP6Address/tsapIdentifier VAL_PTR = &tsapIdentifier
- guint32 tsapIdentifier;
+ uint32_t tsapIdentifier;
%(DEFAULT_BODY)s
@@ -944,7 +944,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
NonStandardIdentifier/object FN_VARIANT = _str VAL_PTR = &nsiOID
#.END
#.FN_BODY NonStandardIdentifier VAL_PTR = &value
- gint32 value;
+ int32_t value;
nsiOID = "";
h221NonStandard = 0;
@@ -1004,15 +1004,15 @@ NonStandardIdentifier/h221NonStandard/manufacturerCode VAL_PTR = &manufacturerC
}
#.FN_BODY DataType VAL_PTR = &choice_index
-gint choice_index;
+int choice_index;
%(DEFAULT_BODY)s
if (upcoming_channel){
if (choice_index==2){
- upcoming_channel->is_video=TRUE;
+ upcoming_channel->is_video=true;
}else{
- upcoming_channel->is_video=FALSE;
+ upcoming_channel->is_video=false;
}
}
diff --git a/epan/dissectors/asn1/h245/packet-h245-template.c b/epan/dissectors/asn1/h245/packet-h245-template.c
index 7950ca14..41d15b32 100644
--- a/epan/dissectors/asn1/h245/packet-h245-template.c
+++ b/epan/dissectors/asn1/h245/packet-h245-template.c
@@ -31,6 +31,7 @@
#include <epan/proto_data.h>
#include <epan/tap.h>
#include <wsutil/pint.h>
+#include <wsutil/array.h>
#include "packet-tpkt.h"
#include "packet-per.h"
#include "packet-h323.h"
@@ -46,7 +47,7 @@
void proto_register_h245(void);
void proto_reg_handoff_h245(void);
-static dissector_handle_t rtcp_handle=NULL;
+static dissector_handle_t rtcp_handle;
static dissector_table_t nsp_object_dissector_table;
static dissector_table_t nsp_h221_dissector_table;
static dissector_table_t gef_name_dissector_table;
@@ -55,22 +56,22 @@ static dissector_handle_t h245_handle;
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 dissector_handle_t h263_handle;
+static dissector_handle_t amr_handle;
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;
+static int hf_h245_pdu_type;
+static int hf_h245Manufacturer;
+static int hf_h245_subMessageIdentifier_standard;
+static int h245_tap;
+static int h245dg_tap;
+static int hf_h245_debug_dissector_try_string;
h245_packet_info *h245_pi=NULL;
-static gboolean h245_reassembly = TRUE;
-static gboolean h245_shorttypes = FALSE;
-static gboolean info_col_fmt_prepend = FALSE;
+static bool h245_reassembly = true;
+static bool h245_shorttypes;
+static bool info_col_fmt_prepend;
#include "packet-h245-val.h"
@@ -196,42 +197,42 @@ static const value_string h245_AudioCapability_short_vals[] = {
/* To put the codec type only in COL_INFO when
an OLC is read */
-const char* codec_type = NULL;
-static guint32 rfc_number;
+const char* codec_type;
+static uint32_t rfc_number;
typedef struct _unicast_addr_t {
address addr;
- guint8 addr_buf[16];
- guint32 port;
+ uint8_t addr_buf[16];
+ uint32_t port;
} unicast_addr_t;
typedef struct _channel_info_t {
- gchar data_type_str[32];
+ char 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;
+ bool srtp_flag;
+ bool is_video;
} channel_info_t;
typedef struct _olc_info_t {
- guint16 fwd_lc_num;
+ uint16_t fwd_lc_num;
channel_info_t fwd_lc;
channel_info_t rev_lc;
} olc_info_t;
-static wmem_map_t* h245_pending_olc_reqs = NULL;
-static gboolean fast_start = FALSE;
-static olc_info_t *upcoming_olc = NULL;
-static channel_info_t *upcoming_channel = NULL;
+static wmem_map_t* h245_pending_olc_reqs;
+static bool fast_start;
+static olc_info_t *upcoming_olc;
+static channel_info_t *upcoming_channel;
/* NonStandardParameter */
static const char *nsiOID;
-static guint32 h221NonStandard;
-static guint32 t35CountryCode;
-static guint32 t35Extension;
-static guint32 manufacturerCode;
+static uint32_t h221NonStandard;
+static uint32_t t35CountryCode;
+static uint32_t t35Extension;
+static uint32_t manufacturerCode;
static const value_string h245_RFC_number_vals[] = {
{ 2190, "RFC 2190 - H.263 Video Streams" },
@@ -256,9 +257,9 @@ static const value_string h245_h239subMessageIdentifier_vals[] = {
/* h223 multiplex codes */
-static h223_set_mc_handle_t h223_set_mc_handle = NULL;
+static h223_set_mc_handle_t h223_set_mc_handle;
h223_mux_element *h223_me=NULL;
-guint8 h223_mc=0;
+uint8_t h223_mc=0;
void h245_set_h223_set_mc_handle( h223_set_mc_handle_t handle )
{
h223_set_mc_handle = handle;
@@ -270,15 +271,15 @@ typedef struct {
h223_lc_params *rev_channel_params;
} h223_pending_olc;
-static wmem_map_t* h223_pending_olc_reqs[] = { NULL, NULL };
+static wmem_map_t* h223_pending_olc_reqs[2];
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 uint16_t h245_lc_temp;
+static uint16_t h223_fw_lc_num;
+static uint16_t 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 h223_add_lc_handle_t h223_add_lc_handle;
static void h223_lc_init( void )
{
@@ -292,7 +293,7 @@ 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, wmem_allocator_t *scope)
+static const char *gen_olc_key(uint16_t lc_num, address *dst_addr, address *src_addr, wmem_allocator_t *scope)
{
return wmem_strdup_printf(scope, "%s/%s/%u",
address_to_str(scope, dst_addr),
@@ -352,18 +353,18 @@ static void h245_setup_channels(packet_info *pinfo, channel_info_t *upcoming_cha
/* 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,
+static void print_info_column(column_info *cinfo, const int32_t *value,
const value_string *msg_vals, const value_string *short_msg_vals)
{
const value_string *vals;
- if (h245_shorttypes == FALSE || short_msg_vals == NULL) {
+ if (h245_shorttypes == false || short_msg_vals == NULL) {
vals = msg_vals;
} else {
vals = short_msg_vals;
}
- if (info_col_fmt_prepend == FALSE) {
+ if (info_col_fmt_prepend == false) {
col_append_fstr(cinfo, COL_INFO, "%s ", val_to_str_const(*value, vals, "<unknown>"));
} else {
col_prepend_fstr(cinfo, COL_INFO, "%s ", val_to_str_const(*value, vals, "<unknown>"));
@@ -371,12 +372,12 @@ static void print_info_column(column_info *cinfo, const gint32 *value,
}
/* Initialize the protocol and registered fields */
-static int proto_h245 = -1;
+static int proto_h245;
#include "packet-h245-hf.c"
/* Initialize the subtree pointers */
-static int ett_h245 = -1;
-static int ett_h245_returnedFunction = -1;
+static int ett_h245;
+static int ett_h245_returnedFunction;
#include "packet-h245-ett.c"
/* Forward declarations */
@@ -405,10 +406,10 @@ dissect_h245_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
{
proto_item *it;
proto_tree *tr;
- guint32 offset=0;
+ uint32_t offset=0;
asn1_ctx_t asn1_ctx;
- fast_start = FALSE;
+ fast_start = false;
/* Clean up from any previous packet dissection */
upcoming_olc = NULL;
upcoming_channel = NULL;
@@ -424,7 +425,7 @@ dissect_h245_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
CLEANUP_PUSH(reset_h245_pi, NULL);
h245_pi=wmem_new(pinfo->pool, h245_packet_info);
init_h245_packet_info(h245_pi);
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ 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;
@@ -436,7 +437,7 @@ dissect_h245_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
void
dissect_h245_FastStart_OLC(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, char *codec_str) {
- fast_start = TRUE;
+ fast_start = true;
/* Clean up from any previous packet dissection */
upcoming_olc = NULL;
upcoming_channel = NULL;
@@ -476,7 +477,7 @@ void proto_register_h245(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_h245,
&ett_h245_returnedFunction,
#include "packet-h245-ettarr.c"
diff --git a/epan/dissectors/asn1/h245/packet-h245-template.h b/epan/dissectors/asn1/h245/packet-h245-template.h
index 9edd1159..3193c783 100644
--- a/epan/dissectors/asn1/h245/packet-h245-template.h
+++ b/epan/dissectors/asn1/h245/packet-h245-template.h
@@ -34,8 +34,8 @@ typedef enum _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 */
+ char frame_label[50]; /* the Frame label used by graph_analysis, what is an abbreviation of cinfo */
+ char comment[50]; /* the Frame Comment used by graph_analysis, what is a message desc */
} h245_packet_info;
/*
@@ -57,14 +57,14 @@ typedef enum {
} h223_al_type;
typedef struct {
- guint8 control_field_octets;
- guint32 send_buffer_size;
+ uint8_t control_field_octets;
+ uint32_t send_buffer_size;
} h223_al3_params;
typedef struct {
h223_al_type al_type;
- gpointer al_params;
- gboolean segmentable;
+ void *al_params;
+ bool segmentable;
dissector_handle_t subdissector;
} h223_lc_params;
@@ -86,7 +86,7 @@ typedef enum {
typedef struct {
h245_lc_data_type_enum data_type;
- gpointer params;
+ void * params;
} h245_lc_data_type;
/*
@@ -96,18 +96,18 @@ typedef struct {
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 */
+ uint16_t vc;
+ uint16_t repeat_count; /* 0 == untilClosingFlag */
h223_mux_element* next;
};
#include <epan/packet_info.h>
#include "packet-per.h"
-typedef void (*h223_set_mc_handle_t) ( packet_info* pinfo, guint8 mc, h223_mux_element* me);
+typedef void (*h223_set_mc_handle_t) ( packet_info* pinfo, uint8_t mc, h223_mux_element* me);
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);
+typedef void (*h223_add_lc_handle_t) ( packet_info* pinfo, uint16_t lc, h223_lc_params* params);
WS_DLL_PUBLIC void h245_set_h223_add_lc_handle( h223_add_lc_handle_t handle );
#include "packet-h245-exp.h"
diff --git a/epan/dissectors/asn1/h248/h248.cnf b/epan/dissectors/asn1/h248/h248.cnf
index de117b7a..f4224298 100644
--- a/epan/dissectors/asn1/h248/h248.cnf
+++ b/epan/dissectors/asn1/h248/h248.cnf
@@ -119,32 +119,32 @@ SigParameterV1/value ABBREV=sig_param_value
#.END
#.FN_BODY TransactionRequest/transactionId
- guint32 trx_id = 0;
+ uint32_t 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, actx->pinfo, keep_persistent_data);
error_code = 0;
#.END
#.FN_BODY TransactionPending/transactionId
- guint32 trx_id = 0;
+ uint32_t 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, actx->pinfo, keep_persistent_data);
error_code = 0;
#.FN_BODY TransactionReply/transactionId
- guint32 trx_id = 0;
+ uint32_t 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, actx->pinfo, keep_persistent_data);
error_code = 0;
#.FN_BODY SegmentReply/transactionId
- guint32 trx_id = 0;
+ uint32_t 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, actx->pinfo, keep_persistent_data);
error_code = 0;
#.FN_BODY ActionRequest/contextId
- guint32 ctx_id = 0;
+ uint32_t 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,actx->pinfo,keep_persistent_data);
curr_info.cmd = NULL;
@@ -332,9 +332,9 @@ SigParameterV1/value ABBREV=sig_param_value
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;
+ wild_term = tvb_get_uint8(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);
+ wild_card = tvb_get_uint8(new_tvb,0);
#.END
@@ -357,7 +357,7 @@ SigParameterV1/value ABBREV=sig_param_value
}
if (curr_info.term->len) {
- curr_info.term->buffer = (guint8 *)tvb_memdup(actx->pinfo->pool,new_tvb,0,curr_info.term->len);
+ curr_info.term->buffer = (uint8_t *)tvb_memdup(actx->pinfo->pool,new_tvb,0,curr_info.term->len);
if(term_info.str){
curr_info.term->str = wmem_strdup_printf(actx->pinfo->pool, "%s %s",
bytes_to_str_punct(actx->pinfo->pool,curr_info.term->buffer,curr_info.term->len, 0),
@@ -372,7 +372,7 @@ SigParameterV1/value ABBREV=sig_param_value
} else {
curr_info.term->len = 0;
- curr_info.term->buffer = (guint8*)wmem_strdup(actx->pinfo->pool, "");
+ curr_info.term->buffer = (uint8_t*)wmem_strdup(actx->pinfo->pool, "");
curr_info.term->str = wmem_strdup(actx->pinfo->pool, "?");
}
#.END
@@ -384,7 +384,7 @@ SigParameterV1/value ABBREV=sig_param_value
if (!parameter_tvb)
return offset;
- dissect_h248_ServiceChangeReasonStr(FALSE, parameter_tvb, 0, actx, tree, hf_h248_serviceChangeReasonStr);
+ dissect_h248_ServiceChangeReasonStr(false, parameter_tvb, 0, actx, tree, hf_h248_serviceChangeReasonStr);
#.END
#.FN_BODY EventParameter
diff --git a/epan/dissectors/asn1/h248/packet-h248-template.c b/epan/dissectors/asn1/h248/packet-h248-template.c
index f4397124..e7df524a 100644
--- a/epan/dissectors/asn1/h248/packet-h248-template.c
+++ b/epan/dissectors/asn1/h248/packet-h248-template.c
@@ -22,6 +22,7 @@
#include <epan/prefs.h>
#include <epan/exported_pdu.h>
#include <epan/address_types.h>
+#include <wsutil/array.h>
#include "packet-alcap.h"
#include "packet-ber.h"
#include "packet-tpkt.h"
@@ -35,63 +36,63 @@
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;
+static int proto_h248;
+static int hf_248_magic_num;
+static int hf_h248_mtpaddress_ni;
+static int hf_h248_mtpaddress_pc;
+static int hf_h248_pkg_name;
+static int hf_248_pkg_param;
+static int hf_h248_event_name;
+static int hf_h248_signal_name;
+static int hf_h248_signal_code;
+static int hf_h248_event_code;
+static int hf_h248_pkg_bcp_BNCChar_PDU;
+
+
+
+static int hf_h248_context_id;
+static int hf_h248_term_wild_type;
+static int hf_h248_term_wild_level;
+static int hf_h248_term_wild_position;
+
+static int hf_h248_no_pkg;
+static int hf_h248_no_sig;
+static int hf_h248_no_evt;
+static int hf_h248_param;
+
+static int hf_h248_serviceChangeReasonStr;
+static int hf_h248_transactionId64;
+static int hf_h248_context_id64;
/* h248v1 support */
-static int hf_h248_auditValueReplyV1 = -1;
+static int hf_h248_auditValueReplyV1;
#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 int ett_h248;
+static int ett_mtpaddress;
+static int ett_packagename;
+static int ett_codec;
+static int ett_wildcard;
-static gint ett_h248_no_pkg = -1;
-static gint ett_h248_no_sig = -1;
-static gint ett_h248_no_evt = -1;
+static int ett_h248_no_pkg;
+static int ett_h248_no_sig;
+static int ett_h248_no_evt;
-static int h248_tap = -1;
+static int h248_tap;
-static gcp_hf_ett_t h248_arrel = {{-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1}};
+static gcp_hf_ett_t h248_arrel;
-static gint exported_pdu_tap = -1;
+static int exported_pdu_tap = -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 expert_field ei_h248_errored_command;
+static expert_field ei_h248_transactionId64;
+static expert_field ei_h248_context_id64;
+static expert_field ei_h248_octet_string_expected;
static dissector_table_t subdissector_table;
@@ -132,15 +133,15 @@ const value_string gcp_term_types[] = {
{ 0, NULL }
};
-static wmem_tree_t* gcp_msgs = NULL;
-static wmem_tree_t* gcp_trxs = NULL;
-static wmem_tree_t* gcp_ctxs_by_trx = NULL;
-static wmem_tree_t* gcp_ctxs = NULL;
+static wmem_tree_t* gcp_msgs;
+static wmem_tree_t* gcp_trxs;
+static wmem_tree_t* gcp_ctxs_by_trx;
+static wmem_tree_t* gcp_ctxs;
-gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) {
+gcp_msg_t* gcp_msg(packet_info* pinfo, int o, bool keep_persistent_data) {
gcp_msg_t* m;
- guint32 framenum = (guint32)pinfo->num;
- guint32 offset = (guint32)o;
+ uint32_t framenum = (uint32_t)pinfo->num;
+ uint32_t offset = (uint32_t)o;
address* src = &(pinfo->src);
address* dst = &(pinfo->dst);
address* lo_addr;
@@ -157,14 +158,14 @@ gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) {
key[2].key =NULL;
if (( m = (gcp_msg_t *)wmem_tree_lookup32_array(gcp_msgs,key) )) {
- m->committed = TRUE;
+ m->committed = true;
return m;
} else {
m = wmem_new(wmem_file_scope(), gcp_msg_t);
m->framenum = framenum;
m->frametime = pinfo->abs_ts;
m->trxs = NULL;
- m->committed = FALSE;
+ m->committed = false;
wmem_tree_insert32_array(gcp_msgs,key,m);
}
@@ -172,7 +173,7 @@ gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) {
m = wmem_new0(pinfo->pool, gcp_msg_t);
m->framenum = framenum;
m->trxs = NULL;
- m->committed = FALSE;
+ m->committed = false;
}
if (cmp_address(src, dst) < 0) {
@@ -189,8 +190,8 @@ gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) {
m->hi_addr = 0;
break;
case AT_IPv4:
- memcpy((guint8*)&(m->hi_addr),hi_addr->data,4);
- memcpy((guint8*)&(m->lo_addr),lo_addr->data,4);
+ memcpy((uint8_t*)&(m->hi_addr),hi_addr->data,4);
+ memcpy((uint8_t*)&(m->lo_addr),lo_addr->data,4);
break;
default:
if (lo_addr->type == ss7pc_address_type) {
@@ -208,7 +209,7 @@ gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) {
return m;
}
-gcp_trx_t* gcp_trx(gcp_msg_t* m ,guint32 t_id , gcp_trx_type_t type, packet_info *pinfo, gboolean keep_persistent_data) {
+gcp_trx_t* gcp_trx(gcp_msg_t* m ,uint32_t t_id , gcp_trx_type_t type, packet_info *pinfo, bool keep_persistent_data) {
gcp_trx_t* t = NULL;
gcp_trx_msg_t* trxmsg;
@@ -287,7 +288,7 @@ gcp_trx_t* gcp_trx(gcp_msg_t* m ,guint32 t_id , gcp_trx_type_t type, packet_info
}
-gcp_ctx_t* gcp_ctx(gcp_msg_t* m, gcp_trx_t* t, guint32 c_id, packet_info *pinfo, gboolean persistent) {
+gcp_ctx_t* gcp_ctx(gcp_msg_t* m, gcp_trx_t* t, uint32_t c_id, packet_info *pinfo, bool persistent) {
gcp_ctx_t* context = NULL;
gcp_ctx_t** context_p = NULL;
@@ -397,7 +398,7 @@ gcp_ctx_t* gcp_ctx(gcp_msg_t* m, gcp_trx_t* t, guint32 c_id, packet_info *pinfo,
return context;
}
-gcp_cmd_t* gcp_cmd(gcp_msg_t* m, gcp_trx_t* t, gcp_ctx_t* c, gcp_cmd_type_t type, guint offset, packet_info *pinfo, gboolean persistent) {
+gcp_cmd_t* gcp_cmd(gcp_msg_t* m, gcp_trx_t* t, gcp_ctx_t* c, gcp_cmd_type_t type, unsigned offset, packet_info *pinfo, bool persistent) {
gcp_cmd_t* cmd;
gcp_cmd_msg_t* cmdtrx;
gcp_cmd_msg_t* cmdctx;
@@ -466,11 +467,11 @@ gcp_cmd_t* gcp_cmd(gcp_msg_t* m, gcp_trx_t* t, gcp_ctx_t* c, gcp_cmd_type_t type
return cmd;
}
-gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term_t* t, gcp_wildcard_t wildcard, packet_info *pinfo, gboolean persistent) {
+gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term_t* t, gcp_wildcard_t wildcard, packet_info *pinfo, bool persistent) {
gcp_terms_t* ct;
gcp_terms_t* ct2;
- static gcp_term_t all_terms = {"$",(const guint8*)"",1,GCP_TERM_TYPE_UNKNOWN,NULL,NULL,NULL};
+ static gcp_term_t all_terms = {"$",(const uint8_t*)"",1,GCP_TERM_TYPE_UNKNOWN,NULL,NULL,NULL};
if ( !c ) return NULL;
@@ -482,7 +483,7 @@ gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term
if ( c->msg->committed ) {
if (wildcard == GCP_WILDCARD_ALL) {
for (ct = c->ctx->terms.next; ct; ct = ct->next) {
- /* XXX not handling more wilcards in one msg */
+ /* XXX not handling more wildcards in one msg */
if ( ct->term->start == m ) {
return ct->term;
}
@@ -527,10 +528,10 @@ gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term
return ct->term;
} else {
for (ct = c->ctx->terms.next; ct; ct = ct->next) {
- /* XXX not handling more wilcards in one msg */
+ /* XXX not handling more wildcards in one msg */
if ( ct->term->buffer == NULL && tr->cmds->cmd->msg == ct->term->start ) {
ct->term->str = wmem_strdup(wmem_file_scope(), t->str);
- ct->term->buffer = (const guint8 *)wmem_memdup(wmem_file_scope(), t->buffer,t->len);
+ ct->term->buffer = (const uint8_t *)wmem_memdup(wmem_file_scope(), t->buffer,t->len);
ct->term->len = t->len;
ct2 = wmem_new0(wmem_file_scope(), gcp_terms_t);
@@ -557,7 +558,7 @@ gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term
ct->term->start = m;
ct->term->str = wmem_strdup(wmem_file_scope(), t->str);
- ct->term->buffer = (const guint8 *)wmem_memdup(wmem_file_scope(), t->buffer,t->len);
+ ct->term->buffer = (const uint8_t *)wmem_memdup(wmem_file_scope(), t->buffer,t->len);
ct->term->len = t->len;
ct2 = wmem_new0(wmem_file_scope(), gcp_terms_t);
@@ -593,8 +594,8 @@ gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term
}
-static const gchar* gcp_cmd_to_str(gcp_cmd_t* c, wmem_allocator_t *scope, gboolean persistent) {
- const gchar* s;
+static const char* gcp_cmd_to_str(gcp_cmd_t* c, wmem_allocator_t *scope, bool persistent) {
+ const char* s;
gcp_terms_t* term;
if ( !c ) return "-";
@@ -690,7 +691,7 @@ static const gchar* gcp_cmd_to_str(gcp_cmd_t* c, wmem_allocator_t *scope, gboole
return s;
}
-static const gchar * gcp_trx_to_str(gcp_msg_t* m, gcp_trx_t* t, wmem_allocator_t *scope, gboolean persistent) {
+static const char * gcp_trx_to_str(gcp_msg_t* m, gcp_trx_t* t, wmem_allocator_t *scope, bool persistent) {
wmem_strbuf_t *s;
gcp_cmd_msg_t* c;
@@ -723,7 +724,7 @@ static const gchar * gcp_trx_to_str(gcp_msg_t* m, gcp_trx_t* t, wmem_allocator_t
return wmem_strbuf_finalize(s);
}
-const gchar* gcp_msg_to_str(gcp_msg_t* m, wmem_allocator_t *scope, gboolean persistent) {
+const char* gcp_msg_to_str(gcp_msg_t* m, wmem_allocator_t *scope, bool persistent) {
gcp_trx_msg_t* t;
wmem_strbuf_t *s;
@@ -743,7 +744,7 @@ typedef struct _gcp_ctxs_t {
struct _gcp_ctxs_t* next;
} gcp_ctxs_t;
-/*static const gchar* trx_types[] = {"None","Req","Reply","Pending","Ack"};*/
+/*static const char* trx_types[] = {"None","Req","Reply","Pending","Ack"};*/
void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb, gcp_msg_t* m, gcp_hf_ett_t* ids, expert_field* command_err) {
gcp_trx_msg_t* t;
@@ -818,8 +819,8 @@ void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb
}
if (ctx_term->term->bir && ctx_term->term->nsap) {
- gchar* tmp_key = wmem_strdup_printf(pinfo->pool, "%s:%s",ctx_term->term->nsap,ctx_term->term->bir);
- gchar* key = g_ascii_strdown(tmp_key, -1);
+ char* tmp_key = wmem_strdup_printf(pinfo->pool, "%s:%s",ctx_term->term->nsap,ctx_term->term->bir);
+ char* key = g_ascii_strdown(tmp_key, -1);
alcap_tree_from_bearer_key(term_tree, gcp_tvb, pinfo, key);
g_free(key);
}
@@ -832,8 +833,8 @@ void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb
/* END Gateway Control Protocol -- Context Tracking */
#define H248_PORT 2945
-static gboolean keep_persistent_data = FALSE;
-static gboolean h248_desegment = TRUE;
+static bool keep_persistent_data;
+static bool h248_desegment = true;
@@ -1420,11 +1421,11 @@ static const value_string wildcard_levels[] = {
{ 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 h248_curr_info_t curr_info;
+static uint32_t error_code;
+static uint32_t h248_version; /* h248v1 support */
static gcp_wildcard_t wild_term;
-static guint8 wild_card = 0xFF; /* place to store wildcardField */
+static uint8_t wild_card = 0xFF; /* place to store wildcardField */
/* Call the export PDU tap with relevant data */
static void
@@ -1443,20 +1444,20 @@ export_h248_pdu(packet_info *pinfo, tvbuff_t *tvb)
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 ? *((bool*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
+ dissect_ber_integer(implicit ? *((bool*)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 ? *((bool*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
+ dissect_ber_octet_string(implicit ? *((bool*)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 ? *((bool*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
+ dissect_ber_boolean(implicit ? *((bool*)implicit) : false, &asn1_ctx, tree, tvb, 0, hfid, NULL);
}
extern void h248_param_bytes_item(proto_tree* tree,
@@ -1489,19 +1490,19 @@ static const h248_pkg_sig_t no_signal = { 0, &hf_h248_no_sig, &ett_h248_no_sig,
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 wmem_tree_t* packages = NULL;
+static const h248_package_t *find_package_id(uint16_t pkgid);
+static wmem_tree_t* packages;
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;
+ uint16_t 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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
- offset = dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, offset, hfid , &new_tvb);
+ 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 */
@@ -1515,7 +1516,7 @@ extern void h248_param_PkgdName(proto_tree* tree, tvbuff_t* tvb, packet_info* pi
if(tree){
proto_item* pi;
- const gchar* strval;
+ const char* 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,
@@ -1536,13 +1537,13 @@ extern void h248_param_PkgdName(proto_tree* tree, tvbuff_t* tvb, packet_info* pi
}
-static int dissect_h248_trx_id(bool implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, guint32* trx_id_p) {
- guint64 trx_id = 0;
- gint8 ber_class;
+static int dissect_h248_trx_id(bool implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, uint32_t* trx_id_p) {
+ uint64_t trx_id = 0;
+ int8_t ber_class;
bool pc;
- gint32 tag;
- guint32 len;
- guint32 i;
+ int32_t tag;
+ uint32_t len;
+ uint32_t i;
if(!implicit_tag){
offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
@@ -1556,7 +1557,7 @@ static int dissect_h248_trx_id(bool implicit_tag, packet_info *pinfo, proto_tree
THROW(BoundsError);
} else {
for(i=1;i<=len;i++){
- trx_id=(trx_id<<8)|tvb_get_guint8(tvb, offset);
+ trx_id=(trx_id<<8)|tvb_get_uint8(tvb, offset);
offset++;
}
if (trx_id > 0xffffffff) {
@@ -1566,21 +1567,21 @@ static int dissect_h248_trx_id(bool implicit_tag, packet_info *pinfo, proto_tree
*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;
+ proto_tree_add_uint(tree, hf_h248_transactionId, tvb, offset-len, len, (uint32_t)trx_id);
+ *trx_id_p = (uint32_t)trx_id;
}
}
return offset;
}
-static int dissect_h248_ctx_id(bool implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, guint32* ctx_id_p) {
- gint8 ber_class;
+static int dissect_h248_ctx_id(bool implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, uint32_t* ctx_id_p) {
+ int8_t ber_class;
bool pc;
- gint32 tag;
- guint32 len;
- guint64 ctx_id = 0;
- guint32 i;
+ int32_t tag;
+ uint32_t len;
+ uint64_t ctx_id = 0;
+ uint32_t i;
if(!implicit_tag){
offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
@@ -1594,7 +1595,7 @@ static int dissect_h248_ctx_id(bool implicit_tag, packet_info *pinfo, proto_tree
THROW(BoundsError);
} else {
for(i=1;i<=len;i++){
- ctx_id=(ctx_id<<8)|tvb_get_guint8(tvb, offset);
+ ctx_id=(ctx_id<<8)|tvb_get_uint8(tvb, offset);
offset++;
}
@@ -1605,7 +1606,7 @@ static int dissect_h248_ctx_id(bool implicit_tag, packet_info *pinfo, proto_tree
*ctx_id_p = 0xfffffffd;
} else {
- proto_item* pi = proto_tree_add_uint(tree, hf_h248_context_id, tvb, offset-len, len, (guint32)ctx_id);
+ proto_item* pi = proto_tree_add_uint(tree, hf_h248_context_id, tvb, offset-len, len, (uint32_t)ctx_id);
if ( ctx_id == NULL_CONTEXT ) {
proto_item_set_text(pi,"contextId: Null Context(0)");
@@ -1615,30 +1616,30 @@ static int dissect_h248_ctx_id(bool implicit_tag, packet_info *pinfo, proto_tree
proto_item_set_text(pi,"contextId: * (All Contexts = 0xffffffff)");
}
- *ctx_id_p = (guint32) ctx_id;
+ *ctx_id_p = (uint32_t) ctx_id;
}
}
return offset;
}
-static s_h248_package_t *s_find_package_id(guint16 pkgid) {
+static s_h248_package_t *s_find_package_id(uint16_t pkgid) {
s_h248_package_t *s_pkg = NULL;
- s_pkg = (s_h248_package_t *)wmem_tree_lookup32(packages, (guint32)(pkgid));
+ s_pkg = (s_h248_package_t *)wmem_tree_lookup32(packages, (uint32_t)(pkgid));
return s_pkg;
}
-const h248_package_t *find_package_id(guint16 pkgid) {
+static const h248_package_t *find_package_id(uint16_t pkgid) {
s_h248_package_t *s_pkg = NULL;
- s_pkg = s_find_package_id(pkgid); /*(packages, GUINT_TO_POINTER((guint32)(pkgid))); */
+ s_pkg = s_find_package_id(pkgid); /*(packages, GUINT_TO_POINTER((uint32_t)(pkgid))); */
if (! s_pkg ) return &no_package;
return s_pkg->pkg;
}
-static gboolean is_pkg_default(guint16 pkgid) {
+static bool is_pkg_default(uint16_t pkgid) {
s_h248_package_t *s_pkg = NULL;
- s_pkg = (s_h248_package_t *)wmem_tree_lookup32(packages, (guint32)(pkgid));
- if(! s_pkg ) return TRUE;
+ s_pkg = (s_h248_package_t *)wmem_tree_lookup32(packages, (uint32_t)(pkgid));
+ if(! s_pkg ) return true;
return s_pkg->is_default;
}
@@ -1646,8 +1647,8 @@ 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;
+ bool pkg_default = false;
+ int j = 0, idx = 0, i = 0, k = 0;
if (! packages) {
/* no packaegs are yet registerd so create tree and add default packages to tree
*/
@@ -1694,7 +1695,7 @@ void h248_register_package(h248_package_t* pkg, pkg_reg_action reg_action) {
}
};
s_pkg = wmem_new0(wmem_epan_scope(), s_h248_package_t);
- s_pkg->is_default = TRUE;
+ s_pkg->is_default = true;
s_pkg->pkg = pkg_found;
wmem_tree_insert32(packages, pkg_found->id, s_pkg);
i++;
@@ -1705,16 +1706,16 @@ void h248_register_package(h248_package_t* pkg, pkg_reg_action reg_action) {
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->is_default = false;
s_pkg->pkg = (h248_package_t *)pkg;
wmem_tree_insert32(packages, pkg->id, s_pkg);
return;
};
- if(pkg_default) reg_action = MERGE_PKG_HIGH; /* always make new package overide default */
+ if(pkg_default) reg_action = MERGE_PKG_HIGH; /* always make new package override 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->is_default = false;
s_pkg->pkg = (h248_package_t *)pkg;
wmem_tree_insert32(packages, pkg->id, s_pkg);
return;
@@ -1741,17 +1742,17 @@ void h248_register_package(h248_package_t* pkg, pkg_reg_action reg_action) {
(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;
+ s_pkg->is_default = false;
}
}
-static guint32 packageandid;
+static uint32_t packageandid;
static int dissect_h248_PkgdName(bool 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;
+ uint16_t 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);
@@ -1776,7 +1777,7 @@ static int dissect_h248_PkgdName(bool implicit_tag, tvbuff_t *tvb, int offset, a
{
proto_item* pi = proto_tree_add_uint(package_tree, hf_248_pkg_param, tvb, offset-2, 2, name_minor);
- const gchar* strval;
+ const char* strval;
if (pkg->param_names && ( strval = try_val_to_str(name_minor, pkg->param_names) )) {
strval = wmem_strdup_printf(actx->pinfo->pool, "%s (%d)",strval,name_minor);
@@ -1798,7 +1799,7 @@ static int dissect_h248_PkgdName(bool implicit_tag, tvbuff_t *tvb, int offset, a
static int dissect_h248_EventName(bool 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;
+ uint16_t name_major, name_minor;
const h248_package_t* pkg = NULL;
const h248_pkg_evt_t* evt = NULL;
@@ -1839,7 +1840,7 @@ static int dissect_h248_EventName(bool implicit_tag, tvbuff_t *tvb, int offset,
{
proto_item* pi = proto_tree_add_uint(package_tree, hf_h248_event_code, tvb, offset-2, 2, name_minor);
- const gchar* strval;
+ const char* strval;
if (pkg->event_names && ( strval = try_val_to_str(name_minor, pkg->event_names) )) {
strval = wmem_strdup_printf(actx->pinfo->pool, "%s (%d)",strval,name_minor);
@@ -1863,7 +1864,7 @@ static int dissect_h248_EventName(bool implicit_tag, tvbuff_t *tvb, int offset,
static int dissect_h248_SignalName(bool 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;
+ uint16_t name_major, name_minor;
const h248_package_t* pkg = NULL;
const h248_pkg_sig_t* sig;
@@ -1904,7 +1905,7 @@ static int dissect_h248_SignalName(bool implicit_tag , tvbuff_t *tvb, int offset
{
proto_item* pi = proto_tree_add_uint(package_tree, hf_h248_signal_code, tvb, offset-2, 2, name_minor);
- const gchar* strval;
+ const char* strval;
if (pkg->signal_names && ( strval = try_val_to_str(name_minor, pkg->signal_names) )) {
strval = wmem_strdup_printf(actx->pinfo->pool, "%s (%d)",strval,name_minor);
@@ -1925,11 +1926,11 @@ static int dissect_h248_SignalName(bool implicit_tag , tvbuff_t *tvb, int offset
static int dissect_h248_PropertyID(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
- gint8 ber_class;
+ int8_t ber_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
- guint16 name_minor;
+ int32_t tag;
+ uint32_t len;
+ uint16_t name_minor;
int end_offset;
const h248_package_t* pkg;
const h248_pkg_param_t* prop;
@@ -1972,9 +1973,9 @@ static int dissect_h248_PropertyID(bool implicit_tag _U_, tvbuff_t *tvb, int off
static int dissect_h248_SigParameterName(bool 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;
+ uint32_t param_id = 0xffffffff;
const h248_pkg_param_t* sigpar;
- const gchar* strval;
+ const char* strval;
proto_item* pi;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb);
@@ -1984,7 +1985,7 @@ static int dissect_h248_SigParameterName(bool implicit_tag _U_, tvbuff_t *tvb, i
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;
+ case 1: param_id = tvb_get_uint8(next_tvb,0); break;
default: break;
}
@@ -2012,10 +2013,10 @@ static int dissect_h248_SigParameterName(bool implicit_tag _U_, tvbuff_t *tvb, i
static int dissect_h248_SigParamValue(bool 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;
+ int8_t ber_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
tvbuff_t *next_tvb = NULL;
offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
@@ -2045,9 +2046,9 @@ static int dissect_h248_SigParamValueV1(bool implicit_tag _U_, tvbuff_t *tvb, in
static int dissect_h248_EventParameterName(bool 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;
+ uint32_t param_id = 0xffffffff;
const h248_pkg_param_t* evtpar;
- const gchar* strval;
+ const char* strval;
proto_item* pi;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb);
@@ -2058,7 +2059,7 @@ static int dissect_h248_EventParameterName(bool implicit_tag _U_, tvbuff_t *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;
+ case 1: param_id = tvb_get_uint8(next_tvb,0); break;
default: break;
}
}
@@ -2092,10 +2093,10 @@ static int dissect_h248_EventParameterName(bool implicit_tag _U_, tvbuff_t *tvb,
static int dissect_h248_EventParamValue(bool 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;
+ int8_t ber_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t 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);
@@ -2125,7 +2126,7 @@ static int dissect_h248_EventParamValueV1(bool implicit_tag _U_, tvbuff_t *tvb,
static int dissect_h248_MtpAddress(bool 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;
+ uint32_t val;
int i, len, old_offset;
old_offset=offset;
@@ -2136,7 +2137,7 @@ static int dissect_h248_MtpAddress(bool implicit_tag, tvbuff_t *tvb, int offset,
val=0;
len=tvb_reported_length(new_tvb);
for(i=0;i<len;i++){
- val= (val<<8)|tvb_get_guint8(new_tvb, i);
+ val= (val<<8)|tvb_get_uint8(new_tvb, i);
}
/* do the prettification */
@@ -2167,7 +2168,7 @@ dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
asn1_ctx_t asn1_ctx;
h248_tree = NULL;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
curr_info.msg = NULL;
curr_info.trx = NULL;
@@ -2197,7 +2198,7 @@ dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
}
{
proto_item *hidden_item = NULL;
- guint32 magic_num = 0, offset = 0;
+ uint32_t 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);
@@ -2217,7 +2218,7 @@ dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
h248_tree = proto_item_add_subtree(h248_item, ett_h248);
}
- dissect_h248_MegacoMessage(FALSE, tvb, 0, &asn1_ctx, h248_tree, -1);
+ dissect_h248_MegacoMessage(false, tvb, 0, &asn1_ctx, h248_tree, -1);
return tvb_captured_length(tvb);
}
@@ -2328,7 +2329,7 @@ void proto_register_h248(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_h248,
&ett_mtpaddress,
&ett_packagename,
diff --git a/epan/dissectors/asn1/h248/packet-h248-template.h b/epan/dissectors/asn1/h248/packet-h248-template.h
index ac32c704..c7d3df1e 100644
--- a/epan/dissectors/asn1/h248/packet-h248-template.h
+++ b/epan/dissectors/asn1/h248/packet-h248-template.h
@@ -33,10 +33,10 @@ typedef struct _gcp_hf_ett_t {
} hf;
struct {
- gint ctx;
- gint ctx_cmds;
- gint ctx_terms;
- gint ctx_term;
+ int ctx;
+ int ctx_cmds;
+ int ctx_terms;
+ int ctx_term;
} ett;
} gcp_hf_ett_t;
@@ -80,12 +80,12 @@ typedef enum {
typedef struct _gcp_msg_t {
- guint32 lo_addr;
- guint32 hi_addr;
- guint32 framenum;
+ uint32_t lo_addr;
+ uint32_t hi_addr;
+ uint32_t framenum;
nstime_t frametime;
struct _gcp_trx_msg_t* trxs;
- gboolean committed;
+ bool committed;
} gcp_msg_t;
typedef struct _gcp_trx_msg_t {
@@ -102,12 +102,12 @@ typedef struct _gcp_cmd_msg_t {
typedef struct _gcp_trx_t {
gcp_msg_t* initial;
- guint32 id;
+ uint32_t id;
gcp_trx_type_t type;
- guint pendings;
+ unsigned pendings;
struct _gcp_cmd_msg_t* cmds;
struct _gcp_trx_ctx_t* ctxs;
- guint error;
+ unsigned error;
} gcp_trx_t;
#define GCP_TERM_TYPE_UNKNOWN 0
@@ -124,14 +124,14 @@ typedef enum _gcp_wildcard_t {
} gcp_wildcard_t;
typedef struct _gcp_term_t {
- const gchar* str;
+ const char* str;
- const guint8* buffer;
- guint len;
+ const uint8_t* buffer;
+ unsigned len;
- guint type;
- gchar* bir;
- gchar* nsap;
+ unsigned type;
+ char* bir;
+ char* nsap;
gcp_msg_t* start;
@@ -144,30 +144,30 @@ typedef struct _gcp_terms_t {
} gcp_terms_t;
typedef struct _gcp_cmd_t {
- guint offset;
- const gchar* str;
+ unsigned offset;
+ const char* str;
gcp_cmd_type_t type;
gcp_terms_t terms;
struct _gcp_msg_t* msg;
struct _gcp_trx_t* trx;
struct _gcp_ctx_t* ctx;
- guint error;
+ unsigned error;
} gcp_cmd_t;
typedef struct _gcp_ctx_t {
gcp_msg_t* initial;
- guint32 id;
+ uint32_t id;
struct _gcp_cmd_msg_t* cmds;
struct _gcp_ctx_t* prev;
gcp_terms_t terms;
} gcp_ctx_t;
-extern gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean persistent);
-extern gcp_trx_t* gcp_trx(gcp_msg_t* m ,guint32 t_id , gcp_trx_type_t type, packet_info *pinfo, gboolean persistent);
-extern gcp_ctx_t* gcp_ctx(gcp_msg_t* m, gcp_trx_t* t, guint32 c_id, packet_info *pinfo, gboolean persistent);
-extern gcp_cmd_t* gcp_cmd(gcp_msg_t* m, gcp_trx_t* t, gcp_ctx_t* c, gcp_cmd_type_t type, guint offset, packet_info *pinfo, gboolean persistent);
-extern gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term_t* t, gcp_wildcard_t wildcard, packet_info *pinfo, gboolean persistent);
+extern gcp_msg_t* gcp_msg(packet_info* pinfo, int o, bool persistent);
+extern gcp_trx_t* gcp_trx(gcp_msg_t* m ,uint32_t t_id , gcp_trx_type_t type, packet_info *pinfo, bool persistent);
+extern gcp_ctx_t* gcp_ctx(gcp_msg_t* m, gcp_trx_t* t, uint32_t c_id, packet_info *pinfo, bool persistent);
+extern gcp_cmd_t* gcp_cmd(gcp_msg_t* m, gcp_trx_t* t, gcp_ctx_t* c, gcp_cmd_type_t type, unsigned offset, packet_info *pinfo, bool persistent);
+extern gcp_term_t* gcp_cmd_add_term(gcp_msg_t* m, gcp_trx_t* tr, gcp_cmd_t* c, gcp_term_t* t, gcp_wildcard_t wildcard, packet_info *pinfo, bool persistent);
extern void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb, gcp_msg_t* m, gcp_hf_ett_t* ids, expert_field* command_err);
#define GCP_ETT_ARR_ELEMS(gi) &(gi.ett.ctx),&(gi.ett.ctx_cmds),&(gi.ett.ctx_terms),&(gi.ett.ctx_term)
@@ -183,7 +183,7 @@ extern void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t*
WS_DLL_PUBLIC const value_string gcp_cmd_type[];
WS_DLL_PUBLIC const value_string gcp_term_types[];
-extern const gchar* gcp_msg_to_str(gcp_msg_t* m, wmem_allocator_t *scope, gboolean persistent);
+extern const char* gcp_msg_to_str(gcp_msg_t* m, wmem_allocator_t *scope, bool persistent);
#define gcp_cmd_set_error(c,e) (c->error = e)
#define gcp_trx_set_error(t,e) (t->error = e)
@@ -211,40 +211,40 @@ typedef enum {
} pkg_reg_action;
typedef struct _h248_pkg_param_t {
- guint32 id;
+ uint32_t id;
int* hfid;
h248_pkg_param_dissector_t dissector;
void* data;
} h248_pkg_param_t;
typedef struct _h248_pkg_sig_t {
- guint32 id;
+ uint32_t id;
int* hfid;
- gint* ett;
+ int* ett;
const h248_pkg_param_t* parameters;
const value_string* param_names;
} h248_pkg_sig_t;
typedef struct _h248_pkg_evt_t {
- guint32 id;
+ uint32_t id;
int* hfid;
- gint* ett;
+ int* ett;
const h248_pkg_param_t* parameters;
const value_string* param_names;
} h248_pkg_evt_t;
typedef struct _h248_pkg_stat_t {
- guint32 id;
+ uint32_t id;
int* hfid;
- gint* ett;
+ int* 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 */
+ uint32_t id; /**< Package ID */
int* hfid; /**< hfid that will display the package name */
- gint* ett; /**< The ett for this item */
+ int* 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;
@@ -257,7 +257,7 @@ typedef struct _h248_package_t {
typedef struct _save_h248_package_t {
h248_package_t *pkg;
- gboolean is_default;
+ bool is_default;
} s_h248_package_t;
struct _h248_curr_info_t {
@@ -274,8 +274,8 @@ struct _h248_curr_info_t {
};
typedef struct h248_term_info {
- guint8 wild_card;
- gchar *str;
+ uint8_t wild_card;
+ char *str;
} h248_term_info_t;
WS_DLL_PUBLIC
diff --git a/epan/dissectors/asn1/h282/h282.cnf b/epan/dissectors/asn1/h282/h282.cnf
index 10aeae36..6cfb716a 100644
--- a/epan/dissectors/asn1/h282/h282.cnf
+++ b/epan/dissectors/asn1/h282/h282.cnf
@@ -25,8 +25,8 @@ CameraFilterCapability/filterTextLabel/_item/filterTextLabel ABBREV=filterTextLa
#.FN_PARS RequestPDU
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *p = NULL;
#.FN_FTR
p = try_val_to_str(msg_type, VALS(h282_RequestPDU_vals));
if (p)
@@ -36,8 +36,8 @@ CameraFilterCapability/filterTextLabel/_item/filterTextLabel ABBREV=filterTextLa
#.FN_PARS ResponsePDU
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *p = NULL;
#.FN_FTR
p = try_val_to_str(msg_type, VALS(h282_ResponsePDU_vals));
if (p)
@@ -47,8 +47,8 @@ CameraFilterCapability/filterTextLabel/_item/filterTextLabel ABBREV=filterTextLa
#.FN_PARS IndicationPDU
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *p = NULL;
#.FN_FTR
p = try_val_to_str(msg_type, VALS(h282_IndicationPDU_vals));
if (p)
diff --git a/epan/dissectors/asn1/h282/packet-h282-template.c b/epan/dissectors/asn1/h282/packet-h282-template.c
index d371529f..6b701a61 100644
--- a/epan/dissectors/asn1/h282/packet-h282-template.c
+++ b/epan/dissectors/asn1/h282/packet-h282-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
@@ -25,11 +26,11 @@ void proto_register_h282(void);
void proto_reg_handoff_h282(void);
/* Initialize the protocol and registered fields */
-static int proto_h282 = -1;
+static int proto_h282;
#include "packet-h282-hf.c"
/* Initialize the subtree pointers */
-static int ett_h282 = -1;
+static int ett_h282;
#include "packet-h282-ett.c"
/* Dissectors */
@@ -61,7 +62,7 @@ void proto_register_h282(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_h282,
#include "packet-h282-ettarr.c"
};
diff --git a/epan/dissectors/asn1/h283/h283.cnf b/epan/dissectors/asn1/h283/h283.cnf
index 0f7577cc..3a12fba1 100644
--- a/epan/dissectors/asn1/h283/h283.cnf
+++ b/epan/dissectors/asn1/h283/h283.cnf
@@ -14,78 +14,78 @@ LCTPDU
#.FN_PARS LCTPDU/pduType
VAL_PTR = &pdu_type
#.FN_HDR
- gint32 pdu_type = -1;
- const gchar *p = NULL;
+ int32_t pdu_type = -1;
+ const char *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;
+ info_is_set = true;
}
#.END
#.FN_PARS RDCData/dataType
VAL_PTR = &data_type
#.FN_HDR
- gint32 data_type = -1;
- const gchar *p = NULL;
+ int32_t data_type = -1;
+ const char *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;
+ info_is_set = true;
}
#.END
#.FN_PARS LCTMessage
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *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;
+ info_is_set = true;
}
#.END
#.FN_PARS LCTRequest
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *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;
+ info_is_set = true;
}
#.END
#.FN_PARS LCTResponse
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *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;
+ info_is_set = true;
}
#.END
#.FN_PARS LCTIndication
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *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;
+ info_is_set = true;
}
#.END
@@ -96,7 +96,7 @@ LCTPDU
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;
+ info_is_set = true;
#.END
#.FN_BODY LCTResponse/deviceListResp VAL_PTR = &next_tvb
diff --git a/epan/dissectors/asn1/h283/packet-h283-template.c b/epan/dissectors/asn1/h283/packet-h283-template.c
index 6db8e76e..3d7e42e7 100644
--- a/epan/dissectors/asn1/h283/packet-h283-template.c
+++ b/epan/dissectors/asn1/h283/packet-h283-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
@@ -25,11 +26,11 @@ void proto_register_h283(void);
void proto_reg_handoff_h283(void);
/* Initialize the protocol and registered fields */
-static int proto_h283 = -1;
+static int proto_h283;
#include "packet-h283-hf.c"
/* Initialize the subtree pointers */
-static int ett_h283 = -1;
+static int ett_h283;
#include "packet-h283-ett.c"
/* Subdissectors */
@@ -39,7 +40,7 @@ static dissector_handle_t data_handle;
static dissector_handle_t h283_udp_handle;
-static gboolean info_is_set;
+static bool info_is_set;
#include "packet-h283-fn.c"
@@ -51,7 +52,7 @@ dissect_h283_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
- info_is_set = FALSE;
+ 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);
@@ -68,7 +69,7 @@ void proto_register_h283(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_h283,
#include "packet-h283-ettarr.c"
};
diff --git a/epan/dissectors/asn1/h323/packet-h323-template.c b/epan/dissectors/asn1/h323/packet-h323-template.c
index 8adbaa7c..6c321bee 100644
--- a/epan/dissectors/asn1/h323/packet-h323-template.c
+++ b/epan/dissectors/asn1/h323/packet-h323-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-h225.h"
@@ -27,7 +28,7 @@ void proto_register_h323(void);
void proto_reg_handoff_h323(void);
/* Generic Extensible Framework */
-gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const gchar *type) {
+gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const char *type) {
gef_ctx_t *gefx;
gefx = wmem_new0(pool, gef_ctx_t);
@@ -37,7 +38,7 @@ gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const gchar
return gefx;
}
-gboolean gef_ctx_check_signature(gef_ctx_t *gefx) {
+bool gef_ctx_check_signature(gef_ctx_t *gefx) {
return gefx && (gefx->signature == GEF_CTX_SIGNATURE);
}
@@ -58,7 +59,7 @@ gef_ctx_t* gef_ctx_get(void *ptr) {
}
void gef_ctx_update_key(wmem_allocator_t *pool, gef_ctx_t *gefx) {
- const gchar *parent_key;
+ const char *parent_key;
if (!gefx) return;
parent_key = (gefx->parent) ? gefx->parent->key : NULL;
@@ -73,7 +74,7 @@ void gef_ctx_update_key(wmem_allocator_t *pool, gef_ctx_t *gefx) {
}
/* Initialize the protocol and registered fields */
-static int proto_h323 = -1;
+static int proto_h323;
#include "packet-h323-hf.c"
/* Initialize the subtree pointers */
@@ -90,7 +91,7 @@ void proto_register_h323(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-h323-ettarr.c"
};
diff --git a/epan/dissectors/asn1/h323/packet-h323-template.h b/epan/dissectors/asn1/h323/packet-h323-template.h
index 0467a4a0..d4b5d5b7 100644
--- a/epan/dissectors/asn1/h323/packet-h323-template.h
+++ b/epan/dissectors/asn1/h323/packet-h323-template.h
@@ -17,7 +17,7 @@
#define GEF_CTX_SIGNATURE 0x47454658 /* "GEFX" */
typedef struct _gef_ctx_t {
- guint32 signature;
+ uint32_t signature;
struct _gef_ctx_t *parent;
/*
H323-MESSAGES
@@ -37,14 +37,14 @@ typedef struct _gef_ctx_t {
EncryptionSync
<id>
*/
- const gchar *type;
- const gchar *id;
- const gchar *subid;
- const gchar *key;
+ const char *type;
+ const char *id;
+ const char *subid;
+ const char *key;
} gef_ctx_t;
-extern gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const gchar *type);
-extern gboolean gef_ctx_check_signature(gef_ctx_t *gefx);
+extern gef_ctx_t* gef_ctx_alloc(wmem_allocator_t *pool, gef_ctx_t *parent, const char *type);
+extern bool gef_ctx_check_signature(gef_ctx_t *gefx);
extern gef_ctx_t* gef_ctx_get(void *ptr);
extern void gef_ctx_update_key(wmem_allocator_t *pool, gef_ctx_t *gefx);
diff --git a/epan/dissectors/asn1/h450-ros/h450-ros.cnf b/epan/dissectors/asn1/h450-ros/h450-ros.cnf
index cbb65776..ee06bc92 100644
--- a/epan/dissectors/asn1/h450-ros/h450-ros.cnf
+++ b/epan/dissectors/asn1/h450-ros/h450-ros.cnf
@@ -65,7 +65,7 @@ ReturnErrorProblem VAL_PTR = &problem_val
# 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);
+ 0U, 65535U, %(VAL_PTR)s, true);
#.END
#.FIELD_ATTR
diff --git a/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
index df2a53db..cc6d3c0b 100644
--- a/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
+++ b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
@@ -15,6 +15,7 @@
#include <epan/strutil.h>
#include <epan/asn1.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-h450-ros.h"
@@ -27,22 +28,22 @@ 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;
+static int proto_h450_ros;
#include "packet-h450-ros-hf.c"
/* Initialize the subtree pointers */
#include "packet-h450-ros-ett.c"
-static expert_field ei_ros_undecoded = EI_INIT;
+static expert_field ei_ros_undecoded;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t data_handle = NULL;
+static dissector_handle_t data_handle;
/* Global variables */
-static gint32 problem_val;
-static gchar problem_str[64];
+static int32_t problem_val;
+static char problem_str[64];
static tvbuff_t *arg_next_tvb, *res_next_tvb, *err_next_tvb;
static int
@@ -74,7 +75,7 @@ void proto_register_h450_ros(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-h450-ros-ettarr.c"
};
diff --git a/epan/dissectors/asn1/h450/packet-h450-template.c b/epan/dissectors/asn1/h450/packet-h450-template.c
index b9a72714..d2938ddd 100644
--- a/epan/dissectors/asn1/h450/packet-h450-template.c
+++ b/epan/dissectors/asn1/h450/packet-h450-template.c
@@ -20,6 +20,7 @@
#include <epan/expert.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-h225.h"
@@ -38,17 +39,17 @@ static dissector_handle_t h450_res_handle;
static dissector_handle_t h450_err_handle;
/* Initialize the protocol and registered fields */
-static int proto_h450 = -1;
-static int hf_h450_operation = -1;
-static int hf_h450_error = -1;
+static int proto_h450;
+static int hf_h450_operation;
+static int hf_h450_error;
#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 expert_field ei_h450_unsupported_arg_type;
+static expert_field ei_h450_unsupported_result_type;
+static expert_field ei_h450_unsupported_error_type;
static const value_string h450_str_operation[] = {
#include "packet-h450-table10.c"
@@ -68,7 +69,7 @@ static rose_ctx_t h450_rose_ctx;
#include "packet-h450-fn.c"
typedef struct _h450_op_t {
- gint32 opcode;
+ int32_t opcode;
dissector_t arg_pdu;
dissector_t res_pdu;
} h450_op_t;
@@ -78,7 +79,7 @@ static const h450_op_t h450_op_tab[] = {
};
typedef struct _h450_err_t {
- gint32 errcode;
+ int32_t errcode;
dissector_t err_pdu;
} h450_err_t;
@@ -86,7 +87,7 @@ static const h450_err_t h450_err_tab[] = {
#include "packet-h450-table21.c"
};
-static const h450_op_t *get_op(gint32 opcode) {
+static const h450_op_t *get_op(int32_t opcode) {
int i;
/* search from the end to get the last occurrence if the operation is redefined in some newer specification */
@@ -96,7 +97,7 @@ static const h450_op_t *get_op(gint32 opcode) {
return NULL;
}
-static const h450_err_t *get_err(gint32 errcode) {
+static const h450_err_t *get_err(int32_t errcode) {
int i;
/* search from the end to get the last occurrence if the operation is redefined in some newer specification */
@@ -112,9 +113,9 @@ 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;
+ int32_t opcode;
const h450_op_t *op_ptr;
- const gchar *p;
+ const char *p;
/* Reject the packet if data is NULL */
if (data == NULL)
@@ -157,9 +158,9 @@ 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;
+ int32_t opcode;
const h450_op_t *op_ptr;
- const gchar *p;
+ const char *p;
/* Reject the packet if data is NULL */
if (data == NULL)
@@ -202,9 +203,9 @@ 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;
+ int32_t errcode;
const h450_err_t *err_ptr;
- const gchar *p;
+ const char *p;
/* Reject the packet if data is NULL */
if (data == NULL)
@@ -256,7 +257,7 @@ void proto_register_h450(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-h450-ettarr.c"
};
diff --git a/epan/dissectors/asn1/h460/packet-h460-template.c b/epan/dissectors/asn1/h460/packet-h460-template.c
index 896427c1..0aa0724d 100644
--- a/epan/dissectors/asn1/h460/packet-h460-template.c
+++ b/epan/dissectors/asn1/h460/packet-h460-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-h225.h"
@@ -28,7 +29,7 @@ void proto_register_h460(void);
void proto_reg_handoff_h460(void);
/* Initialize the protocol and registered fields */
-static int proto_h460 = -1;
+static int proto_h460;
#include "packet-h460-hf.c"
/* Initialize the subtree pointers */
@@ -38,8 +39,8 @@ static int proto_h460 = -1;
static dissector_handle_t h460_name_handle;
/* Subdissectors */
-static dissector_handle_t q931_ie_handle = NULL;
-static dissector_handle_t h225_ras_handle = NULL;
+static dissector_handle_t q931_ie_handle;
+static dissector_handle_t h225_ras_handle;
#include "packet-h460-fn.c"
@@ -66,15 +67,15 @@ dissect_ras(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
}
typedef struct _h460_feature_t {
- guint32 opt;
- const gchar *id;
- const gchar *name;
+ uint32_t opt;
+ const char *id;
+ const char *name;
dissector_t content_pdu;
/*---*/
- const gchar *key_gd;
- const gchar *key_fd;
- const gchar *key_gm;
- const gchar *key_gi;
+ const char *key_gd;
+ const char *key_fd;
+ const char *key_gm;
+ const char *key_gi;
dissector_handle_t content_hnd;
} h460_feature_t;
@@ -190,7 +191,7 @@ static h460_feature_t h460_feature_tab[] = {
{ 0, NULL, NULL, NULL, FFILL },
};
-static h460_feature_t *find_ftr(const gchar *key) {
+static h460_feature_t *find_ftr(const char *key) {
h460_feature_t *ftr = NULL;
h460_feature_t *f;
@@ -239,7 +240,7 @@ void proto_register_h460(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-h460-ettarr.c"
};
diff --git a/epan/dissectors/asn1/h501/h501.cnf b/epan/dissectors/asn1/h501/h501.cnf
index 902f187b..79fcc1e6 100644
--- a/epan/dissectors/asn1/h501/h501.cnf
+++ b/epan/dissectors/asn1/h501/h501.cnf
@@ -27,8 +27,8 @@ DescriptorInfo/descriptorID ABBREV=descriptorInfo_descriptorI
#.FN_PARS MessageBody
VAL_PTR = &msg_type
#.FN_HDR
- gint32 msg_type = -1;
- const gchar *p = NULL;
+ int32_t msg_type = -1;
+ const char *p = NULL;
#.FN_FTR
p = try_val_to_str(msg_type, VALS(h501_MessageBody_vals));
if (p )
diff --git a/epan/dissectors/asn1/h501/packet-h501-template.c b/epan/dissectors/asn1/h501/packet-h501-template.c
index 45596549..77bf9a7c 100644
--- a/epan/dissectors/asn1/h501/packet-h501-template.c
+++ b/epan/dissectors/asn1/h501/packet-h501-template.c
@@ -15,6 +15,7 @@
#include <epan/prefs.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-tpkt.h"
#include "packet-per.h"
@@ -28,11 +29,11 @@
void proto_register_h501(void);
/* Initialize the protocol and registered fields */
-static int proto_h501 = -1;
+static int proto_h501;
#include "packet-h501-hf.c"
/* Initialize the subtree pointers */
-static int ett_h501 = -1;
+static int ett_h501;
#include "packet-h501-ett.c"
/* Dissectors */
@@ -42,7 +43,7 @@ static dissector_handle_t h501_tcp_handle;
/* Preferences */
#define H501_PORT 2099
-static gboolean h501_desegment_tcp = TRUE;
+static bool h501_desegment_tcp = true;
void proto_reg_handoff_h501(void);
@@ -65,7 +66,7 @@ dissect_h501_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
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);
+ dissect_tpkt_encap(tvb, pinfo, tree, false, h501_pdu_handle);
return tvb_captured_length(tvb);
}
@@ -86,7 +87,7 @@ void proto_register_h501(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_h501,
#include "packet-h501-ettarr.c"
};
diff --git a/epan/dissectors/asn1/hnbap/hnbap.cnf b/epan/dissectors/asn1/hnbap/hnbap.cnf
index 7c5429a0..d3d803e2 100644
--- a/epan/dissectors/asn1/hnbap/hnbap.cnf
+++ b/epan/dissectors/asn1/hnbap/hnbap.cnf
@@ -33,9 +33,6 @@ GeographicalLocation/geographicalCoordinates geographical_location_geographical_
HNB-Location-Information/geographicalCoordinates hnb_location_information_geographical_coordinates
MacroCoverageInformation/cellIdentity macroCellID
-#.FIELD_ATTR
-acroCoverageInformation/cellIdentity ABBREV=cellIdentity.macroCellID
-
#.OMIT_ASSIGNMENT
Presence
ProtocolIE-ContainerList
@@ -49,7 +46,8 @@ AccessResult
#.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)"));
+ 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
@@ -59,7 +57,7 @@ AccessResult
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
- if (strcmp(val_to_str(ProcedureCode, hnbap_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
+ if (strcmp(val_to_str_const(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 */
@@ -159,7 +157,7 @@ AccessResult
%(DEFAULT_BODY)s
if (parameter_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_hnbap_imsi);
- dissect_e212_imsi(parameter_tvb, actx->pinfo, subtree, 0, tvb_reported_length(parameter_tvb), FALSE);
+ dissect_e212_imsi(parameter_tvb, actx->pinfo, subtree, 0, tvb_reported_length(parameter_tvb), false);
}
#.FN_BODY PLMNidentity VAL_PTR = &parameter_tvb
@@ -169,7 +167,7 @@ AccessResult
hnbap_data->number_type = E212_NONE;
%(DEFAULT_BODY)s
if (parameter_tvb) {
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, false);
}
#.END
diff --git a/epan/dissectors/asn1/hnbap/packet-hnbap-template.c b/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
index 1568cca2..73908afc 100644
--- a/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
+++ b/epan/dissectors/asn1/hnbap/packet-hnbap-template.c
@@ -18,6 +18,7 @@
#include <epan/asn1.h>
#include <epan/prefs.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-e212.h"
@@ -38,13 +39,13 @@ void proto_register_hnbap(void);
#include "packet-hnbap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_hnbap = -1;
+static int proto_hnbap;
#include "packet-hnbap-hf.c"
/* Initialize the subtree pointers */
-static int ett_hnbap = -1;
-static int ett_hnbap_imsi = -1;
+static int ett_hnbap;
+static int ett_hnbap_imsi;
#include "packet-hnbap-ett.c"
struct hnbap_private_data {
@@ -52,8 +53,8 @@ struct hnbap_private_data {
};
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
/* Dissector tables */
static dissector_table_t hnbap_ies_dissector_table;
@@ -86,12 +87,12 @@ hnbap_get_private_data(packet_info *pinfo)
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;
+ 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;
+ 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_)
@@ -115,17 +116,17 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
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;
+ 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;
+ 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;
+ return (dissector_try_uint_new(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
static int
@@ -155,7 +156,7 @@ void proto_register_hnbap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_hnbap,
&ett_hnbap_imsi,
#include "packet-hnbap-ettarr.c"
diff --git a/epan/dissectors/asn1/idmp/packet-idmp-template.c b/epan/dissectors/asn1/idmp/packet-idmp-template.c
index dbe11886..f78784d5 100644
--- a/epan/dissectors/asn1/idmp/packet-idmp-template.c
+++ b/epan/dissectors/asn1/idmp/packet-idmp-template.c
@@ -21,6 +21,7 @@
#include <epan/strutil.h>
#include <wsutil/str_util.h>
+#include <wsutil/array.h>
#include "packet-tcp.h"
@@ -37,40 +38,40 @@ void proto_register_idmp(void);
void proto_reg_handoff_idm(void);
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 bool idmp_desegment = true;
#define IDMP_TCP_PORT 1102 /* made up for now - not IANA registered */
-static gboolean idmp_reassemble = TRUE;
-static dissector_handle_t idmp_handle = NULL;
+static bool idmp_reassemble = true;
+static dissector_handle_t idmp_handle;
-static proto_tree *top_tree = NULL;
-static const char *protocolID = NULL;
-static const char *saved_protocolID = NULL;
-static guint32 opcode = -1;
+static proto_tree *top_tree;
+static const char *protocolID;
+static const char *saved_protocolID;
+static uint32_t opcode = -1;
/* Initialize the protocol and registered fields */
-int proto_idmp = -1;
+int proto_idmp;
-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 int hf_idmp_version;
+static int hf_idmp_final;
+static int hf_idmp_length;
+static int hf_idmp_PDU;
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 int hf_idmp_fragments;
+static int hf_idmp_fragment;
+static int hf_idmp_fragment_overlap;
+static int hf_idmp_fragment_overlap_conflicts;
+static int hf_idmp_fragment_multiple_tails;
+static int hf_idmp_fragment_too_long_fragment;
+static int hf_idmp_fragment_error;
+static int hf_idmp_fragment_count;
+static int hf_idmp_reassembled_in;
+static int hf_idmp_reassembled_length;
+static int hf_idmp_segment_data;
+
+static int ett_idmp_fragment;
+static int ett_idmp_fragments;
static const fragment_items idmp_frag_items = {
/* Fragment subtrees */
@@ -117,7 +118,7 @@ static int call_idmp_oid_callback(tvbuff_t *tvb, int offset, packet_info *pinfo,
#include "packet-idmp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_idmp = -1;
+static int ett_idmp;
#include "packet-idmp-ett.c"
#include "packet-idmp-fn.c"
@@ -126,7 +127,7 @@ 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);
+ register_ros_protocol_info(oid, rinfo, proto, name, false);
}
@@ -138,13 +139,13 @@ static int dissect_idmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
proto_tree *tree;
asn1_ctx_t asn1_ctx;
struct SESSION_DATA_STRUCTURE session;
- gboolean idmp_final;
- guint32 idmp_length;
+ bool idmp_final;
+ uint32_t idmp_length;
fragment_head *fd_head;
conversation_t *conv;
- guint32 dst_ref = 0;
+ uint32_t dst_ref = 0;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
conv = find_conversation_pinfo(pinfo, 0);
if (conv) {
@@ -164,7 +165,7 @@ static int dissect_idmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
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++;
+ idmp_final = tvb_get_uint8(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;
@@ -210,16 +211,16 @@ static int dissect_idmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
/* 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);
+ 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,
+static unsigned get_idmp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
{
- guint32 len;
+ uint32_t len;
len = tvb_get_ntohl(tvb, offset + 2);
@@ -301,7 +302,7 @@ void proto_register_idmp(void)
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_idmp,
&ett_idmp_fragment,
&ett_idmp_fragments,
diff --git a/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf b/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf
index 50e47b86..0c7c49a6 100644
--- a/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf
+++ b/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf
@@ -93,11 +93,11 @@ SspRange/opaque ABBREV=srRange.opaque
ieee1609_private_data_t *my_private_data = (ieee1609_private_data_t*)actx->private_data;
offset = dissect_oer_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, FALSE, &my_private_data->unsecured_data);
+ NO_BOUND, NO_BOUND, false, &my_private_data->unsecured_data);
if (my_private_data->unsecured_data) {
// psid may also be provided in HeaderInfo
- guint32 psid = GPOINTER_TO_UINT(p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_ieee1609dot2, 0));
+ uint32_t psid = GPOINTER_TO_UINT(p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_ieee1609dot2, 0));
if (psid) {
/* Call next dissector here */
dissector_try_uint(unsecured_data_subdissector_table, psid, my_private_data->unsecured_data, actx->pinfo, tree);
@@ -109,15 +109,15 @@ SspRange/opaque ABBREV=srRange.opaque
#.END
#.FN_BODY HeaderInfo/psid
- guint64 psid;
+ uint64_t psid;
ieee1609_private_data_t *my_private_data = (ieee1609_private_data_t*)actx->private_data;
offset = dissect_oer_constrained_integer_64b_no_ub(tvb, offset, actx, tree, hf_index,
- 0U, NO_BOUND, &psid, FALSE);
+ 0U, NO_BOUND, &psid, false);
if ((my_private_data != NULL) && (my_private_data->unsecured_data != NULL)) {
/* Call next dissector here */
- ieee1609dot2_set_next_default_psid(actx->pinfo, (guint32)psid);
- dissector_try_uint(unsecured_data_subdissector_table, (guint32) psid, my_private_data->unsecured_data, actx->pinfo, tree);
+ ieee1609dot2_set_next_default_psid(actx->pinfo, (uint32_t)psid);
+ dissector_try_uint(unsecured_data_subdissector_table, (uint32_t) psid, my_private_data->unsecured_data, actx->pinfo, tree);
my_private_data->unsecured_data = NULL;
}
@@ -125,19 +125,19 @@ SspRange/opaque ABBREV=srRange.opaque
#.FN_BODY PsidSsp/psid
offset = dissect_oer_constrained_integer_64b_no_ub(tvb, offset, actx, tree, hf_index,
- 0U, NO_BOUND, &((ieee1609_private_data_t*)actx->private_data)->psidssp, FALSE);
+ 0U, NO_BOUND, &((ieee1609_private_data_t*)actx->private_data)->psidssp, false);
#.FN_BODY ServiceSpecificPermissions/opaque
tvbuff_t *ssp;
ieee1609_private_data_t *my_private_data = (ieee1609_private_data_t*)actx->private_data;
offset = dissect_oer_octet_string(tvb, offset, actx, tree, hf_index,
- 0, NO_BOUND, FALSE, &ssp);
+ 0, NO_BOUND, false, &ssp);
if (ssp) {
// Create subtree
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ieee1609dot2_ssp);
/* Call next dissector here */
- dissector_try_uint(ssp_subdissector_table, (guint32) my_private_data->psidssp, ssp, actx->pinfo, subtree);
+ dissector_try_uint(ssp_subdissector_table, (uint32_t) my_private_data->psidssp, ssp, actx->pinfo, subtree);
}
#.END
diff --git a/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c b/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c
index 6a2c4cdb..85ae09cf 100644
--- a/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c
+++ b/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c
@@ -23,6 +23,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-oer.h"
#include "packet-ieee1609dot2.h"
@@ -35,12 +36,12 @@ void proto_register_ieee1609dot2(void);
void proto_reg_handoff_ieee1609dot2(void);
/* Initialize the protocol and registered fields */
-int proto_ieee1609dot2 = -1;
-dissector_handle_t proto_ieee1609dot2_handle = NULL;
+int proto_ieee1609dot2;
+dissector_handle_t proto_ieee1609dot2_handle;
#include "packet-ieee1609dot2-hf.c"
/* Initialize the subtree pointers */
-static int ett_ieee1609dot2_ssp = -1;
+static int ett_ieee1609dot2_ssp;
#include "packet-ieee1609dot2-ett.c"
static dissector_table_t unsecured_data_subdissector_table;
@@ -48,11 +49,11 @@ static dissector_table_t ssp_subdissector_table;
typedef struct ieee1609_private_data {
tvbuff_t *unsecured_data;
- guint64 psidssp; // psid for Service Specific Permissions
+ uint64_t psidssp; // psid for Service Specific Permissions
} ieee1609_private_data_t;
void
-ieee1609dot2_set_next_default_psid(packet_info *pinfo, guint32 psid)
+ieee1609dot2_set_next_default_psid(packet_info *pinfo, uint32_t psid)
{
p_add_proto_data(wmem_file_scope(), pinfo, proto_ieee1609dot2, 0, GUINT_TO_POINTER(psid));
}
@@ -61,9 +62,9 @@ ieee1609dot2_set_next_default_psid(packet_info *pinfo, guint32 psid)
static void
-ieee1609dot2_NinetyDegreeInt_fmt(gchar *s, guint32 v)
+ieee1609dot2_NinetyDegreeInt_fmt(char *s, uint32_t v)
{
- gint32 lat = (gint32)v;
+ int32_t lat = (int32_t)v;
if (lat == 900000001) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", lat);
} else {
@@ -77,9 +78,9 @@ ieee1609dot2_NinetyDegreeInt_fmt(gchar *s, guint32 v)
}
static void
-ieee1609dot2_OneEightyDegreeInt_fmt(gchar *s, guint32 v)
+ieee1609dot2_OneEightyDegreeInt_fmt(char *s, uint32_t v)
{
- gint32 lng = (gint32)v;
+ int32_t lng = (int32_t)v;
if (lng == 1800000001) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable(%d)", lng);
} else {
@@ -94,7 +95,7 @@ ieee1609dot2_OneEightyDegreeInt_fmt(gchar *s, guint32 v)
static void
-ieee1609dot2_Time32_fmt(gchar *s, guint32 v)
+ieee1609dot2_Time32_fmt(char *s, uint32_t v)
{
time_t secs = v + 1072915200 - 5;
struct tm *tm = gmtime(&secs);
@@ -104,10 +105,10 @@ ieee1609dot2_Time32_fmt(gchar *s, guint32 v)
}
static void
-ieee1609dot2_Time64_fmt(gchar *s, guint64 v)
+ieee1609dot2_Time64_fmt(char *s, uint64_t v)
{
time_t secs = v / 1000000 + 1072915200 - 5;
- guint32 usecs = v % 1000000;
+ uint32_t usecs = v % 1000000;
struct tm *tm = gmtime(&secs);
snprintf(s, ITEM_LABEL_LENGTH, "%u-%02u-%02u %02u:%02u:%02u.%06u (%" PRIu64 ")",
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, usecs, v
@@ -123,7 +124,7 @@ void proto_register_ieee1609dot2(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-ieee1609dot2-ettarr.c"
&ett_ieee1609dot2_ssp,
};
diff --git a/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.h b/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.h
index f64075d7..eedf90ab 100644
--- a/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.h
+++ b/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.h
@@ -25,7 +25,7 @@
* structure.
*/
WS_DLL_PUBLIC
-void ieee1609dot2_set_next_default_psid(packet_info *pinfo, guint32 psid);
+void ieee1609dot2_set_next_default_psid(packet_info *pinfo, uint32_t psid);
#include "packet-ieee1609dot2-exp.h"
diff --git a/epan/dissectors/asn1/ilp/ilp.cnf b/epan/dissectors/asn1/ilp/ilp.cnf
index 093b51ac..b4f789e7 100644
--- a/epan/dissectors/asn1/ilp/ilp.cnf
+++ b/epan/dissectors/asn1/ilp/ilp.cnf
@@ -29,7 +29,7 @@ CellGlobalIdEUTRA/cellIdentity eutra_cellIdentity
#.FIELD_ATTR
SETId/min ABBREV=minsi
LocationDataLCI/latitude ABBREV=locationdatalci.latitude
-LocationDataLCI/latitude ABBREV=locationdatalci.longitude
+LocationDataLCI/longitude ABBREV=locationdatalci.longitude
LocationDataLCI/altitude ABBREV=locationdatalci.altitude
CellGlobalIdEUTRA/cellIdentity ABBREV=cellglobalideutra.cellIdentity
@@ -53,7 +53,7 @@ CellGlobalIdEUTRA/cellIdentity ABBREV=cellglobalideutra.cellIdentity
#.FN_BODY IlpMessage VAL_PTR = &IlpMessage
-guint32 IlpMessage;
+uint32_t IlpMessage;
%(DEFAULT_BODY)s
@@ -96,7 +96,7 @@ guint32 IlpMessage;
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
- proto_tree_add_item(subtree, hf_ilp_mobile_directory_number, mdn_tvb, 0, 8, ENC_BCD_DIGITS_0_9);
+ proto_tree_add_item(subtree, hf_ilp_mobile_directory_number, mdn_tvb, 0, 8, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
}
#.FN_BODY SETId/imsi VAL_PTR=&imsi_tvb
@@ -106,7 +106,7 @@ guint32 IlpMessage;
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);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, false);
}
#.TYPE_ATTR
diff --git a/epan/dissectors/asn1/ilp/packet-ilp-template.c b/epan/dissectors/asn1/ilp/packet-ilp-template.c
index 48cd9386..4c6e7535 100644
--- a/epan/dissectors/asn1/ilp/packet-ilp-template.c
+++ b/epan/dissectors/asn1/ilp/packet-ilp-template.c
@@ -18,6 +18,7 @@
#include <epan/packet.h>
#include <epan/prefs.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-tcp.h"
@@ -42,19 +43,19 @@ static dissector_handle_t ilp_tcp_handle;
#define ILP_TCP_PORT 7276
/* Initialize the protocol and registered fields */
-static int proto_ilp = -1;
+static int proto_ilp;
#define ILP_HEADER_SIZE 2
-static gboolean ilp_desegment = TRUE;
+static bool ilp_desegment = true;
#include "packet-ilp-hf.c"
-static int hf_ilp_mobile_directory_number = -1;
+static int hf_ilp_mobile_directory_number;
/* Initialize the subtree pointers */
-static gint ett_ilp = -1;
-static gint ett_ilp_setid = -1;
+static int ett_ilp;
+static int ett_ilp_setid;
#include "packet-ilp-ett.c"
/* Include constants */
@@ -64,7 +65,7 @@ static gint ett_ilp_setid = -1;
#include "packet-ilp-fn.c"
-static guint
+static unsigned
get_ilp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
{
/* PDU length = Message length */
@@ -95,7 +96,7 @@ void proto_register_ilp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ilp,
&ett_ilp_setid,
#include "packet-ilp-ettarr.c"
diff --git a/epan/dissectors/asn1/inap/inap.cnf b/epan/dissectors/asn1/inap/inap.cnf
index fe9ad0ac..755480e0 100644
--- a/epan/dissectors/asn1/inap/inap.cnf
+++ b/epan/dissectors/asn1/inap/inap.cnf
@@ -63,12 +63,12 @@ ERROR.&ParameterType
OPERATION.&ArgumentType
OPERATION.&ResultType
-# This table creates the value_sting to name Inap operation codes and errors
+# This table creates the value_string 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[] = {
+static const value_string inap_opr_code_strings[] = {
#.TABLE_BODY OPERATION.&operationCode
{ %(&operationCode)-40s, "%(_ident)s" },
#.TABLE_FTR
@@ -141,7 +141,7 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
# Create a table of opcode and corresponding args and res
#.TABLE11_HDR
typedef struct _inap_op_t {
- gint32 opcode;
+ int32_t opcode;
dissector_t arg_pdu;
dissector_t res_pdu;
} inap_op_t;
@@ -155,7 +155,7 @@ static const inap_op_t inap_op_tab[] = {
#.TABLE11_HDR
typedef struct _inap_err_t {
- gint32 errcode;
+ int32_t errcode;
dissector_t err_pdu;
} inap_err_t;
@@ -170,7 +170,7 @@ static const inap_err_t inap_err_tab[] = {
#.FN_BODY Code/local VAL_PTR = &opcode
%(DEFAULT_BODY)s
- if (is_ExtensionField == FALSE){
+ if (is_ExtensionField == false){
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)"));
@@ -230,7 +230,7 @@ static const inap_err_t inap_err_tab[] = {
#.FN_HDR ExtensionField
obj_id = NULL;
- is_ExtensionField =TRUE;
+ is_ExtensionField =true;
#.FN_PARS Code/global FN_VARIANT = _str VAL_PTR = &obj_id
@@ -243,7 +243,7 @@ static const inap_err_t inap_err_tab[] = {
call_data_dissector(tvb, actx->pinfo, ext_tree);
offset = tvb_reported_length_remaining(tvb,offset);
}
- is_ExtensionField = FALSE;
+ is_ExtensionField = false;
@@ -334,7 +334,7 @@ dissect_isup_called_party_number_parameter(parameter_tvb, actx->pinfo, tree, NUL
* -- For the use of cause and location values refer to Q.850.
*/
tvbuff_t *parameter_tvb;
- guint8 Cause_value;
+ uint8_t Cause_value;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -362,8 +362,8 @@ dissect_isup_called_party_number_parameter(parameter_tvb, actx->pinfo, tree, NUL
*/
tvbuff_t *parameter_tvb;
proto_tree *subtree;
- gint ett = -1;
- gboolean digits = FALSE;
+ int ett = -1;
+ bool digits = false;
%(DEFAULT_BODY)s
@@ -376,7 +376,7 @@ dissect_isup_called_party_number_parameter(parameter_tvb, actx->pinfo, tree, NUL
ett = ett_inap_assistingSSPIPRoutingAddress;
} else if (hf_index == hf_inap_correlationID) {
ett = ett_inap_correlationID;
- digits = (opcode != opcode_assistRequestInstructions) ? TRUE : FALSE;
+ digits = (opcode != opcode_assistRequestInstructions) ? true : false;
} else if (hf_index == hf_inap_calledAddressValue) {
ett = ett_inap_calledAddressValue;
} else if (hf_index == hf_inap_callingAddressValue) {
@@ -385,30 +385,30 @@ dissect_isup_called_party_number_parameter(parameter_tvb, actx->pinfo, tree, NUL
ett = ett_inap_number;
} else if (hf_index == hf_inap_dialledNumber) {
ett = ett_inap_dialledNumber;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_inap_callingLineID) {
ett = ett_inap_callingLineID;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_inap_iNServiceControlCode) {
ett = ett_inap_iNServiceControlCode;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_inap_iNServiceControlCodeLow) {
ett = ett_inap_iNServiceControlCodeLow;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_inap_iNServiceControlCodeHigh) {
ett = ett_inap_iNServiceControlCodeHigh;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_inap_lineID) {
ett = ett_inap_lineID;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_inap_prefix) {
ett = ett_inap_prefix;
- digits = TRUE;
+ digits = true;
} else if (hf_index == hf_inap_iPAddressValue) {
ett = ett_inap_iPAddressValue;
} else if (hf_index == hf_inap_digitsResponse) {
ett = ett_inap_digitsResponse;
- digits = TRUE;
+ digits = true;
}
subtree = proto_item_add_subtree(actx->created_item, ett);
diff --git a/epan/dissectors/asn1/inap/packet-inap-template.c b/epan/dissectors/asn1/inap/packet-inap-template.c
index 6baba991..cd91dd80 100644
--- a/epan/dissectors/asn1/inap/packet-inap-template.c
+++ b/epan/dissectors/asn1/inap/packet-inap-template.c
@@ -19,6 +19,7 @@
#include <epan/oids.h>
#include <epan/expert.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-inap.h"
@@ -38,7 +39,7 @@ void proto_reg_handoff_inap(void);
/* Initialize the protocol and registered fields */
-static int proto_inap = -1;
+static int proto_inap;
/* include constants */
#include "packet-inap-val.h"
@@ -51,10 +52,10 @@ static range_t *global_ssn_range;
static dissector_handle_t inap_handle;
/* Global variables */
-static guint32 opcode=0;
-static guint32 errorCode=0;
-static const char *obj_id = NULL;
-static gboolean is_ExtensionField =FALSE;
+static uint32_t opcode=0;
+static uint32_t errorCode=0;
+static const char *obj_id;
+static bool is_ExtensionField;
static int inap_opcode_type;
#define INAP_OPCODE_INVOKE 1
@@ -62,47 +63,49 @@ static int inap_opcode_type;
#define INAP_OPCODE_RETURN_ERROR 3
#define INAP_OPCODE_REJECT 4
-static int hf_inap_cause_indicator = -1;
+static int hf_inap_cause_indicator;
/* Initialize the subtree pointers */
-static gint ett_inap = -1;
-static gint ett_inapisup_parameter = -1;
-static gint ett_inap_RedirectionInformation = -1;
-static gint ett_inap_HighLayerCompatibility = -1;
-static gint ett_inap_extension_data = -1;
-static gint ett_inap_cause = -1;
-static gint ett_inap_calledAddressValue = -1;
-static gint ett_inap_callingAddressValue = -1;
-static gint ett_inap_additionalCallingPartyNumber = -1;
-static gint ett_inap_assistingSSPIPRoutingAddress = -1;
-static gint ett_inap_correlationID = -1;
-static gint ett_inap_number = -1;
-static gint ett_inap_dialledNumber = -1;
-static gint ett_inap_callingLineID = -1;
-static gint ett_inap_iNServiceControlCode = -1;
-static gint ett_inap_iNServiceControlCodeLow = -1;
-static gint ett_inap_iNServiceControlCodeHigh = -1;
-static gint ett_inap_lineID = -1;
-static gint ett_inap_prefix = -1;
-static gint ett_inap_iPAddressValue = -1;
-static gint ett_inap_digitsResponse = -1;
+static int ett_inap;
+static int ett_inapisup_parameter;
+static int ett_inap_RedirectionInformation;
+static int ett_inap_HighLayerCompatibility;
+static int ett_inap_extension_data;
+static int ett_inap_cause;
+static int ett_inap_calledAddressValue;
+static int ett_inap_callingAddressValue;
+static int ett_inap_additionalCallingPartyNumber;
+static int ett_inap_assistingSSPIPRoutingAddress;
+static int ett_inap_correlationID;
+static int ett_inap_number;
+static int ett_inap_dialledNumber;
+static int ett_inap_callingLineID;
+static int ett_inap_iNServiceControlCode;
+static int ett_inap_iNServiceControlCodeLow;
+static int ett_inap_iNServiceControlCodeHigh;
+static int ett_inap_lineID;
+static int ett_inap_prefix;
+static int ett_inap_iPAddressValue;
+static int ett_inap_digitsResponse;
#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;
+static expert_field ei_inap_unknown_invokeData;
+static expert_field ei_inap_unknown_returnResultData;
+static expert_field ei_inap_unknown_returnErrorData;
#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}
+#if 0
+static 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}
};
+#endif
-/* Forvard declarations */
+/* Forward 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);
@@ -131,8 +134,8 @@ TC-Invokable OPERATION ::=
#include "packet-inap-table2.c"
-static guint8 inap_pdu_type = 0;
-static guint8 inap_pdu_size = 0;
+static uint8_t inap_pdu_type;
+static uint8_t inap_pdu_size;
static int
@@ -142,7 +145,7 @@ dissect_inap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *d
proto_tree *tree=NULL;
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "INAP");
@@ -151,25 +154,25 @@ dissect_inap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *d
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;
+ inap_pdu_type = tvb_get_uint8(tvb, offset)&0x0f;
/* Get the length and add 2 */
- inap_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+ inap_pdu_size = tvb_get_uint8(tvb, offset+1)+2;
opcode = 0;
- is_ExtensionField =FALSE;
- dissect_inap_ROS(TRUE, tvb, offset, &asn1_ctx, tree, -1);
+ is_ExtensionField =false;
+ 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, gpointer ptr _U_)
+static void range_delete_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
delete_itu_tcap_subdissector(ssn, inap_handle);
}
}
-static void range_add_callback(guint32 ssn, gpointer ptr _U_)
+static void range_add_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn) {
add_itu_tcap_subdissector(ssn, inap_handle);
@@ -178,11 +181,11 @@ static void range_add_callback(guint32 ssn, gpointer ptr _U_)
void proto_reg_handoff_inap(void) {
- static gboolean inap_prefs_initialized = FALSE;
+ static bool inap_prefs_initialized = false;
static range_t *ssn_range;
if (!inap_prefs_initialized) {
- inap_prefs_initialized = TRUE;
+ inap_prefs_initialized = true;
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");
@@ -221,7 +224,7 @@ void proto_register_inap(void) {
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_inap,
&ett_inapisup_parameter,
&ett_inap_RedirectionInformation,
diff --git a/epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c b/epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c
index 4b0c9eb6..9006b472 100644
--- a/epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c
+++ b/epan/dissectors/asn1/isdn-sup/packet-isdn-sup-template.c
@@ -15,6 +15,7 @@
#include <epan/packet.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
@@ -32,9 +33,9 @@ static dissector_handle_t isdn_sup_err_handle;
#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;
+static int proto_isdn_sup;
+static int hf_isdn_sup_operation;
+static int hf_isdn_sup_error;
/* Global variables */
@@ -44,7 +45,7 @@ static rose_ctx_t isdn_sup_rose_ctx;
#endif
typedef struct _isdn_sup_op_t {
- gint32 opcode;
+ int32_t opcode;
dissector_t arg_pdu;
dissector_t res_pdu;
} isdn_sup_op_t;
@@ -57,7 +58,7 @@ typedef struct _isdn_global_sup_op_t {
typedef struct isdn_sup_err_t {
- gint32 errcode;
+ int32_t errcode;
dissector_t err_pdu;
} isdn_sup_err_t;
@@ -72,19 +73,19 @@ static const value_string isdn_sup_str_error[] = {
{ 0, NULL}
};
-static int hf_isdn_sup = -1;
+static int hf_isdn_sup;
#include "packet-isdn-sup-hf.c"
/* Initialize the subtree pointers */
-static gint ett_isdn_sup = -1;
+static int ett_isdn_sup;
#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;
+/* static expert_field ei_isdn_sup_unsupported_arg_type; */
+static expert_field ei_isdn_sup_unsupported_result_type;
+static expert_field ei_isdn_sup_unsupported_error_type;
/* Preference settings default */
@@ -107,7 +108,7 @@ static const isdn_sup_err_t isdn_sup_err_tab[] = {
};
-static const isdn_sup_op_t *get_op(gint32 opcode) {
+static const isdn_sup_op_t *get_op(int32_t opcode) {
int i;
/* search from the end to get the last occurrence if the operation is redefined in some newer specification */
@@ -117,7 +118,7 @@ static const isdn_sup_op_t *get_op(gint32 opcode) {
return NULL;
}
-static const isdn_sup_err_t *get_err(gint32 errcode) {
+static const isdn_sup_err_t *get_err(int32_t errcode) {
int i;
/* search from the end to get the last occurrence if the operation is redefined in some newer specification */
@@ -132,8 +133,8 @@ 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;
+ int32_t opcode = 0;
+ const char *p;
const isdn_sup_op_t *op_ptr;
proto_item *ti;
proto_tree *isdn_sup_tree;
@@ -181,10 +182,10 @@ dissect_isdn_sup_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
/*--- dissect_isdn_sup_res -------------------------------------------------------*/
static int
dissect_isdn_sup_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
- gint offset = 0;
+ int offset = 0;
rose_ctx_t *rctx;
- gint32 opcode = 0;
- const gchar *p;
+ int32_t opcode = 0;
+ const char *p;
const isdn_sup_op_t *op_ptr;
proto_item *ti;
proto_tree *isdn_sup_tree;
@@ -233,9 +234,9 @@ 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;
+ int32_t errcode;
const isdn_sup_err_t *err_ptr;
- const gchar *p;
+ const char *p;
proto_item *ti;
proto_tree *isdn_sup_tree;
@@ -330,7 +331,7 @@ void proto_register_isdn_sup(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_isdn_sup,
#include "packet-isdn-sup-ettarr.c"
diff --git a/epan/dissectors/asn1/its/CAMv2.asn b/epan/dissectors/asn1/its/CAMv2.asn
new file mode 100644
index 00000000..500e97c3
--- /dev/null
+++ b/epan/dissectors/asn1/its/CAMv2.asn
@@ -0,0 +1,139 @@
+-- https://www.etsi.org/deliver/etsi_en/302600_302699/30263702/01.04.01_30/en_30263702v010401v.pdf
+--
+CAM-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2)
+}
+
+ DEFINITIONS AUTOMATIC TAGS ::=
+
+ BEGIN
+
+ IMPORTS
+
+ ItsPduHeader, ReferencePosition, AccelerationControl, CauseCode, Curvature,CurvatureCalculationMode,DriveDirection,
+ Heading, LanePosition, EmergencyPriority, EmbarkationStatus, Speed,
+ LongitudinalAcceleration, LateralAcceleration, VerticalAcceleration, StationType,
+ ExteriorLights, DangerousGoodsBasic, SpecialTransportType, LightBarSirenInUse, VehicleRole,
+ VehicleLength, VehicleWidth, PathHistoryV2, RoadworksSubCauseCode, ClosedLanes, TrafficRule,
+ SpeedLimit, SteeringWheelAngle, PerformanceClass, YawRate, ProtectedCommunicationZone, PtActivation,
+ Latitude, Longitude, ProtectedCommunicationZonesRSU, CenDsrcTollingZone
+ -- Wireshark modification
+ FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1)}
+ ;
+ -- The root data frame for cooperative awareness messages
+ CAM ::= SEQUENCE {
+ header ItsPduHeader,
+ cam CoopAwareness
+ }
+
+ CoopAwareness ::= SEQUENCE {
+ generationDeltaTime GenerationDeltaTime,
+ camParameters CamParameters
+ }
+
+ CamParameters ::= SEQUENCE {
+ basicContainer BasicContainer,
+ highFrequencyContainer HighFrequencyContainer,
+ lowFrequencyContainer LowFrequencyContainer OPTIONAL,
+ specialVehicleContainer SpecialVehicleContainer OPTIONAL,
+ ...
+ }
+
+ HighFrequencyContainer ::= CHOICE {
+ basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency,
+ rsuContainerHighFrequency RSUContainerHighFrequency,
+ ...
+ }
+
+ LowFrequencyContainer ::= CHOICE {
+ basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency,
+ ...
+ }
+
+ SpecialVehicleContainer ::= CHOICE {
+ publicTransportContainer PublicTransportContainer,
+ specialTransportContainer SpecialTransportContainer,
+ dangerousGoodsContainer DangerousGoodsContainer,
+ roadWorksContainerBasic RoadWorksContainerBasic,
+ rescueContainer RescueContainer,
+ emergencyContainer EmergencyContainer,
+ safetyCarContainer SafetyCarContainer,
+ ...
+ }
+
+ BasicContainer ::= SEQUENCE {
+ stationType StationType,
+ referencePosition ReferencePosition,
+ ...
+ }
+
+ BasicVehicleContainerHighFrequency ::= SEQUENCE {
+ heading Heading,
+ speed Speed,
+ driveDirection DriveDirection,
+ vehicleLength VehicleLength,
+ vehicleWidth VehicleWidth,
+ longitudinalAcceleration LongitudinalAcceleration,
+ curvature Curvature,
+ curvatureCalculationMode CurvatureCalculationMode,
+ yawRate YawRate,
+ accelerationControl AccelerationControl OPTIONAL,
+ lanePosition LanePosition OPTIONAL,
+ steeringWheelAngle SteeringWheelAngle OPTIONAL,
+ lateralAcceleration LateralAcceleration OPTIONAL,
+ verticalAcceleration VerticalAcceleration OPTIONAL,
+ performanceClass PerformanceClass OPTIONAL,
+ cenDsrcTollingZone CenDsrcTollingZone OPTIONAL
+ }
+
+ BasicVehicleContainerLowFrequency ::= SEQUENCE {
+ vehicleRole VehicleRole,
+ exteriorLights ExteriorLights,
+ pathHistory PathHistoryV2
+ }
+
+ PublicTransportContainer ::= SEQUENCE {
+ embarkationStatus EmbarkationStatus,
+ ptActivation PtActivation OPTIONAL
+ }
+
+ SpecialTransportContainer ::= SEQUENCE {
+ specialTransportType SpecialTransportType,
+ lightBarSirenInUse LightBarSirenInUse
+ }
+
+ DangerousGoodsContainer ::= SEQUENCE {
+ dangerousGoodsBasic DangerousGoodsBasic
+ }
+
+ RoadWorksContainerBasic ::= SEQUENCE {
+ roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL,
+ lightBarSirenInUse LightBarSirenInUse,
+ closedLanes ClosedLanes OPTIONAL
+ }
+
+ RescueContainer ::= SEQUENCE {
+ lightBarSirenInUse LightBarSirenInUse
+ }
+
+ EmergencyContainer ::= SEQUENCE {
+ lightBarSirenInUse LightBarSirenInUse,
+ incidentIndication CauseCode OPTIONAL,
+ emergencyPriority EmergencyPriority OPTIONAL
+ }
+
+ SafetyCarContainer ::= SEQUENCE {
+ lightBarSirenInUse LightBarSirenInUse,
+ incidentIndication CauseCode OPTIONAL,
+ trafficRule TrafficRule OPTIONAL,
+ speedLimit SpeedLimit OPTIONAL
+ }
+
+ RSUContainerHighFrequency ::= SEQUENCE {
+ protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL,
+ ...
+ }
+
+ GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535)
+
+END
diff --git a/epan/dissectors/asn1/its/ETSI-ITS-CDD.asn b/epan/dissectors/asn1/its/ETSI-ITS-CDD.asn
index 63050676..6ad16080 100644
--- a/epan/dissectors/asn1/its/ETSI-ITS-CDD.asn
+++ b/epan/dissectors/asn1/its/ETSI-ITS-CDD.asn
@@ -1,25 +1,81 @@
--! @options: no-fields-header
-ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1)}
+ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
------------------------------------------
--- Specification of CDD Data Elements:
+-- Specification of CDD Data Elements:
------------------------------------------
-AccelerationChange::= ENUMERATED {
- accelerate (0),
- decelerate (1)
+/**
+ * This DE indicates a change of acceleration.
+ *
+ * The value shall be set to:
+ * - 0 - `accelerate` - if the magnitude of the horizontal velocity vector increases.
+ * - 1 - `decelerate` - if the magnitude of the horizontal velocity vector decreases.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+AccelerationChange::= ENUMERATED {
+ accelerate (0),
+ decelerate (1)
}
+/**
+ * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2,
+ * - `102` if the confidence value is unavailable.ProtocolVersion
+ *
+ * The value 0 shall not be used.
+ *
+ * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the acceleration value may be valid and used by the application.
+ *
+ * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application.
+ *
+ * @unit 0,1 m/s^2
+ * @category: Kinematic information
+ * @revision: Description revised in V2.1.1
+ */
AccelerationConfidence ::= INTEGER {
- outOfRange (101),
+ outOfRange (101),
unavailable (102)
} (0..102)
+/**
+ * This DE indicates the current controlling mechanism for longitudinal movement of the vehicle.
+ * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle
+ * acceleration control system is engaged or not. Currently, this DE includes the information of the
+ * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise
+ * control system, cruise control system and speed limiter system.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `brakePedalEngaged` - Driver is stepping on the brake pedal,
+ * - 1 - `gasPedalEngaged` - Driver is stepping on the gas pedal,
+ * - 2 - `emergencyBrakeEngaged` - emergency brake system is engaged,
+ * - 3 - `collisionWarningEngaged`- collision warning system is engaged,
+ * - 4 - `accEngaged` - ACC is engaged,
+ * - 5 - `cruiseControlEngaged` - cruise control is engaged,
+ * - 6 - `speedLimiterEngaged` - speed limiter is engaged.
+ *
+ * Otherwise (for example when the corresponding system is not available due to non equipped system
+ * or information is unavailable), the corresponding bit shall be set to 0.
+ *
+ * @note: The system engagement condition is OEM specific and therefore out of scope of the present document.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
AccelerationControl ::= BIT STRING {
brakePedalEngaged (0),
gasPedalEngaged (1),
@@ -30,27 +86,85 @@ AccelerationControl ::= BIT STRING {
speedLimiterEngaged (6)
} (SIZE(7))
+/**
+ * This DE represents the magnitude of the acceleration vector in a defined coordinate system.
+ *
+ * The value shall be set to:
+ * - `0` to indicate no acceleration,
+ * - `n` (`n > 0` and `n < 160`) to indicate acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @unit 0,1 m/s^2
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
AccelerationMagnitudeValue ::= INTEGER {
positiveOutOfRange (160),
- unavailable (161)
+ unavailable (161)
} (0.. 161)
-
+/**
+ * This DE represents the value of an acceleration component in a defined coordinate system.
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate negative acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `n` (`n > 0` and `n < 160`) to indicate positive acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @note: the formula for values > -160 and <160 results in rounding up to the next value. Zero acceleration is indicated using n=0.
+ * @unit 0,1 m/s^2
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
AccelerationValue ::= INTEGER {
negativeOutOfRange (-160),
positiveOutOfRange (160),
- unavailable (161)
+ unavailable (161)
} (-160 .. 161)
+/**
+ * This DE indicates an access technology.
+ *
+ * The value shall be set to:
+ * - `0`: in case of any access technology class,
+ * - `1`: in case of ITS-G5 access technology class,
+ * - `2`: in case of LTE-V2X access technology class,
+ * - `3`: in case of NR-V2X access technology class.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
AccessTechnologyClass ::= ENUMERATED {
- any (0),
- itsg5Class (1),
- ltev2xClass (2),
+ any (0),
+ itsg5Class (1),
+ ltev2xClass (2),
nrv2xClass (3),
...
}
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `accident`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case the information on the sub cause of the accident is unavailable,
+ * - 1 - `multiVehicleAccident` - in case more than two vehicles are involved in accident,
+ * - 2 - `heavyAccident` - in case the airbag of the vehicle involved in the accident is triggered,
+ * the accident requires important rescue and/or recovery work,
+ * - 3 - `accidentInvolvingLorry` - in case the accident involves a lorry,
+ * - 4 - `accidentInvolvingBus` - in case the accident involves a bus,
+ * - 5 - `accidentInvolvingHazardousMaterials`- in case the accident involves hazardous material,
+ * - 6 - `accidentOnOppositeLane` - in case the accident happens on opposite lanes,
+ * - 7 - `unsecuredAccident` - in case the accident is not secured,
+ * - 8 - `assistanceRequested` - in case rescue and assistance are requested,
+ * - 9-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
AccidentSubCauseCode ::= INTEGER {
unavailable (0),
multiVehicleAccident (1),
@@ -63,6 +177,26 @@ AccidentSubCauseCode ::= INTEGER {
assistanceRequested (8)
} (0..255)
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the cause of the low road adhesion is unavailable,
+ * - 1 - `heavyFrostOnRoad`- in case the low road adhesion is due to heavy frost on the road,
+ * - 2 - `fuelOnRoad` - in case the low road adhesion is due to fuel on the road,
+ * - 3 - `mudOnRoad` - in case the low road adhesion is due to mud on the road,
+ * - 4 - `snowOnRoad` - in case the low road adhesion is due to snow on the road,
+ * - 5 - `iceOnRoad` - in case the low road adhesion is due to ice on the road,
+ * - 6 - `blackIceOnRoad` - in case the low road adhesion is due to black ice on the road,
+ * - 7 - `oilOnRoad` - in case the low road adhesion is due to oil on the road,
+ * - 8 - `looseChippings` - in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard,
+ * - 9 - `instantBlackIce` - in case the low road adhesion is due to instant black ice on the road surface,
+ * - 10 - `roadsSalted` - when the low road adhesion is due to salted road,
+ * - 11-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {
unavailable (0),
heavyFrostOnRoad (1),
@@ -77,6 +211,22 @@ AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {
roadsSalted (10)
} (0..255)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of extreme weather condition is unavailable,
+ * - 1 - `strongWinds` - in case the type of extreme weather condition is strong wind,
+ * - 2 - `damagingHail`- in case the type of extreme weather condition is damaging hail,
+ * - 3 - `hurricane` - in case the type of extreme weather condition is hurricane,
+ * - 4 - `thunderstorm`- in case the type of extreme weather condition is thunderstorm,
+ * - 5 - `tornado` - in case the type of extreme weather condition is tornado,
+ * - 6 - `blizzard` - in case the type of extreme weather condition is blizzard.
+ * - 7-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {
unavailable (0),
strongWinds (1),
@@ -87,6 +237,19 @@ AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {
blizzard (6)
} (0..255)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of precipitation is unavailable,
+ * - 1 - `heavyRain` - in case the type of precipitation is heavy rain,
+ * - 2 - `heavySnowfall` - in case the type of precipitation is heavy snow fall,
+ * - 3 - `softHail` - in case the type of precipitation is soft hail.
+ * - 4-255 - are reserved for future usage
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {
unavailable (0),
heavyRain (1),
@@ -94,6 +257,24 @@ AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {
softHail (3)
} (0..255)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the cause of low visibility is unavailable,
+ * - 1 - `fog` - in case the cause of low visibility is fog,
+ * - 2 - `smoke` - in case the cause of low visibility is smoke,
+ * - 3 - `heavySnowfall` - in case the cause of low visibility is heavy snow fall,
+ * - 4 - `heavyRain` - in case the cause of low visibility is heavy rain,
+ * - 5 - `heavyHail` - in case the cause of low visibility is heavy hail,
+ * - 6 - `lowSunGlare` - in case the cause of low visibility is sun glare,
+ * - 7 - `sandstorms` - in case the cause of low visibility is sand storm,
+ * - 8 - `swarmsOfInsects`- in case the cause of low visibility is swarm of insects.
+ * - 9-255 - are reserved for future usage
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {
unavailable (0),
fog (1),
@@ -106,12 +287,57 @@ AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {
swarmsOfInsects (8)
} (0..255)
+/**
+ * This DE represents the air humidity in tenths of percent.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1001`) indicates that the applicable value is equal to or less than n x 0,1 percent and greater than (n-1) x 0,1 percent.
+ * - `1001` indicates that the air humidity is unavailable.
+ *
+ * @category: Basic information
+ * @unit: 0,1 %
+ * @revision: created in V2.1.1
+ */
AirHumidity ::= INTEGER {
oneHundredPercent (1000),
unavailable (1001)
} (1..1001)
-
+/**
+ * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre,
+ * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre,
+ * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre,
+ * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre,
+ * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre,
+ * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre,
+ * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre,
+ * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre,
+ * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres,
+ * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres,
+ * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres,
+ * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres,
+ * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres,
+ * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres,
+ * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres,
+ * - 15 - `unavailable` - if the confidence value is unavailable.
+ *
+ * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused
+ * by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the altitude value may be valid and used by the application.
+ *
+ * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the
+ * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application.
+ *
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
AltitudeConfidence ::= ENUMERATED {
alt-000-01 (0),
alt-000-02 (1),
@@ -131,80 +357,284 @@ AltitudeConfidence ::= ENUMERATED {
unavailable (15)
}
+/**
+ * This DE represents the altitude value in a WGS84 coordinate system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `-100 000` if the altitude is equal to or less than -1 000 m,
+ * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre,
+ * - `800 000` if the altitude greater than 7 999,99 m,
+ * - `800 001` if the information is not available.
+ *
+ * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary.
+ * @unit: 0,01 metre
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed)
+ */
AltitudeValue ::= INTEGER {
negativeOutOfRange (-100000),
postiveOutOfRange (800000),
unavailable (800001)
} (-100000..800001)
+/**
+ * This DE indicates the angle confidence value which represents the estimated absolute accuracy of an angle value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the accuracy is equal to or less than n * 0,1 degrees and greater than (n-1) x * 0,1 degrees,
+ * - `126` if the accuracy is out of range, i.e. greater than 12,5 degrees,
+ * - `127` if the accuracy information is not available.
+ *
+ * @unit: 0,1 degrees
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
AngleConfidence ::= INTEGER {
outOfRange (126),
- unavailable (127)
+ unavailable (127)
} (1..127)
+/**
+ * This DE indicates the angular speed confidence value which represents the estimated absolute accuracy of an angular speed value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ * For correlation computation, maximum interval levels can be assumed.
+ *
+ * The value shall be set to:
+ * - 0 - `degSec-01` - if the accuracy is equal to or less than 1 degree/second,
+ * - 1 - `degSec-02` - if the accuracy is equal to or less than 2 degrees/second and greater than 1 degree/second,
+ * - 2 - `degSec-05` - if the accuracy is equal to or less than 5 degrees/second and greater than 2 degrees/second,
+ * - 3 - `degSec-10` - if the accuracy is equal to or less than 10 degrees/second and greater than 5 degrees/second,
+ * - 4 - `degSec-20` - if the accuracy is equal to or less than 20 degrees/second and greater than 10 degrees/second,
+ * - 5 - `degSec-50` - if the accuracy is equal to or less than 50 degrees/second and greater than 20 degrees/second,
+ * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second,
+ * - 7 - `unavailable` - if the accuracy information is unavailable.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
AngularSpeedConfidence ::= ENUMERATED {
- degSec-01 (0),
- degSec-02 (1),
- degSec-05 (2),
- degSec-10 (3),
- degSec-20 (4),
- degSec-50 (5),
- outOfRange (6),
- unavailable (7)
+ degSec-01 (0),
+ degSec-02 (1),
+ degSec-05 (2),
+ degSec-10 (3),
+ degSec-20 (4),
+ degSec-50 (5),
+ outOfRange (6),
+ unavailable (7)
}
+/**
+ * This DE indicates the angular acceleration confidence value which represents the estimated accuracy of an angular acceleration value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ * For correlation computation, maximum interval levels shall be assumed.
+ *
+ * The value shall be set to:
+ * - 0 - `degSecSquared-01` - if the accuracy is equal to or less than 1 degree/second^2,
+ * - 1 - `degSecSquared-02` - if the accuracy is equal to or less than 2 degrees/second^2 and greater than 1 degree/second^2,
+ * - 2 - `degSecSquared-05` - if the accuracy is equal to or less than 5 degrees/second^2 and greater than 1 degree/second^2,
+ * - 3 - `degSecSquared-10` - if the accuracy is equal to or less than 10 degrees/second^2 and greater than 5 degrees/second^2,
+ * - 4 - `degSecSquared-20` - if the accuracy is equal to or less than 20 degrees/second^2 and greater than 10 degrees/second^2,
+ * - 5 - `degSecSquared-50` - if the accuracy is equal to or less than 50 degrees/second^2 and greater than 20 degrees/second^2,
+ * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second^2,
+ * - 7 - `unavailable` - if the accuracy information is unavailable.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
AngularAccelerationConfidence ::= ENUMERATED {
- degSecSquared-01 (0),
- degSecSquared-02 (1),
- degSecSquared-05 (2),
- degSecSquared-10 (3),
- degSecSquared-20 (4),
- degSecSquared-50 (5),
- outOfRange (6),
- unavailable (7)
+ degSecSquared-01 (0),
+ degSecSquared-02 (1),
+ degSecSquared-05 (2),
+ degSecSquared-10 (3),
+ degSecSquared-20 (4),
+ degSecSquared-50 (5),
+ outOfRange (6),
+ unavailable (7)
}
+/**
+ * This DE indicates the number of axles of a passing train.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 2` and `n < 1001`) indicates that the train has n x axles,
+ * - `1001`indicates that the number of axles is out of range,
+ * - `1002` the information is unavailable.
+ *
+ *
+ * @unit: Number of axles
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
AxlesCount ::= INTEGER{
outOfRange (1001),
unavailable (1002)
-} (2..1002)
-
+} (2..1002)
+
+/**
+ * This DE represents the measured uncompensated atmospheric pressure.
+ *
+ * The value shall be set to:
+ * - `2999` indicates that the applicable value is less than 29990 Pa,
+ * - `n` (`n > 2999` and `n <= 12000`) indicates that the applicable value is equal to or less than n x 10 Pa and greater than (n-1) x 10 Pa,
+ * - `12001` indicates that the values is greater than 120000 Pa,
+ * - `12002` indicates that the information is not available.
+ *
+ * @category: Basic information
+ * @unit: 10 Pascal
+ * @revision: Created in V2.1.1
+*/
BarometricPressure ::= INTEGER{
outOfRangelower (2999),
outOfRangeUpper (12001),
unavailable (12002)
} (2999..12002)
+
+/**
+ * This DE indicates the cardinal number of bogies of a train.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 1` and `n < 100`) indicates that the train has n x bogies,
+ * - `100`indicates that the number of bogies is out of range,
+ * - `101` the information is unavailable.
+ *
+ * @unit: Number of bogies
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
BogiesCount ::= INTEGER{
outOfRange (100),
unavailable (101)
} (2..101)
-
+/**
+ * The DE represents a cardinal number that counts the size of a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
CardinalNumber1B ::= INTEGER(0..255)
+/**
+ * The DE represents a cardinal number that counts the size of a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
CardinalNumber3b ::= INTEGER(1..8)
+/**
+ * This DE represents an angle value described in a local Cartesian coordinate system, per default counted positive in
+ * a right-hand local coordinate system from the abscissa.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n < 3600`) if the angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees,
+ * - `3601` if the information is not available.
+ *
+ * The value 3600 shall not be used.
+ *
+ * @unit 0,1 degrees
+ * @category: Basic information
+ * @revision: Created in V2.1.1, description and value for 3601 corrected in V2.2.1
+*/
CartesianAngleValue ::= INTEGER {
valueNotUsed (3600),
unavailable (3601)
} (0..3601)
+/**
+ * This DE represents an angular acceleration value described in a local Cartesian coordinate system, per default counted positive in
+ * a right-hand local coordinate system from the abscissa.
+ *
+ * The value shall be set to:
+ * - `-255` if the acceleration is equal to or less than -255 degrees/s^2,
+ * - `n` (`n > -255` and `n < 255`) if the acceleration is equal to or less than n x 1 degree/s^2,
+ and greater than `(n-1)` x 0,01 degree/s^2,
+ * - `255` if the acceleration is greater than 254 degrees/s^2,
+ * - `256` if the information is unavailable.
+ *
+ * @unit: degree/s^2 (degrees per second squared)
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
CartesianAngularAccelerationComponentValue ::= INTEGER {
negativeOutOfRange (-255),
positiveOutOfRange (255),
unavailable (256)
} (-255..256)
+/**
+ * This DE represents an angular velocity component described in a local Cartesian coordinate system, per default counted positive in
+ * a right-hand local coordinate system from the abscissa.
+ *
+ * The value shall be set to:
+ * - `-255` if the velocity is equal to or less than -255 degrees/s,
+ * - `n` (`n > -255` and `n < 255`) if the velocity is equal to or less than n x 1 degree/s, and greater than (n-1) x 1 degree/s,
+ * - `255` if the velocity is greater than 254 degrees/s,
+ * - `256` if the information is unavailable.
+ *
+ * @unit: degree/s
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
CartesianAngularVelocityComponentValue ::= INTEGER {
negativeOutofRange (-255),
positiveOutOfRange (255),
unavailable (256)
} (-255..256)
-
+/**
+ *The DE represents the value of the cause code of an event.
+ *
+ * The value shall be set to:
+ * - 0 - reserved for future use,
+ * - 1 - `trafficCondition` - in case the type of event is an abnormal traffic condition,
+ * - 2 - `accident` - in case the type of event is a road accident,
+ * - 3 - `roadworks` - in case the type of event is roadwork,
+ * - 4 - reserved for future usage,
+ * - 5 - `impassability` - in case the type of event is unmanaged road blocking, referring to any
+ * blocking of a road, partial or total, which has not been adequately
+ * secured and signposted,
+ * - 6 - `adverseWeatherCondition-Adhesion` - in case the type of event is low adhesion,
+ * - 7 - `aquaplaning` - danger of aquaplaning on the road,
+ * - 8 - reserved for future usage,
+ * - 9 - `hazardousLocation-SurfaceCondition` - in case the type of event is abnormal road surface condition,
+ * - 10 - `hazardousLocation-ObstacleOnTheRoad` - in case the type of event is obstacle on the road,
+ * - 11 - `hazardousLocation-AnimalOnTheRoad` - in case the type of event is animal on the road,
+ * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road,
+ * - 13 - reserved for future usage,
+ * - 14 - `wrongWayDriving` - in case the type of the event is vehicle driving in wrong way,
+ * - 15 - `rescueAndRecoveryWorkInProgress` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress,
+ * - 16 - reserved for future usage,
+ * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition`- in case the type of event is extreme weather condition,
+ * - 18 - `adverseWeatherCondition-Visibility` - in case the type of event is low visibility,
+ * - 19 - `adverseWeatherCondition-Precipitation` - in case the type of event is precipitation,
+ * - 20 - `violence` - in case the the type of event is human violence on or near the road,
+ * - 21-25 - reserved for future usage,
+ * - 26 - `slowVehicle` - in case the type of event is slow vehicle driving on the road,
+ * - 27 - `dangerousEndOfQueue` - in case the type of event is dangerous end of vehicle queue,
+ * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations,
+ * - 29-90 - are reserved for future usage,
+ * - 91 - `vehicleBreakdown` - in case the type of event is break down vehicle on the road,
+ * - 92 - `postCrash` - in case the type of event is a detected crash,
+ * - 93 - `humanProblem` - in case the type of event is human health problem in vehicles involved in traffic,
+ * - 94 - `stationaryVehicle` - in case the type of event is stationary vehicle,
+ * - 95 - `emergencyVehicleApproaching` - in case the type of event is an approaching vehicle operating on a mission for which the applicable
+ traffic regulations provide it with defined priority rights in traffic.
+ * - 96 - `hazardousLocation-DangerousCurve` - in case the type of event is dangerous curve,
+ * - 97 - `collisionRisk` - in case the type of event is a collision risk,
+ * - 98 - `signalViolation` - in case the type of event is signal violation,
+ * - 99 - `dangerousSituation` - in case the type of event is dangerous situation in which autonomous safety system in vehicle
+ * is activated,
+ * - 100 - `railwayLevelCrossing` - in case the type of event is a railway level crossing.
+ * - 101-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1, value 28 added in V2.2.1, definition of values 12 and 95 changed in V2.2.1
+ */
CauseCodeType ::= INTEGER {
- reserved (0),
trafficCondition (1),
accident (2),
roadworks (3),
@@ -223,6 +653,7 @@ CauseCodeType ::= INTEGER {
violence (20),
slowVehicle (26),
dangerousEndOfQueue (27),
+ publicTransportVehicleApproaching (28),
vehicleBreakdown (91),
postCrash (92),
humanProblem (93),
@@ -232,81 +663,263 @@ CauseCodeType ::= INTEGER {
collisionRisk (97),
signalViolation (98),
dangerousSituation (99),
- railwayLevelCrossing (100)
+ railwayLevelCrossing (100)
} (0..255)
+/**
+ * This DF represents the value of a cartesian coordinate with a range of -30,94 metres to +10,00 metres.
+ *
+ * The value shall be set to:
+ * - `3094` if the longitudinal offset is out of range, i.e. less than or equal to -30,94 metres,
+ * - `n` (`n > -3 094` and `n < 1 001`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `1001` if the longitudinal offset is out of range, i.e. greater than 10 metres.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
CartesianCoordinateSmall::= INTEGER {
negativeOutOfRange (-3094),
positiveOutOfRange (1001)
-} (-3094..1001)
-
+} (-3094..1001)
+
+/**
+ * This DF represents the value of a cartesian coordinate with a range of -327,68 metres to +327,66 metres.
+ *
+ * The value shall be set to:
+ * - `-32 768` if the longitudinal offset is out of range, i.e. less than or equal to -327,68 metres,
+ * - `n` (`n > -32 768` and `n < 32 767`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `32 767` if the longitudinal offset is out of range, i.e. greater than + 327,66 metres.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
CartesianCoordinate::= INTEGER{
negativeOutOfRange (-32768),
positiveOutOfRange (32767)
} (-32768..32767)
-CartesianCoordinateLarge::= INTEGER{
+/**
+ * This DF represents the value of a cartesian coordinate with a range of -1 310,72 metres to +1 310,70 metres.
+ *
+ * The value shall be set to:
+ * - `-131072` if the longitudinal offset is out of range, i.e. less than or equal to -1 310,72 metres,
+ * - `n` (`n > 131 072` and `n < 131 071`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `131 071` if the longitudinal offset is out of range, i.e. greater than + 1 310,70 metres.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CartesianCoordinateLarge::= INTEGER{
negativeOutOfRange (-131072),
positiveOutOfRange (131071)
} (-131072..131071)
---CenDsrcTollingZoneID::= ProtectedZoneId
-
-ClusterBreakupReason ::= ENUMERATED {
+/**
+ * This DE represents the ID of a CEN DSRC tolling zone.
+ *
+ * @category: Communication information
+ * @revision: V1.3.1
+ * @note: this DE is deprecated and shall not be used anymore.
+ */
+-- Wireshark modification
+-- CenDsrcTollingZoneID::= ProtectedZoneId
+
+/**
+ * This DE indicates the reason why a cluster leader intends to break up the cluster.
+ *
+ * The value shall be set to:
+ * - 0 - `notProvided` - if the information is not provided,
+ * - 1 - `clusteringPurposeCompleted` - if the cluster purpose has been completed,
+ * - 2 - `leaderMovedOutOfClusterBoundingBox` - if the leader moved out of the cluster's bounding box,
+ * - 3 - `joiningAnotherCluster` - if the cluster leader is about to join another cluster,
+ * - 4 - `enteringLowRiskAreaBasedOnMaps` - if the cluster is entering an area idenrified as low risk based on the use of maps,
+ * - 5 - `receptionOfCpmContainingCluster` - if the leader received a Collective Perception Message containing information about the same cluster.
+ * - 6 to 15 - are reserved for future use.
+ *
+ * @category: Cluster information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
+*/
+ClusterBreakupReason ::= INTEGER {
notProvided (0),
clusteringPurposeCompleted (1),
- leaderMovedOutOfClusterBoundingBox (2),
+ leaderMovedOutOfClusterBoundingBox (2),
joiningAnotherCluster (3),
enteringLowRiskAreaBasedOnMaps (4),
- receptionOfCpmContainingCluster (5),
- max(15)
-}
-
-ClusterLeaveReason ::= ENUMERATED {
- notProvided (0),
- clusterLeaderLost (1),
- clusterDisbandedByLeader (2),
- outOfClusterBoundingBox (3),
+ receptionOfCpmContainingCluster (5)
+}(0..15)
+
+/**
+ * This DE indicates the reason why a cluster participant is leaving the cluster.
+ *
+ * The value shall be set to:
+ * - 0 - `notProvided ` - if the information is not provided,
+ * - 1 - `clusterLeaderLost` - if the cluster leader cannot be found anymore,
+ * - 2 - `clusterDisbandedByLeader` - if the cluster has been disbanded by the leader,
+ * - 3 - `outOfClusterBoundingBox` - if the participants moved out of the cluster's bounding box,
+ * - 4 - `outOfClusterSpeedRange` - if the cluster speed moved out of a defined range,
+ * - 5 - `joiningAnotherCluster` - if the participant is joining another cluster,
+ * - 6 - `cancelledJoin` - if the participant is cancelling a joining procedure,
+ * - 7 - `failedJoin` - if the participant failed to join the cluster,
+ * - 8 - `safetyCondition` - if a safety condition applies.
+ * - 9 to 15 - are reserved for future use
+ *
+ * @category: Cluster information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
+ */
+ClusterLeaveReason ::= INTEGER {
+ notProvided (0),
+ clusterLeaderLost (1),
+ clusterDisbandedByLeader (2),
+ outOfClusterBoundingBox (3),
outOfClusterSpeedRange (4),
joiningAnotherCluster (5),
cancelledJoin (6),
failedJoin (7),
- safetyCondition (8),
- max(15)
-}
-
+ safetyCondition (8)
+}(0..15)
+
+/**
+ * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of collision risk is unavailable,
+ * - 1 - `longitudinalCollisionRisk` - in case the type of detected collision risk is longitudinal collision risk,
+ * e.g. forward collision or face to face collision,
+ * - 2 - `crossingCollisionRisk` - in case the type of detected collision risk is crossing collision risk,
+ * - 3 - `lateralCollisionRisk` - in case the type of detected collision risk is lateral collision risk,
+ * - 4 - `vulnerableRoadUser` - in case the type of detected collision risk involves vulnerable road users
+ * e.g. pedestrians or bicycles.
+ * - 5 - `collisionRiskWithPedestrian` - in case the type of detected collision risk involves at least one pedestrian,
+ * - 6 - `collisionRiskWithCyclist` - in case the type of detected collision risk involves at least one cyclist (and no pedestrians),
+ * - 7 - `collisionRiskWithMotorVehicle` - in case the type of detected collision risk involves at least one motor vehicle (and no pedestrians or cyclists),
+ * - 8-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1, values 5-7 assigned in V2.2.1
+ */
CollisionRiskSubCauseCode ::= INTEGER {
- unavailable (0),
- longitudinalCollisionRisk (1),
- crossingCollisionRisk (2),
- lateralCollisionRisk (3),
- vulnerableRoadUser (4)
+ unavailable (0),
+ longitudinalCollisionRisk (1),
+ crossingCollisionRisk (2),
+ lateralCollisionRisk (3),
+ vulnerableRoadUser (4),
+ collisionRiskWithPedestrian (5),
+ collisionRiskWithCyclist (6),
+ collisionRiskWithMotorVehicle (7)
}(0..255)
+/**
+ * This DE represents a confidence level in percentage.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 101`) : for the confidence level in %,
+ * - `101` : in case the confidence level is not available.
+ *
+ * @unit Percent
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
ConfidenceLevel ::= INTEGER {
- unavailable (101)
+ unavailable (101)
} (1..101)
+/**
+ * This DE indicates the coordinate confidence value which represents the estimated absolute accuracy of a position coordinate with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 4095`) if the confidence value is is equal to or less than n x 0,01 metre, and greater than (n-1) x 0,01 metre,
+ * - `4095` if the confidence value is greater than 40,94 metres,
+ * - `4096` if the confidence value is not available.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
CoordinateConfidence ::= INTEGER {
outOfRange (4095),
- unavailable (4096)
+ unavailable (4096)
} (1..4096)
-
+/**
+ * This DE represents the Bravais-Pearson correlation value for each cell of a lower triangular correlation matrix.
+ *
+ * The value shall be set to:
+ * - `-100` in case of full negative correlation,
+ * - `n` (`n > -100` and `n < 0`) if the correlation is negative and equal to n x 100,
+ * - `0` in case of no correlation,
+ * - `n` (`n > 0` and `n < 100`) if the correlation is positive and equal to n x 100,
+ * - `100` in case of full positive correlation,
+ * - `101` in case the correlation information is unavailable.
+ *
+ * @unit: the value is scaled by 100
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
CorrelationCellValue ::= INTEGER {
- full-negative-correlation (-100),
- no-correlation (0),
+ full-negative-correlation (-100),
+ no-correlation (0),
full-positive-correlation (100),
- unavailable (101)
+ unavailable (101)
} (-100..101)
+/**
+ * This DE represents an ISO 3166-1 [25] country code encoded using ITA-2 encoding.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.2.1 based on ISO 14816 [23]
+*/
+-- Wireshark modification
+-- CountryCode ::= BIT STRING(SIZE(10))
+
+/**
+ * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value.
+ *
+ * The value shall be set to:
+ * - 0 - `yawRateUsed` - if the yaw rate is used,
+ * - 1 - `yawRateNotUsed` - if the yaw rate is not used,
+ * - 2 - `unavailable` - if the information of curvature calculation mode is unknown.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
CurvatureCalculationMode ::= ENUMERATED {
- yawRateUsed (0),
- yawRateNotUsed (1),
- unavailable (2),
+ yawRateUsed (0),
+ yawRateNotUsed (1),
+ unavailable (2),
...
}
+/**
+ * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1,
+ * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1,
+ * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1,
+ * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1,
+ * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1,
+ * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1,
+ * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1,
+ * - 7 - `unavailable` - if the confidence value is not available.
+ *
+ * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by
+ * several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the curvature value may be valid and used by the application.
+ *
+ * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid
+ * and therefore cannot be trusted. Such value is not useful for the application.
+ *
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+*/
CurvatureConfidence ::= ENUMERATED {
onePerMeter-0-00002 (0),
onePerMeter-0-0001 (1),
@@ -318,21 +931,68 @@ CurvatureConfidence ::= ENUMERATED {
unavailable (7)
}
+/**
+ * This DE describes vehicle turning curve with the following information:
+ * ```
+ * Value = 1 / Radius * 10000
+ * ```
+ * wherein radius is the vehicle turning curve radius in metres.
+ *
+ * Positive values indicate a turning curve to the left hand side of the driver.
+ * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21].
+ *
+ * The value shall be set to:
+ * - `-1023` for values smaller than -1023,
+ * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`,
+ * - `0` when the vehicle is moving straight,
+ * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`,
+ * - `1022`, for values greater than 1021,
+ * - `1023`, if the information is not available.
+ *
+ * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21].
+ *
+ * @unit: 1 over 10 000 metres
+ * @category: Vehicle information
+ * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly)
+ */
CurvatureValue ::= INTEGER {
outOfRangeNegative (-1023),
straight (0),
- outOfRangePositive (1022),
+ outOfRangePositive (1022),
unavailable (1023)
} (-1023..1023)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of dangerous queue is unavailable,
+ * - 1 - `suddenEndOfQueue`- in case a sudden end of queue is detected, e.g. due to accident or obstacle,
+ * - 2 - `queueOverHill` - in case the dangerous end of queue is detected on the road hill,
+ * - 3 - `queueAroundBend` - in case the dangerous end of queue is detected around the road bend,
+ * - 4 - `queueInTunnel` - in case queue is detected in tunnel,
+ * - 5-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
DangerousEndOfQueueSubCauseCode ::= INTEGER {
- unavailable (0),
- suddenEndOfQueue (1),
- queueOverHill (2),
- queueAroundBend (3),
+ unavailable (0),
+ suddenEndOfQueue (1),
+ queueOverHill (2),
+ queueAroundBend (3),
queueInTunnel (4)
} (0..255)
+/**
+ * This DE indicates the type of the dangerous goods being carried by a heavy vehicle.
+ * The value is assigned according to `class` and `division` definitions of dangerous goods as specified in part II,
+ * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [3].
+ *
+ *
+ * @category Vehicle information
+ * @revision: V1.3.1
+ */
DangerousGoodsBasic::= ENUMERATED {
explosives1 (0),
explosives2 (1),
@@ -356,92 +1016,365 @@ DangerousGoodsBasic::= ENUMERATED {
miscellaneousDangerousSubstances (19)
}
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousSituation`
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of dangerous situation is unavailable,
+ * - 1 - `emergencyElectronicBrakeEngaged` - in case emergency electronic brake is engaged,
+ * - 2 - `preCrashSystemEngaged` - in case pre-crash system is engaged,
+ * - 3 - `espEngaged` - in case Electronic Stability Program (ESP) system is engaged,
+ * - 4 - `absEngaged` - in case Anti-lock Braking System (ABS) is engaged,
+ * - 5 - `aebEngaged` - in case Autonomous Emergency Braking (AEB) system is engaged,
+ * - 6 - `brakeWarningEngaged` - in case brake warning is engaged,
+ * - 7 - `collisionRiskWarningEngaged` - in case collision risk warning is engaged,
+ * - 8-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
DangerousSituationSubCauseCode ::= INTEGER {
- unavailable (0),
- emergencyElectronicBrakeEngaged (1),
- preCrashSystemEngaged (2),
- espEngaged (3),
- absEngaged (4),
- ebEngaged (5),
- brakeWarningEngaged (6),
+ unavailable (0),
+ emergencyElectronicBrakeEngaged (1),
+ preCrashSystemEngaged (2),
+ espEngaged (3),
+ absEngaged (4),
+ ebEngaged (5),
+ brakeWarningEngaged (6),
collisionRiskWarningEngaged (7)
} (0..255)
+/**
+ * This DE represents an offset altitude with regards to a defined altitude value.
+ * It may be used to describe a geographical point with regards to a specific reference geographical position.
+ *
+ * The value shall be set to:
+ * - `-12 700` for values equal to or lower than -127 metres,
+ * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position,
+ * - `0` for no altitudinal offset,
+ * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position,
+ * - `12 799` for values equal to or greater than 127,99 metres,
+ * - `12 800` when the information is unavailable.
+ *
+ * @unit: 0,01 metre
+ * @category: GeoReference information
+ * @revision: editorial update in V2.1.1
+ */
DeltaAltitude ::= INTEGER {
negativeOutOfRange (-12700),
positiveOutOfRange (12799),
unavailable (12800)
} (-12700..12800)
+/**
+ * This DE represents an offset latitude with regards to a defined latitude value.
+ * It may be used to describe a geographical point with regards to a specific reference geographical position.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position,
+ * - `0` for no latitudinal offset,
+ * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position,
+ * - `131 072` when the information is unavailable.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: editorial update in V2.1.1
+ */
DeltaLatitude ::= INTEGER {
unavailable (131072)
} (-131071..131072)
+/**
+ * This DE represents an offset longitude with regards to a defined longitude value.
+ * It may be used to describe a geographical point with regards to a specific reference geographical position.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position,
+ * - `0` for no longitudinal offset,
+ * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position,
+ * - `131 072` when the information is unavailable.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: editorial update in V2.1.1
+ */
DeltaLongitude ::= INTEGER {
unavailable (131072)
} (-131071..131072)
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 10001`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s,
+ *
+ * Example: a time interval between two consecutive message transmissions.
+ *
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1 from the DE TransmissionInterval in [2]
+ */
DeltaTimeMilliSecondPositive ::= INTEGER (1..10000)
+/**
+ * This DE represents a signed difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `-2048` for time values equal to or less than -2,048 s,
+ * - `n` (`n > -2048` and `n < 2047`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s,
+ * - `2047` for time values greater than 2,046 s
+ *
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
DeltaTimeMilliSecondSigned ::= INTEGER (-2048..2047)
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ * It can be interpreted as the first 8 bits of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime,
+ * multiply by 256 (i.e. append a `00` byte)
+ *
+ * @unit: 256 * 0,001 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
DeltaTimeQuarterSecond::= INTEGER {
- unavailable (255)
-} (1..255)
+ unavailable (255)
+} (1..255)
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `0` for a difference in time of 0 seconds.
+ * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 0,1 s, and greater than (n-1) x 0,1 s,
+ *
+ * @unit: 0,1 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
DeltaTimeTenthOfSecond::= INTEGER {
- unavailable (127)
-} (0..127)
-
+ unavailable (127)
+} (0..127)
+
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `-0` for a difference in time of 0 seconds.
+ * - `n` (`n > 0` and `n <= 86400`) to indicate a time value equal to or less than n x 1 s, and greater than (n-1) x 1 s,
+ *
+ * @unit: 1 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1 from ValidityDuration
+*/
DeltaTimeSecond ::= INTEGER (0..86400)
--- Exists in IVI {iso (1) standard (0) ivi (19321) version2 (2)
---Direction::= INTEGER{
--- sameDirection (0),
--- oppositeDirection (1),
--- bothDirections (2),
--- unavailable (3)
--- } (0..3)
-
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `-0` for a difference in time of 0 seconds.
+ * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 10 s, and greater than (n-1) x 10 s,
+ *
+ * @unit: 10 s
+ * @category: Basic information
+ * @revision: Created in V2.2.1
+*/
+DeltaTimeTenSeconds ::= INTEGER (0..127)
+
+/**
+ * This DE indicates a direction with respect to a defined reference direction.
+ * Example: a reference direction may be implicitly defined by the definition of a geographical zone.
+ *
+ * The value shall be set to:
+ * - 0 - `sameDirection` - to indicate the same direction as the reference direction,
+ * - 1 - `oppositeDirection` - to indicate opposite direction as the reference direction,
+ * - 2 - `bothDirections` - to indicate both directions, i.e. the same and the opposite direction,
+ * - 3 - `unavailable` - to indicate that the information is unavailable.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+ */
+Direction::= INTEGER{
+ sameDirection (0),
+ oppositeDirection (1),
+ bothDirections (2),
+ unavailable (3)
+ } (0..3)
+
+/**
+ * This DE indicates in which direction something is moving.
+ *
+ * The value shall be set to:
+ * - 0 - `forward` - to indicate it is moving forward,
+ * - 1 - `backwards` - to indicate it is moving backwards,
+ * - 2 - `unavailable` - to indicate that the information is unavailable.
+ *
+ * @category: Kinematic information
+ * @revision: editorial update in V2.1.1
+ */
DriveDirection ::= ENUMERATED {
- forward (0),
- backward (1),
+ forward (0),
+ backward (1),
unavailable (2)
}
+/**
+ * This DE indicates whether a driving lane is open to traffic.
+ *
+ * A lane is counted from inside border of the road excluding the hard shoulder. The size of the bit string shall
+ * correspond to the total number of the driving lanes in the carriageway.
+ *
+ * The numbering is matched to @ref LanePosition.
+ * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border.
+ *
+ * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`.
+ *
+ * @note: hard shoulder status is not provided by this DE but in @ref HardShoulderStatus.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
DrivingLaneStatus ::= BIT STRING (SIZE (1..13))
+/**
+ * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process.
+ * If that is the case, the value is *TRUE*, otherwise *FALSE*.
+ *
+ * @category: Vehicle information
+ * @revision: editorial update in V2.1.1
+ */
EmbarkationStatus ::= BOOLEAN
+/**
+ * This DE indicates the right of priority requested or assumed by an operating emergency vehicle.
+ * The right-of-priority bit shall be set to `1` if the corresponding right is requested.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `requestForRightOfWay` - when the vehicle is requesting/assuming the right of way,
+ * - 1 - `requestForFreeCrossingAtATrafficLight` - when the vehicle is requesting/assuming the right to pass at a (red) traffic light.
+ *
+ * @category: Traffic information
+ * @revision: description revised in V2.1.1
+ */
EmergencyPriority ::= BIT STRING {
- requestForRightOfWay (0),
+ requestForRightOfWay (0),
requestForFreeCrossingAtATrafficLight (1)
} (SIZE(2))
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching".
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the emergency vehicle approaching event
+ * is unavailable,
+ * - 1 - `emergencyVehicleApproaching` - in case an operating emergency vehicle is approaching,
+ * - 2 - `prioritizedVehicleApproaching` - in case a prioritized vehicle is approaching,
+ * - 3-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
EmergencyVehicleApproachingSubCauseCode ::= INTEGER {
- unavailable (0),
- emergencyVehicleApproaching (1),
+ unavailable (0),
+ emergencyVehicleApproaching (1),
prioritizedVehicleApproaching (2)
} (0..255)
+/**
+ * This DE indicated the type of energy being used and stored in vehicle.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `hydrogenStorage` - when hydrogen is being used and stored in vehicle,
+ * - 1 - `electricEnergyStorage` - when electric energy is being used and stored in vehicle,
+ * - 2 - `liquidPropaneGas` - when liquid Propane Gas (LPG) is being used and stored in vehicle,
+ * - 3 - `compressedNaturalGas ` - when compressedNaturalGas (CNG) is being used and stored in vehicle,
+ * - 4 - `diesel` - when diesel is being used and stored in vehicle,
+ * - 5 - `gasoline` - when gasoline is being used and stored in vehicle,
+ * - 6 - `ammonia` - when ammonia is being used and stored in vehicle.
+ *
+ * - Otherwise, the corresponding bit shall be set to `0`.
+ *
+ * @category: Vehicle information
+ * @revision: editorial revision in V2.1.1
+ */
EnergyStorageType ::= BIT STRING {
- hydrogenStorage (0),
- electricEnergyStorage (1),
- liquidPropaneGas (2),
- compressedNaturalGas (3),
- diesel (4),
- gasoline (5),
+ hydrogenStorage (0),
+ electricEnergyStorage (1),
+ liquidPropaneGas (2),
+ compressedNaturalGas (3),
+ diesel (4),
+ gasoline (5),
ammonia (6)
}(SIZE(7))
+/**
+ * This DE represents one of the specific categories in the L category: L1, L2, L3, L4, L5, L6, or L7 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
EuVehicleCategoryL ::= ENUMERATED { l1, l2, l3, l4, l5, l6, l7 }
+/**
+ * This DE represents one of the specific categories in the M category: M1, M2, or M3 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
EuVehicleCategoryM ::= ENUMERATED {m1, m2, m3}
+/**
+ * This DE represents one of the specific categories in the N category: N1, N2, or N3 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
EuVehicleCategoryN ::= ENUMERATED {n1, n2, n3}
+/**
+ * This DE represents one of the specific categories in the O category: O1, O2, O3 or O4 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
EuVehicleCategoryO ::= ENUMERATED {o1, o2, o3, o4}
+/**
+ * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on,
+ * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on,
+ * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on,
+ * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on,
+ * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on,
+ * - 5 - `reverseLightOn` - when the reverse light switch is on,
+ * - 6 - `fogLightOn` - when the tail fog light switch is on,
+ * - 7 - `parkingLightsOn` - when the parking light switch is on.
+ *
+ * @note: The value of each bit indicates the state of the switch, which commands the corresponding light.
+ * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on,
+ * either manually by the driver or automatically by a vehicle system. The bit value does not indicate
+ * if the corresponding lamps are alight or not.
+ *
+ * If a vehicle is not equipped with a certain light or if the light switch status information is not available,
+ * the corresponding bit shall be set to `0`.
+ *
+ * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not
+ * alternate with the blinking interval.
+ *
+ * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`.
+ *
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
ExteriorLights ::= BIT STRING {
lowBeamHeadlightsOn (0),
highBeamHeadlightsOn (1),
@@ -453,62 +1386,193 @@ ExteriorLights ::= BIT STRING {
parkingLightsOn (7)
} (SIZE(8))
+/**
+ * This DE represents a timestamp based on TimestampIts modulo 65 536.
+ * This means that generationDeltaTime = TimestampIts mod 65 536.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1]
+*/
GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535)
+/**
+ * This DE indicates the current status of a hard shoulder: whether it is available for special usage
+ * (e.g. for stopping or for driving) or closed for all vehicles.
+ *
+ * The value shall be set to:
+ * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations,
+ * - 1 - `closed` - if the hard shoulder is closed and cannot be occupied in any case,
+ * - 2 - `availableForDriving` - if the hard shoulder is available for regular driving.
+ *
+ * @category: Traffic information
+ * @revision: Description revised in V2.1.1
+ */
HardShoulderStatus ::= ENUMERATED {
- availableForStopping (0),
- closed (1),
+ availableForStopping (0),
+ closed (1),
availableForDriving (2)
}
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the animal(s) on the road is unavailable,
+ * - 1 - `wildAnimals` - in case wild animals of unknown size are present on the road,
+ * - 2 - `herdOfAnimals` - in case a herd of animals is present on the road,
+ * - 3 - `smallAnimals` - in case small size animals of unknown type are present on the road,
+ * - 4 - `largeAnimals` - in case large size animals of unknown type are present on the road,
+ * - 5 - `wildAnimalsSmall` - in case small size wild animal(s) are present on the road,
+ * - 6 - `wildAnimalsLarge` - in case large size wild animal(s) are present on the road,
+ * - 7 - `domesticAnimals` - in case domestic animal(s) of unknown size are detected on the road,
+ * - 8 - `domesticAnimalsSmall` - in case small size domestic animal(s) are present on the road,
+ * - 9 - `domesticAnimalsLarge` - in case large size domestic animal(s) are present on the road.
+ * - 10-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1, named values 5 to 9 added in V2.2.1
+ */
HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {
- unavailable (0),
- wildAnimals (1),
- herdOfAnimals (2),
- smallAnimals (3),
- largeAnimals (4)
+ unavailable (0),
+ wildAnimals (1),
+ herdOfAnimals (2),
+ smallAnimals (3),
+ largeAnimals (4),
+ wildAnimalsSmall (5),
+ wildAnimalsLarge (6),
+ domesticAnimals (7),
+ domesticAnimalsSmall (8),
+ domesticAnimalsLarge (9)
} (0..255)
+/**
+ * This DE represents the sub cause code of the @ref CauseCode `hazardousLocation-DangerousCurve`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the dangerous curve is unavailable,
+ * - 1 - `dangerousLeftTurnCurve` - in case the dangerous curve is a left turn curve,
+ * - 2 - `dangerousRightTurnCurve` - in case the dangerous curve is a right turn curve,
+ * - 3 - `multipleCurvesStartingWithUnknownTurningDirection` - in case of multiple curves for which the starting curve turning direction is not known,
+ * - 4 - `multipleCurvesStartingWithLeftTurn` - in case of multiple curves starting with a left turn curve,
+ * - 5 - `multipleCurvesStartingWithRightTurn` - in case of multiple curves starting with a right turn curve.
+ * - 6-255 - are reserved for future usage.
+ *
+ * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass
+ * and vehicle speed driving on the curve. This definition is out of scope of the present document.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {
- unavailable (0),
- dangerousLeftTurnCurve (1),
- dangerousRightTurnCurve (2),
- multipleCurvesStartingWithUnknownTurningDirection (3),
- multipleCurvesStartingWithLeftTurn (4),
+ unavailable (0),
+ dangerousLeftTurnCurve (1),
+ dangerousRightTurnCurve (2),
+ multipleCurvesStartingWithUnknownTurningDirection (3),
+ multipleCurvesStartingWithLeftTurn (4),
multipleCurvesStartingWithRightTurn (5)
} (0..255)
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the detected obstacle is unavailable,
+ * - 1 - `shedLoad` - in case detected obstacle is large amount of obstacles (shedload),
+ * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles,
+ * - 3 - `partsOfTyres` - in case the detected obstacles are parts of tyres,
+ * - 4 - `bigObjects` - in case the detected obstacles are big objects,
+ * - 5 - `fallenTrees` - in case the detected obstacles are fallen trees,
+ * - 6 - `hubCaps` - in case the detected obstacles are hub caps,
+ * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles.
+ * - 8-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {
- unavailable (0),
- shedLoad (1),
- partsOfVehicles (2),
- partsOfTyres (3),
- bigObjects (4),
- fallenTrees (5),
- hubCaps (6),
+ unavailable (0),
+ shedLoad (1),
+ partsOfVehicles (2),
+ partsOfTyres (3),
+ bigObjects (4),
+ fallenTrees (5),
+ hubCaps (6),
waitingVehicles (7)
} (0..255)
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`.
+ *
+The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the road surface condition is unavailable,
+ * - 1 - `rockfalls` - in case rock falls are detected on the road surface,
+ * - 2 - `earthquakeDamage`- in case the road surface is damaged by earthquake,
+ * - 3 - `sewerCollapse` - in case of sewer collapse on the road surface,
+ * - 4 - `subsidence` - in case road surface is damaged by subsidence,
+ * - 5 - `snowDrifts` - in case road surface is damaged due to snow drift,
+ * - 6 - `stormDamage` - in case road surface is damaged by strong storm,
+ * - 7 - `burstPipe` - in case road surface is damaged due to pipe burst,
+ * - 8 - `volcanoEruption` - in case road surface is damaged due to volcano eruption,
+ * - 9 - `fallingIce` - in case road surface damage is due to falling ice,
+ * - 10 - `fire` - in case there is fire on or near to the road surface.
+ * - 11-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {
- unavailable (0),
- rockfalls (1),
- earthquakeDamage (2),
- sewerCollapse (3),
- subsidence (4),
- snowDrifts (5),
- stormDamage (6),
- burstPipe (7),
- volcanoEruption (8),
- fallingIce (9),
+ unavailable (0),
+ rockfalls (1),
+ earthquakeDamage (2),
+ sewerCollapse (3),
+ subsidence (4),
+ snowDrifts (5),
+ stormDamage (6),
+ burstPipe (7),
+ volcanoEruption (8),
+ fallingIce (9),
fire (10)
} (0..255)
+/**
+ * This DE indicates the heading confidence value which represents the estimated absolute accuracy of a heading value with a confidence level of 95 %.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree,
+ * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees,
+ * - `127` if the confidence value information is not available.
+ *
+ * @note: The fact that a value is received with confidence value set to `unavailable(127)` can be caused by several reasons,
+ * such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the heading value may be valid and used by the application.
+ *
+ * @note: If a heading value is received and its confidence value is set to `outOfRange(126)`, it means that the
+ * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application.
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleConfidence instead.
+ *
+ * @unit: 0,1 degree
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
HeadingConfidence ::= INTEGER {
- outOfRange (126),
- unavailable (127)
+ outOfRange (126),
+ unavailable (127)
} (1..127)
-HeadingValue ::= INTEGER {
+/**
+ * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north.
+ * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead.
+ *
+ * Unit: 0,1 degree
+ * Categories: GeoReference information
+ * @revision: Description revised in V2.1.1 (usage of value 3600 specified)
+*/
+HeadingValue ::= INTEGER {
wgs84North (0),
wgs84East (900),
wgs84South (1800),
@@ -517,90 +1581,383 @@ HeadingValue ::= INTEGER {
unavailable (3601)
} (0..3601)
+/**
+ * This DE represents the height of the left or right longitude carrier of vehicle from base to top (left or right carrier seen from vehicle
+ * rear to front).
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 1` and `n < 99`) if the height information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `99` if the height is out of range, i.e. equal to or greater than 0,98 m,
+ * - `100` if the height information is not available.
+ *
+ * @unit 0,01 metre
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1 (the definition of 99 has changed slightly)
+ */
HeightLonCarr ::= INTEGER {
outOfRange(99),
unavailable(100)
} (1..100)
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information abou the human presence on the road is unavailable,
+ * - 1 - `childrenOnRoadway` - in case children are present on the road,
+ * - 2 - `cyclistOnRoadway` - in case cyclist(s) are present on the road,
+ * - 3 - `motorcyclistOnRoadway` - in case motorcyclist(s) are present on the road,
+ * - 4 - `pedestrian` - in case pedestrian(s) of any type are present on the road,
+ * - 5 - `ordinary-pedestrian` - in case pedestrian(s) to which no more-specific profile applies are present on the road,
+ * - 6 - `road-worker` - in case pedestrian(s) with the role of a road worker applies are present on the road,
+ * - 7 - `first-responder` - in case pedestrian(s) with the role of a first responder applies are present on the road,
+ * - 8 - `lightVruVehicle - in case light vru vehicle(s) of any type are present on the road,
+ * - 9 - `bicyclist ` - in case cycle(s) and their bicyclist(s) are present on the road,
+ * - 10 - `wheelchair-user` - in case wheelchair(s) and their user(s) are present on the road,
+ * - 11 - `horse-and-rider` - in case horse(s) and rider(s) are present on the road,
+ * - 12 - `rollerskater` - in case rolleskater(s) and skater(s) are present on the road,
+ * - 13 - `e-scooter` - in case e-scooter(s) and rider(s) are present on the road,
+ * - 14 - `personal-transporter` - in case personal-transporter(s) and rider(s) are present on the road,
+ * - 15 - `pedelec` - in case pedelec(s) and rider(s) are present on the road,
+ * - 16 - `speed-pedelec` - in case speed-pedelec(s) and rider(s) are present on the road,
+ * - 17 - `ptw` - in case powered-two-wheeler(s) of any type are present on the road,
+ * - 18 - `moped` - in case moped(s) and rider(s) are present on the road,
+ * - 19 - `motorcycle` - in case motorcycle(s) and rider(s) are present on the road,
+ * - 20 - `motorcycle-and-sidecar-right` - in case motorcycle(s) with sidecar(s) on the right and rider are present on the road,
+ * - 21 - `motorcycle-and-sidecar-left` - in case motorcycle(s) with sidecar(s) on the left and rider are present on the road.
+ * - 22-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: editorial revision in V2.1.1, named values 4-21 added in V2.2.1
+ */
HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {
- unavailable (0),
- childrenOnRoadway (1),
- cyclistOnRoadway (2),
- motorcyclistOnRoadway (3)
+ unavailable (0),
+ childrenOnRoadway (1),
+ cyclistOnRoadway (2),
+ motorcyclistOnRoadway (3),
+ pedestrian (4),
+ ordinary-pedestrian (5),
+ road-worker (6),
+ first-responder (7),
+ lightVruVehicle (8),
+ bicyclist (9),
+ wheelchair-user (10),
+ horse-and-rider (11),
+ rollerskater (12),
+ e-scooter (13),
+ personal-transporter (14),
+ pedelec (15),
+ speed-pedelec (16),
+ ptw (17),
+ moped (18),
+ motorcycle (19),
+ motorcycle-and-sidecar-right (20),
+ motorcycle-and-sidecar-left (21)
} (0..255)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem".
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on human health problem is unavailable,
+ * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem,
+ * - 2 - `heartProblem` - in case human problem is due to heart problem.
+ * - 3-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
HumanProblemSubCauseCode ::= INTEGER {
- unavailable (0),
- glycemiaProblem (1),
+ unavailable (0),
+ glycemiaProblem (1),
heartProblem (2)
} (0..255)
+/**
+ * This DE is a general identifier.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
Identifier1B ::= INTEGER (0..255)
+/**
+ * This DE is a general identifier.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
Identifier2B ::= INTEGER (0..65535)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `impassability`
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information about the unmanaged road blockage is unavailable,
+ * - 1 `flooding ` - in case the road is affected by flooding,
+ * - 2 `dangerOfAvalanches` - in case the road is at risk of being affected or blocked by avalanches,
+ * - 3 `blastingOfAvalanches` - in case there is an active blasting of avalanches on or near the road,
+ * - 4 `landslips` - in case the road is affected by landslips,
+ * - 5 `chemicalSpillage` - in case the road is affected by chemical spillage,
+ * - 6 `winterClosure` - in case the road is impassable due to a winter closure.
+ * - 7 `sinkhole` - in case the road is impassable due to large holes in the road surface.
+ * - 8 `earthquakeDamage` - in case the road is obstructed or partially obstructed because of damage caused by an earthquake.
+ * - 9 `fallenTrees` - in case the road is obstructed or partially obstructed by one or more fallen trees.
+ * - 10 `rockfalls` - in case the road is obstructed or partially obstructed due to fallen rocks.
+ * - 11 `sewerOverflow` - in case the road is obstructed or partially obstructed by overflows from one or more sewers.
+ * - 12 `stormDamage` - in case the road is obstructed or partially obstructed by debris caused by strong winds.
+ * - 13 `subsidence` - in case the road surface has sunken or collapsed in places.
+ * - 14 `burstPipe` - in case the road surface has sunken or collapsed in places due to burst pipes.
+ * - 15 `burstWaterMain` - in case the road is obstructed due to local flooding and/or subsidence.
+ * - 16 `fallenPowerCables` - in case the road is obstructed or partly obstructed by one or more fallen power cables.
+ * - 17 `snowDrifts` - in case the road is obstructed or partially obstructed by snow drifting in progress or patches of deep snow due to earlier drifting.
+ * - 15-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: Created in V2.2.1
+*/
+ImpassabilitySubCauseCode ::= INTEGER {
+ unavailable (0),
+ flooding (1),
+ dangerOfAvalanches (2),
+ blastingOfAvalanches (3),
+ landslips (4),
+ chemicalSpillage (5),
+ winterClosure (6),
+ sinkhole (7),
+ earthquakeDamage (8),
+ fallenTrees (9),
+ rockfalls (10),
+ sewerOverflow (11),
+ stormDamage (12),
+ subsidence (13),
+ burstPipe (14),
+ burstWaterMain (15),
+ fallenPowerCables (16),
+ snowDrifts (17)
+} (0..255)
+
+/**
+ * This DE represents the quality level of provided information.
+ *
+ * The value shall be set to:
+ * - `0` if the information is unavailable,
+ * - `1` if the quality level is lowest,
+ * - `n` (`n > 1` and `n < 7`) if the quality level is n,
+ * - `7` if the quality level is highest.
+ *
+ * @note: Definition of quality level is out of scope of the present document.
+ * @category: Basic information
+ * @revision: Editorial update in V2.1.1
+ */
InformationQuality ::= INTEGER (0..7)
+/**
+ * This DE defines the type of an interference management zone, so that an ITS-S can
+ * assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
+ * It is an extension of the type @ref ProtectedZoneType.
+ *
+ * The value shall be set to:
+ * - 0 - `permanentCenDsrcTolling` - as specified in ETSI TS 102 792 [14],
+ * - 1 - `temporaryCenDsrcTolling` - as specified in ETSI TS 102 792 [14],
+ * - 2 - `unavailable` - default value. Set to 2 for backwards compatibility with DSRC tolling,
+ * - 3 - `urbanRail` - as specified in ETSI TS 103 724 [13], clause 7,
+ * - 4 - `satelliteStation` - as specified in ETSI TS 103 724 [13], clause 7,
+ * - 5 - `fixedLinks` - as specified in ETSI TS 103 724 [13], clause 7.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
InterferenceManagementZoneType ::= ENUMERATED {
permanentCenDsrcTolling (0),
temporaryCenDsrcTolling (1),
- unavailable (2),
- urbanRail (3),
+ unavailable (2),
+ urbanRail (3),
satelliteStation (4),
- fixedLinks (5),
+ fixedLinks (5),
...
}
+/**
+ * This DE represents the vehicle type according to ISO 3833 [22].
+ * A "term No" refers to the number of the corresponding term and its definition in ISO 3833.
+ *
+ * The value shall be set to:
+ * - 0 - `passengerCar` - term No 3.1.1
+ * - 1 - `saloon` - term No 3.1.1.1 (sedan)
+ * - 2 - `convertibleSaloon` - term No 3.1.1.2
+ * - 3 - `pullmanSaloon` - term No 3.1.1.3
+ * - 4 - `stationWagon` - term No 3.1.1.4
+ * - 5 - `truckStationWagon` - term No 3.1.1.4.1
+ * - 6 - `coupe` - term No 3.1.1.5 (coupe)
+ * - 7 - `convertible` - term No 3.1.1.6 (open tourer, roadstar, spider)
+ * - 8 - `multipurposePassengerCar` - term No 3.1.1.7
+ * - 9 - `forwardControlPassengerCar`- term No 3.1.1.8
+ * - 10 - `specialPassengerCar` - term No 3.1.1.9
+ * - 11 - `bus` - term No 3.1.2
+ * - 12 - `minibus` - term No 3.1.2.1
+ * - 13 - `urbanBus` - term No 3.1.2.2
+ * - 14 - `interurbanCoach` - term No 3.1.2.3
+ * - 15 - `longDistanceCoach` - term No 3.1.2.4
+ * - 16 - `articulatedBus` - term No 3.1.2.5
+ * - 17 - `trolleyBus ` - term No 3.1.2.6
+ * - 18 - `specialBus` - term No 3.1.2.7
+ * - 19 - `commercialVehicle` - term No 3.1.3
+ * - 20 - `specialCommercialVehicle` - term No 3.1.3.1
+ * - 21 - `specialVehicle` - term No 3.1.4
+ * - 22 - `trailingTowingVehicle` - term No 3.1.5 (draw-bar tractor)
+ * - 23 - `semiTrailerTowingVehicle` - term No 3.1.6 (fifth wheel tractor)
+ * - 24 - `trailer` - term No 3.2.1
+ * - 25 - `busTrailer` - term No 3.2.1.1
+ * - 26 - `generalPurposeTrailer` - term No 3.2.1.2
+ * - 27 - `caravan` - term No 3.2.1.3
+ * - 28 - `specialTrailer` - term No 3.2.1.4
+ * - 29 - `semiTrailer` - term No 3.2.2
+ * - 30 - `busSemiTrailer` - term No 3.2.2.1
+ * - 31 - `generalPurposeSemiTrailer` - term No 3.2.2.2
+ * - 32 - `specialSemiTrailer` - term No 3.2.2.3
+ * - 33 - `roadTrain` - term No 3.3.1
+ * - 34 - `passengerRoadTrain` - term No 3.3.2
+ * - 35 - `articulatedRoadTrain` - term No 3.3.3
+ * - 36 - `doubleRoadTrain` - term No 3.3.4
+ * - 37 - `compositeRoadTrain` - term No 3.3.5
+ * - 38 - `specialRoadTrain` - term No 3.3.6
+ * - 39 - `moped` - term No 3.4
+ * - 40 - `motorCycle` - term No 3.5
+ * - 41-255 - reserved for future use
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
Iso3833VehicleType ::= INTEGER {
passengerCar (0),
- saloon (1),
- convertibleSaloon (2),
- pullmanSaloon (3),
- stationWagon (4),
- truckStationWagon (5),
+ saloon (1),
+ convertibleSaloon (2),
+ pullmanSaloon (3),
+ stationWagon (4),
+ truckStationWagon (5),
coupe (6),
- convertible (7),
- multipurposePassengerCar (8),
- forwardControlPassengerCar (9),
+ convertible (7),
+ multipurposePassengerCar (8),
+ forwardControlPassengerCar (9),
specialPassengerCar (10),
bus (11),
- minibus (12),
- urbanBus (13),
- interurbanCoach (14),
- longDistanceCoach (15),
- articulatedBus (16),
+ minibus (12),
+ urbanBus (13),
+ interurbanCoach (14),
+ longDistanceCoach (15),
+ articulatedBus (16),
trolleyBus (17),
- specialBus (18),
- commercialVehicle (19),
+ specialBus (18),
+ commercialVehicle (19),
specialCommercialVehicle (20),
- specialVehicle (21),
- trailingTowingVehicle (22),
- semiTrailerTowingVehicle (23),
- trailer (24),
+ specialVehicle (21),
+ trailingTowingVehicle (22),
+ semiTrailerTowingVehicle (23),
+ trailer (24),
busTrailer (25),
generalPurposeTrailer (26),
- caravan (27),
- specialTrailer (28),
- semiTrailer (29),
- busSemiTrailer (30),
+ caravan (27),
+ specialTrailer (28),
+ semiTrailer (29),
+ busSemiTrailer (30),
generalPurposeSemiTrailer (31),
- specialSemiTrailer (32),
- roadTrain (33),
- passengerRoadTrain (34),
- articulatedRoadTrain (35),
+ specialSemiTrailer (32),
+ roadTrain (33),
+ passengerRoadTrain (34),
+ articulatedRoadTrain (35),
doubleRoadTrain (36),
- compositeRoadTrain (37),
- specialRoadTrain (38),
- moped (39),
- motorCycle (40)
+ compositeRoadTrain (37),
+ specialRoadTrain (38),
+ moped (39),
+ motorCycle (40)
} (0..255)
+/**
+ * This DE represent the identifier of an organization according to the applicable registry.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.2.1 based on ISO 14816 [23]
+*/
+IssuerIdentifier ::= INTEGER(0 .. 16383)
+
+/**
+ * This DE represents the identifier of the IVIM.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.2.1 based on ETSI TS 103 301 [15]
+*/
+IviIdentificationNumber::= INTEGER(1..32767,..., 8388607)
+
+/**
+ * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway.
+ *
+ * For right-hand traffic roads, the value shall be set to:
+ * - `-1` if the position is off, i.e. besides the road,
+ * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane,
+ * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction,
+ * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present).
+ *
+ * For left-hand traffic roads, the value shall be set to:
+ * - `-1` if the position is off, i.e. besides the road,
+ * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane,
+ * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction,
+ * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present).
+ *
+ * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used.
+ *
+ * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway.
+ * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road),
+ * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking).
+ *
+ * If not indicated otherwise (by lane markings or traffic signs), the legal separation on carriageways allowing traffic on both directions is identified as follows:
+ * - If the total number of lanes N is even, the lanes are divided evenly between the traffic directions starting from the outside of the carriageway on both sides and the
+ * imaginary separation between traffic directions is on the border between the even number of lanes N/2.
+ * - If the total number of lanes N is odd, the lanes are divided evenly between traffic direction starting from the outside of the carriageway on both sides.
+ * The remaining middle lane is assigned to both traffic directions as innermost lane.
+ *
+ * @category: Road topology information
+ * @revision: Description of the legal separation of carriageways added in V2.2.1
+*/
LanePosition ::= INTEGER {
- offTheRoad (-1),
- innerHardShoulder (0),
- outerHardShoulder (14)
+ offTheRoad (-1),
+ innerHardShoulder (0),
+ outerHardShoulder (14)
} (-1..14)
+/**
+ * This DE represents the type of a lane.
+ *
+ * The value shall be set to:
+ * - 0 - `traffic` - Lane dedicated to the movement of vehicles,
+ * - 1 - `through` - Lane dedicated to the movement of vehicles travelling ahead and not turning,
+ * - 2 - `reversible` - Lane where the direction of traffic can be changed to match the peak flow,
+ * - 3 - `acceleration` - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it,
+ * - 4 - `deceleration` - Lane that allows vehicles exiting a road to decelerate before leaving it,
+ * - 5 - `leftHandTurning` - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic,
+ * - 6 - `rightHandTurning` - Lane reserved for slowing down and making a right turn so as not to disrupt traffic,
+ * - 7 - `dedicatedVehicle` - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc.,
+ * - 8 - `bus` - Lane dedicated to movement of buses providing public transport,
+ * - 9 - `taxi` - Lane dedicated to movement of taxis,
+ * - 10 - `hov` - Carpooling lane or high occupancy vehicle lane,
+ * - 11 - `hot` - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll,
+ * - 12 - `pedestrian` - Lanes dedicated to pedestrians such as pedestrian sidewalk paths,
+ * - 13 - `cycleLane` - Lane dedicated to exclusive or preferred use by bicycles,
+ * - 14 - `median` - Lane not dedicated to movement of vehicles but representing a median / central reservation such as the central median,
+ separating the two directional carriageways of the highway,
+ * - 15 - `striping` - Lane not dedicated to movement of vehicles but covered with roadway markings,
+ * - 16 - `trackedVehicle` - Lane dedicated to movement of trains, trams and trolleys,
+ * - 17 - `parking` - Lanes dedicated to vehicles parking, stopping and loading lanes,
+ * - 18 - `emergency` - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder,
+ * - 19 - `verge` - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between
+ the road surface edge and the boundary of a road,
+ * - 20 `minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre,
+ * - 21 `separatedCycleLane` - Lane dedicated to exclusive or preferred use by bicycles that is phyisically separated from the vehicle-traffic lanes, e.g. by a verge.
+ * - values 22 to 30 reserved for future use.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.1.1, named value 21 added in V2.2.1
+*/
LaneType::= INTEGER{
traffic (0),
through (1),
@@ -616,54 +1973,202 @@ LaneType::= INTEGER{
hot (11),
pedestrian (12),
cycleLane (13),
- median (14),
+ median (14),
striping (15),
trackedVehicle (16),
parking (17),
emergency (18),
verge (19),
minimumRiskManoeuvre (20),
+ exclusiveCycleLane (21),
unknown (31)
}(0..31)
---LaneWidth::= INTEGER (0..1023)
-
+/**
+ * This DE represents the width of a lane measured at a defined position.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1022`) if the lane width information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `1022` if the lane width is out of range, i.e. greater than 10,21 m,
+ * - `1023` if the lane width information is not available.
+ *
+ * The value 0 shall not be used.
+ *
+ * @unit: 0,01 metre
+ * @category: Road topology information
+ * @revision: Created in V2.1.1
+ */
+-- Wireshark modification
+-- LaneWidth::= INTEGER (0..1023)
+
+/**
+ * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or
+ * in south hemisphere.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator,
+ * - `0` is used for the latitude of the equator,
+ * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator,
+ * - `900 000 001` when the information is unavailable.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
Latitude ::= INTEGER {
unavailable(900000001)
} (-900000000..900000001)
+/**
+ * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle.
+ * It corresponds to the vehicle coordinate system as specified in ISO 8855 [21].
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation
+ * with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2,
+ * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation
+ with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @note: the empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead.
+ *
+ * @unit: 0,1 m/s^2
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly).
+ */
LateralAccelerationValue ::= INTEGER {
negativeOutOfRange (-160),
positiveOutOfRange (160),
- unavailable (161)
+ unavailable (161)
} (-160 .. 161)
+/**
+ * This DE indicates the status of light bar and any sort of audible alarm system besides the horn.
+ * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `lightBarActivated` - when the light bar is activated,
+ * - 1 - `sirenActivated` - when the siren is activated.
+ *
+ * Otherwise, it shall be set to 0.
+ *
+ * @category Vehicle information
+ * @revision: Editorial update in V2.1.1
+ */
LightBarSirenInUse ::= BIT STRING {
lightBarActivated (0),
sirenActivated (1)
} (SIZE(2))
+/**
+ * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees
+ * to the east or to the west of the prime meridian.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west,
+ * - `0` to indicate the prime meridian,
+ * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east,
+ * - `1 800 000 001` when the information is unavailable.
+ *
+ * The value -1 800 000 000 shall not be used.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
Longitude ::= INTEGER {
valueNotUsed (-1800000000),
unavailable (1800000001)
} (-1800000000..1800000001)
+ /**
+ * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle.
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2
+ * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * This acceleration is along the tangent plane of the road surface and does not include gravity components.
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ * @unit: 0,1 m/s^2
+ * @category: Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). T
+ */
LongitudinalAccelerationValue::= INTEGER {
negativeOutOfRange (-160),
positiveOutOfRange (160),
- unavailable (161)
+ unavailable (161)
} (-160 .. 161)
+/**
+ * This DE represents the longitudinal offset of a map-matched position along a matched lane, beginning from the lane's starting point.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n < 32766`) if the longitudinal offset information is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre,
+ * - `32 766` if the longitudinal offset is out of range, i.e. greater than 3276,5 m,
+ * - `32 767` if the longitudinal offset information is not available.
+ *
+ * @unit 0,1 metre
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
LongitudinalLanePositionValue ::= INTEGER {
outOfRange(32766),
unavailable(32767)
}(0..32767)
+/**
+ * This DE indicates the longitudinal lane position confidence value which represents the estimated accuracy of longitudinal lane position measurement with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1 022`) if the confidence value is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m,
+ * - `1 022` if the confidence value is out of range i.e. greater than 102,1 m,
+ * - `1 023` if the confidence value is unavailable.
+ *
+ * @unit 0,1 metre
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
LongitudinalLanePositionConfidence ::= INTEGER {
outOfRange (1022),
- unavailable (1023)
+ unavailable (1023)
} (0..1023)
+/**
+ * This DE indicates the components of an @ref PerceivedObject that are included in the @ref LowerTriangularPositiveSemidefiniteMatrix.
+ *
+ * The corresponding bit shall be set to 1 if the component is included:
+ * - 0 - `xCoordinate` - when the component xCoordinate of the component @ref CartesianPosition3dWithConfidence is included,
+ * - 1 - `yCoordinate` - when the component yCoordinate of the component @ref CartesianPosition3dWithConfidence is included,
+ * - 2 - `zCoordinate` - when the component zCoordinate of the component @ref CartesianPosition3dWithConfidence is included,
+ * - 3 - `xVelocityOrVelocityMagnitude` - when the component xVelocity of the component @ref VelocityCartesian or the component VelocityMagnitude of the component @ref VelocityPolarWithZ is included,
+ * - 4 - `yVelocityOrVelocityDirection` - when the component yVelocity of the component @ref VelocityCartesian or the component VelocityDirection of the component @ref VelocityPolarWithZ is included,
+ * - 5 - `zVelocity` - when the component zVelocity of the component @ref VelocityCartesian or of the component @ref VelocityPolarWithZ is included,
+ * - 6 - `xAccelOrAccelMagnitude` - when the component xAcceleration of the component @ref AccelerationCartesian or the component AccelerationMagnitude of the component @ref AccelerationPolarWithZ is included,
+ * - 7 - `yAccelOrAccelDirection` - when the component yAcceleration of the component @ref AccelerationCartesian or the component AccelerationDirection of the component @ref AccelerationPolarWithZ is included,
+ * - 8 - `zAcceleration` - when the component zAcceleration of the component @ref AccelerationCartesian or of the component @ref AccelerationPolarWithZ is included,
+ * - 9 - `zAngle` - when the component zAngle is included,
+ * - 10 - `yAngle` - when the component yAngle is included,
+ * - 11 - `xAngle` - when the component xAngle is included,
+ * - 12 - `zAngularVelocity` - when the component zAngularVelocity is included.
+ *
+ * Otherwise, it shall be set to 0.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+ */
MatrixIncludedComponents::= BIT STRING{
xPosition (0),
yPosition (1),
@@ -674,72 +2179,195 @@ MatrixIncludedComponents::= BIT STRING{
xAccelOrAccelMagnitude (6),
yAccelOrAccelDirection (7),
zAcceleration (8),
- zAngle (9),
- yAngle (10),
- xAngle (11),
+ zAngle (9),
+ yAngle (10),
+ xAngle (11),
zAngularVelocity (12)
} (SIZE(13,...))
-MessageId::= INTEGER {
- denm (1),
- cam (2),
- poi (3),
- spatem (4),
- mapem (5),
- ivim (6),
- ev-rsr (7),
- tistpgtransaction (8),
- srem (9),
- ssem (10),
- evcsn (11),
- saem (12),
- rtcmem (13),
+/**
+ * This DE represents the type of facility layer message.
+ *
+ * The value shall be set to:
+ * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2],
+ * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1],
+ * - 3 - `poim` - for Point of Interest message as specified in ETSI TS 103 916 [9],
+ * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15],
+ * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15],
+ * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15],
+ * - 7 - `rfu1` - reserved for future usage,
+ * - 8 - `rfu2` - reserved for future usage,
+ * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15],
+ * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15],
+ * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9],
+ * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17],
+ * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15],
+ * - 14 - `cpm` - reserved for Collective Perception Message (CPM),
+ * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13],
+ * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12],
+ * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message,
+ * - 18 - `pcim` - reserved for Parking Control Infrastructure Message,
+ * - 19 - `pcvm` - reserved for Parking Control Vehicle Message,
+ * - 20 - `mcm` - reserved for Manoeuvre Coordination Message,
+ * - 21 - `pam` - reserved for Parking Availability Message,
+ * - 22-255 - reserved for future usage.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1 from @ref ItsPduHeader. Value 3 re-assigned to poim and value 7 and 8 reserved in V2.2.1
+ */
+MessageId::= INTEGER {
+ denm (1),
+ cam (2),
+ poim (3),
+ spatem (4),
+ mapem (5),
+ ivim (6),
+ rfu1 (7),
+ rfu2 (8),
+ srem (9),
+ ssem (10),
+ evcsn (11),
+ saem (12),
+ rtcmem (13),
cpm (14),
imzm (15),
vam (16),
- dsm (17),
+ dsm (17),
pcim (18),
pcvm (19),
mcm (20),
pam (21)
} (0..255)
+/**
+ * This DE represents the number of occupants in a vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n < 126`) for the number n of occupants,
+ * - `126` for values equal to or higher than 125,
+ * - `127` if information is not available.
+ *
+ * @unit: 1 person
+ * @category: Vehicle information
+ * @revision: Editorial update in V2.1.1
+ */
NumberOfOccupants ::= INTEGER {
outOfRange (126),
unavailable (127)
} (0 .. 127)
+/**
+ * This DE represents a single-value indication about the overall information quality of a perceived object.
+ *
+ * The value shall be set to:
+ * - `0` : if there is no confidence in detected object, e.g. for "ghost"-objects or if confidence could not be computed,
+ * - `n` (`n > 0` and `n < 15`) : for the applicable confidence value,
+ * - `15` : if there is full confidence in the detected Object.
+ *
+ * @unit n/a
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
ObjectPerceptionQuality ::= INTEGER {
- noConfidence (0),
- fullConfidence (15)
+ noConfidence (0),
+ fullConfidence (15)
} (0..15)
-ObjectDimensionValue ::= INTEGER {
+/**
+ * This DE represents a single dimension of an object.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 255`) if the accuracy is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m,
+ * - `255` if the accuracy is out of range i.e. greater than 25,4 m,
+ * - `256` if the data is unavailable.
+ *
+ * @unit 0,1 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+ObjectDimensionValue ::= INTEGER {
outOfRange (255),
unavailable (256)
}(1..256)
-ObjectDimensionConfidence ::= INTEGER {
+/**
+ * This DE indicates the object dimension confidence value which represents the estimated absolute accuracy of an object dimension value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 31`) if the confidence value is equal to or less than n x 0,1 metre, and more than (n-1) x 0,1 metre,
+ * - `31` if the confidence value is out of range i.e. greater than 3,0 m,
+ * - `32` if the confidence value is unavailable.
+ *
+ * @unit 0,1 m
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+ObjectDimensionConfidence ::= INTEGER {
outOfRange (31),
unavailable (32)
} (1..32)
+/**
+ * This DE indicates the face or part of a face of a solid object.
+ *
+ * The object is modelled as a rectangular prism that has a length that is greater than its width, with the faces of the object being defined as:
+ * - front: the face defined by the prism's width and height, and which is the first face in direction of longitudinal movement of the object,
+ * - back: the face defined by the prism's width and height, and which is the last face in direction of longitudinal movement of the object,
+ * - side: the faces defined by the prism's length and height with "left" and "right" defined by looking at the front face and "front" and "back" defined w.r.t to the front and back faces.
+ *
+ * Note: It is permissible to derive the required object dimensions and orientation from models to provide a best guess.
+ *
+ * @category: Basic information
+ * @revision: V2.1.1
+*/
ObjectFace ::= ENUMERATED {
- front (0),
- sideLeftFront (1),
- sideLeftBack (2),
- sideRightFront (3),
+ front (0),
+ sideLeftFront (1),
+ sideLeftBack (2),
+ sideRightFront (3),
sideRightBack (4),
- back (5)
+ back (5)
}
-OpeningDaysHours ::= UTF8String
-
---OrdinalNumber1B ::= INTEGER(0..255)
-
-
-OrdinalNumber3b ::= INTEGER(1..8)
-
+/**
+ * This DE represents a time period to describe the opening days and hours of a Point of Interest.
+ * (for example local commerce).
+ *
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+OpeningDaysHours ::= UTF8String
+
+/**
+ * The DE represents an ordinal number that indicates the position of an element in a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+OrdinalNumber1B ::= INTEGER(0..255)
+
+
+/**
+ * The DE represents an ordinal number that indicates the position of an element in a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+OrdinalNumber3b ::= INTEGER(1..8)
+
+/**
+ * This DE indicates the subclass of a detected object for @ref ObjectClass "otherSubclass".
+ *
+ * The value shall be set to:
+ * - `0` - unknown - if the subclass is unknown.
+ * - `1` - singleObject - if the object is a single object.
+ * - `2` - multipleObjects - if the object is a group of multiple objects.
+ * - `3` - bulkMaterial - if the object is a bulk material.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+ */
OtherSubClass ::= INTEGER {
unknown (0),
singleObject (1),
@@ -747,32 +2375,143 @@ OtherSubClass ::= INTEGER {
bulkMaterial (3)
} (0..255)
-PathDeltaTime ::= INTEGER (1..65535, ...)
-
+/**
+ * This DE represents the recorded or estimated travel time between a position and a predefined reference position.
+ *
+ * @unit 0,01 second
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+PathDeltaTime ::= INTEGER (1..65535, ...)
+
+/**
+ * This DE indicates an ordinal number that represents the position of a component in the list of @ref Traces or @ref TracesExtended.
+ *
+ * The value shall be set to:
+ * - `0` - noPath - if no path is identified
+ * - `1..7` - for instances 1..7 of @ref Traces
+ * - `8..14` - for instances 1..7 of @ref TracesExtended.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+PathId ::= INTEGER {
+ noPath (0),
+ path1 (1),
+ path2 (2),
+ path3 (3),
+ path4 (4),
+ path5 (5),
+ path6 (6),
+ path7 (7),
+ pathExtended1 (8),
+ pathExtended2 (9),
+ pathExtended3 (10),
+ pathExtended4 (11),
+ pathExtended5 (12),
+ pathExtended6 (13),
+ pathExtended7 (14)
+} (0..14)
+
+/**
+ * This DE denotes the ability of an ITS-S to provide up-to-date information.
+ * A performance class value is used to describe age of data. The exact values are out of scope of the present document.
+ *
+ * The value shall be set to:
+ * - `0` if the performance class is unknown,
+ * - `1` for performance class A as defined in ETSI TS 101 539-1 [5],
+ * - `2` for performance class B as defined in ETSI TS 101 539-1 [5],
+ * - 3-7 reserved for future use.
+ *
+ * @category: Vehicle information
+ * @revision: Editorial update in V2.1.1
+ */
PerformanceClass ::= INTEGER {
- unavailable (0),
- performanceClassA (1),
+ unavailable (0),
+ performanceClassA (1),
performanceClassB (2)
} (0..7)
+/**
+ * This DE represents a telephone number
+ *
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
PhoneNumber ::= NumericString (SIZE(1..16))
+/**
+ * This DE indicates the perpendicular distance from the centre of mass of an empty load vehicle to the front line of
+ * the vehicle bounding box of the empty load vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 62`) for any aplicable value n between 0,1 metre and 6,2 metres,
+ * - `62` for values equal to or higher than 6.1 metres,
+ * - `63` if the information is unavailable.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @unit 0,1 metre
+ * @category Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 62 has changed slightly)
+ */
PosCentMass ::= INTEGER {
- tenCentimetres (1),
+ tenCentimetres (1),
outOfRange (62),
unavailable (63)
} (1..63)
+/**
+ * This DE indicates the positioning technology being used to estimate a geographical position.
+ *
+ * The value shall be set to:
+ * - 0 `noPositioningSolution` - no positioning solution used,
+ * - 1 `sGNSS` - Global Navigation Satellite System used,
+ * - 2 `dGNSS` - Differential GNSS used,
+ * - 3 `sGNSSplusDR` - GNSS and dead reckoning used,
+ * - 4 `dGNSSplusDR` - Differential GNSS and dead reckoning used,
+ * - 5 `dR` - dead reckoning used,
+ * - 6 `manuallyByOperator` - position set manually by a human operator.
+ *
+ * @category: GeoReference information
+ * @revision: V1.3.1, extension with value 6 added in V2.2.1
+ */
PositioningSolutionType ::= ENUMERATED {
- noPositioningSolution (0),
- sGNSS (1),
- dGNSS (2),
- sGNSSplusDR (3),
- dGNSSplusDR (4),
- dR (5),
- ...
+ noPositioningSolution (0),
+ sGNSS (1),
+ dGNSS (2),
+ sGNSSplusDR (3),
+ dGNSSplusDR (4),
+ dR (5),
+ ...,
+ manuallyByOperator (6)
}
+/**
+ * This DE indicates whether a passenger seat is occupied or whether the occupation status is detectable or not.
+ *
+ * The number of row in vehicle seats layout is counted in rows from the driver row backwards from front to the rear
+ * of the vehicle.
+ * The left side seat of a row refers to the left hand side seen from vehicle rear to front.
+ * Additionally, a bit is reserved for each seat row, to indicate if the seat occupation of a row is detectable or not,
+ * i.e. `row1NotDetectable (3)`, `row2NotDetectable(8)`, `row3NotDetectable(13)` and `row4NotDetectable(18)`.
+ * Finally, a bit is reserved for each row seat to indicate if the seat row is present or not in the vehicle,
+ * i.e. `row1NotPresent (4)`, `row2NotPresent (9)`, `row3NotPresent(14)`, `row4NotPresent(19)`.
+ *
+ * When a seat is detected to be occupied, the corresponding seat occupation bit shall be set to `1`.
+ * For example, when the row 1 left seat is occupied, `row1LeftOccupied(0)` bit shall be set to `1`.
+ * When a seat is detected to be not occupied, the corresponding seat occupation bit shall be set to `0`.
+ * Otherwise, the value of seat occupation bit shall be set according to the following conditions:
+ * - If the seat occupation of a seat row is not detectable, the corresponding bit shall be set to `1`.
+ * When any seat row not detectable bit is set to `1`, all corresponding seat occupation bits of the same row
+ * shall be set to `1`.
+ * - If the seat row is not present, the corresponding not present bit of the same row shall be set to `1`.
+ * When any of the seat row not present bit is set to `1`, the corresponding not detectable bit for that row
+ * shall be set to `1`, and all the corresponding seat occupation bits in that row shall be set to `0`.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
PositionOfOccupants ::= BIT STRING {
row1LeftOccupied (0),
row1RightOccupied (1),
@@ -796,93 +2535,336 @@ PositionOfOccupants ::= BIT STRING {
row4NotPresent (19)
} (SIZE(20))
+/**
+ * This DE indicates the perpendicular distance between the vehicle front line of the bounding box and the front wheel axle in 0,1 metre.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 19`) for any aplicable value between 0,1 metre and 1,9 metres,
+ * - `19` for values equal to or higher than 1.8 metres,
+ * - `20` if the information is unavailable.
+ *
+ * @category: Vehicle information
+ * @unit 0,1 metre
+ * @revision: description revised in V2.1.1 (the meaning of 19 has changed slightly)
+ */
PosFrontAx ::= INTEGER {
- outOfRange (19),
+ outOfRange (19),
unavailable(20)
} (1..20)
+/**
+ * This DE represents a position along a single dimension such as the middle of a road or lane, measured as an offset from an externally defined starting point,
+ * in direction of an externally defined reference direction.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= -8190` and `n < 0`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in opposite direction of the reference direction,
+ * - `0` if the position is at the starting point,
+ * - `n` (`n > 0` and `n < 8190`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in the same direction as the reference direction,
+ * - `8 190` if the position is out of range, i.e. equal to or greater than 8 189 m,
+ * - `8 191` if the position information is not available.
+ *
+ * @unit 1 metre
+ * @category: GeoReference information
+ * @revision: Created in V2.2.1
+ */
+Position1d ::= INTEGER {
+ outOfRange(8190),
+ unavailable(8191)
+}(-8190..8191)
+
+/**
+ * This DE represents the distance from the centre of vehicle front bumper to the right or left longitudinal carrier of vehicle.
+ * The left/right carrier refers to the left/right as seen from a passenger sitting in the vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) for any aplicable value between 0,01 metre and 1,26 metres,
+ * - `126` for values equal to or higher than 1.25 metres,
+ * - `127` if the information is unavailable.
+ *
+ * @unit 0,01 metre
+ * @category Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 126 has changed slightly)
+ */
PosLonCarr ::= INTEGER {
outOfRange (126),
unavailable (127)
} (1..127)
+/**
+ * This DE represents the perpendicular inter-distance of neighbouring pillar axis of vehicle starting from the
+ * middle point of the front line of the vehicle bounding box.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 29`) for any aplicable value between 0,1 metre and 2,9 metres,
+ * - `29` for values equal to or greater than 2.8 metres,
+ * - `30` if the information is unavailable.
+ *
+ * @unit 0,1 metre
+ * @category Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 29 has changed slightly)
+ */
PosPillar ::= INTEGER {
outOfRange (29),
unavailable (30)
} (1..30)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` .
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on post crash event is unavailable,
+ * - 1 `accidentWithoutECallTriggered` - in case no eCall has been triggered for an accident,
+ * - 2 `accidentWithECallManuallyTriggered` - in case eCall has been manually triggered and transmitted to eCall back end,
+ * - 3 `accidentWithECallAutomaticallyTriggered` - in case eCall has been automatically triggered and transmitted to eCall back end,
+ * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork` - in case eCall has been triggered but cellular network is not accessible from triggering vehicle.
+ * - 5-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
PostCrashSubCauseCode ::= INTEGER {
- unavailable (0),
- accidentWithoutECallTriggered (1),
- accidentWithECallManuallyTriggered (2),
- accidentWithECallAutomaticallyTriggered (3),
+ unavailable (0),
+ accidentWithoutECallTriggered (1),
+ accidentWithECallManuallyTriggered (2),
+ accidentWithECallAutomaticallyTriggered (3),
accidentWithECallTriggeredWithoutAccessToCellularNetwork (4)
} (0..255)
+/**
+* This DE represent the total amount of rain falling during one hour. It is measured in mm per hour at an area of 1 square metre.
+*
+* The following values are specified:
+* - `n` (`n > 0` and `n < 2000`) if the amount of rain falling is equal to or less than n x 0,1 mm/h and greater than (n-1) x 0,1 mm/h,
+* - `2000` if the amount of rain falling is greater than 199.9 mm/h,
+* - `2001` if the information is not available.
+*
+* @unit: 0,1 mm/h
+* @category: Basic Information
+* @revision: created in V2.1.1
+*/
PrecipitationIntensity ::= INTEGER {
- outOfRange (2000),
- unavailable (2001)
+ outOfRange (2000),
+ unavailable (2001)
} (1..2001)
+/**
+ * This DE represents the indentifier of a protected communication zone.
+ *
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId)
+ */
ProtectedZoneId ::= INTEGER (0.. 134217727)
+/**
+ * This DE represents the radius of a protected communication zone.
+ *
+ *
+ * @unit: metre
+ * @category: Infrastructure information, Communication information
+ * @revision: V1.3.1
+ */
ProtectedZoneRadius ::= INTEGER (1..255,...)
+/**
+ * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of the actions to do
+ * while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
+ *
+ * The protected zone type is defined in ETSI TS 102 792 [14].
+ *
+ *
+ * @category: Communication information
+ * @revision: V1.3.1
+ */
ProtectedZoneType::= ENUMERATED {
- permanentCenDsrcTolling (0),
- ...,
- temporaryCenDsrcTolling (1)
+ permanentCenDsrcTolling (0),
+ ...,
+ temporaryCenDsrcTolling (1)
}
+/**
+ * This DE is used for various tasks in the public transportation environment, especially for controlling traffic
+ * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_").
+ * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation
+ * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the
+ * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to
+ * traffic congestion. Other usage of the DE is the provision of information like the public transport line number
+ * or the schedule delay of a public transport vehicle.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
PtActivationData ::= OCTET STRING (SIZE(1..20))
+/**
+ * This DE indicates a certain coding type of the PtActivationData data.
+ *
+ * The folowing value are specified:
+ * - 0 `undefinedCodingType` : undefined coding type,
+ * - 1 `r09-16CodingType` : coding of PtActivationData conform to VDV recommendation 420 [7],
+ * - 2 `vdv-50149CodingType` : coding of PtActivationData based on VDV recommendation 420 [7].
+ * - 3 - 255 : reserved for alternative and future use.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
PtActivationType ::= INTEGER {
- undefinedCodingType (0),
- r09-16CodingType (1),
+ undefinedCodingType (0),
+ r09-16CodingType (1),
vdv-50149CodingType (2)
} (0..255)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` .
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case no further detailed information on the railway level crossing status is available,
+ * - 1 `doNotCrossAbnormalSituation` - in case when something wrong is detected by equation or sensors of the railway level crossing,
+ including level crossing is closed for too long (e.g. more than 10 minutes long ; default value),
+ * - 2 `closed` - in case the crossing is closed (barriers down),
+ * - 3 `unguarded` - in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train),
+ * - 4 `nominal` - in case the barriers are up and lights are off.
+ * - 5-255: reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
RailwayLevelCrossingSubCauseCode ::= INTEGER {
- unavailable (0),
- doNotCrossAbnormalSituation (1),
- closed (2),
- unguarded (3),
+ unavailable (0),
+ doNotCrossAbnormalSituation (1),
+ closed (2),
+ unguarded (3),
nominal (4)
} (0..255)
---RelevanceDistance ::= ENUMERATED {
--- lessThan50m(0),
--- lessThan100m(1),
--- lessThan200m(2),
--- lessThan500m(3),
--- lessThan1000m(4),
--- lessThan5km(5),
--- lessThan10km(6),
--- over10km(7)
---}
-
---RelevanceTrafficDirection ::= ENUMERATED {
--- allTrafficDirections(0),
--- upstreamTraffic(1),
--- downstreamTraffic(2),
--- oppositeTraffic(3)
---}
-
+/**
+ * This DE describes a distance of relevance for information indicated in a message.
+ *
+ * The value shall be set to:
+ * - 0 `lessThan50m` - for distances below 50 m,
+ * - 1 `lessThan100m` - for distances below 100 m,
+ * - 2 `lessThan200m` - for distances below 200 m,
+ * - 3 `lessThan500m` - for distances below 300 m,
+ * - 4 `lessThan1000m` - for distances below 1 000 m,
+ * - 5 `lessThan5km` - for distances below 5 000 m,
+ * - 6 `lessThan10km` - for distances below 10 000 m,
+ * - 7 `over10km` - for distances over 10 000 m.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StandardLength3b instead.
+ *
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
+-- Wireshark modification
+-- RelevanceDistance ::= ENUMERATED {
+-- lessThan50m(0),
+-- lessThan100m(1),
+-- lessThan200m(2),
+-- lessThan500m(3),
+-- lessThan1000m(4),
+-- lessThan5km(5),
+-- lessThan10km(6),
+-- over10km(7)
+-- }
+
+/**
+ * This DE indicates a traffic direction that is relevant to information indicated in a message.
+ *
+ * The value shall be set to:
+ * - 0 `allTrafficDirections` - for all traffic directions,
+ * - 1 `upstreamTraffic` - for upstream traffic,
+ * - 2 `downstreamTraffic` - for downstream traffic,
+ * - 3 `oppositeTraffic` - for traffic in the opposite direction.
+ *
+ * The terms `upstream`, `downstream` and `oppositeTraffic` are relative to the event position.
+ *
+ * @note: Upstream traffic corresponds to the incoming traffic towards the event position,
+ * and downstream traffic to the departing traffic away from the event position.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficDirection instead.
+ *
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
+-- Wireshark modification
+-- RelevanceTrafficDirection ::= ENUMERATED {
+-- allTrafficDirections(0),
+-- upstreamTraffic(1),
+-- downstreamTraffic(2),
+-- oppositeTraffic(3)
+-- }
+
+/**
+ * This DE indicates whether an ITS message is transmitted as request from ITS-S or a response transmitted from
+ * ITS-S after receiving request from other ITS-Ss.
+ *
+ * The value shall be set to:
+ * - 0 `request` - for a request message,
+ * - 1 `response` - for a response message.
+ *
+ * @category Communication information
+ * @revision: Editorial update in V2.1.1
+ */
RequestResponseIndication ::= ENUMERATED {
- request (0),
+ request (0),
response (1)
}
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress`
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on rescue and recovery work is unavailable,
+ * - 1 `emergencyVehicles` - in case rescue and/or safeguarding work is ongoing by emergency vehicles, i.e. by vehicles that have the absolute right of way,
+ * - 2 `rescueHelicopterLanding` - in case rescue helicopter is landing,
+ * - 3 `policeActivityOngoing` - in case police activity is ongoing (only to be used if a more specific sub cause than (1) is needed),
+ * - 4 `medicalEmergencyOngoing` - in case medical emergency recovery is ongoing (only to be used if a more specific sub cause than (1) is needed),
+ * - 5 `childAbductionInProgress` - in case a child kidnapping alarm is activated and rescue work is ongoing (only to be used if a more specific sub cause than (1) is needed),
+ * - 6 `prioritizedVehicle` - in case rescue and/or safeguarding work is ongoing by prioritized vehicles, i.e. by vehicles that have priority but not the absolute right of way,
+ * - 7 `rescueAndRecoveryVehicle` - in case technical rescue work is ongoing by rescue and recovery vehicles.
+ * - 8-255: reserved for future usage.
+
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1, named values 6 and 7 added in V2.2.1
+ */
RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {
- unavailable (0),
- emergencyVehicles (1),
- rescueHelicopterLanding (2),
- policeActivityOngoing (3),
- medicalEmergencyOngoing (4),
- childAbductionInProgress (5)
+ unavailable (0),
+ emergencyVehicles (1),
+ rescueHelicopterLanding (2),
+ policeActivityOngoing (3),
+ medicalEmergencyOngoing (4),
+ childAbductionInProgress (5),
+ prioritizedVehicle (6),
+ rescueAndRecoveryVehicle (7)
} (0..255)
+/**
+ * This DE indicates an ordinal number that represents the position of a component in the list @ref RoadConfigurationSectionList.
+ *
+ * The value shall be set to:
+ * - `0` - if no road section is identified
+ * - `1..8` - for instances 1..8 of @ref RoadConfigurationSectionList
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+
+RoadSectionId::= INTEGER (0..8, ...)
+
+/**
+ * This DE indicates the type of a road segment.
+ *
+ * The value shall be set to:
+ * - 0 `urban-NoStructuralSeparationToOppositeLanes` - for an urban road with no structural separation between lanes carrying traffic in opposite directions,
+ * - 1 `urban-WithStructuralSeparationToOppositeLanes` - for an urban road with structural separation between lanes carrying traffic in opposite directions,
+ * - 2 `nonUrban-NoStructuralSeparationToOppositeLanes` - for an non urban road with no structural separation between lanes carrying traffic in opposite directions,
+ * - 3 `nonUrban-WithStructuralSeparationToOppositeLanes` - for an non urban road with structural separation between lanes carrying traffic in opposite directions.
+ *
+ * @category: Road Topology Information
+ * @revision: Editorial update in V2.1.1
+ */
RoadType ::= ENUMERATED {
urban-NoStructuralSeparationToOppositeLanes (0),
urban-WithStructuralSeparationToOppositeLanes (1),
@@ -890,24 +2872,101 @@ RoadType ::= ENUMERATED {
nonUrban-WithStructuralSeparationToOppositeLanes (3)
}
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`.
+ *
+The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on roadworks is unavailable,
+ * - 1 `majorRoadworks` - in case a major roadworks is ongoing,
+ * - 2 `roadMarkingWork` - in case a road marking work is ongoing,
+ * - 3 `slowMovingRoadMaintenance` - in case slow moving road maintenance work is ongoing,
+ * - 4 `shortTermStationaryRoadworks`- in case a short term stationary roadwork is ongoing,
+ * - 5 `streetCleaning` - in case a vehicle street cleaning work is ongoing,
+ * - 6 `winterService` - in case winter service work is ongoing.
+ * - 7-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
RoadworksSubCauseCode ::= INTEGER {
- unavailable (0),
+ unavailable (0),
majorRoadworks (1),
- roadMarkingWork (2),
- slowMovingRoadMaintenance (3),
- shortTermStationaryRoadworks (4),
- streetCleaning (5),
+ roadMarkingWork (2),
+ slowMovingRoadMaintenance (3),
+ shortTermStationaryRoadworks (4),
+ streetCleaning (5),
winterService (6)
} (0..255)
+/**
+ * This DE indicates if a distance is safe.
+ *
+ * The value shall be set to:
+ * - `FALSE` if the triple {LaD, LoD, VD} < {MSLaD, MSLoD, MSVD} is simultaneously satisfied with confidence level of 90 % or more,
+ * - `TRUE` otherwise.
+ *
+ * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD)
+ * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD).
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+*/
SafeDistanceIndicator::= BOOLEAN
+/**
+ * This DE indicates the horizontal position confidence value which represents the estimated absolute position accuracy, in one of the axis direction as defined in a shape of ellipse with a
+ * confidence level of 95 %.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 4 094`) if the accuracy is equal to or less than n * 0,01 metre,
+ * - `4 094` if the accuracy is out of range, i.e. greater than 4,093 m,
+ * - `4 095` if the accuracy information is unavailable.
+ *
+ * The value 0 shall not be used.
+ *
+ * @note: The fact that a position coordinate value is received with confidence value set to `unavailable(4095)`.
+ * can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the position coordinate value may be valid and used by the application.
+ * If a position coordinate value is received and its confidence value is set to `outOfRange(4094)`, it means that
+ * the position coordinate value is not valid and therefore cannot be trusted. Such value is not useful
+ * for the application.
+
+ * @unit 0,01 metre
+ * @category: GeoReference Information
+ * @revision: Description revised in V2.1.1
+ */
SemiAxisLength ::= INTEGER{
doNotUse (0),
- outOfRange (4094),
+ outOfRange (4094),
unavailable (4095)
} (0..4095)
+/**
+ * This DE indicates the type of sensor.
+ *
+ * The value shall be set to:
+ * - 0 `undefined` - in case the sensor type is undefined.
+ * - 1 `radar` - in case the sensor is a radar,
+ * - 2 `lidar` - in case the sensor is a lidar,
+ * - 3 `monovideo` - in case the sensor is mono video,
+ * - 4 `stereovision` - in case the sensor is stereo vision,
+ * - 5 `nightvision` - in case the sensor is night vision,
+ * - 6 `ultrasonic` - in case the sensor is ultrasonic,
+ * - 7 `pmd` - in case the sensor is photonic mixing device,
+ * - 8 `inductionLoop` - in case the sensor is an induction loop,
+ * - 9 `sphericalCamera` - in case the sensor is a spherical camera,
+ * - 10 `uwb` - in case the sensor is ultra wide band,
+ * - 11 `acoustic` - in case the sensor is acoustic,
+ * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion,
+ * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages.
+ * - 14-31 - are reserved for future usage.
+ *
+ * @category: Sensing Information
+ * @revision: created in V2.1.1
+*/
SensorType ::= INTEGER {
undefined (0),
radar (1),
@@ -925,47 +2984,222 @@ SensorType ::= INTEGER {
itsAggregation (13)
} (0..31)
+/**
+ * This DE indicates the type of sensor(s).
+ * The corresponding bit shall be set to 1 under the following conditions:
+ *
+ * - 0 `undefined` - in case the sensor type is undefined.
+ * - 1 `radar` - in case the sensor is a radar,
+ * - 2 `lidar` - in case the sensor is a lidar,
+ * - 3 `monovideo` - in case the sensor is mono video,
+ * - 4 `stereovision` - in case the sensor is stereo vision,
+ * - 5 `nightvision` - in case the sensor is night vision,
+ * - 6 `ultrasonic` - in case the sensor is ultrasonic,
+ * - 7 `pmd` - in case the sensor is photonic mixing device,
+ * - 8 `inductionLoop` - in case the sensor is an induction loop,
+ * - 9 `sphericalCamera` - in case the sensor is a spherical camera,
+ * - 10 `uwb` - in case the sensor is ultra wide band,
+ * - 11 `acoustic` - in case the sensor is acoustic,
+ * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion,
+ * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages.
+ * - 14-15 - are reserved for future usage.
+ *
+ * @note: If all bits are set to 0, then no sensor type is used
+ *
+ * @category: Sensing Information
+ * @revision: created in V2.2.1
+*/
+SensorTypes ::= BIT STRING {
+ undefined (0),
+ radar (1),
+ lidar (2),
+ monovideo (3),
+ stereovision (4),
+ nightvision (5),
+ ultrasonic (6),
+ pmd (7),
+ inductionLoop (8),
+ sphericalCamera (9),
+ uwb (10),
+ acoustic (11),
+ localAggregation (12),
+ itsAggregation (13)
+} (SIZE (16,... ))
+
+/**
+ * This DE represents a sequence number.
+ *
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
SequenceNumber ::= INTEGER (0..65535)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on signal violation event is unavailable,
+ * - 1 `stopSignViolation` - in case a stop sign violation is detected,
+ * - 2 `trafficLightViolation` - in case a traffic light violation is detected,
+ * - 3 `turningRegulationViolation`- in case a turning regulation violation is detected.
+ * - 4-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
SignalViolationSubCauseCode ::= INTEGER {
- unavailable (0),
- stopSignViolation (1),
- trafficLightViolation (2),
+ unavailable (0),
+ stopSignViolation (1),
+ trafficLightViolation (2),
turningRegulationViolation (3)
} (0..255)
+/**
+ * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle".
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on slow vehicle driving event is
+ * unavailable,
+ * - 1 `maintenanceVehicle` - in case of a slow driving maintenance vehicle on the road,
+ * - 2 `vehiclesSlowingToLookAtAccident`- in case vehicle is temporally slowing down to look at accident, spot, etc.,
+ * - 3 `abnormalLoad` - in case an abnormal loaded vehicle is driving slowly on the road,
+ * - 4 `abnormalWideLoad` - in case an abnormal wide load vehicle is driving slowly on the road,
+ * - 5 `convoy` - in case of slow driving convoy on the road,
+ * - 6 `snowplough` - in case of slow driving snow plough on the road,
+ * - 7 `deicing` - in case of slow driving de-icing vehicle on the road,
+ * - 8 `saltingVehicles` - in case of slow driving salting vehicle on the road.
+ * - 9-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
SlowVehicleSubCauseCode ::= INTEGER {
- unavailable (0),
- maintenanceVehicle (1),
- vehiclesSlowingToLookAtAccident (2),
- abnormalLoad (3),
- abnormalWideLoad (4),
- convoy (5),
- snowplough (6),
- deicing (7),
+ unavailable (0),
+ maintenanceVehicle (1),
+ vehiclesSlowingToLookAtAccident (2),
+ abnormalLoad (3),
+ abnormalWideLoad (4),
+ convoy (5),
+ snowplough (6),
+ deicing (7),
saltingVehicles (8)
} (0..255)
+/**
+ * The DE indicates if a vehicle is carrying goods in the special transport conditions.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 `heavyLoad` - the vehicle is carrying goods with heavy load,
+ * - 1 `excessWidth` - the vehicle is carrying goods in excess of width,
+ * - 2 `excessLength` - the vehicle is carrying goods in excess of length,
+ * - 3 `excessHeight` - the vehicle is carrying goods in excess of height.
+ *
+ * Otherwise, the corresponding bit shall be set to 0.
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
SpecialTransportType ::= BIT STRING {
heavyLoad (0),
- excessWidth (1),
- excessLength (2),
+ excessWidth (1),
+ excessLength (2),
excessHeight (3)
} (SIZE(4))
+/**
+ * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s.
+ * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s,
+ * - `127` if the confidence value information is not available.
+ *
+ * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the speed value may be valid and used by the application.
+ *
+ * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid
+ * and therefore cannot be trusted. Such is not useful for the application.
+ *
+ * @unit: 0,01 m/s
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
SpeedConfidence ::= INTEGER {
- outOfRange (126),
+ outOfRange (126),
unavailable (127)
} (1..127)
+/**
+ * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region.
+ *
+ * @unit: km/h
+ * @category: Infrastructure information, Traffic information
+ * @revision: V1.3.1
+ */
SpeedLimit ::= INTEGER (1..255)
+/**
+ * This DE represents a speed value, i.e. the magnitude of the velocity-vector.
+ *
+ * The value shall be set to:
+ * - `0` in a standstill situation.
+ * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s,
+ * - `16 382` for speed values greater than 163,81 m/s,
+ * - `16 383` if the speed accuracy information is not available.
+ *
+ * @note: the definition of standstill is out of scope of the present document.
+ *
+ * @unit: 0,01 m/s
+ * @category: Kinematic information
+ * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly)
+*/
SpeedValue ::= INTEGER {
- standstill (0),
- outOfRange (16382),
+ standstill (0),
+ outOfRange (16382),
unavailable (16383)
} (0..16383)
+/**
+ * This DE indicates the type of stored information.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ *
+ * - `0` undefined - in case the stored information type is undefined.
+ * - `1` staticDb - in case the stored information type is a static database.
+ * - `2` dynamicDb - in case the stored information type is a dynamic database
+ * - `3` realTimeDb - in case the stored information type is a real time updated database.
+ * - `4` map - in case the stored information type is a road topology map.
+ * - Bits 5 to 7 - are reserved for future use.
+ *
+ * @note: If all bits are set to 0, then no stored information type is used
+ *
+ * @category: Basic Information
+ * @revision: created in V2.2.1
+*/
+StoredInformationType::= BIT STRING {
+ undefined (0),
+ staticDb (1),
+ dynamicDb (2),
+ realTimeDb (3),
+ map (4)
+} (SIZE (8,... ))
+
+/**
+ * This DE represents the value of a velocity component in a defined coordinate system.
+ *
+ * The value shall be set to:
+ * - `-16 383` if the velocity is equal to or smaller than -163,83 m/s,
+ * - `n` (`n > -16 383` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s,
+ * - `16 382` for velocity values equal to or greater than 163,81 m/s,
+ * - `16 383` if the velocity information is not available.
+ *
+ * @unit: 0,01 m/s
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
VelocityComponentValue ::= INTEGER {
negativeOutOfRange (-16383),
positiveOutOfRange (16382),
@@ -973,239 +3207,772 @@ VelocityComponentValue ::= INTEGER {
} (-16383..16383)
+/**
+ * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss.
+ *
+ * The value shall be set to:
+ * - `0` to indicate an estimated probability of a loss of stability of 0 %, i.e. "stable",
+ * - `n` (`n > 0` and `n < 50`) to indicate the actual stability level,
+ * - `50` to indicate a estimated probability of a loss of stability of 100 %, i.e. "total loss of stability",
+ * - the values between 51 and 62 are reserved for future use,
+ * - `63`: this value indicates that the information is unavailable.
+ *
+ * @unit: 2 %
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
StabilityLossProbability ::= INTEGER {
- stable (0),
- totalLossOfStability (50),
- unavailable (63)
-} (0..63)
-
+ stable (0),
+ totalLossOfStability (50),
+ unavailable (63)
+} (0..63)
+
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object or shape.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
StandardLength12b::= INTEGER (0..4095)
+/**
+ * The DE represents length as a measure of distance between points.
+ *
+ * The value shall be set to:
+ * - 0 `lessThan50m` - for distances below 50 m,
+ * - 1 `lessThan100m` - for distances below 100 m,
+ * - 2 `lessThan200m` - for distances below 200 m,
+ * - 3 `lessThan500m` - for distances below 300 m,
+ * - 4 `lessThan1000m` - for distances below 1 000 m,
+ * - 5 `lessThan5km` - for distances below 5 000 m,
+ * - 6 `lessThan10km` - for distances below 10 000 m,
+ * - 7 `over10km` - for distances over 10 000 m.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1 from RelevanceDistance
+ */
StandardLength3b ::= ENUMERATED {
- lessThan50m (0),
- lessThan100m (1),
- lessThan200m (2),
- lessThan500m (3),
- lessThan1000m (4),
- lessThan5km (5),
- lessThan10km (6),
+ lessThan50m (0),
+ lessThan100m (1),
+ lessThan200m (2),
+ lessThan500m (3),
+ lessThan1000m (4),
+ lessThan5km (5),
+ lessThan10km (6),
over10km (7)
}
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
StandardLength9b::= INTEGER (0..511)
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
StandardLength1B::= INTEGER (0..255)
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
StandardLength2B::= INTEGER (0..65535)
+/**
+ * This DE indicates the duration in minutes since which something is stationary.
+ *
+ * The value shall be set to:
+ * - 0 `lessThan1Minute` - for being stationary since less than 1 minute,
+ * - 1 `lessThan2Minutes` - for being stationary since less than 2 minute and for equal to or more than 1 minute,
+ * - 2 `lessThan15Minutes` - for being stationary since less than 15 minutes and for equal to or more than 1 minute,
+ * - 3 `equalOrGreater15Minutes` - for being stationary since equal to or more than 15 minutes.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
StationarySince ::= ENUMERATED {
- lessThan1Minute (0),
- lessThan2Minutes (1),
- lessThan15Minutes (2),
+ lessThan1Minute (0),
+ lessThan2Minutes (1),
+ lessThan15Minutes (2),
equalOrGreater15Minutes (3)
}
+/**
+ * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle".
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on stationary vehicle is unavailable,
+ * - 1 `humanProblem` - in case stationary vehicle is due to health problem of driver or passenger,
+ * - 2 `vehicleBreakdown` - in case stationary vehicle is due to vehicle break down,
+ * - 3 `postCrash` - in case stationary vehicle is caused by collision,
+ * - 4 `publicTransportStop` - in case public transport vehicle is stationary at bus stop,
+ * - 5 `carryingDangerousGoods`- in case the stationary vehicle is carrying dangerous goods,
+ * - 6 `vehicleOnFire` - in case of vehicle on fire.
+ * - 7-255 reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
StationaryVehicleSubCauseCode ::= INTEGER {
- unavailable (0),
- humanProblem (1),
- vehicleBreakdown (2),
- postCrash (3),
- publicTransportStop (4),
- carryingDangerousGoods (5),
+ unavailable (0),
+ humanProblem (1),
+ vehicleBreakdown (2),
+ postCrash (3),
+ publicTransportStop (4),
+ carryingDangerousGoods (5),
vehicleOnFire (6)
} (0..255)
+/**
+ * This DE represents the identifier of an ITS-S.
+ * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1 based on @ref StationID
+ */
StationId ::= INTEGER(0..4294967295)
+/**
+ * This DE represents the identifier of an ITS-S.
+ * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StationId instead.
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
StationID ::= INTEGER(0..4294967295)
+/**
+ * This DE represents the type of technical context the ITS-S is integrated in.
+ * The station type depends on the integration environment of ITS-S into vehicle, mobile devices or at infrastructure.
+ *
+ * The value shall be set to:
+ * - 0 `unknown` - information about the ITS-S context is not provided,
+ * - 1 `pedestrian` - ITS-S carried by human being not using a mechanical device for their trip (VRU profile 1),
+ * - 2 `cyclist` - ITS-S mounted on non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2),
+ * - 3 `moped` - ITS-S mounted on light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16]
+ class L1, L2 (VRU Profile 3),
+ * - 4 `motorcycles` - ITS-S mounted on motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16]
+ class L3, L4, L5, L6, L7 (VRU Profile 3),
+ * - 5 `passengerCar` - ITS-S mounted on small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1,
+ * - 6 `bus` - ITS-S mounted on large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3,
+ * - 7 `lightTruck` - ITS-S mounted on light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1,
+ * - 8 `heavyTruck` - ITS-S mounted on Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3,
+ * - 9 `trailer` - ITS-S mounted on an unpowered vehicle that is intended to be towed by a powered vehicle as defined in
+ UNECE/TRANS/WP.29/78/Rev.4 [16] class O,
+ * - 10 `specialVehicles` - ITS-S mounted on vehicles which have special purposes other than the above (e.g. moving road works vehicle),
+ * - 11 `tram` - ITS-S mounted on a vehicle which runs on tracks along public streets,
+ * - 12 `lightVruVehicle` - ITS-S carried by a human being traveling on light vehicle , incl. possible use of roller skates or skateboards (VRU profile 2),
+ * - 13 `animal` - ITS-S carried by an animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4),
+ * - 14 - reserved for future usage,
+ * - 15 `roadSideUnit` - ITS-S mounted on an infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole,
+ on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity),
+ * - 16-255 - are reserved for future usage.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficParticipantType instead.
+ * @category: Communication information.
+ * @revision: revised in V2.1.1 (named values 12 and 13 added and note to value 9 deleted)
+ */
StationType ::= INTEGER {
- unknown (0),
- pedestrian (1),
- cyclist (2),
- moped (3),
- motorcycle (4),
- passengerCar (5),
- bus (6),
- lightTruck (7),
- heavyTruck (8),
- trailer (9),
- specialVehicle (10),
- tram (11),
- lightVruVehicle (12),
- animal (13),
+ unknown (0),
+ pedestrian (1),
+ cyclist (2),
+ moped (3),
+ motorcycle (4),
+ passengerCar (5),
+ bus (6),
+ lightTruck (7),
+ heavyTruck (8),
+ trailer (9),
+ specialVehicle (10),
+ tram (11),
+ lightVruVehicle (12),
+ animal (13),
roadSideUnit (15)
} (0..255)
+/**
+ * This DE indicates the steering wheel angle confidence value which represents the estimated absolute accuracy for a steering wheel angle value with a confidence level of 95 %.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 1,5 degrees,
+ * - `126` if the confidence value is out of range, i.e. greater than 187,5 degrees,
+ * - `127` if the confidence value is not available.
+ *
+ * @note: The fact that a steering wheel angle value is received with confidence value set to `unavailable(127)`
+ * can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the steering wheel angle value may be valid and used by the application.
+ *
+ * If a steering wheel angle value is received and its confidence value is set to `outOfRange(126)`,
+ * it means that the steering wheel angle value is not valid and therefore cannot be trusted.
+ * Such value is not useful for the application.
+ *
+ * @unit: 1,5 degree
+ * @category: Vehicle Information
+ * @revision: Description revised in V2.1.1
+*/
SteeringWheelAngleConfidence ::= INTEGER {
- outOfRange (126),
+ outOfRange (126),
unavailable (127)
} (1..127)
-SteeringWheelAngleValue ::= INTEGER {
+/**
+ * This DE represents the steering wheel angle of the vehicle at certain point in time.
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right,
+ * - `n` (`n > -511` and `n <= 0`) if the steering wheel angle is equal to or less than n x 1,5 degrees, and greater than (n-1) x 1,5 degrees,
+ turning clockwise (i.e. to the right),
+ * - `n` (`n >= 1` and `n < 511`) if the steering wheel angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees,
+ turning counter-clockwise (i.e. to the left),
+ * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left,
+ * - `512` if information is not available.
+ *
+ * @unit: 1,5 degree
+ * @revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly).
+ */
+SteeringWheelAngleValue ::= INTEGER {
negativeOutOfRange (-511),
positiveOutOfRange (511),
unavailable (512)
} (-511..512)
+/**
+ * This DE indicates the generic sub cause of a detected event.
+ *
+ * @note: The sub cause code value assignment varies based on value of @ref CauseCode.
+ *
+ * @category: Traffic information
+ * @revision: Description revised in V2.1.1 (this is the generic sub cause type)
+ */
SubCauseCodeType ::= INTEGER (0..255)
+/**
+ * This DE indicates a temperature value.
+
+ * The value shall be set to:
+ * - `-60` for temperature equal to or less than -60 degrees C,
+ * - `n` (`n > -60` and `n < 67`) for the actual temperature n in degrees C,
+ * - `67` for temperature equal to or greater than 67 degrees C.
+ *
+ * @unit: degrees Celsius
+ * @category: Basic information
+ * @revision: Editorial update in V2.1.1
+ */
Temperature ::= INTEGER {
- equalOrSmallerThanMinus60Deg (-60),
+ equalOrSmallerThanMinus60Deg (-60),
equalOrGreaterThan67Deg(67)} (-60..67)
+/**
+ * This DE represents the number of elapsed (TAI) milliseconds since the ITS Epoch.
+ * The ITS epoch is `00:00:00.000 UTC, 1 January 2004`.
+ * "Elapsed" means that the true number of milliseconds is continuously counted without interruption,
+ * i.e. it is not altered by leap seconds, which occur in UTC.
+ *
+ * @note: International Atomic Time (TAI) is the time reference coordinate on the basis of the readings of atomic clocks,
+ * operated in accordance with the definition of the second, the unit of time of the International System of Units.
+ * TAI is a continuous time scale. UTC has discontinuities, as it is occasionally adjusted by leap seconds.
+ * As of 1 January, 2022, TimestampIts is 5 seconds ahead of UTC, because since the ITS epoch on 1 January 2004 00:00:00.000 UTC,
+ * further 5 leap seconds have been inserted in UTC.
+ *
+ * EXAMPLE: The value for TimestampIts for 1 January 2007 00:00:00.000 UTC is `94 694 401 000` milliseconds,
+ * which includes one leap second insertion since the ITS epoch.
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: Description revised in in V2.1.1
+ */
TimestampIts ::= INTEGER (0..4398046511103)
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on the traffic condition is unavailable,
+ * - 1 `increasedVolumeOfTraffic` - in case the type of traffic condition is increased traffic volume,
+ * - 2 `trafficJamSlowlyIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing slowly,
+ * - 3 `trafficJamIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing,
+ * - 4 `trafficJamStronglyIncreasing` - in case the type of traffic condition is a traffic jam which volume is strongly increasing,
+ * - 5 `trafficJam` ` - in case the type of traffic condition is a traffic jam and no further detailed information about its volume is available,
+ * - 6 `trafficJamSlightlyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing slowly,
+ * - 7 `trafficJamDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing,
+ * - 8 `trafficJamStronglyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing rapidly,
+ * - 9 `trafficJamStable` - in case the traffic condition is a traffic jam with stable volume,
+ * - 10-255: reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1, definition of value 0 and 1 changed in V2.2.1, name and definition of value 5 changed in V2.2.1, value 9 added in V2.2.1
+ */
TrafficConditionSubCauseCode ::= INTEGER {
unavailable (0),
increasedVolumeOfTraffic (1),
trafficJamSlowlyIncreasing (2),
trafficJamIncreasing (3),
trafficJamStronglyIncreasing (4),
- trafficStationary (5),
+ trafficJam (5),
trafficJamSlightlyDecreasing (6),
trafficJamDecreasing (7),
- trafficJamStronglyDecreasing (8)
+ trafficJamStronglyDecreasing (8),
+ trafficJamStable (9)
} (0..255)
-TrafficDirection ::= ENUMERATED {
- allTrafficDirections (0),
- upstreamTraffic (1),
- downstreamTraffic (2),
- oppositeTraffic (3)
+/**
+ * This DE indicates a direction of traffic with respect to a reference direction, and a portion of that traffic with respect to a reference position.
+ *
+ * The value shall be set to:
+ * - 0 `allTrafficDirections` - for all directions of traffic,
+ * - 1 `sameAsReferenceDirection-upstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic upstream of the reference position,
+ * - 2 `sameAsReferenceDirection-downstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic downstream of the reference position,
+ * - 3 `oppositeToReferenceDirection` - for the direction of traffic opposite to the reference direction.
+ *
+ * @note: Upstream traffic corresponds to the incoming traffic towards the event position, and downstream traffic to the departing traffic away from the event position.
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1 from RelevanceTrafficDirection, description and naming of values changed in V2.2.1
+ *
+ */
+ TrafficDirection ::= ENUMERATED {
+ allTrafficDirections(0),
+ sameAsReferenceDirection-upstreamOfReferencePosition(1),
+ sameAsReferenceDirection-downstreamOfReferencePosition(2),
+ oppositeToReferenceDirection(3)
}
+/**
+ * This DE represents the type of a traffic participant.
+ *
+ * The value shall be set to:
+ * - 0 `unknown` - information about traffic participant is not provided,
+ * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1),
+ * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2),
+ * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3),
+ * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3),
+ * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1,
+ * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3,
+ * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1,
+ * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3,
+ * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O,
+ * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle),
+ * - 11 `tram` - vehicle which runs on tracks along public streets,
+ * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2),
+ * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4),
+ * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T,
+ * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole,
+ on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity),
+ * - 16-255 - are reserved for future usage.
+ *
+ * @category: Communication information.
+ * @revision: Created in V2.1.1 based on StationType
+ */
TrafficParticipantType ::= INTEGER {
- unknown (0),
- pedestrian (1),
- cyclist (2),
- moped (3),
- motorcycle (4),
- passengerCar (5),
- bus (6),
- lightTruck (7),
- heavyTruck (8),
- trailer (9),
- specialVehicle (10),
- tram (11),
- lightVruVehicle (12),
+ unknown (0),
+ pedestrian (1),
+ cyclist (2),
+ moped (3),
+ motorcycle (4),
+ passengerCar (5),
+ bus (6),
+ lightTruck (7),
+ heavyTruck (8),
+ trailer (9),
+ specialVehicle (10),
+ tram (11),
+ lightVruVehicle (12),
animal (13),
- agricultural (14),
+ agricultural (14),
roadSideUnit (15)
} (0..255)
+/**
+ * This DE indicates traffic rules that apply to vehicles at a certain position.
+ *
+ * The value shall be set to:
+ * - `0` - if overtaking is prohibited for all vehicles,
+ * - `1` - if overtaking is prohibited for trucks,
+ * - `2` - if vehicles should pass to the right lane,
+ * - `3` - if vehicles should pass to the left lane.
+ * - `4` - if vehicles should pass to the left or right lane.
+ *
+ * @category: Infrastructure information, Traffic information
+ * @revision: Editorial update in V2.1.1
+ */
TrafficRule ::= ENUMERATED {
- noPassing (0),
- noPassingForTrucks (1),
- passToRight (2),
- passToLeft (3),
- ...}
+ noPassing (0),
+ noPassingForTrucks (1),
+ passToRight (2),
+ passToLeft (3),
+ ...,
+ passToLeftOrRight (4)
+}
+/**
+ * This DE provides information about the presence of a trailer.
+ *
+ * The value shall be set to:
+ * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present.
+ * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value.
+ * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value.
+ * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible.
+ * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer
+ * nor the detection of trailer presence/absence is possible.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1 based on VehicleLengthConfidenceIndication
+*/
TrailerPresenceInformation ::= ENUMERATED {
- noTrailerPresent (0),
- trailerPresentWithKnownLength (1),
- trailerPresentWithUnknownLength (2),
- trailerPresenceIsUnknown (3),
+ noTrailerPresent (0),
+ trailerPresentWithKnownLength (1),
+ trailerPresentWithUnknownLength (2),
+ trailerPresenceIsUnknown (3),
unavailable (4)
}
-TrajectoryInterceptionProbability ::= INTEGER {
- unavailable (63)
-} (0..63)
-
-TrajectoryInterceptionConfidence ::= INTEGER {
- lessthan50percent (0),
+/**
+ * This DE defines the probability that the ego trajectory intercepts with any other object's trajectory on the road.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n <= 50`) to indicate the actual probability,
+ * - the values between 51 and 62 are reserved,
+ * - `63`: to indicate that the information is unavailable.
+ *
+ * @unit: 2 %
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+TrajectoryInterceptionProbability ::= INTEGER {
+ unavailable (63)
+} (0..63)
+
+/**
+ * This DE defines the confidence level of the trajectoryInterceptionProbability.
+ *
+ * The value shall be set to:
+ * - `0` - to indicate confidence level less than 50 %,
+ * - `1` - to indicate confidence level greater than or equal to 50 % and less than 70 %,
+ * - `2` - to indicate confidence level greater than or equal to 70 % and less than 90 %,
+ * - `3` - to indicate confidence level greater than or equal to 90%.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+TrajectoryInterceptionConfidence ::= INTEGER {
+ lessthan50percent (0),
between50and70Percent (1),
- between70and90Percent (2),
- above90Percent (3)
+ between70and90Percent (2),
+ above90Percent (3)
} (0..3)
---TransmissionInterval::= INTEGER (1..10000)
-
+/**
+ * This DE represents the time interval between two consecutive message transmissions.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeMilliSecondPos instead.
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+-- Wireshark modification
+-- TransmissionInterval::= INTEGER (1..10000)
+
+/**
+ * This DE provides the turning direction.
+ *
+ * The value shall be set to:
+ * - `left` for turning to te left.
+ * - `right` for turing to the right.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
TurningDirection::= ENUMERATED {
- left,
- right
+ left,
+ right
}
+/**
+ * This DE represents the smallest circular turn (i.e. U-turn) that the vehicle is capable of making.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 254`) to indicate the applicable value is equal to or less than n x 0,4 metre, and greater than (n-1) x 0,4 metre,
+ * - `254` to indicate that the turning radius is greater than 253 x 0,4 metre = 101.2 metres,
+ * - `255` to indicate that the information is unavailable.
+ *
+ * For vehicle with tracker, the turning radius applies to the vehicle only.
+ *
+ * @category: Vehicle information
+ * @unit 0,4 metre
+ * @revision: Description revised V2.1.1 (the meaning of 254 has changed slightly)
+ */
TurningRadius ::= INTEGER {
outOfRange (254),
unavailable (255)
} (1..255)
---ValidityDuration::= INTEGER {
--- timeOfDetection(0),
--- oneSecondAfterDetection(1)
---} (0..86400)
+/**
+ * This DE represents indication of how a certain path or area will be used.
+ *
+ * The value shall be set to:
+ * - 0 - ` noIndication ` - in case it will remain free to be used,
+ * - 1 - ` specialUse ` - in case it will be physically blocked by special use,
+ * - 2 - ` rescueOperation` - in case it is intended to be used for rescue operations,
+ *
+ * @category: Basic information
+ * @revision: Created in V2.2.1
+ */
+UsageIndication ::= ENUMERATED {
+ noIndication(0),
+ specialUse (1),
+ rescueOperation (2),
+ ...
+}
+/**
+ * This DE represents the duration of a traffic event validity.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeSecond instead.
+ * @unit: 1 s
+ * @category: Basic information
+ * @revision: V1.3.1
+*/
+-- Wireshark modification
+-- ValidityDuration::= INTEGER {
+-- timeOfDetection(0),
+-- oneSecondAfterDetection(1)
+-- } (0..86400)
+
+/**
+ * This DE represents the Vehicle Descriptor Section (VDS). The values are assigned according to ISO 3779 [6].
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
VDS ::= IA5String (SIZE(6))
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `vehicleBreakdown`.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on cause of vehicle break down is unavailable,
+ * - 1 `lackOfFuel` - in case vehicle break down is due to lack of fuel,
+ * - 2 `lackOfBatteryPower` - in case vehicle break down is caused by lack of battery power,
+ * - 3 `engineProblem` - in case vehicle break down is caused by an engine problem,
+ * - 4 `transmissionProblem` - in case vehicle break down is caused by transmission problem,
+ * - 5 `engineCoolingProblem`- in case vehicle break down is caused by an engine cooling problem,
+ * - 6 `brakingSystemProblem`- in case vehicle break down is caused by a braking system problem,
+ * - 7 `steeringProblem` - in case vehicle break down is caused by a steering problem,
+ * - 8 `tyrePuncture` - in case vehicle break down is caused by tyre puncture,
+ * - 9 `tyrePressureProblem` - in case low tyre pressure in detected,
+ * - 10 `vehicleOnFire` - in case the vehicle is on fire.
+ * - 11-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+
+ */
VehicleBreakdownSubCauseCode ::= INTEGER {
- unavailable (0),
- lackOfFuel (1),
- lackOfBatteryPower (2),
- engineProblem (3),
- transmissionProblem (4),
- engineCoolingProblem (5),
- brakingSystemProblem (6),
- steeringProblem (7),
- tyrePuncture (8),
- tyrePressureProblem (9),
+ unavailable (0),
+ lackOfFuel (1),
+ lackOfBatteryPower (2),
+ engineProblem (3),
+ transmissionProblem (4),
+ engineCoolingProblem (5),
+ brakingSystemProblem (6),
+ steeringProblem (7),
+ tyrePuncture (8),
+ tyrePressureProblem (9),
vehicleOnFire (10)
} (0..255)
+/**
+ * This DE represents the height of the vehicle, measured from the ground to the highest point, excluding any antennas.
+ * In case vehicles are equipped with adjustable ride heights, camper shells, and any other
+ * equipment which may result in varying height, the largest possible height shall be used.
+ *
+ * The value shall be set to:
+ * - `n` (`n >0` and `n < 127`) indicates the applicable value is equal to or less than n x 0,05 metre, and greater than (n-1) x 0,05 metre,
+ * - `127` indicates that the vehicle width is greater than 6,3 metres,
+ * - `128` indicates that the information in unavailable.
+ *
+ * @unit: 0,05 metre
+ * @category: Vehicle information
+ * @revision: created in V2.1.1
+*/
VehicleHeight ::= INTEGER {
- outOfRange (126),
+ outOfRange (126),
unavailable (127)
}(1..128)
+/**
+ * This DE provides information about the presence of a trailer.
+ *
+ * The value shall be set to:
+ * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present,
+ * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value,
+ * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value,
+ * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible,
+ * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer,
+ * nor the detection of trailer presence/absence is possible.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrailerPresenceInformation instead.
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+*/
VehicleLengthConfidenceIndication ::= ENUMERATED {
- noTrailerPresent (0),
- trailerPresentWithKnownLength (1),
- trailerPresentWithUnknownLength (2),
- trailerPresenceIsUnknown (3),
+ noTrailerPresent (0),
+ trailerPresentWithKnownLength (1),
+ trailerPresentWithUnknownLength (2),
+ trailerPresenceIsUnknown (3),
unavailable (4)
}
+/**
+ * This DE represents the length of a vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1022`) to indicate the applicable value n is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre,
+ * - `1 022` to indicate that the vehicle length is greater than 102.1 metres,
+ * - `1 023` to indicate that the information in unavailable.
+ *
+ *
+ * @unit: 0,1 metre
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 1 022 has changed slightly).
+ */
VehicleLengthValue ::= INTEGER {
- outOfRange(1022),
+ outOfRange(1022),
unavailable(1023)
} (1..1023)
+/**
+ * This DE represents the mass of an empty loaded vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1023`) to indicate that the applicable value is equal to or less than n x 10^5 gramm, and greater than (n-1) x 10^5 gramm,
+ * - `1 023` indicates that the vehicle mass is greater than 102 200 000 g,
+ * - `1 024` indicates the vehicle mass information is unavailable.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @unit: 10^5 gramm
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 1 023 has changed slightly).
+*/
VehicleMass ::= INTEGER {
- outOfRange (1023),
+ outOfRange (1023),
unavailable(1024)
-} (1..1024)
-
+} (1..1024)
+
+/**
+ * This DE indicates the role played by a vehicle at a point in time.
+ *
+ * The value shall be set to:
+ * - 0 `default` - to indicate the default vehicle role as indicated by the vehicle type,
+ * - 1 `publicTransport` - to indicate that the vehicle is used to operate public transport service,
+ * - 2 `specialTransport` - to indicate that the vehicle is used for special transport purpose, e.g. oversized trucks,
+ * - 3 `dangerousGoods` - to indicate that the vehicle is used for dangerous goods transportation,
+ * - 4 `roadWork` - to indicate that the vehicle is used to realize roadwork or road maintenance mission,
+ * - 5 `rescue` - to indicate that the vehicle is used for rescue purpose in case of an accident, e.g. as a towing service,
+ * - 6 `emergency` - to indicate that the vehicle is used for emergency mission, e.g. ambulance, fire brigade,
+ * - 7 `safetyCar` - to indicate that the vehicle is used for public safety, e.g. patrol,
+ * - 8 `agriculture` - to indicate that the vehicle is used for agriculture, e.g. farm tractor,
+ * - 9 `commercial` - to indicate that the vehicle is used for transportation of commercial goods,
+ * - 10 `military` - to indicate that the vehicle is used for military purpose,
+ * - 11 `roadOperator` - to indicate that the vehicle is used in road operator missions,
+ * - 12 `taxi` - to indicate that the vehicle is used to provide an authorized taxi service,
+ * - 13 `uvar` - to indicate that the vehicle is authorized to enter a zone according to the applicable Urban Vehicle Access Restrictions.
+ * - 14 `rfu1` - is reserved for future usage.
+ * - 15 `rfu2` - is reserved for future usage.
+ *
+ * @category: Vehicle Information
+ * @revision: Description updated in V2.1.1 (removed reference to CEN/TS 16157-3), value 13 assigned in V2.2.1
+ */
VehicleRole ::= ENUMERATED {
- default (0),
- publicTransport (1),
- specialTransport(2),
- dangerousGoods (3),
- roadWork (4),
- rescue (5),
- emergency (6),
- safetyCar (7),
- agriculture (8),
- commercial (9),
- military (10),
- roadOperator (11),
- taxi (12),
- reserved1 (13),
- reserved2 (14),
- reserved3 (15)
+ default (0),
+ publicTransport (1),
+ specialTransport(2),
+ dangerousGoods (3),
+ roadWork (4),
+ rescue (5),
+ emergency (6),
+ safetyCar (7),
+ agriculture (8),
+ commercial (9),
+ military (10),
+ roadOperator (11),
+ taxi (12),
+ uvar (13),
+ rfu1 (14),
+ rfu2 (15)
}
+/**
+ * This DE represents the width of a vehicle, excluding side mirrors and possible similar extensions.
+
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 61`) indicates the applicable value is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre,
+ * - `61` indicates that the vehicle width is greater than 6,0 metres,
+ * - `62` indicates that the information in unavailable.
+ *
+ * @unit: 0,1 metre
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 61 has changed slightly).
+ */
VehicleWidth ::= INTEGER {
- outOfRange (61),
+ outOfRange (61),
unavailable (62)
} (1..62)
+/**
+ * This DE represents the vehicle acceleration at vertical direction in the centre of the mass of the empty vehicle.
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate downwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `n` (`n > 0` and `n < 160`) to indicate upwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @category: Vehicle information
+ * @unit: 0,1 m/s^2
+ * @revision: Desciption updated in V2.1.1 (the meaning of 160 has changed slightly).
+ *
+*/
VerticalAccelerationValue ::= INTEGER {
negativeOutOfRange (-160),
positiveOutOfRange (160),
- unavailable (161)
+ unavailable (161)
} (-160 .. 161)
+/**
+ * This DE Identifies all the VRU profile types within a cluster.
+ * It consist of a Bitmap encoding VRU profiles, to allow multiple profiles to be indicated in a single cluster (heterogeneous cluster if more than one profile).
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 `pedestrian` - indicates that the VRU cluster contains at least one pedestrian VRU,
+ * - 1 `bicycle` - indicates that the VRU cluster contains at least one bicycle VRU member,
+ * - 2 `motorcyclist`- indicates that the VRU cluster contains at least one motorcycle VRU member,
+ * - 3 `animal` - indicates that the VRU cluster contains at least one animal VRU member.
+ *
+ * Otherwise, the corresponding bit shall be set to 0.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+*/
VruClusterProfiles ::= BIT STRING {
pedestrian (0),
bicyclist (1),
@@ -1213,86 +3980,221 @@ VruClusterProfiles ::= BIT STRING {
animal (3)
} (SIZE(4))
-VruDeviceUsage ::= ENUMERATED {
- unavailable (0),
- other (1),
- idle (2),
- listeningToAudio (3),
- typing (4),
- calling (5),
- playingGames (6),
- reading (7),
- viewing (8),
- max (255)
-}
-
-VruEnvironment ::= ENUMERATED {
- unavailable (0),
- intersectionCrossing (1),
- zebraCrossing (2),
- sidewalk (3),
- onVehicleRoad (4),
- protectedGeographicArea (5),
- max (255)
-}
-
-VruMovementControl ::= ENUMERATED {
- unavailable (0),
- braking (1),
- hardBraking (2),
- stopPedaling (3),
- brakingAndStopPedaling (4),
- hardBrakingAndStopPedaling (5),
- noReaction (6),
- max (255)
-}
-
-VruSubProfilePedestrian ::= ENUMERATED {
- unavailable (0),
+/**
+ * This DE represents the possible usage conditions of the VRU device.
+
+ * - The value shall be set to:
+ * - 0 `unavailable` - to indicate that the usage conditions are unavailable,
+ * - 1 `other` - to indicate that the VRU device is in a state not defined below,
+ * - 2 `idle` - to indicate that the human is currently not interacting with the device,
+ * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use,
+ * - 4 `typing` - to indicate that the human is texting or performaing any other manual input activity,
+ * - 5 `calling` - to indicate that the VRU device is currently receiving a call,
+ * - 6 `playingGames` - to indicate that the human is playing games,
+ * - 7 `reading` - to indicate that the human is reading on the VRU device,
+ * - 8 `viewing` - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static.
+ * - value 9 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15
+ */
+VruDeviceUsage ::= INTEGER {
+ unavailable (0),
+ other (1),
+ idle (2),
+ listeningToAudio (3),
+ typing (4),
+ calling (5),
+ playingGames (6),
+ reading (7),
+ viewing (8)
+}(0..15)
+
+/**
+ * This DE represents the possible VRU environment conditions.
+ *
+ * - The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information on the type of environment is unavailable,
+ * - 1 `intersectionCrossing` - to indicate that the VRU is on an intersection or crossing,
+ * - 2 `zebraCrossing` - to indicate that the VRU is on a zebra crossing (crosswalk),
+ * - 3 `sidewalk` - to indicate that the VRU is on a sidewalk,
+ * - 4 `onVehicleRoad` - to indicate that the VRU is on a traffic lane,
+ * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area.
+ * - value 6 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15
+ */
+VruEnvironment ::= INTEGER {
+ unavailable (0),
+ intersectionCrossing (1),
+ zebraCrossing (2),
+ sidewalk (3),
+ onVehicleRoad (4),
+ protectedGeographicArea (5)
+}(0..15)
+
+/**
+ * This DE indicates the status of the possible human control over a VRU vehicle.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information is unavailable,
+ * - 1 `braking` - to indicate that the VRU is braking,
+ * - 2 `hardBraking` - to indicate that the VRU is braking hard,
+ * - 3 `stopPedaling` - to indicate that the VRU stopped pedaling,
+ * - 4 `brakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking,
+ * - 5 `hardBrakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking hard,
+ * - 6 `noReaction` - to indicate that the VRU is not changing its behavior.
+ * - 7 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15
+ */
+VruMovementControl ::= INTEGER {
+ unavailable (0),
+ braking (1),
+ hardBraking (2),
+ stopPedaling (3),
+ brakingAndStopPedaling (4),
+ hardBrakingAndStopPedaling (5),
+ noReaction (6)
+}(0..15)
+
+/**
+ * This DE indicates the profile of a pedestrian.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information on is unavailable,
+ * - 1 `ordinary-pedestrian` - to indicate a pedestrian to which no more-specific profile applies,
+ * - 2 `road-worker` - to indicate a pedestrian with the role of a road worker,
+ * - 3 `first-responder` - to indicate a pedestrian with the role of a first responder.
+ * - value 4 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
+ */
+VruSubProfilePedestrian ::= INTEGER {
+ unavailable (0),
ordinary-pedestrian (1),
- road-worker (2),
- first-responder (3),
- max (15)
-}
-
-VruSubProfileBicyclist ::= ENUMERATED {
- unavailable (0),
- bicyclist (1),
- wheelchair-user (2),
- horse-and-rider (3),
- rollerskater (4),
- e-scooter (5),
+ road-worker (2),
+ first-responder (3)
+}(0..15)
+
+/**
+ * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information is unavailable,
+ * - 1 `bicyclist ` - to indicate a cycle and bicyclist to which no more-specific profile applies,
+ * - 2 `wheelchair-user` - to indicate a wheelchair and its user,
+ * - 3 `horse-and-rider` - to indicate a horse and rider,
+ * - 4 `rollerskater` - to indicate a roller-skater and skater,
+ * - 5 `e-scooter` - to indicate an e-scooter and rider,
+ * - 6 `personal-transporter` - to indicate a personal-transporter and rider,
+ * - 7 `pedelec` - to indicate a pedelec and rider to which no more-specific profile applies,
+ * - 8 `speed-pedelec` - to indicate a speed-pedelec and rider.
+ * - 9 `roadbike` - to indicate a road bicycle (or road pedelec) and rider,
+ * - 10 `childrensbike` - to indicate a children�s bicycle (or children�s pedelec) and rider,
+ * - 11 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, values 9 and 10 assigned in V2.2.1
+ */
+VruSubProfileBicyclist ::= INTEGER {
+ unavailable (0),
+ bicyclist (1),
+ wheelchair-user (2),
+ horse-and-rider (3),
+ rollerskater (4),
+ e-scooter (5),
personal-transporter (6),
- pedelec (7),
+ pedelec (7),
speed-pedelec (8),
- max (15)
-}
-
-VruSubProfileMotorcyclist ::= ENUMERATED {
- unavailable (0),
- moped (1),
- motorcycle (2),
- motorcycle-and-sidecar-right (3),
- motorcycle-and-sidecar-left (4),
- max (15)
-}
-
-VruSubProfileAnimal ::= ENUMERATED {
- unavailable (0),
- wild-animal (1),
- farm-animal (2),
- service-animal (3),
- max (15)
-}
-
-VruSizeClass ::= ENUMERATED {
- unavailable (0),
- low (1),
- medium (2),
- high (3),
- max (15)
-}
-
+ roadbike (9),
+ childrensbike (10)
+}(0..15)
+
+/**
+ * This DE indicates the profile of a motorcyclist and corresponding vehicle.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable ` - to indicate that the information is unavailable,
+ * - 1 `moped` - to indicate a moped and rider,
+ * - 2 `motorcycle` - to indicate a motorcycle and rider,
+ * - 3 `motorcycle-and-sidecar-right` - to indicate a motorcycle with sidecar on the right and rider,
+ * - 4 `motorcycle-and-sidecar-left` - to indicate a motorcycle with sidecar on the left and rider.
+ * - 5 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
+ */
+VruSubProfileMotorcyclist ::= INTEGER {
+ unavailable (0),
+ moped (1),
+ motorcycle (2),
+ motorcycle-and-sidecar-right (3),
+ motorcycle-and-sidecar-left (4)
+}(0..15)
+
+/**
+ * This DE indicates the profile of an animal
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information is unavailable,
+ * - 1 `wild-animal` - to indicate a animal living in the wildness,
+ * - 2 `farm-animal` - to indicate an animal beloning to a farm,
+ * - 3 `service-animal` - to indicate an animal that supports a human being.
+ * - 4 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
+ */
+VruSubProfileAnimal ::= INTEGER {
+ unavailable (0),
+ wild-animal (1),
+ farm-animal (2),
+ service-animal (3)
+}(0..15)
+
+/**
+ * This DE indicates the approximate size of a VRU including the VRU vehicle used.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that there is no matched size class or due to privacy reasons in profile 1,
+ * - 1 `low` - to indicate that the VRU size class is low depending on the VRU profile,
+ * - 2 `medium` - to indicate that the VRU size class is medium depending on the VRU profile,
+ * - 3 `high` - to indicate that the VRU size class is high depending on the VRU profile.
+ * - 4 to 15 - are reserved for future usage.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
+ */
+VruSizeClass ::= INTEGER {
+ unavailable (0),
+ low (1),
+ medium (2),
+ high (3)
+}(0..15)
+
+/**
+ * This DE describes the status of the exterior light switches of a VRU.
+ *
+ * The value of each bit indicates the state of the switch, which commands the corresponding light.
+ * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU
+ * or automatically by a vehicle or VRU system:
+ * - 0 `unavailable` - indicates no information available,
+ * - 1 `backFlashLight ` - indicates the status of the back flash light,
+ * - 2 `helmetLight` - indicates the status of the helmet light,
+ * - 3 `armLight` - indicates the status of the arm light,
+ * - 4 `legLight` - indicates the status of the leg light,
+ * - 5 `wheelLight` - indicates the status of the wheel light.
+ * - Bits 6 to 8 - are reserved for future use.
+ * The bit values do not indicate if the corresponding lamps are alight or not.
+ * If VRU is not equipped with a certain light or if the light switch status information is not available, the corresponding bit shall be set to 0.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
VruSpecificExteriorLights ::= BIT STRING {
unavailable (0),
backFlashLight (1),
@@ -1302,18 +4204,53 @@ VruSpecificExteriorLights ::= BIT STRING {
wheelLight (5)
} (SIZE(8))
+/**
+ * This DE indicates the perpendicular distance between front and rear axle of the wheel base of vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 1` and `n < 126`) if the value is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre,
+ * - `126` indicates that the wheel base distance is equal to or greater than 12,5 metres,
+ * - `127` indicates that the information is unavailable.
+ *
+ * @unit 0,1 metre
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
WheelBaseVehicle ::= INTEGER {
outOfRange (126),
unavailable (127)
} (1..127)
+/**
+ * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees,
+ * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees,
+ * - `127` if the confidence value is not available.
+ *
+ *
+ * @unit 0,1 degrees
+ * @category: GeoReference Information
+ * @revision: Created in V2.1.1
+*/
Wgs84AngleConfidence ::= INTEGER {
- outOfRange (126),
- unavailable (127)
+ outOfRange (126),
+ unavailable (127)
} (1..127)
-Wgs84AngleValue ::= INTEGER {
+/**
+ * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used.
+ *
+ * @unit 0,1 degrees
+ * @category: GeoReference Information
+ * @revision: Created in V2.1.1
+*/
+Wgs84AngleValue ::= INTEGER {
wgs84North (0),
wgs84East (900),
wgs84South (1800),
@@ -1322,19 +4259,66 @@ Wgs84AngleValue ::= INTEGER {
unavailable (3601)
} (0..3601)
+/**
+ * This DE represents the World Manufacturer Identifier (WMI). The values are assigned according to ISO 3779 [6].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
WMInumber ::= IA5String (SIZE(1..3))
+/**
+ * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` .
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on wrong way driving event is unavailable,
+ * - 1 `wrongLane` - in case vehicle is driving on a lane for which it has no authorization to use,
+ * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed,
+ * - 3-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
WrongWayDrivingSubCauseCode ::= INTEGER {
- unavailable (0),
- wrongLane (1),
+ unavailable (0),
+ wrongLane (1),
wrongDirection (2)
} (0..255)
+/**
+ * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `0` if the confidence value is equal to or less than 0,01 degree/second,
+ * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second,
+ * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second,
+ * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second,
+ * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second,
+ * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second,
+ * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second,
+ * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second,
+ * - `8` if the confidence value is unavailable.
+ *
+ * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by
+ * several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the yaw rate value may be valid and used by the application.
+ *
+ * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the
+ * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application.
+ *
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
YawRateConfidence ::= ENUMERATED {
degSec-000-01 (0),
degSec-000-05 (1),
degSec-000-10 (2),
- degSec-001-00 (3),
+ degSec-001-00 (3),
degSec-005-00 (4),
degSec-010-00 (5),
degSec-100-00 (6),
@@ -1342,9 +4326,33 @@ YawRateConfidence ::= ENUMERATED {
unavailable (8)
}
+/**
+ * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded
+ * vehicle. The leading sign denotes the direction of rotation.
+ *
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right,
+ * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s,
+ and greater than (n-1) x 0,01 degrees/s,
+ * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s,
+ and greater than (n-1) x 0,01 degrees/s,
+ * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left,
+ * - `32 767` to indicate that the information is not available.
+ *
+ * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified.
+ * The reading instant should be the same as for the vehicle acceleration.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @unit: 0,01 degree per second.
+ * @category: Vehicle Information
+ * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly).
+*/
YawRateValue ::= INTEGER {
- negativeOutOfRange (-32766),
- positiveOutOfRange (32766),
+ negativeOutOfRange (-32766),
+ positiveOutOfRange (32766),
unavailable (32767)
} (-32766..32767)
@@ -1352,107 +4360,421 @@ YawRateValue ::= INTEGER {
-- Specification of CDD Data Frames:
----------------------------------------
+/**
+ * This DF represents an acceleration vector with associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field polarAcceleration: the representation of the acceleration vector in a polar or cylindrical coordinate system.
+ *
+ * @field cartesianAcceleration: the representation of the acceleration vector in a cartesian coordinate system.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
Acceleration3dWithConfidence::= CHOICE {
polarAcceleration AccelerationPolarWithZ,
- cartesianAcceleration AccelerationCartesian
+ cartesianAcceleration AccelerationCartesian
}
+/**
+ * This DF represents an acceleration vector in a polar or cylindrical coordinate system.
+
+ * It shall include the following components:
+ *
+ * @field accelerationMagnitude: magnitude of the acceleration vector projected onto the reference plane, with the associated confidence value.
+ *
+ * @field accelerationDirection: polar angle of the acceleration vector projected onto the reference plane, with the associated confidence value.
+ *
+ * @field zAcceleration: the optional z component of the acceleration vector along the reference axis of the cylindrical coordinate system, with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
AccelerationPolarWithZ::= SEQUENCE{
accelerationMagnitude AccelerationMagnitude,
accelerationDirection CartesianAngle,
zAcceleration AccelerationComponent OPTIONAL
}
+/**
+ * This DF represents a acceleration vector in a cartesian coordinate system.
+
+ * It shall include the following components:
+ *
+ * @field xAcceleration: the x component of the acceleration vector with the associated confidence value.
+ *
+ * @field yAcceleration: the y component of the acceleration vector with the associated confidence value.
+ *
+ * @field zAcceleration: the optional z component of the acceleration vector with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
AccelerationCartesian::= SEQUENCE{
xAcceleration AccelerationComponent,
yAcceleration AccelerationComponent,
zAcceleration AccelerationComponent OPTIONAL
-}
+}
+/**
+ * This DF represents an acceleration component along with a confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the confidence value associated to the provided value.
+ *
+ * @category: Kinematic Information
+ * @revision: Created in V2.1.1
+ */
AccelerationComponent ::= SEQUENCE {
value AccelerationValue,
confidence AccelerationConfidence
}
+/**
+ * This DF represents information associated to changes in acceleration.
+ *
+ * It shall include the following components:
+ *
+ * @field accelOrDecel: the indication of an acceleration change.
+ *
+ * @field actionDeltaTime: the period over which the acceleration change action is performed.
+ *
+ * @category: Kinematic Information
+ * @revision: Created in V2.1.1
+ */
AccelerationChangeIndication ::= SEQUENCE {
accelOrDecel AccelerationChange,
actionDeltaTime DeltaTimeTenthOfSecond,
...
}
+/**
+ * This DF represents the magnitude of the acceleration vector and associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field accelerationMagnitudeValue: the magnitude of the acceleration vector.
+ *
+ * @field accelerationConfidence: the confidence value of the magnitude value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
AccelerationMagnitude::= SEQUENCE {
accelerationMagnitudeValue AccelerationMagnitudeValue,
accelerationConfidence AccelerationConfidence
}
+/**
+ * This DF represents an identifier used to describe a protocol action taken by an ITS-S.
+ *
+ * It shall include the following components:
+ *
+ * @field originatingStationId: Id of the ITS-S that takes the action.
+ *
+ * @field sequenceNumber: a sequence number.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1 based on @ref ActionID.
+ */
ActionId ::= SEQUENCE {
originatingStationId StationId,
sequenceNumber SequenceNumber
}
+/**
+ * This DF represents an identifier used to describe a protocol action taken by an ITS-S.
+ *
+ * It shall include the following components:
+ *
+ * @field originatingStationId: Id of the ITS-S that takes the action.
+ *
+ * @field sequenceNumber: a sequence number.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref ActionId instead.
+ * @category: Communication information
+ * @revision: V1.3.1
+ */
ActionID ::= SEQUENCE {
originatingStationId StationID,
sequenceNumber SequenceNumber
}
+/**
+ * This DF shall contain a list of @ref ActionId.
+
+ * @category: Communication Information
+ * @revision: Created in V2.1.1 based on ReferenceDenms from DENM Release 1
+*/
ActionIdList::= SEQUENCE (SIZE(1..8, ...)) OF ActionId
+/**
+ * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * It shall include the following components:
+ *
+ * @field altitudeValue: altitude of a geographical point.
+ *
+ * @field altitudeConfidence: confidence level of the altitudeValue.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead.
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
Altitude ::= SEQUENCE {
altitudeValue AltitudeValue,
altitudeConfidence AltitudeConfidence
}
+/**
+ * This DE represents a general container for usage in various types of messages.
+ *
+ * It shall include the following components:
+ *
+ * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in.
+ *
+ * @field referencePosition: the reference position of the station that has generated the message that contains the basic container.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
BasicContainer ::= SEQUENCE {
stationType TrafficParticipantType,
referencePosition ReferencePositionWithConfidence,
...
}
+/**
+ * This DF provides information about the configuration of a road section in terms of lanes using a list of @ref LanePositionAndType .
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+BasicLaneConfiguration::= SEQUENCE(SIZE(1..16,...)) OF BasicLaneInformation
+
+/**
+ * This DF provides basic information about a single lane of a road segment.
+ * It includes the following components:
+ *
+ * @field laneNumber: the number associated to the lane that provides a transversal identification.
+ *
+ * @field direction: the direction of traffic flow allowed on the lane.
+ *
+ * @field laneWidth: the optional width of the lane.
+ *
+ * @field connectingLane: the number of the connecting lane in the next road section, i.e. the number of the lane which the vehicle will use when travelling from one section to the next,
+ * if it does not actively change lanes. If this component is absent, the lane name number remains the same in the next section.
+ *
+ * @field connectingRoadSection: the identifier of the next road section in direction of traffic, that is connecting to the current road section.
+ * If this component is absent, the connecting road section is the one following the instance where this DF is placed in the @ref RoadConfigurationSectionList.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+
+BasicLaneInformation::= SEQUENCE{
+ laneNumber LanePosition,
+ direction Direction,
+ laneWidth LaneWidth OPTIONAL,
+ connectingLane LanePosition OPTIONAL,
+ connectingRoadSection RoadSectionId OPTIONAL,
+ ...
+}
+((WITH COMPONENTS {..., connectingLane PRESENT}) |
+ (WITH COMPONENTS {..., connectingLane ABSENT, connectingRoadSection ABSENT}))
+
+/**
+ * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: The angle value which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: The confidence value associated to the provided value.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
CartesianAngle ::= SEQUENCE {
value CartesianAngleValue,
confidence AngleConfidence
}
+/**
+ * This DF represents an angular velocity component along with a confidence value in a cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: The angular velocity component.
+ *
+ * @field confidence: The confidence value associated to the provided value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
CartesianAngularVelocityComponent ::= SEQUENCE {
value CartesianAngularVelocityComponentValue,
confidence AngularSpeedConfidence
}
+/**
+ * This DF represents a general Data Frame to describe an angular acceleration component along with a confidence value in a cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: The angular acceleration component value.
+ *
+ * @field confidence: The confidence value associated to the provided value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
CartesianAngularAccelerationComponent ::= SEQUENCE {
value CartesianAngularAccelerationComponentValue,
confidence AngularAccelerationConfidence
}
+/**
+ * This DF represents a coordinate along with a confidence value in a cartesian reference system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the coordinate value, which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the coordinate confidence value associated to the provided value.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
CartesianCoordinateWithConfidence ::= SEQUENCE {
value CartesianCoordinateLarge,
confidence CoordinateConfidence
}
+/**
+ * This DF represents a position in a two- or three-dimensional cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field xCoordinate: the X coordinate value.
+ *
+ * @field yCoordinate: the Y coordinate value.
+ *
+ * @field zCoordinate: the optional Z coordinate value.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
CartesianPosition3d::=SEQUENCE{
xCoordinate CartesianCoordinate,
yCoordinate CartesianCoordinate,
zCoordinate CartesianCoordinate OPTIONAL
}
-CartesianPosition3dWithConfidence::= SEQUENCE{
- xCoordinate CartesianCoordinateWithConfidence,
- yCoordinate CartesianCoordinateWithConfidence,
+/**
+ * This DF represents a position in a two- or three-dimensional cartesian coordinate system with an associated confidence level for each coordinate.
+ *
+ * It shall include the following components:
+ *
+ * @field xCoordinate: the X coordinate value with the associated confidence level.
+ *
+ * @field yCoordinate: the Y coordinate value with the associated confidence level.
+ *
+ * @field zCoordinate: the optional Z coordinate value with the associated confidence level.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+CartesianPosition3dWithConfidence::= SEQUENCE{
+ xCoordinate CartesianCoordinateWithConfidence,
+ yCoordinate CartesianCoordinateWithConfidence,
zCoordinate CartesianCoordinateWithConfidence OPTIONAL
}
+/**
+ * This DF is a representation of the cause code value of a traffic event.
+ *
+ * It shall include the following components:
+ *
+ * @field causeCode: the main cause of a detected event.
+ *
+ * @field subCauseCode: the subordinate cause of a detected event.
+ *
+ * The semantics of the entire DF are completely defined by the component causeCode. The interpretation of the subCauseCode may
+ * provide additional information that is not strictly necessary to understand the causeCode itself, and is therefore optional.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref CauseCodeV2 instead.
+ *
+ * @category: Traffic information
+ * @revision: Editorial update in V2.1.1
+ */
CauseCode ::= SEQUENCE {
causeCode CauseCodeType,
subCauseCode SubCauseCodeType,
...
}
+/**
+ * This DF is a representation of the cause code value and associated sub cause code value of a traffic event.
+ *
+ * The following options are available:
+ * - 0 - reserved for future use,
+ * - 1 - `trafficCondition1` - in case the type of event is an abnormal traffic condition,
+ * - 2 - `accident2` - in case the type of event is a road accident,
+ * - 3 - `roadworks3` - in case the type of event is roadwork,
+ * - 4 - reserved for future usage,
+ * - 5 - `impassability5` - in case the type of event is unmanaged road blocking, referring to any
+ * blocking of a road, partial or total, which has not been adequately secured and signposted,
+ * - 6 - `adverseWeatherCondition-Adhesion6` - in case the type of event is low adhesion,
+ * - 7 - `aquaplaning7` - danger of aquaplaning on the road,
+ * - 8 - reserved for future usage,
+ * - 9 - `hazardousLocation-SurfaceCondition9` - in case the type of event is abnormal road surface condition,
+ * - 10 - `hazardousLocation-ObstacleOnTheRoad10` - in case the type of event is obstacle on the road,
+ * - 11 - `hazardousLocation-AnimalOnTheRoad11` - in case the type of event is animal on the road,
+ * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road,
+ * - 13 - reserved for future usage,
+ * - 14 - `wrongWayDriving14` - in case the type of the event is vehicle driving in wrong way,
+ * - 15 - `rescueAndRecoveryWorkInProgress15` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress,
+ * - 16 - reserved for future usage,
+ * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition17` - in case the type of event is extreme weather condition,
+ * - 18 - `adverseWeatherCondition-Visibility18` - in case the type of event is low visibility,
+ * - 19 - `adverseWeatherCondition-Precipitation19` - in case the type of event is precipitation,
+ * - 20 - `violence20` - in case the the type of event is human violence on or near the road,
+ * - 21-25 - reserved for future usage,
+ * - 26 - `slowVehicle26` - in case the type of event is slow vehicle driving on the road,
+ * - 27 - `dangerousEndOfQueue27` - in case the type of event is dangerous end of vehicle queue,
+ * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations,
+ * - 29-90 - are reserved for future usage,
+ * - 91 - `vehicleBreakdown91` - in case the type of event is break down vehicle on the road,
+ * - 92 - `postCrash92` - in case the type of event is a detected crash,
+ * - 93 - `humanProblem93` - in case the type of event is human health problem in vehicles involved in traffic,
+ * - 94 - `stationaryVehicle94` - in case the type of event is stationary vehicle,
+ * - 95 - `emergencyVehicleApproaching95` - in case the type of event is an approaching vehicle operating on a mission for which the
+ applicable traffic regulations provide it with defined priority rights in traffic.
+ * - 96 - `hazardousLocation-DangerousCurve96` - in case the type of event is dangerous curve,
+ * - 97 - `collisionRisk97` - in case the type of event is a collision risk,
+ * - 98 - `signalViolation98` - in case the type of event is signal violation,
+ * - 99 - `dangerousSituation99` - in case the type of event is dangerous situation in which autonomous safety system in vehicle
+ * is activated,
+ * - 100 - `railwayLevelCrossing100` - in case the type of event is a railway level crossing.
+ * - 101-255 - are reserved for future usage.
+ *
+ * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2.
+ * @category: Traffic information
+ * @revision: Created in V2.1.1, the type of impassability5 changed to ImpassabilitySubCauseCode in V2.2.1, value 28 added in V2.2.1, definition of value 12 and 95 changed in V2.2.1
+ */
CauseCodeChoice::= CHOICE {
reserved0 SubCauseCodeType,
trafficCondition1 TrafficConditionSubCauseCode,
accident2 AccidentSubCauseCode,
roadworks3 RoadworksSubCauseCode,
reserved4 SubCauseCodeType,
- impassability5 SubCauseCodeType,
+ impassability5 ImpassabilitySubCauseCode,
adverseWeatherCondition-Adhesion6 AdverseWeatherCondition-AdhesionSubCauseCode,
aquaplaning7 SubCauseCodeType,
reserved8 SubCauseCodeType,
@@ -1475,7 +4797,7 @@ CauseCodeChoice::= CHOICE {
reserved25 SubCauseCodeType,
slowVehicle26 SlowVehicleSubCauseCode,
dangerousEndOfQueue27 DangerousEndOfQueueSubCauseCode,
- reserved28 SubCauseCodeType,
+ publicTransportVehicleApproaching28 SubCauseCodeType,
reserved29 SubCauseCodeType,
reserved30 SubCauseCodeType,
reserved31 SubCauseCodeType,
@@ -1505,15 +4827,15 @@ CauseCodeChoice::= CHOICE {
reserved55 SubCauseCodeType,
reserved56 SubCauseCodeType,
reserved57 SubCauseCodeType,
- reserved58 SubCauseCodeType,
- reserved59 SubCauseCodeType,
+ reserved58 SubCauseCodeType,
+ reserved59 SubCauseCodeType,
reserved60 SubCauseCodeType,
reserved61 SubCauseCodeType,
reserved62 SubCauseCodeType,
reserved63 SubCauseCodeType,
reserved64 SubCauseCodeType,
reserved65 SubCauseCodeType,
- reserved66 SubCauseCodeType,
+ reserved66 SubCauseCodeType,
reserved67 SubCauseCodeType,
reserved68 SubCauseCodeType,
reserved69 SubCauseCodeType,
@@ -1578,11 +4900,39 @@ CauseCodeChoice::= CHOICE {
reserved128 SubCauseCodeType
}
+/**
+ * This DF is an alternative representation of the cause code value of a traffic event.
+ *
+ * It shall include the following components:
+ *
+ * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code.
+
+ * The semantics of the entire DF are completely defined by the choice value which represents the cause code value.
+ * The interpretation of the sub cause code value may provide additional information that is not strictly necessary to understand
+ * the cause code itself, and is therefore optional.
+ *
+ * @category: Traffic information
+ * @revision: Created in V2.1.1, description amended in V2.2.1
+ */
CauseCodeV2 ::= SEQUENCE {
ccAndScc CauseCodeChoice,
...
}
+/**
+ * The DF describes the position of a CEN DSRC road side equipment.
+ *
+ * It shall include the following components:
+ *
+ * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment.
+ *
+ * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment.
+ *
+ * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment.
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId)
+ */
CenDsrcTollingZone ::= SEQUENCE {
protectedZoneLatitude Latitude,
protectedZoneLongitude Longitude,
@@ -1590,12 +4940,47 @@ CenDsrcTollingZone ::= SEQUENCE {
...
}
+/**
+ *
+ * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position.
+ * If this component is absent, the externally specified reference position represents the shape's reference point.
+ *
+ * @field radius: the radius of the circular area.
+ *
+ * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis.
+ *
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+ */
CircularShape ::= SEQUENCE {
shapeReferencePoint CartesianPosition3d OPTIONAL,
radius StandardLength12b,
height StandardLength12b OPTIONAL
}
+/**
+ * This DF indicates the opening/closure status of the lanes of a carriageway.
+ *
+ * It shall include the following components:
+ *
+ * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known.
+ * It indicates the open/closing status of inner hard shoulder lanes.
+ *
+ * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known.
+ * It indicates the open/closing status of outer hard shoulder lanes.
+ *
+ * @field drivingLaneStatus: this information is optional and shall be included if the information is known.
+ * It indicates the open/closing status of driving lanes.
+ * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present.
+ *
+ * @category: Infrastructure information, Road topology information
+ * @revision: Description revised in V2.1.1
+ */
ClosedLanes ::= SEQUENCE {
innerhardShoulderStatus HardShoulderStatus OPTIONAL,
outerhardShoulderStatus HardShoulderStatus OPTIONAL,
@@ -1603,31 +4988,120 @@ ClosedLanes ::= SEQUENCE {
...
}
+/**
+ * This DF provides information about the breakup of a cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterBreakupReason: indicates the reason for breakup.
+ *
+ * @field breakupTime: indicates the time of breakup.
+ *
+ * @category: Cluster Information
+ * @revision: Created in V2.1.1
+ */
ClusterBreakupInfo ::= SEQUENCE {
clusterBreakupReason ClusterBreakupReason,
breakupTime DeltaTimeQuarterSecond,
...
}
+/**
+ * This DF provides information about the joining of a cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterId: indicates the identifier of the cluster.
+ *
+ * @field joinTime: indicates the time of joining.
+ *
+ * @category: Cluster Information
+ * @revision: Created in V2.1.1
+ */
ClusterJoinInfo ::= SEQUENCE {
clusterId Identifier1B,
joinTime DeltaTimeQuarterSecond,
...
}
+/**
+ * The DF provides information about the leaving of a cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterId: indicates the cluster.
+ *
+ * @field clusterLeaveReason: indicates the reason for leaving.
+ *
+ * @category: Cluster Information
+ * @revision: Created in V2.1.1
+ */
ClusterLeaveInfo ::= SEQUENCE {
clusterId Identifier1B,
clusterLeaveReason ClusterLeaveReason,
...
}
-CorrelationColumn ::= SEQUENCE SIZE (1..13,...) OF CorrelationCellValue
-
+/**
+ * This DF represents a column of a lower triangular positive semi-definite matrix and consists of a list of correlation cell values ordered by rows.
+ * Given a matrix "A" of size n x n, the number of columns to be included in the lower triangular matrix is k=n-1.
+ * Each column "i" of the lower triangular matrix then contains k-(i-1) values (ordered by rows from 1 to n-1), where "i" refers to the column number count
+ * starting at 1 from the left.
+ *
+ * @category: Sensing Information
+ * @revision: Created in V2.1.1
+*/
+CorrelationColumn ::= SEQUENCE SIZE (1..13,...) OF CorrelationCellValue
+
+/**
+ * This DF represents the curvature of the vehicle trajectory and the associated confidence value.
+ * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory.
+ *
+ * It shall include the following components:
+ *
+ * @field curvatureValue: Detected curvature of the vehicle trajectory.
+ *
+ * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level.
+ *
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
Curvature ::= SEQUENCE {
curvatureValue CurvatureValue,
curvatureConfidence CurvatureConfidence
}
+/**
+ * This DF provides a description of dangerous goods being carried by a heavy vehicle.
+ *
+ * It shall include the following components:
+ *
+ * @field dangerousGoodsType: Type of dangerous goods.
+ *
+ * @field unNumber: a 4-digit number that identifies the substance of the dangerous goods as specified in
+ * United Nations Recommendations on the Transport of Dangerous Goods - Model Regulations [4],
+ *
+ * @field elevatedTemperature: whether the carried dangerous goods are transported at high temperature.
+ * If yes, the value shall be set to TRUE,
+ *
+ * @field tunnelsRestricted: whether the heavy vehicle carrying dangerous goods is restricted to enter tunnels.
+ * If yes, the value shall be set to TRUE,
+ *
+ * @field limitedQuantity: whether the carried dangerous goods are packed with limited quantity.
+ * If yes, the value shall be set to TRUE,
+ *
+ * @field emergencyActionCode: physical signage placard at the vehicle that carries information on how an emergency
+ * service should deal with an incident. This component is optional; it shall be present if the information is available.
+ *
+ * @field phoneNumber: contact phone number of assistance service in case of incident or accident.
+ * This component is optional, it shall be present if the information is available.
+ *
+ * @field companyName: name of company that manages the transportation of the dangerous goods.
+ * This component is optional; it shall be present if the information is available.
+ *
+ * @category Vehicle information
+ * @revision: V1.3.1
+ */
DangerousGoodsExtended ::= SEQUENCE {
dangerousGoodsType DangerousGoodsBasic,
unNumber INTEGER (0..9999),
@@ -1640,228 +5114,1132 @@ DangerousGoodsExtended ::= SEQUENCE {
...
}
+/**
+ * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point.
+ *
+ * It shall include the following components:
+ *
+ * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position.
+ *
+ * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position.
+ *
+ * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position.
+ *
+ * @category: GeoReference information
+ * @revision: V1.3.1
+ */
DeltaReferencePosition ::= SEQUENCE {
deltaLatitude DeltaLatitude,
deltaLongitude DeltaLongitude,
deltaAltitude DeltaAltitude
}
-DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition
+/**
+ * This DF represents a portion of digital map. It shall contain a list of waypoints @ref ReferencePosition.
+ *
+ * @category: GeoReference information
+ * @revision: V1.3.1
+ */
+DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition
+
+/**
+ *
+ * This DF represents the shape of an elliptical area or right elliptical cylinder that is centred
+ * on the shape's reference point defined outside of the context of this DF and oriented w.r.t. a
+ * cartesian coordinate system defined outside of the context of this DF.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: optional reference point which represents the centre of the ellipse,
+ * relative to an externally specified reference position. If this component is absent, the
+ * externally specified reference position represents the shape's reference point.
+ *
+ * @field semiMajorAxisLength: half length of the major axis of the ellipse located in the X-Y Plane.
+ *
+ * @field semiMinorAxisLength: half length of the minor axis of the ellipse located in the X-Y Plane.
+ *
+ * @field orientation: the optional orientation of the major axis of the ellipse, measured with
+ * positive values turning around the z-axis using the right-hand rule, starting from the X-axis.
+ *
+ * @field height: the optional height, present if the shape is a right elliptical cylinder extending
+ * in the positive Z-axis.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1, the type of the field orientation changed and the description revised in V2.2.1
+*/
EllipticalShape ::= SEQUENCE {
shapeReferencePoint CartesianPosition3d OPTIONAL,
semiMajorAxisLength StandardLength12b,
semiMinorAxisLength StandardLength12b,
- orientation Wgs84AngleValue OPTIONAL,
+ orientation CartesianAngleValue OPTIONAL,
height StandardLength12b OPTIONAL
}
+/**
+ * This DF represents the Euler angles which describe the orientation of an object bounding box in a Cartesian coordinate system with an associated confidence level for each angle.
+ *
+ * It shall include the following components:
+ *
+ * @field zAngle: z-angle of object bounding box at the time of measurement, with the associated confidence.
+ * The angle is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule, starting from the x-axis.
+ * This extrinsic rotation shall be applied around the centre point of the object bounding box before all other rotations.
+ *
+ * @field yAngle: optional y-angle of object bounding box at the time of measurement, with the associated confidence.
+ * The angle is measured with positive values considering the object orientation turning around the y-axis using the right-hand rule, starting from the z-axis.
+ * This extrinsic rotation shall be applied around the centre point of the object bounding box after the rotation by zAngle and before the rotation by xAngle.
+ *
+ * @field xAngle: optional x-angle of object bounding box at the time of measurement, with the associated confidence.
+ * The angle is measured with positive values considering the object orientation turning around the x-axis using the right-hand rule, starting from the z-axis.
+ * This extrinsic rotation shall be applied around the centre point of the object bounding box after all other rotations.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
EulerAnglesWithConfidence ::= SEQUENCE {
zAngle CartesianAngle,
yAngle CartesianAngle OPTIONAL,
xAngle CartesianAngle OPTIONAL
}
+/**
+ *
+ * This DF represents a vehicle category according to the UNECE/TRANS/WP.29/78/Rev.4 [16].
+ * The following options are available:
+ *
+ * @field euVehicleCategoryL: indicates a vehicle in the L category.
+ *
+ * @field euVehicleCategoryM: indicates a vehicle in the M category.
+ *
+ * @field euVehicleCategoryN: indicates a vehicle in the N category.
+ *
+ * @field euVehicleCategoryO: indicates a vehicle in the O category.
+ *
+ * @field euVehicleCategoryT: indicates a vehicle in the T category.
+ *
+ * @field euVehicleCategoryG: indicates a vehicle in the G category.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
EuVehicleCategoryCode ::= CHOICE {
- euVehicleCategoryL EuVehicleCategoryL,
- euVehicleCategoryM EuVehicleCategoryM,
- euVehicleCategoryN EuVehicleCategoryN,
- euVehicleCategoryO EuVehicleCategoryO,
+ euVehicleCategoryL EuVehicleCategoryL,
+ euVehicleCategoryM EuVehicleCategoryM,
+ euVehicleCategoryN EuVehicleCategoryN,
+ euVehicleCategoryO EuVehicleCategoryO,
euVehicleCategoryT NULL,
- euVehicleCategoryG NULL
- }
+ euVehicleCategoryG NULL
+}
+/**
+ * The DF shall contain a list of @ref EventPoint.
+ *
+ * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list.
+ * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF.
+ *
+ * @category: GeoReference information, Traffic information
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref EventZone instead.
+ * @revision: Generalized the semantics in V2.1.1
+ */
EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint
+/**
+ * This DF provides information related to an event at a defined position.
+ *
+ * It shall include the following components:
+ *
+ * @field eventPosition: offset position of a detected event point to a defined position.
+ *
+ * @field eventDeltaTime: optional time travelled by the detecting ITS-S since the previous detected event point.
+ *
+ * @field informationQuality: Information quality of the detection for this event point.
+ *
+ * @category: GeoReference information, Traffic information
+ * @revision: generalized the semantics in V2.1.1
+ */
EventPoint ::= SEQUENCE {
eventPosition DeltaReferencePosition,
eventDeltaTime PathDeltaTime OPTIONAL,
informationQuality InformationQuality
}
+/**
+ * The DF shall contain a list of @ref EventPoint, where all @ref EventPoint either contain the COMPONENT eventDeltaTime
+ * or do not contain the COMPONENT eventDeltaTime.
+ *
+ * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list.
+ * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF.
+ *
+ * @category: GeoReference information, Traffic information
+ * @revision: created in V2.1.1 based on EventHistory
+ */
EventZone::= EventHistory
((WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime PRESENT})) |
(WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime ABSENT})))
-GeneralizedLanePosition::= CHOICE {
- trafficLanePosition LanePosition,
- nonTrafficLanePosition LanePositionAndType,
- trafficIslandPosition TrafficIslandPosition,
- mapPosition MapPosition,
+/**
+ * This DF indicates a geographical position.
+ *
+ * It shall include the following components:
+ *
+ * @field latitude: the latitude of the geographical position.
+ *
+ * @field longitude: the longitude of the geographical position.
+ *
+ * @field altitude: the altitude of the geographical position with default value unavailable.
+ *
+*/
+GeoPosition::= SEQUENCE{
+ latitude Latitude,
+ longitude Longitude,
+ altitude AltitudeValue DEFAULT unavailable
+}
+
+/**
+ * This DF represents the top-level DF to represent a lane position. A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway.
+ *
+ * @note: This DF is the most general way to represent a lane position: it provides a complete set of information regarding a transversal (dimensionless) position on the carriageway at a specific
+ * reference position, i.e. it provides different options and synonyms to represent the lane at which the reference position (the point) is located. A confidence is used to describe the probability
+ * that the object is located in the provided lane. The dimension of the object or extension of an area are not considered: See @ref OccupiedLanesWithConfidence for describing the occupation of lanes,
+ * where the dimensions of an object or the extension of an area is considered.
+ *
+ * It shall include the following components:
+ *
+ * @field lanePositionBased: lane position information for a defined reference position.
+ *
+ * @field mapBased: optional lane position information described in the context of a MAPEM as specified in ETSI TS 103 301 [15].
+ * If present, it shall describe the same reference position using the lane identification in the MAPEM. This component can be used only if a MAPEM is available for the reference position
+ * (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased.
+ *
+ * @field confidence: confidence information for expressing the probability that the object is located at the indicated lane.
+ * If the value of the component lanePositionBased is generated directly from the absolute reference position and reference topology information,
+ * no sensor shall be indicated in the component usedDetectionInformation of the @ref MetaInformation.
+ *
+ * @category: Road Topology information
+ * @revision: newly created in V2.2.1. The previous DF GeneralizedLanePosition is now renamed to @ref LanePositionOptions.
+ */
+GeneralizedLanePosition ::= SEQUENCE {
+ lanePositionBased LanePositionOptions,
+ mapBased MapPosition OPTIONAL,
+ confidence MetaInformation,
...
-}
+}
+/**
+ * This DF represents transversal position information with respect to the road, at an externally defined reference position. It shall contain a set of up to `4` @ref GeneralizedLanePosition.
+ * Multiple entries can be used to describe several lane positions with the associated confidence, in cases where the reference position cannot be mapped to a single lane.
+ *
+ * @category: Road Topology information
+ * @revision: Created in V2.2.1
+ */
+GeneralizedLanePositions ::= SEQUENCE (SIZE(1..4)) OF GeneralizedLanePosition
+
+/**
+ * This DF represents the Heading in a WGS84 co-ordinates system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * It shall include the following components:
+ *
+ * @field headingValue: the heading value.
+ *
+ * @field headingConfidence: the confidence value of the heading value with a predefined confidence level.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84Angle instead.
+ * @category: Kinematic Information
+ * @revision: Description revised in V2.1.1
+ */
Heading ::= SEQUENCE {
headingValue HeadingValue,
headingConfidence HeadingConfidence
}
+/**
+ * This DF provides information associated to heading change indicators such as a change of direction.
+ *
+ * It shall include the following components:
+ *
+ * @field direction: the direction of heading change value.
+ *
+ * @field actionDeltaTime: the period over which a direction change action is performed.
+ *
+ * @category: Kinematic Information
+ * @revision: created in V2.1.1
+ */
HeadingChangeIndication ::= SEQUENCE {
direction TurningDirection,
actionDeltaTime DeltaTimeTenthOfSecond,
...
}
+/**
+ * This DF represents a frequency channel
+ *
+ * It shall include the following components:
+ *
+ * @field centreFrequency: the centre frequency of the channel in 10^(exp+2) Hz (where exp is exponent)
+ *
+ * @field channelWidth: width of the channel in 10^exp Hz (where exp is exponent)
+ *
+ * @field exponent: exponent of the power of 10 used in the calculation of the components above.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+*/
InterferenceManagementChannel ::= SEQUENCE {
centreFrequency INTEGER (1 .. 99999),
channelWidth INTEGER (0 .. 9999),
- exponent INTEGER (0 .. 15)
+ exponent INTEGER (0 .. 15)
}
+/**
+ *
+ * This DF represents a zone inside which the ITS communication should be restricted in order to manage interference.
+ *
+ * It shall include the following components:
+ *
+ * @field zoneDefinition: contains the geographical definition of the zone.
+ *
+ * @field managementInfo: contains interference management information applicable in the zone defined in the component zoneDefinition.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
InterferenceManagementZone ::= SEQUENCE {
zoneDefinition InterferenceManagementZoneDefinition,
managementInfo InterferenceManagementInfo
}
-InterferenceManagementZoneDefinition::= SEQUENCE{
- interferenceManagementZoneLatitude Latitude,
- interferenceManagementZoneLongitude Longitude,
+/**
+ * This DF represents the geographical definition of the zone where band sharing occurs.
+ *
+ * It shall include the following components:
+ *
+ * @field interferenceManagementZoneLatitude: Latitude of the centre point of the interference management zone.
+ *
+ * @field interferenceManagementZoneLongitude: Longitude of the centre point of the interference management zone.
+ *
+ * @field interferenceManagementZoneId: optional identification of the interference management zone.
+ *
+ * @field interferenceManagementZoneShape: shape of the interference management zone placed at the centre point.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
+InterferenceManagementZoneDefinition::= SEQUENCE{
+ interferenceManagementZoneLatitude Latitude,
+ interferenceManagementZoneLongitude Longitude,
interferenceManagementZoneId ProtectedZoneId OPTIONAL,
- interferenceManagementZoneShape Shape (WITH COMPONENTS{..., radial ABSENT, radialShapes ABSENT}) OPTIONAL,
+ interferenceManagementZoneShape Shape
+ (WITH COMPONENTS{..., radial ABSENT, radialShapes ABSENT}) OPTIONAL,
...
}
+/**
+ * This DF shall contain a list of up to 16 definitions containing interference management information, per affected frequency channels.
+ *
+ * @category: Communication information.
+ * @revision: created in V2.1.1
+ */
InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel
+/**
+ * This DF contains interference management information for one affected frequency channel.
+ *
+ * It shall include the following components:
+ *
+ * @field interferenceManagementChannel: frequency channel for which the zone should be applied interference management
+ *
+ * @field interferenceManagementZoneType: type of the interference management zone.
+ *
+ * @field interferenceManagementMitigationType: optional type of the mitigation to be used in the interference management zone.
+ * In the case where no mitigation should be applied by the ITS-S, this is indicated by the field interferenceManagementMitigationType being absent.
+ *
+ * @field expiryTime: optional time at which the validity of the interference management communication zone will expire.
+ * This component is present when the interference management is temporarily valid
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
InterferenceManagementInfoPerChannel ::= SEQUENCE {
interferenceManagementChannel InterferenceManagementChannel,
interferenceManagementZoneType InterferenceManagementZoneType,
interferenceManagementMitigationType MitigationForTechnologies OPTIONAL,
- expiryTime TimestampIts OPTIONAL,
+ expiryTime TimestampIts OPTIONAL,
...
}
+/**
+ * This DF shall contain a list of up to 16 interference management zones.
+ *
+ * **EXAMPLE**: An interference management communication zone may be defined around a CEN DSRC road side equipment or an urban rail operational area.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone
+/**
+ * This DF represents a unique id for an intersection, in accordance with ETSI TS 103 301 [15].
+ *
+ * It shall include the following components:
+ *
+ * @field region: the optional identifier of the entity that is responsible for the region in which the intersection is placed.
+ * It is the duty of that entity to guarantee that the @ref Id is unique within the region.
+ *
+ * @field id: the identifier of the intersection
+ *
+ * @note: when the component region is present, the IntersectionReferenceId is guaranteed to be globally unique.
+ * @category: Road topology information
+ * @revision: created in V2.1.1
+ */
IntersectionReferenceId ::= SEQUENCE {
region Identifier2B OPTIONAL,
id Identifier2B
}
+/**
+ * This DF shall contain a list of waypoints @ref ReferencePosition.
+ *
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition
-ProtocolVersion ::= INTEGER(0..255)
-
+/**
+ * This DF represents a common message header for application and facilities layer messages.
+ * It is included at the beginning of an ITS message as the message header.
+ *
+ * It shall include the following components:
+ *
+ * @field protocolVersion: version of the ITS message.
+ *
+ * @field messageId: type of the ITS message.
+ *
+ * @field stationId: the identifier of the ITS-S that generated the ITS message.
+ *
+ * @category: Communication information
+ * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId.
+ */
ItsPduHeader ::= SEQUENCE {
--- protocolVersion OrdinalNumber1B,
- protocolVersion ProtocolVersion,
+ protocolVersion ProtocolVersion, --OrdinalNumber1B,
messageId MessageId,
stationId StationId
}
+ProtocolVersion ::= INTEGER(0..255)
+
+/**
+ * This DF provides the reference to the information contained in a IVIM according to ETSI TS 103 301 [15].
+ *
+ * It shall include the following components:
+ *
+ * @field serviceProviderId: identifier of the organization that provided the IVIM.
+ *
+ * @field iviIdentificationNumber: identifier of the IVIM, as assigned by the organization identified in serviceProviderId.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.2.1
+ */
+IvimReference::= SEQUENCE {
+-- Wireshark modification
+-- serviceProviderId Provider,
+ serviceProviderId ProviderId,
+ iviIdentificationNumber IviIdentificationNumber
+}
+
+/**
+ * This DF shall contain a list of @ref IvimReference.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.2.1
+*/
+IvimReferences::= SEQUENCE (SIZE(1..8,...)) OF IvimReference
+
+/**
+ * This DF indicates a transversal position in resolution of lanes and other associated details.
+ *
+ * It shall include the following components:
+ *
+ * @field transversalPosition: the transversal position.
+ *
+ * @field laneType: the type of the lane identified in the component transversalPosition. By default set to `traffic`.
+ *
+ * @field direction: the traffic direction for the lane position relative to a defined reference direction. By default set to `sameDirection`, i.e. following the reference direction.
+ *
+ * @category Road topology information
+ * @revision: direction added in V2.2.1
+ */
LanePositionAndType::= SEQUENCE {
transversalPosition LanePosition,
- laneType LaneType,
+ laneType LaneType DEFAULT traffic,
+ direction Direction DEFAULT sameDirection,
+ ...
+}
+
+/**
+ * This DF represents a set of options to describe a lane position and is the second level DF to represent a lane position. The top-level DFs are @ref GeneralizedLanePosition or @ref OccupiedLanesWithConfidence.
+ * A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway.
+ *
+ * The following options are available:
+ *
+ * @field simplelanePosition: a single lane position without any additional context information.
+ *
+ * @field simpleLaneType: a lane type, to be used when the lane position is unknown but the type of lane is known. This can be used in scenarios where a certain confidence about the used lane type is given
+ * but no or limited knowledge about the absolute lane number is available. For example, a cyclist on a cycle-lane or vehicles on a specific lane that is unique for the part of the road (e.g. a bus lane).
+ *
+ * @field detailedlanePosition: a single lane position with additional lane details.
+ *
+ * @field lanePositionWithLateralDetails: a single lane position with additional details and the lateral position within the lane.
+ *
+ * @field trafficIslandPosition: a position on a traffic island, i.e. between two lanes.
+ *
+ * @category: Road Topology information
+ * @revision: Created in V2.2.1 from the DF GeneralizedLanePosition of V2.1.1.
+ */
+LanePositionOptions ::= CHOICE {
+ simplelanePosition LanePosition,
+ simpleLaneType LaneType,
+ detailedlanePosition LanePositionAndType,
+ lanePositionWithLateralDetails LanePositionWithLateralDetails,
+ trafficIslandPosition TrafficIslandPosition,
+ ...
+}
+
+/**
+ * This DF is a third-level DF that represents a lane position and is an extended version of @ref LanePositionAndType that adds the distances to the left and right lane border.
+ *
+ * It shall additionally include the following components:
+ *
+ * @field distanceToLeftBorder: the distance of the transversal position to the left lane border. The real value shall be rounded to the next lower encoding-value.
+ *
+ * @field distanceToRightBorder: the distance of the transversal position to the right lane border. The real value shall be rounded to the next lower encoding-value.
+ *
+ * @category: Road Topology information
+ * @revision: Created in V2.2.1
+ */
+LanePositionWithLateralDetails ::= SEQUENCE {
+ COMPONENTS OF LanePositionAndType,
+ distanceToLeftBorder StandardLength9b,
+ distanceToRightBorder StandardLength9b,
...
}
+/**
+ * This DF indicates the vehicle acceleration at lateral direction and the confidence value of the lateral acceleration.
+ *
+ * It shall include the following components:
+ *
+ * @field lateralAccelerationValue: lateral acceleration value at a point in time.
+ *
+ * @field lateralAccelerationConfidence: confidence value of the lateral acceleration value.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead.
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
LateralAcceleration ::= SEQUENCE {
lateralAccelerationValue LateralAccelerationValue,
lateralAccelerationConfidence AccelerationConfidence
}
+/**
+ * This DF indicates the vehicle acceleration at longitudinal direction and the confidence value of the longitudinal acceleration.
+ *
+ * It shall include the following components:
+ *
+ * @field longitudinalAccelerationValue: longitudinal acceleration value at a point in time.
+
+ * @field longitudinalAccelerationConfidence: confidence value of the longitudinal acceleration value.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
LongitudinalAcceleration ::= SEQUENCE {
longitudinalAccelerationValue LongitudinalAccelerationValue,
longitudinalAccelerationConfidence AccelerationConfidence
}
+/**
+ * This DF represents the estimated position along the longitudinal extension of a carriageway or lane.
+ *
+ * It shall include the following components:
+ *
+ * @field longitudinalLanePositionValue: the mean value of the longitudinal position along the carriageway or lane w.r.t. an externally defined start position.
+ *
+ * @field longitudinalLanePositionConfidence: The confidence value associated to the value.
+ *
+ * @category: Road topology information
+ * @revision: created in V2.1.1, description revised in V2.2.1
+ */
LongitudinalLanePosition ::= SEQUENCE {
longitudinalLanePositionValue LongitudinalLanePositionValue,
longitudinalLanePositionConfidence LongitudinalLanePositionConfidence
}
+/**
+ * This DF shall contain a list of a lower triangular positive semi-definite matrices.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
LowerTriangularPositiveSemidefiniteMatrices::= SEQUENCE SIZE (1..4) OF LowerTriangularPositiveSemidefiniteMatrix
+/**
+ * This DF represents a lower triangular positive semi-definite matrix.
+ *
+ * It shall include the following components:
+ *
+ * @field componentsIncludedIntheMatrix: the indication of which components of a @ref PerceivedObject are included in the matrix.
+ * This component also implicitly indicates the number n of included components which defines the size (n x n) of the full correlation matrix "A".
+ *
+ * @field matrix: the list of cells of the lower triangular positive semi-definite matrix ordered by columns and by rows.
+ *
+ * The number of columns to be included "k" is equal to the number of included components "n" indicated by componentsIncludedIntheMatrix minus 1: k = n-1.
+ * These components shall be included in the order or their appearance in componentsIncludedIntheMatrix.
+ * Each column "i" of the lowerTriangularCorrelationMatrixColumns contains k-(i-1) values.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
LowerTriangularPositiveSemidefiniteMatrix ::= SEQUENCE{
componentsIncludedIntheMatrix MatrixIncludedComponents,
matrix LowerTriangularPositiveSemidefiniteMatrixColumns
}
-LowerTriangularPositiveSemidefiniteMatrixColumns ::= SEQUENCE SIZE (1..13) OF CorrelationColumn
-
+/**
+ * This DF represents the columns of a lower triangular positive semi-definite matrix, each column not including the main diagonal cell of the matrix.
+ * Given a matrix "A" of size n x n, the number of @ref CorrelationColumn to be included in the lower triangular matrix is k=n-1.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1, extension indicator added in V2.2.1
+*/
+LowerTriangularPositiveSemidefiniteMatrixColumns ::= SEQUENCE SIZE (1..13,...) OF CorrelationColumn
+
+/**
+ * This DF provides information about the configuration of a road section in terms of MAPEM lanes or connections using a list of @ref MapemExtractedElementReference.
+
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+MapemConfiguration::= SEQUENCE(SIZE(1..16,...)) OF MapemElementReference
+
+/**
+ * This DF provides references to an element described in a MAPEM according to ETSI TS 103 301 [i.15], such as a lane or connection at a specific intersection or road segment.
+ *
+ * It shall include the following components:
+ *
+ * @field mapReference: the optional reference to a MAPEM that describes the intersection or road segment. It is absent if the MAPEM topology is known from the context.
+ *
+ * @field laneIds: the optional list of the identifiers of the lanes to be referenced.
+ *
+ * @field connectionIds: the optional list of the identifiers of the connections to be referenced.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+
+MapemElementReference::= SEQUENCE {
+ mapReference MapReference OPTIONAL,
+ laneIds MapemLaneList OPTIONAL,
+ connectionIds MapemConnectionList OPTIONAL,
+ ...
+}
+((WITH COMPONENTS {..., laneIds PRESENT}) |
+ (WITH COMPONENTS {..., connectionIds PRESENT }))
+
+/**
+ * This DF provides references to MAPEM lanes using a list of @ref Identifier1B.
+ *
+ * @category: Road topology information
+ * @revision: Created in 2.2.1
+*/
+MapemLaneList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B
+
+/**
+ * This DF provides references to MAPEM connections using a list of @ref Identifier1B.
+ * Note: connections are allowed �maneuvers� (e.g. an ingress / egress relation) on an intersection.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+MapemConnectionList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B
+
+/**
+ * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15].
+ *
+ * It shall include the following components:
+ *
+ * @field mapReference: optionally identifies the MAPEM containing the topology information.
+ * It is absent if the MAPEM topology is known from the context.
+ *
+ * @field laneId: optionally identifies the lane in the road segment or intersection topology on which the position is located.
+ *
+ * @field connectionId: optionally identifies the connection inside the conflict area of an intersection, i.e. it identifies a trajectory for travelling through the
+ * conflict area of an intersection which connects e.g an ingress with an egress lane.
+ *
+ * @field longitudinalLanePosition: optionally indicates the longitudinal offset of the map-matched position of the object along the lane or connection measured from the start of the lane/connection, along the lane.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.1.1, definition of longitudinalLanePosition amended in V2.2.1
+ */
MapPosition ::= SEQUENCE {
mapReference MapReference OPTIONAL,
laneId Identifier1B OPTIONAL,
- connectionId Identifier1B OPTIONAL,
+ connectionId Identifier1B OPTIONAL,
longitudinalLanePosition LongitudinalLanePosition OPTIONAL,
...
}
((WITH COMPONENTS {..., laneId PRESENT, connectionId ABSENT }) |
(WITH COMPONENTS {..., laneId ABSENT, connectionId PRESENT }))
+/**
+ * This DF provides the reference to the information contained in a MAPEM according to ETSI TS 103 301 [15].
+ *
+ * The following options are provided:
+ *
+ * @field roadsegment: option that identifies the description of a road segment contained in a MAPEM.
+ *
+ * @field intersection: option that identifies the description of an intersection contained in a MAPEM.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.1.1
+ */
MapReference::= CHOICE {
roadsegment RoadSegmentReferenceId,
intersection IntersectionReferenceId
- }
+}
+/**
+ * This DF shall contain a list of @ref MapReference.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+MapReferences::= SEQUENCE (SIZE(1..8,...)) OF MapReference
+
+
+/**
+ * This DE indicates a message rate.
+ *
+ * @field mantissa: indicates the mantissa.
+ *
+ * @field exponent: indicates the exponent.
+ *
+ * The specified message rate is: mantissa*(10^exponent)
+ *
+ * @unit: Hz
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
MessageRateHz::= SEQUENCE {
mantissa INTEGER (1..100),
exponent INTEGER (-5..2)
- }
+}
+/**
+ * This DF provides information about a message with respect to the segmentation process on facility layer at the sender.
+ *
+ * It shall include the following components:
+ *
+ * @field totalMsgNo: indicates the total number of messages that have been assembled on the transmitter side to encode the information
+ * during the same messsage generation process.
+ *
+ * @field thisMsgNo: indicates the position of the message within of the total set of messages generated during the same message generation process.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1, description revised in V2.2.1
+ */
MessageSegmentationInfo ::= SEQUENCE {
totalMsgNo CardinalNumber3b,
thisMsgNo OrdinalNumber3b
- }
+}
-MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass
+/**
+ * This DF provides information about the source of and confidence in information.
+ *
+ * It shall include the following components:
+ *
+ * @field usedDetectionInformation: the type of sensor(s) that is used to provide the detection information.
+ *
+ * @field usedStoredInformation: the type of source of the stored information.
+ *
+ * @field confidenceValue: an optional confidence value associated to the information.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.2.1
+*/
+MetaInformation::=SEQUENCE{
+ usedDetectionInformation SensorTypes,
+ usedStoredInformation StoredInformationType,
+ confidenceValue ConfidenceLevel OPTIONAL,
+ ...
+}
+/**
+ * This DF shall contain a list of @ref MitigationPerTechnologyClass.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+*/
+MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass
+
+/**
+ * This DF represents a set of mitigation parameters for a specific technology, as specified in ETSI TS 103 724 [24], clause 7.
+ *
+ * It shall include the following components:
+ *
+ * @field accessTechnologyClass: channel access technology to which this mitigation is intended to be applied.
+ *
+ * @field lowDutyCycle: duty cycle limit.
+ * @unit: 0,01 % steps
+ *
+ * @field powerReduction: the delta value of power to be reduced.
+ * @unit: dB
+ *
+ * @field dmcToffLimit: idle time limit as defined in ETSI TS 103 175 [19].
+ * @unit: ms
+ *
+ * @field dmcTonLimit: Transmission duration limit, as defined in ETSI EN 302 571 [20].
+ * @unit: ms
+ *
+ * @note: All parameters are optional, as they may not apply to some of the technologies or
+ * interference management zone types. Specification details are in ETSI TS 103 724 [24], clause 7.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
MitigationPerTechnologyClass ::= SEQUENCE {
- accessTechnologyClass AccessTechnologyClass,
- lowDutyCycle INTEGER (0 .. 10000) OPTIONAL,
+ accessTechnologyClass AccessTechnologyClass,
+ lowDutyCycle INTEGER (0 .. 10000) OPTIONAL,
powerReduction INTEGER (0 .. 30) OPTIONAL,
- dmcToffLimit INTEGER (0 .. 1200) OPTIONAL,
- dmcTonLimit INTEGER (0 .. 20) OPTIONAL,
+ dmcToffLimit INTEGER (0 .. 1200) OPTIONAL,
+ dmcTonLimit INTEGER (0 .. 20) OPTIONAL,
...
}
+/**
+ * This DF indicates both the class and associated subclass that best describes an object.
+ *
+ * The following options are available:
+ *
+ * @field vehicleSubClass: the object is a road vehicle and the specific subclass is specified.
+ *
+ * @field vruSubClass: the object is a VRU and the specific subclass is specified.
+ *
+ * @field groupSubClass: the object is a VRU group or cluster and the cluster information is specified.
+ *
+ * @field otherSubClass: the object is of a different type than the above and the specific subclass is specified.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+ */
ObjectClass ::= CHOICE {
vehicleSubClass TrafficParticipantType (unknown|passengerCar..tram|agricultural),
vruSubClass VruProfileAndSubprofile,
- groupSubClass VruClusterInformation (WITH COMPONENTS{..., clusterBoundingBoxShape ABSENT}),
+ groupSubClass VruClusterInformation
+ (WITH COMPONENTS{..., clusterBoundingBoxShape ABSENT}),
otherSubClass OtherSubClass,
...
}
+/**
+ * This DF shall contain a list of object classes.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
ObjectClassDescription ::= SEQUENCE (SIZE(1..8)) OF ObjectClassWithConfidence
+/**
+ * This DF represents the classification of a detected object together with a confidence level.
+ *
+ * It shall include the following components:
+ *
+ * @field objectClass: the class of the object.
+ *
+ * @field Confidence: the associated confidence level.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
ObjectClassWithConfidence ::= SEQUENCE {
objectClass ObjectClass,
confidence ConfidenceLevel
}
+/**
+ * This DF represents a dimension of an object together with a confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the object dimension value which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the associated confidence value.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
ObjectDimension ::= SEQUENCE {
value ObjectDimensionValue,
confidence ObjectDimensionConfidence
}
+/**
+ * This DF represents a set of lanes which are partially or fully occupied by an object or event at an externally defined reference position.
+ *
+ * @note: In contrast to @ref GeneralizedLanePosition, the dimension of the object or event area (width and length) is taken into account to determine the occupancy,
+ * i.e. this DF describes the lanes which are blocked by an object or event and not the position of the object / event itself. A confidence is used to describe the
+ * probability that exactly all the provided lanes are occupied.
+ *
+ * It shall include the following components:
+ *
+ * @field lanePositionBased: a set of up to `4` lanes that are partially or fully occupied by an object or event, ordered by increasing value of @ref LanePosition.
+ * Lanes that are partially occupied can be described using the component lanePositionWithLateralDetails of @ref Options, with the following constraints:
+ * The distance to lane borders which are covered by the object / event shall be set to 0. Only the distances to the leftmost and/or rightmost border which are not covered by
+ * the object / event shall be provided with values > 0. Those values shall be added to the respective instances of @ref LanePositionOptions, i.e. the first entry shall contain the component distanceToLeftBorder > 0 ,
+ * and/or the last entry shall contain the component distanceToRightBorder > 0; the respective other components of these entries shall be set to 0.
+ *
+ * @field mapBased: optional lane information described in the context of a MAPEM as specified in ETSI TS 103 301 [15].
+ * If present, it shall describe the same lane(s) as listed in the component lanePositionBased, but using the lane identification of the MAPEM. This component can be used only if a
+ * MAPEM is available for the reference position (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased.
+ *
+ * @field confidence: mandatory confidence information for expressing the probability that all the provided lanes are occupied. It also provides information on how the lane
+ * information were generated. If none of the sensors were used, the lane information is assumed to be derived directly from the absolute reference position and the related dimension.
+ *
+ * @category: Road Topology information
+ * @revision: Created in V2.2.1
+ */
+OccupiedLanesWithConfidence::= SEQUENCE {
+ lanePositionBased SEQUENCE (SIZE(1..4)) OF LanePositionOptions,
+ mapBased SEQUENCE (SIZE(1..4)) OF MapPosition OPTIONAL,
+ confidence MetaInformation,
+ ...
+}
+
+/**
+ * This DF represents a path with a set of path points.
+ * It shall contain up to `40` @ref PathPoint.
+ *
+ * The first PathPoint presents an offset delta position with regards to an external reference position.
+ * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint.
+ *
+ * @category: GeoReference information, Vehicle information
+ * @revision: created in V2.1.1 based on PathHistory
+ */
Path::= SEQUENCE (SIZE(0..40)) OF PathPoint
-PathHistory::= SEQUENCE (SIZE(40)) OF PathPoint
+/**
+ * This DF represents estimated/predicted travel time between a position and a predefined reference position.
+ *
+ * the following options are available:
+ *
+ * @field deltaTimeHighPrecision: delta time with precision of 0,1 s.
+ *
+ * @field deltaTimeBigRange: delta time with precision of 10 s.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.2.1
+ */
+PathDeltaTimeChoice::= CHOICE {
+ deltaTimeHighPrecision DeltaTimeTenthOfSecond,
+ deltaTimeBigRange DeltaTimeTenSeconds,
+ ...
+}
+
+/**
+ * This DF represents a path towards a specific point specified in the @ref EventZone.
+ *
+ * It shall include the following components:
+ *
+ * @field pointOfEventZone: the ordinal number of the point within the DF EventZone, i.e. within the list of EventPoints.
+ *
+ * @field path: the associated path towards the point specified in pointOfEventZone.
+ * The first PathPoint presents an offset delta position with regards to the position of that pointOfEventZone.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.2.1
+*/
+PathExtended::= SEQUENCE {
+ pointOfEventZone INTEGER(1..23),
+ path Path
+}
-PathPredicted::= SEQUENCE (SIZE(0..15,...)) OF PathPointPredicted
+/**
+ * This DF represents a path history with a set of path points.
+ * It shall contain up to `40` @ref PathPoint.
+ *
+ * The first PathPoint presents an offset delta position with regards to an external reference position.
+ * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref Path instead.
+ * @category: GeoReference information, Vehicle information
+ * @revision: semantics updated in V2.1.1, size corrected to 0..40 in V2.2.1
+ */
+PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint
+
+/**
+ * This DF represents a predicted path or trajectory with a set of predicted points and optional information to generate a shape which is estimated to contain the real path.
+ * It shall contain up to `16` @ref PathPointPredicted.
+ *
+ * The first PathPoint presents an offset delta position with regards to an external reference position.
+ * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint.
+ *
+ * @category: GeoReference information
+ * @revision: created in V2.1.1 , size constraint changed to SIZE(1..16, ...) in V2.2.1
+ */
+PathPredicted::= SEQUENCE (SIZE(1..16,...)) OF PathPointPredicted
+
+/**
+ * This DF represents a predicted path, predicted trajectory or predicted path zone together with usage information and a prediction confidence.
+ *
+ * It shall include the following components:
+ *
+ * @field pathPredicted: the predicted path (pathDeltaTime ABSENT) or trajectory (pathDeltaTime PRESENT) and/or the path zone (symmetricAreaOffset PRESENT).
+ *
+ * @field usageIndication: an indication of how the predicted path will be used.
+ *
+ * @field confidenceLevel: the confidence that the path/trajectory in pathPredicted will occur as predicted.
+ *
+ * @category: GeoReference information
+ * @revision: created in V2.2.1
+ */
+PathPredicted2::= SEQUENCE{
+ pathPredicted PathPredicted
+ ((WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime ABSENT, symmetricAreaOffset ABSENT})) |
+ (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime PRESENT, symmetricAreaOffset ABSENT})) |
+ (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime ABSENT, symmetricAreaOffset PRESENT})) |
+ (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime PRESENT, symmetricAreaOffset PRESENT}))),
+ usageIndication UsageIndication,
+ confidenceLevel ConfidenceLevel,
+ ...
+}
+/**
+ * This DF represents one or more predicted paths, or trajectories or path zones (zones that include all possible paths/trajectories within its boundaries) using @ref PathPredicted2.
+ * It shall contain up to `16` @ref PathPredicted2.
+ *
+ * @category: GeoReference information
+ * @revision: V2.2.1
+ */
+PathPredictedList ::= SEQUENCE SIZE(1..16,...) OF PathPredicted2
+
+/**
+ * This DF defines an offset waypoint position within a path.
+ *
+ * It shall include the following components:
+ *
+ * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position.
+ *
+ * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position.
+ *
+ * @category GeoReference information
+ * @revision: semantics updated in V2.1.1
+ */
PathPoint ::= SEQUENCE {
pathPosition DeltaReferencePosition,
pathDeltaTime PathDeltaTime OPTIONAL
}
+/**
+ * This DF defines a predicted offset position that can be used within a predicted path or trajectory, together with optional data to describe a path zone shape.
+ *
+ * It shall include the following components:
+ *
+ * @field deltaLatitude: the offset latitude with regards to a pre-defined reference position.
+ *
+ * @field deltaLongitude: the offset longitude with regards to a pre-defined reference position.
+ *
+ * @field horizontalPositionConfidence: the optional confidence value associated to the horizontal geographical position.
+ *
+ * @field deltaAltitude: the optional offset altitude with regards to a pre-defined reference position, with default value unavailable.
+ *
+ * @field altitudeConfidence: the optional confidence value associated to the altitude value of the geographical position, with default value unavailable.
+ *
+ * @field pathDeltaTime: the optional travel time to the waypoint from the predefined reference position.
+
+ * @field symmetricAreaOffset: the optional symmetric offset to generate a shape, see Annex D for details.
+ *
+ * @field asymmetricAreaOffset: the optional asymmetric offset to generate a shape, see Annex D for details.
+ *
+ * @category GeoReference information
+ * @revision: Created in V2.1.1, type of pathDeltaTime changed and optionality added, fields symmetricAreaOffset and asymmetricAreaOffset added in V2.2.1
+ */
PathPointPredicted::= SEQUENCE {
- deltaLatitude DeltaLatitude,
- deltaLongitude DeltaLongitude,
- horizontalPositionConfidence PosConfidenceEllipse OPTIONAL,
- deltaAltitude DeltaAltitude DEFAULT unavailable,
+ deltaLatitude DeltaLatitude,
+ deltaLongitude DeltaLongitude,
+ horizontalPositionConfidence PosConfidenceEllipse OPTIONAL,
+ deltaAltitude DeltaAltitude DEFAULT unavailable,
altitudeConfidence AltitudeConfidence DEFAULT unavailable,
- pathDeltaTime DeltaTimeTenthOfSecond,
- ...
+ pathDeltaTime PathDeltaTimeChoice OPTIONAL,
+ symmetricAreaOffset StandardLength9b OPTIONAL,
+ asymmetricAreaOffset StandardLength9b OPTIONAL,
+ ...
}
-
+ ((WITH COMPONENTS {..., symmetricAreaOffset ABSENT, asymmetricAreaOffset ABSENT}) |
+ (WITH COMPONENTS {..., symmetricAreaOffset PRESENT, asymmetricAreaOffset ABSENT}) |
+ (WITH COMPONENTS {..., symmetricAreaOffset PRESENT, asymmetricAreaOffset PRESENT}))
+
+/**
+ * This DF represents a list of references to the components of a @ref Traces or @ref TracesExtended DF using the @ref PathId.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+PathReferences ::= SEQUENCE (SIZE(1..14)) OF PathId
+
+/**
+ * This DF contains information about a perceived object including its kinematic state and attitude vector in a pre-defined coordinate system and with respect to a reference time.
+ *
+ * It shall include the following components:
+ *
+ * @field objectId: optional identifier assigned to a detected object.
+ *
+ * @field measurementDeltaTime: the time difference from a reference time to the time of the measurement of the object.
+ * Negative values indicate that the provided object state refers to a point in time before the reference time.
+ *
+ * @field position: the position of the geometric centre of the object's bounding box within the pre-defined coordinate system.
+ *
+ * @field velocity: the velocity vector of the object within the pre-defined coordinate system.
+ *
+ * @field acceleration: the acceleration vector of the object within the pre-defined coordinate system.
+ *
+ * @field angles: optional Euler angles of the object bounding box at the time of measurement.
+ *
+ * @field zAngularVelocity: optional angular velocity of the object around the z-axis at the time of measurement.
+ * The angular velocity is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule.
+ *
+ * @field lowerTriangularCorrelationMatrices: optional set of lower triangular correlation matrices for selected components of the provided kinematic state and attitude vector.
+ *
+ * @field objectDimensionZ: optional z-dimension of object bounding box.
+ * This dimension shall be measured along the direction of the z-axis after all the rotations have been applied.
+ *
+ * @field objectDimensionY: optional y-dimension of the object bounding box.
+ * This dimension shall be measured along the direction of the y-axis after all the rotations have been applied.
+ *
+ * @field objectDimensionX: optional x-dimension of object bounding box.
+ * This dimension shall be measured along the direction of the x-axis after all the rotations have been applied.
+ *
+ * @field objectAge: optional age of the detected and described object, i.e. the difference in time between the moment
+ * it has been first detected and the reference time of the message. Value `1500` indicates that the object has been observed for more than 1.5s.
+ *
+ * @field objectPerceptionQuality: optional confidence associated to the object.
+ *
+ * @field sensorIdList: optional list of sensor-IDs which provided the measurement data.
+ *
+ * @field classification: optional classification of the described object
+ *
+ * @field matchedPosition: optional map-matched position of an object.
+ *
+ * @category Sensing information
+ * @revision: created in V2.1.1
+ */
PerceivedObject ::= SEQUENCE {
objectId Identifier2B OPTIONAL,
measurementDeltaTime DeltaTimeMilliSecondSigned,
- position CartesianPosition3dWithConfidence,
+ position CartesianPosition3dWithConfidence,
velocity Velocity3dWithConfidence OPTIONAL,
acceleration Acceleration3dWithConfidence OPTIONAL,
angles EulerAnglesWithConfidence OPTIONAL,
@@ -1878,26 +6256,120 @@ PerceivedObject ::= SEQUENCE {
...
}
+/**
+ * This DF represents the shape of a polygonal area or of a right prism.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position.
+ * If this component is absent, the externally specified reference position represents the shape's reference point.
+ *
+ * @field polygon: the polygonal area represented by a list of minimum `3` to maximum `16` @ref CartesianPosition3d.
+ * All nodes of the polygon shall be considered relative to the shape's reference point.
+ *
+ * @field height: the optional height, present if the shape is a right prism extending in the positive z-axis.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1
+ *
+ */
PolygonalShape ::= SEQUENCE {
shapeReferencePoint CartesianPosition3d OPTIONAL,
polygon SequenceOfCartesianPosition3d (SIZE(3..16,...)),
height StandardLength12b OPTIONAL
}
+/**
+ * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a
+ * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference
+ * position point for which the position accuracy is evaluated.
+ *
+ * It shall include the following components:
+ *
+ * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point
+ * and major axis point of the position accuracy ellipse.
+ *
+ * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point
+ * and minor axis point of the position accuracy ellipse.
+ *
+ * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy
+ * ellipse with regards to the WGS84 north.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ *
+ * @category GeoReference information
+ * @revision: V1.3.1
+ */
PosConfidenceEllipse ::= SEQUENCE {
semiMajorConfidence SemiAxisLength,
semiMinorConfidence SemiAxisLength,
semiMajorOrientation HeadingValue
}
+/**
+ * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a
+ * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference
+ * position point for which the position accuracy is evaluated.
+ *
+ * It shall include the following components:
+ *
+ * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point
+ * and major axis point of the position accuracy ellipse.
+ *
+ * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point
+ * and minor axis point of the position accuracy ellipse.
+ *
+ * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy
+ * ellipse with regards to the WGS84 north.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse
+ */
PositionConfidenceEllipse ::= SEQUENCE {
semiMajorAxisLength SemiAxisLength,
semiMinorAxisLength SemiAxisLength,
semiMajorAxisOrientation Wgs84AngleValue
}
+/**
+ * This DF shall contain a list of distances @ref PosPillar that refer to the perpendicular distance between centre of vehicle front bumper
+ * and vehicle pillar A, between neighbour pillars until the last pillar of the vehicle.
+ *
+ * Vehicle pillars refer to the vertical or near vertical support of vehicle,
+ * designated respectively as the A, B, C or D and other pillars moving in side profile view from the front to rear.
+ *
+ * The first value of the DF refers to the perpendicular distance from the centre of vehicle front bumper to
+ * vehicle A pillar. The second value refers to the perpendicular distance from the centre position of A pillar
+ * to the B pillar of vehicle and so on until the last pillar.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar
+/**
+ * This DF describes a zone of protection inside which the ITS communication should be restricted.
+ *
+ * It shall include the following components:
+ *
+ * @field protectedZoneType: type of the protected zone.
+ *
+ * @field expiryTime: optional time at which the validity of the protected communication zone will expire.
+ *
+ * @field protectedZoneLatitude: latitude of the centre point of the protected communication zone.
+ *
+ * @field protectedZoneLongitude: longitude of the centre point of the protected communication zone.
+ *
+ * @field protectedZoneRadius: optional radius of the protected communication zone in metres.
+ *
+ * @field protectedZoneId: the optional ID of the protected communication zone.
+ *
+ * @note: A protected communication zone may be defined around a CEN DSRC road side equipment.
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: revised in V2.1.1 (changed protectedZoneID to protectedZoneId)
+ */
ProtectedCommunicationZone ::= SEQUENCE {
protectedZoneType ProtectedZoneType,
expiryTime TimestampIts OPTIONAL,
@@ -1908,33 +6380,172 @@ ProtectedCommunicationZone ::= SEQUENCE {
...
}
-ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone
+/**
+ * This DF shall contain a list of @ref ProtectedCommunicationZone provided by a road side ITS-S (Road Side Unit RSU).
+ *
+ * It may provide up to 16 protected communication zones information.
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: V1.3.1
+ */
+ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone
+
+/**
+ * This DF identifies an organization.
+ *
+ * It shall include the following components:
+ *
+ * @field countryCode: represents the country code that identifies the country of the national registration administrator for issuers according to ISO 14816.
+ *
+ * @field providerIdentifier: identifies the organization according to the national ISO 14816 register for issuers.
+ *
+ * @note: See https://www.itsstandards.eu/registries/register-of-nra-i-cs1/ for a list of national registration administrators and their respective registers
+ *
+ * @category: Communication information
+ * @revision: Created in V2.2.1 based on ISO 17573-3 [24]
+ */
+-- Wireshark modification
+-- Provider ::= SEQUENCE {
+ProviderId ::= SEQUENCE {
+ countryCode CountryCode,
+ providerIdentifier IssuerIdentifier
+}
+/**
+ * This DF represents activation data for real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc.
+ * using a range of activation devices equipped in public transport vehicles.
+ *
+ * The activation of the corresponding equipment is triggered by the approach or passage of a public transport
+ * vehicle at a certain point (e.g. a beacon).
+ *
+ * @field ptActivationType: type of activation.
+ *
+ * @field ptActicationData: data of activation.
+ *
+ * Today there are different payload variants defined for public transport activation-data. The R09.x is one of
+ * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria)
+ * for controlling traffic lights, barriers, bollards, etc. This DF shall include information like route, course,
+ * destination, priority, etc.
+ *
+ * The R09.x content is defined in VDV recommendation 420 [7]. It includes following information:
+ * - Priority Request Information (pre-request, request, ready to start)
+ * - End of Prioritization procedure
+ * - Priority request direction
+ * - Public Transport line number
+ * - Priority of public transport
+ * - Route line identifier of the public transport
+ * - Route number identification
+ * - Destination of public transport vehicle
+ *
+ * Other countries may use different message sets defined by the local administration.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
PtActivation ::= SEQUENCE {
ptActivationType PtActivationType,
ptActivationData PtActivationData
}
-RadialShape ::= SEQUENCE {
+/**
+ * This DF describes a radial shape. The circular or spherical sector is constructed by sweeping
+ * the provided range about the reference position specified outside of the context of this DF or
+ * about the optional shapeReferencePoint. The range is swept between a horizontal start and a
+ * horizontal end angle in the X-Y plane of a cartesian coordinate system specified outside of the
+ * context of this DF, in a right-hand positive angular direction w.r.t. the x-axis.
+ * A vertical opening angle in the X-Z plane may optionally be provided in a right-hand positive
+ * angular direction w.r.t. the x-axis.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: the optional reference point used for the definition of the shape,
+ * relative to an externally specified reference position. If this component is absent, the
+ * externally specified reference position represents the shape's reference point.
+ *
+ * @field range: the radial range of the shape from the shape's reference point.
+ *
+ * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle.
+ *
+ * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle.
+ *
+ * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle.
+ *
+ * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1, names and types of the horizontal opening angles changed, constraint added and description revised in V2.2.1
+*/
+RadialShape ::= SEQUENCE {
shapeReferencePoint CartesianPosition3d OPTIONAL,
range StandardLength12b,
- stationaryHorizontalOpeningAngleStart Wgs84AngleValue,
- stationaryHorizontalOpeningAngleEnd Wgs84AngleValue,
+ horizontalOpeningAngleStart CartesianAngleValue,
+ horizontalOpeningAngleEnd CartesianAngleValue,
verticalOpeningAngleStart CartesianAngleValue OPTIONAL,
verticalOpeningAngleEnd CartesianAngleValue OPTIONAL
}
-
-
+ ((WITH COMPONENTS {..., verticalOpeningAngleStart ABSENT, verticalOpeningAngleEnd ABSENT }) |
+ (WITH COMPONENTS {..., verticalOpeningAngleStart PRESENT, verticalOpeningAngleEnd PRESENT }))
+
+
+/**
+ * This DF describes a list of radial shapes positioned w.r.t. to an offset position defined
+ * relative to a reference position specified outside of the context of this DF and oriented w.r.t.
+ * a cartesian coordinate system specified outside of the context of this DF.
+ *
+ * It shall include the following components:
+ *
+ * @field refPointId: the identification of the reference point in case of a sensor mounted to trailer. Defaults to ITS ReferencePoint (0).
+ *
+ * @field xCoordinate: the x-coordinate of the offset position.
+ *
+ * @field yCoordinate: the y-coordinate of the offset position.
+ *
+ * @field zCoordinate: the optional z-coordinate of the offset position.
+ *
+ * @field radialShapesList: the list of radial shape details.
+ *
+ * @category: Georeference information
+ * @revision: created in V2.1.1, description revised in V2.2.1
+ */
RadialShapes ::= SEQUENCE {
refPointId Identifier1B,
- xCoordinate CartesianCoordinateSmall,
+ xCoordinate CartesianCoordinateSmall,
yCoordinate CartesianCoordinateSmall,
zCoordinate CartesianCoordinateSmall OPTIONAL,
radialShapesList RadialShapesList
}
+/**
+ * The DF contains a list of @ref RadialShapeDetails.
+ *
+ * @category: Georeference information
+ * @revision: created in V2.1.1
+ */
+
RadialShapesList ::= SEQUENCE SIZE(1..16,...) OF RadialShapeDetails
+/**
+ * This DF describes radial shape details. The circular sector or cone is
+ * constructed by sweeping the provided range about the position specified outside of the
+ * context of this DF. The range is swept between a horizontal start and a horizontal end angle in
+ * the X-Y plane of a right-hand cartesian coordinate system specified outside of the context of
+ * this DF, in positive angular direction w.r.t. the x-axis. A vertical opening angle in the X-Z
+ * plane may optionally be provided in positive angular direction w.r.t. the x-axis.
+ *
+ * It shall include the following components:
+ *
+ * @field range: the radial range of the sensor from the reference point or sensor point offset.
+ *
+ * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle.
+ *
+ * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle.
+ *
+ * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle.
+ *
+ * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle.
+ *
+ * @category: Georeference information
+ * @revision: created in V2.1.1, description revised and constraint added in V2.2.1
+ */
RadialShapeDetails ::= SEQUENCE {
range StandardLength12b,
horizontalOpeningAngleStart CartesianAngleValue,
@@ -1942,15 +6553,59 @@ RadialShapeDetails ::= SEQUENCE {
verticalOpeningAngleStart CartesianAngleValue OPTIONAL,
verticalOpeningAngleEnd CartesianAngleValue OPTIONAL
}
-
-RectangularShape ::= SEQUENCE {
- centerPoint CartesianPosition3d OPTIONAL,
- semiLength StandardLength12b,
- semiBreadth StandardLength12b,
- orientation Wgs84AngleValue OPTIONAL,
- height StandardLength12b OPTIONAL
+ ((WITH COMPONENTS {..., verticalOpeningAngleStart ABSENT, verticalOpeningAngleEnd ABSENT }) |
+ (WITH COMPONENTS {..., verticalOpeningAngleStart PRESENT, verticalOpeningAngleEnd PRESENT }))
+
+/**
+ * This DF represents the shape of a rectangular area or a right rectangular prism that is centred
+ * on a reference position defined outside of the context of this DF and oriented w.r.t. a cartesian
+ * coordinate system defined outside of the context of this DF.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: represents an optional offset point which the rectangle is centred on with
+ * respect to the reference position. If this component is absent, the externally specified
+ * reference position represents the shape's reference point.
+ *
+ * @field semiLength: represents half the length of the rectangle located in the X-Y Plane.
+ *
+ * @field semiBreadth: represents half the breadth of the rectangle located in the X-Y Plane.
+ *
+ * @field orientation: represents the optional orientation of the length of the rectangle,
+ * measured with positive values turning around the Z-axis using the right-hand rule, starting from
+ * the X-axis.
+ *
+ * @field height: represents the optional height, present if the shape is a right rectangular prism
+ * with height extending in the positive Z-axis.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1, centerPoint renamed to shapeReferencePoint, the type of the field orientation changed and description revised in V2.2.1
+ */
+RectangularShape ::= SEQUENCE {
+ shapeReferencePoint CartesianPosition3d OPTIONAL,
+ semiLength StandardLength12b,
+ semiBreadth StandardLength12b,
+ orientation CartesianAngleValue OPTIONAL,
+ height StandardLength12b OPTIONAL
}
+/**
+ * A position within a geographic coordinate system together with a confidence ellipse.
+ *
+ * It shall include the following components:
+ *
+ * @field latitude: the latitude of the geographical point.
+ *
+ * @field longitude: the longitude of the geographical point.
+ *
+ * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position.
+ *
+ * @field altitude: the altitude and an altitude accuracy of the geographical point.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref ReferencePositionWithConfidence instead.
+ * @category: GeoReference information
+ * @revision: description updated in V2.1.1
+ */
ReferencePosition ::= SEQUENCE {
latitude Latitude,
longitude Longitude,
@@ -1958,6 +6613,22 @@ ReferencePosition ::= SEQUENCE {
altitude Altitude
}
+/**
+ * A position within a geographic coordinate system together with a confidence ellipse.
+ *
+ * It shall include the following components:
+ *
+ * @field latitude: the latitude of the geographical point.
+ *
+ * @field longitude: the longitude of the geographical point.
+ *
+ * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position.
+ *
+ * @field altitude: the altitude and an altitude accuracy of the geographical point.
+ *
+ * @category: GeoReference information
+ * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse.
+ */
ReferencePositionWithConfidence ::= SEQUENCE {
latitude Latitude,
longitude Longitude,
@@ -1965,13 +6636,121 @@ ReferencePositionWithConfidence ::= SEQUENCE {
altitude Altitude
}
+/**
+ * This DF shall contain a list of @ref StationType. to which a certain traffic restriction, e.g. the speed limit, applies.
+ *
+ * @category: Infrastructure information, Traffic information
+ * @revision: V1.3.1
+ */
RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType
+/**
+ * This DF provides configuration information about a road section.
+ *
+ * It shall include the following components:
+ *
+ * @field roadSectionDefinition: the topological definition of the road section for which the information in the other components applies throughout its entire length.
+ *
+ * @field roadType: the optional type of road on which the section is located.
+ *
+ * @field laneConfiguration: the optional configuration of the road section in terms of basic information per lane.
+ *
+ * @field mapemConfiguration: the optional configuration of the road section in terms of MAPEM lanes or connections.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+
+RoadConfigurationSection ::= SEQUENCE {
+ roadSectionDefinition RoadSectionDefinition,
+ roadType RoadType OPTIONAL,
+ laneConfiguration BasicLaneConfiguration OPTIONAL,
+ mapemConfiguration MapemConfiguration OPTIONAL,
+ ...
+}
+ ((WITH COMPONENTS {..., laneConfiguration PRESENT}) |
+ (WITH COMPONENTS {..., mapemConfiguration PRESENT}))
+
+/**
+ * This DF shall contain a list of @ref RoadConfigurationSection.
+ *
+ * @category: Road Topology information
+ * @revision: Created in V2.2.1
+ */
+RoadConfigurationSectionList::= SEQUENCE (SIZE(1..8,...)) OF RoadConfigurationSection
+
+/**
+ * This DF provides the basic topological definition of a road section.
+ *
+ * It shall include the following components:
+ *
+ * @field startingPointSection: the position of the starting point of the section.
+ *
+ * @field lengthOfSection: the optional length of the section along the road profile (i.e. including curves).
+ *
+ * @field endingPointSection: the optional position of the ending point of the section.
+ * If this component is absent, the ending position is implicitly defined by other means, e.g. the starting point of the next RoadConfigurationSection, or the section�s length.
+ *
+ * @field connectedPaths: the identifier(s) of the path(s) having one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point.
+ *
+ * @field includedPaths: the identifier(s) of the path(s) that covers (either with all its length or with a part of it) a RoadConfigurationSection.
+ *
+ * @field isEventZoneIncluded: indicates, if set to TRUE, that the @ref EventZone incl. its reference position covers a RoadConfigurationSection (either with all its length or with a part of it).
+ *
+ * @field isEventZoneConnected: indicates, if set to TRUE, that the @ref EventZone incl. its reference position has one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.2.1
+*/
+RoadSectionDefinition::= SEQUENCE {
+ startingPointSection GeoPosition,
+ lengthOfSection StandardLength2B OPTIONAL,
+ endingPointSection GeoPosition OPTIONAL,
+ connectedPaths PathReferences,
+ includedPaths PathReferences,
+ isEventZoneIncluded BOOLEAN,
+ isEventZoneConnected BOOLEAN,
+ ...
+}
+
+/**
+ * This DF represents a unique id for a road segment
+ *
+ * It shall include the following components:
+ *
+ * @field region: the optional identifier of the entity that is responsible for the region in which the road segment is placed.
+ * It is the duty of that entity to guarantee that the @ref Id is unique within the region.
+ *
+ * @field id: the identifier of the road segment.
+ *
+ * @note: when the component region is present, the RoadSegmentReferenceId is guaranteed to be globally unique.
+ * @category: GeoReference information
+ * @revision: created in V2.1.1
+ */
RoadSegmentReferenceId ::= SEQUENCE {
region Identifier2B OPTIONAL,
id Identifier2B
}
+/**
+ * This DF provides the safe distance indication of a traffic participant with other traffic participant(s).
+ *
+ * It shall include the following components:
+ *
+ * @field subjectStation: optionally indicates one "other" traffic participant identified by its ITS-S.
+ *
+ * @field safeDistanceIndicator: indicates whether the distance between the ego ITS-S and the traffic participant(s) is safe.
+ * If subjectStation is present then it indicates whether the distance between the ego ITS-S and the traffic participant indicated in the component subjectStation is safe.
+ *
+ * @field timeToCollision: optionally indicated the time-to-collision calculated as sqrt(LaDi^2 + LoDi^2 + VDi^2/relative speed
+ * and represented in the nearest 100 ms. This component may be present only if subjectStation is present.
+ *
+ * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD)
+ * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD).
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+ */
SafeDistanceIndication ::= SEQUENCE {
subjectStation StationId OPTIONAL,
safeDistanceIndicator SafeDistanceIndicator,
@@ -1979,17 +6758,61 @@ SafeDistanceIndication ::= SEQUENCE {
...
}
+/**
+ * This DF shall contain a list of DF @ref CartesianPosition3d.
+ *
+ * @category: GeoReference information
+ * @revision: created in V2.1.1
+ */
SequenceOfCartesianPosition3d ::= SEQUENCE (SIZE(1..16, ...)) OF CartesianPosition3d
+/**
+ * The DF contains a list of DE @ref Identifier1B.
+ *
+ * @category: Basic information
+ * @revision: created in V2.1.1
+*/
SequenceOfIdentifier1B ::= SEQUENCE SIZE(1..128, ...) OF Identifier1B
+/**
+ * The DF contains a list of DF @ref SafeDistanceIndication.
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+*/
SequenceOfSafeDistanceIndication ::= SEQUENCE(SIZE(1..8,...)) OF SafeDistanceIndication
+/**
+ * The DF shall contain a list of DF @ref TrajectoryInterceptionIndication.
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+*/
SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8,...)) OF TrajectoryInterceptionIndication
+/**
+ * This DF provides the definition of a geographical area or volume, based on different options.
+ *
+ * It is a choice of the following components:
+ *
+ * @field rectangular: definition of an rectangular area or a right rectangular prism (with a rectangular base) also called a cuboid, or informally a rectangular box.
+ *
+ * @field circular: definition of an area of circular shape or a right circular cylinder.
+ *
+ * @field polygonal: definition of an area of polygonal shape or a right prism.
+ *
+ * @field elliptical: definition of an area of elliptical shape or a right elliptical cylinder.
+ *
+ * @field radial: definition of a radial shape.
+ *
+ * @field radialList: definition of list of radial shapes.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+ */
Shape::= CHOICE {
rectangular RectangularShape,
- circular CircularShape,
+ circular CircularShape,
polygonal PolygonalShape,
elliptical EllipticalShape,
radial RadialShape,
@@ -1997,47 +6820,162 @@ Shape::= CHOICE {
...
}
+/**
+ * This DF represents the speed and associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field speedValue: the speed value.
+ *
+ * @field speedConfidence: the confidence value of the speed value.
+ *
+ * @category: Kinematic information
+ * @revision: V1.3.1
+ */
Speed ::= SEQUENCE {
speedValue SpeedValue,
speedConfidence SpeedConfidence
}
+/**
+ * This DF provides the indication of change in stability.
+ *
+ * It shall include the following components:
+ *
+ * @field lossProbability: the probability of stability loss.
+ *
+ * @field actionDeltaTime: the period over which the the probability of stability loss is estimated.
+ *
+ * @category: Kinematic information
+ * @revision: V2.1.1
+ */
StabilityChangeIndication ::= SEQUENCE {
lossProbability StabilityLossProbability,
actionDeltaTime DeltaTimeTenthOfSecond,
...
}
+/**
+ * This DF represents the steering wheel angle of the vehicle at certain point in time.
+ *
+ * It shall include the following components:
+ *
+ * @field steeringWheelAngleValue: steering wheel angle value.
+ *
+ * @field steeringWheelAngleConfidence: confidence value of the steering wheel angle value.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
SteeringWheelAngle ::= SEQUENCE {
steeringWheelAngleValue SteeringWheelAngleValue,
steeringWheelAngleConfidence SteeringWheelAngleConfidence
}
+/**
+ * This DF represents one or more paths using @ref Path.
+ *
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1. Is is now based on Path and not on PathHistory
+ */
Traces ::= SEQUENCE SIZE(1..7) OF Path
+/**
+ * This DF represents one or more paths using @ref PathExtended.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.2.1
+ */
+TracesExtended ::= SEQUENCE SIZE(1..7) OF PathExtended
+
+/**
+ * Ths DF represents the a position on a traffic island between two lanes.
+ *
+ * It shall include the following components:
+ *
+ * @field oneSide: represents one lane.
+ *
+ * @field otherSide: represents the other lane.
+ *
+ * @category: Road Topology information
+ * @revision: Created in V2.1.1
+ */
TrafficIslandPosition ::= SEQUENCE {
oneSide LanePositionAndType,
otherSide LanePositionAndType,
...
}
-TrailerData ::= SEQUENCE {
+/**
+ * This DF provides detailed information about an attached trailer.
+ *
+ * It shall include the following components:
+ *
+ * @field refPointId: identifier of the reference point of the trailer.
+ *
+ * @field hitchPointOffset: optional position of the hitch point in negative x-direction (according to ISO 8855) from the
+ * vehicle Reference Point.
+ *
+ * @field frontOverhang: optional length of the trailer overhang in the positive x direction (according to ISO 8855) from the
+ * trailer Reference Point indicated by the refPointID. The value defaults to 0 in case the trailer
+ * is not overhanging to the front with respect to the trailer reference point.
+ *
+ * @field rearOverhang: optional length of the trailer overhang in the negative x direction (according to ISO 8855) from the
+ * trailer Reference Point indicated by the refPointID.
+ *
+ * @field trailerWidth: optional width of the trailer.
+ *
+ * @field hitchAngle: optional Value and confidence value of the angle between the trailer orientation (corresponding to the x
+ * direction of the ISO 8855 [21] coordinate system centered on the trailer) and the direction of
+ * the segment having as end points the reference point of the trailer and the reference point of
+ * the pulling vehicle, which can be another trailer or a vehicle looking on the horizontal plane
+ * xy, described in the local Cartesian coordinate system of the trailer. The
+ * angle is measured with negative values considering the trailer orientation turning clockwise
+ * starting from the segment direction. The angle value accuracy is provided with the
+ * confidence level of 95 %.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
+TrailerData ::= SEQUENCE {
refPointId Identifier1B,
- hitchPointOffset StandardLength1B,
- frontOverhang StandardLength1B OPTIONAL,
- rearOverhang StandardLength1B OPTIONAL,
+ hitchPointOffset StandardLength1B,
+ frontOverhang StandardLength1B OPTIONAL,
+ rearOverhang StandardLength1B OPTIONAL,
trailerWidth VehicleWidth OPTIONAL,
hitchAngle CartesianAngle,
...
}
+/**
+ * This DF provides the trajectory interception indication of ego-VRU ITS-S with another ITS-Ss.
+ *
+ * It shall include the following components:
+ *
+ * @field subjectStation: indicates the subject station.
+ *
+ * @field trajectoryInterceptionProbability: indicates the propbability of the interception of the subject station trajectory
+ * with the trajectory of the station indicated in the component subjectStation.
+ *
+ * @field trajectoryInterceptionConfidence: indicates the confidence of interception of the subject station trajectory
+ * with the trajectory of the station indicated in the component subjectStation.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
TrajectoryInterceptionIndication ::= SEQUENCE {
- subjectStation StationId OPTIONAL,
+ subjectStation StationId OPTIONAL,
trajectoryInterceptionProbability TrajectoryInterceptionProbability,
trajectoryInterceptionConfidence TrajectoryInterceptionConfidence OPTIONAL,
- ...
+ ...
}
+/**
+ * This DF together with its sub DFs Ext1, Ext2 and the DE Ext3 provides the custom (i.e. not ASN.1 standard) definition of an integer with variable lenght, that can be used for example to encode the ITS-AID.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
VarLengthNumber::=CHOICE{
content [0] INTEGER(0..127), -- one octet length
extension [1] Ext1
@@ -2052,50 +6990,170 @@ Ext2::=CHOICE{
}
Ext3::= INTEGER(2113664..270549119,...) -- four and more octets length
+/**
+ * This DF indicates the vehicle acceleration at vertical direction and the associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field verticalAccelerationValue: vertical acceleration value at a point in time.
+ *
+ * @field verticalAccelerationConfidence: confidence value of the vertical acceleration value with a predefined confidence level.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead.
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
VerticalAcceleration ::= SEQUENCE {
verticalAccelerationValue VerticalAccelerationValue,
verticalAccelerationConfidence AccelerationConfidence
}
+/**
+ * This DF provides information related to the identification of a vehicle.
+ *
+ * It shall include the following components:
+ *
+ * @field wMInumber: World Manufacturer Identifier (WMI) code.
+ *
+ * @field vDS: Vehicle Descriptor Section (VDS).
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
VehicleIdentification ::= SEQUENCE {
wMInumber WMInumber OPTIONAL,
vDS VDS OPTIONAL,
...
}
+/**
+ * This DF represents the length of vehicle and accuracy indication information.
+ *
+ * It shall include the following components:
+ *
+ * @field vehicleLengthValue: length of vehicle.
+ *
+ * @field vehicleLengthConfidenceIndication: indication of the length value confidence.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref VehicleLengthV2 instead.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
VehicleLength ::= SEQUENCE {
vehicleLengthValue VehicleLengthValue,
vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication
}
+/**
+ * This DF represents the length of vehicle and accuracy indication information.
+ *
+ * It shall include the following components:
+ *
+ * @field vehicleLengthValue: length of vehicle.
+ *
+ * @field trailerPresenceInformation: information about the trailer presence.
+ *
+ * @category: Vehicle information
+ * @revision: created in V2.1.1 based on @ref VehicleLength but using @ref TrailerPresenceInformation.
+ */
VehicleLengthV2 ::= SEQUENCE {
vehicleLengthValue VehicleLengthValue,
trailerPresenceInformation TrailerPresenceInformation
}
+/**
+ * This DF represents a velocity vector with associated confidence value.
+ *
+ * The following options are available:
+ *
+ * @field polarVelocity: the representation of the velocity vector in a polar or cylindrical coordinate system.
+ *
+ * @field cartesianVelocity: the representation of the velocity vector in a cartesian coordinate system.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
Velocity3dWithConfidence::= CHOICE{
- polarVelocity VelocityPolarWithZ,
+ polarVelocity VelocityPolarWithZ,
cartesianVelocity VelocityCartesian
}
+/**
+ * This DF represents a velocity vector in a cartesian coordinate system.
+
+ * It shall include the following components:
+ *
+ * @field xVelocity: the x component of the velocity vector with the associated confidence value.
+ *
+ * @field yVelocity: the y component of the velocity vector with the associated confidence value.
+ *
+ * @field zVelocity: the optional z component of the velocity vector with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
VelocityCartesian::= SEQUENCE {
xVelocity VelocityComponent,
yVelocity VelocityComponent,
zVelocity VelocityComponent OPTIONAL
}
+/**
+ * This DF represents a component of the velocity vector and the associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the value of the component.
+ *
+ * @field confidence: the confidence value of the value.
+ *
+ * @category: Kinematic information
+ * @revision: V2.1.1
+ */
VelocityComponent ::= SEQUENCE {
value VelocityComponentValue,
confidence SpeedConfidence
}
+/**
+ * This DF represents a velocity vector in a polar or cylindrical coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field velocityMagnitude: magnitude of the velocity vector on the reference plane, with the associated confidence value.
+ *
+ * @field velocityDirection: polar angle of the velocity vector on the reference plane, with the associated confidence value.
+ *
+ * @field zVelocity: the optional z component of the velocity vector along the reference axis of the cylindrical coordinate system, with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
VelocityPolarWithZ::= SEQUENCE {
- velocityMagnitude Speed,
+ velocityMagnitude Speed,
velocityDirection CartesianAngle,
zVelocity VelocityComponent OPTIONAL
}
-VruClusterInformation ::= SEQUENCE {
+/**
+ * This DF provides information about a VRU cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterId: optional identifier of a VRU cluster.
+ *
+ * @field clusterBoundingBoxShape: optionally indicates the shape of the cluster bounding box, per default inside an East-North-Up coordinate system
+ * centered around a reference point defined outside of the context of this DF.
+ *
+ * @field clusterCardinalitySize: indicates an estimation of the number of VRUs in the group, e.g. the known members in the cluster + 1 (for the cluster leader) .
+ *
+ * @field clusterProfiles: optionally identifies all the VRU profile types that are estimated to be within the cluster.
+ * if this component is absent it means that the information is unavailable.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1, description revised in V2.2.1
+*/
+VruClusterInformation ::= SEQUENCE {
clusterId Identifier1B OPTIONAL,
clusterBoundingBoxShape Shape (WITH COMPONENTS{..., elliptical ABSENT, radial ABSENT, radialShapes ABSENT}) OPTIONAL,
clusterCardinalitySize CardinalNumber1B,
@@ -2103,12 +7161,40 @@ VruClusterInformation ::= SEQUENCE {
...
}
+/**
+ * This DF represents the status of the exterior light switches of a VRU.
+ * This DF is an extension of the vehicular DE @ref ExteriorLights.
+ *
+ * It shall include the following components:
+ *
+ * @field vehicular: represents the status of the exterior light switches of a road vehicle.
+ *
+ * @field vruSpecific: represents the status of the exterior light switches of a VRU.
+ *
+ * @category: VRU information
+ * @revision: created in V2.1.1
+ */
VruExteriorLights ::= SEQUENCE {
- vehicular ExteriorLights,
+ vehicular ExteriorLights,
vruSpecific VruSpecificExteriorLights,
...
}
+/**
+ * This DF indicates the profile of a VRU including sub-profile information
+ * It identifies four options corresponding to the four types of VRU profiles specified in ETSI TS 103 300-2 [18]:
+ *
+ * @field pedestrian: VRU Profile 1 - Pedestrian.
+ *
+ * @field bicyclistAndLightVruVehicle: VRU Profile 2 - Bicyclist.
+ *
+ * @field motorcyclist: VRU Profile 3 - Motorcyclist.
+ *
+ * @field animal: VRU Profile 4 - Animal.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
VruProfileAndSubprofile ::= CHOICE {
pedestrian VruSubProfilePedestrian,
bicyclistAndLightVruVehicle VruSubProfileBicyclist,
@@ -2117,17 +7203,71 @@ VruProfileAndSubprofile ::= CHOICE {
...
}
+/**
+ * This DF represents an angular component along with a confidence value in the WGS84 coordinate system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the angle value, which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the confidence value associated to the angle value.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
Wgs84Angle ::= SEQUENCE {
value Wgs84AngleValue,
confidence Wgs84AngleConfidence
}
+/**
+ * This DF represents a yaw rate of vehicle at a point in time.
+ *
+ * It shall include the following components:
+ *
+ * @field yawRateValue: yaw rate value at a point in time.
+ *
+ * @field yawRateConfidence: confidence value associated to the yaw rate value.
+ *
+ * @category: Vehicle Information
+ * @revision: V1.3.1
+ */
YawRate::= SEQUENCE {
yawRateValue YawRateValue,
yawRateConfidence YawRateConfidence
}
------------------------------------------
+/**
+ * ## References:
+ * 1. ETSI TS 103 900: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 2: Specification of Cooperative Awareness Basic Service; Release 2".
+ * 2. ETSI TS 103 831: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 3: Specifications of Decentralized Environmental Notification Basic Service"; Release 2.
+ * 3. [European Agreement (Applicable as from 1 January 2011): "Concerning the International Carriage of Dangerous Goods by Road"](http://www.unece.org/trans/danger/publi/adr/adr2011/11ContentsE.html).
+ * 4. [United Nations: "Recommendations on the Transport of Dangerous Goods - Model Regulations", Twelfth revised edition](http://www.unece.org/trans/danger/publi/unrec/12_e.html).
+ * 5. ETSI TS 101 539-1: "Intelligent Transport Systems (ITS); V2X Applications; Part 1: Road Hazard Signalling (RHS) application requirements specification".
+ * 6. ISO 3779 (2011-07): "Road vehicles - Vehicle identification number (VIN) Content and structure".
+ * 7. VDV recommendation 420 (1992): "Technical Requirements for Automatic Vehicle Location / Control Systems - Radio Data Transmission (BON Version) with Supplement 1 and Supplement 2".
+ * 8. ISO 1176:1990: "Road vehicles - Masses - Vocabulary and codes".
+ * 9. ETSI TS 103 916 Intelligent Transport Systems (ITS); Parking Availability Service Specification; Release 2
+ * 10. void
+ * 11. void
+ * 12. ETSI TS 103 300-3: "Intelligent Transport Systems (ITS); Vulnerable Road Users (VRU) awareness; Part 3: Specification of VRU awareness basic service; Release 2"
+ * 13. ETSI TS 103 724: "Intelligent Transport Systems (ITS); Facilities layer function; Interference Management Zone Message (IMZM); Release 2"
+ * 14. ETSI TS 102 792: "Intelligent Transport Systems (ITS); Mitigation techniques to avoid interference between European CEN Dedicated Short Range Communication (CEN DSRC) equipment and Intelligent Transport Systems (ITS) operating in the 5 GHz frequency range".
+ * 15. ETSI TS 103 301: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Facilities layer protocols and communication requirements for infrastructure services; Release 2".
+ * 16. UNECE/TRANS/WP.29/78/Rev.4: "Consolidated Resolution on the Construction of Vehicles (R.E.3)".
+ * 17. ETSI EN 302 890-1: "Intelligent Transport Systems (ITS); Facilities layer function; Part 1: Services Announcement (SA) specification".
+ * 18. ETSI TS 103 300-2 "Intelligent Transport System (ITS); Vulnerable Road Users (VRU) awareness; Part 2: Functional Architecture and Requirements definition; Release 2"
+ * 19. ETSI TS 103 175: "Intelligent Transport Systems (ITS); Cross Layer DCC Management Entity for operation in the ITS G5A and ITS G5B medium"
+ * 20. ETSI EN 302 571: "Intelligent Transport Systems (ITS); Radiocommunications equipment operating in the 5 855 MHz to 5 925 MHz frequency band; Harmonised Standard covering the essential requirements of article 3.2 of Directive 2014/53/EU"
+ * 21. ISO 8855: "Road vehicles - Vehicle dynamics and road-holding ability - Vocabulary".
+ * 22. ISO 3833: "Road vehicles - Types - Terms and definitions".
+ * 23. ISO 14816:2015 + Amd1:2019: " Road transport and traffic telematics � Automatic vehicle and equipment identification � Numbering and data structure"
+ * 24. ISO 17573-3: "Electronic fee collection � System architecture for vehicle-related tolling � Part 3: Data dictionary"
+ * 25. ISO 3166-1: "Codes for the representation of names of countries and their subdivisions � Part 1: Country code"
+*/
+
END
diff --git a/epan/dissectors/asn1/its/ETSI-ITS-CDDv1.asn b/epan/dissectors/asn1/its/ETSI-ITS-CDDv1.asn
new file mode 100644
index 00000000..d6f5faa3
--- /dev/null
+++ b/epan/dissectors/asn1/its/ETSI-ITS-CDDv1.asn
@@ -0,0 +1,6468 @@
+--! @options: no-fields-header
+
+ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+------------------------------------------
+-- Specification of CDD Data Elements:
+------------------------------------------
+
+
+/**
+ * This DE indicates a change of acceleration.
+ *
+ * The value shall be set to:
+ * - 0 - `accelerate` - if the magnitude of the horizontal velocity vector increases.
+ * - 1 - `decelerate` - if the magnitude of the horizontal velocity vector decreases.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+AccelerationChange::= ENUMERATED {
+ accelerate (0),
+ decelerate (1)
+}
+
+/**
+ * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2,
+ * - `102` if the confidence value is unavailable.
+ *
+ * The value 0 shall not be used.
+ *
+ * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the acceleration value may be valid and used by the application.
+ *
+ * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application.
+ *
+ * @unit 0,1 m/s^2
+ * @category: Kinematic information
+ * @revision: Description revised in V2.1.1
+ */
+AccelerationConfidence ::= INTEGER {
+ outOfRange (101),
+ unavailable (102)
+} (0..102)
+
+/**
+ * This DE indicates the current controlling mechanism for longitudinal movement of the vehicle.
+ * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle
+ * acceleration control system is engaged or not. Currently, this DE includes the information of the
+ * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise
+ * control system, cruise control system and speed limiter system.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `brakePedalEngaged` - Driver is stepping on the brake pedal,
+ * - 1 - `gasPedalEngaged` - Driver is stepping on the gas pedal,
+ * - 2 - `emergencyBrakeEngaged` - emergency brake system is engaged,
+ * - 3 - `collisionWarningEngaged`- collision warning system is engaged,
+ * - 4 - `accEngaged` - ACC is engaged,
+ * - 5 - `cruiseControlEngaged` - cruise control is engaged,
+ * - 6 - `speedLimiterEngaged` - speed limiter is engaged.
+ *
+ * Otherwise (for example when the corresponding system is not available due to non equipped system
+ * or information is unavailable), the corresponding bit shall be set to 0.
+ *
+ * @note: The system engagement condition is OEM specific and therefore out of scope of the present document.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+AccelerationControl ::= BIT STRING {
+ brakePedalEngaged (0),
+ gasPedalEngaged (1),
+ emergencyBrakeEngaged (2),
+ collisionWarningEngaged (3),
+ accEngaged (4),
+ cruiseControlEngaged (5),
+ speedLimiterEngaged (6)
+} (SIZE(7))
+
+/**
+ * This DE represents the magnitude of the acceleration vector in a defined coordinate system.
+ *
+ * The value shall be set to:
+ * - `0` to indicate no acceleration,
+ * - `n` (`n > 0` and `n < 160`) to indicate acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @unit 0,1 m/s^2
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+AccelerationMagnitudeValue ::= INTEGER {
+ positiveOutOfRange (160),
+ unavailable (161)
+} (0.. 161)
+
+/**
+ * This DE represents the value of an acceleration component in a defined coordinate system.
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate negative acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `n` (`n > 0` and `n < 160`) to indicate positive acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @note: the formula for values > -160 and <160 results in rounding up to the next value. Zero acceleration is indicated using n=0.
+ * @unit 0,1 m/s^2
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+AccelerationValue ::= INTEGER {
+ negativeOutOfRange (-160),
+ positiveOutOfRange (160),
+ unavailable (161)
+} (-160 .. 161)
+
+
+/**
+ * This DE indicates an access technology.
+ *
+ * The value shall be set to:
+ * - `0`: in case of any access technology class,
+ * - `1`: in case of ITS-G5 access technology class,
+ * - `2`: in case of LTE-V2X access technology class,
+ * - `3`: in case of NR-V2X access technology class.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
+AccessTechnologyClass ::= ENUMERATED {
+ any (0),
+ itsg5Class (1),
+ ltev2xClass (2),
+ nrv2xClass (3),
+ ...
+}
+
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `accident`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case the information on the sub cause of the accident is unavailable,
+ * - 1 - `multiVehicleAccident` - in case more than two vehicles are involved in accident,
+ * - 2 - `heavyAccident` - in case the airbag of the vehicle involved in the accident is triggered,
+ * the accident requires important rescue and/or recovery work,
+ * - 3 - `accidentInvolvingLorry` - in case the accident involves a lorry,
+ * - 4 - `accidentInvolvingBus` - in case the accident involves a bus,
+ * - 5 - `accidentInvolvingHazardousMaterials`- in case the accident involves hazardous material,
+ * - 6 - `accidentOnOppositeLane` - in case the accident happens on opposite lanes,
+ * - 7 - `unsecuredAccident` - in case the accident is not secured,
+ * - 8 - `assistanceRequested` - in case rescue and assistance are requested,
+ * - 9-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+AccidentSubCauseCode ::= INTEGER {
+ unavailable (0),
+ multiVehicleAccident (1),
+ heavyAccident (2),
+ accidentInvolvingLorry (3),
+ accidentInvolvingBus (4),
+ accidentInvolvingHazardousMaterials (5),
+ accidentOnOppositeLane (6),
+ unsecuredAccident (7),
+ assistanceRequested (8)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the cause of the low road adhesion is unavailable,
+ * - 1 - `heavyFrostOnRoad`- in case the low road adhesion is due to heavy frost on the road,
+ * - 2 - `fuelOnRoad` - in case the low road adhesion is due to fuel on the road,
+ * - 3 - `mudOnRoad` - in case the low road adhesion is due to mud on the road,
+ * - 4 - `snowOnRoad` - in case the low road adhesion is due to snow on the road,
+ * - 5 - `iceOnRoad` - in case the low road adhesion is due to ice on the road,
+ * - 6 - `blackIceOnRoad` - in case the low road adhesion is due to black ice on the road,
+ * - 7 - `oilOnRoad` - in case the low road adhesion is due to oil on the road,
+ * - 8 - `looseChippings` - in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard,
+ * - 9 - `instantBlackIce` - in case the low road adhesion is due to instant black ice on the road surface,
+ * - 10 - `roadsSalted` - when the low road adhesion is due to salted road,
+ * - 11-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {
+ unavailable (0),
+ heavyFrostOnRoad (1),
+ fuelOnRoad (2),
+ mudOnRoad (3),
+ snowOnRoad (4),
+ iceOnRoad (5),
+ blackIceOnRoad (6),
+ oilOnRoad (7),
+ looseChippings (8),
+ instantBlackIce (9),
+ roadsSalted (10)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of extreme weather condition is unavailable,
+ * - 1 - `strongWinds` - in case the type of extreme weather condition is strong wind,
+ * - 2 - `damagingHail`- in case the type of extreme weather condition is damaging hail,
+ * - 3 - `hurricane` - in case the type of extreme weather condition is hurricane,
+ * - 4 - `thunderstorm`- in case the type of extreme weather condition is thunderstorm,
+ * - 5 - `tornado` - in case the type of extreme weather condition is tornado,
+ * - 6 - `blizzard` - in case the type of extreme weather condition is blizzard.
+ * - 7-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {
+ unavailable (0),
+ strongWinds (1),
+ damagingHail (2),
+ hurricane (3),
+ thunderstorm (4),
+ tornado (5),
+ blizzard (6)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of precipitation is unavailable,
+ * - 1 - `heavyRain` - in case the type of precipitation is heavy rain,
+ * - 2 - `heavySnowfall` - in case the type of precipitation is heavy snow fall,
+ * - 3 - `softHail` - in case the type of precipitation is soft hail.
+ * - 4-255 - are reserved for future usage
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {
+ unavailable (0),
+ heavyRain (1),
+ heavySnowfall (2),
+ softHail (3)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the cause of low visibility is unavailable,
+ * - 1 - `fog` - in case the cause of low visibility is fog,
+ * - 2 - `smoke` - in case the cause of low visibility is smoke,
+ * - 3 - `heavySnowfall` - in case the cause of low visibility is heavy snow fall,
+ * - 4 - `heavyRain` - in case the cause of low visibility is heavy rain,
+ * - 5 - `heavyHail` - in case the cause of low visibility is heavy hail,
+ * - 6 - `lowSunGlare` - in case the cause of low visibility is sun glare,
+ * - 7 - `sandstorms` - in case the cause of low visibility is sand storm,
+ * - 8 - `swarmsOfInsects`- in case the cause of low visibility is swarm of insects.
+ * - 9-255 - are reserved for future usage
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {
+ unavailable (0),
+ fog (1),
+ smoke (2),
+ heavySnowfall (3),
+ heavyRain (4),
+ heavyHail (5),
+ lowSunGlare (6),
+ sandstorms (7),
+ swarmsOfInsects (8)
+} (0..255)
+
+/**
+ * This DE represents the air humidity in tenths of percent.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1001`) indicates that the applicable value is equal to or less than n x 0,1 percent and greater than (n-1) x 0,1 percent.
+ * - `1001` indicates that the air humidity is unavailable.
+ *
+ * @category: Basic information
+ * @unit: 0,1 %
+ * @revision: created in V2.1.1
+ */
+AirHumidity ::= INTEGER {
+ oneHundredPercent (1000),
+ unavailable (1001)
+} (1..1001)
+
+/**
+ * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre,
+ * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre,
+ * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre,
+ * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre,
+ * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre,
+ * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre,
+ * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre,
+ * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre,
+ * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres,
+ * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres,
+ * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres,
+ * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres,
+ * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres,
+ * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres,
+ * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres,
+ * - 15 - `unavailable` - if the confidence value is unavailable.
+ *
+ * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused
+ * by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the altitude value may be valid and used by the application.
+ *
+ * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the
+ * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application.
+ *
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
+AltitudeConfidence ::= ENUMERATED {
+ alt-000-01 (0),
+ alt-000-02 (1),
+ alt-000-05 (2),
+ alt-000-10 (3),
+ alt-000-20 (4),
+ alt-000-50 (5),
+ alt-001-00 (6),
+ alt-002-00 (7),
+ alt-005-00 (8),
+ alt-010-00 (9),
+ alt-020-00 (10),
+ alt-050-00 (11),
+ alt-100-00 (12),
+ alt-200-00 (13),
+ outOfRange (14),
+ unavailable (15)
+}
+
+/**
+ * This DE represents the altitude value in a WGS84 coordinate system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `-100 000` if the altitude is equal to or less than -1 000 m,
+ * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre,
+ * - `800 000` if the altitude greater than 7 999,99 m,
+ * - `800 001` if the information is not available.
+ *
+ * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary.
+ * @unit: 0,01 metre
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed)
+ */
+AltitudeValue ::= INTEGER {
+ negativeOutOfRange (-100000),
+ postiveOutOfRange (800000),
+ unavailable (800001)
+} (-100000..800001)
+
+/**
+ * This DE indicates the angle confidence value which represents the estimated absolute accuracy of an angle value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the accuracy is equal to or less than n * 0,1 degrees and greater than (n-1) x * 0,1 degrees,
+ * - `126` if the accuracy is out of range, i.e. greater than 12,5 degrees,
+ * - `127` if the accuracy information is not available.
+ *
+ * @unit: 0,1 degrees
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+AngleConfidence ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (1..127)
+
+/**
+ * This DE indicates the angular speed confidence value which represents the estimated absolute accuracy of an angular speed value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ * For correlation computation, maximum interval levels can be assumed.
+ *
+ * The value shall be set to:
+ * - 0 - `degSec-01` - if the accuracy is equal to or less than 1 degree/second,
+ * - 1 - `degSec-02` - if the accuracy is equal to or less than 2 degrees/second and greater than 1 degree/second,
+ * - 2 - `degSec-05` - if the accuracy is equal to or less than 5 degrees/second and greater than 2 degrees/second,
+ * - 3 - `degSec-10` - if the accuracy is equal to or less than 10 degrees/second and greater than 5 degrees/second,
+ * - 4 - `degSec-20` - if the accuracy is equal to or less than 20 degrees/second and greater than 10 degrees/second,
+ * - 5 - `degSec-50` - if the accuracy is equal to or less than 50 degrees/second and greater than 20 degrees/second,
+ * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second,
+ * - 7 - `unavailable` - if the accuracy information is unavailable.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+AngularSpeedConfidence ::= ENUMERATED {
+ degSec-01 (0),
+ degSec-02 (1),
+ degSec-05 (2),
+ degSec-10 (3),
+ degSec-20 (4),
+ degSec-50 (5),
+ outOfRange (6),
+ unavailable (7)
+}
+
+/**
+ * This DE indicates the angular acceleration confidence value which represents the estimated accuracy of an angular acceleration value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ * For correlation computation, maximum interval levels shall be assumed.
+ *
+ * The value shall be set to:
+ * - 0 - `degSecSquared-01` - if the accuracy is equal to or less than 1 degree/second^2,
+ * - 1 - `degSecSquared-02` - if the accuracy is equal to or less than 2 degrees/second^2 and greater than 1 degree/second^2,
+ * - 2 - `degSecSquared-05` - if the accuracy is equal to or less than 5 degrees/second^2 and greater than 1 degree/second^2,
+ * - 3 - `degSecSquared-10` - if the accuracy is equal to or less than 10 degrees/second^2 and greater than 5 degrees/second^2,
+ * - 4 - `degSecSquared-20` - if the accuracy is equal to or less than 20 degrees/second^2 and greater than 10 degrees/second^2,
+ * - 5 - `degSecSquared-50` - if the accuracy is equal to or less than 50 degrees/second^2 and greater than 20 degrees/second^2,
+ * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second^2,
+ * - 7 - `unavailable` - if the accuracy information is unavailable.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+AngularAccelerationConfidence ::= ENUMERATED {
+ degSecSquared-01 (0),
+ degSecSquared-02 (1),
+ degSecSquared-05 (2),
+ degSecSquared-10 (3),
+ degSecSquared-20 (4),
+ degSecSquared-50 (5),
+ outOfRange (6),
+ unavailable (7)
+}
+
+/**
+ * This DE indicates the number of axles of a passing train.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 2` and `n < 1001`) indicates that the train has n x axles,
+ * - `1001`indicates that the number of axles is out of range,
+ * - `1002` the information is unavailable.
+ *
+ *
+ * @unit: Number of axles
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
+AxlesCount ::= INTEGER{
+ outOfRange (1001),
+ unavailable (1002)
+} (2..1002)
+
+/**
+ * This DE represents the measured uncompensated atmospheric pressure.
+ *
+ * The value shall be set to:
+ * - `2999` indicates that the applicable value is less than 29990 Pa,
+ * - `n` (`n > 2999` and `n <= 12000`) indicates that the applicable value is equal to or less than n x 10 Pa and greater than (n-1) x 10 Pa,
+ * - `12001` indicates that the values is greater than 120000 Pa,
+ * - `12002` indicates that the information is not available.
+ *
+ * @category: Basic information
+ * @unit: 10 Pascal
+ * @revision: Created in V2.1.1
+*/
+BarometricPressure ::= INTEGER{
+ outOfRangelower (2999),
+ outOfRangeUpper (12001),
+ unavailable (12002)
+} (2999..12002)
+
+
+/**
+ * This DE indicates the cardinal number of bogies of a train.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 1` and `n < 100`) indicates that the train has n x bogies,
+ * - `100`indicates that the number of bogies is out of range,
+ * - `101` the information is unavailable.
+ *
+ * @unit: Number of bogies
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
+BogiesCount ::= INTEGER{
+ outOfRange (100),
+ unavailable (101)
+} (2..101)
+
+/**
+ * The DE represents a cardinal number that counts the size of a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CardinalNumber1B ::= INTEGER(0..255)
+
+/**
+ * The DE represents a cardinal number that counts the size of a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CardinalNumber3b ::= INTEGER(1..8)
+
+/**
+ * This DE represents an angle value described in a local Cartesian coordinate system, per default counted positive in
+ * a right-hand local coordinate system from the abscissa.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n < 3600`) if the angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees,
+ * - `36001` if the accuracy information is not available.
+ *
+ * The value 3600 shall not be used.
+ *
+ * @unit 0,1 degrees
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CartesianAngleValue ::= INTEGER {
+ valueNotUsed (3600),
+ unavailable (3601)
+} (0..3601)
+
+/**
+ * This DE represents an angular acceleration value described in a local Cartesian coordinate system, per default counted positive in
+ * a right-hand local coordinate system from the abscissa.
+ *
+ * The value shall be set to:
+ * - `-255` if the acceleration is equal to or less than -255 degrees/s^2,
+ * - `n` (`n > -255` and `n < 255`) if the acceleration is equal to or less than n x 1 degree/s^2,
+ and greater than `(n-1)` x 0,01 degree/s^2,
+ * - `255` if the acceleration is greater than 254 degrees/s^2,
+ * - `256` if the information is unavailable.
+ *
+ * @unit: degree/s^2 (degrees per second squared)
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+CartesianAngularAccelerationComponentValue ::= INTEGER {
+ negativeOutOfRange (-255),
+ positiveOutOfRange (255),
+ unavailable (256)
+} (-255..256)
+
+/**
+ * This DE represents an angular velocity component described in a local Cartesian coordinate system, per default counted positive in
+ * a right-hand local coordinate system from the abscissa.
+ *
+ * The value shall be set to:
+ * - `-255` if the velocity is equal to or less than -255 degrees/s,
+ * - `n` (`n > -255` and `n < 255`) if the velocity is equal to or less than n x 1 degree/s, and greater than (n-1) x 1 degree/s,
+ * - `255` if the velocity is greater than 254 degrees/s,
+ * - `256` if the information is unavailable.
+ *
+ * @unit: degree/s
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+CartesianAngularVelocityComponentValue ::= INTEGER {
+ negativeOutofRange (-255),
+ positiveOutOfRange (255),
+ unavailable (256)
+} (-255..256)
+
+/**
+ *The DE represents the value of the cause code of an event.
+ *
+ * The value shall be set to:
+ * - 0 - reserved for future use,
+ * - 1 - `trafficCondition` - in case the type of event is an abnormal traffic condition,
+ * - 2 - `accident` - in case the type of event is a road accident,
+ * - 3 - `roadworks` - in case the type of event is roadwork,
+ * - 4 - reserved for future usage,
+ * - 5 - `impassability` - in case the type of event is unmanaged road blocking, referring to any
+ * blocking of a road, partial or total, which has not been adequately
+ * secured and signposted,
+ * - 6 - `adverseWeatherCondition-Adhesion` - in case the type of event is low adhesion,
+ * - 7 - `aquaplaning` - danger of aquaplaning on the road,
+ * - 8 - reserved for future usage,
+ * - 9 - `hazardousLocation-SurfaceCondition` - in case the type of event is abnormal road surface condition,
+ * - 10 - `hazardousLocation-ObstacleOnTheRoad` - in case the type of event is obstacle on the road,
+ * - 11 - `hazardousLocation-AnimalOnTheRoad` - in case the type of event is animal on the road,
+ * - 12 - `humanPresenceOnTheRoad` - in case the type of event is human presence on the road,
+ * - 13 - reserved for future usage,
+ * - 14 - `wrongWayDriving` - in case the type of the event is vehicle driving in wrong way,
+ * - 15 - `rescueAndRecoveryWorkInProgress` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress,
+ * - 16 - reserved for future usage,
+ * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition`- in case the type of event is extreme weather condition,
+ * - 18 - `adverseWeatherCondition-Visibility` - in case the type of event is low visibility,
+ * - 19 - `adverseWeatherCondition-Precipitation` - in case the type of event is precipitation,
+ * - 20 - `violence` - in case the the type of event is human violence on or near the road,
+ * - 21-25 - reserved for future usage,
+ * - 26 - `slowVehicle` - in case the type of event is slow vehicle driving on the road,
+ * - 27 - `dangerousEndOfQueue` - in case the type of event is dangerous end of vehicle queue,
+ * - 28-90 - are reserved for future usage,
+ * - 91 - `vehicleBreakdown` - in case the type of event is break down vehicle on the road,
+ * - 92 - `postCrash` - in case the type of event is a detected crash,
+ * - 93 - `humanProblem` - in case the type of event is human health problem in vehicles involved in traffic,
+ * - 94 - `stationaryVehicle` - in case the type of event is stationary vehicle,
+ * - 95 - `emergencyVehicleApproaching` - in case the type of event is approaching vehicle operating emergency mission,
+ * - 96 - `hazardousLocation-DangerousCurve` - in case the type of event is dangerous curve,
+ * - 97 - `collisionRisk` - in case the type of event is a collision risk,
+ * - 98 - `signalViolation` - in case the type of event is signal violation,
+ * - 99 - `dangerousSituation` - in case the type of event is dangerous situation in which autonomous safety system in vehicle
+ * is activated,
+ * - 100 - `railwayLevelCrossing` - in case the type of event is a railway level crossing.
+ * - 101-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+CauseCodeType ::= INTEGER {
+ trafficCondition (1),
+ accident (2),
+ roadworks (3),
+ impassability (5),
+ adverseWeatherCondition-Adhesion (6),
+ aquaplaning (7),
+ hazardousLocation-SurfaceCondition (9),
+ hazardousLocation-ObstacleOnTheRoad (10),
+ hazardousLocation-AnimalOnTheRoad (11),
+ humanPresenceOnTheRoad (12),
+ wrongWayDriving (14),
+ rescueAndRecoveryWorkInProgress (15),
+ adverseWeatherCondition-ExtremeWeatherCondition (17),
+ adverseWeatherCondition-Visibility (18),
+ adverseWeatherCondition-Precipitation (19),
+ violence (20),
+ slowVehicle (26),
+ dangerousEndOfQueue (27),
+ vehicleBreakdown (91),
+ postCrash (92),
+ humanProblem (93),
+ stationaryVehicle (94),
+ emergencyVehicleApproaching (95),
+ hazardousLocation-DangerousCurve (96),
+ collisionRisk (97),
+ signalViolation (98),
+ dangerousSituation (99),
+ railwayLevelCrossing (100)
+} (0..255)
+
+/**
+ * This DF represents the value of a cartesian coordinate with a range of -30,94 metres to +10,00 metres.
+ *
+ * The value shall be set to:
+ * - `3094` if the longitudinal offset is out of range, i.e. less than or equal to -30,94 metres,
+ * - `n` (`n > -3 094` and `n < 1 001`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `1001` if the longitudinal offset is out of range, i.e. greater than 10 metres.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CartesianCoordinateSmall::= INTEGER {
+ negativeOutOfRange (-3094),
+ positiveOutOfRange (1001)
+} (-3094..1001)
+
+/**
+ * This DF represents the value of a cartesian coordinate with a range of -327,68 metres to +327,66 metres.
+ *
+ * The value shall be set to:
+ * - `-32 768` if the longitudinal offset is out of range, i.e. less than or equal to -327,68 metres,
+ * - `n` (`n > -32 768` and `n < 32 767`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `32 767` if the longitudinal offset is out of range, i.e. greater than + 327,66 metres.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CartesianCoordinate::= INTEGER{
+ negativeOutOfRange (-32768),
+ positiveOutOfRange (32767)
+} (-32768..32767)
+
+/**
+ * This DF represents the value of a cartesian coordinate with a range of -1 310,72 metres to +1 310,70 metres.
+ *
+ * The value shall be set to:
+ * - `-131072` if the longitudinal offset is out of range, i.e. less than or equal to -1 310,72 metres,
+ * - `n` (`n > 131 072` and `n < 131 071`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `131 071` if the longitudinal offset is out of range, i.e. greater than + 1 310,70 metres.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CartesianCoordinateLarge::= INTEGER{
+ negativeOutOfRange (-131072),
+ positiveOutOfRange (131071)
+} (-131072..131071)
+
+/**
+ * This DE represents the ID of a CEN DSRC tolling zone.
+ *
+ * @category: Communication information
+ * @revision: V1.3.1
+ * @note: this DE is deprecated and shall not be used anymore.
+ */
+CenDsrcTollingZoneID::= ProtectedZoneId
+
+/**
+ * This DE indicates the reason why a cluster leader intends to break up the cluster.
+ *
+ * The value shall be set to:
+ * - 0 - `notProvided` - if the information is not provided,
+ * - 1 - `clusteringPurposeCompleted` - if the cluster purpose has been completed,
+ * - 2 - `leaderMovedOutOfClusterBoundingBox` - if the leader moved out of the cluster's bounding box,
+ * - 3 - `joiningAnotherCluster` - if the cluster leader is about to join another cluster,
+ * - 4 - `enteringLowRiskAreaBasedOnMaps` - if the cluster is entering an area idenrified as low risk based on the use of maps,
+ * - 5 - `receptionOfCpmContainingCluster` - if the leader received a Collective Perception Message containing information about the same cluster.
+ * - 6 to 15 - are reserved for future use.
+ *
+ * @category: Cluster information
+ * @revision: Created in V2.1.1
+*/
+ClusterBreakupReason ::= ENUMERATED {
+ notProvided (0),
+ clusteringPurposeCompleted (1),
+ leaderMovedOutOfClusterBoundingBox (2),
+ joiningAnotherCluster (3),
+ enteringLowRiskAreaBasedOnMaps (4),
+ receptionOfCpmContainingCluster (5),
+ max(15)
+}
+
+/**
+ * This DE indicates the reason why a cluster participant is leaving the cluster.
+ *
+ * The value shall be set to:
+ * - 0 - `notProvided ` - if the information is not provided,
+ * - 1 - `clusterLeaderLost` - if the cluster leader cannot be found anymore,
+ * - 2 - `clusterDisbandedByLeader` - if the cluster has been disbanded by the leader,
+ * - 3 - `outOfClusterBoundingBox` - if the participants moved out of the cluster's bounding box,
+ * - 4 - `outOfClusterSpeedRange` - if the cluster speed moved out of a defined range,
+ * - 5 - `joiningAnotherCluster` - if the participant is joining another cluster,
+ * - 6 - `cancelledJoin` - if the participant is cancelling a joining procedure,
+ * - 7 - `failedJoin` - if the participant failed to join the cluster,
+ * - 8 - `safetyCondition` - if a safety condition applies.
+ * - 9 to 15 - are reserved for future use
+ *
+ * @category: Cluster information
+ * @revision: Created in V2.1.1
+ */
+ClusterLeaveReason ::= ENUMERATED {
+ notProvided (0),
+ clusterLeaderLost (1),
+ clusterDisbandedByLeader (2),
+ outOfClusterBoundingBox (3),
+ outOfClusterSpeedRange (4),
+ joiningAnotherCluster (5),
+ cancelledJoin (6),
+ failedJoin (7),
+ safetyCondition (8),
+ max(15)
+}
+
+/**
+ * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of collision risk is unavailable,
+ * - 1 - `longitudinalCollisionRisk`- in case the type of detected collision risk is longitudinal collision risk,
+ * e.g. forward collision or face to face collision,
+ * - 2 - `crossingCollisionRisk` - in case the type of detected collision risk is crossing collision risk,
+ * - 3 - `lateralCollisionRisk` - in case the type of detected collision risk is lateral collision risk,
+ * - 4 - `vulnerableRoadUser` - in case the type of detected collision risk involves vulnerable road users
+ * e.g. pedestrians or bicycles.
+ * - 5-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+CollisionRiskSubCauseCode ::= INTEGER {
+ unavailable (0),
+ longitudinalCollisionRisk (1),
+ crossingCollisionRisk (2),
+ lateralCollisionRisk (3),
+ vulnerableRoadUser (4)
+}(0..255)
+
+/**
+ * This DE represents a confidence level in percentage.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 101`) : for the confidence level in %,
+ * - `101` : in case the confidence level is not available.
+ *
+ * @unit Percent
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+ConfidenceLevel ::= INTEGER {
+ unavailable (101)
+} (1..101)
+
+/**
+ * This DE indicates the coordinate confidence value which represents the estimated absolute accuracy of a position coordinate with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 4095`) if the confidence value is is equal to or less than n x 0,01 metre, and greater than (n-1) x 0,01 metre,
+ * - `4095` if the confidence value is greater than 40,94 metres,
+ * - `4096` if the confidence value is not available.
+ *
+ * @unit 0,01 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CoordinateConfidence ::= INTEGER {
+ outOfRange (4095),
+ unavailable (4096)
+} (1..4096)
+
+/**
+ * This DE represents the Bravais-Pearson correlation value for each cell of a lower triangular correlation matrix.
+ *
+ * The value shall be set to:
+ * - `-100` in case of full negative correlation,
+ * - `n` (`n > -100` and `n < 0`) if the correlation is negative and equal to n x 100,
+ * - `0` in case of no correlation,
+ * - `n` (`n > 0` and `n < 100`) if the correlation is positive and equal to n x 100,
+ * - `100` in case of full positive correlation,
+ * - `101` in case the correlation information is unavailable.
+ *
+ * @unit: the value is scaled by 100
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+CorrelationCellValue ::= INTEGER {
+ full-negative-correlation (-100),
+ no-correlation (0),
+ full-positive-correlation (100),
+ unavailable (101)
+} (-100..101)
+
+/**
+ * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value.
+ *
+ * The value shall be set to:
+ * - 0 - `yawRateUsed` - if the yaw rate is used,
+ * - 1 - `yawRateNotUsed` - if the yaw rate is not used,
+ * - 2 - `unavailable` - if the information of curvature calculation mode is unknown.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+CurvatureCalculationMode ::= ENUMERATED {
+ yawRateUsed (0),
+ yawRateNotUsed (1),
+ unavailable (2),
+ ...
+}
+
+/**
+ * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1,
+ * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1,
+ * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1,
+ * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1,
+ * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1,
+ * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1,
+ * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1,
+ * - 7 - `unavailable` - if the confidence value is not available.
+ *
+ * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by
+ * several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the curvature value may be valid and used by the application.
+ *
+ * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid
+ * and therefore cannot be trusted. Such value is not useful for the application.
+ *
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+*/
+CurvatureConfidence ::= ENUMERATED {
+ onePerMeter-0-00002 (0),
+ onePerMeter-0-0001 (1),
+ onePerMeter-0-0005 (2),
+ onePerMeter-0-002 (3),
+ onePerMeter-0-01 (4),
+ onePerMeter-0-1 (5),
+ outOfRange (6),
+ unavailable (7)
+}
+
+/**
+ * This DE describes vehicle turning curve with the following information:
+ * ```
+ * Value = 1 / Radius * 10000
+ * ```
+ * wherein radius is the vehicle turning curve radius in metres.
+ *
+ * Positive values indicate a turning curve to the left hand side of the driver.
+ * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21].
+ *
+ * The value shall be set to:
+ * - `-1023` for values smaller than -1023,
+ * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`,
+ * - `0` when the vehicle is moving straight,
+ * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`,
+ * - `1022`, for values greater than 1021,
+ * - `1023`, if the information is not available.
+ *
+ * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21].
+ *
+ * @unit: 1 over 10 000 metres
+ * @category: Vehicle information
+ * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly)
+ */
+CurvatureValue ::= INTEGER {
+ outOfRangeNegative (-1023),
+ straight (0),
+ outOfRangePositive (1022),
+ unavailable (1023)
+} (-1023..1023)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of dangerous queue is unavailable,
+ * - 1 - `suddenEndOfQueue`- in case a sudden end of queue is detected, e.g. due to accident or obstacle,
+ * - 2 - `queueOverHill` - in case the dangerous end of queue is detected on the road hill,
+ * - 3 - `queueAroundBend` - in case the dangerous end of queue is detected around the road bend,
+ * - 4 - `queueInTunnel` - in case queue is detected in tunnel,
+ * - 5-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+DangerousEndOfQueueSubCauseCode ::= INTEGER {
+ unavailable (0),
+ suddenEndOfQueue (1),
+ queueOverHill (2),
+ queueAroundBend (3),
+ queueInTunnel (4)
+} (0..255)
+
+/**
+ * This DE indicates the type of the dangerous goods being carried by a heavy vehicle.
+ * The value is assigned according to `class` and `division` definitions of dangerous goods as specified in part II,
+ * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [3].
+ *
+ *
+ * @category Vehicle information
+ * @revision: V1.3.1
+ */
+DangerousGoodsBasic::= ENUMERATED {
+ explosives1 (0),
+ explosives2 (1),
+ explosives3 (2),
+ explosives4 (3),
+ explosives5 (4),
+ explosives6 (5),
+ flammableGases (6),
+ nonFlammableGases (7),
+ toxicGases (8),
+ flammableLiquids (9),
+ flammableSolids (10),
+ substancesLiableToSpontaneousCombustion (11),
+ substancesEmittingFlammableGasesUponContactWithWater (12),
+ oxidizingSubstances (13),
+ organicPeroxides (14),
+ toxicSubstances (15),
+ infectiousSubstances (16),
+ radioactiveMaterial (17),
+ corrosiveSubstances (18),
+ miscellaneousDangerousSubstances (19)
+}
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousSituation`
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case information on the type of dangerous situation is unavailable,
+ * - 1 - `emergencyElectronicBrakeEngaged` - in case emergency electronic brake is engaged,
+ * - 2 - `preCrashSystemEngaged` - in case pre-crash system is engaged,
+ * - 3 - `espEngaged` - in case Electronic Stability Program (ESP) system is engaged,
+ * - 4 - `absEngaged` - in case Anti-lock Braking System (ABS) is engaged,
+ * - 5 - `aebEngaged` - in case Autonomous Emergency Braking (AEB) system is engaged,
+ * - 6 - `brakeWarningEngaged` - in case brake warning is engaged,
+ * - 7 - `collisionRiskWarningEngaged` - in case collision risk warning is engaged,
+ * - 8-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+DangerousSituationSubCauseCode ::= INTEGER {
+ unavailable (0),
+ emergencyElectronicBrakeEngaged (1),
+ preCrashSystemEngaged (2),
+ espEngaged (3),
+ absEngaged (4),
+ ebEngaged (5),
+ brakeWarningEngaged (6),
+ collisionRiskWarningEngaged (7)
+} (0..255)
+
+/**
+ * This DE represents an offset altitude with regards to a defined altitude value.
+ * It may be used to describe a geographical point with regards to a specific reference geographical position.
+ *
+ * The value shall be set to:
+ * - `-12 700` for values equal to or lower than -127 metres,
+ * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position,
+ * - `0` for no altitudinal offset,
+ * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position,
+ * - `12 799` for values equal to or greater than 127,99 metres,
+ * - `12 800` when the information is unavailable.
+ *
+ * @unit: 0,01 metre
+ * @category: GeoReference information
+ * @revision: editorial update in V2.1.1
+ */
+DeltaAltitude ::= INTEGER {
+ negativeOutOfRange (-12700),
+ positiveOutOfRange (12799),
+ unavailable (12800)
+} (-12700..12800)
+
+/**
+ * This DE represents an offset latitude with regards to a defined latitude value.
+ * It may be used to describe a geographical point with regards to a specific reference geographical position.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position,
+ * - `0` for no latitudinal offset,
+ * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position,
+ * - `131 072` when the information is unavailable.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: editorial update in V2.1.1
+ */
+DeltaLatitude ::= INTEGER {
+ unavailable (131072)
+} (-131071..131072)
+
+/**
+ * This DE represents an offset longitude with regards to a defined longitude value.
+ * It may be used to describe a geographical point with regards to a specific reference geographical position.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position,
+ * - `0` for no longitudinal offset,
+ * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position,
+ * - `131 072` when the information is unavailable.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: editorial update in V2.1.1
+ */
+DeltaLongitude ::= INTEGER {
+ unavailable (131072)
+} (-131071..131072)
+
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 10001`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s,
+ *
+ * Example: a time interval between two consecutive message transmissions.
+ *
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1 from the DE TransmissionInterval in [2]
+ */
+DeltaTimeMilliSecondPositive ::= INTEGER (1..10000)
+
+/**
+ * This DE represents a signed difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `-2048` for time values equal to or less than -2,048 s,
+ * - `n` (`n > -2048` and `n < 2047`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s,
+ * - `2047` for time values greater than 2,046 s
+ *
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+DeltaTimeMilliSecondSigned ::= INTEGER (-2048..2047)
+
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ * It can be interpreted as the first 8 bits of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime,
+ * multiply by 256 (i.e. append a `00` byte)
+ *
+ * @unit: 256 * 0,001 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
+DeltaTimeQuarterSecond::= INTEGER {
+ unavailable (255)
+} (1..255)
+
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `0` for a difference in time of 0 seconds.
+ * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 0,1 s, and greater than (n-1) x 0,1 s,
+ *
+ * @unit: 0,1 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+DeltaTimeTenthOfSecond::= INTEGER {
+ unavailable (127)
+} (0..127)
+
+/**
+ * This DE represents a difference in time with respect to a reference time.
+ *
+ * The value shall be set to:
+ * - `-0` for a difference in time of 0 seconds.
+ * - `n` (`n > 0` and `n <= 86400`) to indicate a time value equal to or less than n x 1 s, and greater than (n-1) x 1 s,
+ *
+ * @unit: 1 s
+ * @category: Basic information
+ * @revision: Created in V2.1.1 from ValidityDuration
+*/
+DeltaTimeSecond ::= INTEGER (0..86400)
+
+/**
+ * This DE indicates a direction with respect to a defined reference direction.
+ * Example: a reference direction may be implicitly defined by the definition of a geographical zone.
+ *
+ * The value shall be set to:
+ * - 0 - `sameDirection` - to indicate the same direction as the reference direction,
+ * - 1 - `oppositeDirection` - to indicate opposite direction as the reference direction,
+ * - 2 - `bothDirections` - to indicate both directions, i.e. the same and the opposite direction,
+ * - 3 - `unavailable` - to indicate that the information is unavailable.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+ */
+Direction::= INTEGER{
+ sameDirection (0),
+ oppositeDirection (1),
+ bothDirections (2),
+ unavailable (3)
+ } (0..3)
+
+/**
+ * This DE indicates in which direction something is moving.
+ *
+ * The value shall be set to:
+ * - 0 - `forward` - to indicate it is moving forward,
+ * - 1 - `backwards` - to indicate it is moving backwards,
+ * - 2 - `unavailable` - to indicate that the information is unavailable.
+ *
+ * @category: Kinematic information
+ * @revision: editorial update in V2.1.1
+ */
+DriveDirection ::= ENUMERATED {
+ forward (0),
+ backward (1),
+ unavailable (2)
+}
+
+/**
+ * This DE indicates whether a driving lane is open to traffic.
+ *
+ * A lane is counted from inside border of the road excluding the hard shoulder. The size of the bit string shall
+ * correspond to the total number of the driving lanes in the carriageway.
+ *
+ * The numbering is matched to @ref LanePosition.
+ * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border.
+ *
+ * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`.
+ *
+ * @note: hard shoulder status is not provided by this DE but in @ref HardShoulderStatus.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+DrivingLaneStatus ::= BIT STRING (SIZE (1..13))
+
+/**
+ * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process.
+ * If that is the case, the value is *TRUE*, otherwise *FALSE*.
+ *
+ * @category: Vehicle information
+ * @revision: editorial update in V2.1.1
+ */
+EmbarkationStatus ::= BOOLEAN
+
+/**
+ * This DE indicates the right of priority requested or assumed by an operating emergency vehicle.
+ * The right-of-priority bit shall be set to `1` if the corresponding right is requested.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `requestForRightOfWay` - when the vehicle is requesting/assuming the right of way,
+ * - 1 - `requestForFreeCrossingAtATrafficLight` - when the vehicle is requesting/assuming the right to pass at a (red) traffic light.
+ *
+ * @category: Traffic information
+ * @revision: description revised in V2.1.1
+ */
+EmergencyPriority ::= BIT STRING {
+ requestForRightOfWay (0),
+ requestForFreeCrossingAtATrafficLight (1)
+} (SIZE(2))
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching".
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the emergency vehicle approaching event
+ * is unavailable,
+ * - 1 - `emergencyVehicleApproaching` - in case an operating emergency vehicle is approaching,
+ * - 2 - `prioritizedVehicleApproaching` - in case a prioritized vehicle is approaching,
+ * - 3-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+EmergencyVehicleApproachingSubCauseCode ::= INTEGER {
+ unavailable (0),
+ emergencyVehicleApproaching (1),
+ prioritizedVehicleApproaching (2)
+} (0..255)
+
+/**
+ * This DE indicated the type of energy being used and stored in vehicle.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `hydrogenStorage` - when hydrogen is being used and stored in vehicle,
+ * - 1 - `electricEnergyStorage` - when electric energy is being used and stored in vehicle,
+ * - 2 - `liquidPropaneGas` - when liquid Propane Gas (LPG) is being used and stored in vehicle,
+ * - 3 - `compressedNaturalGas ` - when compressedNaturalGas (CNG) is being used and stored in vehicle,
+ * - 4 - `diesel` - when diesel is being used and stored in vehicle,
+ * - 5 - `gasoline` - when gasoline is being used and stored in vehicle,
+ * - 6 - `ammonia` - when ammonia is being used and stored in vehicle.
+ *
+ * - Otherwise, the corresponding bit shall be set to `0`.
+ *
+ * @category: Vehicle information
+ * @revision: editorial revision in V2.1.1
+ */
+EnergyStorageType ::= BIT STRING {
+ hydrogenStorage (0),
+ electricEnergyStorage (1),
+ liquidPropaneGas (2),
+ compressedNaturalGas (3),
+ diesel (4),
+ gasoline (5),
+ ammonia (6)
+}(SIZE(7))
+
+/**
+ * This DE represents one of the specific categories in the L category: L1, L2, L3, L4, L5, L6, or L7 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
+EuVehicleCategoryL ::= ENUMERATED { l1, l2, l3, l4, l5, l6, l7 }
+
+/**
+ * This DE represents one of the specific categories in the M category: M1, M2, or M3 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
+EuVehicleCategoryM ::= ENUMERATED {m1, m2, m3}
+
+/**
+ * This DE represents one of the specific categories in the N category: N1, N2, or N3 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
+EuVehicleCategoryN ::= ENUMERATED {n1, n2, n3}
+
+/**
+ * This DE represents one of the specific categories in the O category: O1, O2, O3 or O4 according to UNECE/TRANS/WP.29/78/Rev.4 [16].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V2.1.1
+ */
+EuVehicleCategoryO ::= ENUMERATED {o1, o2, o3, o4}
+
+/**
+ * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on,
+ * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on,
+ * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on,
+ * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on,
+ * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on,
+ * - 5 - `reverseLightOn` - when the reverse light switch is on,
+ * - 6 - `fogLightOn` - when the tail fog light switch is on,
+ * - 7 - `parkingLightsOn` - when the parking light switch is on.
+ *
+ * @note: The value of each bit indicates the state of the switch, which commands the corresponding light.
+ * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on,
+ * either manually by the driver or automatically by a vehicle system. The bit value does not indicate
+ * if the corresponding lamps are alight or not.
+ *
+ * If a vehicle is not equipped with a certain light or if the light switch status information is not available,
+ * the corresponding bit shall be set to `0`.
+ *
+ * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not
+ * alternate with the blinking interval.
+ *
+ * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`.
+ *
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
+ExteriorLights ::= BIT STRING {
+ lowBeamHeadlightsOn (0),
+ highBeamHeadlightsOn (1),
+ leftTurnSignalOn (2),
+ rightTurnSignalOn (3),
+ daytimeRunningLightsOn (4),
+ reverseLightOn (5),
+ fogLightOn (6),
+ parkingLightsOn (7)
+} (SIZE(8))
+
+/**
+ * This DE represents a timestamp based on TimestampIts modulo 65 536.
+ * This means that generationDeltaTime = TimestampIts mod 65 536.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1]
+*/
+GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535)
+
+/**
+ * This DE indicates the current status of a hard shoulder: whether it is available for special usage
+ * (e.g. for stopping or for driving) or closed for all vehicles.
+ *
+ * The value shall be set to:
+ * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations,
+ * - 1 - `closed` - if the hard shoulder is closed and cannot be occupied in any case,
+ * - 2 - `availableForDriving` - if the hard shoulder is available for regular driving.
+ *
+ * @category: Traffic information
+ * @revision: Description revised in V2.1.1
+ */
+HardShoulderStatus ::= ENUMERATED {
+ availableForStopping (0),
+ closed (1),
+ availableForDriving (2)
+}
+
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the animal on the road event is unavailable,
+ * - 1 - `wildAnimals` - in case wild animals are detected on the road,
+ * - 2 - `herdOfAnimals`- in case herd of animals are detected on the road,
+ * - 3 - `smallAnimals` - in case small size animals are detected on the road,
+ * - 4 - `largeAnimals` - in case large size animals are detected on the road.
+ * - 5-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {
+ unavailable (0),
+ wildAnimals (1),
+ herdOfAnimals (2),
+ smallAnimals (3),
+ largeAnimals (4)
+} (0..255)
+
+/**
+ * This DE represents the sub cause code of the @ref CauseCode `hazardousLocation-DangerousCurve`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the dangerous curve is unavailable,
+ * - 1 - `dangerousLeftTurnCurve` - in case the dangerous curve is a left turn curve,
+ * - 2 - `dangerousRightTurnCurve` - in case the dangerous curve is a right turn curve,
+ * - 3 - `multipleCurvesStartingWithUnknownTurningDirection` - in case of multiple curves for which the starting curve turning direction is not known,
+ * - 4 - `multipleCurvesStartingWithLeftTurn` - in case of multiple curves starting with a left turn curve,
+ * - 5 - `multipleCurvesStartingWithRightTurn` - in case of multiple curves starting with a right turn curve.
+ * - 6-255 - are reserved for future usage.
+ *
+ * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass
+ * and vehicle speed driving on the curve. This definition is out of scope of the present document.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {
+ unavailable (0),
+ dangerousLeftTurnCurve (1),
+ dangerousRightTurnCurve (2),
+ multipleCurvesStartingWithUnknownTurningDirection (3),
+ multipleCurvesStartingWithLeftTurn (4),
+ multipleCurvesStartingWithRightTurn (5)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the detected obstacle is unavailable,
+ * - 1 - `shedLoad` - in case detected obstacle is large amount of obstacles (shedload),
+ * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles,
+ * - 3 - `partsOfTyres` - in case the detected obstacles are parts of tyres,
+ * - 4 - `bigObjects` - in case the detected obstacles are big objects,
+ * - 5 - `fallenTrees` - in case the detected obstacles are fallen trees,
+ * - 6 - `hubCaps` - in case the detected obstacles are hub caps,
+ * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles.
+ * - 8-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {
+ unavailable (0),
+ shedLoad (1),
+ partsOfVehicles (2),
+ partsOfTyres (3),
+ bigObjects (4),
+ fallenTrees (5),
+ hubCaps (6),
+ waitingVehicles (7)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`.
+ *
+The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on the road surface condition is unavailable,
+ * - 1 - `rockfalls` - in case rock falls are detected on the road surface,
+ * - 2 - `earthquakeDamage`- in case the road surface is damaged by earthquake,
+ * - 3 - `sewerCollapse` - in case of sewer collapse on the road surface,
+ * - 4 - `subsidence` - in case road surface is damaged by subsidence,
+ * - 5 - `snowDrifts` - in case road surface is damaged due to snow drift,
+ * - 6 - `stormDamage` - in case road surface is damaged by strong storm,
+ * - 7 - `burstPipe` - in case road surface is damaged due to pipe burst,
+ * - 8 - `volcanoEruption` - in case road surface is damaged due to volcano eruption,
+ * - 9 - `fallingIce` - in case road surface damage is due to falling ice,
+ * - 10 - `fire` - in case there is fire on or near to the road surface.
+ * - 11-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {
+ unavailable (0),
+ rockfalls (1),
+ earthquakeDamage (2),
+ sewerCollapse (3),
+ subsidence (4),
+ snowDrifts (5),
+ stormDamage (6),
+ burstPipe (7),
+ volcanoEruption (8),
+ fallingIce (9),
+ fire (10)
+} (0..255)
+
+/**
+ * This DE indicates the heading confidence value which represents the estimated absolute accuracy of a heading value with a confidence level of 95 %.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree,
+ * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees,
+ * - `127` if the confidence value information is not available.
+ *
+ * @note: The fact that a value is received with confidence value set to `unavailable(127)` can be caused by several reasons,
+ * such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the heading value may be valid and used by the application.
+ *
+ * @note: If a heading value is received and its confidence value is set to `outOfRange(126)`, it means that the
+ * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application.
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleConfidence instead.
+ *
+ * @unit: 0,1 degree
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
+HeadingConfidence ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (1..127)
+
+/**
+ * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north.
+ * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead.
+ *
+ * Unit: 0,1 degree
+ * Categories: GeoReference information
+ * @revision: Description revised in V2.1.1 (usage of value 3600 specified)
+*/
+HeadingValue ::= INTEGER {
+ wgs84North (0),
+ wgs84East (900),
+ wgs84South (1800),
+ wgs84West (2700),
+ doNotUse (3600),
+ unavailable (3601)
+} (0..3601)
+
+/**
+ * This DE represents the height of the left or right longitude carrier of vehicle from base to top (left or right carrier seen from vehicle
+ * rear to front).
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 1` and `n < 99`) if the height information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `99` if the height is out of range, i.e. equal to or greater than 0,98 m,
+ * - `100` if the height information is not available.
+ *
+ * @unit 0,01 metre
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1 (the definition of 99 has changed slightly)
+ */
+HeightLonCarr ::= INTEGER {
+ outOfRange(99),
+ unavailable(100)
+} (1..100)
+
+/**
+ * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`.
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on human presence on the road is unavailable,
+ * - 1 - `childrenOnRoadway` - in case children are detected on the road,
+ * - 2 - `cyclistOnRoadway` - in case cyclist presence is detected on the road,
+ * - 3 - `motorcyclistOnRoadway`- in case motorcyclist presence is detected on the road.
+ * - 4-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: editorial revision in V2.1.1
+ */
+HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {
+ unavailable (0),
+ childrenOnRoadway (1),
+ cyclistOnRoadway (2),
+ motorcyclistOnRoadway (3)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem".
+ *
+ * The value shall be set to:
+ * - 0 - `unavailable` - in case further detailed information on human health problem is unavailable,
+ * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem,
+ * - 2 - `heartProblem` - in case human problem is due to heart problem.
+ * - 3-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+HumanProblemSubCauseCode ::= INTEGER {
+ unavailable (0),
+ glycemiaProblem (1),
+ heartProblem (2)
+} (0..255)
+
+/**
+ * This DE is a general identifier.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+Identifier1B ::= INTEGER (0..255)
+
+/**
+ * This DE is a general identifier.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+Identifier2B ::= INTEGER (0..65535)
+
+/**
+ * This DE represents the quality level of provided information.
+ *
+ * The value shall be set to:
+ * - `0` if the information is unavailable,
+ * - `1` if the quality level is lowest,
+ * - `n` (`n > 1` and `n < 7`) if the quality level is n,
+ * - `7` if the quality level is highest.
+ *
+ * @note: Definition of quality level is out of scope of the present document.
+ * @category: Basic information
+ * @revision: Editorial update in V2.1.1
+ */
+InformationQuality ::= INTEGER (0..7)
+
+/**
+ * This DE defines the type of an interference management zone, so that an ITS-S can
+ * assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
+ * It is an extension of the type @ref ProtectedZoneType.
+ *
+ * The value shall be set to:
+ * - 0 - `permanentCenDsrcTolling` - as specified in ETSI TS 102 792 [14],
+ * - 1 - `temporaryCenDsrcTolling` - as specified in ETSI TS 102 792 [14],
+ * - 2 - `unavailable` - default value. Set to 2 for backwards compatibility with DSRC tolling,
+ * - 3 - `urbanRail` - as specified in ETSI TS 103 724 [13], clause 7,
+ * - 4 - `satelliteStation` - as specified in ETSI TS 103 724 [13], clause 7,
+ * - 5 - `fixedLinks` - as specified in ETSI TS 103 724 [13], clause 7.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
+InterferenceManagementZoneType ::= ENUMERATED {
+ permanentCenDsrcTolling (0),
+ temporaryCenDsrcTolling (1),
+ unavailable (2),
+ urbanRail (3),
+ satelliteStation (4),
+ fixedLinks (5),
+ ...
+}
+
+/**
+ * This DE represents the vehicle type according to ISO 3833 [22].
+ * A "term No" refers to the number of the corresponding term and its definition in ISO 3833.
+ *
+ * The value shall be set to:
+ * - 0 - `passengerCar` - term No 3.1.1
+ * - 1 - `saloon` - term No 3.1.1.1 (sedan)
+ * - 2 - `convertibleSaloon` - term No 3.1.1.2
+ * - 3 - `pullmanSaloon` - term No 3.1.1.3
+ * - 4 - `stationWagon` - term No 3.1.1.4
+ * - 5 - `truckStationWagon` - term No 3.1.1.4.1
+ * - 6 - `coupe` - term No 3.1.1.5 (coupe)
+ * - 7 - `convertible` - term No 3.1.1.6 (open tourer, roadstar, spider)
+ * - 8 - `multipurposePassengerCar` - term No 3.1.1.7
+ * - 9 - `forwardControlPassengerCar`- term No 3.1.1.8
+ * - 10 - `specialPassengerCar` - term No 3.1.1.9
+ * - 11 - `bus` - term No 3.1.2
+ * - 12 - `minibus` - term No 3.1.2.1
+ * - 13 - `urbanBus` - term No 3.1.2.2
+ * - 14 - `interurbanCoach` - term No 3.1.2.3
+ * - 15 - `longDistanceCoach` - term No 3.1.2.4
+ * - 16 - `articulatedBus` - term No 3.1.2.5
+ * - 17 - `trolleyBus ` - term No 3.1.2.6
+ * - 18 - `specialBus` - term No 3.1.2.7
+ * - 19 - `commercialVehicle` - term No 3.1.3
+ * - 20 - `specialCommercialVehicle` - term No 3.1.3.1
+ * - 21 - `specialVehicle` - term No 3.1.4
+ * - 22 - `trailingTowingVehicle` - term No 3.1.5 (draw-bar tractor)
+ * - 23 - `semiTrailerTowingVehicle` - term No 3.1.6 (fifth wheel tractor)
+ * - 24 - `trailer` - term No 3.2.1
+ * - 25 - `busTrailer` - term No 3.2.1.1
+ * - 26 - `generalPurposeTrailer` - term No 3.2.1.2
+ * - 27 - `caravan` - term No 3.2.1.3
+ * - 28 - `specialTrailer` - term No 3.2.1.4
+ * - 29 - `semiTrailer` - term No 3.2.2
+ * - 30 - `busSemiTrailer` - term No 3.2.2.1
+ * - 31 - `generalPurposeSemiTrailer` - term No 3.2.2.2
+ * - 32 - `specialSemiTrailer` - term No 3.2.2.3
+ * - 33 - `roadTrain` - term No 3.3.1
+ * - 34 - `passengerRoadTrain` - term No 3.3.2
+ * - 35 - `articulatedRoadTrain` - term No 3.3.3
+ * - 36 - `doubleRoadTrain` - term No 3.3.4
+ * - 37 - `compositeRoadTrain` - term No 3.3.5
+ * - 38 - `specialRoadTrain` - term No 3.3.6
+ * - 39 - `moped` - term No 3.4
+ * - 40 - `motorCycle` - term No 3.5
+ * - 41-255 - reserved for future use
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
+Iso3833VehicleType ::= INTEGER {
+ passengerCar (0),
+ saloon (1),
+ convertibleSaloon (2),
+ pullmanSaloon (3),
+ stationWagon (4),
+ truckStationWagon (5),
+ coupe (6),
+ convertible (7),
+ multipurposePassengerCar (8),
+ forwardControlPassengerCar (9),
+ specialPassengerCar (10),
+ bus (11),
+ minibus (12),
+ urbanBus (13),
+ interurbanCoach (14),
+ longDistanceCoach (15),
+ articulatedBus (16),
+ trolleyBus (17),
+ specialBus (18),
+ commercialVehicle (19),
+ specialCommercialVehicle (20),
+ specialVehicle (21),
+ trailingTowingVehicle (22),
+ semiTrailerTowingVehicle (23),
+ trailer (24),
+ busTrailer (25),
+ generalPurposeTrailer (26),
+ caravan (27),
+ specialTrailer (28),
+ semiTrailer (29),
+ busSemiTrailer (30),
+ generalPurposeSemiTrailer (31),
+ specialSemiTrailer (32),
+ roadTrain (33),
+ passengerRoadTrain (34),
+ articulatedRoadTrain (35),
+ doubleRoadTrain (36),
+ compositeRoadTrain (37),
+ specialRoadTrain (38),
+ moped (39),
+ motorCycle (40)
+ } (0..255)
+
+/**
+ * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway.
+ *
+ * For right-hand traffic roads, the value shall be set to:
+ * - `-1` if the position is off, i.e. besides the road,
+ * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane,
+ * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction,
+ * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present).
+ *
+ * For left-hand traffic roads, the value shall be set to:
+ * - `-1` if the position is off, i.e. besides the road,
+ * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane,
+ * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction,
+ * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present).
+
+ * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used.
+ *
+ * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway.
+ * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road),
+ * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking).
+
+ * @category: Road topology information
+ * @revision: Description revised in V2.1.1
+*/
+LanePosition ::= INTEGER {
+ offTheRoad (-1),
+ innerHardShoulder (0),
+ outerHardShoulder (14)
+} (-1..14)
+
+/**
+ * This DE represents the type of a lane.
+ *
+ * The value shall be set to:
+ * - 0 - `traffic` - Lane dedicated to the movement of vehicles,
+ * - 1 - `through` - Lane dedicated to the movement of vehicles travelling ahead and not turning,
+ * - 2 - `reversible` - Lane where the direction of traffic can be changed to match the peak flow,
+ * - 3 - `acceleration` - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it,
+ * - 4 - `deceleration` - Lane that allows vehicles exiting a road to decelerate before leaving it,
+ * - 5 - `leftHandTurning` - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic,
+ * - 6 - `rightHandTurning` - Lane reserved for slowing down and making a right turn so as not to disrupt traffic,
+ * - 7 - `dedicatedVehicle` - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc.,
+ * - 8 - `bus` - Lane dedicated to movement of buses providing public transport,
+ * - 9 - `taxi` - Lane dedicated to movement of taxis,
+ * - 10 - `hov` - Carpooling lane or high occupancy vehicle lane,
+ * - 11 - `hot` - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll,
+ * - 12 - `pedestrian` - Lanes dedicated to pedestrians such as pedestrian sidewalk paths,
+ * - 13 - `cycleLane` - Lane dedicated to exclusive or preferred use by bicycles,
+ * - 14 - `median` - Lane not dedicated to movement of vehicles but representing a median / central reservation such as the central median,
+ separating the two directional carriageways of the highway,
+ * - 15 - `striping` - Lane not dedicated to movement of vehicles but covered with roadway markings,
+ * - 16 - `trackedVehicle` - Lane dedicated to movement of trains, trams and trolleys,
+ * - 17 - `parking` - Lanes dedicated to vehicles parking, stopping and loading lanes,
+ * - 18 - `emergency` - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder,
+ * - 19 - `verge` - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between
+ the road surface edge and the boundary of a road,
+ * - 20 `minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre.
+ * - values 21 to 30 reserved for future use.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.1.1
+*/
+LaneType::= INTEGER{
+ traffic (0),
+ through (1),
+ reversible (2),
+ acceleration (3),
+ deceleration (4),
+ leftHandTurning (5),
+ rightHandTurning (6),
+ dedicatedVehicle (7),
+ bus (8),
+ taxi (9),
+ hov (10),
+ hot (11),
+ pedestrian (12),
+ cycleLane (13),
+ median (14),
+ striping (15),
+ trackedVehicle (16),
+ parking (17),
+ emergency (18),
+ verge (19),
+ minimumRiskManoeuvre (20),
+ unknown (31)
+}(0..31)
+
+/**
+ * This DE represents the width of a lane measured at a defined position.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1022`) if the lane width information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre,
+ * - `1022` if the lane width is out of range, i.e. greater than 10,21 m,
+ * - `1023` if the lane width information is not available.
+ *
+ * The value 0 shall not be used.
+ *
+ * @unit: 0,01 metre
+ * @category: Road topology information
+ * @revision: Created in V2.1.1
+ */
+LaneWidth::= INTEGER (0..1023)
+
+/**
+ * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or
+ * in south hemisphere.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator,
+ * - `0` is used for the latitude of the equator,
+ * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator,
+ * - `900 000 001` when the information is unavailable.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
+Latitude ::= INTEGER {
+ unavailable(900000001)
+} (-900000000..900000001)
+
+/**
+ * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle.
+ * It corresponds to the vehicle coordinate system as specified in ISO 8855 [21].
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation
+ * with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2,
+ * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation
+ with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @note: the empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead.
+ *
+ * @unit: 0,1 m/s^2
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly).
+ */
+LateralAccelerationValue ::= INTEGER {
+ negativeOutOfRange (-160),
+ positiveOutOfRange (160),
+ unavailable (161)
+} (-160 .. 161)
+
+/**
+ * This DE indicates the status of light bar and any sort of audible alarm system besides the horn.
+ * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 - `lightBarActivated` - when the light bar is activated,
+ * - 1 - `sirenActivated` - when the siren is activated.
+ *
+ * Otherwise, it shall be set to 0.
+ *
+ * @category Vehicle information
+ * @revision: Editorial update in V2.1.1
+ */
+LightBarSirenInUse ::= BIT STRING {
+ lightBarActivated (0),
+ sirenActivated (1)
+} (SIZE(2))
+
+/**
+ * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees
+ * to the east or to the west of the prime meridian.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west,
+ * - `0` to indicate the prime meridian,
+ * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east,
+ * - `1 800 000 001` when the information is unavailable.
+ *
+ * The value -1 800 000 000 shall not be used.
+ *
+ * @unit: 10^-7 degree
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
+Longitude ::= INTEGER {
+ valueNotUsed (-1800000000),
+ unavailable (1800000001)
+} (-1800000000..1800000001)
+
+ /**
+ * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle.
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2
+ * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * This acceleration is along the tangent plane of the road surface and does not include gravity components.
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ * @unit: 0,1 m/s^2
+ * @category: Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). T
+ */
+LongitudinalAccelerationValue::= INTEGER {
+ negativeOutOfRange (-160),
+ positiveOutOfRange (160),
+ unavailable (161)
+} (-160 .. 161)
+
+/**
+ * This DE represents the longitudinal offset of a map-matched position along a matched lane, beginning from the lane's starting point.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n < 32766`) if the longitudinal offset information is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre,
+ * - `32 766` if the longitudinal offset is out of range, i.e. greater than 3276,5 m,
+ * - `32 767` if the longitudinal offset information is not available.
+ *
+ * @unit 0,1 metre
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+LongitudinalLanePositionValue ::= INTEGER {
+ outOfRange(32766),
+ unavailable(32767)
+}(0..32767)
+
+/**
+ * This DE indicates the longitudinal lane position confidence value which represents the estimated accuracy of longitudinal lane position measurement with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1 022`) if the confidence value is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m,
+ * - `1 022` if the confidence value is out of range i.e. greater than 102,1 m,
+ * - `1 023` if the confidence value is unavailable.
+ *
+ * @unit 0,1 metre
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+LongitudinalLanePositionConfidence ::= INTEGER {
+ outOfRange (1022),
+ unavailable (1023)
+} (0..1023)
+
+/**
+ * This DE indicates the components of an @ref PerceivedObject that are included in the @ref LowerTriangularPositiveSemidefiniteMatrix.
+ *
+ * The corresponding bit shall be set to 1 if the component is included:
+ * - 0 - `xCoordinate` - when the component xCoordinate of the component @ref CartesianPosition3dWithConfidence is included,
+ * - 1 - `yCoordinate` - when the component yCoordinate of the component @ref CartesianPosition3dWithConfidence is included,
+ * - 2 - `zCoordinate` - when the component zCoordinate of the component @ref CartesianPosition3dWithConfidence is included,
+ * - 3 - `xVelocityOrVelocityMagnitude` - when the component xVelocity of the component @ref VelocityCartesian or the component VelocityMagnitude of the component @ref VelocityPolarWithZ is included,
+ * - 4 - `yVelocityOrVelocityDirection` - when the component yVelocity of the component @ref VelocityCartesian or the component VelocityDirection of the component @ref VelocityPolarWithZ is included,
+ * - 5 - `zVelocity` - when the component zVelocity of the component @ref VelocityCartesian or of the component @ref VelocityPolarWithZ is included,
+ * - 6 - `xAccelOrAccelMagnitude` - when the component xAcceleration of the component @ref AccelerationCartesian or the component AccelerationMagnitude of the component @ref AccelerationPolarWithZ is included,
+ * - 7 - `yAccelOrAccelDirection` - when the component yAcceleration of the component @ref AccelerationCartesian or the component AccelerationDirection of the component @ref AccelerationPolarWithZ is included,
+ * - 8 - `zAcceleration` - when the component zAcceleration of the component @ref AccelerationCartesian or of the component @ref AccelerationPolarWithZ is included,
+ * - 9 - `zAngle` - when the component zAngle is included,
+ * - 10 - `yAngle` - when the component yAngle is included,
+ * - 11 - `xAngle` - when the component xAngle is included,
+ * - 12 - `zAngularVelocity` - when the component zAngularVelocity is included.
+ *
+ * Otherwise, it shall be set to 0.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+ */
+MatrixIncludedComponents::= BIT STRING{
+ xPosition (0),
+ yPosition (1),
+ zPosition (2),
+ xVelocityOrVelocityMagnitude (3),
+ yVelocityOrVelocityDirection (4),
+ zSpeed (5),
+ xAccelOrAccelMagnitude (6),
+ yAccelOrAccelDirection (7),
+ zAcceleration (8),
+ zAngle (9),
+ yAngle (10),
+ xAngle (11),
+ zAngularVelocity (12)
+} (SIZE(13,...))
+
+/**
+ * This DE represents the type of facility layer message.
+ *
+ * The value shall be set to:
+ * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2],
+ * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1],
+ * - 3 - `poi` - for Point of Interest message as specified in ETSI TS 101 556-1 [9],
+ * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15],
+ * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15],
+ * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15],
+ * - 7 - `ev-rsr` - for Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3 [11],
+ * - 8 - `tistpgtransaction` - for messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2 [10],
+ * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15],
+ * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15],
+ * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9],
+ * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17],
+ * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15],
+ * - 14 - `cpm` - reserved for Collective Perception Message (CPM),
+ * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13],
+ * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12],
+ * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message,
+ * - 18 - `pcim` - reserved for Parking Control Infrastructure Message,
+ * - 19 - `pcvm` - reserved for Parking Control Vehicle Message,
+ * - 20 - `mcm` - reserved for Manoeuvre Coordination Message,
+ * - 21 - `pam` - reserved for Parking Availability Message,
+ * - 22-255 - reserved for future usage.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1 from @ref ItsPduHeader.
+ */
+MessageId::= INTEGER {
+ denm (1),
+ cam (2),
+ poi (3),
+ spatem (4),
+ mapem (5),
+ ivim (6),
+ ev-rsr (7),
+ tistpgtransaction (8),
+ srem (9),
+ ssem (10),
+ evcsn (11),
+ saem (12),
+ rtcmem (13),
+ cpm (14),
+ imzm (15),
+ vam (16),
+ dsm (17),
+ pcim (18),
+ pcvm (19),
+ mcm (20),
+ pam (21)
+} (0..255)
+
+/**
+ * This DE represents the number of occupants in a vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n < 126`) for the number n of occupants,
+ * - `126` for values equal to or higher than 125,
+ * - `127` if information is not available.
+ *
+ * @unit: 1 person
+ * @category: Vehicle information
+ * @revision: Editorial update in V2.1.1
+ */
+NumberOfOccupants ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (0 .. 127)
+
+/**
+ * This DE represents a single-value indication about the overall information quality of a perceived object.
+ *
+ * The value shall be set to:
+ * - `0` : if there is no confidence in detected object, e.g. for "ghost"-objects or if confidence could not be computed,
+ * - `n` (`n > 0` and `n < 15`) : for the applicable confidence value,
+ * - `15` : if there is full confidence in the detected Object.
+ *
+ * @unit n/a
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+ObjectPerceptionQuality ::= INTEGER {
+ noConfidence (0),
+ fullConfidence (15)
+} (0..15)
+
+/**
+ * This DE represents a single dimension of an object.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 255`) if the accuracy is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m,
+ * - `255` if the accuracy is out of range i.e. greater than 25,4 m,
+ * - `256` if the data is unavailable.
+ *
+ * @unit 0,1 m
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+ObjectDimensionValue ::= INTEGER {
+ outOfRange (255),
+ unavailable (256)
+}(1..256)
+
+/**
+ * This DE indicates the object dimension confidence value which represents the estimated absolute accuracy of an object dimension value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 31`) if the confidence value is equal to or less than n x 0,1 metre, and more than (n-1) x 0,1 metre,
+ * - `31` if the confidence value is out of range i.e. greater than 3,0 m,
+ * - `32` if the confidence value is unavailable.
+ *
+ * @unit 0,1 m
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+ObjectDimensionConfidence ::= INTEGER {
+ outOfRange (31),
+ unavailable (32)
+} (1..32)
+
+/**
+ * This DE indicates the face or part of a face of a solid object.
+ *
+ * The object is modelled as a rectangular prism that has a length that is greater than its width, with the faces of the object being defined as:
+ * - front: the face defined by the prism's width and height, and which is the first face in direction of longitudinal movement of the object,
+ * - back: the face defined by the prism's width and height, and which is the last face in direction of longitudinal movement of the object,
+ * - side: the faces defined by the prism's length and height with "left" and "right" defined by looking at the front face and "front" and "back" defined w.r.t to the front and back faces.
+ *
+ * Note: It is permissible to derive the required object dimensions and orientation from models to provide a best guess.
+ *
+ * @category: Basic information
+ * @revision: V2.1.1
+*/
+ObjectFace ::= ENUMERATED {
+ front (0),
+ sideLeftFront (1),
+ sideLeftBack (2),
+ sideRightFront (3),
+ sideRightBack (4),
+ back (5)
+}
+
+/**
+ * This DE represents a time period to describe the opening days and hours of a Point of Interest.
+ * (for example local commerce).
+ *
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+OpeningDaysHours ::= UTF8String
+
+/**
+ * The DE represents an ordinal number that indicates the position of an element in a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+OrdinalNumber1B ::= INTEGER(0..255)
+
+
+/**
+ * The DE represents an ordinal number that indicates the position of an element in a set.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+OrdinalNumber3b ::= INTEGER(1..8)
+
+/**
+ * This DE indicates the subclass of a detected object for @ref ObjectClass "otherSubclass".
+ *
+ * The value shall be set to:
+ * - `0` - unknown - if the subclass is unknown.
+ * - `1` - singleObject - if the object is a single object.
+ * - `2` - multipleObjects - if the object is a group of multiple objects.
+ * - `3` - bulkMaterial - if the object is a bulk material.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+ */
+OtherSubClass ::= INTEGER {
+ unknown (0),
+ singleObject (1),
+ multipleObjects (2),
+ bulkMaterial (3)
+} (0..255)
+
+/**
+ * This DE represents the recorded or estimated travel time between a position and a predefined reference position.
+ *
+ * @unit 0,01 second
+ * @category: GeoReference information
+ * @revision: V1.3.1
+ */
+PathDeltaTime ::= INTEGER (1..65535, ...)
+
+/**
+ * This DE denotes the ability of an ITS-S to provide up-to-date information.
+ * A performance class value is used to describe age of data. The exact values are out of scope of the present document.
+ *
+ * The value shall be set to:
+ * - `0` if the performance class is unknown,
+ * - `1` for performance class A as defined in ETSI TS 101 539-1 [5],
+ * - `2` for performance class B as defined in ETSI TS 101 539-1 [5],
+ * - 3-7 reserved for future use.
+ *
+ * @category: Vehicle information
+ * @revision: Editorial update in V2.1.1
+ */
+PerformanceClass ::= INTEGER {
+ unavailable (0),
+ performanceClassA (1),
+ performanceClassB (2)
+} (0..7)
+
+/**
+ * This DE represents a telephone number
+ *
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+PhoneNumber ::= NumericString (SIZE(1..16))
+
+/**
+ * This DE indicates the perpendicular distance from the centre of mass of an empty load vehicle to the front line of
+ * the vehicle bounding box of the empty load vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 62`) for any aplicable value n between 0,1 metre and 6,2 metres,
+ * - `62` for values equal to or higher than 6.1 metres,
+ * - `63` if the information is unavailable.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @unit 0,1 metre
+ * @category Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 62 has changed slightly)
+ */
+PosCentMass ::= INTEGER {
+ tenCentimetres (1),
+ outOfRange (62),
+ unavailable (63)
+} (1..63)
+
+/**
+ * This DE indicates the positioning technology being used to estimate a geographical position.
+ *
+ * The value shall be set to:
+ * - 0 `noPositioningSolution` - no positioning solution used,
+ * - 1 `sGNSS` - Global Navigation Satellite System used,
+ * - 2 `dGNSS` - Differential GNSS used,
+ * - 3 `sGNSSplusDR` - GNSS and dead reckoning used,
+ * - 4 `dGNSSplusDR` - Differential GNSS and dead reckoning used,
+ * - 5 `dR` - dead reckoning used.
+ *
+ * @category: GeoReference information
+ * @revision: V1.3.1
+ */
+PositioningSolutionType ::= ENUMERATED {
+ noPositioningSolution (0),
+ sGNSS (1),
+ dGNSS (2),
+ sGNSSplusDR (3),
+ dGNSSplusDR (4),
+ dR (5),
+ ...
+}
+
+/**
+ * This DE indicates whether a passenger seat is occupied or whether the occupation status is detectable or not.
+ *
+ * The number of row in vehicle seats layout is counted in rows from the driver row backwards from front to the rear
+ * of the vehicle.
+ * The left side seat of a row refers to the left hand side seen from vehicle rear to front.
+ * Additionally, a bit is reserved for each seat row, to indicate if the seat occupation of a row is detectable or not,
+ * i.e. `row1NotDetectable (3)`, `row2NotDetectable(8)`, `row3NotDetectable(13)` and `row4NotDetectable(18)`.
+ * Finally, a bit is reserved for each row seat to indicate if the seat row is present or not in the vehicle,
+ * i.e. `row1NotPresent (4)`, `row2NotPresent (9)`, `row3NotPresent(14)`, `row4NotPresent(19)`.
+ *
+ * When a seat is detected to be occupied, the corresponding seat occupation bit shall be set to `1`.
+ * For example, when the row 1 left seat is occupied, `row1LeftOccupied(0)` bit shall be set to `1`.
+ * When a seat is detected to be not occupied, the corresponding seat occupation bit shall be set to `0`.
+ * Otherwise, the value of seat occupation bit shall be set according to the following conditions:
+ * - If the seat occupation of a seat row is not detectable, the corresponding bit shall be set to `1`.
+ * When any seat row not detectable bit is set to `1`, all corresponding seat occupation bits of the same row
+ * shall be set to `1`.
+ * - If the seat row is not present, the corresponding not present bit of the same row shall be set to `1`.
+ * When any of the seat row not present bit is set to `1`, the corresponding not detectable bit for that row
+ * shall be set to `1`, and all the corresponding seat occupation bits in that row shall be set to `0`.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+PositionOfOccupants ::= BIT STRING {
+ row1LeftOccupied (0),
+ row1RightOccupied (1),
+ row1MidOccupied (2),
+ row1NotDetectable (3),
+ row1NotPresent (4),
+ row2LeftOccupied (5),
+ row2RightOccupied (6),
+ row2MidOccupied (7),
+ row2NotDetectable (8),
+ row2NotPresent (9),
+ row3LeftOccupied (10),
+ row3RightOccupied (11),
+ row3MidOccupied (12),
+ row3NotDetectable (13),
+ row3NotPresent (14),
+ row4LeftOccupied (15),
+ row4RightOccupied (16),
+ row4MidOccupied (17),
+ row4NotDetectable (18),
+ row4NotPresent (19)
+} (SIZE(20))
+
+/**
+ * This DE indicates the perpendicular distance between the vehicle front line of the bounding box and the front wheel axle in 0,1 metre.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 19`) for any aplicable value between 0,1 metre and 1,9 metres,
+ * - `19` for values equal to or higher than 1.8 metres,
+ * - `20` if the information is unavailable.
+ *
+ * @category: Vehicle information
+ * @unit 0,1 metre
+ * @revision: description revised in V2.1.1 (the meaning of 19 has changed slightly)
+ */
+PosFrontAx ::= INTEGER {
+ outOfRange (19),
+ unavailable(20)
+} (1..20)
+
+/**
+ * This DE represents the distance from the centre of vehicle front bumper to the right or left longitudinal carrier of vehicle.
+ * The left/right carrier refers to the left/right as seen from a passenger sitting in the vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) for any aplicable value between 0,01 metre and 1,26 metres,
+ * - `126` for values equal to or higher than 1.25 metres,
+ * - `127` if the information is unavailable.
+ *
+ * @unit 0,01 metre
+ * @category Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 126 has changed slightly)
+ */
+PosLonCarr ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (1..127)
+
+/**
+ * This DE represents the perpendicular inter-distance of neighbouring pillar axis of vehicle starting from the
+ * middle point of the front line of the vehicle bounding box.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 29`) for any aplicable value between 0,1 metre and 2,9 metres,
+ * - `29` for values equal to or greater than 2.8 metres,
+ * - `30` if the information is unavailable.
+ *
+ * @unit 0,1 metre
+ * @category Vehicle information
+ * @revision: description revised in V2.1.1 (the meaning of 29 has changed slightly)
+ */
+PosPillar ::= INTEGER {
+ outOfRange (29),
+ unavailable (30)
+} (1..30)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` .
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on post crash event is unavailable,
+ * - 1 `accidentWithoutECallTriggered` - in case no eCall has been triggered for an accident,
+ * - 2 `accidentWithECallManuallyTriggered` - in case eCall has been manually triggered and transmitted to eCall back end,
+ * - 3 `accidentWithECallAutomaticallyTriggered` - in case eCall has been automatically triggered and transmitted to eCall back end,
+ * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork` - in case eCall has been triggered but cellular network is not accessible from triggering vehicle.
+ * - 5-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+PostCrashSubCauseCode ::= INTEGER {
+ unavailable (0),
+ accidentWithoutECallTriggered (1),
+ accidentWithECallManuallyTriggered (2),
+ accidentWithECallAutomaticallyTriggered (3),
+ accidentWithECallTriggeredWithoutAccessToCellularNetwork (4)
+} (0..255)
+
+/**
+* This DE represent the total amount of rain falling during one hour. It is measured in mm per hour at an area of 1 square metre.
+*
+* The following values are specified:
+* - `n` (`n > 0` and `n < 2000`) if the amount of rain falling is equal to or less than n x 0,1 mm/h and greater than (n-1) x 0,1 mm/h,
+* - `2000` if the amount of rain falling is greater than 199.9 mm/h,
+* - `2001` if the information is not available.
+*
+* @unit: 0,1 mm/h
+* @category: Basic Information
+* @revision: created in V2.1.1
+*/
+PrecipitationIntensity ::= INTEGER {
+ outOfRange (2000),
+ unavailable (2001)
+} (1..2001)
+
+/**
+ * This DE represents the indentifier of a protected communication zone.
+ *
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId)
+ */
+ProtectedZoneId ::= INTEGER (0.. 134217727)
+
+/**
+ * This DE represents the radius of a protected communication zone.
+ *
+ *
+ * @unit: metre
+ * @category: Infrastructure information, Communication information
+ * @revision: V1.3.1
+ */
+ProtectedZoneRadius ::= INTEGER (1..255,...)
+
+/**
+ * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of the actions to do
+ * while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
+ *
+ * The protected zone type is defined in ETSI TS 102 792 [14].
+ *
+ *
+ * @category: Communication information
+ * @revision: V1.3.1
+ */
+ProtectedZoneType::= ENUMERATED {
+ permanentCenDsrcTolling (0),
+ ...,
+ temporaryCenDsrcTolling (1)
+}
+
+/**
+ * This DE is used for various tasks in the public transportation environment, especially for controlling traffic
+ * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_").
+ * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation
+ * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the
+ * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to
+ * traffic congestion. Other usage of the DE is the provision of information like the public transport line number
+ * or the schedule delay of a public transport vehicle.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+PtActivationData ::= OCTET STRING (SIZE(1..20))
+
+/**
+ * This DE indicates a certain coding type of the PtActivationData data.
+ *
+ * The folowing value are specified:
+ * - 0 `undefinedCodingType` : undefined coding type,
+ * - 1 `r09-16CodingType` : coding of PtActivationData conform to VDV recommendation 420 [7],
+ * - 2 `vdv-50149CodingType` : coding of PtActivationData based on VDV recommendation 420 [7].
+ * - 3 - 255 : reserved for alternative and future use.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+PtActivationType ::= INTEGER {
+ undefinedCodingType (0),
+ r09-16CodingType (1),
+ vdv-50149CodingType (2)
+} (0..255)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` .
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case no further detailed information on the railway level crossing status is available,
+ * - 1 `doNotCrossAbnormalSituation` - in case when something wrong is detected by equation or sensors of the railway level crossing,
+ including level crossing is closed for too long (e.g. more than 10 minutes long ; default value),
+ * - 2 `closed` - in case the crossing is closed (barriers down),
+ * - 3 `unguarded` - in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train),
+ * - 4 `nominal` - in case the barriers are up and lights are off.
+ * - 5-255: reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+RailwayLevelCrossingSubCauseCode ::= INTEGER {
+ unavailable (0),
+ doNotCrossAbnormalSituation (1),
+ closed (2),
+ unguarded (3),
+ nominal (4)
+} (0..255)
+
+/**
+ * This DE describes a distance of relevance for information indicated in a message.
+ *
+ * The value shall be set to:
+ * - 0 `lessThan50m` - for distances below 50 m,
+ * - 1 `lessThan100m` - for distances below 100 m,
+ * - 2 `lessThan200m` - for distances below 200 m,
+ * - 3 `lessThan500m` - for distances below 300 m,
+ * - 4 `lessThan1000m` - for distances below 1 000 m,
+ * - 5 `lessThan5km` - for distances below 5 000 m,
+ * - 6 `lessThan10km` - for distances below 10 000 m,
+ * - 7 `over10km` - for distances over 10 000 m.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StandardLength3b instead.
+ *
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
+RelevanceDistance ::= ENUMERATED {
+ lessThan50m(0),
+ lessThan100m(1),
+ lessThan200m(2),
+ lessThan500m(3),
+ lessThan1000m(4),
+ lessThan5km(5),
+ lessThan10km(6),
+ over10km(7)
+}
+
+/**
+ * This DE indicates a traffic direction that is relevant to information indicated in a message.
+ *
+ * The value shall be set to:
+ * - 0 `allTrafficDirections` - for all traffic directions,
+ * - 1 `upstreamTraffic` - for upstream traffic,
+ * - 2 `downstreamTraffic` - for downstream traffic,
+ * - 3 `oppositeTraffic` - for traffic in the opposite direction.
+ *
+ * The terms `upstream`, `downstream` and `oppositeTraffic` are relative to the event position.
+ *
+ * @note: Upstream traffic corresponds to the incoming traffic towards the event position,
+ * and downstream traffic to the departing traffic away from the event position.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficDirection instead.
+ *
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
+RelevanceTrafficDirection ::= ENUMERATED {
+ allTrafficDirections(0),
+ upstreamTraffic(1),
+ downstreamTraffic(2),
+ oppositeTraffic(3)
+}
+
+/**
+ * This DE indicates whether an ITS message is transmitted as request from ITS-S or a response transmitted from
+ * ITS-S after receiving request from other ITS-Ss.
+ *
+ * The value shall be set to:
+ * - 0 `request` - for a request message,
+ * - 1 `response` - for a response message.
+ *
+ * @category Communication information
+ * @revision: Editorial update in V2.1.1
+ */
+RequestResponseIndication ::= ENUMERATED {
+ request (0),
+ response (1)
+}
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress`
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on rescue and recovery work is unavailable,
+ * - 1 `emergencyVehicles` - in case rescue work is ongoing by emergency vehicles,
+ * - 2 `rescueHelicopterLanding` - in case rescue helicopter is landing,
+ * - 3 `policeActivityOngoing` - in case police activity is ongoing,
+ * - 4 `medicalEmergencyOngoing` - in case medical emergency recovery is ongoing,
+ * - 5 `childAbductionInProgress`- in case a child kidnapping alarm is activated and rescue work is ongoing,
+ * - 6-255: reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {
+ unavailable (0),
+ emergencyVehicles (1),
+ rescueHelicopterLanding (2),
+ policeActivityOngoing (3),
+ medicalEmergencyOngoing (4),
+ childAbductionInProgress (5)
+} (0..255)
+
+
+/**
+ * This DE indicates the type of a road segment.
+ *
+ * The value shall be set to:
+ * - 0 `urban-NoStructuralSeparationToOppositeLanes` - for an urban road with no structural separation between lanes carrying traffic in opposite directions,
+ * - 1 `urban-WithStructuralSeparationToOppositeLanes` - for an urban road with structural separation between lanes carrying traffic in opposite directions,
+ * - 2 `nonUrban-NoStructuralSeparationToOppositeLanes` - for an non urban road with no structural separation between lanes carrying traffic in opposite directions,
+ * - 3 `nonUrban-WithStructuralSeparationToOppositeLanes` - for an non urban road with structural separation between lanes carrying traffic in opposite directions.
+ *
+ * @category: Road Topology Information
+ * @revision: Editorial update in V2.1.1
+ */
+RoadType ::= ENUMERATED {
+ urban-NoStructuralSeparationToOppositeLanes (0),
+ urban-WithStructuralSeparationToOppositeLanes (1),
+ nonUrban-NoStructuralSeparationToOppositeLanes (2),
+ nonUrban-WithStructuralSeparationToOppositeLanes (3)
+}
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`.
+ *
+The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on roadworks is unavailable,
+ * - 1 `majorRoadworks` - in case a major roadworks is ongoing,
+ * - 2 `roadMarkingWork` - in case a road marking work is ongoing,
+ * - 3 `slowMovingRoadMaintenance` - in case slow moving road maintenance work is ongoing,
+ * - 4 `shortTermStationaryRoadworks`- in case a short term stationary roadwork is ongoing,
+ * - 5 `streetCleaning` - in case a vehicle street cleaning work is ongoing,
+ * - 6 `winterService` - in case winter service work is ongoing.
+ * - 7-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+RoadworksSubCauseCode ::= INTEGER {
+ unavailable (0),
+ majorRoadworks (1),
+ roadMarkingWork (2),
+ slowMovingRoadMaintenance (3),
+ shortTermStationaryRoadworks (4),
+ streetCleaning (5),
+ winterService (6)
+} (0..255)
+
+/**
+ * This DE indicates if a distance is safe.
+ *
+ * The value shall be set to:
+ * - `FALSE` if the triple {LaD, LoD, VD} < {MSLaD, MSLoD, MSVD} is simultaneously satisfied with confidence level of 90 % or more,
+ * - `TRUE` otherwise.
+ *
+ * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD)
+ * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD).
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+*/
+SafeDistanceIndicator::= BOOLEAN
+
+/**
+ * This DE indicates the horizontal position confidence value which represents the estimated absolute position accuracy, in one of the axis direction as defined in a shape of ellipse with a
+ * confidence level of 95 %.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 4 094`) if the accuracy is equal to or less than n * 0,01 metre,
+ * - `4 094` if the accuracy is out of range, i.e. greater than 4,093 m,
+ * - `4 095` if the accuracy information is unavailable.
+ *
+ * The value 0 shall not be used.
+ *
+ * @note: The fact that a position coordinate value is received with confidence value set to `unavailable(4095)`.
+ * can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the position coordinate value may be valid and used by the application.
+ * If a position coordinate value is received and its confidence value is set to `outOfRange(4094)`, it means that
+ * the position coordinate value is not valid and therefore cannot be trusted. Such value is not useful
+ * for the application.
+
+ * @unit 0,01 metre
+ * @category: GeoReference Information
+ * @revision: Description revised in V2.1.1
+ */
+SemiAxisLength ::= INTEGER{
+ doNotUse (0),
+ outOfRange (4094),
+ unavailable (4095)
+} (0..4095)
+
+/**
+ * This DE indicates the type of sensor.
+ *
+ * The value shall be set to:
+ * - 0 `undefined` - in case the sensor type is undefined.
+ * - 1 `radar` - in case the sensor is a radar,
+ * - 2 `lidar` - in case the sensor is a lidar,
+ * - 3 `monovideo` - in case the sensor is mono video,
+ * - 4 `stereovision` - in case the sensor is stereo vision,
+ * - 5 `nightvision` - in case the sensor is night vision,
+ * - 6 `ultrasonic` - in case the sensor is ultrasonic,
+ * - 7 `pmd` - in case the sensor is photonic mixing device,
+ * - 8 `inductionLoop` - in case the sensor is an induction loop,
+ * - 9 `sphericalCamera` - in case the sensor is a spherical camera,
+ * - 10 `uwb` - in case the sensor is ultra wide band,
+ * - 11 `acoustic` - in case the sensor is acoustic,
+ * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion,
+ * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages.
+ * - 14-31 - are reserved for future usage.
+ *
+ * @category: Sensing Information
+ * @revision: created in V2.1.1
+*/
+SensorType ::= INTEGER {
+ undefined (0),
+ radar (1),
+ lidar (2),
+ monovideo (3),
+ stereovision (4),
+ nightvision (5),
+ ultrasonic (6),
+ pmd (7),
+ inductionLoop (8),
+ sphericalCamera (9),
+ uwb (10),
+ acoustic (11),
+ localAggregation (12),
+ itsAggregation (13)
+} (0..31)
+
+/**
+ * This DE represents a sequence number.
+ *
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+SequenceNumber ::= INTEGER (0..65535)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on signal violation event is unavailable,
+ * - 1 `stopSignViolation` - in case a stop sign violation is detected,
+ * - 2 `trafficLightViolation` - in case a traffic light violation is detected,
+ * - 3 `turningRegulationViolation`- in case a turning regulation violation is detected.
+ * - 4-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+SignalViolationSubCauseCode ::= INTEGER {
+ unavailable (0),
+ stopSignViolation (1),
+ trafficLightViolation (2),
+ turningRegulationViolation (3)
+} (0..255)
+
+/**
+ * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle".
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on slow vehicle driving event is
+ * unavailable,
+ * - 1 `maintenanceVehicle` - in case of a slow driving maintenance vehicle on the road,
+ * - 2 `vehiclesSlowingToLookAtAccident`- in case vehicle is temporally slowing down to look at accident, spot, etc.,
+ * - 3 `abnormalLoad` - in case an abnormal loaded vehicle is driving slowly on the road,
+ * - 4 `abnormalWideLoad` - in case an abnormal wide load vehicle is driving slowly on the road,
+ * - 5 `convoy` - in case of slow driving convoy on the road,
+ * - 6 `snowplough` - in case of slow driving snow plough on the road,
+ * - 7 `deicing` - in case of slow driving de-icing vehicle on the road,
+ * - 8 `saltingVehicles` - in case of slow driving salting vehicle on the road.
+ * - 9-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+SlowVehicleSubCauseCode ::= INTEGER {
+ unavailable (0),
+ maintenanceVehicle (1),
+ vehiclesSlowingToLookAtAccident (2),
+ abnormalLoad (3),
+ abnormalWideLoad (4),
+ convoy (5),
+ snowplough (6),
+ deicing (7),
+ saltingVehicles (8)
+} (0..255)
+
+/**
+ * The DE indicates if a vehicle is carrying goods in the special transport conditions.
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 `heavyLoad` - the vehicle is carrying goods with heavy load,
+ * - 1 `excessWidth` - the vehicle is carrying goods in excess of width,
+ * - 2 `excessLength` - the vehicle is carrying goods in excess of length,
+ * - 3 `excessHeight` - the vehicle is carrying goods in excess of height.
+ *
+ * Otherwise, the corresponding bit shall be set to 0.
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
+SpecialTransportType ::= BIT STRING {
+ heavyLoad (0),
+ excessWidth (1),
+ excessLength (2),
+ excessHeight (3)
+} (SIZE(4))
+
+/**
+ * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s.
+ * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s,
+ * - `127` if the confidence value information is not available.
+ *
+ * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the speed value may be valid and used by the application.
+ *
+ * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid
+ * and therefore cannot be trusted. Such is not useful for the application.
+ *
+ * @unit: 0,01 m/s
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
+SpeedConfidence ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (1..127)
+
+/**
+ * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region.
+ *
+ * @unit: km/h
+ * @category: Infrastructure information, Traffic information
+ * @revision: V1.3.1
+ */
+SpeedLimit ::= INTEGER (1..255)
+
+/**
+ * This DE represents a speed value, i.e. the magnitude of the velocity-vector.
+ *
+ * The value shall be set to:
+ * - `0` in a standstill situation.
+ * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s,
+ * - `16 382` for speed values greater than 163,81 m/s,
+ * - `16 383` if the speed accuracy information is not available.
+ *
+ * @note: the definition of standstill is out of scope of the present document.
+ *
+ * @unit: 0,01 m/s
+ * @category: Kinematic information
+ * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly)
+*/
+SpeedValue ::= INTEGER {
+ standstill (0),
+ outOfRange (16382),
+ unavailable (16383)
+} (0..16383)
+
+/**
+ * This DE represents the value of a velocity component in a defined coordinate system.
+ *
+ * The value shall be set to:
+ * - `-16 383` if the velocity is equal to or smaller than -163,83 m/s,
+ * - `n` (`n > -16 383` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s,
+ * - `16 382` for velocity values equal to or greater than 163,81 m/s,
+ * - `16 383` if the velocity information is not available.
+ *
+ * @unit: 0,01 m/s
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+*/
+VelocityComponentValue ::= INTEGER {
+ negativeOutOfRange (-16383),
+ positiveOutOfRange (16382),
+ unavailable (16383)
+} (-16383..16383)
+
+
+/**
+ * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss.
+ *
+ * The value shall be set to:
+ * - `0` to indicate an estimated probability of a loss of stability of 0 %, i.e. "stable",
+ * - `n` (`n > 0` and `n < 50`) to indicate the actual stability level,
+ * - `50` to indicate a estimated probability of a loss of stability of 100 %, i.e. "total loss of stability",
+ * - the values between 51 and 62 are reserved for future use,
+ * - `63`: this value indicates that the information is unavailable.
+ *
+ * @unit: 2 %
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+StabilityLossProbability ::= INTEGER {
+ stable (0),
+ totalLossOfStability (50),
+ unavailable (63)
+} (0..63)
+
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object or shape.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
+StandardLength12b::= INTEGER (0..4095)
+
+/**
+ * The DE represents length as a measure of distance between points.
+ *
+ * The value shall be set to:
+ * - 0 `lessThan50m` - for distances below 50 m,
+ * - 1 `lessThan100m` - for distances below 100 m,
+ * - 2 `lessThan200m` - for distances below 200 m,
+ * - 3 `lessThan500m` - for distances below 300 m,
+ * - 4 `lessThan1000m` - for distances below 1 000 m,
+ * - 5 `lessThan5km` - for distances below 5 000 m,
+ * - 6 `lessThan10km` - for distances below 10 000 m,
+ * - 7 `over10km` - for distances over 10 000 m.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1 from RelevanceDistance
+ */
+StandardLength3b ::= ENUMERATED {
+ lessThan50m (0),
+ lessThan100m (1),
+ lessThan200m (2),
+ lessThan500m (3),
+ lessThan1000m (4),
+ lessThan5km (5),
+ lessThan10km (6),
+ over10km (7)
+}
+
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
+StandardLength9b::= INTEGER (0..511)
+
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
+StandardLength1B::= INTEGER (0..255)
+
+/**
+ * The DE represents length as a measure of distance between points or as a dimension of an object.
+ *
+ * @unit: 0,1 metre
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
+StandardLength2B::= INTEGER (0..65535)
+
+/**
+ * This DE indicates the duration in minutes since which something is stationary.
+ *
+ * The value shall be set to:
+ * - 0 `lessThan1Minute` - for being stationary since less than 1 minute,
+ * - 1 `lessThan2Minutes` - for being stationary since less than 2 minute and for equal to or more than 1 minute,
+ * - 2 `lessThan15Minutes` - for being stationary since less than 15 minutes and for equal to or more than 1 minute,
+ * - 3 `equalOrGreater15Minutes` - for being stationary since equal to or more than 15 minutes.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+StationarySince ::= ENUMERATED {
+ lessThan1Minute (0),
+ lessThan2Minutes (1),
+ lessThan15Minutes (2),
+ equalOrGreater15Minutes (3)
+}
+
+/**
+ * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle".
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on stationary vehicle is unavailable,
+ * - 1 `humanProblem` - in case stationary vehicle is due to health problem of driver or passenger,
+ * - 2 `vehicleBreakdown` - in case stationary vehicle is due to vehicle break down,
+ * - 3 `postCrash` - in case stationary vehicle is caused by collision,
+ * - 4 `publicTransportStop` - in case public transport vehicle is stationary at bus stop,
+ * - 5 `carryingDangerousGoods`- in case the stationary vehicle is carrying dangerous goods,
+ * - 6 `vehicleOnFire` - in case of vehicle on fire.
+ * - 7-255 reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+StationaryVehicleSubCauseCode ::= INTEGER {
+ unavailable (0),
+ humanProblem (1),
+ vehicleBreakdown (2),
+ postCrash (3),
+ publicTransportStop (4),
+ carryingDangerousGoods (5),
+ vehicleOnFire (6)
+} (0..255)
+
+/**
+ * This DE represents the identifier of an ITS-S.
+ * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1 based on @ref StationID
+ */
+StationId ::= INTEGER(0..4294967295)
+
+/**
+ * This DE represents the identifier of an ITS-S.
+ * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StationId instead.
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+StationID ::= INTEGER(0..4294967295)
+
+/**
+ * This DE represents the type of technical context the ITS-S is integrated in.
+ * The station type depends on the integration environment of ITS-S into vehicle, mobile devices or at infrastructure.
+ *
+ * The value shall be set to:
+ * - 0 `unknown` - information about the ITS-S context is not provided,
+ * - 1 `pedestrian` - ITS-S carried by human being not using a mechanical device for their trip (VRU profile 1),
+ * - 2 `cyclist` - ITS-S mounted on non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2),
+ * - 3 `moped` - ITS-S mounted on light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16]
+ class L1, L2 (VRU Profile 3),
+ * - 4 `motorcycles` - ITS-S mounted on motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16]
+ class L3, L4, L5, L6, L7 (VRU Profile 3),
+ * - 5 `passengerCar` - ITS-S mounted on small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1,
+ * - 6 `bus` - ITS-S mounted on large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3,
+ * - 7 `lightTruck` - ITS-S mounted on light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1,
+ * - 8 `heavyTruck` - ITS-S mounted on Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3,
+ * - 9 `trailer` - ITS-S mounted on an unpowered vehicle that is intended to be towed by a powered vehicle as defined in
+ UNECE/TRANS/WP.29/78/Rev.4 [16] class O,
+ * - 10 `specialVehicles` - ITS-S mounted on vehicles which have special purposes other than the above (e.g. moving road works vehicle),
+ * - 11 `tram` - ITS-S mounted on a vehicle which runs on tracks along public streets,
+ * - 12 `lightVruVehicle` - ITS-S carried by a human being traveling on light vehicle , incl. possible use of roller skates or skateboards (VRU profile 2),
+ * - 13 `animal` - ITS-S carried by an animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4),
+ * - 14 - reserved for future usage,
+ * - 15 `roadSideUnit` - ITS-S mounted on an infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole,
+ on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity),
+ * - 16-255 - are reserved for future usage.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficParticipantType instead.
+ * @category: Communication information.
+ * @revision: revised in V2.1.1 (named values 12 and 13 added and note to value 9 deleted)
+ */
+StationType ::= INTEGER {
+ unknown (0),
+ pedestrian (1),
+ cyclist (2),
+ moped (3),
+ motorcycle (4),
+ passengerCar (5),
+ bus (6),
+ lightTruck (7),
+ heavyTruck (8),
+ trailer (9),
+ specialVehicle (10),
+ tram (11),
+ lightVruVehicle (12),
+ animal (13),
+ roadSideUnit (15)
+} (0..255)
+
+/**
+ * This DE indicates the steering wheel angle confidence value which represents the estimated absolute accuracy for a steering wheel angle value with a confidence level of 95 %.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 1,5 degrees,
+ * - `126` if the confidence value is out of range, i.e. greater than 187,5 degrees,
+ * - `127` if the confidence value is not available.
+ *
+ * @note: The fact that a steering wheel angle value is received with confidence value set to `unavailable(127)`
+ * can be caused by several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the steering wheel angle value may be valid and used by the application.
+ *
+ * If a steering wheel angle value is received and its confidence value is set to `outOfRange(126)`,
+ * it means that the steering wheel angle value is not valid and therefore cannot be trusted.
+ * Such value is not useful for the application.
+ *
+ * @unit: 1,5 degree
+ * @category: Vehicle Information
+ * @revision: Description revised in V2.1.1
+*/
+SteeringWheelAngleConfidence ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (1..127)
+
+/**
+ * This DE represents the steering wheel angle of the vehicle at certain point in time.
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right,
+ * - `n` (`n > -511` and `n <= 0`) if the steering wheel angle is equal to or less than n x 1,5 degrees, and greater than (n-1) x 1,5 degrees,
+ turning clockwise (i.e. to the right),
+ * - `n` (`n >= 1` and `n < 511`) if the steering wheel angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees,
+ turning counter-clockwise (i.e. to the left),
+ * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left,
+ * - `512` if information is not available.
+ *
+ * @unit: 1,5 degree
+ * @revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly).
+ */
+SteeringWheelAngleValue ::= INTEGER {
+ negativeOutOfRange (-511),
+ positiveOutOfRange (511),
+ unavailable (512)
+} (-511..512)
+
+/**
+ * This DE indicates the generic sub cause of a detected event.
+ *
+ * @note: The sub cause code value assignment varies based on value of @ref CauseCode.
+ *
+ * @category: Traffic information
+ * @revision: Description revised in V2.1.1 (this is the generic sub cause type)
+ */
+SubCauseCodeType ::= INTEGER (0..255)
+
+/**
+ * This DE indicates a temperature value.
+
+ * The value shall be set to:
+ * - `-60` for temperature equal to or less than -60 degrees C,
+ * - `n` (`n > -60` and `n < 67`) for the actual temperature n in degrees C,
+ * - `67` for temperature equal to or greater than 67 degrees C.
+ *
+ * @unit: degrees Celsius
+ * @category: Basic information
+ * @revision: Editorial update in V2.1.1
+ */
+Temperature ::= INTEGER {
+ equalOrSmallerThanMinus60Deg (-60),
+ equalOrGreaterThan67Deg(67)} (-60..67)
+
+/**
+ * This DE represents the number of elapsed (TAI) milliseconds since the ITS Epoch.
+ * The ITS epoch is `00:00:00.000 UTC, 1 January 2004`.
+ * "Elapsed" means that the true number of milliseconds is continuously counted without interruption,
+ * i.e. it is not altered by leap seconds, which occur in UTC.
+ *
+ * @note: International Atomic Time (TAI) is the time reference coordinate on the basis of the readings of atomic clocks,
+ * operated in accordance with the definition of the second, the unit of time of the International System of Units.
+ * TAI is a continuous time scale. UTC has discontinuities, as it is occasionally adjusted by leap seconds.
+ * As of 1 January, 2022, TimestampIts is 5 seconds ahead of UTC, because since the ITS epoch on 1 January 2004 00:00:00.000 UTC,
+ * further 5 leap seconds have been inserted in UTC.
+ *
+ * EXAMPLE: The value for TimestampIts for 1 January 2007 00:00:00.000 UTC is `94 694 401 000` milliseconds,
+ * which includes one leap second insertion since the ITS epoch.
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: Description revised in in V2.1.1
+ */
+TimestampIts ::= INTEGER (0..4398046511103)
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on traffic jam is unavailable,
+ * - 1 `increasedVolumeOfTraffic` - in case detected jam volume is increased,
+ * - 2 `trafficJamSlowlyIncreasing` - in case detected traffic jam volume is increasing slowly,
+ * - 3 `trafficJamIncreasing` - in case traffic jam volume is increasing,
+ * - 4 `trafficJamStronglyIncreasing`- in case traffic jam volume is strongly increasing,
+ * - 5 `trafficStationary` - in case traffic is stationary,
+ * - 6 `trafficJamSlightlyDecreasing`- in case traffic jam volume is decreasing slowly,
+ * - 7 `trafficJamDecreasing` - in case traffic jam volume is decreasing,
+ * - 8 `trafficJamStronglyDecreasing`- in case traffic jam volume is decreasing rapidly,
+ * - 9-255: reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+TrafficConditionSubCauseCode ::= INTEGER {
+ unavailable (0),
+ increasedVolumeOfTraffic (1),
+ trafficJamSlowlyIncreasing (2),
+ trafficJamIncreasing (3),
+ trafficJamStronglyIncreasing (4),
+ trafficStationary (5),
+ trafficJamSlightlyDecreasing (6),
+ trafficJamDecreasing (7),
+ trafficJamStronglyDecreasing (8)
+} (0..255)
+
+/**
+ * This DE indicates a traffic direction that is relevant to information indicated in a message.
+ *
+ * The value shall be set to:
+ * - 0 `allTrafficDirections` - for all traffic directions,
+ * - 1 `upstreamTraffic` - for upstream traffic,
+ * - 2 `downstreamTraffic` - for downstream traffic,
+ * - 3 `oppositeTraffic` - for traffic in the opposite direction.
+ *
+ * The terms `upstream`, `downstream` and `oppositeTraffic` are relative to the event position.
+ *
+ * @note: Upstream traffic corresponds to the incoming traffic towards the event position,
+ * and downstream traffic to the departing traffic away from the event position.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1 from RelevanceTrafficDirection
+ */
+TrafficDirection ::= ENUMERATED {
+ allTrafficDirections (0),
+ upstreamTraffic (1),
+ downstreamTraffic (2),
+ oppositeTraffic (3)
+}
+
+/**
+ * This DE represents the type of a traffic participant.
+ *
+ * The value shall be set to:
+ * - 0 `unknown` - information about traffic participant is not provided,
+ * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1),
+ * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2),
+ * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3),
+ * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3),
+ * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1,
+ * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3,
+ * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1,
+ * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3,
+ * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O,
+ * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle),
+ * - 11 `tram` - vehicle which runs on tracks along public streets,
+ * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2),
+ * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4),
+ * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T,
+ * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole,
+ on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity),
+ * - 16-255 - are reserved for future usage.
+ *
+ * @category: Communication information.
+ * @revision: Created in V2.1.1 based on StationType
+ */
+TrafficParticipantType ::= INTEGER {
+ unknown (0),
+ pedestrian (1),
+ cyclist (2),
+ moped (3),
+ motorcycle (4),
+ passengerCar (5),
+ bus (6),
+ lightTruck (7),
+ heavyTruck (8),
+ trailer (9),
+ specialVehicle (10),
+ tram (11),
+ lightVruVehicle (12),
+ animal (13),
+ agricultural (14),
+ roadSideUnit (15)
+} (0..255)
+
+/**
+ * This DE indicates traffic rules that apply to vehicles at a certain position.
+ *
+ * The value shall be set to:
+ * - `0` - if overtaking is prohibited for all vehicles,
+ * - `1` - if overtaking is prohibited for trucks,
+ * - `2` - if vehicles should pass to the right lane,
+ * - `3` - if vehicles should pass to the left lane.
+ *
+ * @category: Infrastructure information, Traffic information
+ * @revision: Editorial update in V2.1.1
+ */
+TrafficRule ::= ENUMERATED {
+ noPassing (0),
+ noPassingForTrucks (1),
+ passToRight (2),
+ passToLeft (3),
+ ...}
+
+/**
+ * This DE provides information about the presence of a trailer.
+ *
+ * The value shall be set to:
+ * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present.
+ * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value.
+ * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value.
+ * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible.
+ * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer
+ * nor the detection of trailer presence/absence is possible.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1 based on VehicleLengthConfidenceIndication
+*/
+TrailerPresenceInformation ::= ENUMERATED {
+ noTrailerPresent (0),
+ trailerPresentWithKnownLength (1),
+ trailerPresentWithUnknownLength (2),
+ trailerPresenceIsUnknown (3),
+ unavailable (4)
+}
+
+/**
+ * This DE defines the probability that the ego trajectory intercepts with any other object's trajectory on the road.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 0` and `n <= 50`) to indicate the actual probability,
+ * - the values between 51 and 62 are reserved,
+ * - `63`: to indicate that the information is unavailable.
+ *
+ * @unit: 2 %
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+TrajectoryInterceptionProbability ::= INTEGER {
+ unavailable (63)
+} (0..63)
+
+/**
+ * This DE defines the confidence level of the trajectoryInterceptionProbability.
+ *
+ * The value shall be set to:
+ * - `0` - to indicate confidence level less than 50 %,
+ * - `1` - to indicate confidence level greater than or equal to 50 % and less than 70 %,
+ * - `2` - to indicate confidence level greater than or equal to 70 % and less than 90 %,
+ * - `3` - to indicate confidence level greater than or equal to 90%.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+TrajectoryInterceptionConfidence ::= INTEGER {
+ lessthan50percent (0),
+ between50and70Percent (1),
+ between70and90Percent (2),
+ above90Percent (3)
+} (0..3)
+
+/**
+ * This DE represents the time interval between two consecutive message transmissions.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeMilliSecondPos instead.
+ * @unit: 0,001 s
+ * @category: Basic information
+ * @revision: V1.3.1
+ */
+TransmissionInterval::= INTEGER (1..10000)
+
+/**
+ * This DE provides the turning direction.
+ *
+ * The value shall be set to:
+ * - `left` for turning to te left.
+ * - `right` for turing to the right.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+TurningDirection::= ENUMERATED {
+ left,
+ right
+}
+
+/**
+ * This DE represents the smallest circular turn (i.e. U-turn) that the vehicle is capable of making.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 254`) to indicate the applicable value is equal to or less than n x 0,4 metre, and greater than (n-1) x 0,4 metre,
+ * - `254` to indicate that the turning radius is greater than 253 x 0,4 metre = 101.2 metres,
+ * - `255` to indicate that the information is unavailable.
+ *
+ * For vehicle with tracker, the turning radius applies to the vehicle only.
+ *
+ * @category: Vehicle information
+ * @unit 0,4 metre
+ * @revision: Description revised V2.1.1 (the meaning of 254 has changed slightly)
+ */
+TurningRadius ::= INTEGER {
+ outOfRange (254),
+ unavailable (255)
+} (1..255)
+
+/**
+ * This DE represents the duration of a traffic event validity.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeSecond instead.
+ * @unit: 1 s
+ * @category: Basic information
+ * @revision: V1.3.1
+*/
+ValidityDuration::= INTEGER {
+ timeOfDetection(0),
+ oneSecondAfterDetection(1)
+} (0..86400)
+
+/**
+ * This DE represents the Vehicle Descriptor Section (VDS). The values are assigned according to ISO 3779 [6].
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+VDS ::= IA5String (SIZE(6))
+
+/**
+ * This DE represents the value of the sub cause codes of the @ref CauseCode `vehicleBreakdown`.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on cause of vehicle break down is unavailable,
+ * - 1 `lackOfFuel` - in case vehicle break down is due to lack of fuel,
+ * - 2 `lackOfBatteryPower` - in case vehicle break down is caused by lack of battery power,
+ * - 3 `engineProblem` - in case vehicle break down is caused by an engine problem,
+ * - 4 `transmissionProblem` - in case vehicle break down is caused by transmission problem,
+ * - 5 `engineCoolingProblem`- in case vehicle break down is caused by an engine cooling problem,
+ * - 6 `brakingSystemProblem`- in case vehicle break down is caused by a braking system problem,
+ * - 7 `steeringProblem` - in case vehicle break down is caused by a steering problem,
+ * - 8 `tyrePuncture` - in case vehicle break down is caused by tyre puncture,
+ * - 9 `tyrePressureProblem` - in case low tyre pressure in detected,
+ * - 10 `vehicleOnFire` - in case the vehicle is on fire.
+ * - 11-255 - are reserved for future usage.
+ *
+ * @category: Traffic information
+
+ */
+VehicleBreakdownSubCauseCode ::= INTEGER {
+ unavailable (0),
+ lackOfFuel (1),
+ lackOfBatteryPower (2),
+ engineProblem (3),
+ transmissionProblem (4),
+ engineCoolingProblem (5),
+ brakingSystemProblem (6),
+ steeringProblem (7),
+ tyrePuncture (8),
+ tyrePressureProblem (9),
+ vehicleOnFire (10)
+} (0..255)
+
+/**
+ * This DE represents the height of the vehicle, measured from the ground to the highest point, excluding any antennas.
+ * In case vehicles are equipped with adjustable ride heights, camper shells, and any other
+ * equipment which may result in varying height, the largest possible height shall be used.
+ *
+ * The value shall be set to:
+ * - `n` (`n >0` and `n < 127`) indicates the applicable value is equal to or less than n x 0,05 metre, and greater than (n-1) x 0,05 metre,
+ * - `127` indicates that the vehicle width is greater than 6,3 metres,
+ * - `128` indicates that the information in unavailable.
+ *
+ * @unit: 0,05 metre
+ * @category: Vehicle information
+ * @revision: created in V2.1.1
+*/
+VehicleHeight ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+}(1..128)
+
+/**
+ * This DE provides information about the presence of a trailer.
+ *
+ * The value shall be set to:
+ * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present,
+ * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value,
+ * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value,
+ * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible,
+ * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer,
+ * nor the detection of trailer presence/absence is possible.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrailerPresenceInformation instead.
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+*/
+VehicleLengthConfidenceIndication ::= ENUMERATED {
+ noTrailerPresent (0),
+ trailerPresentWithKnownLength (1),
+ trailerPresentWithUnknownLength (2),
+ trailerPresenceIsUnknown (3),
+ unavailable (4)
+}
+
+/**
+ * This DE represents the length of a vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1022`) to indicate the applicable value n is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre,
+ * - `1 022` to indicate that the vehicle length is greater than 102.1 metres,
+ * - `1 023` to indicate that the information in unavailable.
+ *
+ *
+ * @unit: 0,1 metre
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 1 022 has changed slightly).
+ */
+VehicleLengthValue ::= INTEGER {
+ outOfRange(1022),
+ unavailable(1023)
+} (1..1023)
+
+/**
+ * This DE represents the mass of an empty loaded vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 1023`) to indicate that the applicable value is equal to or less than n x 10^5 gramm, and greater than (n-1) x 10^5 gramm,
+ * - `1 023` indicates that the vehicle mass is greater than 102 200 000 g,
+ * - `1 024` indicates the vehicle mass information is unavailable.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @unit: 10^5 gramm
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 1 023 has changed slightly).
+*/
+VehicleMass ::= INTEGER {
+ outOfRange (1023),
+ unavailable(1024)
+} (1..1024)
+
+/**
+ * This DE indicates the role played by a vehicle at a point in time.
+ *
+ * The value shall be set to:
+ * - 0 `default` - to indicate the default vehicle role as indicated by the vehicle type,
+ * - 1 `publicTransport` - to indicate that the vehicle is used to operate public transport service,
+ * - 2 `specialTransport` - to indicate that the vehicle is used for special transport purpose, e.g. oversized trucks,
+ * - 3 `dangerousGoods` - to indicate that the vehicle is used for dangerous goods transportation,
+ * - 4 `roadWork` - to indicate that the vehicle is used to realize roadwork or road maintenance mission,
+ * - 5 `rescue` - to indicate that the vehicle is used for rescue purpose in case of an accident, e.g. as a towing service,
+ * - 6 `emergency` - to indicate that the vehicle is used for emergency mission, e.g. ambulance, fire brigade,
+ * - 7 `safetyCar` - to indicate that the vehicle is used for public safety, e.g. patrol,
+ * - 8 `agriculture` - to indicate that the vehicle is used for agriculture, e.g. farm tractor,
+ * - 9 `commercial` - to indicate that the vehicle is used for transportation of commercial goods,
+ * - 10 `military` - to indicate that the vehicle is used for military purpose,
+ * - 11 `roadOperator` - to indicate that the vehicle is used in road operator missions,
+ * - 12 `taxi` - to indicate that the vehicle is used to provide an authorized taxi service.
+ * - 13 `reserved` - is reserved for future usage.
+ * - 14 `reserved` - is reserved for future usage.
+ * - 15 `reserved` - is reserved for future usage.
+ *
+ * @category: Vehicle Information
+ * @revision: Description updated in V2.1.1 (removed reference to CEN/TS 16157-3)
+ */
+VehicleRole ::= ENUMERATED {
+ default (0),
+ publicTransport (1),
+ specialTransport(2),
+ dangerousGoods (3),
+ roadWork (4),
+ rescue (5),
+ emergency (6),
+ safetyCar (7),
+ agriculture (8),
+ commercial (9),
+ military (10),
+ roadOperator (11),
+ taxi (12),
+ reserved1 (13),
+ reserved2 (14),
+ reserved3 (15)
+}
+
+/**
+ * This DE represents the width of a vehicle, excluding side mirrors and possible similar extensions.
+
+ * The value shall be set to:
+ * - `n` (`n > 0` and `n < 61`) indicates the applicable value is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre,
+ * - `61` indicates that the vehicle width is greater than 6,0 metres,
+ * - `62` indicates that the information in unavailable.
+ *
+ * @unit: 0,1 metre
+ * @category: Vehicle information
+ * @revision: Description updated in V2.1.1 (the meaning of 61 has changed slightly).
+ */
+VehicleWidth ::= INTEGER {
+ outOfRange (61),
+ unavailable (62)
+} (1..62)
+
+/**
+ * This DE represents the vehicle acceleration at vertical direction in the centre of the mass of the empty vehicle.
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-160` for acceleration values equal to or less than -16 m/s^2,
+ * - `n` (`n > -160` and `n <= 0`) to indicate downwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `n` (`n > 0` and `n < 160`) to indicate upwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2,
+ * - `160` for acceleration values greater than 15,9 m/s^2,
+ * - `161` when the data is unavailable.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @category: Vehicle information
+ * @unit: 0,1 m/s^2
+ * @revision: Desciption updated in V2.1.1 (the meaning of 160 has changed slightly).
+ *
+*/
+VerticalAccelerationValue ::= INTEGER {
+ negativeOutOfRange (-160),
+ positiveOutOfRange (160),
+ unavailable (161)
+} (-160 .. 161)
+
+/**
+ * This DE Identifies all the VRU profile types within a cluster.
+ * It consist of a Bitmap encoding VRU profiles, to allow multiple profiles to be indicated in a single cluster (heterogeneous cluster if more than one profile).
+ *
+ * The corresponding bit shall be set to 1 under the following conditions:
+ * - 0 `pedestrian` - indicates that the VRU cluster contains at least one pedestrian VRU,
+ * - 1 `bicycle` - indicates that the VRU cluster contains at least one bicycle VRU member,
+ * - 2 `motorcyclist`- indicates that the VRU cluster contains at least one motorcycle VRU member,
+ * - 3 `animal` - indicates that the VRU cluster contains at least one animal VRU member.
+ *
+ * Otherwise, the corresponding bit shall be set to 0.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+*/
+VruClusterProfiles ::= BIT STRING {
+ pedestrian (0),
+ bicyclist (1),
+ motorcyclist (2),
+ animal (3)
+} (SIZE(4))
+
+/**
+ * This DE represents the possible usage conditions of the VRU device.
+
+ * - The value shall be set to:
+ * - 0 `unavailable` - to indicate that the usage conditions are unavailable,
+ * - 1 `other` - to indicate that the VRU device is in a state not defined below,
+ * - 2 `idle` - to indicate that the human is currently not interacting with the device,
+ * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use,
+ * - 4 `typing` - to indicate that the human is texting or performaing any other manual input activity,
+ * - 5 `calling` - to indicate that the VRU device is currently receiving a call,
+ * - 6 `playingGames` - to indicate that the human is playing games,
+ * - 7 `reading` - to indicate that the human is reading on the VRU device,
+ * - 8 `viewing` - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static.
+ * - value 9 to 255 - are reserved for future usage. Value 255 set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruDeviceUsage ::= ENUMERATED {
+ unavailable (0),
+ other (1),
+ idle (2),
+ listeningToAudio (3),
+ typing (4),
+ calling (5),
+ playingGames (6),
+ reading (7),
+ viewing (8),
+ max (255)
+}
+
+/**
+ * This DE represents the possible VRU environment conditions.
+ *
+ * - The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information on the type of environment is unavailable,
+ * - 1 `intersectionCrossing` - to indicate that the VRU is on an intersection or crossing,
+ * - 2 `zebraCrossing` - to indicate that the VRU is on a zebra crossing (crosswalk),
+ * - 3 `sidewalk` - to indicate that the VRU is on a sidewalk,
+ * - 4 `onVehicleRoad` - to indicate that the VRU is on a traffic lane,
+ * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area.
+ * - value 5 to 255 - are reserved for future usage. Value 255 is set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruEnvironment ::= ENUMERATED {
+ unavailable (0),
+ intersectionCrossing (1),
+ zebraCrossing (2),
+ sidewalk (3),
+ onVehicleRoad (4),
+ protectedGeographicArea (5),
+ max (255)
+}
+
+/**
+ * This DE indicates the status of the possible human control over a VRU vehicle.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information is unavailable,
+ * - 1 `braking` - to indicate that the VRU is braking,
+ * - 2 `hardBraking` - to indicate that the VRU is braking hard,
+ * - 3 `stopPedaling` - to indicate that the VRU stopped pedaling,
+ * - 4 `brakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking,
+ * - 5 `hardBrakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking hard,
+ * - 6 `noReaction` - to indicate that the VRU is not changing its behavior.
+ * - 7 to 255 - are reserved for future usage. Value 255 is set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruMovementControl ::= ENUMERATED {
+ unavailable (0),
+ braking (1),
+ hardBraking (2),
+ stopPedaling (3),
+ brakingAndStopPedaling (4),
+ hardBrakingAndStopPedaling (5),
+ noReaction (6),
+ max (255)
+}
+
+/**
+ * This DE indicates the profile of a pedestrian.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information on is unavailable,
+ * - 1 `ordinary-pedestrian` - to indicate a pedestrian to which no more-specific profile applies,
+ * - 2 `road-worker` - to indicate a pedestrian with the role of a road worker,
+ * - 3 `first-responder` - to indicate a pedestrian with the role of a first responder.
+ * - value 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruSubProfilePedestrian ::= ENUMERATED {
+ unavailable (0),
+ ordinary-pedestrian (1),
+ road-worker (2),
+ first-responder (3),
+ max (15)
+}
+
+/**
+ * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information is unavailable,
+ * - 1 `bicyclist ` - to indicate a cycle and bicyclist,
+ * - 2 `wheelchair-user` - to indicate a wheelchair and its user,
+ * - 3 `horse-and-rider` - to indicate a horse and rider,
+ * - 4 `rollerskater` - to indicate a rolleskater and skater,
+ * - 5 `e-scooter` - to indicate an e-scooter and rider,
+ * - 6 `personal-transporter` - to indicate a personal-transporter and rider,
+ * - 7 `pedelec` - to indicate a pedelec and rider,
+ * - 8 `speed-pedelec` - to indicate a speed-pedelec and rider.
+ * - 9 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruSubProfileBicyclist ::= ENUMERATED {
+ unavailable (0),
+ bicyclist (1),
+ wheelchair-user (2),
+ horse-and-rider (3),
+ rollerskater (4),
+ e-scooter (5),
+ personal-transporter (6),
+ pedelec (7),
+ speed-pedelec (8),
+ max (15)
+}
+
+/**
+ * This DE indicates the profile of a motorcyclist and corresponding vehicle.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable ` - to indicate that the information is unavailable,
+ * - 1 `moped` - to indicate a moped and rider,
+ * - 2 `motorcycle` - to indicate a motorcycle and rider,
+ * - 3 `motorcycle-and-sidecar-right` - to indicate a motorcycle with sidecar on the right and rider,
+ * - 4 `motorcycle-and-sidecar-left` - to indicate a motorcycle with sidecar on the left and rider.
+ * - 5 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruSubProfileMotorcyclist ::= ENUMERATED {
+ unavailable (0),
+ moped (1),
+ motorcycle (2),
+ motorcycle-and-sidecar-right (3),
+ motorcycle-and-sidecar-left (4),
+ max (15)
+}
+
+/**
+ * This DE indicates the profile of an animal
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that the information is unavailable,
+ * - 1 `wild-animal` - to indicate a animal living in the wildness,
+ * - 2 `farm-animal` - to indicate an animal beloning to a farm,
+ * - 3 `service-animal` - to indicate an animal that supports a human being.
+ * - 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruSubProfileAnimal ::= ENUMERATED {
+ unavailable (0),
+ wild-animal (1),
+ farm-animal (2),
+ service-animal (3),
+ max (15)
+}
+
+/**
+ * This DE indicates the approximate size of a VRU including the VRU vehicle used.
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - to indicate that there is no matched size class or due to privacy reasons in profile 1,
+ * - 1 `low` - to indicate that the VRU size class is low depending on the VRU profile,
+ * - 2 `medium` - to indicate that the VRU size class is medium depending on the VRU profile,
+ * - 3 `high` - to indicate that the VRU size class is high depending on the VRU profile.
+ * - 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruSizeClass ::= ENUMERATED {
+ unavailable (0),
+ low (1),
+ medium (2),
+ high (3),
+ max (15)
+}
+
+/**
+ * This DE describes the status of the exterior light switches of a VRU.
+ *
+ * The value of each bit indicates the state of the switch, which commands the corresponding light.
+ * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU
+ * or automatically by a vehicle or VRU system:
+ * - 0 `unavailable` - indicates no information available,
+ * - 1 `backFlashLight ` - indicates the status of the back flash light,
+ * - 2 `helmetLight` - indicates the status of the helmet light,
+ * - 3 `armLight` - indicates the status of the arm light,
+ * - 4 `legLight` - indicates the status of the leg light,
+ * - 5 `wheelLight` - indicates the status of the wheel light.
+ * - Bits 6 to 8 - are reserved for future use.
+ * The bit values do not indicate if the corresponding lamps are alight or not.
+ * If VRU is not equipped with a certain light or if the light switch status information is not available, the corresponding bit shall be set to 0.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruSpecificExteriorLights ::= BIT STRING {
+ unavailable (0),
+ backFlashLight (1),
+ helmetLight (2),
+ armLight (3),
+ legLight (4),
+ wheelLight (5)
+} (SIZE(8))
+
+/**
+ * This DE indicates the perpendicular distance between front and rear axle of the wheel base of vehicle.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 1` and `n < 126`) if the value is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre,
+ * - `126` indicates that the wheel base distance is equal to or greater than 12,5 metres,
+ * - `127` indicates that the information is unavailable.
+ *
+ * @unit 0,1 metre
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
+WheelBaseVehicle ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (1..127)
+
+/**
+ * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees,
+ * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees,
+ * - `127` if the confidence value is not available.
+ *
+ *
+ * @unit 0,1 degrees
+ * @category: GeoReference Information
+ * @revision: Created in V2.1.1
+*/
+Wgs84AngleConfidence ::= INTEGER {
+ outOfRange (126),
+ unavailable (127)
+} (1..127)
+
+
+/**
+ * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used.
+ *
+ * @unit 0,1 degrees
+ * @category: GeoReference Information
+ * @revision: Created in V2.1.1
+*/
+Wgs84AngleValue ::= INTEGER {
+ wgs84North (0),
+ wgs84East (900),
+ wgs84South (1800),
+ wgs84West (2700),
+ doNotUse (3600),
+ unavailable (3601)
+} (0..3601)
+
+/**
+ * This DE represents the World Manufacturer Identifier (WMI). The values are assigned according to ISO 3779 [6].
+ *
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+WMInumber ::= IA5String (SIZE(1..3))
+
+/**
+ * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` .
+ *
+ * The value shall be set to:
+ * - 0 `unavailable` - in case further detailed information on wrong way driving event is unavailable,
+ * - 1 `wrongLane` - in case vehicle is driving on a lane for which it has no authorization to use,
+ * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed,
+ * - 3-255 - reserved for future usage.
+ *
+ * @category: Traffic information
+ * @revision: V1.3.1
+ */
+WrongWayDrivingSubCauseCode ::= INTEGER {
+ unavailable (0),
+ wrongLane (1),
+ wrongDirection (2)
+} (0..255)
+
+/**
+ * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %.
+ * If required, the confidence level can be defined by the corresponding standards applying this DE.
+ *
+ * The value shall be set to:
+ * - `0` if the confidence value is equal to or less than 0,01 degree/second,
+ * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second,
+ * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second,
+ * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second,
+ * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second,
+ * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second,
+ * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second,
+ * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second,
+ * - `8` if the confidence value is unavailable.
+ *
+ * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by
+ * several reasons, such as:
+ * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
+ * - the sensor cannot calculate the accuracy due to lack of variables, or
+ * - there has been a vehicle bus (e.g. CAN bus) error.
+ * In all 3 cases above, the yaw rate value may be valid and used by the application.
+ *
+ * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the
+ * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application.
+ *
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
+YawRateConfidence ::= ENUMERATED {
+ degSec-000-01 (0),
+ degSec-000-05 (1),
+ degSec-000-10 (2),
+ degSec-001-00 (3),
+ degSec-005-00 (4),
+ degSec-010-00 (5),
+ degSec-100-00 (6),
+ outOfRange (7),
+ unavailable (8)
+}
+
+/**
+ * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded
+ * vehicle. The leading sign denotes the direction of rotation.
+ *
+ * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
+ *
+ * The value shall be set to:
+ * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right,
+ * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s,
+ and greater than (n-1) x 0,01 degrees/s,
+ * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s,
+ and greater than (n-1) x 0,01 degrees/s,
+ * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left,
+ * - `32 767` to indicate that the information is not available.
+ *
+ * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified.
+ * The reading instant should be the same as for the vehicle acceleration.
+ *
+ * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
+ *
+ * @unit: 0,01 degree per second.
+ * @category: Vehicle Information
+ * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly).
+*/
+YawRateValue ::= INTEGER {
+ negativeOutOfRange (-32766),
+ positiveOutOfRange (32766),
+ unavailable (32767)
+} (-32766..32767)
+
+----------------------------------------
+-- Specification of CDD Data Frames:
+----------------------------------------
+
+/**
+ * This DF represents an acceleration vector with associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field polarAcceleration: the representation of the acceleration vector in a polar or cylindrical coordinate system.
+ *
+ * @field cartesianAcceleration: the representation of the acceleration vector in a cartesian coordinate system.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+Acceleration3dWithConfidence::= CHOICE {
+ polarAcceleration AccelerationPolarWithZ,
+ cartesianAcceleration AccelerationCartesian
+}
+
+/**
+ * This DF represents an acceleration vector in a polar or cylindrical coordinate system.
+
+ * It shall include the following components:
+ *
+ * @field accelerationMagnitude: magnitude of the acceleration vector projected onto the reference plane, with the associated confidence value.
+ *
+ * @field accelerationDirection: polar angle of the acceleration vector projected onto the reference plane, with the associated confidence value.
+ *
+ * @field zAcceleration: the optional z component of the acceleration vector along the reference axis of the cylindrical coordinate system, with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+AccelerationPolarWithZ::= SEQUENCE{
+ accelerationMagnitude AccelerationMagnitude,
+ accelerationDirection CartesianAngle,
+ zAcceleration AccelerationComponent OPTIONAL
+}
+
+/**
+ * This DF represents a acceleration vector in a cartesian coordinate system.
+
+ * It shall include the following components:
+ *
+ * @field xAcceleration: the x component of the acceleration vector with the associated confidence value.
+ *
+ * @field yAcceleration: the y component of the acceleration vector with the associated confidence value.
+ *
+ * @field zAcceleration: the optional z component of the acceleration vector with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+AccelerationCartesian::= SEQUENCE{
+ xAcceleration AccelerationComponent,
+ yAcceleration AccelerationComponent,
+ zAcceleration AccelerationComponent OPTIONAL
+}
+
+/**
+ * This DF represents an acceleration component along with a confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the confidence value associated to the provided value.
+ *
+ * @category: Kinematic Information
+ * @revision: Created in V2.1.1
+ */
+AccelerationComponent ::= SEQUENCE {
+ value AccelerationValue,
+ confidence AccelerationConfidence
+}
+
+/**
+ * This DF represents information associated to changes in acceleration.
+ *
+ * It shall include the following components:
+ *
+ * @field accelOrDecel: the indication of an acceleration change.
+ *
+ * @field actionDeltaTime: the period over which the acceleration change action is performed.
+ *
+ * @category: Kinematic Information
+ * @revision: Created in V2.1.1
+ */
+AccelerationChangeIndication ::= SEQUENCE {
+ accelOrDecel AccelerationChange,
+ actionDeltaTime DeltaTimeTenthOfSecond,
+ ...
+}
+
+/**
+ * This DF represents the magnitude of the acceleration vector and associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field accelerationMagnitudeValue: the magnitude of the acceleration vector.
+ *
+ * @field accelerationConfidence: the confidence value of the magnitude value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+AccelerationMagnitude::= SEQUENCE {
+ accelerationMagnitudeValue AccelerationMagnitudeValue,
+ accelerationConfidence AccelerationConfidence
+}
+
+/**
+ * This DF represents an identifier used to describe a protocol action taken by an ITS-S.
+ *
+ * It shall include the following components:
+ *
+ * @field originatingStationId: Id of the ITS-S that takes the action.
+ *
+ * @field sequenceNumber: a sequence number.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1 based on @ref ActionID.
+ */
+ActionId ::= SEQUENCE {
+ originatingStationId StationId,
+ sequenceNumber SequenceNumber
+}
+
+/**
+ * This DF represents an identifier used to describe a protocol action taken by an ITS-S.
+ *
+ * It shall include the following components:
+ *
+ * @field originatingStationId: Id of the ITS-S that takes the action.
+ *
+ * @field sequenceNumber: a sequence number.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref ActionId instead.
+ * @category: Communication information
+ * @revision: V1.3.1
+ */
+ActionID ::= SEQUENCE {
+ originatingStationId StationID,
+ sequenceNumber SequenceNumber
+}
+
+/**
+ * This DF shall contain a list of @ref ActionId.
+
+ * @category: Communication Information
+ * @revision: Created in V2.1.1 based on ReferenceDenms from DENM Release 1
+*/
+ActionIdList::= SEQUENCE (SIZE(1..8, ...)) OF ActionId
+
+/**
+ * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * It shall include the following components:
+ *
+ * @field altitudeValue: altitude of a geographical point.
+ *
+ * @field altitudeConfidence: confidence level of the altitudeValue.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead.
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1
+ */
+Altitude ::= SEQUENCE {
+ altitudeValue AltitudeValue,
+ altitudeConfidence AltitudeConfidence
+}
+
+/**
+ * This DE represents a general container for usage in various types of messages.
+ *
+ * It shall include the following components:
+ *
+ * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in.
+ *
+ * @field referencePosition: the reference position of the station that has generated the message that contains the basic container.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+BasicContainer ::= SEQUENCE {
+ stationType TrafficParticipantType,
+ referencePosition ReferencePositionWithConfidence,
+ ...
+}
+
+/**
+ * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: The angle value which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: The confidence value associated to the provided value.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
+CartesianAngle ::= SEQUENCE {
+ value CartesianAngleValue,
+ confidence AngleConfidence
+}
+
+/**
+ * This DF represents an angular velocity component along with a confidence value in a cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: The angular velocity component.
+ *
+ * @field confidence: The confidence value associated to the provided value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+CartesianAngularVelocityComponent ::= SEQUENCE {
+ value CartesianAngularVelocityComponentValue,
+ confidence AngularSpeedConfidence
+}
+
+/**
+ * This DF represents a general Data Frame to describe an angular acceleration component along with a confidence value in a cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: The angular acceleration component value.
+ *
+ * @field confidence: The confidence value associated to the provided value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+CartesianAngularAccelerationComponent ::= SEQUENCE {
+ value CartesianAngularAccelerationComponentValue,
+ confidence AngularAccelerationConfidence
+}
+
+/**
+ * This DF represents a coordinate along with a confidence value in a cartesian reference system.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the coordinate value, which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the coordinate confidence value associated to the provided value.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+CartesianCoordinateWithConfidence ::= SEQUENCE {
+ value CartesianCoordinateLarge,
+ confidence CoordinateConfidence
+}
+
+/**
+ * This DF represents a position in a two- or three-dimensional cartesian coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field xCoordinate: the X coordinate value.
+ *
+ * @field yCoordinate: the Y coordinate value.
+ *
+ * @field zCoordinate: the optional Z coordinate value.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+CartesianPosition3d::=SEQUENCE{
+ xCoordinate CartesianCoordinate,
+ yCoordinate CartesianCoordinate,
+ zCoordinate CartesianCoordinate OPTIONAL
+}
+
+/**
+ * This DF represents a position in a two- or three-dimensional cartesian coordinate system with an associated confidence level for each coordinate.
+ *
+ * It shall include the following components:
+ *
+ * @field xCoordinate: the X coordinate value with the associated confidence level.
+ *
+ * @field yCoordinate: the Y coordinate value with the associated confidence level.
+ *
+ * @field zCoordinate: the optional Z coordinate value with the associated confidence level.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+CartesianPosition3dWithConfidence::= SEQUENCE{
+ xCoordinate CartesianCoordinateWithConfidence,
+ yCoordinate CartesianCoordinateWithConfidence,
+ zCoordinate CartesianCoordinateWithConfidence OPTIONAL
+}
+
+/**
+ * This DF is a representation of the cause code value of a traffic event.
+ *
+ * It shall include the following components:
+ *
+ * @field causeCode: the main cause of a detected event.
+ *
+ * @field subCauseCode: the subordinate cause of a detected event.
+ *
+ * The semantics of the entire DF are completely defined by the component causeCode. The interpretation of the subCauseCode may
+ * provide additional information that is not strictly necessary to understand the causeCode itself, and is therefore optional.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref CauseCodeV2 instead.
+ *
+ * @category: Traffic information
+ * @revision: Editorial update in V2.1.1
+ */
+CauseCode ::= SEQUENCE {
+ causeCode CauseCodeType,
+ subCauseCode SubCauseCodeType,
+ ...
+}
+
+/**
+ * This DF is a representation of the cause code value and associated sub cause code value of a traffic event.
+ *
+ * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2.
+ * @category: Traffic information
+ * @revision: Created in V2.1.1
+ */
+CauseCodeChoice::= CHOICE {
+ reserved0 SubCauseCodeType,
+ trafficCondition1 TrafficConditionSubCauseCode,
+ accident2 AccidentSubCauseCode,
+ roadworks3 RoadworksSubCauseCode,
+ reserved4 SubCauseCodeType,
+ impassability5 SubCauseCodeType,
+ adverseWeatherCondition-Adhesion6 AdverseWeatherCondition-AdhesionSubCauseCode,
+ aquaplaning7 SubCauseCodeType,
+ reserved8 SubCauseCodeType,
+ hazardousLocation-SurfaceCondition9 HazardousLocation-SurfaceConditionSubCauseCode,
+ hazardousLocation-ObstacleOnTheRoad10 HazardousLocation-ObstacleOnTheRoadSubCauseCode,
+ hazardousLocation-AnimalOnTheRoad11 HazardousLocation-AnimalOnTheRoadSubCauseCode,
+ humanPresenceOnTheRoad12 HumanPresenceOnTheRoadSubCauseCode,
+ reserved13 SubCauseCodeType,
+ wrongWayDriving14 WrongWayDrivingSubCauseCode,
+ rescueAndRecoveryWorkInProgress15 RescueAndRecoveryWorkInProgressSubCauseCode,
+ reserved16 SubCauseCodeType,
+ adverseWeatherCondition-ExtremeWeatherCondition17 AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode,
+ adverseWeatherCondition-Visibility18 AdverseWeatherCondition-VisibilitySubCauseCode,
+ adverseWeatherCondition-Precipitation19 AdverseWeatherCondition-PrecipitationSubCauseCode,
+ violence20 SubCauseCodeType,
+ reserved21 SubCauseCodeType,
+ reserved22 SubCauseCodeType,
+ reserved23 SubCauseCodeType,
+ reserved24 SubCauseCodeType,
+ reserved25 SubCauseCodeType,
+ slowVehicle26 SlowVehicleSubCauseCode,
+ dangerousEndOfQueue27 DangerousEndOfQueueSubCauseCode,
+ reserved28 SubCauseCodeType,
+ reserved29 SubCauseCodeType,
+ reserved30 SubCauseCodeType,
+ reserved31 SubCauseCodeType,
+ reserved32 SubCauseCodeType,
+ reserved33 SubCauseCodeType,
+ reserved34 SubCauseCodeType,
+ reserved35 SubCauseCodeType,
+ reserved36 SubCauseCodeType,
+ reserved37 SubCauseCodeType,
+ reserved38 SubCauseCodeType,
+ reserved39 SubCauseCodeType,
+ reserved40 SubCauseCodeType,
+ reserved41 SubCauseCodeType,
+ reserved42 SubCauseCodeType,
+ reserved43 SubCauseCodeType,
+ reserved44 SubCauseCodeType,
+ reserved45 SubCauseCodeType,
+ reserved46 SubCauseCodeType,
+ reserved47 SubCauseCodeType,
+ reserved48 SubCauseCodeType,
+ reserved49 SubCauseCodeType,
+ reserved50 SubCauseCodeType,
+ reserved51 SubCauseCodeType,
+ reserved52 SubCauseCodeType,
+ reserved53 SubCauseCodeType,
+ reserved54 SubCauseCodeType,
+ reserved55 SubCauseCodeType,
+ reserved56 SubCauseCodeType,
+ reserved57 SubCauseCodeType,
+ reserved58 SubCauseCodeType,
+ reserved59 SubCauseCodeType,
+ reserved60 SubCauseCodeType,
+ reserved61 SubCauseCodeType,
+ reserved62 SubCauseCodeType,
+ reserved63 SubCauseCodeType,
+ reserved64 SubCauseCodeType,
+ reserved65 SubCauseCodeType,
+ reserved66 SubCauseCodeType,
+ reserved67 SubCauseCodeType,
+ reserved68 SubCauseCodeType,
+ reserved69 SubCauseCodeType,
+ reserved70 SubCauseCodeType,
+ reserved71 SubCauseCodeType,
+ reserved72 SubCauseCodeType,
+ reserved73 SubCauseCodeType,
+ reserved74 SubCauseCodeType,
+ reserved75 SubCauseCodeType,
+ reserved76 SubCauseCodeType,
+ reserved77 SubCauseCodeType,
+ reserved78 SubCauseCodeType,
+ reserved79 SubCauseCodeType,
+ reserved80 SubCauseCodeType,
+ reserved81 SubCauseCodeType,
+ reserved82 SubCauseCodeType,
+ reserved83 SubCauseCodeType,
+ reserved84 SubCauseCodeType,
+ reserved85 SubCauseCodeType,
+ reserved86 SubCauseCodeType,
+ reserved87 SubCauseCodeType,
+ reserved88 SubCauseCodeType,
+ reserved89 SubCauseCodeType,
+ reserved90 SubCauseCodeType,
+ vehicleBreakdown91 VehicleBreakdownSubCauseCode,
+ postCrash92 PostCrashSubCauseCode,
+ humanProblem93 HumanProblemSubCauseCode,
+ stationaryVehicle94 StationaryVehicleSubCauseCode,
+ emergencyVehicleApproaching95 EmergencyVehicleApproachingSubCauseCode,
+ hazardousLocation-DangerousCurve96 HazardousLocation-DangerousCurveSubCauseCode,
+ collisionRisk97 CollisionRiskSubCauseCode,
+ signalViolation98 SignalViolationSubCauseCode,
+ dangerousSituation99 DangerousSituationSubCauseCode,
+ railwayLevelCrossing100 RailwayLevelCrossingSubCauseCode,
+ reserved101 SubCauseCodeType,
+ reserved102 SubCauseCodeType,
+ reserved103 SubCauseCodeType,
+ reserved104 SubCauseCodeType,
+ reserved105 SubCauseCodeType,
+ reserved106 SubCauseCodeType,
+ reserved107 SubCauseCodeType,
+ reserved108 SubCauseCodeType,
+ reserved109 SubCauseCodeType,
+ reserved110 SubCauseCodeType,
+ reserved111 SubCauseCodeType,
+ reserved112 SubCauseCodeType,
+ reserved113 SubCauseCodeType,
+ reserved114 SubCauseCodeType,
+ reserved115 SubCauseCodeType,
+ reserved116 SubCauseCodeType,
+ reserved117 SubCauseCodeType,
+ reserved118 SubCauseCodeType,
+ reserved119 SubCauseCodeType,
+ reserved120 SubCauseCodeType,
+ reserved121 SubCauseCodeType,
+ reserved122 SubCauseCodeType,
+ reserved123 SubCauseCodeType,
+ reserved124 SubCauseCodeType,
+ reserved125 SubCauseCodeType,
+ reserved126 SubCauseCodeType,
+ reserved127 SubCauseCodeType,
+ reserved128 SubCauseCodeType
+ }
+
+/**
+ * This DF is an alternative representation of the cause code value of a traffic event.
+ *
+ * It shall include the following components:
+ *
+ * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code.
+ *
+ * The semantics of the entire DF are completely defined by the component causeCode. The interpretation of the subCauseCode may
+ * provide additional information that is not strictly necessary to understand the causeCode itself, and is therefore optional.
+ *
+ * @category: Traffic information
+ * @revision: Created in V2.1.1
+ */
+CauseCodeV2 ::= SEQUENCE {
+ ccAndScc CauseCodeChoice,
+ ...
+}
+
+/**
+ * The DF describes the position of a CEN DSRC road side equipment.
+ *
+ * It shall include the following components:
+ *
+ * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment.
+ *
+ * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment.
+ *
+ * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment.
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId)
+ */
+CenDsrcTollingZone ::= SEQUENCE {
+ protectedZoneLatitude Latitude,
+ protectedZoneLongitude Longitude,
+ cenDsrcTollingZoneId ProtectedZoneId OPTIONAL,
+ ...
+}
+
+/**
+ *
+ * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position.
+ * If this component is absent, the externally specified reference position represents the shape's reference point.
+ *
+ * @field radius: the radius of the circular area.
+ *
+ * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis.
+ *
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+ */
+CircularShape ::= SEQUENCE {
+ shapeReferencePoint CartesianPosition3d OPTIONAL,
+ radius StandardLength12b,
+ height StandardLength12b OPTIONAL
+}
+
+/**
+ * This DF indicates the opening/closure status of the lanes of a carriageway.
+ *
+ * It shall include the following components:
+ *
+ * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known.
+ * It indicates the open/closing status of inner hard shoulder lanes.
+ *
+ * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known.
+ * It indicates the open/closing status of outer hard shoulder lanes.
+ *
+ * @field drivingLaneStatus: this information is optional and shall be included if the information is known.
+ * It indicates the open/closing status of driving lanes.
+ * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present.
+ *
+ * @category: Infrastructure information, Road topology information
+ * @revision: Description revised in V2.1.1
+ */
+ClosedLanes ::= SEQUENCE {
+ innerhardShoulderStatus HardShoulderStatus OPTIONAL,
+ outerhardShoulderStatus HardShoulderStatus OPTIONAL,
+ drivingLaneStatus DrivingLaneStatus OPTIONAL,
+ ...
+}
+
+/**
+ * This DF provides information about the breakup of a cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterBreakupReason: indicates the reason for breakup.
+ *
+ * @field breakupTime: indicates the time of breakup.
+ *
+ * @category: Cluster Information
+ * @revision: Created in V2.1.1
+ */
+ClusterBreakupInfo ::= SEQUENCE {
+ clusterBreakupReason ClusterBreakupReason,
+ breakupTime DeltaTimeQuarterSecond,
+ ...
+}
+
+/**
+ * This DF provides information about the joining of a cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterId: indicates the identifier of the cluster.
+ *
+ * @field joinTime: indicates the time of joining.
+ *
+ * @category: Cluster Information
+ * @revision: Created in V2.1.1
+ */
+ClusterJoinInfo ::= SEQUENCE {
+ clusterId Identifier1B,
+ joinTime DeltaTimeQuarterSecond,
+ ...
+}
+
+/**
+ * The DF provides information about the leaving of a cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterId: indicates the cluster.
+ *
+ * @field clusterLeaveReason: indicates the reason for leaving.
+ *
+ * @category: Cluster Information
+ * @revision: Created in V2.1.1
+ */
+ClusterLeaveInfo ::= SEQUENCE {
+ clusterId Identifier1B,
+ clusterLeaveReason ClusterLeaveReason,
+ ...
+}
+
+/**
+ * This DF represents a column of a lower triangular positive semi-definite matrix and consists of a list of correlation cell values ordered by rows.
+ * Given a matrix "A" of size n x n, the number of columns to be included in the lower triangular matrix is k=n-1.
+ * Each column "i" of the lower triangular matrix then contains k-(i-1) values (ordered by rows from 1 to n-1), where "i" refers to the column number count
+ * starting at 1 from the left.
+ *
+ * @category: Sensing Information
+ * @revision: Created in V2.1.1
+*/
+CorrelationColumn ::= SEQUENCE SIZE (1..13,...) OF CorrelationCellValue
+
+/**
+ * This DF represents the curvature of the vehicle trajectory and the associated confidence value.
+ * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory.
+ *
+ * It shall include the following components:
+ *
+ * @field curvatureValue: Detected curvature of the vehicle trajectory.
+ *
+ * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level.
+ *
+ * @category: Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
+Curvature ::= SEQUENCE {
+ curvatureValue CurvatureValue,
+ curvatureConfidence CurvatureConfidence
+}
+
+/**
+ * This DF provides a description of dangerous goods being carried by a heavy vehicle.
+ *
+ * It shall include the following components:
+ *
+ * @field dangerousGoodsType: Type of dangerous goods.
+ *
+ * @field unNumber: a 4-digit number that identifies the substance of the dangerous goods as specified in
+ * United Nations Recommendations on the Transport of Dangerous Goods - Model Regulations [4],
+ *
+ * @field elevatedTemperature: whether the carried dangerous goods are transported at high temperature.
+ * If yes, the value shall be set to TRUE,
+ *
+ * @field tunnelsRestricted: whether the heavy vehicle carrying dangerous goods is restricted to enter tunnels.
+ * If yes, the value shall be set to TRUE,
+ *
+ * @field limitedQuantity: whether the carried dangerous goods are packed with limited quantity.
+ * If yes, the value shall be set to TRUE,
+ *
+ * @field emergencyActionCode: physical signage placard at the vehicle that carries information on how an emergency
+ * service should deal with an incident. This component is optional; it shall be present if the information is available.
+ *
+ * @field phoneNumber: contact phone number of assistance service in case of incident or accident.
+ * This component is optional, it shall be present if the information is available.
+ *
+ * @field companyName: name of company that manages the transportation of the dangerous goods.
+ * This component is optional; it shall be present if the information is available.
+ *
+ * @category Vehicle information
+ * @revision: V1.3.1
+ */
+DangerousGoodsExtended ::= SEQUENCE {
+ dangerousGoodsType DangerousGoodsBasic,
+ unNumber INTEGER (0..9999),
+ elevatedTemperature BOOLEAN,
+ tunnelsRestricted BOOLEAN,
+ limitedQuantity BOOLEAN,
+ emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,
+ phoneNumber PhoneNumber OPTIONAL,
+ companyName UTF8String (SIZE (1..24)) OPTIONAL,
+ ...
+}
+
+/**
+ * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point.
+ *
+ * It shall include the following components:
+ *
+ * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position.
+ *
+ * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position.
+ *
+ * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position.
+ *
+ * @category: GeoReference information
+ * @revision: V1.3.1
+ */
+DeltaReferencePosition ::= SEQUENCE {
+ deltaLatitude DeltaLatitude,
+ deltaLongitude DeltaLongitude,
+ deltaAltitude DeltaAltitude
+}
+
+/**
+ * This DF represents a portion of digital map. It shall contain a list of waypoints @ref ReferencePosition.
+ *
+ * @category: GeoReference information
+ * @revision: V1.3.1
+ */
+DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition
+
+/**
+ *
+ * This DF represents the shape of an elliptical area or right elliptical cylinder that is centred on the shape's reference point.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: optional reference point which represents the centre of the ellipse, relative to an externally specified reference position.
+ * If this component is absent, the externally specified reference position represents the shape's reference point.
+ *
+ * @field semiMajorAxisLength: half length of the major axis of the ellipse.
+ *
+ * @field semiMinorAxisLength: half length of the minor axis of the ellipse.
+ *
+ * @field orientation: the optional orientation of the major axis of the ellipse in the WGS84 coordinate system.
+ *
+ * @field height: the optional height, present if the shape is a right elliptical cylinder extending in the positive z-axis.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+
+EllipticalShape ::= SEQUENCE {
+ shapeReferencePoint CartesianPosition3d OPTIONAL,
+ semiMajorAxisLength StandardLength12b,
+ semiMinorAxisLength StandardLength12b,
+ orientation Wgs84AngleValue OPTIONAL,
+ height StandardLength12b OPTIONAL
+}
+
+/**
+ * This DF represents the Euler angles which describe the orientation of an object bounding box in a Cartesian coordinate system with an associated confidence level for each angle.
+ *
+ * It shall include the following components:
+ *
+ * @field zAngle: z-angle of object bounding box at the time of measurement, with the associated confidence.
+ * The angle is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule, starting from the x-axis.
+ * This extrinsic rotation shall be applied around the centre point of the object bounding box before all other rotations.
+ *
+ * @field yAngle: optional y-angle of object bounding box at the time of measurement, with the associated confidence.
+ * The angle is measured with positive values considering the object orientation turning around the y-axis using the right-hand rule, starting from the z-axis.
+ * This extrinsic rotation shall be applied around the centre point of the object bounding box after the rotation by zAngle and before the rotation by xAngle.
+ *
+ * @field xAngle: optional x-angle of object bounding box at the time of measurement, with the associated confidence.
+ * The angle is measured with positive values considering the object orientation turning around the x-axis using the right-hand rule, starting from the z-axis.
+ * This extrinsic rotation shall be applied around the centre point of the object bounding box after all other rotations.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+*/
+EulerAnglesWithConfidence ::= SEQUENCE {
+ zAngle CartesianAngle,
+ yAngle CartesianAngle OPTIONAL,
+ xAngle CartesianAngle OPTIONAL
+}
+
+/**
+ *
+ * This DF represents a vehicle category according to the UNECE/TRANS/WP.29/78/Rev.4 [16].
+ * The following options are available:
+ *
+ * @field euVehicleCategoryL: indicates a vehicle in the L category.
+ *
+ * @field euVehicleCategoryM: indicates a vehicle in the M category.
+ *
+ * @field euVehicleCategoryN: indicates a vehicle in the N category.
+ *
+ * @field euVehicleCategoryO: indicates a vehicle in the O category.
+ *
+ * @field euVehicleCategoryT: indicates a vehicle in the T category.
+ *
+ * @field euVehicleCategoryG: indicates a vehicle in the G category.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
+EuVehicleCategoryCode ::= CHOICE {
+ euVehicleCategoryL EuVehicleCategoryL,
+ euVehicleCategoryM EuVehicleCategoryM,
+ euVehicleCategoryN EuVehicleCategoryN,
+ euVehicleCategoryO EuVehicleCategoryO,
+ euVehicleCategoryT NULL,
+ euVehicleCategoryG NULL
+ }
+
+/**
+ * The DF shall contain a list of @ref EventPoint.
+ *
+ * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list.
+ * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF.
+ *
+ * @category: GeoReference information, Traffic information
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref EventZone instead.
+ * @revision: Generalized the semantics in V2.1.1
+ */
+EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint
+
+/**
+ * This DF provides information related to an event at a defined position.
+ *
+ * It shall include the following components:
+ *
+ * @field eventPosition: offset position of a detected event point to a defined position.
+ *
+ * @field eventDeltaTime: optional time travelled by the detecting ITS-S since the previous detected event point.
+ *
+ * @field informationQuality: Information quality of the detection for this event point.
+ *
+ * @category: GeoReference information, Traffic information
+ * @revision: generalized the semantics in V2.1.1
+ */
+EventPoint ::= SEQUENCE {
+ eventPosition DeltaReferencePosition,
+ eventDeltaTime PathDeltaTime OPTIONAL,
+ informationQuality InformationQuality
+}
+
+/**
+ * The DF shall contain a list of @ref EventPoint, where all @ref EventPoint either contain the COMPONENT eventDeltaTime
+ * or do not contain the COMPONENT eventDeltaTime.
+ *
+ * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list.
+ * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF.
+ *
+ * @category: GeoReference information, Traffic information
+ * @revision: created in V2.1.1 based on EventHistory
+ */
+EventZone::= EventHistory
+ ((WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime PRESENT})) |
+ (WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime ABSENT})))
+
+/**
+ * This DF indicates a transversal position in relation to the different lanes of the road.
+ * It is an extension of DE_LanePosition to cover locations (sidewalks, bicycle paths), where Vehicle ITS-S would normally not be present.
+ *
+ * The following options are available:
+ *
+ * @field trafficLanePosition: a position on a traffic lane.
+ *
+ * @field nonTrafficLanePosition: a position on a lane which is not a traffic lane.
+ *
+ * @field trafficIslandPosition: a position on a traffic island
+ *
+ * @field mapPosition: a position on a lane identified in a MAPEM.
+ *
+ * @category: Road Topology information
+ * @revision: created in V2.1.1
+ */
+GeneralizedLanePosition::= CHOICE {
+ trafficLanePosition LanePosition,
+ nonTrafficLanePosition LanePositionAndType,
+ trafficIslandPosition TrafficIslandPosition,
+ mapPosition MapPosition,
+ ...
+}
+
+/**
+ * This DF represents the Heading in a WGS84 co-ordinates system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * It shall include the following components:
+ *
+ * @field headingValue: the heading value.
+ *
+ * @field headingConfidence: the confidence value of the heading value with a predefined confidence level.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84Angle instead.
+ * @category: Kinematic Information
+ * @revision: Description revised in V2.1.1
+ */
+Heading ::= SEQUENCE {
+ headingValue HeadingValue,
+ headingConfidence HeadingConfidence
+}
+
+
+/**
+ * This DF provides information associated to heading change indicators such as a change of direction.
+ *
+ * It shall include the following components:
+ *
+ * @field direction: the direction of heading change value.
+ *
+ * @field actionDeltaTime: the period over which a direction change action is performed.
+ *
+ * @category: Kinematic Information
+ * @revision: created in V2.1.1
+ */
+HeadingChangeIndication ::= SEQUENCE {
+ direction TurningDirection,
+ actionDeltaTime DeltaTimeTenthOfSecond,
+ ...
+}
+
+/**
+ * This DF represents a frequency channel
+ *
+ * It shall include the following components:
+ *
+ * @field centreFrequency: the centre frequency of the channel in 10^(exp+2) Hz (where exp is exponent)
+ *
+ * @field channelWidth: width of the channel in 10^exp Hz (where exp is exponent)
+ *
+ * @field exponent: exponent of the power of 10 used in the calculation of the components above.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+*/
+InterferenceManagementChannel ::= SEQUENCE {
+ centreFrequency INTEGER (1 .. 99999),
+ channelWidth INTEGER (0 .. 9999),
+ exponent INTEGER (0 .. 15)
+}
+
+/**
+ *
+ * This DF represents a zone inside which the ITS communication should be restricted in order to manage interference.
+ *
+ * It shall include the following components:
+ *
+ * @field zoneDefinition: contains the geographical definition of the zone.
+ *
+ * @field managementInfo: contains interference management information applicable in the zone defined in the component zoneDefinition.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
+InterferenceManagementZone ::= SEQUENCE {
+ zoneDefinition InterferenceManagementZoneDefinition,
+ managementInfo InterferenceManagementInfo
+}
+
+/**
+ * This DF represents the geographical definition of the zone where band sharing occurs.
+ *
+ * It shall include the following components:
+ *
+ * @field interferenceManagementZoneLatitude: Latitude of the centre point of the interference management zone.
+ *
+ * @field interferenceManagementZoneLongitude: Longitude of the centre point of the interference management zone.
+ *
+ * @field interferenceManagementZoneId: optional identification of the interference management zone.
+ *
+ * @field interferenceManagementZoneShape: shape of the interference management zone placed at the centre point.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
+InterferenceManagementZoneDefinition::= SEQUENCE{
+ interferenceManagementZoneLatitude Latitude,
+ interferenceManagementZoneLongitude Longitude,
+ interferenceManagementZoneId ProtectedZoneId OPTIONAL,
+ interferenceManagementZoneShape Shape (WITH COMPONENTS{..., radial ABSENT, radialShapes ABSENT}) OPTIONAL,
+ ...
+}
+
+/**
+ * This DF shall contain a list of up to 16 definitions containing interference management information, per affected frequency channels.
+ *
+ * @category: Communication information.
+ * @revision: created in V2.1.1
+ */
+InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel
+
+
+/**
+ * This DF contains interference management information for one affected frequency channel.
+ *
+ * It shall include the following components:
+ *
+ * @field interferenceManagementChannel: frequency channel for which the zone should be applied interference management
+ *
+ * @field interferenceManagementZoneType: type of the interference management zone.
+ *
+ * @field interferenceManagementMitigationType: optional type of the mitigation to be used in the interference management zone.
+ * In the case where no mitigation should be applied by the ITS-S, this is indicated by the field interferenceManagementMitigationType being absent.
+ *
+ * @field expiryTime: optional time at which the validity of the interference management communication zone will expire.
+ * This component is present when the interference management is temporarily valid
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
+InterferenceManagementInfoPerChannel ::= SEQUENCE {
+ interferenceManagementChannel InterferenceManagementChannel,
+ interferenceManagementZoneType InterferenceManagementZoneType,
+ interferenceManagementMitigationType MitigationForTechnologies OPTIONAL,
+ expiryTime TimestampIts OPTIONAL,
+ ...
+}
+
+/**
+ * This DF shall contain a list of up to 16 interference management zones.
+ *
+ * **EXAMPLE**: An interference management communication zone may be defined around a CEN DSRC road side equipment or an urban rail operational area.
+ *
+ * @category: Communication information
+ * @revision: created in V2.1.1
+ */
+InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone
+
+/**
+ * This DF represents a unique id for an intersection, in accordance with ETSI TS 103 301 [15].
+ *
+ * It shall include the following components:
+ *
+ * @field region: the optional identifier of the entity that is responsible for the region in which the intersection is placed.
+ * It is the duty of that entity to guarantee that the @ref Id is unique within the region.
+ *
+ * @field id: the identifier of the intersection
+ *
+ * @note: when the component region is present, the IntersectionReferenceId is guaranteed to be globally unique.
+ * @category: Road topology information
+ * @revision: created in V2.1.1
+ */
+IntersectionReferenceId ::= SEQUENCE {
+ region Identifier2B OPTIONAL,
+ id Identifier2B
+}
+
+/**
+ * This DF shall contain a list of waypoints @ref ReferencePosition.
+ *
+ * @category: GeoReference information
+ * @revision: Editorial update in V2.1.1
+ */
+ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition
+
+/**
+ * This DF represents a common message header for application and facilities layer messages.
+ * It is included at the beginning of an ITS message as the message header.
+ *
+ * It shall include the following components:
+ *
+ * @field protocolVersion: version of the ITS message.
+ *
+ * @field messageId: type of the ITS message.
+ *
+ * @field stationId: the identifier of the ITS-S that generated the ITS message.
+ *
+ * @category: Communication information
+ * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId.
+ */
+ItsPduHeader ::= SEQUENCE {
+ protocolVersion OrdinalNumber1B,
+ messageId MessageId,
+ stationId StationId
+}
+
+/**
+ * This DF indicates a transversal position in resolution of lanes and the associated lane type.
+ *
+ * It shall include the following components:
+ *
+ * @field transversalPosition: the transversal position.
+ *
+ * @field laneType: the type of the lane identified in the component transversalPosition.
+ *
+ * @category Road topology information
+ * @revision: Created in V2.1.1
+ */
+LanePositionAndType::= SEQUENCE {
+ transversalPosition LanePosition,
+ laneType LaneType,
+ ...
+}
+
+/**
+ * This DF indicates the vehicle acceleration at lateral direction and the confidence value of the lateral acceleration.
+ *
+ * It shall include the following components:
+ *
+ * @field lateralAccelerationValue: lateral acceleration value at a point in time.
+ *
+ * @field lateralAccelerationConfidence: confidence value of the lateral acceleration value.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead.
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
+LateralAcceleration ::= SEQUENCE {
+ lateralAccelerationValue LateralAccelerationValue,
+ lateralAccelerationConfidence AccelerationConfidence
+}
+
+/**
+ * This DF indicates the vehicle acceleration at longitudinal direction and the confidence value of the longitudinal acceleration.
+ *
+ * It shall include the following components:
+ *
+ * @field longitudinalAccelerationValue: longitudinal acceleration value at a point in time.
+
+ * @field longitudinalAccelerationConfidence: confidence value of the longitudinal acceleration value.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+LongitudinalAcceleration ::= SEQUENCE {
+ longitudinalAccelerationValue LongitudinalAccelerationValue,
+ longitudinalAccelerationConfidence AccelerationConfidence
+}
+
+/**
+ * This DF represents the estimated position along the longitudinal length of a particular lane.
+ *
+ * It shall include the following components:
+ *
+ * @field longitudinalLanePositionValue: the mean value of the longitudinal position within a particular length.
+ *
+ * @field longitudinalLanePositionConfidence: The confidence value associated to the value.
+ *
+ * @category: Road topology information
+ * @revision: created in V2.1.1
+ */
+LongitudinalLanePosition ::= SEQUENCE {
+ longitudinalLanePositionValue LongitudinalLanePositionValue,
+ longitudinalLanePositionConfidence LongitudinalLanePositionConfidence
+}
+
+/**
+ * This DF shall contain a list of a lower triangular positive semi-definite matrices.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+LowerTriangularPositiveSemidefiniteMatrices::= SEQUENCE SIZE (1..4) OF LowerTriangularPositiveSemidefiniteMatrix
+
+/**
+ * This DF represents a lower triangular positive semi-definite matrix.
+ *
+ * It shall include the following components:
+ *
+ * @field componentsIncludedIntheMatrix: the indication of which components of a @ref PerceivedObject are included in the matrix.
+ * This component also implicitly indicates the number n of included components which defines the size (n x n) of the full correlation matrix "A".
+ *
+ * @field matrix: the list of cells of the lower triangular positive semi-definite matrix ordered by columns and by rows.
+ *
+ * The number of columns to be included "k" is equal to the number of included components "n" indicated by componentsIncludedIntheMatrix minus 1: k = n-1.
+ * These components shall be included in the order or their appearance in componentsIncludedIntheMatrix.
+ * Each column "i" of the lowerTriangularCorrelationMatrixColumns contains k-(i-1) values.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+LowerTriangularPositiveSemidefiniteMatrix ::= SEQUENCE{
+ componentsIncludedIntheMatrix MatrixIncludedComponents,
+ matrix LowerTriangularPositiveSemidefiniteMatrixColumns
+}
+
+/**
+ * This DF represents the columns of a lower triangular positive semi-definite matrix, each column not including the main diagonal cell of the matrix.
+ * Given a matrix "A" of size n x n, the number of @ref CorrelationColumn to be included in the lower triangular matrix is k=n-1.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+LowerTriangularPositiveSemidefiniteMatrixColumns ::= SEQUENCE SIZE (1..13) OF CorrelationColumn
+
+/**
+ * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15].
+ *
+ * It shall include the following components:
+ *
+ * @field mapReference: optionally identifies the MAPEM containing the topology information.
+ * It is absent if the MAPEM topology is known from the context.
+ *
+ * @field laneId: optionally identifies the lane in the road segment or intersection topology on which the position is located.
+ *
+ * @field connectionId: optionally identifies the connection inside the conflict area of an intersection, i.e. it identifies a trajectory for travelling through the
+ * conflict area of an intersection which connects e.g an ingress with an egress lane.
+ *
+ * @field longitudinalLanePosition: optionally indicates the longitudinal offset of the map-matched position of the object along the lane or connection.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.1.1
+ */
+MapPosition ::= SEQUENCE {
+ mapReference MapReference OPTIONAL,
+ laneId Identifier1B OPTIONAL,
+ connectionId Identifier1B OPTIONAL,
+ longitudinalLanePosition LongitudinalLanePosition OPTIONAL,
+ ...
+}
+ ((WITH COMPONENTS {..., laneId PRESENT, connectionId ABSENT }) |
+ (WITH COMPONENTS {..., laneId ABSENT, connectionId PRESENT }))
+
+/**
+ * This DF provides the reference to the information contained in a MAPEM according to ETSI TS 103 301 [15].
+ *
+ * The following options are provided:
+ *
+ * @field roadsegment: option that identifies the description of a road segment contained in a MAPEM.
+ *
+ * @field intersection: option that identifies the description of an intersection contained in a MAPEM.
+ *
+ * @category: Road topology information
+ * @revision: Created in V2.1.1
+ */
+MapReference::= CHOICE {
+ roadsegment RoadSegmentReferenceId,
+ intersection IntersectionReferenceId
+ }
+
+/**
+ * This DE indicates a message rate.
+ *
+ * @field mantissa: indicates the mantissa.
+ *
+ * @field exponent: indicates the exponent.
+ *
+ * The specified message rate is: mantissa*(10^exponent)
+ *
+ * @unit: Hz
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
+MessageRateHz::= SEQUENCE {
+ mantissa INTEGER (1..100),
+ exponent INTEGER (-5..2)
+ }
+
+/**
+ * This DF provides information about a message with respect to the segmentation process at the sender.
+ *
+ * It shall include the following components:
+ *
+ * @field totalMsgNo: indicates the total number of messages that has been used on the transmitter side to encode the information.
+ *
+ * @field thisMsgNo: indicates the position of the message within of the total set of messages.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
+MessageSegmentationInfo ::= SEQUENCE {
+ totalMsgNo CardinalNumber3b,
+ thisMsgNo OrdinalNumber3b
+ }
+
+/**
+ * This DF shall contain a list of @ref MitigationPerTechnologyClass.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+*/
+MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass
+
+/**
+ * This DF represents a set of mitigation parameters for a specific technology, as specified in ETSI TS 103 724 [24], clause 7.
+ *
+ * It shall include the following components:
+ *
+ * @field accessTechnologyClass: channel access technology to which this mitigation is intended to be applied.
+ *
+ * @field lowDutyCycle: duty cycle limit.
+ * @unit: 0,01 % steps
+ *
+ * @field powerReduction: the delta value of power to be reduced.
+ * @unit: dB
+ *
+ * @field dmcToffLimit: idle time limit as defined in ETSI TS 103 175 [19].
+ * @unit: ms
+ *
+ * @field dmcTonLimit: Transmission duration limit, as defined in ETSI EN 302 571 [20].
+ * @unit: ms
+ *
+ * @note: All parameters are optional, as they may not apply to some of the technologies or
+ * interference management zone types. Specification details are in ETSI TS 103 724 [24], clause 7.
+ *
+ * @category: Communication information
+ * @revision: Created in V2.1.1
+ */
+MitigationPerTechnologyClass ::= SEQUENCE {
+ accessTechnologyClass AccessTechnologyClass,
+ lowDutyCycle INTEGER (0 .. 10000) OPTIONAL,
+ powerReduction INTEGER (0 .. 30) OPTIONAL,
+ dmcToffLimit INTEGER (0 .. 1200) OPTIONAL,
+ dmcTonLimit INTEGER (0 .. 20) OPTIONAL,
+ ...
+}
+
+/**
+ * This DF indicates both the class and associated subclass that best describes an object.
+ *
+ * The following options are available:
+ *
+ * @field vehicleSubClass: the object is a road vehicle and the specific subclass is specified.
+ *
+ * @field vruSubClass: the object is a VRU and the specific subclass is specified.
+ *
+ * @field groupSubClass: the object is a VRU group or cluster and the cluster information is specified.
+ *
+ * @field otherSubClass: the object is of a different type than the above and the specific subclass is specified.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+ */
+ObjectClass ::= CHOICE {
+ vehicleSubClass TrafficParticipantType (unknown|passengerCar..tram|agricultural),
+ vruSubClass VruProfileAndSubprofile,
+ groupSubClass VruClusterInformation (WITH COMPONENTS{..., clusterBoundingBoxShape ABSENT}),
+ otherSubClass OtherSubClass,
+ ...
+}
+
+/**
+ * This DF shall contain a list of object classes.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+ObjectClassDescription ::= SEQUENCE (SIZE(1..8)) OF ObjectClassWithConfidence
+
+/**
+ * This DF represents the classification of a detected object together with a confidence level.
+ *
+ * It shall include the following components:
+ *
+ * @field objectClass: the class of the object.
+ *
+ * @field Confidence: the associated confidence level.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+ObjectClassWithConfidence ::= SEQUENCE {
+ objectClass ObjectClass,
+ confidence ConfidenceLevel
+}
+
+/**
+ * This DF represents a dimension of an object together with a confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the object dimension value which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the associated confidence value.
+ *
+ * @category: Sensing information
+ * @revision: Created in V2.1.1
+*/
+ObjectDimension ::= SEQUENCE {
+ value ObjectDimensionValue,
+ confidence ObjectDimensionConfidence
+}
+
+/**
+ * This DF represents a path with a set of path points.
+ * It shall contain up to `40` @ref PathPoint.
+ *
+ * The first PathPoint presents an offset delta position with regards to an external reference position.
+ * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint.
+ *
+ * @category: GeoReference information, Vehicle information
+ * @revision: created in V2.1.1 based on PathHistory
+ */
+Path::= SEQUENCE (SIZE(0..40)) OF PathPoint
+
+/**
+ * This DF represents a path history with a set of path points.
+ * It shall contain up to `40` @ref PathPoint.
+ *
+ * The first PathPoint presents an offset delta position with regards to an external reference position.
+ * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref Path instead.
+ * @category: GeoReference information, Vehicle information
+ * @revision: semantics updated in V2.1.1
+ */
+PathHistory::= SEQUENCE (SIZE(40)) OF PathPoint
+
+/**
+ * This DF represents a predicted path with a set of path points.
+ * It shall contain up to `15` @ref PathPoint.
+ *
+ * The first PathPoint presents an offset delta position with regards to an external reference position.
+ * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint.
+ *
+ * @category: GeoReference information
+ * @revision: created in V2.1.1 based on PathHistory
+ */
+PathPredicted::= SEQUENCE (SIZE(0..15,...)) OF PathPointPredicted
+
+/**
+ * This DF defines an offset waypoint position within a path.
+ *
+ * It shall include the following components:
+ *
+ * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position.
+ *
+ * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position.
+ *
+ * @category GeoReference information
+ * @revision: semantics updated in V2.1.1
+ */
+PathPoint ::= SEQUENCE {
+ pathPosition DeltaReferencePosition,
+ pathDeltaTime PathDeltaTime OPTIONAL
+}
+
+/**
+ * This DF defines a predicted offset waypoint position within a path.
+ *
+ * It shall include the following components:
+ *
+ * @field deltaLatitude: an offset latitude with regards to a pre-defined reference position.
+ *
+ * @field deltaLongitude: an offset longitude with regards to a pre-defined reference position.
+ *
+ * @field horizontalPositionConfidence: the confidence value associated to the horizontal geographical position.
+ *
+ * @field deltaAltitude: an offset altitude with regards to a pre-defined reference position.
+ *
+ * @field altitudeConfidence: the confidence value associated to the altitude value of the geographical position.
+ *
+ * @field pathDeltaTime: The travel time separated from the waypoint to the predefined reference position.
+ *
+ * @category GeoReference information
+ * @revision: semantics updated in V2.1.1
+ */
+PathPointPredicted::= SEQUENCE {
+ deltaLatitude DeltaLatitude,
+ deltaLongitude DeltaLongitude,
+ horizontalPositionConfidence PosConfidenceEllipse OPTIONAL,
+ deltaAltitude DeltaAltitude DEFAULT unavailable,
+ altitudeConfidence AltitudeConfidence DEFAULT unavailable,
+ pathDeltaTime DeltaTimeTenthOfSecond,
+ ...
+}
+
+/**
+ * This DF contains information about a perceived object including its kinematic state and attitude vector in a pre-defined coordinate system and with respect to a reference time.
+ *
+ * It shall include the following components:
+ *
+ * @field objectId: optional identifier assigned to a detected object.
+ *
+ * @field measurementDeltaTime: the time difference from a reference time to the time of the measurement of the object.
+ * Negative values indicate that the provided object state refers to a point in time before the reference time.
+ *
+ * @field position: the position of the geometric centre of the object's bounding box within the pre-defined coordinate system.
+ *
+ * @field velocity: the velocity vector of the object within the pre-defined coordinate system.
+ *
+ * @field acceleration: the acceleration vector of the object within the pre-defined coordinate system.
+ *
+ * @field angles: optional Euler angles of the object bounding box at the time of measurement.
+ *
+ * @field zAngularVelocity: optional angular velocity of the object around the z-axis at the time of measurement.
+ * The angular velocity is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule.
+ *
+ * @field lowerTriangularCorrelationMatrices: optional set of lower triangular correlation matrices for selected components of the provided kinematic state and attitude vector.
+ *
+ * @field objectDimensionZ: optional z-dimension of object bounding box.
+ * This dimension shall be measured along the direction of the z-axis after all the rotations have been applied.
+ *
+ * @field objectDimensionY: optional y-dimension of the object bounding box.
+ * This dimension shall be measured along the direction of the y-axis after all the rotations have been applied.
+ *
+ * @field objectDimensionX: optional x-dimension of object bounding box.
+ * This dimension shall be measured along the direction of the x-axis after all the rotations have been applied.
+ *
+ * @field objectAge: optional age of the detected and described object, i.e. the difference in time between the moment
+ * it has been first detected and the reference time of the message. Value `1500` indicates that the object has been observed for more than 1.5s.
+ *
+ * @field objectPerceptionQuality: optional confidence associated to the object.
+ *
+ * @field sensorIdList: optional list of sensor-IDs which provided the measurement data.
+ *
+ * @field classification: optional classification of the described object
+ *
+ * @field matchedPosition: optional map-matched position of an object.
+ *
+ * @category Sensing information
+ * @revision: created in V2.1.1
+ */
+PerceivedObject ::= SEQUENCE {
+ objectId Identifier2B OPTIONAL,
+ measurementDeltaTime DeltaTimeMilliSecondSigned,
+ position CartesianPosition3dWithConfidence,
+ velocity Velocity3dWithConfidence OPTIONAL,
+ acceleration Acceleration3dWithConfidence OPTIONAL,
+ angles EulerAnglesWithConfidence OPTIONAL,
+ zAngularVelocity CartesianAngularVelocityComponent OPTIONAL,
+ lowerTriangularCorrelationMatrices LowerTriangularPositiveSemidefiniteMatrices OPTIONAL,
+ objectDimensionZ ObjectDimension OPTIONAL,
+ objectDimensionY ObjectDimension OPTIONAL,
+ objectDimensionX ObjectDimension OPTIONAL,
+ objectAge DeltaTimeMilliSecondSigned (0..2047) OPTIONAL,
+ objectPerceptionQuality ObjectPerceptionQuality OPTIONAL,
+ sensorIdList SequenceOfIdentifier1B OPTIONAL,
+ classification ObjectClassDescription OPTIONAL,
+ mapPosition MapPosition OPTIONAL,
+ ...
+}
+
+/**
+ * This DF represents the shape of a polygonal area or of a right prism.
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position.
+ * If this component is absent, the externally specified reference position represents the shape's reference point.
+ *
+ * @field polygon: the polygonal area represented by a list of minimum `3` to maximum `16` @ref CartesianPosition3d.
+ * All nodes of the polygon shall be considered relative to the shape's reference point.
+ *
+ * @field height: the optional height, present if the shape is a right prism extending in the positive z-axis.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1
+ *
+ */
+PolygonalShape ::= SEQUENCE {
+ shapeReferencePoint CartesianPosition3d OPTIONAL,
+ polygon SequenceOfCartesianPosition3d (SIZE(3..16,...)),
+ height StandardLength12b OPTIONAL
+}
+
+/**
+ * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a
+ * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference
+ * position point for which the position accuracy is evaluated.
+ *
+ * It shall include the following components:
+ *
+ * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point
+ * and major axis point of the position accuracy ellipse.
+ *
+ * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point
+ * and minor axis point of the position accuracy ellipse.
+ *
+ * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy
+ * ellipse with regards to the WGS84 north.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ *
+ * @category GeoReference information
+ * @revision: V1.3.1
+ */
+PosConfidenceEllipse ::= SEQUENCE {
+ semiMajorConfidence SemiAxisLength,
+ semiMinorConfidence SemiAxisLength,
+ semiMajorOrientation HeadingValue
+}
+
+/**
+ * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a
+ * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference
+ * position point for which the position accuracy is evaluated.
+ *
+ * It shall include the following components:
+ *
+ * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point
+ * and major axis point of the position accuracy ellipse.
+ *
+ * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point
+ * and minor axis point of the position accuracy ellipse.
+ *
+ * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy
+ * ellipse with regards to the WGS84 north.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse
+ */
+PositionConfidenceEllipse ::= SEQUENCE {
+ semiMajorAxisLength SemiAxisLength,
+ semiMinorAxisLength SemiAxisLength,
+ semiMajorAxisOrientation Wgs84AngleValue
+}
+
+/**
+ * This DF shall contain a list of distances @ref PosPillar that refer to the perpendicular distance between centre of vehicle front bumper
+ * and vehicle pillar A, between neighbour pillars until the last pillar of the vehicle.
+ *
+ * Vehicle pillars refer to the vertical or near vertical support of vehicle,
+ * designated respectively as the A, B, C or D and other pillars moving in side profile view from the front to rear.
+ *
+ * The first value of the DF refers to the perpendicular distance from the centre of vehicle front bumper to
+ * vehicle A pillar. The second value refers to the perpendicular distance from the centre position of A pillar
+ * to the B pillar of vehicle and so on until the last pillar.
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar
+
+/**
+ * This DF describes a zone of protection inside which the ITS communication should be restricted.
+ *
+ * It shall include the following components:
+ *
+ * @field protectedZoneType: type of the protected zone.
+ *
+ * @field expiryTime: optional time at which the validity of the protected communication zone will expire.
+ *
+ * @field protectedZoneLatitude: latitude of the centre point of the protected communication zone.
+ *
+ * @field protectedZoneLongitude: longitude of the centre point of the protected communication zone.
+ *
+ * @field protectedZoneRadius: optional radius of the protected communication zone in metres.
+ *
+ * @field protectedZoneId: the optional ID of the protected communication zone.
+ *
+ * @note: A protected communication zone may be defined around a CEN DSRC road side equipment.
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: revised in V2.1.1 (changed protectedZoneID to protectedZoneId)
+ */
+ProtectedCommunicationZone ::= SEQUENCE {
+ protectedZoneType ProtectedZoneType,
+ expiryTime TimestampIts OPTIONAL,
+ protectedZoneLatitude Latitude,
+ protectedZoneLongitude Longitude,
+ protectedZoneRadius ProtectedZoneRadius OPTIONAL,
+ protectedZoneId ProtectedZoneId OPTIONAL,
+ ...
+}
+
+/**
+ * This DF shall contain a list of @ref ProtectedCommunicationZone provided by a road side ITS-S (Road Side Unit RSU).
+ *
+ * It may provide up to 16 protected communication zones information.
+ *
+ * @category: Infrastructure information, Communication information
+ * @revision: V1.3.1
+ */
+ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone
+
+/**
+ * This DF represents activation data for real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc.
+ * using a range of activation devices equipped in public transport vehicles.
+ *
+ * The activation of the corresponding equipment is triggered by the approach or passage of a public transport
+ * vehicle at a certain point (e.g. a beacon).
+ *
+ * @field ptActivationType: type of activation.
+ *
+ * @field ptActicationData: data of activation.
+ *
+ * Today there are different payload variants defined for public transport activation-data. The R09.x is one of
+ * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria)
+ * for controlling traffic lights, barriers, bollards, etc. This DF shall include information like route, course,
+ * destination, priority, etc.
+ *
+ * The R09.x content is defined in VDV recommendation 420 [7]. It includes following information:
+ * - Priority Request Information (pre-request, request, ready to start)
+ * - End of Prioritization procedure
+ * - Priority request direction
+ * - Public Transport line number
+ * - Priority of public transport
+ * - Route line identifier of the public transport
+ * - Route number identification
+ * - Destination of public transport vehicle
+ *
+ * Other countries may use different message sets defined by the local administration.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+PtActivation ::= SEQUENCE {
+ ptActivationType PtActivationType,
+ ptActivationData PtActivationData
+}
+
+/**
+ * This DF describes a radial shape. The triangular or cone-shaped volume is
+ * constructed by sweeping the provided range about the reference point between a horizontal start
+ * and a horizontal end angle in positive angular direction of the WGS84
+ * coordinate system. A vertical opening angle may be provided in a Cartesian coordinate system with
+ * the x-axis located in the North-East plane of the WGS84 coordinate system. The sensor height may
+ * be provided to reflect characteristics of sensors mounted at an altitude (e.g. sensors mounted
+ * above intersections).
+ *
+ * It shall include the following components:
+ *
+ * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position.
+ * If this component is absent, the externally specified reference position represents the shape's reference point.
+ *
+ * @field range: the radial range of the shape from the shape's reference point.
+ *
+ * @field stationaryHorizontalOpeningAngleStart: the orientation indicating the beginning of the
+ * shape's horizontal opening angle in positive angular direction with respect to the
+ * WGS84 coordinate system.
+ *
+ * @field stationaryHorizontalOpeningAngleEnd: The orientation indicating the end of the shape's
+ * horizontal opening angle in positive angular direction with respect to the WGS84 coordinate system.
+ *
+ * @field verticalOpeningAngleStart: optional orientation indicating the beginning of the shape's
+ * opening angle in positive angular direction of a Cartesian coordinate system with its x-axis
+ * located in the north-east plane of the WGS84 coordinate system.
+ *
+ * @field verticalOpeningAngleEnd: optional orientation indicating the end of the shape's
+ * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis
+ * located in the north-east plane of the WGS84 coordinate system.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1
+*/
+RadialShape ::= SEQUENCE {
+ shapeReferencePoint CartesianPosition3d OPTIONAL,
+ range StandardLength12b,
+ stationaryHorizontalOpeningAngleStart Wgs84AngleValue,
+ stationaryHorizontalOpeningAngleEnd Wgs84AngleValue,
+ verticalOpeningAngleStart CartesianAngleValue OPTIONAL,
+ verticalOpeningAngleEnd CartesianAngleValue OPTIONAL
+}
+
+
+/**
+ * This DF describes a list of radial shapes.
+ *
+ * It shall include the following components:
+
+ * @field refPointId: the identification of the reference point in case of a sensor mounted to trailer. Defaults to ITS ReferencePoint (0).
+ *
+ * @field xCoordinate: the x-coordinate of the offset point.
+ *
+ * @field yCoordinate: the y-coordinate of the offset point.
+ *
+ * @field zCoordinate: the optional z-coordinate of the offset point.
+ *
+ * @field radialShapesList: the list of radial shape details.
+ *
+ * @category: Georeference information
+ * @revision: created in V2.1.1
+ */
+RadialShapes ::= SEQUENCE {
+ refPointId Identifier1B,
+ xCoordinate CartesianCoordinateSmall,
+ yCoordinate CartesianCoordinateSmall,
+ zCoordinate CartesianCoordinateSmall OPTIONAL,
+ radialShapesList RadialShapesList
+}
+
+/**
+ * The DF contains a list of @ref RadialShapeDetails.
+ *
+ * @category: Georeference information
+ * @revision: created in V2.1.1
+ */
+
+RadialShapesList ::= SEQUENCE SIZE(1..16,...) OF RadialShapeDetails
+
+/**
+ * This DF describes a radial shape details. The triangular or cone-shaped volume is
+ * constructed by sweeping the provided range about the reference point or about the offset
+ * point (if provided) between a horizontal start and a horizontal end angle in positive angular direction of the WGS84
+ * coordinate system. A vertical opening angle may be provided in a Cartesian coordinate system with
+ * the x-axis located in the North-East plane of the WGS84 coordinate system. The sensor height may
+ * be provided to reflect characteristics of sensors mounted at an altitude (e.g. sensors mounted
+ * above intersections).
+ *
+ * It shall include the following components:
+ *
+ * @field range: the radial range of the sensor from the reference point or sensor point offset.
+ *
+ * @field horizontalOpeningAngleStart: the orientation indicating the beginning of the
+ * shape's horizontal opening angle in positive angular direction.
+ *
+ * @field horizontalOpeningAngleEnd: The orientation indicating the end of the shape's horizontal
+ * opening angle in positive angular direction.
+ *
+ * @field verticalOpeningAngleStart: optional orientation indicating the beginning of the shape's
+ * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis
+ * located in the north-east plane of the WGS84 coordinate system.
+ *
+ * @field verticalOpeningAngleEnd: optional orientation indicating the end of the shape's
+ * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis
+ * located in the north-east plane of the WGS84 coordinate system.
+ *
+ * @category: Georeference information
+ * @revision: created in V2.1.1
+ */
+RadialShapeDetails ::= SEQUENCE {
+ range StandardLength12b,
+ horizontalOpeningAngleStart CartesianAngleValue,
+ horizontalOpeningAngleEnd CartesianAngleValue,
+ verticalOpeningAngleStart CartesianAngleValue OPTIONAL,
+ verticalOpeningAngleEnd CartesianAngleValue OPTIONAL
+}
+
+/**
+ * This DF represents the shape of a rectangular area or a right rectangular prism that is centred on a reference position defined outside of the context of this DF.
+ *
+ * It shall include the following components:
+ *
+ * @field centerPoint: represents an optional offset point which the rectangle is centred on with respect to the reference position.
+ *
+ * @field semiLength: represents half the length of the rectangle.
+ *
+ * @field semiBreadth: represents half the breadth of the rectangle.
+ *
+ * @field orientation: represents the optional orientation of the lenght of the rectangle in the WGS84 coordinate system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * @field height: represents the optional height, present if the shape is a right rectangular prism with height extending in the positive z-axis.
+ *
+ * @category GeoReference information
+ * @revision: created in V2.1.1
+ */
+RectangularShape ::= SEQUENCE {
+ centerPoint CartesianPosition3d OPTIONAL,
+ semiLength StandardLength12b,
+ semiBreadth StandardLength12b,
+ orientation Wgs84AngleValue OPTIONAL,
+ height StandardLength12b OPTIONAL
+}
+
+/**
+ * A position within a geographic coordinate system together with a confidence ellipse.
+ *
+ * It shall include the following components:
+ *
+ * @field latitude: the latitude of the geographical point.
+ *
+ * @field longitude: the longitude of the geographical point.
+ *
+ * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position.
+ *
+ * @field altitude: the altitude and an altitude accuracy of the geographical point.
+ *
+ * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref ReferencePositionWithConfidence instead.
+ * @category: GeoReference information
+ * @revision: description updated in V2.1.1
+ */
+ReferencePosition ::= SEQUENCE {
+ latitude Latitude,
+ longitude Longitude,
+ positionConfidenceEllipse PosConfidenceEllipse,
+ altitude Altitude
+}
+
+/**
+ * A position within a geographic coordinate system together with a confidence ellipse.
+ *
+ * It shall include the following components:
+ *
+ * @field latitude: the latitude of the geographical point.
+ *
+ * @field longitude: the longitude of the geographical point.
+ *
+ * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position.
+ *
+ * @field altitude: the altitude and an altitude accuracy of the geographical point.
+ *
+ * @category: GeoReference information
+ * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse.
+ */
+ReferencePositionWithConfidence ::= SEQUENCE {
+ latitude Latitude,
+ longitude Longitude,
+ positionConfidenceEllipse PositionConfidenceEllipse,
+ altitude Altitude
+}
+
+/**
+ * This DF shall contain a list of @ref StationType. to which a certain traffic restriction, e.g. the speed limit, applies.
+ *
+ * @category: Infrastructure information, Traffic information
+ * @revision: V1.3.1
+ */
+RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType
+
+/**
+ * This DF represents a unique id for a road segment
+ *
+ * It shall include the following components:
+ *
+ * @field region: the optional identifier of the entity that is responsible for the region in which the road segment is placed.
+ * It is the duty of that entity to guarantee that the @ref Id is unique within the region.
+ *
+ * @field id: the identifier of the road segment.
+ *
+ * @note: when the component region is present, the RoadSegmentReferenceId is guaranteed to be globally unique.
+ * @category: GeoReference information
+ * @revision: created in V2.1.1
+ */
+RoadSegmentReferenceId ::= SEQUENCE {
+ region Identifier2B OPTIONAL,
+ id Identifier2B
+}
+
+/**
+ * This DF provides the safe distance indication of a traffic participant with other traffic participant(s).
+ *
+ * It shall include the following components:
+ *
+ * @field subjectStation: optionally indicates one "other" traffic participant identified by its ITS-S.
+ *
+ * @field safeDistanceIndicator: indicates whether the distance between the ego ITS-S and the traffic participant(s) is safe.
+ * If subjectStation is present then it indicates whether the distance between the ego ITS-S and the traffic participant indicated in the component subjectStation is safe.
+ *
+ * @field timeToCollision: optionally indicated the time-to-collision calculated as sqrt(LaDi^2 + LoDi^2 + VDi^2/relative speed
+ * and represented in the nearest 100 ms. This component may be present only if subjectStation is present.
+ *
+ * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD)
+ * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD).
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+ */
+SafeDistanceIndication ::= SEQUENCE {
+ subjectStation StationId OPTIONAL,
+ safeDistanceIndicator SafeDistanceIndicator,
+ timeToCollision DeltaTimeTenthOfSecond OPTIONAL,
+ ...
+}
+
+/**
+ * This DF shall contain a list of DF @ref CartesianPosition3d.
+ *
+ * @category: GeoReference information
+ * @revision: created in V2.1.1
+ */
+SequenceOfCartesianPosition3d ::= SEQUENCE (SIZE(1..16, ...)) OF CartesianPosition3d
+
+/**
+ * The DF contains a list of DE @ref Identifier1B.
+ *
+ * @category: Basic information
+ * @revision: created in V2.1.1
+*/
+SequenceOfIdentifier1B ::= SEQUENCE SIZE(1..128, ...) OF Identifier1B
+
+/**
+ * The DF contains a list of DF @ref SafeDistanceIndication.
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+*/
+SequenceOfSafeDistanceIndication ::= SEQUENCE(SIZE(1..8,...)) OF SafeDistanceIndication
+
+/**
+ * The DF shall contain a list of DF @ref TrajectoryInterceptionIndication.
+ *
+ * @category: Traffic information, Kinematic information
+ * @revision: created in V2.1.1
+*/
+SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8,...)) OF TrajectoryInterceptionIndication
+
+/**
+ * This DF provides the definition of a geographical area or volume, based on different options.
+ *
+ * It is a choice of the following components:
+ *
+ * @field rectangular: definition of an rectangular area or a right rectangular prism (with a rectangular base) also called a cuboid, or informally a rectangular box.
+ *
+ * @field circular: definition of an area of circular shape or a right circular cylinder.
+ *
+ * @field polygonal: definition of an area of polygonal shape or a right prism.
+ *
+ * @field elliptical: definition of an area of elliptical shape or a right elliptical cylinder.
+ *
+ * @field radial: definition of a radial shape.
+ *
+ * @field radialList: definition of list of radial shapes.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+ */
+Shape::= CHOICE {
+ rectangular RectangularShape,
+ circular CircularShape,
+ polygonal PolygonalShape,
+ elliptical EllipticalShape,
+ radial RadialShape,
+ radialShapes RadialShapes,
+ ...
+}
+
+/**
+ * This DF represents the speed and associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field speedValue: the speed value.
+ *
+ * @field speedConfidence: the confidence value of the speed value.
+ *
+ * @category: Kinematic information
+ * @revision: V1.3.1
+ */
+Speed ::= SEQUENCE {
+ speedValue SpeedValue,
+ speedConfidence SpeedConfidence
+}
+
+/**
+ * This DF provides the indication of change in stability.
+ *
+ * It shall include the following components:
+ *
+ * @field lossProbability: the probability of stability loss.
+ *
+ * @field actionDeltaTime: the period over which the the probability of stability loss is estimated.
+ *
+ * @category: Kinematic information
+ * @revision: V2.1.1
+ */
+StabilityChangeIndication ::= SEQUENCE {
+ lossProbability StabilityLossProbability,
+ actionDeltaTime DeltaTimeTenthOfSecond,
+ ...
+}
+
+/**
+ * This DF represents the steering wheel angle of the vehicle at certain point in time.
+ *
+ * It shall include the following components:
+ *
+ * @field steeringWheelAngleValue: steering wheel angle value.
+ *
+ * @field steeringWheelAngleConfidence: confidence value of the steering wheel angle value.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
+SteeringWheelAngle ::= SEQUENCE {
+ steeringWheelAngleValue SteeringWheelAngleValue,
+ steeringWheelAngleConfidence SteeringWheelAngleConfidence
+}
+
+/**
+ * This DF represents one or more paths using @ref PathHistory.
+ *
+ * @category: GeoReference information
+ * @revision: Description revised in V2.1.1. Is is now based on Path and not on PathHistory
+ */
+Traces ::= SEQUENCE SIZE(1..7) OF Path
+
+/**
+ * Ths DF represents the a position on a traffic island between two lanes.
+ *
+ * It shall include the following components:
+ *
+ * @field oneSide: represents one lane.
+ *
+ * @field otherSide: represents the other lane.
+ *
+ * @category: Road Topology information
+ * @revision: Created in V2.1.1
+ */
+TrafficIslandPosition ::= SEQUENCE {
+ oneSide LanePositionAndType,
+ otherSide LanePositionAndType,
+ ...
+}
+
+/**
+ * This DF provides detailed information about an attached trailer.
+ *
+ * It shall include the following components:
+ *
+ * @field refPointId: identifier of the reference point of the trailer.
+ *
+ * @field hitchPointOffset: optional position of the hitch point in negative x-direction (according to ISO 8855) from the
+ * vehicle Reference Point.
+ *
+ * @field frontOverhang: optional length of the trailer overhang in the positive x direction (according to ISO 8855) from the
+ * trailer Reference Point indicated by the refPointID. The value defaults to 0 in case the trailer
+ * is not overhanging to the front with respect to the trailer reference point.
+ *
+ * @field rearOverhang: optional length of the trailer overhang in the negative x direction (according to ISO 8855) from the
+ * trailer Reference Point indicated by the refPointID.
+ *
+ * @field trailerWidth: optional width of the trailer.
+ *
+ * @field hitchAngle: optional Value and confidence value of the angle between the trailer orientation (corresponding to the x
+ * direction of the ISO 8855 [21] coordinate system centered on the trailer) and the direction of
+ * the segment having as end points the reference point of the trailer and the reference point of
+ * the pulling vehicle, which can be another trailer or a vehicle looking on the horizontal plane
+ * xy, described in the local Cartesian coordinate system of the trailer. The
+ * angle is measured with negative values considering the trailer orientation turning clockwise
+ * starting from the segment direction. The angle value accuracy is provided with the
+ * confidence level of 95 %.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+*/
+TrailerData ::= SEQUENCE {
+ refPointId Identifier1B,
+ hitchPointOffset StandardLength1B,
+ frontOverhang StandardLength1B OPTIONAL,
+ rearOverhang StandardLength1B OPTIONAL,
+ trailerWidth VehicleWidth OPTIONAL,
+ hitchAngle CartesianAngle,
+ ...
+}
+
+/**
+ * This DF provides the trajectory interception indication of ego-VRU ITS-S with another ITS-Ss.
+ *
+ * It shall include the following components:
+ *
+ * @field subjectStation: indicates the subject station.
+ *
+ * @field trajectoryInterceptionProbability: indicates the propbability of the interception of the subject station trajectory
+ * with the trajectory of the station indicated in the component subjectStation.
+ *
+ * @field trajectoryInterceptionConfidence: indicates the confidence of interception of the subject station trajectory
+ * with the trajectory of the station indicated in the component subjectStation.
+ *
+ * @category: Vehicle information
+ * @revision: Created in V2.1.1
+ */
+TrajectoryInterceptionIndication ::= SEQUENCE {
+ subjectStation StationId OPTIONAL,
+ trajectoryInterceptionProbability TrajectoryInterceptionProbability,
+ trajectoryInterceptionConfidence TrajectoryInterceptionConfidence OPTIONAL,
+ ...
+}
+
+/**
+ * This DF together with its sub DFs Ext1, Ext2 and the DE Ext3 provides the custom (i.e. not ASN.1 standard) definition of an integer with variable lenght, that can be used for example to encode the ITS-AID.
+ *
+ * @category: Basic information
+ * @revision: Created in V2.1.1
+ */
+VarLengthNumber::=CHOICE{
+ content [0] INTEGER(0..127), -- one octet length
+ extension [1] Ext1
+ }
+Ext1::=CHOICE{
+ content [0] INTEGER(128..16511), -- two octets length
+ extension [1] Ext2
+}
+Ext2::=CHOICE{
+ content [0] INTEGER(16512..2113663), -- three octets length
+ extension [1] Ext3
+ }
+Ext3::= INTEGER(2113664..270549119,...) -- four and more octets length
+
+/**
+ * This DF indicates the vehicle acceleration at vertical direction and the associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field verticalAccelerationValue: vertical acceleration value at a point in time.
+ *
+ * @field verticalAccelerationConfidence: confidence value of the vertical acceleration value with a predefined confidence level.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead.
+ * @category Vehicle information
+ * @revision: Description revised in V2.1.1
+ */
+VerticalAcceleration ::= SEQUENCE {
+ verticalAccelerationValue VerticalAccelerationValue,
+ verticalAccelerationConfidence AccelerationConfidence
+}
+
+/**
+ * This DF provides information related to the identification of a vehicle.
+ *
+ * It shall include the following components:
+ *
+ * @field wMInumber: World Manufacturer Identifier (WMI) code.
+ *
+ * @field vDS: Vehicle Descriptor Section (VDS).
+ *
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+VehicleIdentification ::= SEQUENCE {
+ wMInumber WMInumber OPTIONAL,
+ vDS VDS OPTIONAL,
+ ...
+}
+
+/**
+ * This DF represents the length of vehicle and accuracy indication information.
+ *
+ * It shall include the following components:
+ *
+ * @field vehicleLengthValue: length of vehicle.
+ *
+ * @field vehicleLengthConfidenceIndication: indication of the length value confidence.
+ *
+ * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref VehicleLengthV2 instead.
+ * @category: Vehicle information
+ * @revision: V1.3.1
+ */
+VehicleLength ::= SEQUENCE {
+ vehicleLengthValue VehicleLengthValue,
+ vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication
+}
+
+/**
+ * This DF represents the length of vehicle and accuracy indication information.
+ *
+ * It shall include the following components:
+ *
+ * @field vehicleLengthValue: length of vehicle.
+ *
+ * @field trailerPresenceInformation: information about the trailer presence.
+ *
+ * @category: Vehicle information
+ * @revision: created in V2.1.1 based on @ref VehicleLength but using @ref TrailerPresenceInformation.
+ */
+VehicleLengthV2 ::= SEQUENCE {
+ vehicleLengthValue VehicleLengthValue,
+ trailerPresenceInformation TrailerPresenceInformation
+}
+
+/**
+ * This DF represents a velocity vector with associated confidence value.
+ *
+ * The following options are available:
+ *
+ * @field polarVelocity: the representation of the velocity vector in a polar or cylindrical coordinate system.
+ *
+ * @field cartesianVelocity: the representation of the velocity vector in a cartesian coordinate system.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+Velocity3dWithConfidence::= CHOICE{
+ polarVelocity VelocityPolarWithZ,
+ cartesianVelocity VelocityCartesian
+}
+
+/**
+ * This DF represents a velocity vector in a cartesian coordinate system.
+
+ * It shall include the following components:
+ *
+ * @field xVelocity: the x component of the velocity vector with the associated confidence value.
+ *
+ * @field yVelocity: the y component of the velocity vector with the associated confidence value.
+ *
+ * @field zVelocity: the optional z component of the velocity vector with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+VelocityCartesian::= SEQUENCE {
+ xVelocity VelocityComponent,
+ yVelocity VelocityComponent,
+ zVelocity VelocityComponent OPTIONAL
+}
+
+/**
+ * This DF represents a component of the velocity vector and the associated confidence value.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the value of the component.
+ *
+ * @field confidence: the confidence value of the value.
+ *
+ * @category: Kinematic information
+ * @revision: V2.1.1
+ */
+VelocityComponent ::= SEQUENCE {
+ value VelocityComponentValue,
+ confidence SpeedConfidence
+}
+
+/**
+ * This DF represents a velocity vector in a polar or cylindrical coordinate system.
+ *
+ * It shall include the following components:
+ *
+ * @field velocityMagnitude: magnitude of the velocity vector on the reference plane, with the associated confidence value.
+ *
+ * @field velocityDirection: polar angle of the velocity vector on the reference plane, with the associated confidence value.
+ *
+ * @field zVelocity: the optional z component of the velocity vector along the reference axis of the cylindrical coordinate system, with the associated confidence value.
+ *
+ * @category: Kinematic information
+ * @revision: Created in V2.1.1
+ */
+VelocityPolarWithZ::= SEQUENCE {
+ velocityMagnitude Speed,
+ velocityDirection CartesianAngle,
+ zVelocity VelocityComponent OPTIONAL
+}
+
+/**
+ * This DF provides information about a VRU cluster.
+ *
+ * It shall include the following components:
+ *
+ * @field clusterId: optional identifier of a VRU cluster .
+ *
+ * @field clusterBoundingBoxShape: optionally indicates the shape of the cluster bounding box.
+ *
+ * @field clusterCardinalitySize: indicates an estimation of the number of VRUs in the group, i.e. the known members in the cluster + 1 (for the cluster leader) .
+ *
+ * @field clusterProfiles: optionally identifies all the VRU profile types that are known to be within the cluster.
+ * if this component is absent it means that the information is unavailable.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+*/
+VruClusterInformation ::= SEQUENCE {
+ clusterId Identifier1B OPTIONAL,
+ clusterBoundingBoxShape Shape (WITH COMPONENTS{..., elliptical ABSENT, radial ABSENT, radialShapes ABSENT}) OPTIONAL,
+ clusterCardinalitySize CardinalNumber1B,
+ clusterProfiles VruClusterProfiles OPTIONAL,
+ ...
+}
+
+/**
+ * This DF represents the status of the exterior light switches of a VRU.
+ * This DF is an extension of the vehicular DE @ref ExteriorLights.
+ *
+ * It shall include the following components:
+ *
+ * @field vehicular: represents the status of the exterior light switches of a road vehicle.
+ *
+ * @field vruSpecific: represents the status of the exterior light switches of a VRU.
+ *
+ * @category: VRU information
+ * @revision: created in V2.1.1
+ */
+VruExteriorLights ::= SEQUENCE {
+ vehicular ExteriorLights,
+ vruSpecific VruSpecificExteriorLights,
+ ...
+}
+
+/**
+ * This DF indicates the profile of a VRU including sub-profile information
+ * It identifies four options corresponding to the four types of VRU profiles specified in ETSI TS 103 300-2 [18]:
+ *
+ * @field pedestrian: VRU Profile 1 - Pedestrian.
+ *
+ * @field bicyclistAndLightVruVehicle: VRU Profile 2 - Bicyclist.
+ *
+ * @field motorcyclist: VRU Profile 3 - Motorcyclist.
+ *
+ * @field animal: VRU Profile 4 - Animal.
+ *
+ * @category: VRU information
+ * @revision: Created in V2.1.1
+ */
+VruProfileAndSubprofile ::= CHOICE {
+ pedestrian VruSubProfilePedestrian,
+ bicyclistAndLightVruVehicle VruSubProfileBicyclist,
+ motorcyclist VruSubProfileMotorcyclist,
+ animal VruSubProfileAnimal,
+ ...
+}
+
+/**
+ * This DF represents an angular component along with a confidence value in the WGS84 coordinate system.
+ * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
+ *
+ * It shall include the following components:
+ *
+ * @field value: the angle value, which can be estimated as the mean of the current distribution.
+ *
+ * @field confidence: the confidence value associated to the angle value.
+ *
+ * @category: GeoReference information
+ * @revision: Created in V2.1.1
+*/
+Wgs84Angle ::= SEQUENCE {
+ value Wgs84AngleValue,
+ confidence Wgs84AngleConfidence
+}
+
+
+/**
+ * This DF represents a yaw rate of vehicle at a point in time.
+ *
+ * It shall include the following components:
+ *
+ * @field yawRateValue: yaw rate value at a point in time.
+ *
+ * @field yawRateConfidence: confidence value associated to the yaw rate value.
+ *
+ * @category: Vehicle Information
+ * @revision: V1.3.1
+ */
+YawRate::= SEQUENCE {
+ yawRateValue YawRateValue,
+ yawRateConfidence YawRateConfidence
+}
+
+------------------------------------------
+/**
+ * ## References:
+ * 1. ETSI TS 103 900: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 2: Specification of Cooperative Awareness Basic Service; Release 2".
+ * 2. ETSI TS 103 831: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 3: Specifications of Decentralized Environmental Notification Basic Service"; Release 2.
+ * 3. [European Agreement (Applicable as from 1 January 2011): "Concerning the International Carriage of Dangerous Goods by Road"](http://www.unece.org/trans/danger/publi/adr/adr2011/11ContentsE.html).
+ * 4. [United Nations: "Recommendations on the Transport of Dangerous Goods - Model Regulations", Twelfth revised edition](http://www.unece.org/trans/danger/publi/unrec/12_e.html).
+ * 5. ETSI TS 101 539-1: "Intelligent Transport Systems (ITS); V2X Applications; Part 1: Road Hazard Signalling (RHS) application requirements specification".
+ * 6. ISO 3779 (2011-07): "Road vehicles - Vehicle identification number (VIN) Content and structure".
+ * 7. VDV recommendation 420 (1992): "Technical Requirements for Automatic Vehicle Location / Control Systems - Radio Data Transmission (BON Version) with Supplement 1 and Supplement 2".
+ * 8. ISO 1176:1990: "Road vehicles - Masses - Vocabulary and codes".
+ * 9. ETSI TS 101 556-1: "Intelligent Transport Systems (ITS); Infrastructure to Vehicle Communication; Electric Vehicle Charging Spot Notification Specification".
+ * 10. ETSI TS 101 556-2: "Intelligent Transport Systems (ITS); Infrastructure to Vehicle Communication; Part 2: Communication system specification to support application requirements for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability".
+ * 11. ETSI TS 101 556-3: "Intelligent Transport Systems (ITS); Infrastructure to Vehicle Communications; Part 3: Communications system for the planning and reservation of EV energy supply using wireless networks".
+ * 12. ETSI TS 103 300-3: "Intelligent Transport Systems (ITS); Vulnerable Road Users (VRU) awareness; Part 3: Specification of VRU awareness basic service; Release 2"
+ * 13. ETSI TS 103 724: "Intelligent Transport Systems (ITS); Facilities layer function; Interference Management Zone Message (IMZM); Release 2"
+ * 14. ETSI TS 102 792: "Intelligent Transport Systems (ITS); Mitigation techniques to avoid interference between European CEN Dedicated Short Range Communication (CEN DSRC) equipment and Intelligent Transport Systems (ITS) operating in the 5 GHz frequency range".
+ * 15. ETSI TS 103 301: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Facilities layer protocols and communication requirements for infrastructure services; Release 2".
+ * 16. UNECE/TRANS/WP.29/78/Rev.4: "Consolidated Resolution on the Construction of Vehicles (R.E.3)".
+ * 17. ETSI EN 302 890-1: "Intelligent Transport Systems (ITS); Facilities layer function; Part 1: Services Announcement (SA) specification".
+ * 18. ETSI TS 103 300-2 "Intelligent Transport System (ITS); Vulnerable Road Users (VRU) awareness; Part 2: Functional Architecture and Requirements definition; Release 2"
+ * 19. ETSI TS 103 175 "Intelligent Transport Systems (ITS); Cross Layer DCC Management Entity for operation in the ITS G5A and ITS G5B medium"
+ * 20. ETSI EN 302 571 "Intelligent Transport Systems (ITS); Radiocommunications equipment operating in the 5 855 MHz to 5 925 MHz frequency band; Harmonised Standard covering the essential requirements of article 3.2 of Directive 2014/53/EU"
+ * 21. ISO 8855: "Road vehicles - Vehicle dynamics and road-holding ability - Vocabulary".
+ * 22. ISO 3833, "Road vehicles - Types - Terms and definitions".
+*/
+
+END
+
diff --git a/epan/dissectors/asn1/its/ISO19321IVIv2.asn b/epan/dissectors/asn1/its/ISO19321IVIv2.asn
index 2340b301..861e5565 100644
--- a/epan/dissectors/asn1/its/ISO19321IVIv2.asn
+++ b/epan/dissectors/asn1/its/ISO19321IVIv2.asn
@@ -19,7 +19,7 @@ ActionID, Altitude, DangerousGoodsBasic , DeltaLatitude, DeltaLongitude, DeltaRe
ReferencePosition, RoadType, SpecialTransportType, Speed, SpeedValue, StationType, TimestampIts, VehicleRole, VarLengthNumber, EuVehicleCategoryCode, Iso3833VehicleType
FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1)}
-AxleWeightLimits, DieselEmissionValues, ExhaustEmissionValues, EngineCharacteristics, EnvironmentalCharacteristics, PassengerCapacity , Provider, SoundLevel, VehicleDimensions, VehicleWeightLimits
+AxleWeightLimits, DieselEmissionValues, ExhaustEmissionValues, EngineCharacteristics, EnvironmentalCharacteristics, PassengerCapacity , Provider, SoundLevel, VehicleDimensions, VehicleWeightLimits
FROM EfcDsrcApplication {iso(1) standard(0) 14906 application(0) version6(6)}
--EuVehicleCategoryCode,
@@ -27,13 +27,19 @@ FROM EfcDsrcApplication {iso(1) standard(0) 14906 application(0) version6(6)}
--FROM ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) iso24534 (24534) vehicleData (1) version1 (1)}
--VarLengthNumber use ETSI-ITS-CDD instead
---FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) dataDictionary (1) version1 (1)}
+--FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) dataDictionary (1) version1 (1)}
-RoadSegmentReferenceID, IntersectionReferenceID, LaneID
+RoadSegmentReferenceID, IntersectionReferenceID, LaneID
FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)}
InternationalSign-applicablePeriod, InternationalSign-exemptedApplicablePeriod, InternationalSign-directionalFlowOfLane, InternationalSign-applicableVehicleDimensions, InternationalSign-speedLimits, InternationalSign-rateOfIncline, InternationalSign-distanceBetweenVehicles, InternationalSign-destinationInformation
-FROM GDD {iso (1) standard (0) gdd(14823) version1 (0)};
+FROM GDD {iso (1) standard (0) gdd(14823) version1 (0)}
+
+-- Wireshark modification
+IviIdentificationNumber
+FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1)}
+
+;
-- Definition of IVI structure
@@ -54,13 +60,13 @@ IviContainer::= CHOICE {
lac LayoutContainer,
..., -- original extension indicator of V1
[[ -- Extension in V2
- avc AutomatedVehicleContainer,
- mlc MapLocationContainer,
+ avc AutomatedVehicleContainer,
+ mlc MapLocationContainer,
rsc RoadSurfaceContainer ]]
}
IviManagementContainer::= SEQUENCE {
- serviceProviderId Provider,
+ serviceProviderId Provider,
iviIdentificationNumber IviIdentificationNumber,
timeStamp TimestampIts OPTIONAL,
validFrom TimestampIts OPTIONAL,
@@ -70,39 +76,39 @@ IviManagementContainer::= SEQUENCE {
..., -- original extension indicator of V1
connectedDenms ConnectedDenms OPTIONAL -- Extension in V2
}
-
+
GeographicLocationContainer::= SEQUENCE {
referencePosition ReferencePosition,
referencePositionTime TimestampIts OPTIONAL,
- referencePositionHeading Heading OPTIONAL,
+ referencePositionHeading Heading OPTIONAL,
referencePositionSpeed Speed OPTIONAL,
- parts GlcParts,
+ parts GlcParts,
...
}
GlcParts ::= SEQUENCE (SIZE (1..16,...)) OF GlcPart
GlcPart::= SEQUENCE {
- zoneId Zid,
+ zoneId Zid,
laneNumber LanePosition OPTIONAL,
zoneExtension INTEGER (0..255) OPTIONAL,
zoneHeading HeadingValue OPTIONAL,
zone Zone OPTIONAL,
- ...
+ ...
}
-GeneralIviContainer::= SEQUENCE (SIZE (1..16,...)) OF GicPart
+GeneralIviContainer::= SEQUENCE (SIZE (1..16,...)) OF GicPart
GicPart::= SEQUENCE {
- detectionZoneIds ZoneIds OPTIONAL,
+ detectionZoneIds ZoneIds OPTIONAL,
its-Rrid VarLengthNumber OPTIONAL,
- relevanceZoneIds ZoneIds OPTIONAL,
+ relevanceZoneIds ZoneIds OPTIONAL,
direction Direction OPTIONAL,
- driverAwarenessZoneIds ZoneIds OPTIONAL,
+ driverAwarenessZoneIds ZoneIds OPTIONAL,
minimumAwarenessTime INTEGER (0..255) OPTIONAL,
applicableLanes LanePositions OPTIONAL,
iviType IviType,
iviPurpose IviPurpose OPTIONAL,
- laneStatus LaneStatus OPTIONAL,
+ laneStatus LaneStatus OPTIONAL,
vehicleCharacteristics VehicleCharacteristicsList OPTIONAL,
driverCharacteristics DriverCharacteristics OPTIONAL,
layoutId INTEGER(1..4,...) OPTIONAL,
@@ -116,13 +122,13 @@ RoadConfigurationContainer::= SEQUENCE (SIZE (1..16,...)) OF RccPart
RccPart::= SEQUENCE{
relevanceZoneIds ZoneIds,
- roadType RoadType,
+ roadType RoadType,
laneConfiguration LaneConfiguration,
...
}
RoadSurfaceContainer::= SEQUENCE (SIZE (1..16,...)) OF RscPart
-
+
RscPart::= SEQUENCE{
detectionZoneIds ZoneIds OPTIONAL,
relevanceZoneIds ZoneIds,
@@ -135,10 +141,10 @@ RscPart::= SEQUENCE{
TextContainer::= SEQUENCE (SIZE (1..16,...)) OF TcPart
TcPart::= SEQUENCE {
- detectionZoneIds ZoneIds OPTIONAL,
- relevanceZoneIds ZoneIds,
- direction Direction OPTIONAL,
- driverAwarenessZoneIds ZoneIds OPTIONAL,
+ detectionZoneIds ZoneIds OPTIONAL,
+ relevanceZoneIds ZoneIds,
+ direction Direction OPTIONAL,
+ driverAwarenessZoneIds ZoneIds OPTIONAL,
minimumAwarenessTime INTEGER (0..255) OPTIONAL,
applicableLanes LanePositions OPTIONAL,
layoutId INTEGER(1..4,...) OPTIONAL,
@@ -147,29 +153,29 @@ TcPart::= SEQUENCE {
data OCTET STRING,
...,
[[ --extension in V2
- iviType IviType,
- laneStatus LaneStatus OPTIONAL,
+ iviType IviType,
+ laneStatus LaneStatus OPTIONAL,
vehicleCharacteristics VehicleCharacteristicsList OPTIONAL ]]
}
LayoutContainer::=SEQUENCE{
layoutId INTEGER(1..4,...),
- height INTEGER(10..73) OPTIONAL,
+ height INTEGER(10..73) OPTIONAL,
width INTEGER(10..265) OPTIONAL,
layoutComponents LayoutComponents,
- ...
+ ...
}
AutomatedVehicleContainer::= SEQUENCE (SIZE (1..16,...)) OF AvcPart -- new container in V2
AvcPart::= SEQUENCE { -- new container part in V2
- detectionZoneIds ZoneIds OPTIONAL,
- relevanceZoneIds ZoneIds,
+ detectionZoneIds ZoneIds OPTIONAL,
+ relevanceZoneIds ZoneIds,
direction Direction OPTIONAL,
applicableLanes LanePositions OPTIONAL,
vehicleCharacteristics VehicleCharacteristicsList OPTIONAL,
automatedVehicleRules AutomatedVehicleRules OPTIONAL,
- platooningRules PlatooningRules OPTIONAL,
+ platooningRules PlatooningRules OPTIONAL,
...
} (WITH COMPONENTS {..., automatedVehicleRules PRESENT} |
WITH COMPONENTS {..., platooningRules PRESENT})
@@ -177,7 +183,7 @@ AvcPart::= SEQUENCE { -- new container part in V2
MapLocationContainer::=SEQUENCE{ -- new container in V2
reference MapReference,
- parts MlcParts
+ parts MlcParts
}
MlcParts::= SEQUENCE (SIZE (1..16,...)) OF MlcPart -- new container part in V2
@@ -185,8 +191,8 @@ MlcParts::= SEQUENCE (SIZE (1..16,...)) OF MlcPart -- new container part in V2
MlcPart::= SEQUENCE{ -- new container part in V2
zoneId Zid,
laneIds LaneIds OPTIONAL
- }
-
+ }
+
-- Definition of data frames which are lists of data frames
-- note: those definitions are to avoid "implicit type definitions" but are bit compatible with V1
@@ -228,7 +234,7 @@ TrailerCharacteristicsList ::= SEQUENCE (SIZE (1..3)) OF TrailerCharacteristics
TrailerCharacteristicsFixValuesList ::= SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues (WITH COMPONENTS {..., euroAndCo2value ABSENT, engineCharacteristics ABSENT})
-TrailerCharacteristicsRangesList ::= SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges (WITH COMPONENTS {comparisonOperator, limits (WITH COMPONENTS {..., exhaustEmissionValues ABSENT, dieselEmissionValues ABSENT, soundLevel ABSENT})})
+TrailerCharacteristicsRangesList ::= SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges (WITH COMPONENTS {comparisonOperator, limits (WITH COMPONENTS {..., exhaustEmissionValues ABSENT, dieselEmissionValues ABSENT, soundLevel ABSENT})})
SaeAutomationLevels::= SEQUENCE (SIZE (1..5)) OF SaeAutomationLevel -- new DF in V2
@@ -252,17 +258,17 @@ AbsolutePosition::= SEQUENCE{
AbsolutePositionWAltitude::= SEQUENCE{
latitude Latitude,
longitude Longitude,
- altitude Altitude
+ altitude Altitude
}
AnyCatalogue::=SEQUENCE{
owner Provider,
version INTEGER(0..255),
pictogramCode INTEGER(0..65535),
- value INTEGER (0..65535) OPTIONAL,
+ value INTEGER (0..65535) OPTIONAL,
unit RSCUnit OPTIONAL,
attributes ISO14823Attributes OPTIONAL
- }
+ }
AutomatedVehicleRule::= SEQUENCE { -- new DF in V2
priority PriorityLevel,
@@ -284,11 +290,11 @@ CompleteVehicleCharacteristics::= SEQUENCE{
}
ComputedSegment::= SEQUENCE {
- zoneId Zid,
- laneNumber LanePosition,
+ zoneId Zid,
+ laneNumber LanePosition,
laneWidth IviLaneWidth,
- offsetDistance INTEGER (-32768..32767) OPTIONAL,
- offsetPosition DeltaReferencePosition OPTIONAL
+ offsetDistance INTEGER (-32768..32767) OPTIONAL,
+ offsetPosition DeltaReferencePosition OPTIONAL
}
DeltaPosition::=SEQUENCE{
@@ -308,54 +314,54 @@ ISO14823Attribute::= CHOICE{
}
ISO14823Code ::= SEQUENCE{
- pictogramCode SEQUENCE {
- countryCode OCTET STRING (SIZE (2)) OPTIONAL,
- serviceCategoryCode CHOICE {
+ pictogramCode SEQUENCE {
+ countryCode OCTET STRING (SIZE (2)) OPTIONAL,
+ serviceCategoryCode CHOICE {
trafficSignPictogram ENUMERATED {dangerWarning, regulatory, informative,...},
- publicFacilitiesPictogram ENUMERATED {publicFacilities, ...},
+ publicFacilitiesPictogram ENUMERATED {publicFacilities, ...},
ambientOrRoadConditionPictogram ENUMERATED {ambientCondition, roadCondition,...},
...},
pictogramCategoryCode SEQUENCE {
nature INTEGER (1..9),
serialNumber INTEGER (0..99)
}},
- attributes ISO14823Attributes OPTIONAL
+ attributes ISO14823Attributes OPTIONAL
}
LaneInformation::= SEQUENCE{
- laneNumber LanePosition,
+ laneNumber LanePosition,
direction Direction,
validity InternationalSign-applicablePeriod OPTIONAL,
- laneType LaneType,
+ laneType LaneType,
laneTypeQualifier CompleteVehicleCharacteristics OPTIONAL,
- laneStatus LaneStatus,
- laneWidth IviLaneWidth OPTIONAL,
+ laneStatus LaneStatus,
+ laneWidth IviLaneWidth OPTIONAL,
...,
[[ --extension in V2
detectionZoneIds ZoneIds OPTIONAL,
relevanceZoneIds ZoneIds OPTIONAL,
- laneCharacteristics LaneCharacteristics OPTIONAL,
+ laneCharacteristics LaneCharacteristics OPTIONAL,
laneSurfaceStaticCharacteristics RoadSurfaceStaticCharacteristics OPTIONAL,
laneSurfaceDynamicCharacteristics RoadSurfaceDynamicCharacteristics OPTIONAL ]]
}
LaneCharacteristics::= SEQUENCE{
zoneDefinitionAccuracy DefinitionAccuracy,
- existinglaneMarkingStatus LaneMarkingStatus,
+ existinglaneMarkingStatus LaneMarkingStatus,
newlaneMarkingColour MarkingColour,
laneDelimitationLeft LaneDelimitation,
laneDelimitationRight LaneDelimitation,
- mergingWith Zid
+ mergingWith Zid
}
LayoutComponent::=SEQUENCE{
layoutComponentId INTEGER(1..8,...),
- height INTEGER(10..73),
- width INTEGER(10..265),
+ height INTEGER(10..73),
+ width INTEGER(10..265),
x INTEGER(10..265),
- y INTEGER(10..73),
+ y INTEGER(10..73),
textScripting INTEGER {horizontal (0), vertical (1)}(0..1)
- }
+ }
LoadType::= SEQUENCE{
goodsType GoodsType,
@@ -383,10 +389,10 @@ PlatooningRule::= SEQUENCE { -- new DF in V2
}
PolygonalLine::= CHOICE {
- deltaPositions DeltaPositions,
- deltaPositionsWithAltitude DeltaReferencePositions,
- absolutePositions AbsolutePositions,
- absolutePositionsWithAltitude AbsolutePositionsWAltitude,
+ deltaPositions DeltaPositions,
+ deltaPositionsWithAltitude DeltaReferencePositions,
+ absolutePositions AbsolutePositions,
+ absolutePositionsWithAltitude AbsolutePositionsWAltitude,
...
}
@@ -403,12 +409,12 @@ RoadSurfaceStaticCharacteristics::= SEQUENCE{
wear WearLevel,
avBankingAngle BankingAngle
}
-
+
RSCode::= SEQUENCE{
layoutComponentId INTEGER(1..4,...) OPTIONAL,
code CHOICE {
viennaConvention VcCode, -- see Vienna Convention Annex A
- iso14823 ISO14823Code,
+ iso14823 ISO14823Code,
itisCodes INTEGER (0..65535), -- see SAE J2540
anyCatalogue AnyCatalogue,
...
@@ -421,16 +427,16 @@ Segment::= SEQUENCE {
Text::= SEQUENCE {
layoutComponentId INTEGER(1..4,...) OPTIONAL,
- language BIT STRING (SIZE(10)),
+ language BIT STRING (SIZE(10)),
textContent UTF8String
}
TractorCharacteristics::=SEQUENCE{
equalTo VehicleCharacteristicsFixValuesList OPTIONAL,
- notEqualTo VehicleCharacteristicsFixValuesList OPTIONAL,
+ notEqualTo VehicleCharacteristicsFixValuesList OPTIONAL,
ranges VehicleCharacteristicsRangesList OPTIONAL
}
-
+
TrailerCharacteristics::=SEQUENCE{
equalTo TrailerCharacteristicsFixValuesList OPTIONAL,
notEqualTo TrailerCharacteristicsFixValuesList OPTIONAL,
@@ -440,16 +446,16 @@ TrailerCharacteristics::=SEQUENCE{
TrainCharacteristics::= TractorCharacteristics
VcCode::= SEQUENCE {
- roadSignClass VcClass, -- see Vienna Convention
+ roadSignClass VcClass, -- see Vienna Convention
roadSignCode INTEGER (1..64),
vcOption VcOption, -- e.g. the "a" in H, 3a
- validity ValidityPeriods OPTIONAL,
- value INTEGER (0..65535) OPTIONAL,
- unit RSCUnit OPTIONAL
+ validity ValidityPeriods OPTIONAL,
+ value INTEGER (0..65535) OPTIONAL,
+ unit RSCUnit OPTIONAL
}
VehicleCharacteristicsFixValues::= CHOICE{
- simpleVehicleType StationType,
+ simpleVehicleType StationType,
euVehicleCategoryCode EuVehicleCategoryCode,
iso3833VehicleType Iso3833VehicleType,
euroAndCo2value EnvironmentalCharacteristics,
@@ -466,10 +472,10 @@ VehicleCharacteristicsRanges::= SEQUENCE{
vehicleDimensions VehicleDimensions,
vehicleWeightLimits VehicleWeightLimits,
axleWeightLimits AxleWeightLimits,
- passengerCapacity PassengerCapacity,
+ passengerCapacity PassengerCapacity,
exhaustEmissionValues ExhaustEmissionValues,
dieselEmissionValues DieselEmissionValues,
- soundLevel SoundLevel,
+ soundLevel SoundLevel,
...
}
}
@@ -481,7 +487,7 @@ Zone::= CHOICE {
...
}
--- Defition of IVI specific data elements
+-- Defition of IVI specific data elements
BankingAngle::=INTEGER (-20..21)
@@ -496,13 +502,13 @@ Condition::=INTEGER{
dry (0),
moist (1),
wet (2),
- standingWater (3),
+ standingWater (3),
frost (4),
ice (5),
snow (6),
slush (7),
unvailable (8)
--- values 9 to 15 reserved for future use
+-- values 9 to 15 reserved for future use
} (0..15, ...)
DefinitionAccuracy::= INTEGER{
@@ -528,11 +534,11 @@ Direction::= INTEGER{
DriverCharacteristics::= INTEGER{
unexperiencedDrivers (0),
experiencedDrivers (1),
- rfu1 (2),
+ rfu1 (2),
rfu2 (3)
} (0..3)
-FrictionCoefficient::= INTEGER (0..101)
+FrictionCoefficient::= INTEGER (0..101)
GapBetweenVehicles::= INTEGER (0..255) -- new DE in V2
@@ -554,28 +560,29 @@ GoodsType::= INTEGER {
-- other values reserved for future use
} (0..15,...)
-IviIdentificationNumber::= INTEGER(1..32767,...)
+-- Wireshark modification
+-- IviIdentificationNumber::= INTEGER(1..32767,...)
IviLaneWidth::= INTEGER (0..1023) -- only renamed from V1, no change
-IviPurpose::= INTEGER {
- safety (0),
- environmental (1),
+IviPurpose::= INTEGER {
+ safety (0),
+ environmental (1),
trafficOptimisation (2)
- } (0..3)
+ } (0..3)
IviStatus::= INTEGER {
- new (0),
- update (1),
- cancellation (2),
- negation (3)
+ new (0),
+ update (1),
+ cancellation (2),
+ negation (3)
-- other values reserved for future use
}(0..7)
IviType::= INTEGER {
immediateDangerWarningMessages (0),
regulatoryMessages (1),
- trafficRelatedInformationMessages (2),
+ trafficRelatedInformationMessages (2),
pollutionMessages (3),
notTrafficRelatedInformationMessages (4)
-- other values reserved for future use
@@ -589,7 +596,7 @@ LaneDelimitation::=INTEGER {
curb (4),
unpaved (5),
guardrail (6)
- -- value 7 reserved for future use
+ -- value 7 reserved for future use
} (0..7, ...)
LaneMarkingStatus::= BOOLEAN
@@ -601,8 +608,8 @@ LaneStatus::= INTEGER {
mergeL (3),
mergeLR (4),
provisionallyOpen (5),
- diverging (6)
- -- value 7 reserved for future use
+ diverging (6)
+ -- value 7 reserved for future use
} (0..7, ...)
LaneType::= INTEGER{
@@ -620,14 +627,14 @@ LaneType::= INTEGER{
hot (11),
pedestrian (12),
bikeLane (13),
- median (14),
+ median (14),
striping (15),
trackedVehicle (16),
parking (17),
emergency (18),
verge (19),
minimumRiskManoeuvre(20)
--- values 21 to 31 reserved for future use
+-- values 21 to 31 reserved for future use
}(0..31)
MarkingColour::=INTEGER {
@@ -637,7 +644,7 @@ MarkingColour::=INTEGER {
red (3),
blue (4),
unavailable (7)
- -- value 5,6 reserved for future use
+ -- value 5,6 reserved for future use
} (0..7, ...)
MaterialType::=INTEGER {
@@ -646,7 +653,7 @@ MaterialType::=INTEGER {
cobblestone (2),
gravel (3),
unavailable (7)
--- value 4, 5,6 reserved for future use
+-- value 4, 5,6 reserved for future use
} (0..7, ...)
MaxLenghtOfPlatoon::= INTEGER (1..64) -- new DE in V2
@@ -714,7 +721,7 @@ WearLevel::=INTEGER {
bad (2),
hasPotholes (3),
unavailable (7)
--- value 4, 5,6 reserved for future use
+-- value 4, 5,6 reserved for future use
} (0..7, ...)
Zid::= INTEGER (1..32,...)
diff --git a/epan/dissectors/asn1/its/ISO_TS_19321.asn b/epan/dissectors/asn1/its/ISO_TS_19321.asn
index 0299d718..937d9b05 100644
--- a/epan/dissectors/asn1/its/ISO_TS_19321.asn
+++ b/epan/dissectors/asn1/its/ISO_TS_19321.asn
@@ -18,7 +18,7 @@ IMPORTS
ItsPduHeader, Altitude, DangerousGoodsBasic , DeltaLatitude, DeltaLongitude, DeltaReferencePosition, Heading, HeadingValue, Latitude, LanePosition, Longitude, ReferencePosition, RoadType, SpecialTransportType, Speed, StationType, TimestampIts, VehicleRole
FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }
-AxleWeightLimits, DieselEmissionValues, ExhaustEmissionValues, EngineCharacteristics, EnvironmentalCharacteristics, PassengerCapacity , Provider, SoundLevel, VehicleDimensions, VehicleWeightLimits
+AxleWeightLimits, DieselEmissionValues, ExhaustEmissionValues, EngineCharacteristics, EnvironmentalCharacteristics, PassengerCapacity , Provider, SoundLevel, VehicleDimensions, VehicleWeightLimits
FROM EfcDsrcApplication {iso(1) standard(0) 14906 application(0) version5(5)}
EuVehicleCategoryCode, Iso3833VehicleType
@@ -28,6 +28,10 @@ FROM ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) i
VarLengthNumber
FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1) version1 (1)}
+-- Wireshark modification
+IviIdentificationNumber
+FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1)}
+
;
-- End of IMPORTS
@@ -61,7 +65,7 @@ IviContainer::= CHOICE {
-- Prefix IVI added due to naming collision with data element ManagementContainer of Module DENM-PDU-Descriptions
IVIManagementContainer::= SEQUENCE {
- serviceProviderId Provider,
+ serviceProviderId Provider,
iviIdentificationNumber IviIdentificationNumber,
timeStamp TimestampIts OPTIONAL,
validFrom TimestampIts OPTIONAL,
@@ -70,38 +74,38 @@ IVIManagementContainer::= SEQUENCE {
iviStatus IviStatus,
...
}
-
+
GeographicLocationContainer::= SEQUENCE {
referencePosition ReferencePosition,
referencePositionTime TimestampIts OPTIONAL,
- referencePositionHeading Heading OPTIONAL,
+ referencePositionHeading Heading OPTIONAL,
referencePositionSpeed Speed OPTIONAL,
- parts SEQUENCE (SIZE (1..16,...)) OF GlcPart,
+ parts SEQUENCE (SIZE (1..16,...)) OF GlcPart,
...
}
GlcPart::= SEQUENCE {
- zoneId Zid,
+ zoneId Zid,
laneNumber LanePosition OPTIONAL,
zoneExtension INTEGER (0..255) OPTIONAL,
zoneHeading HeadingValue OPTIONAL,
zone Zone OPTIONAL,
- ...
+ ...
}
-GeneralIviContainer::= SEQUENCE (SIZE (1..16,...)) OF GicPart
+GeneralIviContainer::= SEQUENCE (SIZE (1..16,...)) OF GicPart
GicPart::= SEQUENCE {
- detectionZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
+ detectionZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
its-Rrid VarLengthNumber OPTIONAL,
- relevanceZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
+ relevanceZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
direction Direction OPTIONAL,
- driverAwarenessZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
+ driverAwarenessZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
minimumAwarenessTime INTEGER (0..255) OPTIONAL,
applicableLanes SEQUENCE (SIZE (1..8,...)) OF LanePosition OPTIONAL,
iviType IviType,
iviPurpose IviPurpose OPTIONAL,
- laneStatus LaneStatus OPTIONAL,
+ laneStatus LaneStatus OPTIONAL,
vehicleCharacteristics SEQUENCE (SIZE (1..8, ...)) OF CompleteVehicleCharacteristics OPTIONAL,
driverCharacteristics DriverCharacteristics OPTIONAL,
layoutId INTEGER(1..4,...) OPTIONAL,
@@ -115,7 +119,7 @@ RoadConfigurationContainer::= SEQUENCE (SIZE (1..16,...)) OF RccPart
RccPart::= SEQUENCE{
zoneIds SEQUENCE (SIZE (1..8,...)) OF Zid,
- roadType RoadType,
+ roadType RoadType,
laneConfiguration SEQUENCE (SIZE (1..16,...)) OF LaneInformation,
...
}
@@ -123,10 +127,10 @@ RccPart::= SEQUENCE{
TextContainer::= SEQUENCE (SIZE (1..16,...)) OF TcPart
TcPart::= SEQUENCE {
- detectionZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
- relevanceZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid,
- direction Direction OPTIONAL,
- driverAwarenessZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
+ detectionZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
+ relevanceZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid,
+ direction Direction OPTIONAL,
+ driverAwarenessZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL,
minimumAwarenessTime INTEGER (0..255) OPTIONAL,
applicableLanes SEQUENCE (SIZE (1..8,...)) OF LanePosition OPTIONAL,
layoutId INTEGER(1..4,...) OPTIONAL,
@@ -138,10 +142,10 @@ TcPart::= SEQUENCE {
LayoutContainer::=SEQUENCE{
layoutId INTEGER(1..4,...),
- height INTEGER(10..73) OPTIONAL,
+ height INTEGER(10..73) OPTIONAL,
width INTEGER(10..265) OPTIONAL,
layoutComponents SEQUENCE SIZE (1..4,...) OF LayoutComponent,
- ...
+ ...
}
-- Definition of Data Frames & Elements
@@ -154,17 +158,17 @@ AbsolutePosition::= SEQUENCE{
AbsolutePositionWAltitude::= SEQUENCE{
latitude Latitude,
longitude Longitude,
- altitude Altitude
+ altitude Altitude
}
AnyCatalogue::=SEQUENCE{
owner Provider,
version INTEGER(0..255),
pictogramCode INTEGER(0..65535),
- value INTEGER (0..65535) OPTIONAL,
+ value INTEGER (0..65535) OPTIONAL,
unit RSCUnit OPTIONAL,
attributes ISO14823Attributes OPTIONAL
- }
+ }
ComparisonOperator ::= INTEGER {
greaterThan (0),
@@ -180,11 +184,11 @@ CompleteVehicleCharacteristics::= SEQUENCE{
}
ComputedSegment::= SEQUENCE {
- zoneId Zid,
- laneNumber LanePosition,
+ zoneId Zid,
+ laneNumber LanePosition,
laneWidth IVILaneWidth,
- offsetDistance INTEGER (-32768..32767) OPTIONAL,
- offsetPosition DeltaReferencePosition OPTIONAL
+ offsetDistance INTEGER (-32768..32767) OPTIONAL,
+ offsetPosition DeltaReferencePosition OPTIONAL
}
DeltaPosition::=SEQUENCE{
@@ -207,12 +211,12 @@ Distance::= SEQUENCE {
DistanceOrDuration::= SEQUENCE {
value INTEGER(1..16384),
unit RSCUnit (2..9)
- }
+ }
DriverCharacteristics::= INTEGER{
unexperiencedDrivers (0),
experiencedDrivers (1),
- rfu1 (2),
+ rfu1 (2),
rfu2 (3)
} (0..3)
@@ -236,9 +240,9 @@ GoodsType::= INTEGER {
ISO14823Attributes::= SEQUENCE (SIZE(1..8,...)) OF CHOICE{
- dtm DTM, -- Date/Time/Period
- edt EDT, -- Exemption status of Date/Time/Period
- dfl DFL, -- Directional Flow of Lane
+ dtm DTM, -- Date/Time/Period
+ edt EDT, -- Exemption status of Date/Time/Period
+ dfl DFL, -- Directional Flow of Lane
ved VED, -- Vehicle Dimensions
spe SPE, -- Speed
roi ROI, -- Rate of Incline
@@ -247,53 +251,54 @@ ISO14823Attributes::= SEQUENCE (SIZE(1..8,...)) OF CHOICE{
}
ISO14823Code ::= SEQUENCE{
- pictogramCode SEQUENCE {
- countryCode OCTET STRING (SIZE (2)) OPTIONAL,
- serviceCategoryCode CHOICE {
+ pictogramCode SEQUENCE {
+ countryCode OCTET STRING (SIZE (2)) OPTIONAL,
+ serviceCategoryCode CHOICE {
trafficSignPictogram ENUMERATED {dangerWarning, regulatory, informative,...},
- publicFacilitiesPictogram ENUMERATED {publicFacilities, ...},
+ publicFacilitiesPictogram ENUMERATED {publicFacilities, ...},
ambientOrRoadConditionPictogram ENUMERATED {ambientCondition, roadCondition,...},
...},
pictogramCategoryCode SEQUENCE {
nature INTEGER (1..9),
serialNumber INTEGER (0..99)
}},
- attributes ISO14823Attributes OPTIONAL
+ attributes ISO14823Attributes OPTIONAL
}
-IviIdentificationNumber::= INTEGER(1..32767,...)
+-- Wireshark modification
+-- IviIdentificationNumber::= INTEGER(1..32767,...)
-IviPurpose::= INTEGER {
- safety (0),
- environmental (1),
+IviPurpose::= INTEGER {
+ safety (0),
+ environmental (1),
trafficOptimisation (2)
- } (0..3)
+ } (0..3)
IviStatus::= INTEGER {
- new (0),
- update (1),
- cancellation (2),
- negation (3)
+ new (0),
+ update (1),
+ cancellation (2),
+ negation (3)
-- other values reserved for future use
}(0..7)
IviType::= INTEGER {
immediateDangerWarningMessages (0),
regulatoryMessages (1),
- trafficRelatedInformationMessages (2),
+ trafficRelatedInformationMessages (2),
pollutionMessages (3),
notTrafficRelatedInformationMessages (4)
-- other values reserved for future use
} (0..7)
LaneInformation::= SEQUENCE{
- laneNumber LanePosition,
+ laneNumber LanePosition,
direction Direction,
validity DTM OPTIONAL,
- laneType LaneType,
+ laneType LaneType,
laneTypeQualifier CompleteVehicleCharacteristics OPTIONAL,
- laneStatus LaneStatus,
- laneWidth IVILaneWidth OPTIONAL,
+ laneStatus LaneStatus,
+ laneWidth IVILaneWidth OPTIONAL,
...
}
@@ -304,8 +309,8 @@ LaneStatus::= INTEGER {
mergeL (3),
mergeLR (4),
provisionallyOpen (5),
- diverging (6)
- -- value 7 reserved for future use
+ diverging (6)
+ -- value 7 reserved for future use
} (0..7, ...)
LaneType::= INTEGER{
@@ -323,13 +328,13 @@ LaneType::= INTEGER{
hot (11),
pedestrian (12),
bikeLane (13),
- median (14),
+ median (14),
striping (15),
trackedVehicle (16),
parking (17),
emergency (18),
verge (19)
--- values 20 to 31 reserved for future use
+-- values 20 to 31 reserved for future use
}(0..31)
-- Prefix IVI added due to naming collision with data element LaneWidth of Module DSRC
@@ -337,12 +342,12 @@ IVILaneWidth::= INTEGER (0..1023)
LayoutComponent::=SEQUENCE{
layoutComponentId INTEGER(1..8,...),
- height INTEGER(10..73),
- width INTEGER(10..265),
+ height INTEGER(10..73),
+ width INTEGER(10..265),
x INTEGER(10..265),
- y INTEGER(10..73),
+ y INTEGER(10..73),
textScripting INTEGER {horizontal (0), vertical (1)}(0..1)
- }
+ }
LoadType::= SEQUENCE{
goodsType GoodsType,
@@ -351,18 +356,18 @@ LoadType::= SEQUENCE{
}
PolygonalLine::= CHOICE {
- deltaPositions SEQUENCE (SIZE (1..32,...)) OF DeltaPosition,
- deltaPositionsWithAltitude SEQUENCE (SIZE (1..32,...)) OF DeltaReferencePosition,
- absolutePositions SEQUENCE (SIZE (1..8,...)) OF AbsolutePosition,
- absolutePositionsWithAltitude SEQUENCE (SIZE (1..8,...)) OF AbsolutePositionWAltitude,
+ deltaPositions SEQUENCE (SIZE (1..32,...)) OF DeltaPosition,
+ deltaPositionsWithAltitude SEQUENCE (SIZE (1..32,...)) OF DeltaReferencePosition,
+ absolutePositions SEQUENCE (SIZE (1..8,...)) OF AbsolutePosition,
+ absolutePositionsWithAltitude SEQUENCE (SIZE (1..8,...)) OF AbsolutePositionWAltitude,
...
}
-
+
RSCode::= SEQUENCE{
layoutComponentId INTEGER(1..4,...) OPTIONAL,
code CHOICE {
viennaConvention VcCode, -- see Vienna Convention Annex A
- iso14823 ISO14823Code,
+ iso14823 ISO14823Code,
itisCodes INTEGER (0..65535), -- see SAE J2540
anyCatalogue AnyCatalogue,
...
@@ -394,20 +399,20 @@ Segment::= SEQUENCE {
Text::= SEQUENCE {
layoutComponentId INTEGER(1..4,...) OPTIONAL,
- language BIT STRING (SIZE(10)),
+ language BIT STRING (SIZE(10)),
textContent UTF8String
}
TractorCharacteristics::=SEQUENCE{
equalTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues OPTIONAL,
- notEqualTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues OPTIONAL,
+ notEqualTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues OPTIONAL,
ranges SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges OPTIONAL
}
-
+
TrailerCharacteristics::=SEQUENCE{
equalTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues (WITH COMPONENTS {..., euroAndCo2value ABSENT, engineCharacteristics ABSENT}) OPTIONAL,
- notEqualTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues (WITH COMPONENTS {..., euroAndCo2value ABSENT, engineCharacteristics ABSENT}) OPTIONAL,
- ranges SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges (WITH COMPONENTS {comparisonOperator, limits (WITH COMPONENTS {..., exhaustEmissionValues ABSENT, dieselEmissionValues ABSENT, soundLevel ABSENT})}) OPTIONAL
+ notEqualTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues (WITH COMPONENTS {..., euroAndCo2value ABSENT, engineCharacteristics ABSENT}) OPTIONAL,
+ ranges SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges (WITH COMPONENTS {comparisonOperator, limits (WITH COMPONENTS {..., exhaustEmissionValues ABSENT, dieselEmissionValues ABSENT, soundLevel ABSENT})}) OPTIONAL
}
TrainCharacteristics::= TractorCharacteristics
@@ -424,12 +429,12 @@ VcClass::= INTEGER {
} (0..7)
VcCode::= SEQUENCE {
- roadSignClass VcClass, -- see Vienna Convention
+ roadSignClass VcClass, -- see Vienna Convention
roadSignCode INTEGER (1..64),
vcOption VcOption, -- e.g. the "a" in H, 3a
- validity SEQUENCE (SIZE (1..8,...)) OF DTM OPTIONAL,
- value INTEGER (0..65535) OPTIONAL,
- unit RSCUnit OPTIONAL
+ validity SEQUENCE (SIZE (1..8,...)) OF DTM OPTIONAL,
+ value INTEGER (0..65535) OPTIONAL,
+ unit RSCUnit OPTIONAL
}
VcOption::= INTEGER {
@@ -444,7 +449,7 @@ VcOption::= INTEGER {
} (0..7)
VehicleCharacteristicsFixValues::= CHOICE{
- simpleVehicleType StationType,
+ simpleVehicleType StationType,
euVehicleCategoryCode EuVehicleCategoryCode,
iso3833VehicleType Iso3833VehicleType,
euroAndCo2value EnvironmentalCharacteristics,
@@ -460,16 +465,16 @@ VehicleCharacteristicsRanges::= SEQUENCE{
vehicleDimensions VehicleDimensions,
vehicleWeightLimits VehicleWeightLimits,
axleWeightLimits AxleWeightLimits,
- passengerCapacity PassengerCapacity,
+ passengerCapacity PassengerCapacity,
exhaustEmissionValues ExhaustEmissionValues,
dieselEmissionValues DieselEmissionValues,
- soundLevel SoundLevel,
+ soundLevel SoundLevel,
...}}
Weight::= SEQUENCE {
value INTEGER(1..16384),
unit RSCUnit (10..12)
- }
+ }
Zid::= INTEGER (1..32,...)
@@ -492,7 +497,7 @@ DTM ::= SEQUENCE {
smd MonthDay,
emd MonthDay
} OPTIONAL,
- pmd PMD OPTIONAL,
+ pmd PMD OPTIONAL,
hourMinutes SEQUENCE { -- contains SHM and EHM
shm HoursMinutes,
ehm HoursMinutes
@@ -503,7 +508,7 @@ DTM ::= SEQUENCE {
MonthDay ::= SEQUENCE {
month INTEGER (1..12),
- day INTEGER (1..31)
+ day INTEGER (1..31)
}
PMD::= BIT STRING {national-holiday (0), even-days(1), odd-days(2), market-day(3) } (SIZE (4))
@@ -546,7 +551,7 @@ SPE::=SEQUENCE{
ROI::= INTEGER(1..32)
-DBV::= Distance
+DBV::= Distance
-- changes: from DDD_IO to DDD-IO
DDD::= SEQUENCE{
dcj INTEGER(1..128) OPTIONAL,
@@ -555,15 +560,15 @@ DDD::= SEQUENCE{
ioList SEQUENCE (SIZE (1..8,...)) OF DDD-IO
}
-- changes: from DDD_IO to DDD-IO
-DDD-IO::= SEQUENCE{
+DDD-IO::= SEQUENCE{
drn INTEGER(0..7),
dp SEQUENCE (SIZE (1..4,...)) OF DestinationPlace OPTIONAL,
dr SEQUENCE (SIZE (1..4,...)) OF DestinationRoad OPTIONAL,
rne INTEGER(1..999) OPTIONAL,
stnId INTEGER(1..999) OPTIONAL,
- stnText UTF8String OPTIONAL,
+ stnText UTF8String OPTIONAL,
dcp DistanceOrDuration OPTIONAL,
- ddp DistanceOrDuration OPTIONAL
+ ddp DistanceOrDuration OPTIONAL
}
-- changes: from DDD_DEP to DDD-DEP
DestinationPlace::= SEQUENCE{
@@ -571,41 +576,41 @@ DestinationPlace::= SEQUENCE{
-- Encoding problem: to be checked if the statement is ASN.1 compatible
-- depRSCode ISO14823Code (WITH COMPONENTS {..., attributes ABSENT}) OPTIONAL,
depRSCode ISO14823Code OPTIONAL,
- depBlob OCTET STRING OPTIONAL,
+ depBlob OCTET STRING OPTIONAL,
plnId INTEGER(1..999) OPTIONAL,
plnText UTF8String OPTIONAL
- }
+ }
-- changes: from DDD_DER to DDD-DER
DestinationRoad::=SEQUENCE{
derType DDD-DER,
ronId INTEGER(1..999) OPTIONAL,
- ronText UTF8String OPTIONAL
+ ronText UTF8String OPTIONAL
}
-- changes: from DDD_DER to DDD-DER
-DDD-DER::= INTEGER {
- none (0),
- nationalHighway (1),
- localHighway (2),
+DDD-DER::= INTEGER {
+ none (0),
+ nationalHighway (1),
+ localHighway (2),
tollExpresswayMotorway (3),
- internationalHighway (4),
+ internationalHighway (4),
highway (5),
expressway (6),
- nationalRoad (7),
+ nationalRoad (7),
regionalProvincialRoad (8),
- localRoad (9),
+ localRoad (9),
motorwayJunction (10),
diversion (11),
rfu1 (12),
rfu2 (13),
rfu3 (14),
rfu4 (15)
- } (0..15, ...)
+ } (0..15, ...)
-- changes: from DDD_DEP to DDD-DEP
-DDD-DEP::= INTEGER {
- none (0),
- importantArea (1),
- principalArea (2),
- generalArea (3),
+DDD-DEP::= INTEGER {
+ none (0),
+ importantArea (1),
+ principalArea (2),
+ generalArea (3),
wellKnownPoint (4),
country (5),
city (6),
@@ -614,11 +619,11 @@ DDD-DEP::= INTEGER {
historicArea (9),
touristicArea (10),
culturalArea (11),
- touristicRoute (12),
- recommendedRoute (13),
+ touristicRoute (12),
+ recommendedRoute (13),
touristicAttraction (14),
geographicArea (15)
- } (0..15, ...)
+ } (0..15, ...)
diff --git a/epan/dissectors/asn1/its/its.cnf b/epan/dissectors/asn1/its/its.cnf
index b0205197..a6f0e8f2 100644
--- a/epan/dissectors/asn1/its/its.cnf
+++ b/epan/dissectors/asn1/its/its.cnf
@@ -25,7 +25,7 @@ RTCMEM
VAM
ItsPduHeaderVam
IMZM
-
+CollectivePerceptionMessage
EvcsnPdu
DriverLanguage
ChargingPower
@@ -39,14 +39,40 @@ TrailerPresenceInformation
CartesianAngularAccelerationComponent
CartesianAngularAccelerationComponentValue
AngularAccelerationConfidence
-StandardLength2B
-StandardLength9b
PrecipitationIntensity
ObjectFace
BogiesCount
BarometricPressure
AxlesCount
AirHumidity
+TracesExtended
+RoadConfigurationSection
+RoadConfigurationSectionList
+RoadSectionDefinition
+PathPredictedList
+PathPredicted2
+PathExtended
+PathReferences
+OccupiedLanesWithConfidence
+MapReferences
+IvimReference
+IvimReferences
+GeneralizedLanePositions
+UsageIndication
+MapemConfiguration
+MapemElementReference
+BasicLaneConfiguration
+OrdinalNumber1B
+Position1d
+ProviderId
+MapemConnectionList
+MapemLaneList
+GeoPosition
+BasicLaneInformation
+StandardLength2B
+RoadSectionId
+PathId
+IssuerIdentifier
#.NO_EMIT
Code-Units WITHOUT_VALS
@@ -100,7 +126,7 @@ MapData
SignalRequestMessage
SignalStatusMessage
RTCMcorrections
-CollectivePerceptionMessage
+CpmPayload
ItsPduHeader
VruAwareness
InterferenceManagementZoneMessage
@@ -484,7 +510,7 @@ CauseCodeType
regext->type = Reg_RTCMcorrections;
#.END
-#.FN_HDR CollectivePerceptionMessage
+#.FN_HDR CpmPayload
actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "CPM");
col_set_str(actx->pinfo->cinfo, COL_INFO, "CPM");
@@ -756,24 +782,42 @@ CauseCodeType
#.FN_PARS RegionId VAL_PTR = &((its_private_data_t*)actx->private_data)->region_id
-#.FN_PARS ProtocolVersion VAL_PTR = &((its_header_t*)actx->private_data)->version
-#.FN_PARS MessageId VAL_PTR = &((its_header_t*)actx->private_data)->msgId
-#.FN_PARS StationId VAL_PTR = actx->private_data?&((its_header_t*)actx->private_data)->stationId:NULL
-#.FN_PARS CpmContainerId VAL_PTR = &((its_header_t*)actx->private_data)->CpmContainerId
+#.FN_BODY ProtocolVersion VAL_PTR = &version
+ uint32_t version;
+%(DEFAULT_BODY)s
+ its_header_t *its_hdr = its_get_private_data(actx->pinfo);
+ its_hdr->version = version;
+
+#.FN_BODY MessageId VAL_PTR = &msgId
+ uint32_t msgId;
+%(DEFAULT_BODY)s
+ its_header_t *its_hdr = its_get_private_data(actx->pinfo);
+ its_hdr->msgId = msgId;
+
+#.FN_BODY StationId VAL_PTR = &stationId
+ uint32_t stationId;
+%(DEFAULT_BODY)s
+ its_header_t *its_hdr = its_get_private_data(actx->pinfo);
+ its_hdr->stationId = stationId;
+
+#.FN_BODY CpmContainerId VAL_PTR = &CpmContainerId
+ uint32_t CpmContainerId;
+%(DEFAULT_BODY)s
+ its_header_t *its_hdr = its_get_private_data(actx->pinfo);
+ its_hdr->CpmContainerId = CpmContainerId;
#.FN_BODY ItsPduHeader
- guint8 version = tvb_get_guint8(tvb, 0);
+ uint8_t version = tvb_get_uint8(tvb, 0);
int test_offset = offset;
if ((test_offset = dissector_try_uint(its_version_subdissector_table, version, tvb, actx->pinfo, tree))) {
return test_offset;
}
// Lets try it that way, regarless of version value...
- its_header_t *hdr = wmem_new0(actx->pinfo->pool, its_header_t);
- actx->private_data = (void*)hdr;
%(DEFAULT_BODY)s
tap_queue_packet(its_tap, actx->pinfo, actx->private_data);
tvbuff_t *next_tvb = tvb_new_subset_length(tvb, offset >> 3, -1);
- int data_offset = dissector_try_uint(its_msgid_subdissector_table, (hdr->version << 16)+hdr->msgId, next_tvb, actx->pinfo, tree);
+ its_header_t *its_hdr = its_get_private_data(actx->pinfo);
+ int data_offset = dissector_try_uint(its_msgid_subdissector_table, (its_hdr->version << 16)+its_hdr->msgId, next_tvb, actx->pinfo, tree);
if (!data_offset) {
proto_tree_add_expert(tree, actx->pinfo, &ei_its_no_sub_dis, next_tvb, 0, - 1);
data_offset = call_data_dissector(next_tvb, actx->pinfo, tree);
@@ -900,22 +944,22 @@ GenerationDeltaTime
#.FN_BODY InternationalSign-speedLimits/unit
offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
- 0U, 1U, %(VAL_PTR)s, FALSE);
+ 0U, 1U, %(VAL_PTR)s, false);
#.END
#.FN_BODY Weight/unit
offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
- 10U, 12U, %(VAL_PTR)s, FALSE);
+ 10U, 12U, %(VAL_PTR)s, false);
#.END
#.FN_BODY DistOrDuration-Units
offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
- 2U, 9U, %(VAL_PTR)s, FALSE);
+ 2U, 9U, %(VAL_PTR)s, false);
#.END
#.FN_BODY Distance/unit
offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
- 2U, 8U, %(VAL_PTR)s, FALSE);
+ 2U, 8U, %(VAL_PTR)s, false);
#.END
#=== PtActivation =======================================================
@@ -927,11 +971,11 @@ GenerationDeltaTime
pta = wmem_new0(actx->pinfo->pool, its_pt_activation_data_t);
actx->private_data = pta;
#.FN_FTR
- dissector_try_uint_new(cam_pt_activation_table, pta->type, pta->data, actx->pinfo, tree, TRUE, NULL);
+ dissector_try_uint_new(cam_pt_activation_table, pta->type, pta->data, actx->pinfo, tree, true, NULL);
actx->private_data = priv_data;
#.END
-#.FN_PARS
+#.FN_PARS
PtActivationType VAL_PTR = &((its_pt_activation_data_t*)actx->private_data)->type
PtActivationData VAL_PTR = &((its_pt_activation_data_t*)actx->private_data)->data
#.END
diff --git a/epan/dissectors/asn1/its/packet-its-template.c b/epan/dissectors/asn1/its/packet-its-template.c
index 13195380..c1cb3943 100644
--- a/epan/dissectors/asn1/its/packet-its-template.c
+++ b/epan/dissectors/asn1/its/packet-its-template.c
@@ -24,12 +24,14 @@
* TPG (TRM, TCM, VDRM, VDPM, EOFM) ETSI TS 101 556-2
* Charging (EV-RSR, SRM, SCM) ETSI TS 101 556-3
* GPC (RTCMEM) ETSI TS 103 301
+ * VA (VAM) ETSI TS 103 300-3 V2.2.1 (2023-02)
*
* Not supported:
* SA (SAEM) ETSI TS 102 890-1
* CTL (CTLM) ETSI TS 102 941
* CRL (CRLM) ETSI TS 102 941
* Certificate request ETSI TS 102 941
+ * MCD (MCDM) ETSI TS 103 152
*/
#include "config.h"
@@ -42,6 +44,8 @@
#include <epan/conversation.h>
#include <epan/tap.h>
#include <wsutil/utf8_entities.h>
+#include <wsutil/array.h>
+
#include "packet-ber.h"
#include "packet-per.h"
@@ -81,6 +85,8 @@
* 2014 CTL (CTLM) ETSI TS 102 941
* 2015 CRL (CRLM) ETSI TS 102 941
* 2016 Certificate request ETSI TS 102 941
+ * 2017 MCD (MCDM) ETSI TS 103 152
+ * 2018 VA (VAM) ETSI TS 103 300-3 V2.2.1 (2023-02)
*/
// Applications Well Known Ports
@@ -100,6 +106,8 @@
#define ITS_WKP_CTL 2014
#define ITS_WKP_CRL 2015
#define ITS_WKP_CERTIF_REQ 2016
+#define ITS_WKP_MCD 2017
+#define ITS_WKP_VA 2018
/*
* Prototypes
@@ -109,88 +117,88 @@ void proto_register_its(void);
static dissector_handle_t its_handle;
-static expert_field ei_its_no_sub_dis = EI_INIT;
+static expert_field ei_its_no_sub_dis;
// TAP
-static int its_tap = -1;
+static int its_tap;
// Protocols
-static int proto_its = -1;
-static int proto_its_denm = -1;
-static int proto_its_denmv1 = -1;
-static int proto_its_cam = -1;
-static int proto_its_camv1 = -1;
-static int proto_its_evcsn = -1;
-static int proto_its_evrsr = -1;
-static int proto_its_ivimv1 = -1;
-static int proto_its_ivim = -1;
-static int proto_its_tistpg = -1;
-static int proto_its_ssem = -1;
-static int proto_its_srem = -1;
-static int proto_its_rtcmemv1 = -1;
-static int proto_its_rtcmem = -1;
-static int proto_its_mapemv1 = -1;
-static int proto_its_mapem = -1;
-static int proto_its_spatemv1 = -1;
-static int proto_its_spatem = -1;
-static int proto_its_cpm = -1;
-static int proto_its_imzm = -1;
-static int proto_its_vam = -1;
-static int proto_addgrpc = -1;
+static int proto_its;
+static int proto_its_denm;
+static int proto_its_denmv1;
+static int proto_its_cam;
+static int proto_its_camv1;
+static int proto_its_evcsn;
+static int proto_its_evrsr;
+static int proto_its_ivimv1;
+static int proto_its_ivim;
+static int proto_its_tistpg;
+static int proto_its_ssem;
+static int proto_its_srem;
+static int proto_its_rtcmemv1;
+static int proto_its_rtcmem;
+static int proto_its_mapemv1;
+static int proto_its_mapem;
+static int proto_its_spatemv1;
+static int proto_its_spatem;
+static int proto_its_cpm;
+static int proto_its_imzm;
+static int proto_its_vam;
+static int proto_addgrpc;
/*
* DENM SSP
*/
-static int hf_denmssp_version = -1;
-static int hf_denmssp_flags = -1;
-static int hf_denmssp_trafficCondition = -1;
-static int hf_denmssp_accident = -1;
-static int hf_denmssp_roadworks = -1;
-static int hf_denmssp_adverseWeatherConditionAdhesion = -1;
-static int hf_denmssp_hazardousLocationSurfaceCondition = -1;
-static int hf_denmssp_hazardousLocationObstacleOnTheRoad = -1;
-static int hf_denmssp_hazardousLocationAnimalOnTheRoad = -1;
-static int hf_denmssp_humanPresenceOnTheRoad = -1;
-static int hf_denmssp_wrongWayDriving = -1;
-static int hf_denmssp_rescueAndRecoveryWorkInProgress = -1;
-static int hf_denmssp_ExtremeWeatherCondition = -1;
-static int hf_denmssp_adverseWeatherConditionVisibility = -1;
-static int hf_denmssp_adverseWeatherConditionPrecipitation = -1;
-static int hf_denmssp_slowVehicle = -1;
-static int hf_denmssp_dangerousEndOfQueue = -1;
-static int hf_denmssp_vehicleBreakdown = -1;
-static int hf_denmssp_postCrash = -1;
-static int hf_denmssp_humanProblem = -1;
-static int hf_denmssp_stationaryVehicle = -1;
-static int hf_denmssp_emergencyVehicleApproaching = -1;
-static int hf_denmssp_hazardousLocationDangerousCurve = -1;
-static int hf_denmssp_collisionRisk = -1;
-static int hf_denmssp_signalViolation = -1;
-static int hf_denmssp_dangerousSituation = -1;
+static int hf_denmssp_version;
+static int hf_denmssp_flags;
+static int hf_denmssp_trafficCondition;
+static int hf_denmssp_accident;
+static int hf_denmssp_roadworks;
+static int hf_denmssp_adverseWeatherConditionAdhesion;
+static int hf_denmssp_hazardousLocationSurfaceCondition;
+static int hf_denmssp_hazardousLocationObstacleOnTheRoad;
+static int hf_denmssp_hazardousLocationAnimalOnTheRoad;
+static int hf_denmssp_humanPresenceOnTheRoad;
+static int hf_denmssp_wrongWayDriving;
+static int hf_denmssp_rescueAndRecoveryWorkInProgress;
+static int hf_denmssp_ExtremeWeatherCondition;
+static int hf_denmssp_adverseWeatherConditionVisibility;
+static int hf_denmssp_adverseWeatherConditionPrecipitation;
+static int hf_denmssp_slowVehicle;
+static int hf_denmssp_dangerousEndOfQueue;
+static int hf_denmssp_vehicleBreakdown;
+static int hf_denmssp_postCrash;
+static int hf_denmssp_humanProblem;
+static int hf_denmssp_stationaryVehicle;
+static int hf_denmssp_emergencyVehicleApproaching;
+static int hf_denmssp_hazardousLocationDangerousCurve;
+static int hf_denmssp_collisionRisk;
+static int hf_denmssp_signalViolation;
+static int hf_denmssp_dangerousSituation;
/*
* CAM SSP
*/
-static int hf_camssp_version = -1;
-static int hf_camssp_flags = -1;
-static int hf_camssp_cenDsrcTollingZone = -1;
-static int hf_camssp_publicTransport = -1;
-static int hf_camssp_specialTransport = -1;
-static int hf_camssp_dangerousGoods = -1;
-static int hf_camssp_roadwork = -1;
-static int hf_camssp_rescue = -1;
-static int hf_camssp_emergency = -1;
-static int hf_camssp_safetyCar = -1;
-static int hf_camssp_closedLanes = -1;
-static int hf_camssp_requestForRightOfWay = -1;
-static int hf_camssp_requestForFreeCrossingAtATrafficLight = -1;
-static int hf_camssp_noPassing = -1;
-static int hf_camssp_noPassingForTrucks = -1;
-static int hf_camssp_speedLimit = -1;
-static int hf_camssp_reserved = -1;
-
-static gint ett_denmssp_flags = -1;
-static gint ett_camssp_flags = -1;
+static int hf_camssp_version;
+static int hf_camssp_flags;
+static int hf_camssp_cenDsrcTollingZone;
+static int hf_camssp_publicTransport;
+static int hf_camssp_specialTransport;
+static int hf_camssp_dangerousGoods;
+static int hf_camssp_roadwork;
+static int hf_camssp_rescue;
+static int hf_camssp_emergency;
+static int hf_camssp_safetyCar;
+static int hf_camssp_closedLanes;
+static int hf_camssp_requestForRightOfWay;
+static int hf_camssp_requestForFreeCrossingAtATrafficLight;
+static int hf_camssp_noPassing;
+static int hf_camssp_noPassingForTrucks;
+static int hf_camssp_speedLimit;
+static int hf_camssp_reserved;
+
+static int ett_denmssp_flags;
+static int ett_camssp_flags;
// Subdissectors
static dissector_table_t its_version_subdissector_table;
@@ -201,21 +209,32 @@ static dissector_table_t cam_pt_activation_table;
typedef struct its_private_data {
enum regext_type_enum type;
- guint32 region_id;
- guint32 cause_code;
+ uint32_t region_id;
+ uint32_t cause_code;
} its_private_data_t;
typedef struct its_pt_activation_data {
- guint32 type;
+ uint32_t type;
tvbuff_t *data;
} its_pt_activation_data_t;
+static its_header_t*
+its_get_private_data(packet_info* pinfo)
+{
+ its_header_t* its_hdr = (its_header_t*)p_get_proto_data(pinfo->pool, pinfo, proto_its, 0);
+ if (!its_hdr) {
+ its_hdr = wmem_new0(pinfo->pool, its_header_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_its, 0, its_hdr);
+ }
+ return its_hdr;
+}
+
// Specific dissector for content of open type for regional extensions
static int dissect_regextval_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
its_private_data_t *re = (its_private_data_t*)data;
// XXX What to do when region_id = noRegion? Test length is zero?
- if (!dissector_try_uint_new(regionid_subdissector_table, ((guint32) re->region_id<<16) + (guint32) re->type, tvb, pinfo, tree, FALSE, NULL))
+ if (!dissector_try_uint_new(regionid_subdissector_table, ((uint32_t) re->region_id<<16) + (uint32_t) re->type, tvb, pinfo, tree, false, NULL))
call_data_dissector(tvb, pinfo, tree);
return tvb_captured_length(tvb);
}
@@ -223,13 +242,15 @@ static int dissect_regextval_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
// Specific dissector for content of open type for regional extensions
static int dissect_cpmcontainers_pdu(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U_)
{
- its_header_t* hdr = (its_header_t*)data;
// XXX What to do when region_id = noRegion? Test length is zero?
- if (!dissector_try_uint_new(cpmcontainer_subdissector_table, hdr->CpmContainerId, tvb, pinfo, tree, FALSE, NULL))
+ if (!dissector_try_uint_new(cpmcontainer_subdissector_table, its_get_private_data(pinfo)->CpmContainerId, tvb, pinfo, tree, false, NULL))
call_data_dissector(tvb, pinfo, tree);
return tvb_captured_length(tvb);
}
+
+
+
static int dissect_denmssp_pdu(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_)
{
static int * const denmssp_flags[] = {
@@ -260,7 +281,7 @@ static int dissect_denmssp_pdu(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
NULL
};
- guint32 version;
+ uint32_t version;
proto_tree_add_item_ret_uint(tree, hf_denmssp_version, tvb, 0, 1, ENC_BIG_ENDIAN, &version);
if (version == 1) {
@@ -290,7 +311,7 @@ static int dissect_camssp_pdu(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
NULL
};
- guint32 version;
+ uint32_t version;
proto_tree_add_item_ret_uint(tree, hf_camssp_version, tvb, 0, 1, ENC_BIG_ENDIAN, &version);
if (version == 1) {
@@ -302,12 +323,12 @@ static int dissect_camssp_pdu(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
// Generated by asn2wrs
#include "packet-its-hf.c"
-static gint ett_its = -1;
+static int ett_its;
#include "packet-its-ett.c"
// Deal with cause/subcause code management
-struct { CauseCodeType_enum cause; int* hf; } cause_to_subcause[] = {
+static struct { CauseCodeType_enum cause; int* hf; } cause_to_subcause[] = {
{ trafficCondition, &hf_its_trafficCondition1 },
{ accident, &hf_its_accident2 },
{ roadworks, &hf_its_roadworks3 },
@@ -332,7 +353,7 @@ struct { CauseCodeType_enum cause; int* hf; } cause_to_subcause[] = {
{ collisionRisk, &hf_its_collisionRisk97 },
{ signalViolation, &hf_its_signalViolation98 },
{ dangerousSituation, &hf_its_dangerousSituation99 },
- { reserved, NULL },
+ { 0, NULL },
};
static int*
@@ -354,19 +375,19 @@ static unsigned char ita2_ascii[32] = {
static void
append_country_code_fmt(proto_item *item, tvbuff_t *val_tvb)
{
- guint16 v = tvb_get_guint16(val_tvb, 0, ENC_BIG_ENDIAN);
+ uint16_t v = tvb_get_uint16(val_tvb, 0, ENC_BIG_ENDIAN);
v >>= 6; /* 10 bits */
- guint16 v1 = (v >> 5) & 0x1F;
- guint16 v2 = v & 0x1F;
+ uint16_t v1 = (v >> 5) & 0x1F;
+ uint16_t v2 = v & 0x1F;
proto_item_append_text(item, " - %c%c", ita2_ascii[v1], ita2_ascii[v2]);
}
#include "packet-its-fn.c"
static void
-its_latitude_fmt(gchar *s, guint32 v)
+its_latitude_fmt(char *s, uint32_t v)
{
- gint32 lat = (gint32)v;
+ int32_t lat = (int32_t)v;
if (lat == 900000001) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lat);
} else {
@@ -380,9 +401,9 @@ its_latitude_fmt(gchar *s, guint32 v)
}
static void
-its_longitude_fmt(gchar *s, guint32 v)
+its_longitude_fmt(char *s, uint32_t v)
{
- gint32 lng = (gint32)v;
+ int32_t lng = (int32_t)v;
if (lng == 1800000001) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lng);
} else {
@@ -396,9 +417,9 @@ its_longitude_fmt(gchar *s, guint32 v)
}
static void
-its_altitude_fmt(gchar *s, guint32 v)
+its_altitude_fmt(char *s, uint32_t v)
{
- gint32 alt = (gint32)v;
+ int32_t alt = (int32_t)v;
if (alt == 800001) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", alt);
} else {
@@ -407,9 +428,9 @@ its_altitude_fmt(gchar *s, guint32 v)
}
static void
-its_delta_latitude_fmt(gchar *s, guint32 v)
+its_delta_latitude_fmt(char *s, uint32_t v)
{
- gint32 lat = (gint32)v;
+ int32_t lat = (int32_t)v;
if (lat == 131072) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lat);
} else {
@@ -423,9 +444,9 @@ its_delta_latitude_fmt(gchar *s, guint32 v)
}
static void
-its_delta_longitude_fmt(gchar *s, guint32 v)
+its_delta_longitude_fmt(char *s, uint32_t v)
{
- gint32 lng = (gint32)v;
+ int32_t lng = (int32_t)v;
if (lng == 131072) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", lng);
} else {
@@ -439,9 +460,9 @@ its_delta_longitude_fmt(gchar *s, guint32 v)
}
static void
-its_delta_altitude_fmt(gchar *s, guint32 v)
+its_delta_altitude_fmt(char *s, uint32_t v)
{
- gint32 alt = (gint32)v;
+ int32_t alt = (int32_t)v;
if (alt == 12800) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", alt);
} else {
@@ -450,15 +471,15 @@ its_delta_altitude_fmt(gchar *s, guint32 v)
}
static void
-its_path_delta_time_fmt(gchar *s, guint32 v)
+its_path_delta_time_fmt(char *s, uint32_t v)
{
- gint32 dt = (gint32)v;
+ int32_t dt = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%.2fs (%d)", dt * 0.01, dt);
}
static void
-its_sax_length_fmt(gchar *s, guint32 v)
+its_sax_length_fmt(char *s, uint32_t v)
{
if (v == 4095) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -470,9 +491,9 @@ its_sax_length_fmt(gchar *s, guint32 v)
}
static void
-its_heading_value_fmt(gchar *s, guint32 v)
+its_heading_value_fmt(char *s, uint32_t v)
{
- const gchar *p = try_val_to_str(v, VALS(its_HeadingValue_vals));
+ const char *p = try_val_to_str(v, VALS(its_HeadingValue_vals));
if (p) {
snprintf(s, ITEM_LABEL_LENGTH, "%s (%d)", p, v);
} else {
@@ -481,7 +502,7 @@ its_heading_value_fmt(gchar *s, guint32 v)
}
static void
-its_heading_confidence_fmt(gchar *s, guint32 v)
+its_heading_confidence_fmt(char *s, uint32_t v)
{
if (v == 127) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -493,7 +514,7 @@ its_heading_confidence_fmt(gchar *s, guint32 v)
}
static void
-its_speed_value_fmt(gchar *s, guint32 v)
+its_speed_value_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "standstill (%d)", v);
@@ -507,7 +528,7 @@ its_speed_value_fmt(gchar *s, guint32 v)
}
static void
-its_speed_confidence_fmt(gchar *s, guint32 v)
+its_speed_confidence_fmt(char *s, uint32_t v)
{
if (v == 127) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -519,13 +540,13 @@ its_speed_confidence_fmt(gchar *s, guint32 v)
}
static void
-its_speed_limit_fmt(gchar *s, guint32 v)
+its_speed_limit_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%dkm/h (%d)", v, v);
}
static void
-its_vehicle_length_value_fmt(gchar *s, guint32 v)
+its_vehicle_length_value_fmt(char *s, uint32_t v)
{
if (v == 1023) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -537,7 +558,7 @@ its_vehicle_length_value_fmt(gchar *s, guint32 v)
}
static void
-its_vehicle_width_fmt(gchar *s, guint32 v)
+its_vehicle_width_fmt(char *s, uint32_t v)
{
if (v == 62) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -549,9 +570,9 @@ its_vehicle_width_fmt(gchar *s, guint32 v)
}
static void
-its_acceleration_value_fmt(gchar *s, guint32 v)
+its_acceleration_value_fmt(char *s, uint32_t v)
{
- gint32 acc = (gint32)v;
+ int32_t acc = (int32_t)v;
if (acc == 161) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
} else {
@@ -560,7 +581,7 @@ its_acceleration_value_fmt(gchar *s, guint32 v)
}
static void
-its_acceleration_confidence_fmt(gchar *s, guint32 v)
+its_acceleration_confidence_fmt(char *s, uint32_t v)
{
if (v == 102) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -572,9 +593,9 @@ its_acceleration_confidence_fmt(gchar *s, guint32 v)
}
static void
-its_curvature_value_fmt(gchar *s, guint32 v)
+its_curvature_value_fmt(char *s, uint32_t v)
{
- gint32 curv = (gint32)v;
+ int32_t curv = (int32_t)v;
if (curv == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "straight (%d)", v);
} else if (curv == 30001) {
@@ -588,9 +609,9 @@ its_curvature_value_fmt(gchar *s, guint32 v)
}
static void
-its_yaw_rate_value_fmt(gchar *s, guint32 v)
+its_yaw_rate_value_fmt(char *s, uint32_t v)
{
- gint32 yaw = (gint32)v;
+ int32_t yaw = (int32_t)v;
if (yaw == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "straight (%d)", v);
} else if (yaw == 32767) {
@@ -604,9 +625,9 @@ its_yaw_rate_value_fmt(gchar *s, guint32 v)
}
static void
-its_swa_value_fmt(gchar *s, guint32 v)
+its_swa_value_fmt(char *s, uint32_t v)
{
- gint32 swa = (gint32)v;
+ int32_t swa = (int32_t)v;
if (swa == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "straight (%d)", v);
} else if (swa == 512) {
@@ -620,7 +641,7 @@ its_swa_value_fmt(gchar *s, guint32 v)
}
static void
-its_swa_confidence_fmt(gchar *s, guint32 v)
+its_swa_confidence_fmt(char *s, uint32_t v)
{
if (v == 127) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -632,7 +653,7 @@ its_swa_confidence_fmt(gchar *s, guint32 v)
}
static void
-dsrc_moi_fmt(gchar *s, guint32 v)
+dsrc_moi_fmt(char *s, uint32_t v)
{
if (v == 527040) {
snprintf(s, ITEM_LABEL_LENGTH, "invalid (%d)", v);
@@ -643,7 +664,7 @@ dsrc_moi_fmt(gchar *s, guint32 v)
}
static void
-dsrc_dsecond_fmt(gchar *s, guint32 v)
+dsrc_dsecond_fmt(char *s, uint32_t v)
{
if (v == 65535) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -656,7 +677,7 @@ dsrc_dsecond_fmt(gchar *s, guint32 v)
}
static void
-dsrc_time_mark_fmt(gchar *s, guint32 v)
+dsrc_time_mark_fmt(char *s, uint32_t v)
{
if (v == 36001) {
snprintf(s, ITEM_LABEL_LENGTH, "unknown (%d)", v);
@@ -669,17 +690,17 @@ dsrc_time_mark_fmt(gchar *s, guint32 v)
}
static void
-its_timestamp_fmt(gchar *s, guint64 v)
+its_timestamp_fmt(char *s, uint64_t v)
{
time_t secs = v / 1000 + 1072915200 - 5;
struct tm *tm = gmtime(&secs);
snprintf(s, ITEM_LABEL_LENGTH, "%u-%02u-%02u %02u:%02u:%02u.%03u (%" PRIu64 ")",
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (guint32)(v % 1000), v
+ tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (uint32_t)(v % 1000), v
);
}
static void
-its_validity_duration_fmt(gchar *s, guint32 v)
+its_validity_duration_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%02u:%02u:%02u (%d)",
v / 3600, v % 3600 / 60, v % 60, v);
@@ -706,7 +727,7 @@ static const value_string dsrc_TimeIntervalConfidence_vals[] = {
};
static void
-dsrc_velocity_fmt(gchar *s, guint32 v)
+dsrc_velocity_fmt(char *s, uint32_t v)
{
if (v == 8191) {
snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -718,15 +739,15 @@ dsrc_velocity_fmt(gchar *s, guint32 v)
}
static void
-dsrc_angle_fmt(gchar *s, guint32 v)
+dsrc_angle_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2f° (%d)", v * 0.0125, v);
}
static void
-dsrc_delta_time_fmt(gchar *s, guint32 v)
+dsrc_delta_time_fmt(char *s, uint32_t v)
{
- gint32 dt = (gint32)v;
+ int32_t dt = (int32_t)v;
if (dt == -122) {
snprintf(s, ITEM_LABEL_LENGTH, "unknown (%d)", dt);
} else if (dt == -121) {
@@ -741,13 +762,13 @@ dsrc_delta_time_fmt(gchar *s, guint32 v)
static void
-cpm_object_dimension_value_fmt(gchar *s, guint32 v)
+cpm_object_dimension_value_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%d)", v * 0.1, v);
}
//static void
-//cpm_object_dimension_confidence_fmt(gchar *s, guint32 v)
+//cpm_object_dimension_confidence_fmt(char *s, uint32_t v)
//{
// if (v == 102) {
// snprintf(s, ITEM_LABEL_LENGTH, "unavailable (%d)", v);
@@ -775,14 +796,14 @@ dissect_its_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
// Decode As...
static void
-its_msgid_prompt(packet_info *pinfo, gchar *result)
+its_msgid_prompt(packet_info *pinfo, char *result)
{
- guint32 msgid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, hf_its_messageId, pinfo->curr_layer_num));
+ uint32_t msgid = GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, hf_its_messageId, pinfo->curr_layer_num));
snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "MsgId (%s%u)", UTF8_RIGHTWARDS_ARROW, msgid);
}
-static gpointer
+static void *
its_msgid_value(packet_info *pinfo)
{
return p_get_proto_data(pinfo->pool, pinfo, hf_its_messageId, pinfo->curr_layer_num);
@@ -895,7 +916,7 @@ void proto_register_its(void)
{ &hf_camssp_reserved, { "reserved", "its.ssp.cam.reserved", FT_UINT16, BASE_DEC, NULL, 0x0003, NULL, HFILL }},
};
- static gint *ett[] = {
+ static int *ett[] = {
&ett_its,
&ett_denmssp_flags,
&ett_camssp_flags,
@@ -957,10 +978,12 @@ void proto_register_its(void)
decode_as_default_populate_list, decode_as_default_reset, decode_as_default_change, NULL};
register_decode_as(&its_da);
+
+ its_tap = register_tap("its");
}
#define BTP_SUBDISS_SZ 2
-#define BTP_PORTS_SZ 12
+#define BTP_PORTS_SZ 13
#define ITS_CAM_PROT_VER 2
#define ITS_CAM_PROT_VERv1 1
@@ -983,8 +1006,8 @@ void proto_register_its(void)
void proto_reg_handoff_its(void)
{
- const char *subdissector[BTP_SUBDISS_SZ] = { "btpa.port", "btpb.port" };
- const guint16 ports[BTP_PORTS_SZ] = { ITS_WKP_DEN, ITS_WKP_CA, ITS_WKP_EVCSN, ITS_WKP_CHARGING, ITS_WKP_IVI, ITS_WKP_TPG, ITS_WKP_TLC_SSEM, ITS_WKP_GPC, ITS_WKP_TLC_SREM, ITS_WKP_RLT, ITS_WKP_TLM, ITS_WKP_CPS };
+ static const char *subdissector[BTP_SUBDISS_SZ] = { "btpa.port", "btpb.port" };
+ static const uint16_t ports[BTP_PORTS_SZ] = { ITS_WKP_DEN, ITS_WKP_CA, ITS_WKP_EVCSN, ITS_WKP_CHARGING, ITS_WKP_IVI, ITS_WKP_TPG, ITS_WKP_TLC_SSEM, ITS_WKP_GPC, ITS_WKP_TLC_SREM, ITS_WKP_RLT, ITS_WKP_TLM, ITS_WKP_CPS, ITS_WKP_VA };
int sdIdx, pIdx;
// Register well known ports to btp subdissector table (BTP A and B)
@@ -1007,14 +1030,14 @@ void proto_reg_handoff_its(void)
dissector_add_uint("its.msg_id", (ITS_MAPEM_PROT_VER << 16) + ITS_MAPEM, create_dissector_handle( dissect_dsrc_MapData_PDU, proto_its_mapem ));
dissector_add_uint("its.msg_id", (ITS_IVIM_PROT_VERv1 << 16) + ITS_IVIM, create_dissector_handle( dissect_ivi_IviStructure_PDU, proto_its_ivimv1 ));
dissector_add_uint("its.msg_id", (ITS_IVIM_PROT_VER << 16) + ITS_IVIM, create_dissector_handle( dissect_ivi_IviStructure_PDU, proto_its_ivim ));
- dissector_add_uint("its.msg_id", ITS_EV_RSR, create_dissector_handle( dissect_evrsr_EV_RSR_MessageBody_PDU, proto_its_evrsr ));
+ dissector_add_uint("its.msg_id", ITS_RFU1 , create_dissector_handle( dissect_evrsr_EV_RSR_MessageBody_PDU, proto_its_evrsr ));
dissector_add_uint("its.msg_id", (ITS_SREM_PROT_VER << 16) + ITS_SREM, create_dissector_handle( dissect_dsrc_SignalRequestMessage_PDU, proto_its_srem ));
dissector_add_uint("its.msg_id", (ITS_SSEM_PROT_VER << 16) + ITS_SSEM, create_dissector_handle( dissect_dsrc_SignalStatusMessage_PDU, proto_its_ssem ));
dissector_add_uint("its.msg_id", (ITS_RTCMEM_PROT_VERv1 << 16) + ITS_RTCMEM, create_dissector_handle( dissect_dsrc_RTCMcorrections_PDU, proto_its_rtcmemv1));
dissector_add_uint("its.msg_id", (ITS_RTCMEM_PROT_VER << 16) + ITS_RTCMEM, create_dissector_handle(dissect_dsrc_RTCMcorrections_PDU, proto_its_rtcmem));
dissector_add_uint("its.msg_id", ITS_EVCSN, create_dissector_handle( dissect_evcsn_EVChargingSpotNotificationPOIMessage_PDU, proto_its_evcsn ));
- dissector_add_uint("its.msg_id", (ITS_TIS_TPG_PROT_VER << 16) + ITS_TISTPGTRANSACTION, create_dissector_handle( dissect_tistpg_TisTpgTransaction_PDU, proto_its_tistpg ));
- dissector_add_uint("its.msg_id", (ITS_CPM_PROT_VER << 16) + ITS_CPM, create_dissector_handle(dissect_cpm_CollectivePerceptionMessage_PDU, proto_its_cpm));
+ dissector_add_uint("its.msg_id", (ITS_TIS_TPG_PROT_VER << 16) + ITS_RFU2, create_dissector_handle( dissect_tistpg_TisTpgTransaction_PDU, proto_its_tistpg ));
+ dissector_add_uint("its.msg_id", (ITS_CPM_PROT_VER << 16) + ITS_CPM, create_dissector_handle(dissect_cpm_CpmPayload_PDU, proto_its_cpm));
dissector_add_uint("its.msg_id", (ITS_IMZM_PROT_VER << 16) + ITS_IMZM, create_dissector_handle(dissect_imzm_InterferenceManagementZoneMessage_PDU, proto_its_imzm));
dissector_add_uint("its.msg_id", (ITS_VAM_PROT_VER << 16) + ITS_VAM, create_dissector_handle(dissect_vam_VruAwareness_PDU, proto_its_vam));
@@ -1042,8 +1065,6 @@ void proto_reg_handoff_its(void)
dissector_add_uint("cpm.container", 3, create_dissector_handle(dissect_cpm_SensorInformationContainer_PDU, proto_its_cpm));
dissector_add_uint("cpm.container", 4, create_dissector_handle(dissect_cpm_PerceptionRegionContainer_PDU, proto_its_cpm));
dissector_add_uint("cpm.container", 5, create_dissector_handle(dissect_cpm_PerceivedObjectContainer_PDU, proto_its_cpm));
-
- its_tap = register_tap("its");
}
/*
diff --git a/epan/dissectors/asn1/its/packet-its-template.h b/epan/dissectors/asn1/its/packet-its-template.h
index 6381b753..c8fe5710 100644
--- a/epan/dissectors/asn1/its/packet-its-template.h
+++ b/epan/dissectors/asn1/its/packet-its-template.h
@@ -18,12 +18,15 @@
#include "packet-its-val.h"
typedef struct its_header {
- guint32 version;
- guint32 msgId;
- guint32 stationId;
- guint32 CpmContainerId;
+ uint32_t version;
+ uint32_t msgId;
+ uint32_t stationId;
+ uint32_t CpmContainerId;
} its_header_t;
+
+
+
enum regext_type_enum {
Reg_AdvisorySpeed,
Reg_ComputedLane,
diff --git a/epan/dissectors/asn1/kerberos/k5.asn b/epan/dissectors/asn1/kerberos/k5.asn
index 1eb9120a..ca8edcc9 100644
--- a/epan/dissectors/asn1/kerberos/k5.asn
+++ b/epan/dissectors/asn1/kerberos/k5.asn
@@ -124,6 +124,7 @@ PADATA-TYPE ::= INTEGER {
pA-SUPPORTED-ETYPES(165), -- [MS-KILE]
pA-EXTENDED-ERROR(166), -- [MS-KILE]
pA-PAC-OPTIONS(167), -- [MS-KILE]
+ pA-SRP(250), -- (lha@apple.com)
pA-PROV-SRV-LOCATION(-1) -- 0xffffffff (gint32)0xFF) packetcable stuff
}
@@ -151,7 +152,8 @@ AUTHDATA-TYPE ::= INTEGER {
aD-TARGET-PRINCIPAL(144), -- [MS-KILE]
aD-SIGNTICKET-OLDER(-17),
-- aD-SIGNTICKET-OLD(142),
- aD-SIGNTICKET(512)
+ aD-SIGNTICKET(512),
+ aD-PFS(513) -- (lha@apple.com)
}
-- checksumtypes
@@ -310,7 +312,8 @@ ERROR-CODE ::= INTEGER {
eRR-REVOCATION-STATUS-UNKNOWN(73),
eRR-REVOCATION-STATUS-UNAVAILABLE(74),
eRR-CLIENT-NAME-MISMATCH(75),
- eRR-KDC-NAME-MISMATCH(76)
+ eRR-KDC-NAME-MISMATCH(76),
+ eRR-KDC-MORE-PREAUTH-DATA-REQUIRED(91)
}
-- this is sugar to make something ASN1 does not have: unsigned
@@ -885,6 +888,71 @@ PA-KERB-KEY-LIST-REP-Key ::= EncryptionKey
PA-KERB-KEY-LIST-REP ::= SEQUENCE OF PA-KERB-KEY-LIST-REP-Key
+--
+-- [SRP]
+-- https://github.com/apple-oss-distributions/Heimdal/blob/main/doc/standardisation/draft-srp.txt
+-- https://github.com/apple-oss-distributions/Heimdal/blob/main/lib/asn1/krb5.asn1
+--
+
+KRB5-SRP-GROUP ::= INTEGER {
+ kRB5-SRP-GROUP-INVALID(0),
+ kRB5-SRP-GROUP-RFC5054-4096-PBKDF2-SHA512(1)
+}
+
+KRB5-SRP-PA ::= SEQUENCE {
+ group [0] KRB5-SRP-GROUP,
+ salt [1] OCTET STRING,
+ iterations [2] UInt32
+}
+
+KRB5-SRP-PA-ANNOUNCE ::= SEQUENCE {
+ groups [0] SET OF KRB5-SRP-PA, -- allowed groups and their salt
+ as-req [1] Checksum -- an unkeyed checksum of the AS-REQ using
+ -- an non weak checksum type that the KDC support
+ -- given the list of etype from the client
+}
+
+KRB5-SRP-PA-INIT ::= [APPLICATION 0] SEQUENCE {
+ group [0] UInt32,
+ a [1] OCTET STRING
+}
+
+KRB5-SRP-PA-SERVER-CHALLENGE ::= [APPLICATION 1] OCTET STRING -- b
+
+KRB5-SRP-PA-CLIENT-RESPONSE ::= [APPLICATION 2] OCTET STRING -- m
+
+KRB5-SRP-PA-SERVER-VERIFIER ::= [APPLICATION 3] OCTET STRING -- hamk
+
+--
+-- PFS from
+-- https://github.com/apple-oss-distributions/Heimdal/blob/main/lib/asn1/krb5.asn1
+--
+KRB5-PFS-GROUP ::= INTEGER {
+ kRB5-PFS-INVALID(0),
+ kRB5-PFS-NIST-P256(1),
+ kRB5-PFS-X25519(2)
+}
+
+KRB5-PFS-SELECTION ::= SEQUENCE {
+ group [0] KRB5-PFS-GROUP,
+ public-key [1] OCTET STRING
+}
+
+KRB5-PFS-SELECTIONS ::= SEQUENCE OF KRB5-PFS-SELECTION
+
+KRB5-PFS-PROPOSE ::= SEQUENCE {
+ checksum [0] Checksum OPTIONAL,
+ selections [1] KRB5-PFS-SELECTIONS
+}
+
+KRB5-PFS-ACCEPT ::= SEQUENCE {
+ checksum [0] Checksum OPTIONAL,
+ selection [1] KRB5-PFS-SELECTION
+}
+
+KRB5-PFS-ERROR ::= SEQUENCE {
+ groups [0] SEQUENCE OF KRB5-PFS-GROUP
+}
END
diff --git a/epan/dissectors/asn1/kerberos/kerberos.cnf b/epan/dissectors/asn1/kerberos/kerberos.cnf
index fb7b92ae..2a5dab5d 100644
--- a/epan/dissectors/asn1/kerberos/kerberos.cnf
+++ b/epan/dissectors/asn1/kerberos/kerberos.cnf
@@ -83,6 +83,12 @@ Principal
PROV-SRV-LOCATION
SAMFlags
TYPED-DATA
+KRB5-PFS-GROUP
+KRB5-PFS-SELECTION
+KRB5-PFS-SELECTIONS
+KRB5-PFS-PROPOSE
+KRB5-PFS-ACCEPT
+KRB5-PFS-ERROR
#.NO_EMIT ONLY_VALS
Applications
@@ -100,7 +106,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY MESSAGE-TYPE VAL_PTR = &msgtype
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- guint32 msgtype;
+ uint32_t msgtype;
%(DEFAULT_BODY)s
@@ -110,7 +116,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
val_to_str(msgtype, krb5_msg_types,
"Unknown msg type %#x"));
}
- gbl_do_col_info=FALSE;
+ gbl_do_col_info=false;
##if 0
/* append the application type to the tree */
@@ -134,34 +140,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.END
#.FN_BODY KRB-ERROR/_untag/e-data
- kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
-
- switch (private_data->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.
- */
- private_data->try_nt_status = TRUE;
- 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:
- case KRB5_ET_KDC_ERR_WRONG_REALM:
- case KRB5_ET_KDC_ERR_PREAUTH_EXPIRED:
- case KRB5_ET_KDC_ERR_MORE_PREAUTH_DATA_REQUIRED:
- case KRB5_ET_KDC_ERR_PREAUTH_BAD_AUTHENTICATION_SET:
- case KRB5_ET_KDC_ERR_UNKNOWN_CRITICAL_FAST_OPTIONS:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, dissect_kerberos_T_rEP_SEQUENCE_OF_PA_DATA);
- break;
- default:
- offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, NULL);
- break;
- }
-
+ offset = dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_kerberos_e_data, dissect_kerberos_T_e_data_octets);
#.FN_BODY PADATA-TYPE VAL_PTR=&(private_data->padata_type)
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
@@ -181,18 +160,18 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
* we need to defer calling dissect_kerberos_PA_FX_FAST_REQUEST,
* see dissect_kerberos_defer_PA_FX_FAST_REQUEST()
*/
- private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = TRUE, };
+ private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = true, };
%(DEFAULT_BODY)s
if (private_data->PA_FX_FAST_REQUEST.tvb != NULL) {
struct _kerberos_PA_FX_FAST_REQUEST used_stack = private_data->PA_FX_FAST_REQUEST;
- private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = FALSE, };
+ private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = false, };
/*
* dissect_kerberos_defer_PA_FX_FAST_REQUEST() remembered
* a tvb, so replay dissect_kerberos_PA_FX_FAST_REQUEST()
* here.
*/
- dissect_kerberos_PA_FX_FAST_REQUEST(FALSE,
+ dissect_kerberos_PA_FX_FAST_REQUEST(false,
used_stack.tvb,
0,
actx,
@@ -215,97 +194,100 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
switch(private_data->padata_type){
case KERBEROS_PA_TGS_REQ:
private_data->within_PA_TGS_REQ++;
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_Applications);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_Applications);
private_data->within_PA_TGS_REQ--;
break;
case KERBEROS_PA_PK_AS_REP_19:
- private_data->is_win2k_pkinit = TRUE;
+ private_data->is_win2k_pkinit = true;
if (kerberos_private_is_kdc_req(private_data)) {
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PA_PK_AS_REQ_Win2k);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PA_PK_AS_REQ_Win2k);
} else {
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PA_PK_AS_REP_Win2k);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PA_PK_AS_REP_Win2k);
}
break;
case KERBEROS_PA_PK_AS_REQ:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PaPkAsReq);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PaPkAsReq);
break;
case KERBEROS_PA_PK_AS_REP:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PaPkAsRep);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_pkinit_PaPkAsRep);
break;
case KERBEROS_PA_PAC_REQUEST:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_PAC_REQUEST);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_PAC_REQUEST);
break;
case KERBEROS_PA_FOR_USER: /* S4U2SELF */
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U2Self);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U2Self);
break;
case KERBEROS_PA_FOR_X509_USER:
if(private_data->msg_type == KRB5_MSG_AS_REQ){
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_x509af_Certificate);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_x509af_Certificate);
}else if(private_data->is_enc_padata){
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, NULL);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, NULL);
}else{
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U_X509_USER);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_S4U_X509_USER);
}
break;
case KERBEROS_PA_PROV_SRV_LOCATION:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_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 KERBEROS_PA_ENC_TIMESTAMP:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_ENC_TIMESTAMP);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_ENC_TIMESTAMP);
break;
case KERBEROS_PA_ETYPE_INFO:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_ETYPE_INFO);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_ETYPE_INFO);
break;
case KERBEROS_PA_ETYPE_INFO2:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_ETYPE_INFO2);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_ETYPE_INFO2);
break;
case KERBEROS_PA_PW_SALT:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_krb5_PW_SALT);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_krb5_PW_SALT);
break;
case KERBEROS_PA_AUTH_SET_SELECTED:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_AUTHENTICATION_SET_ELEM);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_AUTHENTICATION_SET_ELEM);
break;
case KERBEROS_PA_FX_FAST:
if (kerberos_private_is_kdc_req(private_data)) {
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_defer_PA_FX_FAST_REQUEST);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_defer_PA_FX_FAST_REQUEST);
}else{
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_FX_FAST_REPLY);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_FX_FAST_REPLY);
}
break;
case KERBEROS_PA_FX_ERROR:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_Applications);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_Applications);
break;
case KERBEROS_PA_ENCRYPTED_CHALLENGE:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_EncryptedChallenge);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_EncryptedChallenge);
break;
case KERBEROS_PA_KERB_KEY_LIST_REQ:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset, hf_index, dissect_kerberos_PA_KERB_KEY_LIST_REQ);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset, hf_index, dissect_kerberos_PA_KERB_KEY_LIST_REQ);
break;
case KERBEROS_PA_KERB_KEY_LIST_REP:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset, hf_index, dissect_kerberos_PA_KERB_KEY_LIST_REP);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset, hf_index, dissect_kerberos_PA_KERB_KEY_LIST_REP);
break;
case KERBEROS_PA_SUPPORTED_ETYPES:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_SUPPORTED_ENCTYPES);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_SUPPORTED_ENCTYPES);
break;
case KERBEROS_PA_PAC_OPTIONS:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset, hf_index, dissect_kerberos_PA_PAC_OPTIONS);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset, hf_index, dissect_kerberos_PA_PAC_OPTIONS);
break;
case KERBEROS_PA_REQ_ENC_PA_REP:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_Checksum);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_Checksum);
break;
case KERBEROS_PA_SPAKE:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_SPAKE);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_SPAKE);
+ break;
+ case KERBEROS_PA_SRP:
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_KRB5_SRP_PA_APPLICATIONS);
break;
default:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, NULL);
+ offset=dissect_ber_octet_string_wcb(false, actx, sub_tree, tvb, offset,hf_index, NULL);
break;
}
#.FN_BODY HostAddress/address
- gint8 appclass;
+ int8_t appclass;
bool pc;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
const char *address_str;
proto_item *it=NULL;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -358,56 +340,56 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.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);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_ticket_data);
##else
%(DEFAULT_BODY)s
##endif
#.FN_BODY EncryptedAuthorizationData/cipher
##ifdef HAVE_KERBEROS
- offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authorization_data);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authorization_data);
##else
%(DEFAULT_BODY)s
##endif
#.FN_BODY EncryptedAuthenticator/cipher
##ifdef HAVE_KERBEROS
- offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authenticator_data);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authenticator_data);
##else
%(DEFAULT_BODY)s
##endif
#.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);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KDC_REP_data);
##else
%(DEFAULT_BODY)s
##endif
#.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);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PA_ENC_TIMESTAMP);
##else
%(DEFAULT_BODY)s
##endif
#.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);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_AP_REP_data);
##else
%(DEFAULT_BODY)s
##endif
#.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);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PRIV_data);
##else
%(DEFAULT_BODY)s
##endif
#.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);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_CRED_data);
##else
%(DEFAULT_BODY)s
##endif
@@ -422,11 +404,11 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
switch(private_data->checksum_type){
case KRB5_CHKSUM_GSSAPI:
- offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
+ 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);
+ offset=dissect_ber_octet_string(false, actx, tree, tvb, offset, hf_index, NULL);
break;
}
@@ -475,7 +457,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY Authenticator/_untag/subkey
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
private_data->save_encryption_key_parent_hf_index = hf_kerberos_authenticator;
##ifdef HAVE_KERBEROS
@@ -487,7 +469,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY EncAPRepPart/_untag/subkey
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
private_data->save_encryption_key_parent_hf_index = hf_kerberos_encAPRepPart;
##ifdef HAVE_KERBEROS
@@ -499,7 +481,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY EncKDCRepPart/key
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
switch (private_data->msg_type) {
case KERBEROS_APPLICATIONS_AS_REP:
@@ -520,7 +502,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY EncTicketPart/_untag/key
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
private_data->save_encryption_key_parent_hf_index = hf_kerberos_encTicketPart;
##ifdef HAVE_KERBEROS
@@ -532,7 +514,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY KrbCredInfo/key
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
private_data->save_encryption_key_parent_hf_index = hf_kerberos_ticket_info_item;
##ifdef HAVE_KERBEROS
@@ -544,7 +526,7 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY PA-KERB-KEY-LIST-REP/_item
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
private_data->save_encryption_key_parent_hf_index = hf_kerberos_kerbKeyListRep_key;
##ifdef HAVE_KERBEROS
@@ -595,33 +577,31 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
%(DEFAULT_BODY)s
-#.FN_BODY KDC-REQ-BODY
- conversation_t *conversation;
+#.FN_BODY KDC-REQ
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ %(DEFAULT_BODY)s
+ if (private_data->krb5_conv != NULL) {
+ krb5_conf_add_request(actx);
+ }
- /*
- * 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, CONVERSATION_UDP,
- actx->pinfo->srcport, 0, NO_PORT_B);
- if (conversation == NULL) {
- conversation = conversation_new(actx->pinfo->num, &actx->pinfo->src, &actx->pinfo->dst, CONVERSATION_UDP,
- actx->pinfo->srcport, 0, NO_PORT2);
- conversation_set_dissector(conversation, kerberos_handle_udp);
- }
+#.FN_BODY KDC-REP
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ %(DEFAULT_BODY)s
+ if (private_data->krb5_conv != NULL) {
+ krb5_conf_add_response(actx);
}
+#.FN_BODY KRB-ERROR
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
%(DEFAULT_BODY)s
+ if (private_data->krb5_conv != NULL) {
+ krb5_conf_add_response(actx);
+ }
#.FN_BODY KRB-SAFE-BODY/user-data
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
tvbuff_t *new_tvb;
- offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &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, private_data->callbacks);
}
@@ -629,35 +609,35 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
#.FN_BODY EncKrbPrivPart/user-data
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
tvbuff_t *new_tvb;
- offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &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, private_data->callbacks);
}
#.FN_HDR EncKDCRepPart/encrypted-pa-data
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
- private_data->is_enc_padata = TRUE;
+ private_data->is_enc_padata = true;
#.FN_FTR EncKDCRepPart/encrypted-pa-data
- private_data->is_enc_padata = FALSE;
+ private_data->is_enc_padata = false;
#.FN_BODY EncryptedKrbFastReq/cipher
##ifdef HAVE_KERBEROS
- offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KrbFastReq);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KrbFastReq);
##else
%(DEFAULT_BODY)s
##endif
#.FN_BODY EncryptedKrbFastResponse/cipher
##ifdef HAVE_KERBEROS
- offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KrbFastResponse);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KrbFastResponse);
##else
%(DEFAULT_BODY)s
##endif
#.FN_BODY EncryptedChallenge/cipher
##ifdef HAVE_KERBEROS
- offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_EncryptedChallenge);
+ offset=dissect_ber_octet_string_wcb(false, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_EncryptedChallenge);
##else
%(DEFAULT_BODY)s
##endif
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
index 2b5a906d..97c4c01d 100644
--- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
@@ -15,11 +15,11 @@
*
* and
*
- * https://tools.ietf.org/html/draft-ietf-krb-wg-kerberos-clarifications-07
+ * https://tools.ietf.org/html/rfc4120
*
* and
*
- * https://tools.ietf.org/html/draft-ietf-krb-wg-kerberos-referrals-05
+ * https://tools.ietf.org/html/rfc6806
*
* Some structures from RFC2630
*
@@ -54,16 +54,19 @@
#endif
#include <epan/packet.h>
+#include <epan/proto_data.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 <epan/srt_table.h>
#include <wsutil/wsgcrypt.h>
#include <wsutil/file_util.h>
#include <wsutil/str_util.h>
#include <wsutil/pint.h>
+#include <wsutil/array.h>
#include "packet-kerberos.h"
#include "packet-netbios.h"
#include "packet-tcp.h"
@@ -96,9 +99,9 @@ void proto_reg_handoff_kerberos(void);
#define ADDRESS_STR_BUFSIZ 256
typedef struct kerberos_key {
- guint32 keytype;
+ uint32_t keytype;
int keylength;
- const guint8 *keyvalue;
+ const uint8_t *keyvalue;
} kerberos_key_t;
typedef void (*kerberos_key_save_fn)(tvbuff_t *tvb _U_, int offset _U_, int length _U_,
@@ -106,38 +109,50 @@ typedef void (*kerberos_key_save_fn)(tvbuff_t *tvb _U_, int offset _U_, int leng
int parent_hf_index _U_,
int hf_index _U_);
+typedef struct kerberos_conv_t {
+ wmem_list_t *frames;
+} kerberos_conv_t;
+
+typedef struct kerberos_frame_t {
+ struct kerberos_frame_t *req;
+ uint32_t frame;
+ nstime_t time;
+ uint32_t msg_type;
+ int srt_idx;
+} kerberos_frame_t;
+
typedef struct {
- guint32 msg_type;
- gboolean is_win2k_pkinit;
- guint32 errorcode;
- gboolean try_nt_status;
- guint32 etype;
- guint32 padata_type;
- guint32 is_enc_padata;
- guint32 enctype;
+ uint32_t msg_type;
+ bool is_win2k_pkinit;
+ uint32_t errorcode;
+ uint32_t etype;
+ uint32_t padata_type;
+ uint32_t is_enc_padata;
+ uint32_t enctype;
kerberos_key_t key;
proto_tree *key_tree;
proto_item *key_hidden_item;
tvbuff_t *key_tvb;
kerberos_callbacks *callbacks;
- guint32 ad_type;
- guint32 addr_type;
- guint32 checksum_type;
+ uint32_t ad_type;
+ uint32_t addr_type;
+ uint32_t checksum_type;
#ifdef HAVE_KERBEROS
enc_key_t *last_decryption_key;
enc_key_t *last_added_key;
+ enc_key_t *current_ticket_key;
tvbuff_t *last_ticket_enc_part_tvb;
#endif
- gint save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index;
kerberos_key_save_fn save_encryption_key_fn;
- guint learnt_key_ids;
- guint missing_key_ids;
+ unsigned learnt_key_ids;
+ unsigned missing_key_ids;
wmem_list_t *decryption_keys;
wmem_list_t *learnt_keys;
wmem_list_t *missing_keys;
- guint32 within_PA_TGS_REQ;
+ uint32_t within_PA_TGS_REQ;
struct _kerberos_PA_FX_FAST_REQUEST {
- gboolean defer;
+ bool defer;
tvbuff_t *tvb;
proto_tree *tree;
} PA_FX_FAST_REQUEST;
@@ -145,20 +160,24 @@ typedef struct {
enc_key_t *PA_TGS_REQ_key;
enc_key_t *PA_TGS_REQ_subkey;
#endif
- guint32 fast_type;
- guint32 fast_armor_within_armor_value;
+ uint32_t fast_type;
+ uint32_t fast_armor_within_armor_value;
#ifdef HAVE_KERBEROS
enc_key_t *PA_FAST_ARMOR_AP_key;
enc_key_t *PA_FAST_ARMOR_AP_subkey;
enc_key_t *fast_armor_key;
enc_key_t *fast_strengthen_key;
#endif
+ kerberos_conv_t *krb5_conv;
+ uint32_t frame_req, frame_rep;
+ nstime_t req_time;
} kerberos_private_data_t;
static dissector_handle_t kerberos_handle_tcp;
static dissector_handle_t kerberos_handle_udp;
/* Forward declarations */
+static kerberos_private_data_t *kerberos_get_private_data(asn1_ctx_t *actx);
static int dissect_kerberos_Applications(bool 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_AuthorizationData(bool 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(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -181,180 +200,195 @@ static int dissect_kerberos_PA_PAC_OPTIONS(bool implicit_tag _U_, tvbuff_t *tvb
static int dissect_kerberos_KERB_AD_RESTRICTION_ENTRY(bool 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_SEQUENCE_OF_ENCTYPE(bool 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_SPAKE(bool 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_DATA(bool 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_T_rEP_SEQUENCE_OF_PA_DATA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#ifdef HAVE_KERBEROS
static int dissect_kerberos_KrbFastReq(bool 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_KrbFastResponse(bool 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_FastOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#endif
+static int dissect_kerberos_KRB5_SRP_PA_ANNOUNCE(bool 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_KRB5_SRP_PA_INIT(bool 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_KRB5_SRP_PA_SERVER_CHALLENGE(bool 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_KRB5_SRP_PA_CLIENT_RESPONSE(bool 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_KRB5_SRP_PA_SERVER_VERIFIER(bool 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_pw_salt = -1;
-static gint hf_krb_ext_error_nt_status = -1;
-static gint hf_krb_ext_error_reserved = -1;
-static gint hf_krb_ext_error_flags = -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_data = -1;
-static gint hf_krb_pac_credential_info = -1;
-static gint hf_krb_pac_credential_info_version = -1;
-static gint hf_krb_pac_credential_info_etype = -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_flag_upn_constructed = -1;
-static gint hf_krb_pac_upn_flag_has_sam_name_and_sid = -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_offset = -1;
-static gint hf_krb_pac_upn_dns_len = -1;
-static gint hf_krb_pac_upn_dns_name = -1;
-static gint hf_krb_pac_upn_samaccountname_offset = -1;
-static gint hf_krb_pac_upn_samaccountname_len = -1;
-static gint hf_krb_pac_upn_samaccountname = -1;
-static gint hf_krb_pac_upn_objectsid_offset = -1;
-static gint hf_krb_pac_upn_objectsid_len = -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;
-static gint hf_krb_pac_client_claims_info = -1;
-static gint hf_krb_pac_device_info = -1;
-static gint hf_krb_pac_device_claims_info = -1;
-static gint hf_krb_pac_ticket_checksum = -1;
-static gint hf_krb_pac_attributes_info = -1;
-static gint hf_krb_pac_attributes_info_length = -1;
-static gint hf_krb_pac_attributes_info_flags = -1;
-static gint hf_krb_pac_attributes_info_flags_pac_was_requested = -1;
-static gint hf_krb_pac_attributes_info_flags_pac_was_given_implicitly = -1;
-static gint hf_krb_pac_requester_sid = -1;
-static gint hf_krb_pa_supported_enctypes = -1;
-static gint hf_krb_pa_supported_enctypes_des_cbc_crc = -1;
-static gint hf_krb_pa_supported_enctypes_des_cbc_md5 = -1;
-static gint hf_krb_pa_supported_enctypes_rc4_hmac = -1;
-static gint hf_krb_pa_supported_enctypes_aes128_cts_hmac_sha1_96 = -1;
-static gint hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96 = -1;
-static gint hf_krb_pa_supported_enctypes_fast_supported = -1;
-static gint hf_krb_pa_supported_enctypes_compound_identity_supported = -1;
-static gint hf_krb_pa_supported_enctypes_claims_supported = -1;
-static gint hf_krb_pa_supported_enctypes_resource_sid_compression_disabled = -1;
-static gint hf_krb_ad_ap_options = -1;
-static gint hf_krb_ad_ap_options_cbt = -1;
-static gint hf_krb_ad_target_principal = -1;
-static gint hf_krb_key_hidden_item = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_MessageType = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_Flags = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_ServiceTicketLength = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicketLength = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_ServiceTicket = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicket = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_FLAG_ALLOW_EXPIRED_TICKET = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_FLAG_REDIRECTED = -1;
+static bool krb_desegment = true;
+
+static int proto_kerberos;
+static int kerberos_tap;
+
+static int hf_krb_response_to;
+static int hf_krb_response_in;
+static int hf_krb_time;
+static int hf_krb_rm_reserved;
+static int hf_krb_rm_reclen;
+static int hf_krb_provsrv_location;
+static int hf_krb_pw_salt;
+static int hf_krb_ext_error_nt_status;
+static int hf_krb_ext_error_reserved;
+static int hf_krb_ext_error_flags;
+static int hf_krb_address_ip;
+static int hf_krb_address_netbios;
+static int hf_krb_address_ipv6;
+static int hf_krb_gssapi_len;
+static int hf_krb_gssapi_bnd;
+static int hf_krb_gssapi_dlgopt;
+static int hf_krb_gssapi_dlglen;
+static int hf_krb_gssapi_c_flag_deleg;
+static int hf_krb_gssapi_c_flag_mutual;
+static int hf_krb_gssapi_c_flag_replay;
+static int hf_krb_gssapi_c_flag_sequence;
+static int hf_krb_gssapi_c_flag_conf;
+static int hf_krb_gssapi_c_flag_integ;
+static int hf_krb_gssapi_c_flag_dce_style;
+static int hf_krb_midl_version;
+static int hf_krb_midl_hdr_len;
+static int hf_krb_midl_fill_bytes;
+static int hf_krb_midl_blob_len;
+static int hf_krb_pac_signature_type;
+static int hf_krb_pac_signature_signature;
+static int hf_krb_w2k_pac_entries;
+static int hf_krb_w2k_pac_version;
+static int hf_krb_w2k_pac_type;
+static int hf_krb_w2k_pac_size;
+static int hf_krb_w2k_pac_offset;
+static int hf_krb_pac_clientid;
+static int hf_krb_pac_namelen;
+static int hf_krb_pac_clientname;
+static int hf_krb_pac_logon_info;
+static int hf_krb_pac_credential_data;
+static int hf_krb_pac_credential_info;
+static int hf_krb_pac_credential_info_version;
+static int hf_krb_pac_credential_info_etype;
+static int hf_krb_pac_s4u_delegation_info;
+static int hf_krb_pac_upn_dns_info;
+static int hf_krb_pac_upn_flags;
+static int hf_krb_pac_upn_flag_upn_constructed;
+static int hf_krb_pac_upn_flag_has_sam_name_and_sid;
+static int hf_krb_pac_upn_upn_offset;
+static int hf_krb_pac_upn_upn_len;
+static int hf_krb_pac_upn_upn_name;
+static int hf_krb_pac_upn_dns_offset;
+static int hf_krb_pac_upn_dns_len;
+static int hf_krb_pac_upn_dns_name;
+static int hf_krb_pac_upn_samaccountname_offset;
+static int hf_krb_pac_upn_samaccountname_len;
+static int hf_krb_pac_upn_samaccountname;
+static int hf_krb_pac_upn_objectsid_offset;
+static int hf_krb_pac_upn_objectsid_len;
+static int hf_krb_pac_server_checksum;
+static int hf_krb_pac_privsvr_checksum;
+static int hf_krb_pac_client_info_type;
+static int hf_krb_pac_client_claims_info;
+static int hf_krb_pac_device_info;
+static int hf_krb_pac_device_claims_info;
+static int hf_krb_pac_ticket_checksum;
+static int hf_krb_pac_attributes_info;
+static int hf_krb_pac_attributes_info_length;
+static int hf_krb_pac_attributes_info_flags;
+static int hf_krb_pac_attributes_info_flags_pac_was_requested;
+static int hf_krb_pac_attributes_info_flags_pac_was_given_implicitly;
+static int hf_krb_pac_requester_sid;
+static int hf_krb_pac_full_checksum;
+static int hf_krb_pa_supported_enctypes;
+static int hf_krb_pa_supported_enctypes_des_cbc_crc;
+static int hf_krb_pa_supported_enctypes_des_cbc_md5;
+static int hf_krb_pa_supported_enctypes_rc4_hmac;
+static int hf_krb_pa_supported_enctypes_aes128_cts_hmac_sha1_96;
+static int hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96;
+static int hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96_sk;
+static int hf_krb_pa_supported_enctypes_fast_supported;
+static int hf_krb_pa_supported_enctypes_compound_identity_supported;
+static int hf_krb_pa_supported_enctypes_claims_supported;
+static int hf_krb_pa_supported_enctypes_resource_sid_compression_disabled;
+static int hf_krb_ad_ap_options;
+static int hf_krb_ad_ap_options_cbt;
+static int hf_krb_ad_ap_options_unverified_target_name;
+static int hf_krb_ad_target_principal;
+static int hf_krb_key_hidden_item;
+static int hf_kerberos_KERB_TICKET_LOGON;
+static int hf_kerberos_KERB_TICKET_LOGON_MessageType;
+static int hf_kerberos_KERB_TICKET_LOGON_Flags;
+static int hf_kerberos_KERB_TICKET_LOGON_ServiceTicketLength;
+static int hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicketLength;
+static int hf_kerberos_KERB_TICKET_LOGON_ServiceTicket;
+static int hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicket;
+static int hf_kerberos_KERB_TICKET_LOGON_FLAG_ALLOW_EXPIRED_TICKET;
+static int hf_kerberos_KERB_TICKET_LOGON_FLAG_REDIRECTED;
#ifdef HAVE_KERBEROS
-static gint hf_kerberos_KrbFastResponse = -1;
-static gint hf_kerberos_strengthen_key = -1;
-static gint hf_kerberos_finished = -1;
-static gint hf_kerberos_fast_options = -1;
-static gint hf_kerberos_ticket_checksum = -1;
-static gint hf_krb_patimestamp = -1;
-static gint hf_krb_pausec = -1;
-static gint hf_kerberos_FastOptions_reserved = -1;
-static gint hf_kerberos_FastOptions_hide_client_names = -1;
-static gint hf_kerberos_FastOptions_spare_bit2 = -1;
-static gint hf_kerberos_FastOptions_spare_bit3 = -1;
-static gint hf_kerberos_FastOptions_spare_bit4 = -1;
-static gint hf_kerberos_FastOptions_spare_bit5 = -1;
-static gint hf_kerberos_FastOptions_spare_bit6 = -1;
-static gint hf_kerberos_FastOptions_spare_bit7 = -1;
-static gint hf_kerberos_FastOptions_spare_bit8 = -1;
-static gint hf_kerberos_FastOptions_spare_bit9 = -1;
-static gint hf_kerberos_FastOptions_spare_bit10 = -1;
-static gint hf_kerberos_FastOptions_spare_bit11 = -1;
-static gint hf_kerberos_FastOptions_spare_bit12 = -1;
-static gint hf_kerberos_FastOptions_spare_bit13 = -1;
-static gint hf_kerberos_FastOptions_spare_bit14 = -1;
-static gint hf_kerberos_FastOptions_spare_bit15 = -1;
-static gint hf_kerberos_FastOptions_kdc_follow_referrals = -1;
+static int hf_kerberos_KrbFastResponse;
+static int hf_kerberos_strengthen_key;
+static int hf_kerberos_finished;
+static int hf_kerberos_fast_options;
+static int hf_kerberos_ticket_checksum;
+static int hf_krb_patimestamp;
+static int hf_krb_pausec;
+static int hf_kerberos_FastOptions_reserved;
+static int hf_kerberos_FastOptions_hide_client_names;
+static int hf_kerberos_FastOptions_spare_bit2;
+static int hf_kerberos_FastOptions_spare_bit3;
+static int hf_kerberos_FastOptions_spare_bit4;
+static int hf_kerberos_FastOptions_spare_bit5;
+static int hf_kerberos_FastOptions_spare_bit6;
+static int hf_kerberos_FastOptions_spare_bit7;
+static int hf_kerberos_FastOptions_spare_bit8;
+static int hf_kerberos_FastOptions_spare_bit9;
+static int hf_kerberos_FastOptions_spare_bit10;
+static int hf_kerberos_FastOptions_spare_bit11;
+static int hf_kerberos_FastOptions_spare_bit12;
+static int hf_kerberos_FastOptions_spare_bit13;
+static int hf_kerberos_FastOptions_spare_bit14;
+static int hf_kerberos_FastOptions_spare_bit15;
+static int hf_kerberos_FastOptions_kdc_follow_referrals;
#endif
#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_credential_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_upn_dns_info_flags = -1;
-static gint ett_krb_pac_device_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;
-static gint ett_krb_pac_ticket_checksum = -1;
-static gint ett_krb_pac_attributes_info = -1;
-static gint ett_krb_pac_attributes_info_flags = -1;
-static gint ett_krb_pac_requester_sid = -1;
-static gint ett_krb_pa_supported_enctypes = -1;
-static gint ett_krb_ad_ap_options = -1;
-static gint ett_kerberos_KERB_TICKET_LOGON = -1;
+static int ett_kerberos;
+static int ett_krb_recordmark;
+static int ett_krb_pac;
+static int ett_krb_pac_drep;
+static int ett_krb_pac_midl_blob;
+static int ett_krb_pac_logon_info;
+static int ett_krb_pac_credential_info;
+static int ett_krb_pac_s4u_delegation_info;
+static int ett_krb_pac_upn_dns_info;
+static int ett_krb_pac_upn_dns_info_flags;
+static int ett_krb_pac_device_info;
+static int ett_krb_pac_server_checksum;
+static int ett_krb_pac_privsvr_checksum;
+static int ett_krb_pac_client_info_type;
+static int ett_krb_pac_ticket_checksum;
+static int ett_krb_pac_attributes_info;
+static int ett_krb_pac_attributes_info_flags;
+static int ett_krb_pac_requester_sid;
+static int ett_krb_pac_full_checksum;
+static int ett_krb_pa_supported_enctypes;
+static int ett_krb_ad_ap_options;
+static int ett_kerberos_KERB_TICKET_LOGON;
#ifdef HAVE_KERBEROS
-static gint ett_krb_pa_enc_ts_enc = -1;
-static gint ett_kerberos_KrbFastFinished = -1;
-static gint ett_kerberos_KrbFastResponse = -1;
-static gint ett_kerberos_KrbFastReq = -1;
-static gint ett_kerberos_FastOptions = -1;
+static int ett_krb_pa_enc_ts_enc;
+static int ett_kerberos_KrbFastFinished;
+static int ett_kerberos_KrbFastResponse;
+static int ett_kerberos_KrbFastReq;
+static int ett_kerberos_FastOptions;
#endif
#include "packet-kerberos-ett.c"
-static expert_field ei_kerberos_missing_keytype = EI_INIT;
-static expert_field ei_kerberos_decrypted_keytype = EI_INIT;
-static expert_field ei_kerberos_learnt_keytype = EI_INIT;
-static expert_field ei_kerberos_address = EI_INIT;
-static expert_field ei_krb_gssapi_dlglen = EI_INIT;
+static expert_field ei_kerberos_missing_keytype;
+static expert_field ei_kerberos_decrypted_keytype;
+static expert_field ei_kerberos_learnt_keytype;
+static expert_field ei_kerberos_address;
+static expert_field ei_krb_gssapi_dlglen;
-static dissector_handle_t krb4_handle=NULL;
+static dissector_handle_t krb4_handle;
/* Global variables */
-static guint32 gbl_keytype;
-static gboolean gbl_do_col_info;
+static uint32_t gbl_keytype;
+static bool gbl_do_col_info;
#include "packet-kerberos-val.h"
@@ -375,20 +409,228 @@ call_kerberos_callbacks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int
return;
}
+static int
+krb5_frame_compare(gconstpointer a, gconstpointer b)
+{
+ kerberos_frame_t *fa = (kerberos_frame_t *)a;
+ kerberos_frame_t *fb = (kerberos_frame_t *)b;
+
+ return fa->frame - fb->frame;
+}
+
+static kerberos_conv_t *krb5_conv_find_or_create(packet_info *pinfo)
+{
+ conversation_t *conversation = NULL;
+ kerberos_conv_t *kconv = NULL;
+
+ conversation = find_or_create_conversation(pinfo);
+ kconv = (kerberos_conv_t *)conversation_get_proto_data(conversation,
+ proto_kerberos);
+ if (kconv == NULL) {
+ kconv = wmem_new0(wmem_file_scope(), kerberos_conv_t);
+ kconv->frames = wmem_list_new(wmem_file_scope());
+
+ conversation_add_proto_data(conversation, proto_kerberos, kconv);
+ }
+
+ return kconv;
+}
+
+static void krb5_conf_add_request(asn1_ctx_t *actx)
+{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ packet_info *pinfo = actx->pinfo;
+ kerberos_frame_t _krqf = { .frame = 0, };
+ kerberos_frame_t *krqf = NULL;
+ wmem_list_frame_t *wf = NULL;
+ kerberos_frame_t *krpf = NULL;
+
+ if (private_data->krb5_conv == NULL)
+ return;
+
+ if (!pinfo->fd->visited) {
+ krqf = wmem_new0(wmem_file_scope(), kerberos_frame_t);
+ if (krqf == NULL) {
+ return;
+ }
+ } else {
+ krqf = &_krqf;
+ }
+
+ krqf->frame = pinfo->num;
+ krqf->time = pinfo->abs_ts;
+ krqf->msg_type = private_data->msg_type;
+ krqf->srt_idx = -1;
+
+ if (!pinfo->fd->visited) {
+ wmem_list_insert_sorted(private_data->krb5_conv->frames,
+ krqf, krb5_frame_compare);
+ }
+
+ wf = wmem_list_find_custom(private_data->krb5_conv->frames,
+ krqf, krb5_frame_compare);
+ if (wf != NULL) {
+ /*
+ * replace the pointer with the one allocated on
+ * wmem_file_scope()
+ */
+ krqf = (kerberos_frame_t *)wmem_list_frame_data(wf);
+ /* The next one should be the response */
+ wf = wmem_list_frame_next(wf);
+ }
+ if (wf == NULL) {
+ return;
+ }
+ krpf = (kerberos_frame_t *)wmem_list_frame_data(wf);
+
+ switch (krpf->msg_type) {
+ case KERBEROS_APPLICATIONS_AS_REP:
+ case KERBEROS_APPLICATIONS_TGS_REP:
+ case KERBEROS_APPLICATIONS_KRB_ERROR:
+ break;
+ default:
+ return;
+ }
+
+ private_data->frame_rep = krpf->frame;
+}
+
+static void krb5_conf_add_response(asn1_ctx_t *actx)
+{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ packet_info *pinfo = actx->pinfo;
+ kerberos_frame_t _krpf = { .frame = 0, };
+ kerberos_frame_t *krpf = NULL;
+ wmem_list_frame_t *wf = NULL;
+ kerberos_frame_t *krqf = NULL;
+
+ if (private_data->krb5_conv == NULL)
+ return;
+
+ if (!pinfo->fd->visited) {
+ krpf = wmem_new0(wmem_file_scope(), kerberos_frame_t);
+ if (krpf == NULL) {
+ return;
+ }
+ } else {
+ krpf = &_krpf;
+ }
+
+ krpf->frame = pinfo->num;
+ krpf->time = pinfo->abs_ts;
+ krpf->msg_type = private_data->msg_type;
+ krpf->srt_idx = -1;
+
+ if (!pinfo->fd->visited) {
+ wmem_list_insert_sorted(private_data->krb5_conv->frames,
+ krpf, krb5_frame_compare);
+ }
+
+ wf = wmem_list_find_custom(private_data->krb5_conv->frames,
+ krpf, krb5_frame_compare);
+ if (wf != NULL) {
+ /*
+ * replace the pointer with the one allocated on
+ * wmem_file_scope()
+ */
+ krpf = (kerberos_frame_t *)wmem_list_frame_data(wf);
+ /* The previous one should be the request */
+ wf = wmem_list_frame_prev(wf);
+ }
+ if (wf == NULL) {
+ return;
+ }
+ krqf = (kerberos_frame_t *)wmem_list_frame_data(wf);
+ krpf->req = krqf;
+
+ switch (krqf->msg_type) {
+ case KERBEROS_APPLICATIONS_AS_REQ:
+ if (private_data->msg_type == KERBEROS_APPLICATIONS_AS_REP) {
+ krpf->srt_idx = 0;
+ break;
+ }
+ if (private_data->msg_type == KERBEROS_APPLICATIONS_KRB_ERROR) {
+ krpf->srt_idx = 1;
+ break;
+ }
+ return;
+ case KERBEROS_APPLICATIONS_TGS_REQ:
+ if (private_data->msg_type == KERBEROS_APPLICATIONS_TGS_REP) {
+ krpf->srt_idx = 2;
+ break;
+ }
+ if (private_data->msg_type == KERBEROS_APPLICATIONS_KRB_ERROR) {
+ krpf->srt_idx = 3;
+ break;
+ }
+ return;
+ default:
+ return;
+ }
+
+ private_data->frame_req = krqf->frame;
+ private_data->req_time = krqf->time;
+
+ tap_queue_packet(kerberos_tap, pinfo, krpf);
+}
+
+static void
+krb5stat_init(struct register_srt* srt _U_, GArray* srt_array _U_)
+{
+ srt_stat_table *krb5_srt_table = NULL;
+
+ krb5_srt_table = init_srt_table("Kerberos", "krb5", srt_array, 4, NULL, "kerberos.msg_type", NULL);
+ init_srt_table_row(krb5_srt_table, 0, "AS-REP");
+ init_srt_table_row(krb5_srt_table, 1, "AS-ERROR");
+ init_srt_table_row(krb5_srt_table, 2, "TGS-REP");
+ init_srt_table_row(krb5_srt_table, 3, "TGS-ERROR");
+}
+
+static tap_packet_status
+krb5stat_packet(void *pss _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const void *prv, tap_flags_t flags _U_)
+{
+ srt_stat_table *krb5_srt_table = NULL;
+ srt_data_t *data = (srt_data_t *)pss;
+ kerberos_frame_t *krpf = (kerberos_frame_t *)prv;
+
+ if (krpf == NULL)
+ return TAP_PACKET_DONT_REDRAW;
+
+ if (krpf->req == NULL)
+ return TAP_PACKET_DONT_REDRAW;
+
+ krb5_srt_table = g_array_index(data->srt_array, srt_stat_table*, 0);
+ add_srt_table_data(krb5_srt_table, krpf->srt_idx, &krpf->req->time, pinfo);
+ return TAP_PACKET_REDRAW;
+}
+
static kerberos_private_data_t*
kerberos_new_private_data(packet_info *pinfo)
{
kerberos_private_data_t *p;
+ void *existing;
p = wmem_new0(pinfo->pool, kerberos_private_data_t);
if (p == NULL) {
return NULL;
}
+ p->frame_req = UINT32_MAX;
+ p->frame_rep = UINT32_MAX;
p->decryption_keys = wmem_list_new(pinfo->pool);
p->learnt_keys = wmem_list_new(pinfo->pool);
p->missing_keys = wmem_list_new(pinfo->pool);
+ existing = p_get_proto_data(pinfo->pool, pinfo, proto_kerberos, 0);
+ if (existing != NULL) {
+ /*
+ * We only remember the first one.
+ */
+ return p;
+ }
+
+ p_add_proto_data(pinfo->pool, pinfo, proto_kerberos, 0, p);
+ p->krb5_conv = krb5_conv_find_or_create(pinfo);
return p;
}
@@ -407,13 +649,13 @@ kerberos_private_is_kdc_req(kerberos_private_data_t *private_data)
switch (private_data->msg_type) {
case KERBEROS_APPLICATIONS_AS_REQ:
case KERBEROS_APPLICATIONS_TGS_REQ:
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
-gboolean
+bool
kerberos_is_win2k_pkinit(asn1_ctx_t *actx)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -427,15 +669,15 @@ static int dissect_kerberos_defer_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbu
/*
* dissect_ber_octet_string_wcb() always passes
- * implicit_tag=FALSE, offset=0 and hf_index=-1
+ * implicit_tag=false, offset=0 and hf_index=-1
*
* It means we only need to remember tvb and tree
* in order to replay dissect_kerberos_PA_FX_FAST_REQUEST()
* in dissect_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA()
*/
- ws_assert(implicit_tag == FALSE);
+ ws_assert(implicit_tag == false);
ws_assert(offset == 0);
- ws_assert(hf_index == -1);
+ ws_assert(hf_index <= 0);
if (private_data->PA_FX_FAST_REQUEST.defer) {
/*
@@ -446,7 +688,7 @@ static int dissect_kerberos_defer_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbu
/*
* only handle the first PA_FX_FAST_REQUEST...
*/
- private_data->PA_FX_FAST_REQUEST.defer = FALSE;
+ private_data->PA_FX_FAST_REQUEST.defer = false;
return tvb_reported_length_remaining(tvb, offset);
}
@@ -456,7 +698,7 @@ static int dissect_kerberos_defer_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbu
#ifdef HAVE_KERBEROS
/* Decrypt Kerberos blobs */
-gboolean krb_decrypt = FALSE;
+bool krb_decrypt;
/* keytab filename */
static const char *keytab_filename = "";
@@ -487,10 +729,10 @@ read_keytab_file_from_preferences(void)
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
enc_key_t *enc_key_list=NULL;
-static guint kerberos_longterm_ids = 0;
-wmem_map_t *kerberos_longterm_keys = NULL;
-static wmem_map_t *kerberos_all_keys = NULL;
-static wmem_map_t *kerberos_app_session_keys = NULL;
+static unsigned kerberos_longterm_ids;
+wmem_map_t *kerberos_longterm_keys;
+static wmem_map_t *kerberos_all_keys;
+static wmem_map_t *kerberos_app_session_keys;
static bool
enc_key_list_cb(wmem_allocator_t* allocator _U_, wmem_cb_event_t event _U_, void *user_data _U_)
@@ -498,10 +740,10 @@ enc_key_list_cb(wmem_allocator_t* allocator _U_, wmem_cb_event_t event _U_, void
enc_key_list = NULL;
kerberos_longterm_ids = 0;
/* keep the callback registered */
- return TRUE;
+ return true;
}
-static gint enc_key_cmp_id(gconstpointer k1, gconstpointer k2)
+static int enc_key_cmp_id(const void *k1, const void *k2)
{
const enc_key_t *key1 = (const enc_key_t *)k1;
const enc_key_t *key2 = (const enc_key_t *)k2;
@@ -524,39 +766,39 @@ static gint enc_key_cmp_id(gconstpointer k1, gconstpointer k2)
}
static gboolean
-enc_key_content_equal(gconstpointer k1, gconstpointer k2)
+enc_key_content_equal(const void *k1, const void *k2)
{
const enc_key_t *key1 = (const enc_key_t *)k1;
const enc_key_t *key2 = (const enc_key_t *)k2;
int cmp;
if (key1->keytype != key2->keytype) {
- return FALSE;
+ return false;
}
if (key1->keylength != key2->keylength) {
- return FALSE;
+ return false;
}
cmp = memcmp(key1->keyvalue, key2->keyvalue, key1->keylength);
if (cmp != 0) {
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
-static guint
-enc_key_content_hash(gconstpointer k)
+static unsigned
+enc_key_content_hash(const void *k)
{
const enc_key_t *key = (const enc_key_t *)k;
- guint ret = 0;
+ unsigned ret = 0;
- ret += wmem_strong_hash((const guint8 *)&key->keytype,
+ ret += wmem_strong_hash((const uint8_t *)&key->keytype,
sizeof(key->keytype));
- ret += wmem_strong_hash((const guint8 *)&key->keylength,
+ ret += wmem_strong_hash((const uint8_t *)&key->keylength,
sizeof(key->keylength));
- ret += wmem_strong_hash((const guint8 *)key->keyvalue,
+ ret += wmem_strong_hash((const uint8_t *)key->keyvalue,
key->keylength);
return ret;
@@ -567,7 +809,7 @@ kerberos_key_map_insert(wmem_map_t *key_map, enc_key_t *new_key)
{
enc_key_t *existing = NULL;
enc_key_t *cur = NULL;
- gint cmp;
+ int cmp;
existing = (enc_key_t *)wmem_map_lookup(key_map, new_key);
if (existing == NULL) {
@@ -659,9 +901,9 @@ struct insert_longterm_keys_into_key_map_state {
wmem_map_t *key_map;
};
-static void insert_longterm_keys_into_key_map_cb(gpointer __key _U_,
- gpointer value,
- gpointer user_data)
+static void insert_longterm_keys_into_key_map_cb(void *__key _U_,
+ void *value,
+ void *user_data)
{
struct insert_longterm_keys_into_key_map_state *state =
(struct insert_longterm_keys_into_key_map_state *)user_data;
@@ -870,6 +1112,22 @@ save_EncAPRepPart_subkey(tvbuff_t *tvb, int offset, int length,
return;
}
+ private_data->last_added_key->is_ap_rep_key = true;
+
+ if (private_data->last_decryption_key != NULL &&
+ private_data->last_decryption_key->is_ticket_key)
+ {
+ enc_key_t *ak = private_data->last_added_key;
+ enc_key_t *tk = private_data->last_decryption_key;
+
+ /*
+ * The enc_key_t structures and their strings
+ * in pac_names are all allocated on wmem_epan_scope(),
+ * so we don't need to copy the content.
+ */
+ ak->pac_names = tk->pac_names;
+ }
+
kerberos_key_map_insert(kerberos_app_session_keys, private_data->last_added_key);
}
@@ -888,7 +1146,20 @@ save_EncTicketPart_key(tvbuff_t *tvb, int offset, int length,
int parent_hf_index,
int hf_index)
{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
save_encryption_key(tvb, offset, length, actx, tree, parent_hf_index, hf_index);
+
+ if (actx->pinfo->fd->visited) {
+ return;
+ }
+
+ if (private_data->last_added_key == NULL) {
+ return;
+ }
+
+ private_data->current_ticket_key = private_data->last_added_key;
+ private_data->current_ticket_key->is_ticket_key = true;
}
static void
@@ -917,8 +1188,8 @@ static void used_encryption_key(proto_tree *tree, packet_info *pinfo,
kerberos_private_data_t *private_data,
enc_key_t *ek, int usage, tvbuff_t *cryptotvb,
const char *keymap_name,
- guint keymap_size,
- guint decryption_count)
+ unsigned keymap_size,
+ unsigned decryption_count)
{
proto_item *item = NULL;
enc_key_t *sek = NULL;
@@ -974,8 +1245,8 @@ static void missing_encryption_key(proto_tree *tree, packet_info *pinfo,
kerberos_private_data_t *private_data,
int keytype, int usage, tvbuff_t *cryptotvb,
const char *keymap_name,
- guint keymap_size,
- guint decryption_count)
+ unsigned keymap_size,
+ unsigned decryption_count)
{
proto_item *item = NULL;
enc_key_t *mek = NULL;
@@ -1010,8 +1281,8 @@ static void used_signing_key(proto_tree *tree, packet_info *pinfo,
krb5_cksumtype checksum,
const char *reason,
const char *keymap_name,
- guint keymap_size,
- guint verify_count)
+ unsigned keymap_size,
+ unsigned verify_count)
{
proto_item *item = NULL;
enc_key_t *sek = NULL;
@@ -1050,8 +1321,8 @@ static void missing_signing_key(proto_tree *tree, packet_info *pinfo,
int keytype,
const char *reason,
const char *keymap_name,
- guint keymap_size,
- guint verify_count)
+ unsigned keymap_size,
+ unsigned verify_count)
{
proto_item *item = NULL;
enc_key_t *mek = NULL;
@@ -1111,12 +1382,12 @@ krb5_fast_key(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb,
k1.magic = KV5M_KEYBLOCK;
k1.enctype = ek1->keytype;
k1.length = ek1->keylength;
- k1.contents = (guint8 *)ek1->keyvalue;
+ k1.contents = (uint8_t *)ek1->keyvalue;
k2.magic = KV5M_KEYBLOCK;
k2.enctype = ek2->keytype;
k2.length = ek2->keylength;
- k2.contents = (guint8 *)ek2->keyvalue;
+ k2.contents = (uint8_t *)ek2->keyvalue;
ret = krb5_c_fx_cf2_simple(krb5_ctx, &k1, p1, &k2, p2, &k);
if (ret != 0) {
@@ -1151,14 +1422,14 @@ read_keytab_file(const char *filename)
krb5_error_code ret;
krb5_keytab_entry key;
krb5_kt_cursor cursor;
- static gboolean first_time=TRUE;
+ static bool first_time=true;
if (filename == NULL || filename[0] == 0) {
return;
}
if(first_time){
- first_time=FALSE;
+ first_time=false;
ret = krb5_init_context(&krb5_ctx);
if(ret && ret != KRB5_CONFIG_CANTOPEN){
return;
@@ -1241,12 +1512,12 @@ struct decrypt_krb5_with_cb_state {
int usage,
void *decrypt_cb_data);
void *decrypt_cb_data;
- guint count;
+ unsigned count;
enc_key_t *ek;
};
static void
-decrypt_krb5_with_cb_try_key(gpointer __key _U_, gpointer value, gpointer userdata)
+decrypt_krb5_with_cb_try_key(void *__key _U_, void *value, void *userdata)
{
struct decrypt_krb5_with_cb_state *state =
(struct decrypt_krb5_with_cb_state *)userdata;
@@ -1256,8 +1527,8 @@ decrypt_krb5_with_cb_try_key(gpointer __key _U_, gpointer value, gpointer userda
#ifdef HAVE_KRB5_C_FX_CF2_SIMPLE
enc_key_t *ak = state->private_data->fast_armor_key;
enc_key_t *sk = state->private_data->fast_strengthen_key;
- gboolean try_with_armor_key = FALSE;
- gboolean try_with_strengthen_key = FALSE;
+ bool try_with_armor_key = false;
+ bool try_with_strengthen_key = false;
#endif
if (state->ek != NULL) {
@@ -1274,7 +1545,7 @@ decrypt_krb5_with_cb_try_key(gpointer __key _U_, gpointer value, gpointer userda
case KEY_USAGE_ENC_CHALLENGE_KDC:
if (ek->fd_num == -1) {
/* Challenges are based on a long term key */
- try_with_armor_key = TRUE;
+ try_with_armor_key = true;
}
break;
}
@@ -1285,7 +1556,7 @@ decrypt_krb5_with_cb_try_key(gpointer __key _U_, gpointer value, gpointer userda
* again
*/
if (sk != NULL) {
- try_with_armor_key = FALSE;
+ try_with_armor_key = false;
}
}
@@ -1294,14 +1565,14 @@ decrypt_krb5_with_cb_try_key(gpointer __key _U_, gpointer value, gpointer userda
case 3:
if (ek->fd_num == -1) {
/* AS-REP is based on a long term key */
- try_with_strengthen_key = TRUE;
+ try_with_strengthen_key = true;
}
break;
case 8:
case 9:
if (ek->fd_num != -1) {
/* TGS-REP is not based on a long term key */
- try_with_strengthen_key = TRUE;
+ try_with_strengthen_key = true;
}
break;
}
@@ -1316,12 +1587,12 @@ decrypt_krb5_with_cb_try_key(gpointer __key _U_, gpointer value, gpointer userda
k1.magic = KV5M_KEYBLOCK;
k1.enctype = ak->keytype;
k1.length = ak->keylength;
- k1.contents = (guint8 *)ak->keyvalue;
+ k1.contents = (uint8_t *)ak->keyvalue;
k2.magic = KV5M_KEYBLOCK;
k2.enctype = ek->keytype;
k2.length = ek->keylength;
- k2.contents = (guint8 *)ek->keyvalue;
+ k2.contents = (uint8_t *)ek->keyvalue;
switch (state->usage) {
case KEY_USAGE_ENC_CHALLENGE_CLIENT:
@@ -1388,12 +1659,12 @@ decrypt_krb5_with_cb_try_key(gpointer __key _U_, gpointer value, gpointer userda
k1.magic = KV5M_KEYBLOCK;
k1.enctype = sk->keytype;
k1.length = sk->keylength;
- k1.contents = (guint8 *)sk->keyvalue;
+ k1.contents = (uint8_t *)sk->keyvalue;
k2.magic = KV5M_KEYBLOCK;
k2.enctype = ek->keytype;
k2.length = ek->keylength;
- k2.contents = (guint8 *)ek->keyvalue;
+ k2.contents = (uint8_t *)ek->keyvalue;
ret = krb5_c_fx_cf2_simple(krb5_ctx,
&k1, "strengthenkey",
@@ -1551,7 +1822,7 @@ decrypt_krb5_data_cb(const krb5_keyblock *key,
&state->output);
}
-static guint8 *
+static uint8_t *
decrypt_krb5_data_private(proto_tree *tree _U_, packet_info *pinfo,
kerberos_private_data_t *private_data,
int usage, tvbuff_t *cryptotvb, int keytype,
@@ -1561,7 +1832,7 @@ decrypt_krb5_data_private(proto_tree *tree _U_, packet_info *pinfo,
struct decrypt_krb5_data_state state;
krb5_error_code ret;
int length = tvb_captured_length(cryptotvb);
- const guint8 *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
+ const uint8_t *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
/* don't do anything if we are not attempting to decrypt data */
if(!krb_decrypt || length < 1){
@@ -1575,7 +1846,7 @@ decrypt_krb5_data_private(proto_tree *tree _U_, packet_info *pinfo,
memset(&state, 0, sizeof(state));
state.input.length = length;
- state.input.data = (guint8 *)cryptotext;
+ state.input.data = (uint8_t *)cryptotext;
state.output.data = (char *)wmem_alloc(pinfo->pool, length);
state.output.length = length;
@@ -1594,10 +1865,10 @@ decrypt_krb5_data_private(proto_tree *tree _U_, packet_info *pinfo,
if (datalen) {
*datalen = state.output.length;
}
- return (guint8 *)state.output.data;
+ return (uint8_t *)state.output.data;
}
-guint8 *
+uint8_t *
decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
int usage,
tvbuff_t *cryptotvb,
@@ -1614,16 +1885,16 @@ USES_APPLE_RST
#ifdef KRB5_CRYPTO_TYPE_SIGN_ONLY
struct decrypt_krb5_krb_cfx_dce_state {
- const guint8 *gssapi_header_ptr;
- guint gssapi_header_len;
+ const uint8_t *gssapi_header_ptr;
+ unsigned gssapi_header_len;
tvbuff_t *gssapi_encrypted_tvb;
- guint8 *gssapi_payload;
- guint gssapi_payload_len;
- const guint8 *gssapi_trailer_ptr;
- guint gssapi_trailer_len;
+ uint8_t *gssapi_payload;
+ unsigned gssapi_payload_len;
+ const uint8_t *gssapi_trailer_ptr;
+ unsigned gssapi_trailer_len;
tvbuff_t *checksum_tvb;
- guint8 *checksum;
- guint checksum_len;
+ uint8_t *checksum;
+ unsigned checksum_len;
};
static krb5_error_code
@@ -1638,11 +1909,11 @@ decrypt_krb5_krb_cfx_dce_cb(const krb5_keyblock *key,
unsigned int k5_trailerlen = 0;
unsigned int k5_trailerofs = 0;
size_t _k5_blocksize = 0;
- guint k5_blocksize;
+ unsigned k5_blocksize;
krb5_crypto_iov iov[6];
krb5_error_code ret;
- guint checksum_remain = state->checksum_len;
- guint checksum_crypt_len;
+ unsigned checksum_remain = state->checksum_len;
+ unsigned checksum_crypt_len;
memset(iov, 0, sizeof(iov));
@@ -1682,10 +1953,10 @@ decrypt_krb5_krb_cfx_dce_cb(const krb5_keyblock *key,
* The cast is required for the Windows build in order
* to avoid the following warning.
*
- * warning C4267: '-=': conversion from 'size_t' to 'guint',
+ * warning C4267: '-=': conversion from 'size_t' to 'unsigned',
* possible loss of data
*/
- k5_blocksize = (guint)_k5_blocksize;
+ k5_blocksize = (unsigned)_k5_blocksize;
if (checksum_remain < k5_blocksize) {
return -1;
}
@@ -1709,7 +1980,7 @@ decrypt_krb5_krb_cfx_dce_cb(const krb5_keyblock *key,
if (state->gssapi_header_ptr != NULL) {
iov[1].flags = KRB5_CRYPTO_TYPE_SIGN_ONLY;
- iov[1].data.data = (guint8 *)(guintptr)state->gssapi_header_ptr;
+ iov[1].data.data = (uint8_t *)(uintptr_t)state->gssapi_header_ptr;
iov[1].data.length = state->gssapi_header_len;
} else {
iov[1].flags = KRB5_CRYPTO_TYPE_EMPTY;
@@ -1721,7 +1992,7 @@ decrypt_krb5_krb_cfx_dce_cb(const krb5_keyblock *key,
if (state->gssapi_trailer_ptr != NULL) {
iov[3].flags = KRB5_CRYPTO_TYPE_SIGN_ONLY;
- iov[3].data.data = (guint8 *)(guintptr)state->gssapi_trailer_ptr;
+ iov[3].data.data = (uint8_t *)(uintptr_t)state->gssapi_trailer_ptr;
iov[3].data.length = state->gssapi_trailer_len;
} else {
iov[3].flags = KRB5_CRYPTO_TYPE_EMPTY;
@@ -1782,7 +2053,7 @@ decrypt_krb5_krb_cfx_dce(proto_tree *tree,
}
state.gssapi_encrypted_tvb = gssapi_encrypted_tvb;
state.gssapi_payload_len = tvb_captured_length(gssapi_encrypted_tvb);
- state.gssapi_payload = (guint8 *)wmem_alloc0(pinfo->pool, state.gssapi_payload_len);
+ state.gssapi_payload = (uint8_t *)wmem_alloc0(pinfo->pool, state.gssapi_payload_len);
if (state.gssapi_payload == NULL) {
return NULL;
}
@@ -1801,7 +2072,7 @@ decrypt_krb5_krb_cfx_dce(proto_tree *tree,
}
state.checksum_tvb = checksum_tvb;
state.checksum_len = tvb_captured_length(checksum_tvb);
- state.checksum = (guint8 *)wmem_alloc0(pinfo->pool, state.checksum_len);
+ state.checksum = (uint8_t *)wmem_alloc0(pinfo->pool, state.checksum_len);
if (state.checksum == NULL) {
return NULL;
}
@@ -1857,15 +2128,14 @@ encode_krb5_enc_tkt_part(const krb5_enc_tkt_part *rep, krb5_data **code);
static int
keytype_for_cksumtype(krb5_cksumtype checksum)
{
-#define _ARRAY_SIZE(X) (sizeof(X) / sizeof((X)[0]))
static const int keytypes[] = {
18,
17,
23,
};
- guint i;
+ unsigned i;
- for (i = 0; i < _ARRAY_SIZE(keytypes); i++) {
+ for (i = 0; i < array_length(keytypes); i++) {
krb5_cksumtype checksumtype = 0;
krb5_error_code ret;
@@ -1884,19 +2154,25 @@ keytype_for_cksumtype(krb5_cksumtype checksum)
}
struct verify_krb5_pac_state {
+ int pacbuffer_length;
+ const uint8_t *pacbuffer;
krb5_pac pac;
krb5_cksumtype server_checksum;
- guint server_count;
+ unsigned server_count;
enc_key_t *server_ek;
krb5_cksumtype kdc_checksum;
- guint kdc_count;
+ unsigned kdc_count;
enc_key_t *kdc_ek;
krb5_cksumtype ticket_checksum_type;
const krb5_data *ticket_checksum_data;
+ krb5_cksumtype full_checksum_type;
+ const krb5_data *full_checksum_data;
+ unsigned full_count;
+ enc_key_t *full_ek;
};
static void
-verify_krb5_pac_try_server_key(gpointer __key _U_, gpointer value, gpointer userdata)
+verify_krb5_pac_try_server_key(void *__key _U_, void *value, void *userdata)
{
struct verify_krb5_pac_state *state =
(struct verify_krb5_pac_state *)userdata;
@@ -1932,7 +2208,7 @@ verify_krb5_pac_try_server_key(gpointer __key _U_, gpointer value, gpointer user
keyblock.magic = KV5M_KEYBLOCK;
keyblock.enctype = ek->keytype;
keyblock.length = ek->keylength;
- keyblock.contents = (guint8 *)ek->keyvalue;
+ keyblock.contents = (uint8_t *)ek->keyvalue;
if (checksumtype == state->server_checksum) {
state->server_count += 1;
@@ -1945,7 +2221,7 @@ verify_krb5_pac_try_server_key(gpointer __key _U_, gpointer value, gpointer user
}
static void
-verify_krb5_pac_try_kdc_key(gpointer __key _U_, gpointer value, gpointer userdata)
+verify_krb5_pac_try_kdc_key(void *__key _U_, void *value, void *userdata)
{
struct verify_krb5_pac_state *state =
(struct verify_krb5_pac_state *)userdata;
@@ -1981,7 +2257,7 @@ verify_krb5_pac_try_kdc_key(gpointer __key _U_, gpointer value, gpointer userdat
keyblock.magic = KV5M_KEYBLOCK;
keyblock.enctype = ek->keytype;
keyblock.length = ek->keylength;
- keyblock.contents = (guint8 *)ek->keyvalue;
+ keyblock.contents = (uint8_t *)ek->keyvalue;
if (checksumtype == state->kdc_checksum) {
state->kdc_count += 1;
@@ -2004,20 +2280,20 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
#ifdef HAVE_DECODE_KRB5_ENC_TKT_PART
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
tvbuff_t *teptvb = private_data->last_ticket_enc_part_tvb;
- guint teplength = 0;
- const guint8 *tepbuffer = NULL;
+ unsigned teplength = 0;
+ const uint8_t *tepbuffer = NULL;
krb5_data tepdata = { .length = 0, };
krb5_enc_tkt_part *tep = NULL;
krb5_data *tmpdata = NULL;
krb5_error_code ret;
krb5_authdata **recoded_container = NULL;
- gint ad_orig_idx = -1;
+ int ad_orig_idx = -1;
krb5_authdata *ad_orig_ptr = NULL;
- gint l0idx = 0;
+ int l0idx = 0;
krb5_keyblock kdc_key = { .magic = KV5M_KEYBLOCK, };
size_t checksum_length = 0;
krb5_checksum checksum = { .checksum_type = 0, };
- krb5_boolean valid = FALSE;
+ krb5_boolean valid = false;
if (state->kdc_ek == NULL) {
int keytype = keytype_for_cksumtype(state->ticket_checksum_type);
@@ -2049,11 +2325,11 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
kdc_key.magic = KV5M_KEYBLOCK;
kdc_key.enctype = state->kdc_ek->keytype;
kdc_key.length = state->kdc_ek->keylength;
- kdc_key.contents = (guint8 *)state->kdc_ek->keyvalue;
+ kdc_key.contents = (uint8_t *)state->kdc_ek->keyvalue;
checksum.checksum_type = state->ticket_checksum_type;
checksum.length = state->ticket_checksum_data->length;
- checksum.contents = (guint8 *)state->ticket_checksum_data->data;
+ checksum.contents = (uint8_t *)state->ticket_checksum_data->data;
if (checksum.length >= 4) {
checksum.length -= 4;
checksum.contents += 4;
@@ -2093,7 +2369,7 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
krb5_authdata *adl0 = tep->authorization_data[l0idx];
krb5_authdata **decoded_container = NULL;
krb5_authdata *ad_pac = NULL;
- gint l1idx = 0;
+ int l1idx = 0;
if (adl0->ad_type != KRB5_AUTHDATA_IF_RELEVANT) {
continue;
@@ -2195,7 +2471,7 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
return;
}
- if (valid == FALSE) {
+ if (valid == false) {
missing_signing_key(tree, actx->pinfo, private_data,
pactvb, state->ticket_checksum_type,
state->kdc_ek->keytype,
@@ -2216,6 +2492,216 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
#endif /* HAVE_DECODE_KRB5_ENC_TKT_PART */
}
+#define __KRB5_PAC_FULL_CHECKSUM 19
+
+static void
+verify_krb5_pac_full_checksum(proto_tree *tree,
+ asn1_ctx_t *actx,
+ tvbuff_t *orig_pactvb,
+ struct verify_krb5_pac_state *state)
+{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ krb5_error_code ret;
+ krb5_keyblock kdc_key = { .magic = KV5M_KEYBLOCK, };
+ size_t checksum_length = 0;
+ krb5_checksum checksum = { .checksum_type = 0, };
+ krb5_data pac_data = { .length = 0, };
+ tvbuff_t *copy_pactvb = NULL;
+ uint32_t cur_offset;
+ uint32_t num_buffers;
+ uint32_t idx;
+ krb5_boolean valid = false;
+
+ if (state->kdc_ek == NULL) {
+ int keytype = keytype_for_cksumtype(state->full_checksum_type);
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ keytype,
+ "Missing KDC (for full)",
+ "kdc_checksum_key",
+ 0,
+ 0);
+ return;
+ }
+
+ kdc_key.magic = KV5M_KEYBLOCK;
+ kdc_key.enctype = state->kdc_ek->keytype;
+ kdc_key.length = state->kdc_ek->keylength;
+ kdc_key.contents = (uint8_t *)state->kdc_ek->keyvalue;
+
+ ret = krb5_c_checksum_length(krb5_ctx,
+ state->full_checksum_type,
+ &checksum_length);
+ if (ret != 0) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "krb5_c_checksum_length failed for Full Signature",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+
+ /*
+ * The checksum element begins with 4 bytes of type
+ * (state->full_checksum_type) before the crypto checksum
+ */
+ if (state->full_checksum_data->length < (4 + checksum_length)) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "pacbuffer_length too short for Full Signature",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+
+ pac_data.data = wmem_memdup(actx->pinfo->pool, state->pacbuffer, state->pacbuffer_length);
+ if (pac_data.data == NULL) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "wmem_memdup(pacbuffer) failed",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+ pac_data.length = state->pacbuffer_length;
+
+ copy_pactvb = tvb_new_child_real_data(orig_pactvb,
+ (uint8_t *)pac_data.data,
+ pac_data.length,
+ pac_data.length);
+ if (copy_pactvb == NULL) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "tvb_new_child_real_data(pac_copy) failed",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+
+#define __PAC_CHECK_OFFSET_SIZE(__offset, __length, __reason) do { \
+ uint64_t __end = state->pacbuffer_length; \
+ uint64_t __offset64 = __offset; \
+ uint64_t __length64 = __length; \
+ uint64_t __last; \
+ if (__offset64 > INT32_MAX) { \
+ missing_signing_key(tree, actx->pinfo, private_data, \
+ orig_pactvb, state->full_checksum_type, \
+ state->kdc_ek->keytype, \
+ __reason, \
+ "kdc_checksum_key", \
+ 1, \
+ 0); \
+ return; \
+ } \
+ if (__length64 > INT32_MAX) { \
+ missing_signing_key(tree, actx->pinfo, private_data, \
+ orig_pactvb, state->full_checksum_type, \
+ state->kdc_ek->keytype, \
+ __reason, \
+ "kdc_checksum_key", \
+ 1, \
+ 0); \
+ return; \
+ } \
+ __last = __offset64 + __length64; \
+ if (__last > __end) { \
+ missing_signing_key(tree, actx->pinfo, private_data, \
+ orig_pactvb, state->full_checksum_type, \
+ state->kdc_ek->keytype, \
+ __reason, \
+ "kdc_checksum_key", \
+ 1, \
+ 0); \
+ return; \
+ } \
+} while(0)
+
+ cur_offset = 0;
+ __PAC_CHECK_OFFSET_SIZE(cur_offset, 8, "PACTYPE Header");
+ num_buffers = tvb_get_uint32(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 4;
+ /* ignore 4 byte version */
+ cur_offset += 4;
+
+ for (idx = 0; idx < num_buffers; idx++) {
+ uint32_t b_type;
+ uint32_t b_length;
+ uint64_t b_offset;
+
+ __PAC_CHECK_OFFSET_SIZE(cur_offset, 16, "PAC_INFO_BUFFER Header");
+ b_type = tvb_get_uint32(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 4;
+ b_length = tvb_get_uint32(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 4;
+ b_offset = tvb_get_uint64(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 8;
+
+ __PAC_CHECK_OFFSET_SIZE(b_offset, b_length, "PAC_INFO_BUFFER Payload");
+
+ if (b_length <= 4) {
+ continue;
+ }
+
+ /*
+ * Leave PAC_TICKET_CHECKSUM and clear all other checksums
+ * and their possible RODC identifier, but leaving their
+ * checksum type as is.
+ */
+ switch (b_type) {
+ case KRB5_PAC_SERVER_CHECKSUM:
+ case KRB5_PAC_PRIVSVR_CHECKSUM:
+ case __KRB5_PAC_FULL_CHECKSUM:
+ memset(pac_data.data + b_offset+4, 0, b_length-4);
+ break;
+ }
+ }
+
+ checksum.checksum_type = state->full_checksum_type;
+ checksum.contents = (uint8_t *)state->full_checksum_data->data + 4;
+ checksum.length = (unsigned)checksum_length;
+
+ ret = krb5_c_verify_checksum(krb5_ctx, &kdc_key,
+ KRB5_KEYUSAGE_APP_DATA_CKSUM,
+ &pac_data, &checksum, &valid);
+ if (ret != 0) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "krb5_c_verify_checksum failed for Full PAC Signature",
+ "kdc_checksum_key",
+ 1,
+ 1);
+ return;
+ }
+
+ if (valid == false) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "Invalid Full PAC Signature",
+ "kdc_checksum_key",
+ 1,
+ 1);
+ return;
+ }
+
+ used_signing_key(tree, actx->pinfo, private_data,
+ state->kdc_ek, orig_pactvb,
+ state->full_checksum_type,
+ "Verified Full PAC",
+ "kdc_checksum_key",
+ 1,
+ 1);
+}
+
static void
verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
{
@@ -2223,8 +2709,9 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
krb5_error_code ret;
krb5_data checksum_data = {0,0,NULL};
krb5_data ticket_checksum_data = {0,0,NULL};
+ krb5_data full_checksum_data = {0,0,NULL};
int length = tvb_captured_length(pactvb);
- const guint8 *pacbuffer = NULL;
+ const uint8_t *pacbuffer = NULL;
struct verify_krb5_pac_state state = {
.kdc_checksum = 0,
};
@@ -2240,6 +2727,8 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
}
pacbuffer = tvb_get_ptr(pactvb, 0, length);
+ state.pacbuffer_length = length;
+ state.pacbuffer = pacbuffer;
ret = krb5_pac_parse(krb5_ctx, pacbuffer, length, &state.pac);
if (ret != 0) {
@@ -2269,6 +2758,13 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
state.ticket_checksum_data = &ticket_checksum_data;
state.ticket_checksum_type = pletoh32(ticket_checksum_data.data);
};
+ ret = krb5_pac_get_buffer(krb5_ctx, state.pac,
+ __KRB5_PAC_FULL_CHECKSUM,
+ &full_checksum_data);
+ if (ret == 0) {
+ state.full_checksum_data = &full_checksum_data;
+ state.full_checksum_type = pletoh32(full_checksum_data.data);
+ };
read_keytab_file_from_preferences();
@@ -2319,6 +2815,14 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
krb5_free_data_contents(krb5_ctx, &ticket_checksum_data);
}
+ if (state.full_checksum_type != 0) {
+ verify_krb5_pac_full_checksum(tree, actx, pactvb, &state);
+ }
+
+ if (state.full_checksum_data != NULL) {
+ krb5_free_data_contents(krb5_ctx, &full_checksum_data);
+ }
+
krb5_pac_free(krb5_ctx, state.pac);
}
#endif /* HAVE_KRB5_PAC_VERIFY */
@@ -2344,14 +2848,14 @@ read_keytab_file(const char *filename)
krb5_keytab_entry key;
krb5_kt_cursor cursor;
enc_key_t *new_key;
- static gboolean first_time=TRUE;
+ static bool first_time=true;
if (filename == NULL || filename[0] == 0) {
return;
}
if(first_time){
- first_time=FALSE;
+ first_time=false;
ret = krb5_init_context(&krb5_ctx);
if(ret){
return;
@@ -2399,7 +2903,7 @@ read_keytab_file(const char *filename)
new_key->keylength=(int)key.keyblock.keyvalue.length;
memcpy(new_key->keyvalue,
key.keyblock.keyvalue.data,
- MIN((guint)key.keyblock.keyvalue.length, KRB_MAX_KEY_LENGTH));
+ MIN((unsigned)key.keyblock.keyvalue.length, KRB_MAX_KEY_LENGTH));
enc_key_list=new_key;
ret = krb5_kt_free_entry(krb5_ctx, &key);
@@ -2424,7 +2928,7 @@ read_keytab_file(const char *filename)
USES_APPLE_RST
-guint8 *
+uint8_t *
decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
int usage,
tvbuff_t *cryptotvb,
@@ -2436,7 +2940,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
krb5_data data;
enc_key_t *ek;
int length = tvb_captured_length(cryptotvb);
- const guint8 *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
+ const uint8_t *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
/* don't do anything if we are not attempting to decrypt data */
if(!krb_decrypt){
@@ -2453,7 +2957,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
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 */
+ uint8_t *cryptocopy; /* workaround for pre-0.6.1 heimdal bug */
/* shortcircuit and bail out if enctypes are not matching */
if((keytype != -1) && (ek->keytype != keytype)) {
@@ -2474,7 +2978,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
keys. So just give it a copy of the crypto data instead.
This has been seen for RC4-HMAC blobs.
*/
- cryptocopy = (guint8 *)wmem_memdup(pinfo->pool, cryptotext, length);
+ cryptocopy = (uint8_t *)wmem_memdup(pinfo->pool, cryptotext, length);
ret = krb5_decrypt_ivec(krb5_ctx, crypto, usage,
cryptocopy, length,
&data,
@@ -2488,7 +2992,7 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
krb5_crypto_destroy(krb5_ctx, crypto);
/* return a private wmem_alloced blob to the caller */
- user_data = (char *)wmem_memdup(pinfo->pool, data.data, (guint)data.length);
+ user_data = (char *)wmem_memdup(pinfo->pool, data.data, (unsigned)data.length);
if (datalen) {
*datalen = (int)data.length;
}
@@ -2507,13 +3011,13 @@ decrypt_krb5_data(proto_tree *tree _U_, packet_info *pinfo,
#define KEYTYPE_DES3_CBC_MD5 5 /* Currently the only one supported */
typedef struct _service_key_t {
- guint16 kvno;
+ uint16_t kvno;
int keytype;
int length;
- guint8 *contents;
+ uint8_t *contents;
char origin[KRB_MAX_ORIG_LEN+1];
} service_key_t;
-GSList *service_key_list = NULL;
+GSList *service_key_list;
static void
@@ -2531,7 +3035,7 @@ add_encryption_key(packet_info *pinfo, int keytype, int keylength, const char *k
new_key->length = keylength;
new_key->contents = g_memdup2(keyvalue, keylength);
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);
+ service_key_list = g_slist_append(service_key_list, (void *) new_key);
}
static void
@@ -2659,7 +3163,7 @@ read_keytab_file(const char *service_key_file)
sk->length = DES3_KEY_SIZE;
sk->contents = g_memdup2(buf + 2, DES3_KEY_SIZE);
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);
+ service_key_list = g_slist_append(service_key_list, (void *) sk);
if (fseek(skf, newline_skip, SEEK_CUR) < 0) {
fprintf(stderr, "unable to seek...\n");
fclose(skf);
@@ -2673,7 +3177,7 @@ read_keytab_file(const char *service_key_file)
#define CONFOUNDER_PLUS_CHECKSUM 24
-guint8 *
+uint8_t *
decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
int _U_ usage,
tvbuff_t *cryptotvb,
@@ -2681,23 +3185,23 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
int *datalen)
{
tvbuff_t *encr_tvb;
- guint8 *decrypted_data = NULL, *plaintext = NULL;
- guint8 cls;
+ uint8_t *decrypted_data = NULL, *plaintext = NULL;
+ uint8_t cls;
bool pc;
- guint32 tag, item_len, data_len;
+ uint32_t tag, item_len, data_len;
int id_offset, offset;
- guint8 key[DES3_KEY_SIZE];
- guint8 initial_vector[DES_BLOCK_SIZE];
+ uint8_t key[DES3_KEY_SIZE];
+ uint8_t initial_vector[DES_BLOCK_SIZE];
gcry_md_hd_t md5_handle;
- guint8 *digest;
- guint8 zero_fill[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- guint8 confounder[8];
+ uint8_t *digest;
+ uint8_t zero_fill[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ uint8_t confounder[8];
bool 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);
+ const uint8_t *cryptotext = tvb_get_ptr(cryptotvb, 0, length);
/* don't do anything if we are not attempting to decrypt data */
@@ -2716,8 +3220,8 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
decrypted_data = wmem_alloc(pinfo->pool, length);
for(ske = service_key_list; ske != NULL; ske = g_slist_next(ske)){
- gboolean do_continue = FALSE;
- gboolean digest_ok;
+ bool do_continue = false;
+ bool digest_ok;
sk = (service_key_t *) ske->data;
des_fix_parity(DES3_KEY_SIZE, key, sk->contents);
@@ -2741,7 +3245,7 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
}
CATCH_BOUNDS_ERRORS {
tvb_free(encr_tvb);
- do_continue = TRUE;
+ do_continue = true;
}
ENDTRY;
@@ -2764,13 +3268,13 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
digest_ok = (tvb_memeql (encr_tvb, 8, digest, HASH_MD5_LENGTH) == 0);
gcry_md_close(md5_handle);
if (digest_ok) {
- plaintext = (guint8* )tvb_memdup(pinfo->pool, encr_tvb, CONFOUNDER_PLUS_CHECKSUM, data_len);
+ plaintext = (uint8_t* )tvb_memdup(pinfo->pool, encr_tvb, CONFOUNDER_PLUS_CHECKSUM, data_len);
tvb_free(encr_tvb);
if (datalen) {
*datalen = data_len;
}
- return(plaintext);
+ return plaintext;
}
tvb_free(encr_tvb);
}
@@ -3021,6 +3525,7 @@ static const value_string krb5_error_codes[] = {
#define PAC_TICKET_CHECKSUM 16
#define PAC_ATTRIBUTES_INFO 17
#define PAC_REQUESTER_SID 18
+#define PAC_FULL_CHECKSUM 19
static const value_string w2k_pac_types[] = {
{ PAC_LOGON_INFO , "Logon Info" },
{ PAC_CREDENTIAL_TYPE , "Credential Type" },
@@ -3035,6 +3540,7 @@ static const value_string w2k_pac_types[] = {
{ PAC_TICKET_CHECKSUM , "Ticket Checksum" },
{ PAC_ATTRIBUTES_INFO , "Attributes Info" },
{ PAC_REQUESTER_SID , "Requester Sid" },
+ { PAC_FULL_CHECKSUM , "Full Checksum" },
{ 0, NULL },
};
@@ -3100,8 +3606,66 @@ static const true_false_string tfs_gss_flags_dce_style = {
"Not using DCE-STYLE"
};
+static int dissect_kerberos_KRB5_SRP_PA_APPLICATIONS(bool implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
+{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ proto_item *pi1 = proto_item_get_parent(actx->created_item);
+ proto_item *pi2 = proto_item_get_parent(pi1);
+ int8_t ber_class;
+ bool pc;
+ int32_t tag;
+
+ /*
+ * dissect_ber_octet_string_wcb() always passes
+ * implicit_tag=false, offset=0 and hf_index=-1
+ */
+ ws_assert(implicit_tag == false);
+ ws_assert(offset == 0);
+ ws_assert(hf_index <= 0);
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class != BER_CLASS_APP) {
+ if (kerberos_private_is_kdc_req(private_data)) {
+ goto unknown;
+ }
+ if (private_data->errorcode != KRB5_ET_KRB5KDC_ERR_PREAUTH_REQUIRED) {
+ goto unknown;
+ }
+
+ proto_item_append_text(pi1, " KRB5_SRP_PA_ANNOUNCE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_ANNOUNCE");
+ return dissect_kerberos_KRB5_SRP_PA_ANNOUNCE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ }
+
+ switch (tag) {
+ case 0:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_INIT");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_INIT");
+ return dissect_kerberos_KRB5_SRP_PA_INIT(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 1:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_SERVER_CHALLENGE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_SERVER_CHALLENGE");
+ return dissect_kerberos_KRB5_SRP_PA_SERVER_CHALLENGE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 2:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_CLIENT_RESPONSE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_CLIENT_RESPONSE");
+ return dissect_kerberos_KRB5_SRP_PA_CLIENT_RESPONSE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 3:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_SERVER_VERIFIER");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_SERVER_VERIFIER");
+ return dissect_kerberos_KRB5_SRP_PA_SERVER_VERIFIER(implicit_tag, tvb, offset, actx, tree, hf_index);
+ default:
+ break;
+ }
+
+unknown:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_UNKNOWN: ber_class:%u ber_pc=%u ber_tag:%"PRIu32"", ber_class, pc, tag);
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_UNKNOWN");
+ return tvb_reported_length_remaining(tvb, offset);
+}
+
#ifdef HAVE_KERBEROS
-static guint8 *
+static uint8_t *
decrypt_krb5_data_asn1(proto_tree *tree, asn1_ctx_t *actx,
int usage, tvbuff_t *cryptotvb, int *datalen)
{
@@ -3122,7 +3686,7 @@ static int
dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3138,6 +3702,7 @@ dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, a
if(plaintext){
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
tvbuff_t *last_ticket_enc_part_tvb = private_data->last_ticket_enc_part_tvb;
+ enc_key_t *current_ticket_key = private_data->current_ticket_key;
tvbuff_t *child_tvb;
child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
@@ -3145,7 +3710,9 @@ dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, a
add_new_data_source(actx->pinfo, child_tvb, "Krb5 Ticket");
private_data->last_ticket_enc_part_tvb = child_tvb;
- offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ private_data->current_ticket_key = NULL;
+ offset=dissect_kerberos_Applications(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ private_data->current_ticket_key = current_ticket_key;
private_data->last_ticket_enc_part_tvb = last_ticket_enc_part_tvb;
}
return offset;
@@ -3156,7 +3723,7 @@ dissect_krb5_decrypt_authenticator_data (bool imp_tag _U_, tvbuff_t *tvb, int of
proto_tree *tree, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3189,7 +3756,7 @@ dissect_krb5_decrypt_authenticator_data (bool imp_tag _U_, tvbuff_t *tvb, int of
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 Authenticator");
- offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_Applications(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3199,7 +3766,7 @@ dissect_krb5_decrypt_authorization_data(bool imp_tag _U_, tvbuff_t *tvb, int off
proto_tree *tree, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3230,7 +3797,7 @@ dissect_krb5_decrypt_authorization_data(bool imp_tag _U_, tvbuff_t *tvb, int off
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 AuthorizationData");
- offset=dissect_kerberos_AuthorizationData(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_AuthorizationData(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3240,7 +3807,7 @@ dissect_krb5_decrypt_KDC_REP_data (bool imp_tag _U_, tvbuff_t *tvb, int offset,
proto_tree *tree, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- guint8 *plaintext = NULL;
+ uint8_t *plaintext = NULL;
int length;
tvbuff_t *next_tvb;
@@ -3301,7 +3868,7 @@ dissect_krb5_decrypt_KDC_REP_data (bool imp_tag _U_, tvbuff_t *tvb, int offset,
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 KDC-REP");
- offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_Applications(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3310,7 +3877,7 @@ static int
dissect_krb5_decrypt_PA_ENC_TIMESTAMP (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3331,7 +3898,7 @@ dissect_krb5_decrypt_PA_ENC_TIMESTAMP (bool imp_tag _U_, tvbuff_t *tvb, int offs
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 EncTimestamp");
- offset=dissect_kerberos_PA_ENC_TS_ENC(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_PA_ENC_TS_ENC(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3340,7 +3907,7 @@ static int
dissect_krb5_decrypt_AP_REP_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3360,7 +3927,7 @@ dissect_krb5_decrypt_AP_REP_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, a
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 AP-REP");
- offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_Applications(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3369,7 +3936,7 @@ static int
dissect_krb5_decrypt_PRIV_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3389,7 +3956,7 @@ dissect_krb5_decrypt_PRIV_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 PRIV");
- offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_Applications(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3399,7 +3966,7 @@ dissect_krb5_decrypt_CRED_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn
proto_tree *tree, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3407,7 +3974,7 @@ dissect_krb5_decrypt_CRED_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn
length=tvb_captured_length_remaining(tvb, offset);
if (private_data->etype == 0) {
- offset=dissect_kerberos_Applications(FALSE, next_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_Applications(false, next_tvb, 0, actx , tree, /* hf_index*/ -1);
return offset;
}
@@ -3424,7 +3991,7 @@ dissect_krb5_decrypt_CRED_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 CRED");
- offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_Applications(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3433,7 +4000,7 @@ static int
dissect_krb5_decrypt_KrbFastReq(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
tvbuff_t *next_tvb;
@@ -3487,7 +4054,7 @@ dissect_krb5_decrypt_KrbFastReq(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, "Krb5 FastReq");
- offset=dissect_kerberos_KrbFastReq(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_KrbFastReq(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3496,7 +4063,7 @@ static int
dissect_krb5_decrypt_KrbFastResponse(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
tvbuff_t *next_tvb;
@@ -3520,7 +4087,7 @@ dissect_krb5_decrypt_KrbFastResponse(bool imp_tag _U_, tvbuff_t *tvb, int offset
add_new_data_source(actx->pinfo, child_tvb, "Krb5 FastRep");
private_data->fast_armor_key = private_data->last_decryption_key;
- offset=dissect_kerberos_KrbFastResponse(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_KrbFastResponse(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3529,7 +4096,7 @@ static int
dissect_krb5_decrypt_EncryptedChallenge(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
- guint8 *plaintext;
+ uint8_t *plaintext;
int length;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
tvbuff_t *next_tvb;
@@ -3559,7 +4126,7 @@ dissect_krb5_decrypt_EncryptedChallenge(bool imp_tag _U_, tvbuff_t *tvb, int off
/* Add the decrypted data to the data source list. */
add_new_data_source(actx->pinfo, child_tvb, name);
- offset=dissect_kerberos_PA_ENC_TS_ENC(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ offset=dissect_kerberos_PA_ENC_TS_ENC(false, child_tvb, 0, actx , tree, /* hf_index*/ -1);
}
return offset;
}
@@ -3571,6 +4138,7 @@ static int * const hf_krb_pa_supported_enctypes_fields[] = {
&hf_krb_pa_supported_enctypes_rc4_hmac,
&hf_krb_pa_supported_enctypes_aes128_cts_hmac_sha1_96,
&hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96,
+ &hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96_sk,
&hf_krb_pa_supported_enctypes_fast_supported,
&hf_krb_pa_supported_enctypes_compound_identity_supported,
&hf_krb_pa_supported_enctypes_claims_supported,
@@ -3595,6 +4163,7 @@ dissect_kerberos_PA_SUPPORTED_ENCTYPES(bool implicit_tag _U_, tvbuff_t *tvb _U_,
static int * const hf_krb_ad_ap_options_fields[] = {
&hf_krb_ad_ap_options_cbt,
+ &hf_krb_ad_ap_options_unverified_target_name,
NULL,
};
@@ -3620,7 +4189,7 @@ dissect_kerberos_AD_TARGET_PRINCIPAL(bool implicit_tag _U_, tvbuff_t *tvb _U_,
proto_tree *tree _U_, int hf_index _U_)
{
int tp_offset, tp_len;
- guint16 bc;
+ uint16_t bc;
bc = tvb_reported_length_remaining(tvb, offset);
tp_offset = offset;
@@ -3638,8 +4207,8 @@ static int
dissect_krb5_rfc1964_checksum(asn1_ctx_t *actx _U_, proto_tree *tree, tvbuff_t *tvb)
{
int offset=0;
- guint32 len;
- guint16 dlglen;
+ uint32_t len;
+ uint16_t dlglen;
/* Length of Bnd field */
len=tvb_get_letohl(tvb, offset);
@@ -3685,7 +4254,7 @@ dissect_krb5_rfc1964_checksum(asn1_ctx_t *actx _U_, proto_tree *tree, tvbuff_t *
}
/* this should now be a KRB_CRED message */
- offset=dissect_kerberos_Applications(FALSE, tvb, offset, actx, tree, /* hf_index */ -1);
+ offset=dissect_kerberos_Applications(false, tvb, offset, actx, tree, /* hf_index */ -1);
return offset;
}
@@ -3702,17 +4271,17 @@ static int
dissect_krb5_PW_SALT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint length;
- guint32 nt_status = 0;
- guint32 reserved = 0;
- guint32 flags = 0;
+ int length;
+ uint32_t nt_status = 0;
+ uint32_t reserved = 0;
+ uint32_t flags = 0;
/*
* Microsoft stores a special 12 byte blob here
* [MS-KILE] 2.2.1 KERB-EXT-ERROR
- * guint32 NT_status
- * guint32 reserved (== 0)
- * guint32 flags (at least 0x00000001 is set)
+ * uint32_t NT_status
+ * uint32_t reserved (== 0)
+ * uint32_t flags (at least 0x00000001 is set)
*/
length = tvb_reported_length_remaining(tvb, offset);
if (length <= 0) {
@@ -3726,15 +4295,11 @@ dissect_krb5_PW_SALT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, a
goto no_error;
}
- if (!private_data->try_nt_status) {
- goto no_error;
- }
-
nt_status = tvb_get_letohl(tvb, offset);
reserved = tvb_get_letohl(tvb, offset + 4);
flags = tvb_get_letohl(tvb, offset + 8);
- if (nt_status == 0 || reserved != 0 || flags == 0) {
+ if (reserved != 0 || flags != 1 || !try_val_to_str_ext(nt_status, &NT_errors_ext)) {
goto no_error;
}
@@ -3742,7 +4307,7 @@ dissect_krb5_PW_SALT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, a
ENC_LITTLE_ENDIAN);
col_append_fstr(actx->pinfo->cinfo, COL_INFO,
" NT Status: %s",
- val_to_str(nt_status, NT_errors,
+ val_to_str_ext(nt_status, &NT_errors_ext,
"Unknown error code %#x"));
offset += 4;
@@ -3764,14 +4329,14 @@ dissect_krb5_PW_SALT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, a
}
static int
-dissect_krb5_PAC_DREP(proto_tree *parent_tree, tvbuff_t *tvb, int offset, guint8 *drep)
+dissect_krb5_PAC_DREP(proto_tree *parent_tree, tvbuff_t *tvb, int offset, uint8_t *drep)
{
proto_tree *tree;
- guint8 val;
+ uint8_t val;
tree = proto_tree_add_subtree(parent_tree, tvb, offset, 16, ett_krb_pac_drep, NULL, "DREP");
- val = tvb_get_guint8(tvb, offset);
+ val = tvb_get_uint8(tvb, offset);
proto_tree_add_uint(tree, hf_dcerpc_drep_byteorder, tvb, offset, 1, val>>4);
offset++;
@@ -3789,7 +4354,7 @@ dissect_krb5_PAC_DREP(proto_tree *parent_tree, tvbuff_t *tvb, int offset, guint8
* 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_)
+dissect_krb5_PAC_NDRHEADERBLOB(proto_tree *parent_tree, tvbuff_t *tvb, int offset, uint8_t *drep, asn1_ctx_t *actx _U_)
{
proto_tree *tree;
@@ -3822,9 +4387,10 @@ dissect_krb5_PAC_LOGON_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
{
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;
+ uint8_t drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &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);
@@ -3835,14 +4401,11 @@ dissect_krb5_PAC_LOGON_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
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);
+ free_ndr_pointer_list(&di);
return offset;
}
@@ -3861,12 +4424,12 @@ dissect_krb5_PAC_CREDENTIAL_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int off
{
proto_item *item;
proto_tree *tree;
- guint8 *plaintext = NULL;
+ uint8_t *plaintext = NULL;
int plainlen = 0;
int length = 0;
#define KRB5_KU_OTHER_ENCRYPTED 16
#ifdef HAVE_KERBEROS
- guint32 etype;
+ uint32_t etype;
tvbuff_t *next_tvb;
int usage = KRB5_KU_OTHER_ENCRYPTED;
#endif
@@ -3913,9 +4476,10 @@ dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
{
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;
+ uint8_t drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &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);
@@ -3925,16 +4489,12 @@ dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
*/
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);
+ free_ndr_pointer_list(&di);
return offset;
}
@@ -3958,13 +4518,17 @@ static int * const hf_krb_pac_upn_flags_fields[] = {
static int
dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
{
+#ifdef HAVE_KERBEROS
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+#endif /* HAVE_KERBEROS */
proto_item *item;
proto_tree *tree;
- guint16 dns_offset, dns_len;
- guint16 upn_offset, upn_len;
- guint16 samaccountname_offset = 0, samaccountname_len = 0;
- guint16 objectsid_offset = 0, objectsid_len = 0;
- guint32 flags;
+ uint16_t dns_offset, dns_len;
+ uint16_t upn_offset, upn_len;
+ uint16_t samaccountname_offset = 0, samaccountname_len = 0;
+ uint16_t objectsid_offset = 0, objectsid_len = 0;
+ char *sid_str = NULL;
+ uint32_t flags;
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);
@@ -4024,9 +4588,38 @@ dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset
if (objectsid_offset != 0 && objectsid_len != 0) {
tvbuff_t *sid_tvb;
sid_tvb=tvb_new_subset_length(tvb, objectsid_offset, objectsid_len);
- dissect_nt_sid(sid_tvb, 0, tree, "objectSid", NULL, -1);
+ dissect_nt_sid(sid_tvb, 0, tree, "objectSid", &sid_str, -1);
}
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ enc_key_t *ek = private_data->current_ticket_key;
+
+ if (samaccountname_offset != 0 && samaccountname_len != 0) {
+ ek->pac_names.account_name = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ samaccountname_offset,
+ samaccountname_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ } else {
+ ek->pac_names.account_name = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ upn_offset,
+ upn_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ }
+ ek->pac_names.account_domain = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ dns_offset,
+ dns_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ if (sid_str != NULL) {
+ ek->pac_names.account_sid = wmem_strdup(wmem_epan_scope(),
+ sid_str);
+ }
+ }
+#endif /* HAVE_KERBEROS */
+
return dns_offset;
}
@@ -4047,11 +4640,22 @@ dissect_krb5_PAC_CLIENT_CLAIMS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
static int
dissect_krb5_PAC_DEVICE_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
{
+#ifdef HAVE_KERBEROS
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ const char *device_sid = NULL;
+#endif /* HAVE_KERBEROS */
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;
+ uint8_t drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &call_data, };
+
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ call_data.private_data = (void*)&device_sid;
+ }
+#endif /* HAVE_KERBEROS */
item = proto_tree_add_item(parent_tree, hf_krb_pac_device_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_device_info);
@@ -4062,14 +4666,23 @@ dissect_krb5_PAC_DEVICE_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
/* the PAC_DEVICE_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_DEVICE_INFO, NDR_POINTER_UNIQUE,
"PAC_DEVICE_INFO:", -1);
+ free_ndr_pointer_list(&di);
+
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ enc_key_t *ek = private_data->current_ticket_key;
+
+ /*
+ * netlogon_dissect_PAC_DEVICE_INFO allocated on
+ * wmem_epan_scope() for us
+ */
+ ek->pac_names.device_sid = device_sid;
+ }
+#endif /* HAVE_KERBEROS */
return offset;
}
@@ -4131,13 +4744,14 @@ dissect_krb5_PAC_CLIENT_INFO_TYPE(proto_tree *parent_tree, tvbuff_t *tvb, int of
{
proto_item *item;
proto_tree *tree;
- guint16 namelen;
+ uint16_t 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);
+ dissect_nttime(tvb, tree, offset, hf_krb_pac_clientid, ENC_LITTLE_ENDIAN);
+ offset+=8;
/* name length */
namelen=tvb_get_letohs(tvb, offset);
@@ -4225,11 +4839,30 @@ dissect_krb5_PAC_REQUESTER_SID(proto_tree *parent_tree, tvbuff_t *tvb, int offse
}
static int
+dissect_krb5_PAC_FULL_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_full_checksum, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_full_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_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;
+ uint32_t pac_type;
+ uint32_t pac_size;
+ uint32_t pac_offset;
proto_item *it=NULL;
proto_tree *tr=NULL;
tvbuff_t *next_tvb;
@@ -4292,6 +4925,9 @@ dissect_krb5_AD_WIN2K_PAC_struct(proto_tree *tree, tvbuff_t *tvb, int offset, as
case PAC_REQUESTER_SID:
dissect_krb5_PAC_REQUESTER_SID(tr, next_tvb, 0, actx);
break;
+ case PAC_FULL_CHECKSUM:
+ dissect_krb5_PAC_FULL_CHECKSUM(tr, next_tvb, 0, actx);
+ break;
default:
break;
@@ -4302,9 +4938,9 @@ dissect_krb5_AD_WIN2K_PAC_struct(proto_tree *tree, tvbuff_t *tvb, int offset, as
static int
dissect_krb5_AD_WIN2K_PAC(bool 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;
+ uint32_t entries;
+ uint32_t version;
+ uint32_t i;
#if defined(HAVE_MIT_KERBEROS) && defined(HAVE_KRB5_PAC_VERIFY)
verify_krb5_pac(tree, actx, tvb);
@@ -4327,6 +4963,43 @@ dissect_krb5_AD_WIN2K_PAC(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1
return offset;
}
+static int dissect_kerberos_T_e_data_octets(bool implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
+{
+ int8_t ber_class;
+ bool pc;
+ int32_t tag;
+ int len_offset;
+ uint32_t len;
+ bool ind;
+ int next_offset;
+
+ /*
+ * dissect_ber_octet_string_wcb() always passes
+ * implicit_tag=false, offset=0 and hf_index=-1
+ */
+ ws_assert(implicit_tag == false);
+ ws_assert(offset == 0);
+ ws_assert(hf_index <= 0);
+
+ len_offset = get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class != BER_CLASS_UNI || !pc || tag != BER_UNI_TAG_SEQUENCE) {
+ goto unknown;
+ }
+ next_offset = get_ber_length(tvb, len_offset, &len, &ind);
+ if (len < 1) {
+ goto unknown;
+ }
+ get_ber_identifier(tvb, next_offset, &ber_class, &pc, &tag);
+ if (ber_class == BER_CLASS_CON && pc && tag == 1) {
+ return dissect_kerberos_PA_DATA(implicit_tag, tvb, offset, actx, tree, hf_index);
+ }
+ if (ber_class == BER_CLASS_UNI && pc && tag == BER_UNI_TAG_SEQUENCE) {
+ return dissect_kerberos_T_rEP_SEQUENCE_OF_PA_DATA(implicit_tag, tvb, offset, actx, tree, hf_index);
+ }
+unknown:
+ return tvb_reported_length_remaining(tvb, offset);
+}
+
#include "packet-kerberos-fn.c"
#ifdef HAVE_KERBEROS
@@ -4346,7 +5019,7 @@ dissect_kerberos_PA_ENC_TS_ENC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_kerberos_T_strengthen_key(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
- gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
+ int save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
private_data->save_encryption_key_parent_hf_index = hf_kerberos_KrbFastResponse;
#ifdef HAVE_KERBEROS
@@ -4403,7 +5076,7 @@ static int
dissect_kerberos_KrbFastReq(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
struct _kerberos_PA_FX_FAST_REQUEST saved_stack = private_data->PA_FX_FAST_REQUEST;
- private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = FALSE, };
+ private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = false, };
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbFastReq_sequence, hf_index, ett_kerberos_KrbFastReq);
private_data->PA_FX_FAST_REQUEST = saved_stack;
@@ -4447,26 +5120,26 @@ dissect_kerberos_FastOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offse
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);
+ 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);
+ 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);
+ 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);
+ return dissect_kerberos_Realm(false, tvb, offset, actx, tree, hf_kerberos_realm);
}
struct kerberos_display_key_state {
@@ -4475,15 +5148,15 @@ struct kerberos_display_key_state {
expert_field *expindex;
const char *name;
tvbuff_t *tvb;
- gint start;
- gint length;
+ int start;
+ int length;
};
static void
#ifdef HAVE_KERBEROS
-kerberos_display_key(gpointer data, gpointer userdata)
+kerberos_display_key(void *data, void *userdata)
#else
-kerberos_display_key(gpointer data _U_, gpointer userdata _U_)
+kerberos_display_key(void *data _U_, void *userdata _U_)
#endif
{
#ifdef HAVE_KERBEROS
@@ -4573,8 +5246,8 @@ dissect_kerberos_KERB_TICKET_LOGON(tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
{
proto_item *item;
proto_tree *subtree;
- guint32 ServiceTicketLength;
- guint32 TicketGrantingTicketLength;
+ uint32_t ServiceTicketLength;
+ uint32_t TicketGrantingTicketLength;
int orig_offset;
if (tvb_captured_length(tvb) < 32)
@@ -4608,7 +5281,7 @@ dissect_kerberos_KERB_TICKET_LOGON(tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
return offset;
orig_offset = offset;
- offset = dissect_kerberos_Ticket(FALSE, tvb, offset, actx, subtree,
+ offset = dissect_kerberos_Ticket(false, tvb, offset, actx, subtree,
hf_kerberos_KERB_TICKET_LOGON_ServiceTicket);
if ((unsigned)(offset-orig_offset) != ServiceTicketLength)
@@ -4617,7 +5290,7 @@ dissect_kerberos_KERB_TICKET_LOGON(tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
if (TicketGrantingTicketLength == 0)
return offset;
- offset = dissect_kerberos_KRB_CRED(FALSE, tvb, offset, actx, subtree,
+ offset = dissect_kerberos_KRB_CRED(false, tvb, offset, actx, subtree,
hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicket);
if ((unsigned)(offset-orig_offset) != ServiceTicketLength + TicketGrantingTicketLength)
@@ -4626,7 +5299,7 @@ dissect_kerberos_KERB_TICKET_LOGON(tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
return offset;
}
-static gint
+static int
dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
bool dci, bool do_col_protocol, bool have_rm,
kerberos_callbacks *cb)
@@ -4638,8 +5311,8 @@ dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
asn1_ctx_t asn1_ctx;
/* TCP record mark and length */
- guint32 krb_rm = 0;
- gint krb_reclen = 0;
+ uint32_t krb_rm = 0;
+ int krb_reclen = 0;
gbl_do_col_info=dci;
@@ -4671,9 +5344,9 @@ dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* If it doesn't look like kerberos, return 0 and let someone else have
* a go at it.
*/
- gint8 tmp_class;
+ int8_t tmp_class;
bool tmp_pc;
- gint32 tmp_tag;
+ int32_t tmp_tag;
get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
if(tmp_class!=BER_CLASS_APP){
@@ -4712,17 +5385,37 @@ dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
kerberos_tree = proto_item_add_subtree(item, ett_kerberos);
}
}
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
asn1_ctx.private_data = NULL;
private_data = kerberos_get_private_data(&asn1_ctx);
private_data->callbacks = cb;
TRY {
- offset=dissect_kerberos_Applications(FALSE, tvb, offset, &asn1_ctx , kerberos_tree, /* hf_index */ -1);
+ offset=dissect_kerberos_Applications(false, tvb, offset, &asn1_ctx , kerberos_tree, /* hf_index */ -1);
} CATCH_BOUNDS_ERRORS {
RETHROW;
} ENDTRY;
+ if (private_data->frame_rep != UINT32_MAX) {
+ proto_item *tmp_item;
+
+ tmp_item = proto_tree_add_uint(kerberos_tree, hf_krb_response_in, tvb, 0, 0, private_data->frame_rep);
+ proto_item_set_generated(tmp_item);
+ }
+
+ if (private_data->frame_req != UINT32_MAX) {
+ proto_item *tmp_item;
+ nstime_t t, deltat;
+
+ tmp_item = proto_tree_add_uint(kerberos_tree, hf_krb_response_to, tvb, 0, 0, private_data->frame_req);
+ proto_item_set_generated(tmp_item);
+
+ t = pinfo->abs_ts;
+ nstime_delta(&deltat, &t, &private_data->req_time);
+ tmp_item = proto_tree_add_time(kerberos_tree, hf_krb_time, tvb, 0, 0, &deltat);
+ proto_item_set_generated(tmp_item);
+ }
+
if (kerberos_tree != NULL) {
struct kerberos_display_key_state display_state = {
.tree = kerberos_tree,
@@ -4773,9 +5466,9 @@ dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* Display the TCP record mark.
*/
void
-show_krb_recordmark(proto_tree *tree, tvbuff_t *tvb, gint start, guint32 krb_rm)
+show_krb_recordmark(proto_tree *tree, tvbuff_t *tvb, int start, uint32_t krb_rm)
{
- gint rec_len;
+ int rec_len;
proto_tree *rm_tree;
if (tree == NULL)
@@ -4788,19 +5481,19 @@ show_krb_recordmark(proto_tree *tree, tvbuff_t *tvb, gint start, guint32 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)
+int
+dissect_kerberos_main(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, bool do_col_info, kerberos_callbacks *cb)
{
- return (dissect_kerberos_common(tvb, pinfo, tree, do_col_info, FALSE, FALSE, cb));
+ return (dissect_kerberos_common(tvb, pinfo, tree, do_col_info, false, false, cb));
}
-guint32
+uint32_t
kerberos_output_keytype(void)
{
return gbl_keytype;
}
-static gint
+static int
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.
@@ -4810,9 +5503,9 @@ dissect_kerberos_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
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(tvb_captured_length(tvb) >= 1 && tvb_get_uint8(tvb, 0)<=0x10){
if(krb4_handle){
- gboolean res;
+ bool res;
res=call_dissector_only(krb4_handle, tvb, pinfo, tree, NULL);
return res;
@@ -4822,20 +5515,20 @@ dissect_kerberos_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
}
- return dissect_kerberos_common(tvb, pinfo, tree, TRUE, TRUE, FALSE, NULL);
+ return dissect_kerberos_common(tvb, pinfo, tree, true, true, false, NULL);
}
-gint
-kerberos_rm_to_reclen(guint krb_rm)
+int
+kerberos_rm_to_reclen(unsigned krb_rm)
{
return (krb_rm & KRB_RM_RECLEN);
}
-guint
+unsigned
get_krb_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
{
- guint krb_rm;
- gint pdulen;
+ unsigned krb_rm;
+ int pdulen;
krb_rm = tvb_get_ntohl(tvb, offset);
pdulen = kerberos_rm_to_reclen(krb_rm);
@@ -4852,8 +5545,8 @@ kerberos_prefs_apply_cb(void) {
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) {
+ 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.
@@ -4881,6 +5574,15 @@ void proto_register_kerberos(void) {
/* List of fields */
static hf_register_info hf[] = {
+ { &hf_krb_response_to,
+ { "Response to", "kerberos.response_to", FT_FRAMENUM, BASE_NONE,
+ FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0, "This packet is a response to the packet in this frame", HFILL }},
+ { &hf_krb_response_in,
+ { "Response in", "kerberos.response_in", FT_FRAMENUM, BASE_NONE,
+ FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0, "The response to this packet is in this packet", HFILL }},
+ { &hf_krb_time,
+ { "Time from request", "kerberos.time", FT_RELATIVE_TIME, BASE_NONE,
+ NULL, 0, "Time between Request and Response for Kerberos KDC requests", HFILL }},
{ &hf_krb_rm_reserved, {
"Reserved", "kerberos.rm.reserved", FT_BOOLEAN, 32,
TFS(&tfs_set_notset), KRB_RM_RESERVED, "Record mark reserved bit", HFILL }},
@@ -4894,8 +5596,8 @@ void proto_register_kerberos(void) {
{ "pw-salt", "kerberos.pw_salt", FT_BYTES, BASE_NONE,
NULL, 0, NULL, HFILL }},
{ &hf_krb_ext_error_nt_status, /* we keep kerberos.smb.nt_status for compat reasons */
- { "NT Status", "kerberos.smb.nt_status", FT_UINT32, BASE_HEX,
- VALS(NT_errors), 0, "NT Status code", HFILL }},
+ { "NT Status", "kerberos.smb.nt_status", FT_UINT32, BASE_HEX|BASE_EXT_STRING,
+ &NT_errors_ext, 0, "NT Status code", HFILL }},
{ &hf_krb_ext_error_reserved,
{ "Reserved", "kerberos.ext_error.reserved", FT_UINT32, BASE_HEX,
NULL, 0, NULL, HFILL }},
@@ -5104,6 +5806,9 @@ void proto_register_kerberos(void) {
{ &hf_krb_pac_requester_sid, {
"PAC_REQUESTER_SID", "kerberos.pac_requester_sid", FT_BYTES, BASE_NONE,
NULL, 0, "PAC_REQUESTER_SID structure", HFILL }},
+ { &hf_krb_pac_full_checksum, {
+ "PAC_FULL_CHECKSUM", "kerberos.pac_full_checksum", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_FULL_CHECKSUM structure", HFILL }},
{ &hf_krb_pa_supported_enctypes,
{ "SupportedEnctypes", "kerberos.supported_entypes",
FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
@@ -5122,6 +5827,9 @@ void proto_register_kerberos(void) {
{ &hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96,
{ "aes256-cts-hmac-sha1-96", "kerberos.supported_entypes.aes256-cts-hmac-sha1-96",
FT_BOOLEAN, 32, TFS(&tfs_supported_not_supported), 0x00000010, NULL, HFILL }},
+ { &hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96_sk,
+ { "aes256-cts-hmac-sha1-96-sk", "kerberos.supported_entypes.aes256-cts-hmac-sha1-96-sk",
+ FT_BOOLEAN, 32, TFS(&tfs_supported_not_supported), 0x00000020, NULL, HFILL }},
{ &hf_krb_pa_supported_enctypes_fast_supported,
{ "fast-supported", "kerberos.supported_entypes.fast-supported",
FT_BOOLEAN, 32, TFS(&tfs_supported_not_supported), 0x00010000, NULL, HFILL }},
@@ -5140,6 +5848,9 @@ void proto_register_kerberos(void) {
{ &hf_krb_ad_ap_options_cbt,
{ "ChannelBindings", "kerberos.ad_ap_options.cbt",
FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x00004000, NULL, HFILL }},
+ { &hf_krb_ad_ap_options_unverified_target_name,
+ { "UnverifiedTargetName", "kerberos.ad_ap_options.unverified_target_name",
+ FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x00008000, NULL, HFILL }},
{ &hf_krb_ad_target_principal,
{ "Target Principal", "kerberos.ad_target_principal",
FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
@@ -5282,7 +5993,7 @@ void proto_register_kerberos(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_kerberos,
&ett_krb_recordmark,
&ett_krb_pac,
@@ -5301,6 +6012,7 @@ void proto_register_kerberos(void) {
&ett_krb_pac_attributes_info,
&ett_krb_pac_attributes_info_flags,
&ett_krb_pac_requester_sid,
+ &ett_krb_pac_full_checksum,
&ett_krb_pa_supported_enctypes,
&ett_krb_ad_ap_options,
&ett_kerberos_KERB_TICKET_LOGON,
@@ -5331,6 +6043,9 @@ void proto_register_kerberos(void) {
expert_krb = expert_register_protocol(proto_kerberos);
expert_register_field_array(expert_krb, ei, array_length(ei));
+ kerberos_tap = register_tap("kerberos");
+ register_srt_table(proto_kerberos, NULL, 1, krb5stat_packet, krb5stat_init, NULL);
+
/* Register dissectors */
kerberos_handle_udp = register_dissector("kerberos.udp", dissect_kerberos_udp, proto_kerberos);
kerberos_handle_tcp = register_dissector("kerberos.tcp", dissect_kerberos_tcp, proto_kerberos);
@@ -5352,7 +6067,7 @@ void proto_register_kerberos(void) {
prefs_register_filename_preference(krb_module, "file",
"Kerberos keytab file",
"The keytab file containing all the secrets",
- &keytab_filename, FALSE);
+ &keytab_filename, false);
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
wmem_register_callback(wmem_epan_scope(), enc_key_list_cb, NULL);
@@ -5372,13 +6087,13 @@ void proto_register_kerberos(void) {
}
static int wrap_dissect_gss_kerb(tvbuff_t *tvb, int offset, packet_info *pinfo,
- proto_tree *tree, dcerpc_info *di _U_,guint8 *drep _U_)
+ proto_tree *tree, dcerpc_info *di _U_,uint8_t *drep _U_)
{
tvbuff_t *auth_tvb;
auth_tvb = tvb_new_subset_remaining(tvb, offset);
- dissect_kerberos_main(auth_tvb, pinfo, tree, FALSE, NULL);
+ dissect_kerberos_main(auth_tvb, pinfo, tree, false, NULL);
return tvb_captured_length_remaining(tvb, offset);
}
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.h b/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
index 4f776ae9..62de8990 100644
--- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
@@ -48,11 +48,11 @@ typedef struct _kerberos_callbacks {
/* Function prototypes */
-gboolean
+bool
kerberos_is_win2k_pkinit(asn1_ctx_t *actx);
-gint
-dissect_kerberos_main(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean do_col_info, kerberos_callbacks *cb);
+int
+dissect_kerberos_main(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, bool do_col_info, kerberos_callbacks *cb);
int
dissect_krb5_Checksum(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
@@ -62,14 +62,14 @@ dissect_krb5_ctime(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx
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);
+uint32_t kerberos_output_keytype(void);
-guint get_krb_pdu_len(packet_info *, tvbuff_t *tvb, int offset, void *data _U_);
+unsigned get_krb_pdu_len(packet_info *, tvbuff_t *tvb, int offset, void *data _U_);
-gint kerberos_rm_to_reclen(guint krb_rm);
+int kerberos_rm_to_reclen(unsigned krb_rm);
void
-show_krb_recordmark(proto_tree *tree, tvbuff_t *tvb, gint start, guint32 krb_rm);
+show_krb_recordmark(proto_tree *tree, tvbuff_t *tvb, int start, uint32_t krb_rm);
int
dissect_kerberos_KERB_TICKET_LOGON(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree);
@@ -89,20 +89,48 @@ typedef struct _enc_key_t {
struct _enc_key_t *next;
int keytype;
int keylength;
- guint8 keyvalue[KRB_MAX_KEY_LENGTH];
+ uint8_t keyvalue[KRB_MAX_KEY_LENGTH];
char key_origin[KRB_MAX_ORIG_LEN+1];
int fd_num; /* remember where we learned a key */
- guint id; /* a unique id of the key, relative to fd_num */
+ unsigned id; /* a unique id of the key, relative to fd_num */
char id_str[KRB_MAX_ID_STR_LEN+1];
+ /* EncTicketPart_key */
+ bool is_ticket_key;
+ /* EncAPRepPart_subkey */
+ bool is_ap_rep_key;
+ /*
+ * for now taken from dissect_krb5_PAC_UPN_DNS_INFO,
+ * we could also use dissect_krb5_PAC_LOGON_INFO if needed
+ *
+ * we get device_sid from dissect_krb5_PAC_DEVICE_INFO if available.
+ *
+ * We remember these from the PAC and
+ * attach it to EncTicketPart_key so it
+ * might be valid if is_ticket_key is true.
+ *
+ * When learning a EncAPRepPart_subkey
+ * we copy the details from the EncTicketPart_key,
+ * so when is_ap_rep_key is true we may also have it.
+ *
+ * So application protocols like SMB2 could use the
+ * is_ap_rep_key=true key details in order to identify
+ * the authenticated user.
+ */
+ struct {
+ const char *account_name;
+ const char *account_domain;
+ const char *account_sid;
+ const char *device_sid;
+ } pac_names;
struct _enc_key_t *same_list;
- guint num_same;
+ unsigned num_same;
struct _enc_key_t *src1;
struct _enc_key_t *src2;
} enc_key_t;
extern enc_key_t *enc_key_list;
extern wmem_map_t *kerberos_longterm_keys;
-guint8 *
+uint8_t *
decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
int usage,
tvbuff_t *crypototvb,
@@ -121,7 +149,7 @@ decrypt_krb5_krb_cfx_dce(proto_tree *tree,
#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
-extern gboolean krb_decrypt;
+extern bool krb_decrypt;
#endif /* HAVE_KERBEROS */
diff --git a/epan/dissectors/asn1/kpm-v2/kpm-v2.cnf b/epan/dissectors/asn1/kpm-v2/kpm-v2.cnf
index 03caf8e8..8181df8d 100644
--- a/epan/dissectors/asn1/kpm-v2/kpm-v2.cnf
+++ b/epan/dissectors/asn1/kpm-v2/kpm-v2.cnf
@@ -50,7 +50,7 @@ E2SM-KPM-RANfunction-Description
if (!actx->pinfo->fd->visited) {
/* N.B. too early to work out exact dissector, as don't have OID yet */
e2ap_store_ran_function_mapping(actx->pinfo, tree, value_tvb,
- tvb_get_string_enc(wmem_packet_scope(), value_tvb, 0, tvb_captured_length(value_tvb), ENC_ASCII));
+ tvb_get_string_enc(actx->pinfo->pool, value_tvb, 0, tvb_captured_length(value_tvb), ENC_ASCII));
}
diff --git a/epan/dissectors/asn1/kpm-v2/packet-kpm-v2-template.c b/epan/dissectors/asn1/kpm-v2/packet-kpm-v2-template.c
index ebb8f417..9bef7896 100644
--- a/epan/dissectors/asn1/kpm-v2/packet-kpm-v2-template.c
+++ b/epan/dissectors/asn1/kpm-v2/packet-kpm-v2-template.c
@@ -15,6 +15,7 @@
#include <epan/packet.h>
#include <epan/strutil.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-e2ap.h"
#include "packet-per.h"
@@ -32,10 +33,10 @@ void proto_reg_handoff_kpm_v2(void);
#include "packet-kpm-v2-val.h"
/* Initialize the protocol and registered fields */
-static int proto_kpm_v2 = -1;
+static int proto_kpm_v2;
#include "packet-kpm-v2-hf.c"
-static int hf_kpm_v2_timestamp_string = -1;
+static int hf_kpm_v2_timestamp_string;
#include "packet-kpm-v2-ett.c"
@@ -96,7 +97,7 @@ void proto_register_kpm_v2(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-kpm-v2-ettarr.c"
};
diff --git a/epan/dissectors/asn1/lcsap/lcsap.cnf b/epan/dissectors/asn1/lcsap/lcsap.cnf
index e4ae9d4a..347f4cff 100644
--- a/epan/dissectors/asn1/lcsap/lcsap.cnf
+++ b/epan/dissectors/asn1/lcsap/lcsap.cnf
@@ -49,7 +49,8 @@ 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)"));
+ 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
@@ -98,17 +99,17 @@ ProtocolIE-Field/value ie_field_value
#.FN_FTR ProcedureCode
{
- guint8 tmp = tvb_get_guint8(tvb, 0);
+ uint8_t tmp = tvb_get_uint8(tvb, 0);
if (tmp == 0)
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%sReq",
- val_to_str(ProcedureCode, lcsap_ProcedureCode_vals, "unknown message"));
+ val_to_str_const(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"));
+ val_to_str_const(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"));
+ col_set_str(actx->pinfo->cinfo, COL_INFO,
+ val_to_str_const(ProcedureCode, lcsap_ProcedureCode_vals, "unknown message"));
}
#.END
@@ -151,14 +152,14 @@ ProtocolIE-Field/value ie_field_value
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, &parameter_tvb);
+ 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, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, false);
#.END
#.FN_BODY Positioning-Method-And-Usage VAL_PTR = &parameter_tvb
@@ -188,26 +189,26 @@ ProtocolIE-Field/value ie_field_value
#
# Code copied from packet-gsm_a_common.c
#.FN_BODY Uncertainty-Code VAL_PTR = &uncertainty_code
- guint32 uncertainty_code;
+ uint32_t uncertainty_code;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 127U, &uncertainty_code, FALSE);
+ 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;
+ int32_t degrees;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 8388607U, &degrees, FALSE);
+ 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;
+ int32_t degrees;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- -8388608, 8388607U, &degrees, FALSE);
+ -8388608, 8388607U, &degrees, false);
proto_item_append_text(actx->created_item, " (%.5f degrees)", (((double)degrees/16777215) * 360));
@@ -218,18 +219,18 @@ ProtocolIE-Field/value ie_field_value
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);
+ 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;
+ uint32_t 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;
+ uint32_t vertical_uncertainty;
%(DEFAULT_BODY)s
#.FN_FTR Vertical-Accuracy
diff --git a/epan/dissectors/asn1/lcsap/packet-lcsap-template.c b/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
index b9ff0c8c..a4b6f866 100644
--- a/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
+++ b/epan/dissectors/asn1/lcsap/packet-lcsap-template.c
@@ -22,6 +22,7 @@
#include <epan/prefs.h>
#include <epan/sctpppids.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
@@ -45,30 +46,30 @@ void proto_reg_handoff_lcsap(void);
#include "packet-lcsap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_lcsap = -1;
+static int proto_lcsap;
-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;
+static int hf_lcsap_pos_method;
+static int hf_lcsap_pos_usage;
+static int hf_lcsap_gnss_pos_method;
+static int hf_lcsap_gnss_id;
+static int hf_lcsap_gnss_pos_usage;
#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;
-static int ett_lcsap_civic_address = -1;
+static int ett_lcsap;
+static int ett_lcsap_plmnd_id;
+static int ett_lcsap_imsi;
+static int ett_lcsap_civic_address;
#include "packet-lcsap-ett.c"
-static expert_field ei_lcsap_civic_data_not_xml = EI_INIT;
+static expert_field ei_lcsap_civic_data_not_xml;
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-static guint32 ProtocolExtensionID;
-static guint32 PayloadType = -1;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
+static uint32_t ProtocolExtensionID;
+static uint32_t PayloadType = -1;
/* Dissector handles */
static dissector_handle_t lcsap_handle;
@@ -275,7 +276,7 @@ void proto_register_lcsap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_lcsap,
&ett_lcsap_plmnd_id,
&ett_lcsap_imsi,
diff --git a/epan/dissectors/asn1/ldap/ldap.cnf b/epan/dissectors/asn1/ldap/ldap.cnf
index cf0f41f3..3ce31b9a 100644
--- a/epan/dissectors/asn1/ldap/ldap.cnf
+++ b/epan/dissectors/asn1/ldap/ldap.cnf
@@ -57,7 +57,7 @@ PasswordPolicyResponseValue B "1.3.6.1.4.1.42.2.27.8.5.1" "passwordPolicy"
#.FN_HDR LDAPOID
tvbuff_t *parameter_tvb;
- const gchar *name;
+ const char *name;
ldap_conv_info_t *ldap_info = (ldap_conv_info_t *)actx->private_data;
#.FN_PARS LDAPOID VAL_PTR = &parameter_tvb
@@ -85,7 +85,7 @@ PasswordPolicyResponseValue B "1.3.6.1.4.1.42.2.27.8.5.1" "passwordPolicy"
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;
+ ldap_info->start_tls_pending = true;
}
#.FN_BODY MessageID VAL_PTR = &MessageID
@@ -100,7 +100,7 @@ PasswordPolicyResponseValue B "1.3.6.1.4.1.42.2.27.8.5.1" "passwordPolicy"
ldap_call_response_t *lcrp;
ldap_conv_info_t *ldap_info = (ldap_conv_info_t *)actx->private_data;
- do_protocolop = TRUE;
+ do_protocolop = true;
#.FN_FTR ProtocolOp
@@ -191,9 +191,9 @@ char *mechanism = NULL;
tvbuff_t *parameter_tvb;
ldap_conv_info_t *ldap_info;
-gint8 ber_class;
+int8_t ber_class;
bool pc;
-gint32 tag;
+int32_t tag;
%(DEFAULT_BODY)s
@@ -277,7 +277,7 @@ ldap_conv_info_t *ldap_info;
* NTLMSSP blob
*/
if ( (tvb_reported_length(parameter_tvb)>=7)
- && (!tvb_memeql(parameter_tvb, 0, (const guint8*)"NTLMSSP", 7))){
+ && (!tvb_memeql(parameter_tvb, 0, (const uint8_t*)"NTLMSSP", 7))){
call_dissector(ntlmssp_handle, parameter_tvb, actx->pinfo, tree);
break;
}
@@ -301,7 +301,7 @@ ldap_conv_info_t *ldap_info;
#.FN_BODY LDAPString VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
const char *ldapstring = NULL;
- gchar *sc = NULL; /* semi-colon pointer */
+ char *sc = NULL; /* semi-colon pointer */
offset = dissect_ber_octet_string_with_encoding(implicit_tag, actx, tree, tvb, offset, hf_index,
&parameter_tvb, ENC_UTF_8|ENC_NA);
@@ -377,10 +377,10 @@ ldap_conv_info_t *ldap_info;
if((sc = strchr(attr_type, ';')) != NULL) {
if(!strcmp(sc, ";binary")) {
*sc = '\0'; /* terminate the string */
- is_binary_attr_type = TRUE;
+ is_binary_attr_type = true;
}
} else {
- is_binary_attr_type = FALSE;
+ is_binary_attr_type = false;
}
}
@@ -388,8 +388,8 @@ ldap_conv_info_t *ldap_info;
#.FN_BODY SearchRequest/_untag/scope VAL_PTR = &scope
- guint32 scope = 0xffff;
- const gchar *valstr;
+ uint32_t scope = 0xffff;
+ const char *valstr;
%(DEFAULT_BODY)s
@@ -404,7 +404,7 @@ ldap_conv_info_t *ldap_info;
#.FN_BODY LDAPResult/resultCode VAL_PTR = &result
- const gchar *valstr;
+ const char *valstr;
%(DEFAULT_BODY)s
@@ -420,7 +420,7 @@ ldap_conv_info_t *ldap_info;
#.FN_BODY BindResponse/_untag/resultCode VAL_PTR = &result
- const gchar *valstr;
+ const char *valstr;
%(DEFAULT_BODY)s
@@ -434,7 +434,7 @@ ldap_conv_info_t *ldap_info;
proto_item_append_text(ldm_tree, " %%s", valstr);
#.FN_BODY ExtendedResponse/_untag/resultCode
- guint32 resultCode;
+ uint32_t 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,
@@ -444,28 +444,28 @@ ldap_conv_info_t *ldap_info;
hf_index == hf_ldap_extendedResponse_resultCode && resultCode == 0) {
/* The conversation will continue using SSL */
ssl_starttls_ack(find_dissector("tls"), actx->pinfo, ldap_handle);
- ldap_info->start_tls_pending = FALSE;
+ ldap_info->start_tls_pending = false;
}
#.FN_BODY AttributeValue
tvbuff_t *next_tvb = NULL;
- gchar *string;
+ char *string;
int old_offset = offset;
- gint *hf_id;
+ int *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);
+ 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_new(ldap_name_dissector_table, attr_type, next_tvb, actx->pinfo, tree, FALSE, NULL)) {
+ else if(!attr_type || !next_tvb || !dissector_try_string_new(ldap_name_dissector_table, attr_type, next_tvb, actx->pinfo, tree, false, NULL)) {
offset = old_offset;
/* do the default thing */
@@ -478,15 +478,15 @@ ldap_conv_info_t *ldap_info;
}
#.FN_BODY AuthenticationChoice VAL_PTR = &branch
- gint branch = -1;
- gint auth = -1;
- const gchar *valstr;
+ int branch = -1;
+ int auth = -1;
+ const char *valstr;
%(DEFAULT_BODY)s
ldap_do_protocolop(actx->pinfo);
- if((branch > -1) && (branch < (gint)(sizeof AuthenticationChoice_choice/sizeof AuthenticationChoice_choice[0])))
+ if((branch > -1) && (branch < (int)array_length(AuthenticationChoice_choice)))
auth = AuthenticationChoice_choice[branch].value;
valstr = val_to_str(auth, ldap_AuthenticationChoice_vals, "Unknown auth(%%u)");
@@ -501,7 +501,7 @@ ldap_conv_info_t *ldap_info;
#.FN_BODY UnbindRequest
- implicit_tag = TRUE; /* correct problem with asn2wrs */
+ implicit_tag = true; /* correct problem with asn2wrs */
%(DEFAULT_BODY)s
@@ -613,7 +613,7 @@ ldap_conv_info_t *ldap_info;
attr_type=NULL;
matching_rule_string=NULL;
ldapvalue_string=NULL;
- matching_rule_dnattr=FALSE;
+ matching_rule_dnattr=false;
#.FN_FTR Filter/extensibleMatch
Filter_string=wmem_strdup_printf(actx->pinfo->pool, "(%s:%s%s%s=%s)",
@@ -697,11 +697,11 @@ ldap_conv_info_t *ldap_info;
#.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);
+ 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, (const guint8*)"NTLMSSP", 7))){
+ && (!tvb_memeql(new_tvb, 0, (const uint8_t*)"NTLMSSP", 7))){
/* make sure the protocol op comes first */
ldap_do_protocolop(actx->pinfo);
@@ -710,10 +710,10 @@ ldap_conv_info_t *ldap_info;
}
#.FN_BODY Control/controlValue
- gint8 ber_class;
+ int8_t ber_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
if((object_identifier_id != NULL) && oid_has_dissector(object_identifier_id)) {
/* remove the OCTET STRING encoding */
@@ -738,7 +738,7 @@ ldap_conv_info_t *ldap_info;
#.FN_HDR IntermediateResponse/_untag/responseValue
- const gchar *name;
+ const char *name;
#.FN_BODY IntermediateResponse/_untag/responseValue
if(ldm_tree && object_identifier_id) {
@@ -754,18 +754,18 @@ ldap_conv_info_t *ldap_info;
}
#.FN_BODY DirSyncFlags
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
- guint32 len;
- gint32 val;
+ int32_t tag;
+ uint32_t len;
+ int32_t 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);
+ int32_t remaining=tvb_reported_length_remaining(tvb, offset);
len=remaining>0 ? remaining : 0;
}
diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.c b/epan/dissectors/asn1/ldap/packet-ldap-template.c
index 4c5d7fa2..2a3dfa36 100644
--- a/epan/dissectors/asn1/ldap/packet-ldap-template.c
+++ b/epan/dissectors/asn1/ldap/packet-ldap-template.c
@@ -85,6 +85,7 @@
#include <epan/uat.h>
#include <epan/charsets.h>
#include <wsutil/str_util.h>
+#include <wsutil/array.h>
#include "packet-frame.h"
#include "packet-tcp.h"
#include "packet-windows-common.h"
@@ -109,114 +110,114 @@ 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_z = -1;
-static int hf_mscldap_nb_domain = -1;
-static int hf_mscldap_nb_hostname_z = -1;
-static int hf_mscldap_nb_hostname = -1;
-static int hf_mscldap_username_z = -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;
+static int ldap_tap;
+static int proto_ldap;
+static int proto_cldap;
+
+static int hf_ldap_sasl_buffer_length;
+static int hf_ldap_response_in;
+static int hf_ldap_response_to;
+static int hf_ldap_time;
+static int hf_ldap_guid;
+
+static int hf_mscldap_ntver_flags;
+static int hf_mscldap_ntver_flags_v1;
+static int hf_mscldap_ntver_flags_v5;
+static int hf_mscldap_ntver_flags_v5ex;
+static int hf_mscldap_ntver_flags_v5ep;
+static int hf_mscldap_ntver_flags_vcs;
+static int hf_mscldap_ntver_flags_vnt4;
+static int hf_mscldap_ntver_flags_vpdc;
+static int hf_mscldap_ntver_flags_vip;
+static int hf_mscldap_ntver_flags_vl;
+static int hf_mscldap_ntver_flags_vgc;
+
+static int hf_mscldap_netlogon_ipaddress_family;
+static int hf_mscldap_netlogon_ipaddress_port;
+static int hf_mscldap_netlogon_ipaddress;
+static int hf_mscldap_netlogon_ipaddress_ipv4;
+static int hf_mscldap_netlogon_opcode;
+static int hf_mscldap_netlogon_flags;
+static int hf_mscldap_netlogon_flags_pdc;
+static int hf_mscldap_netlogon_flags_gc;
+static int hf_mscldap_netlogon_flags_ldap;
+static int hf_mscldap_netlogon_flags_ds;
+static int hf_mscldap_netlogon_flags_kdc;
+static int hf_mscldap_netlogon_flags_timeserv;
+static int hf_mscldap_netlogon_flags_closest;
+static int hf_mscldap_netlogon_flags_writable;
+static int hf_mscldap_netlogon_flags_good_timeserv;
+static int hf_mscldap_netlogon_flags_ndnc;
+static int hf_mscldap_netlogon_flags_fnc;
+static int hf_mscldap_netlogon_flags_dnc;
+static int hf_mscldap_netlogon_flags_dns;
+static int hf_mscldap_netlogon_flags_wdc;
+static int hf_mscldap_netlogon_flags_rodc;
+static int hf_mscldap_domain_guid;
+static int hf_mscldap_forest;
+static int hf_mscldap_domain;
+static int hf_mscldap_hostname;
+static int hf_mscldap_nb_domain_z;
+static int hf_mscldap_nb_domain;
+static int hf_mscldap_nb_hostname_z;
+static int hf_mscldap_nb_hostname;
+static int hf_mscldap_username_z;
+static int hf_mscldap_username;
+static int hf_mscldap_sitename;
+static int hf_mscldap_clientsitename;
+static int hf_mscldap_netlogon_lm_token;
+static int hf_mscldap_netlogon_nt_token;
+static int hf_ldap_sid;
+static int hf_ldap_AccessMask_ADS_CREATE_CHILD;
+static int hf_ldap_AccessMask_ADS_DELETE_CHILD;
+static int hf_ldap_AccessMask_ADS_LIST;
+static int hf_ldap_AccessMask_ADS_SELF_WRITE;
+static int hf_ldap_AccessMask_ADS_READ_PROP;
+static int hf_ldap_AccessMask_ADS_WRITE_PROP;
+static int hf_ldap_AccessMask_ADS_DELETE_TREE;
+static int hf_ldap_AccessMask_ADS_LIST_OBJECT;
+static int hf_ldap_AccessMask_ADS_CONTROL_ACCESS;
+static int hf_ldap_LDAPMessage_PDU;
+static int hf_ldap_object_security_flag;
+static int hf_ldap_ancestor_first_flag;
+static int hf_ldap_public_data_only_flag;
+static int hf_ldap_incremental_value_flag;
+static int hf_ldap_oid;
+static int hf_ldap_gssapi_encrypted_payload;
#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;
+static int ett_ldap;
+static int ett_ldap_msg;
+static int ett_ldap_sasl_blob;
+static int ett_ldap_payload;
+static int ett_mscldap_netlogon_flags;
+static int ett_mscldap_ntver_flags;
+static int ett_mscldap_ipdetails;
+static int ett_ldap_DirSyncFlagsSubEntry;
#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 expert_field ei_ldap_exceeded_filter_length;
+static expert_field ei_ldap_too_many_filter_elements;
-static dissector_table_t ldap_name_dissector_table=NULL;
-static const char *object_identifier_id = NULL; /* LDAP OID */
+static dissector_table_t ldap_name_dissector_table;
+static const char *object_identifier_id; /* 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;
+static bool do_protocolop;
+static char *attr_type;
+static bool is_binary_attr_type;
+static bool ldap_found_in_frame;
#define TCP_PORT_RANGE_LDAP "389,3268" /* 3268 is Windows 2000 Global Catalog */
#define TCP_PORT_LDAPS 636
#define UDP_PORT_CLDAP 389
/* desegmentation of LDAP */
-static gboolean ldap_desegment = TRUE;
-static guint global_ldaps_tcp_port = TCP_PORT_LDAPS;
-static guint ssl_port = 0;
+static bool ldap_desegment = true;
+static unsigned global_ldaps_tcp_port = TCP_PORT_LDAPS;
+static unsigned ssl_port;
static dissector_handle_t gssapi_handle;
static dissector_handle_t gssapi_wrap_handle;
@@ -299,7 +300,7 @@ static void
ldapstat_init(struct register_srt* srt _U_, GArray* srt_array)
{
srt_stat_table *ldap_srt_table;
- guint32 i;
+ uint32_t i;
ldap_srt_table = init_srt_table("LDAP Commands", NULL, srt_array, LDAP_NUM_PROCEDURES, NULL, "ldap.protocolOp", NULL);
for (i = 0; i < LDAP_NUM_PROCEDURES; i++)
@@ -311,7 +312,7 @@ ldapstat_init(struct register_srt* srt _U_, GArray* srt_array)
static tap_packet_status
ldapstat_packet(void *pldap, packet_info *pinfo, epan_dissect_t *edt _U_, const void *psi, tap_flags_t flags _U_)
{
- guint i = 0;
+ unsigned 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;
@@ -320,7 +321,7 @@ ldapstat_packet(void *pldap, packet_info *pinfo, epan_dissect_t *edt _U_, const
if(ldap->is_request){
return TAP_PACKET_DONT_REDRAW;
}
- /* if we havnt seen the request, just ignore it */
+ /* if we haven't seen the request, just ignore it */
if(!ldap->req_frame){
return TAP_PACKET_DONT_REDRAW;
}
@@ -351,27 +352,27 @@ ldapstat_packet(void *pldap, packet_info *pinfo, epan_dissect_t *edt _U_, const
* information from a bind request.
*/
typedef struct ldap_conv_info_t {
- guint auth_type; /* authentication type */
+ unsigned auth_type; /* authentication type */
char *auth_mech; /* authentication mechanism */
- guint32 first_auth_frame; /* first frame that would use a security layer */
+ uint32_t first_auth_frame; /* first frame that would use a security layer */
wmem_map_t *unmatched;
wmem_map_t *matched;
- gboolean is_mscldap;
- guint32 num_results;
- gboolean start_tls_pending;
- guint32 start_tls_frame;
+ bool is_mscldap;
+ uint32_t num_results;
+ bool start_tls_pending;
+ uint32_t start_tls_frame;
} ldap_conv_info_t;
-static guint
-ldap_info_hash_matched(gconstpointer k)
+static unsigned
+ldap_info_hash_matched(const void *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)
+static int
+ldap_info_equal_matched(const void *k1, const void *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;
@@ -388,16 +389,16 @@ ldap_info_equal_matched(gconstpointer k1, gconstpointer k2)
return key1->messageId==key2->messageId;
}
-static guint
-ldap_info_hash_unmatched(gconstpointer k)
+static unsigned
+ldap_info_hash_unmatched(const void *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)
+static int
+ldap_info_equal_unmatched(const void *k1, const void *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;
@@ -453,16 +454,16 @@ static const true_false_string tfs_ntver_vl = {
/* Stuff for generation/handling of fields for custom AttributeValues */
typedef struct _attribute_type_t {
- gchar* attribute_type;
- gchar* attribute_desc;
+ char* attribute_type;
+ char* attribute_desc;
} attribute_type_t;
static attribute_type_t* attribute_types;
-static guint num_attribute_types;
+static unsigned num_attribute_types;
static GHashTable* attribute_types_hash;
static hf_register_info* dynamic_hf;
-static guint dynamic_hf_size;
+static unsigned dynamic_hf_size;
static bool
attribute_types_update_cb(void *r, char **err)
@@ -472,13 +473,13 @@ attribute_types_update_cb(void *r, char **err)
if (rec->attribute_type == NULL) {
*err = g_strdup("Attribute type can't be empty");
- return FALSE;
+ return false;
}
g_strstrip(rec->attribute_type);
if (rec->attribute_type[0] == 0) {
*err = g_strdup("Attribute type can't be empty");
- return FALSE;
+ return false;
}
/* Check for invalid characters (to avoid asserting out when
@@ -487,11 +488,11 @@ attribute_types_update_cb(void *r, char **err)
c = proto_check_field_name(rec->attribute_type);
if (c) {
*err = ws_strdup_printf("Attribute type can't contain '%c'", c);
- return FALSE;
+ return false;
}
*err = NULL;
- return TRUE;
+ return true;
}
static void *
@@ -521,13 +522,13 @@ UAT_CSTRING_CB_DEF(attribute_types, attribute_desc, attribute_type_t)
/*
*
*/
-static gint*
+static int*
get_hf_for_header(char* attribute_type)
{
- gint* hf_id = NULL;
+ int* hf_id = NULL;
if (attribute_types_hash) {
- hf_id = (gint*) g_hash_table_lookup(attribute_types_hash, attribute_type);
+ hf_id = (int*) g_hash_table_lookup(attribute_types_hash, attribute_type);
} else {
hf_id = NULL;
}
@@ -543,7 +544,7 @@ deregister_attribute_types(void)
{
if (dynamic_hf) {
/* Deregister all fields */
- for (guint i = 0; i < dynamic_hf_size; i++) {
+ for (unsigned i = 0; i < dynamic_hf_size; i++) {
proto_deregister_field (proto_ldap, *(dynamic_hf[i].p_id));
g_free (dynamic_hf[i].p_id);
}
@@ -562,8 +563,8 @@ deregister_attribute_types(void)
static void
attribute_types_post_update_cb(void)
{
- gint* hf_id;
- gchar* attribute_type;
+ int* hf_id;
+ char* attribute_type;
deregister_attribute_types();
@@ -572,8 +573,8 @@ attribute_types_post_update_cb(void)
dynamic_hf = g_new0(hf_register_info,num_attribute_types);
dynamic_hf_size = num_attribute_types;
- for (guint i = 0; i < dynamic_hf_size; i++) {
- hf_id = g_new(gint,1);
+ for (unsigned i = 0; i < dynamic_hf_size; i++) {
+ hf_id = g_new(int,1);
*hf_id = -1;
attribute_type = g_strdup(attribute_types[i].attribute_type);
@@ -625,10 +626,10 @@ static int dissect_mscldap_ntver_flags(proto_tree *parent_tree, tvbuff_t *tvb, i
}
/* This string contains the last LDAPString that was decoded */
-static const char *attributedesc_string=NULL;
+static const char *attributedesc_string;
/* This string contains the last AssertionValue that was decoded */
-static char *ldapvalue_string=NULL;
+static char *ldapvalue_string;
/* if the octet string contain all printable ASCII characters, then
* display it as a string, othervise just display it in hex.
@@ -636,10 +637,10 @@ static char *ldapvalue_string=NULL;
static int
dissect_ldap_AssertionValue(bool implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index)
{
- gint8 ber_class;
+ int8_t ber_class;
bool pc, ind, is_ascii;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
if(!implicit_tag){
offset=get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
@@ -673,7 +674,7 @@ dissect_ldap_AssertionValue(bool implicit_tag, tvbuff_t *tvb, int offset, asn1_c
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 */
+ uint8_t drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
e_guid_t uuid;
/* This octet string contained a GUID */
@@ -687,7 +688,7 @@ dissect_ldap_AssertionValue(bool implicit_tag, tvbuff_t *tvb, int offset, asn1_c
goto finished;
} else if (attributedesc_string && !strncmp("NtVer", attributedesc_string, 5)){
- guint32 flags;
+ uint32_t flags;
len = 0;
/* get flag value to populate ldapvalue_string */
@@ -734,48 +735,48 @@ finished:
}
/* 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;
+static const char *Filter_string;
+static const char *and_filter_string;
+static const char *or_filter_string;
+static const char *substring_value;
+static const char *substring_item_init;
+static const char *substring_item_any;
+static const char *substring_item_final;
+static const char *matching_rule_string;
+static bool matching_rule_dnattr=false;
#define MAX_FILTER_LEN 4096
-static gint Filter_length;
+static int Filter_length;
#define MAX_FILTER_ELEMENTS 200
-static gint Filter_elements;
+static int 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 int MessageID =-1;
+static int ProtocolOp = -1;
+static int result;
+static proto_item *ldm_tree; /* item to add text to */
static void ldap_do_protocolop(packet_info *pinfo)
{
- const gchar* valstr;
+ const char* valstr;
if (do_protocolop) {
- valstr = val_to_str(ProtocolOp, ldap_ProtocolOp_choice_vals, "Unknown (%%u)");
+ 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;
+ 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_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, unsigned messageId, unsigned protocolOpTag, ldap_conv_info_t *ldap_info)
{
ldap_call_response_t lcr, *lcrp=NULL;
@@ -791,7 +792,7 @@ ldap_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
case LDAP_REQ_MODRDN:
case LDAP_REQ_COMPARE:
case LDAP_REQ_EXTENDED:
- lcr.is_request=TRUE;
+ lcr.is_request=true;
lcr.req_frame=pinfo->num;
lcr.rep_frame=0;
break;
@@ -806,7 +807,7 @@ ldap_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
case LDAP_RES_COMPARE:
case LDAP_RES_EXTENDED:
case LDAP_RES_INTERMEDIATE:
- lcr.is_request=FALSE;
+ lcr.is_request=false;
lcr.req_frame=0;
lcr.rep_frame=pinfo->num;
break;
@@ -852,10 +853,9 @@ ldap_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lcrp->req_time=pinfo->abs_ts;
lcrp->rep_frame=0;
lcrp->protocolOpTag=protocolOpTag;
- lcrp->is_request=TRUE;
+ lcrp->is_request=true;
wmem_map_insert(ldap_info->unmatched, lcrp, lcrp);
return NULL;
- break;
case LDAP_RES_BIND:
case LDAP_RES_SEARCH_ENTRY:
case LDAP_RES_SEARCH_REF:
@@ -878,7 +878,7 @@ ldap_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
if(!lcrp->rep_frame){
wmem_map_remove(ldap_info->unmatched, lcrp);
lcrp->rep_frame=pinfo->num;
- lcrp->is_request=FALSE;
+ lcrp->is_request=false;
wmem_map_insert(ldap_info->matched, lcrp, lcrp);
}
}
@@ -913,28 +913,28 @@ static int dissect_LDAPMessage_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
+ 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)
+ bool is_mscldap)
{
int offset = 0;
- guint length_remaining;
- guint msg_len = 0;
+ unsigned length_remaining;
+ unsigned msg_len = 0;
int messageOffset = 0;
- guint headerLength = 0;
- guint length = 0;
+ unsigned headerLength = 0;
+ unsigned length = 0;
tvbuff_t *msg_tvb = NULL;
- gint8 ber_class;
+ int8_t ber_class;
bool pc, ind = 0;
- gint32 ber_tag;
+ int32_t ber_tag;
attributedesc_string=NULL;
@@ -1023,7 +1023,7 @@ one_more_pdu:
static void
ldap_frame_end(void)
{
- ldap_found_in_frame = FALSE;
+ ldap_found_in_frame = false;
attr_type = NULL;
ldapvalue_string = NULL;
/* ? */
@@ -1042,7 +1042,7 @@ ldap_frame_end(void)
Filter_elements = 0;
Filter_length = 0;
- do_protocolop = FALSE;
+ do_protocolop = false;
result = 0;
/* seems to be ok, but reset just in case */
@@ -1050,19 +1050,19 @@ ldap_frame_end(void)
}
static void
- dissect_ldap_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean is_mscldap)
+ dissect_ldap_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, bool is_mscldap)
{
int offset = 0;
conversation_t *conversation;
- gboolean doing_sasl_security = FALSE;
- guint length_remaining;
+ bool doing_sasl_security = false;
+ unsigned length_remaining;
ldap_conv_info_t *ldap_info = NULL;
proto_item *ldap_item = NULL;
proto_tree *ldap_tree = NULL;
- guint32 sasl_length = 0;
- guint32 remaining_length = 0;
- guint8 sasl_start[2] = { 0, };
- gboolean detected_sasl_security = FALSE;
+ uint32_t sasl_length = 0;
+ uint32_t remaining_length = 0;
+ uint8_t sasl_start[2] = { 0, };
+ bool detected_sasl_security = false;
ldm_tree = NULL;
@@ -1090,7 +1090,7 @@ static void
*/
if (ldap_info->first_auth_frame != 0 &&
pinfo->num >= ldap_info->first_auth_frame) {
- doing_sasl_security = TRUE; /* yes */
+ doing_sasl_security = true; /* yes */
}
}
@@ -1104,27 +1104,27 @@ static void
if(!doing_sasl_security && tvb_bytes_exist(tvb, offset, 6)) {
sasl_length = tvb_get_ntohl(tvb, offset);
remaining_length = tvb_reported_length_remaining(tvb, offset);
- sasl_start[0] = tvb_get_guint8(tvb, offset+4);
- sasl_start[1] = tvb_get_guint8(tvb, offset+5);
+ sasl_start[0] = tvb_get_uint8(tvb, offset+4);
+ sasl_start[1] = tvb_get_uint8(tvb, offset+5);
}
if ((sasl_length + 4) <= remaining_length) {
if (sasl_start[0] == 0x05 && sasl_start[1] == 0x04) {
/*
* Likely modern kerberos signing
*/
- detected_sasl_security = TRUE;
+ detected_sasl_security = true;
} else if (sasl_start[0] == 0x60) {
/*
* Likely ASN.1 based kerberos
*/
- detected_sasl_security = TRUE;
+ detected_sasl_security = true;
}
}
if (detected_sasl_security) {
ldap_info->auth_type=LDAP_AUTH_SASL;
ldap_info->first_auth_frame=pinfo->num;
- ldap_info->auth_mech=wmem_strdup(wmem_file_scope(), "UNKNOWN");
- doing_sasl_security=TRUE;
+ ldap_info->auth_mech=wmem_strdup(wmem_file_scope(), "GSS-SPNEGO");
+ doing_sasl_security=true;
}
/*
@@ -1140,7 +1140,7 @@ static void
} else {
col_clear(pinfo->cinfo, COL_INFO);
register_frame_end_routine (pinfo, ldap_frame_end);
- ldap_found_in_frame = TRUE;
+ ldap_found_in_frame = true;
}
ldap_item = proto_tree_add_item(tree, is_mscldap?proto_cldap:proto_ldap, tvb, 0, -1, ENC_NA);
@@ -1163,10 +1163,10 @@ static void
* huge lengths).
*/
- if (doing_sasl_security && tvb_get_guint8(tvb, offset) == 0) {
+ if (doing_sasl_security && tvb_get_uint8(tvb, offset) == 0) {
proto_tree *sasl_tree;
tvbuff_t *sasl_tvb;
- guint sasl_len, sasl_msg_len, length;
+ unsigned 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
@@ -1232,7 +1232,7 @@ static void
* 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)
+ if ((unsigned)tmp_length > sasl_len)
tmp_length = sasl_len;
gssapi_tvb = tvb_new_subset_length_caplen(sasl_tvb, 4, tmp_length, sasl_len);
@@ -1247,41 +1247,46 @@ static void
if(ver_len==0){
return;
}
- if (gssapi_encrypt.gssapi_decrypted_tvb) {
- tvbuff_t *decr_tvb = gssapi_encrypt.gssapi_decrypted_tvb;
- proto_tree *enc_tree = NULL;
+ if (gssapi_encrypt.gssapi_data_encrypted) {
+ if (gssapi_encrypt.gssapi_decrypted_tvb) {
+ tvbuff_t *decr_tvb = gssapi_encrypt.gssapi_decrypted_tvb;
+ proto_tree *enc_tree = NULL;
- /*
- * The LDAP payload (blob) was encrypted and we were able to decrypt it.
- * The data was signed via a MIC token, sealed (encrypted), and "wrapped"
- * within the mechanism's "blob." Call dissect_ldap_payload to dissect
- * one or more LDAPMessages such as searchRequest messages within this
- * payload.
- */
- col_set_str(pinfo->cinfo, COL_INFO, "SASL GSS-API Privacy (decrypted): ");
+ /*
+ * The LDAP payload (blob) was encrypted and we were able to decrypt it.
+ * The data was signed via a MIC token, sealed (encrypted), and "wrapped"
+ * within the mechanism's "blob." Call dissect_ldap_payload to dissect
+ * one or more LDAPMessages such as searchRequest messages within this
+ * payload.
+ */
+ col_set_str(pinfo->cinfo, COL_INFO, "SASL GSS-API Privacy (decrypted): ");
- if (sasl_tree) {
- guint decr_len = tvb_reported_length(decr_tvb);
+ if (sasl_tree) {
+ unsigned decr_len = tvb_reported_length(decr_tvb);
- 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"));
- }
+ 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 (gssapi_encrypt.gssapi_data_encrypted) {
- /*
- * The LDAP message was encrypted but couldn't be decrypted so just display the
- * encrypted data all of which is found in Packet Bytes.
- */
- 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"));
+ dissect_ldap_payload(decr_tvb, pinfo, enc_tree, ldap_info, is_mscldap);
+ } else {
+ /*
+ * The LDAP message was encrypted but couldn't be decrypted so just display the
+ * encrypted data all of which is found in Packet Bytes.
+ */
+ 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 {
- tvbuff_t *plain_tvb = tvb_new_subset_remaining(gssapi_tvb, ver_len);
+ proto_tree_add_item(sasl_tree, hf_ldap_gssapi_encrypted_payload, gssapi_tvb, ver_len, -1, ENC_NA);
+ }
+ } else {
+ tvbuff_t *plain_tvb;
+ if (gssapi_encrypt.gssapi_decrypted_tvb) {
+ plain_tvb = gssapi_encrypt.gssapi_decrypted_tvb;
+ } else {
+ plain_tvb = tvb_new_subset_remaining(gssapi_tvb, ver_len);
+ }
proto_tree *plain_tree = NULL;
/*
@@ -1293,7 +1298,7 @@ static void
col_set_str(pinfo->cinfo, COL_INFO, "SASL GSS-API Integrity: ");
if (sasl_tree) {
- guint plain_len = tvb_reported_length(plain_tvb);
+ unsigned plain_len = tvb_reported_length(plain_tvb);
plain_tree = proto_tree_add_subtree_format(sasl_tree, plain_tvb, 0, -1,
ett_ldap_payload, NULL, "GSS-API payload (%d byte%s)",
@@ -1314,15 +1319,15 @@ static void
}
}
-int dissect_mscldap_string(tvbuff_t *tvb, int offset, int max_len, char **str)
+int dissect_mscldap_string(wmem_allocator_t *scope, tvbuff_t *tvb, int offset, int max_len, char **str)
{
int compr_len;
- const gchar *name;
- guint name_len;
+ const char *name;
+ unsigned name_len;
/* The name data MUST start at offset 0 of the tvb */
compr_len = get_dns_name(tvb, offset, max_len, 0, &name, &name_len);
- *str = get_utf_8_string(wmem_packet_scope(), name, name_len);
+ *str = get_utf_8_string(scope, name, name_len);
return offset + compr_len;
}
@@ -1418,13 +1423,13 @@ static int dissect_mscldap_netlogon_flags(proto_tree *parent_tree, tvbuff_t *tvb
return offset;
}
-static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int old_offset, offset=0;
char *str;
- guint16 itype;
- guint16 len;
- guint32 version;
+ uint16_t itype;
+ uint16_t len;
+ uint32_t version;
int fn_len;
proto_item *item;
@@ -1485,17 +1490,17 @@ static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
/* Forest */
old_offset=offset;
- offset=dissect_mscldap_string(tvb, offset, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
proto_tree_add_string(tree, hf_mscldap_hostname, tvb, old_offset, offset-old_offset, str);
/* DC IP Address */
@@ -1521,42 +1526,42 @@ static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
/* Forest */
old_offset=offset;
- offset=dissect_mscldap_string(tvb, offset, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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, 255, &str);
+ offset=dissect_mscldap_string(pinfo->pool, tvb, offset, 255, &str);
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
@@ -1571,7 +1576,7 @@ static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
* 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
+ * The dissector assumes the length is based on ipv4 and
* ignores the length
*/
@@ -1579,7 +1584,7 @@ static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
offset +=1;
- /* add IP address and desect the sockaddr_in structure */
+ /* add IP address and dissect the sockaddr_in structure */
old_offset = offset + 4;
item = proto_tree_add_item(tree, hf_mscldap_netlogon_ipaddress, tvb, old_offset, 4, ENC_BIG_ENDIAN);
@@ -1611,7 +1616,7 @@ static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
offset = len - 8;
- /* NETLOGON_NT_VERISON Options (MS-ADTS 6.3.1.1) */
+ /* NETLOGON_NT_VERSION Options (MS-ADTS 6.3.1.1) */
offset = dissect_mscldap_ntver_flags(tree, tvb, offset);
/* LM Token */
@@ -1625,7 +1630,7 @@ static int dissect_NetLogon_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
}
-static guint
+static unsigned
get_sasl_ldap_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
{
@@ -1636,15 +1641,15 @@ get_sasl_ldap_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
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);
+ dissect_ldap_pdu(tvb, pinfo, tree, false);
return tvb_captured_length(tvb);
}
-static guint
+static unsigned
get_normal_ldap_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
{
- guint32 len;
+ uint32_t len;
bool ind;
int data_offset;
@@ -1659,7 +1664,7 @@ get_normal_ldap_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
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);
+ dissect_ldap_pdu(tvb, pinfo, tree, false);
return tvb_captured_length(tvb);
}
@@ -1700,7 +1705,7 @@ dissect_ldap_oid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void*
#define LDAP_ACCESSMASK_ADS_CONTROL_ACCESS 0x00000100
static void
-ldap_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32 access)
+ldap_specific_rights(tvbuff_t *tvb, int offset, proto_tree *tree, uint32_t access)
{
static int * const access_flags[] = {
&hf_ldap_AccessMask_ADS_CONTROL_ACCESS,
@@ -1717,7 +1722,8 @@ ldap_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32 acces
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info ldap_access_mask_info = {
+
+static struct access_mask_info ldap_access_mask_info = {
"LDAP", /* Name of specific rights */
ldap_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -1727,7 +1733,7 @@ struct access_mask_info ldap_access_mask_info = {
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);
+ dissect_nt_sec_desc(tvb, 0, pinfo, tree, NULL, true, tvb_reported_length(tvb), &ldap_access_mask_info);
return tvb_captured_length(tvb);
}
@@ -1745,7 +1751,7 @@ dissect_ldap_sid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void*
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 */
+ uint8_t drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
e_guid_t uuid;
/* This octet string contained a GUID */
@@ -1762,8 +1768,8 @@ dissect_ldap_guid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat
static int
dissect_ldap_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
{
- guint32 sasl_len;
- guint32 ldap_len;
+ uint32_t sasl_len;
+ uint32_t ldap_len;
bool ind;
conversation_t *conversation;
ldap_conv_info_t *ldap_info = NULL;
@@ -1819,7 +1825,7 @@ this_was_not_sasl:
* <64k
* (no ldap PDUs are ever >64kb? )
*/
- if(tvb_get_guint8(tvb, 0)!=0x30){
+ if(tvb_get_uint8(tvb, 0)!=0x30){
goto this_was_not_normal_ldap;
}
@@ -1870,7 +1876,7 @@ this_was_not_normal_ldap:
* 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))
+ if ((sasl_len + 4) == (uint32_t)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);
@@ -1879,7 +1885,7 @@ this_was_not_normal_ldap:
static int
dissect_mscldap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- dissect_ldap_pdu(tvb, pinfo, tree, TRUE);
+ dissect_ldap_pdu(tvb, pinfo, tree, true);
return tvb_captured_length(tvb);
}
@@ -2177,7 +2183,7 @@ void proto_register_ldap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ldap,
&ett_ldap_payload,
&ett_ldap_sasl_blob,
@@ -2230,7 +2236,7 @@ void proto_register_ldap(void) {
attributes_uat = uat_new("Custom LDAP AttributeValue types",
sizeof(attribute_type_t),
"custom_ldap_attribute_types",
- TRUE,
+ true,
&attribute_types,
&num_attribute_types,
/* specifies named fields, so affects dissection
@@ -2256,7 +2262,7 @@ void proto_register_ldap(void) {
ldap_tap=register_tap("ldap");
- ldap_name_dissector_table = register_dissector_table("ldap.name", "LDAP Attribute Type Dissectors", proto_cldap, FT_STRING, STRING_CASE_SENSITIVE);
+ ldap_name_dissector_table = register_dissector_table("ldap.name", "LDAP Attribute Type Dissectors", proto_cldap, FT_STRING, STRING_CASE_INSENSITIVE);
register_srt_table(proto_ldap, NULL, 1, ldapstat_packet, ldapstat_init, NULL);
}
diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.h b/epan/dissectors/asn1/ldap/packet-ldap-template.h
index 0116c0cb..d6887103 100644
--- a/epan/dissectors/asn1/ldap/packet-ldap-template.h
+++ b/epan/dissectors/asn1/ldap/packet-ldap-template.h
@@ -80,16 +80,16 @@
#define LOGON_SAM_LOGON_RESPONSE_EX 23
typedef struct ldap_call_response {
- gboolean is_request;
- guint32 req_frame;
+ bool is_request;
+ uint32_t req_frame;
nstime_t req_time;
- guint32 rep_frame;
- guint messageId;
- guint protocolOpTag;
+ uint32_t rep_frame;
+ unsigned messageId;
+ unsigned protocolOpTag;
} ldap_call_response_t;
WS_DLL_PUBLIC
-int dissect_mscldap_string(tvbuff_t *tvb, int offset, int max_len, char **str);
+int dissect_mscldap_string(wmem_allocator_t *scope, tvbuff_t *tvb, int offset, int max_len, char **str);
WS_DLL_PUBLIC const value_string ldap_procedure_names[];
diff --git a/epan/dissectors/asn1/lix2/lix2.asn b/epan/dissectors/asn1/lix2/lix2.asn
index 0b83231f..e18927df 100644
--- a/epan/dissectors/asn1/lix2/lix2.asn
+++ b/epan/dissectors/asn1/lix2/lix2.asn
@@ -1,7 +1,7 @@
--- This ASN.1 module was taken from 3GPP TS 33.128 V17.1.0 (2021-06) and modified to pass through asn2wrs
+-- This ASN.1 module was taken from 3GPP TS 33.128 V18.8.0 (2024-06) and modified to pass through asn2wrs
TS33128Payloads
-{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19) r17(17) version0(0)}
+{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) threeGPP(4) ts33128(19) r18(18) version8(8)}
DEFINITIONS IMPLICIT TAGS ::=
@@ -11,7 +11,7 @@ BEGIN
-- Relative OIDs
-- =============
---tS33128PayloadsOID RELATIVE-OID ::= {threeGPP(4) ts33128(19) r17(17) version0(0)}
+--tS33128PayloadsOID RELATIVE-OID ::= {threeGPP(4) ts33128(19) r18(18) version8(8)}
--xIRIPayloadOID RELATIVE-OID ::= {tS33128PayloadsOID xIRI(1)}
--xCCPayloadOID RELATIVE-OID ::= {tS33128PayloadsOID xCC(2)}
@@ -31,36 +31,36 @@ XIRIPayload ::= SEQUENCE
XIRIEvent ::= CHOICE
{
- -- Access and mobility related events, see clause 6.2.2
+ -- AMF events, see clause 6.2.2.2
registration [1] AMFRegistration,
deregistration [2] AMFDeregistration,
locationUpdate [3] AMFLocationUpdate,
startOfInterceptionWithRegisteredUE [4] AMFStartOfInterceptionWithRegisteredUE,
unsuccessfulAMProcedure [5] AMFUnsuccessfulProcedure,
- -- PDU session-related events, see clause 6.2.3
+ -- SMF events, see clause 6.2.3.2
pDUSessionEstablishment [6] SMFPDUSessionEstablishment,
pDUSessionModification [7] SMFPDUSessionModification,
pDUSessionRelease [8] SMFPDUSessionRelease,
startOfInterceptionWithEstablishedPDUSession [9] SMFStartOfInterceptionWithEstablishedPDUSession,
unsuccessfulSMProcedure [10] SMFUnsuccessfulProcedure,
- -- Subscriber-management related events, see clause 7.2.2
+ -- UDM events, see clause 7.2.2.3
servingSystemMessage [11] UDMServingSystemMessage,
- -- SMS-related events, see clause 6.2.5, see also sMSReport ([56] below)
+ -- SMS events, see clause 6.2.5.2
sMSMessage [12] SMSMessage,
- -- LALS-related events, see clause 7.3.3
+ -- LALS events, see clause 7.3.1.4
lALSReport [13] LALSReport,
- -- PDHR/PDSR-related events, see clause 6.2.3.4.1
+ -- PDHR/PDSR events, see clauses 6.2.3.5 and 6.2.3.9
pDHeaderReport [14] PDHeaderReport,
pDSummaryReport [15] PDSummaryReport,
- -- tag 16 is reserved because there is no equivalent mDFCellSiteReport in XIRIEvent
+ -- Tag 16 is reserved because there is no equivalent mDFCellSiteReport in XIRIEvent.
- -- MMS-related events, see clause 7.4.2
+ -- MMS events, see clause 7.4.3
mMSSend [17] MMSSend,
mMSSendByNonLocalTarget [18] MMSSendByNonLocalTarget,
mMSNotification [19] MMSNotification,
@@ -81,7 +81,7 @@ XIRIEvent ::= CHOICE
mMSMBoxViewRequest [34] MMSMBoxViewRequest,
mMSMBoxViewResponse [35] MMSMBoxViewResponse,
- -- PTC-related events, see clause 7.5.2
+ -- PTC events, see clause 7.5.2
pTCRegistration [36] PTCRegistration,
pTCSessionInitiation [37] PTCSessionInitiation,
pTCSessionAbandon [38] PTCSessionAbandon,
@@ -101,14 +101,14 @@ XIRIEvent ::= CHOICE
pTCListManagement [52] PTCListManagement,
pTCAccessPolicy [53] PTCAccessPolicy,
- -- More Subscriber-management related events, see clause 7.2.2
+ -- UDM events, see clause 7.2.2.3, continued from tag 11
subscriberRecordChangeMessage [54] UDMSubscriberRecordChangeMessage,
cancelLocationMessage [55] UDMCancelLocationMessage,
- -- SMS-related events continued from choice 12
+ -- SMS events, see clause 6.2.5.2, continued from tag 12
sMSReport [56] SMSReport,
- -- MA PDU session-related events, see clause 6.2.3.2.7
+ -- SMF MA PDU session events, see clause 6.2.3.2.7
sMFMAPDUSessionEstablishment [57] SMFMAPDUSessionEstablishment,
sMFMAPDUSessionModification [58] SMFMAPDUSessionModification,
sMFMAPDUSessionRelease [59] SMFMAPDUSessionRelease,
@@ -116,13 +116,13 @@ XIRIEvent ::= CHOICE
unsuccessfulMASMProcedure [61] SMFMAUnsuccessfulProcedure,
-- Identifier Association events, see clauses 6.2.2.2.7 and 6.3.2.2.2
- aMFIdentifierAssocation [62] AMFIdentifierAssocation,
- mMEIdentifierAssocation [63] MMEIdentifierAssocation,
+ aMFIdentifierAssociation [62] AMFIdentifierAssociation,
+ mMEIdentifierAssociation [63] MMEIdentifierAssociation,
- -- PDU to MA PDU session-related events, see clause 6.2.3.2.8
+ -- SMF PDU to MA PDU session events, see clause 6.2.3.2.8
sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification,
- -- NEF services related events, see clause 7.7.2
+ -- NEF events, see clause 7.7.2.1
nEFPDUSessionEstablishment [65] NEFPDUSessionEstablishment,
nEFPDUSessionModification [66] NEFPDUSessionModification,
nEFPDUSessionRelease [67] NEFPDUSessionRelease,
@@ -135,7 +135,7 @@ XIRIEvent ::= CHOICE
nEFMSISDNLessMOSMS [74] NEFMSISDNLessMOSMS,
nEFExpectedUEBehaviourUpdate [75] NEFExpectedUEBehaviourUpdate,
- -- SCEF services related events, see clause 7.8.2
+ -- SCEF events, see clause 7.8.2.1
sCEFPDNConnectionEstablishment [76] SCEFPDNConnectionEstablishment,
sCEFPDNConnectionUpdate [77] SCEFPDNConnectionUpdate,
sCEFPDNConnectionRelease [78] SCEFPDNConnectionRelease,
@@ -148,14 +148,127 @@ XIRIEvent ::= CHOICE
sCEFMSISDNLessMOSMS [85] SCEFMSISDNLessMOSMS,
sCEFCommunicationPatternUpdate [86] SCEFCommunicationPatternUpdate,
- --EPS Events, see clause 6.3
-
- --MME Events, see clause 6.3.2.2
+ -- MME events, see clause 6.3.2.2
mMEAttach [87] MMEAttach,
mMEDetach [88] MMEDetach,
mMELocationUpdate [89] MMELocationUpdate,
mMEStartOfInterceptionWithEPSAttachedUE [90] MMEStartOfInterceptionWithEPSAttachedUE,
- mMEUnsuccessfulProcedure [91] MMEUnsuccessfulProcedure
+ mMEUnsuccessfulProcedure [91] MMEUnsuccessfulProcedure,
+
+ -- AKMA key management events, see clauses 7.9.1.3 and 7.9.1.4
+ aAnFAnchorKeyRegister [92] AAnFAnchorKeyRegister,
+ aAnFKAKMAApplicationKeyGet [93] AAnFKAKMAApplicationKeyGet,
+ aAnFStartOfInterceptWithEstablishedAKMAKeyMaterial [94] AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial,
+ aAnFAKMAContextRemovalRecord [95] AAnFAKMAContextRemovalRecord,
+ aFAKMAApplicationKeyRefresh [96] AFAKMAApplicationKeyRefresh,
+ aFStartOfInterceptWithEstablishedAKMAApplicationKey [97] AFStartOfInterceptWithEstablishedAKMAApplicationKey,
+ aFAuxiliarySecurityParameterEstablishment [98] AFAuxiliarySecurityParameterEstablishment,
+ aFApplicationKeyRemoval [99] AFApplicationKeyRemoval,
+
+ -- HR LI events, see clause 7.10.3.3
+ n9HRPDUSessionInfo [100] N9HRPDUSessionInfo,
+ s8HRBearerInfo [101] S8HRBearerInfo,
+
+ -- Separated Location Reporting, see clause 7.3.4.1
+ separatedLocationReporting [102] SeparatedLocationReporting,
+
+ -- STIR SHAKEN and RCD/eCNAM events, see clause 7.11.2
+ sTIRSHAKENSignatureGeneration [103] STIRSHAKENSignatureGeneration,
+ sTIRSHAKENSignatureValidation [104] STIRSHAKENSignatureValidation,
+
+ -- IMS events, see clause 7.12.4.2
+ iMSMessage [105] IMSMessage,
+ startOfInterceptionForActiveIMSSession [106] StartOfInterceptionForActiveIMSSession,
+ iMSCCUnavailable [107] IMSCCUnavailable,
+
+ -- UDM events, see clause 7.2.2.3, continued from tag 55
+ uDMLocationInformationResult [108] UDMLocationInformationResult,
+ uDMUEInformationResponse [109] UDMUEInformationResponse,
+ uDMUEAuthenticationResponse [110] UDMUEAuthenticationResponse,
+
+ -- AMF events, see 6.2.2.2.8, continued from tag 5
+ positioningInfoTransfer [111] AMFPositioningInfoTransfer,
+
+ -- MME events, see clause 6.3.2.2.8, continued from tag 91
+ mMEPositioningInfoTransfer [112] MMEPositioningInfoTransfer,
+
+ -- AMF events, see 6.2.2.2.9, continued from tag 111
+ aMFRANHandoverCommand [113] AMFRANHandoverCommand,
+ aMFRANHandoverRequest [114] AMFRANHandoverRequest,
+
+ -- EES events, see clause 7.14.2
+ eESEECRegistration [115] EESEECRegistration,
+ eESEASDiscovery [116] EESEASDiscovery,
+ eESEASDiscoverySubscription [117] EESEASDiscoverySubscription,
+ eESEASDiscoveryNotification [118] EESEASDiscoveryNotification,
+ eESAppContextRelocation [119] EESAppContextRelocation,
+ eESACRSubscription [120] EESACRSubscription,
+ eESACRNotification [121] EESACRNotification,
+ eESEECContextRelocation [122] EESEECContextRelocation,
+ eESStartOfInterceptionWithRegisteredEEC [123] EESStartOfInterceptionWithRegisteredEEC,
+
+ -- UDM events, see clause 7.2.2.3, continued from tag 110
+ uDMStartOfInterceptionWithRegisteredTarget [124] UDMStartOfInterceptionWithRegisteredTarget,
+
+ -- 5GMS AF events, see clause 7.15.2
+ fiveGMSAFServiceAccessInformation [125] FiveGMSAFServiceAccessInformation,
+ fiveGMSAFConsumptionReporting [126] FiveGMSAFConsumptionReporting,
+ fiveGMSAFDynamicPolicyInvocation [127] FiveGMSAFDynamicPolicyInvocation,
+ fiveGMSAFMetricsReporting [128] FiveGMSAFMetricsReporting,
+ fiveGMSAFNetworkAssistance [129] FiveGMSAFNetworkAssistance,
+ fiveGMSAFUnsuccessfulProcedure [130] FiveGMSAFUnsuccessfulProcedure,
+ fiveGMSAFStartOfInterceptionWithAlreadyConfiguredUE [131] FiveGMSAFStartOfInterceptionWithAlreadyConfiguredUE,
+
+ -- AMF events, see 6.2.2.2.10, continued from tag 114
+ aMFUEConfigurationUpdate [132] AMFUEConfigurationUpdate,
+
+ -- HSS events, see clause 7.2.3.3
+ hSSServingSystemMessage [133] HSSServingSystemMessage,
+ hSSStartOfInterceptionWithRegisteredTarget [134] HSSStartOfInterceptionWithRegisteredTarget,
+
+ -- NEF events, see clause 7.7.6.1
+ nEFAFSessionWithQoSProvision [135] NEFAFSessionWithQoSProvision,
+ nEFAFSessionWithQoSNotification [136] NEFAFSessionWithQoSNotification,
+
+ -- SCEF events, see clause 7.8.6.1
+ sCEFASSessionWithQoSProvision [137] SCEFASSessionWithQoSProvision,
+ sCEFASSessionWithQoSNotification [138] SCEFASSessionWithQoSNotification,
+
+ -- AMF events, see 6.2.2.3, continued from tag 132
+ aMFRANTraceReport [139] AMFRANTraceReport,
+
+ -- RCS events, see clause 7.13.3
+ rCSRegistration [140] RCSRegistration,
+ rCSMessage [141] RCSMessage,
+ rCSCapabilityDiscovery [142] RCSCapabilityDiscovery,
+ rCSSessionEstablishment [143] RCSSessionEstablishment,
+ rCSSessionModification [144] RCSSessionModification,
+ rCSSessionRelease [145] RCSSessionRelease,
+
+ -- AMF events, see clause 6.2.2.2.12, continued from tag 139
+ aMFUEPolicyTransfer [146] AMFUEPolicyTransfer,
+ aMFUEServiceAccept [147] AMFUEServiceAccept,
+
+ -- MME events, see clause 6.3.2.2, continued from tag 112
+ ePSRANHandoverCommand [148] EPSRANHandoverCommand,
+ ePSRANHandoverRequest [149] EPSRANHandoverRequest,
+ mMERANTraceReport [150] MMERANTraceReport,
+ mMEUEServiceAccept [151] MMEUEServiceAccept,
+
+ --NWDAF events, see clause 7.16.2
+ nWDAFEventsSubscription [152] NWDAFEventsSubscription,
+ nWDAFEventsNotification [153] NWDAFEventsNotification,
+ nWDAFAnalyticsInfoQuery [154] NWDAFAnalyticsInfoQuery,
+ nWDAFRoamingAnalyticsSubscription [155] NWDAFRoamingAnalyticsSubscription,
+ nWDAFRoamingAnalyticsNotification [156] NWDAFRoamingAnalyticsNotification,
+
+ -- RCS events, see clause 7.13.3, continued from tag 145
+ startOfInterceptForRegisteredRCSUser [157] StartOfInterceptForRegisteredRCSUser,
+ startOfInterceptWithEstablisedRCSSession [158] StartOfInterceptWithEstablisedRCSSession,
+
+ -- UDM events, see clause 7.2.2.3, continued from tag 124
+ uDMProSeTargetIdentifierDeconcealment [159] UDMProSeTargetIdentifierDeconcealment,
+ uDMProSeTargetAuthentication [160] UDMProSeTargetAuthentication
}
-- ==============
@@ -170,44 +283,45 @@ XIRIEvent ::= CHOICE
IRIPayload ::= SEQUENCE
{
- iRIPayloadOID [1] RELATIVE-OID,
- event [2] IRIEvent,
- targetIdentifiers [3] SEQUENCE OF IRITargetIdentifier OPTIONAL
+ iRIPayloadOID [1] RELATIVE-OID,
+ event [2] IRIEvent,
+ targetIdentifiers [3] SEQUENCE OF IRITargetIdentifier OPTIONAL,
+ mediatedFromIndicator [4] MediatedFromIndicator OPTIONAL
}
IRIEvent ::= CHOICE
{
- -- Registration-related events, see clause 6.2.2
+ -- AMF events, see clause 6.2.2.3
registration [1] AMFRegistration,
deregistration [2] AMFDeregistration,
locationUpdate [3] AMFLocationUpdate,
startOfInterceptionWithRegisteredUE [4] AMFStartOfInterceptionWithRegisteredUE,
- unsuccessfulRegistrationProcedure [5] AMFUnsuccessfulProcedure,
+ unsuccessfulAMProcedure [5] AMFUnsuccessfulProcedure,
- -- PDU session-related events, see clause 6.2.3
+ -- SMF events, see clause 6.2.3.7
pDUSessionEstablishment [6] SMFPDUSessionEstablishment,
pDUSessionModification [7] SMFPDUSessionModification,
pDUSessionRelease [8] SMFPDUSessionRelease,
startOfInterceptionWithEstablishedPDUSession [9] SMFStartOfInterceptionWithEstablishedPDUSession,
- unsuccessfulSessionProcedure [10] SMFUnsuccessfulProcedure,
+ unsuccessfulSMProcedure [10] SMFUnsuccessfulProcedure,
- -- Subscriber-management related events, see clause 7.2.2
+ -- UDM events, see clause 7.2.2.4
servingSystemMessage [11] UDMServingSystemMessage,
- -- SMS-related events, see clause 6.2.5, see also sMSReport ([56] below)
+ -- SMS events, see clause 6.2.5.4
sMSMessage [12] SMSMessage,
- -- LALS-related events, see clause 7.3.3
+ -- LALS events, see clause 7.3.1.5
lALSReport [13] LALSReport,
- -- PDHR/PDSR-related events, see clause 6.2.3.4.1
+ -- PDHR/PDSR events, see clause 6.2.3.9
pDHeaderReport [14] PDHeaderReport,
pDSummaryReport [15] PDSummaryReport,
- -- MDF-related events, see clause 7.3.4
+ -- MDF events, see clause 7.3.2.2
mDFCellSiteReport [16] MDFCellSiteReport,
- -- MMS-related events, see clause 7.4.2
+ -- MMS events, see clause 7.4.4.1
mMSSend [17] MMSSend,
mMSSendByNonLocalTarget [18] MMSSendByNonLocalTarget,
mMSNotification [19] MMSNotification,
@@ -228,7 +342,7 @@ IRIEvent ::= CHOICE
mMSMBoxViewRequest [34] MMSMBoxViewRequest,
mMSMBoxViewResponse [35] MMSMBoxViewResponse,
- -- PTC-related events, see clause 7.5.2
+ -- PTC events, see clauses 7.5.2 and 7.5.3.1
pTCRegistration [36] PTCRegistration,
pTCSessionInitiation [37] PTCSessionInitiation,
pTCSessionAbandon [38] PTCSessionAbandon,
@@ -248,28 +362,28 @@ IRIEvent ::= CHOICE
pTCListManagement [52] PTCListManagement,
pTCAccessPolicy [53] PTCAccessPolicy,
- -- More Subscriber-management related events, see clause 7.2.2
- subscriberRecordChangeMessage [54] UDMSubscriberRecordChangeMessage,
- cancelLocationMessage [55] UDMCancelLocationMessage,
+ -- UDM events, see clause 7.2.2.4, continued from tag 11
+ subscriberRecordChangeMessage [54] UDMSubscriberRecordChangeMessage,
+ cancelLocationMessage [55] UDMCancelLocationMessage,
- -- SMS-related events, continued from choice 12
+ -- SMS events, see clause 6.2.5.4, continued from tag 12
sMSReport [56] SMSReport,
- -- MA PDU session-related events, see clause 6.2.3.2.7
+ -- SMF MA PDU session events, see clause 6.2.3.7
sMFMAPDUSessionEstablishment [57] SMFMAPDUSessionEstablishment,
sMFMAPDUSessionModification [58] SMFMAPDUSessionModification,
sMFMAPDUSessionRelease [59] SMFMAPDUSessionRelease,
startOfInterceptionWithEstablishedMAPDUSession [60] SMFStartOfInterceptionWithEstablishedMAPDUSession,
unsuccessfulMASMProcedure [61] SMFMAUnsuccessfulProcedure,
- -- Identifier Association events, see clauses 6.2.2.2.7 and 6.3.2.2.2
- aMFIdentifierAssocation [62] AMFIdentifierAssocation,
- mMEIdentifierAssocation [63] MMEIdentifierAssocation,
+ -- Identifier Association events, see clauses 6.2.2.3 and 6.3.2.3
+ aMFIdentifierAssociation [62] AMFIdentifierAssociation,
+ mMEIdentifierAssociation [63] MMEIdentifierAssociation,
- -- PDU to MA PDU session-related events, see clause 6.2.3.2.8
+ -- SMF PDU to MA PDU session events, see clause 6.2.3.7
sMFPDUtoMAPDUSessionModification [64] SMFPDUtoMAPDUSessionModification,
- -- NEF services related events, see clause 7.7.2,
+ -- NEF events, see clause 7.7.2.3
nEFPDUSessionEstablishment [65] NEFPDUSessionEstablishment,
nEFPDUSessionModification [66] NEFPDUSessionModification,
nEFPDUSessionRelease [67] NEFPDUSessionRelease,
@@ -281,8 +395,8 @@ IRIEvent ::= CHOICE
nEFdeviceTriggerReportNotify [73] NEFDeviceTriggerReportNotify,
nEFMSISDNLessMOSMS [74] NEFMSISDNLessMOSMS,
nEFExpectedUEBehaviourUpdate [75] NEFExpectedUEBehaviourUpdate,
-
- -- SCEF services related events, see clause 7.8.2
+
+ -- SCEF events, see clause 7.8.2.3
sCEFPDNConnectionEstablishment [76] SCEFPDNConnectionEstablishment,
sCEFPDNConnectionUpdate [77] SCEFPDNConnectionUpdate,
sCEFPDNConnectionRelease [78] SCEFPDNConnectionRelease,
@@ -294,15 +408,127 @@ IRIEvent ::= CHOICE
sCEFdeviceTriggerReportNotify [84] SCEFDeviceTriggerReportNotify,
sCEFMSISDNLessMOSMS [85] SCEFMSISDNLessMOSMS,
sCEFCommunicationPatternUpdate [86] SCEFCommunicationPatternUpdate,
-
- --EPS Events, see clause 6.3
- --MME Events, see clause 6.3.2.2
+ -- MME events, see clause 6.3.2.3
mMEAttach [87] MMEAttach,
mMEDetach [88] MMEDetach,
mMELocationUpdate [89] MMELocationUpdate,
mMEStartOfInterceptionWithEPSAttachedUE [90] MMEStartOfInterceptionWithEPSAttachedUE,
- mMEUnsuccessfulProcedure [91] MMEUnsuccessfulProcedure
+ mMEUnsuccessfulProcedure [91] MMEUnsuccessfulProcedure,
+
+ -- AKMA key management events, see clause 7.9.1.5
+ aAnFAnchorKeyRegister [92] AAnFAnchorKeyRegister,
+ aAnFKAKMAApplicationKeyGet [93] AAnFKAKMAApplicationKeyGet,
+ aAnFStartOfInterceptWithEstablishedAKMAKeyMaterial [94] AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial,
+ aAnFAKMAContextRemovalRecord [95] AAnFAKMAContextRemovalRecord,
+ aFAKMAApplicationKeyRefresh [96] AFAKMAApplicationKeyRefresh,
+ aFStartOfInterceptWithEstablishedAKMAApplicationKey [97] AFStartOfInterceptWithEstablishedAKMAApplicationKey,
+ aFAuxiliarySecurityParameterEstablishment [98] AFAuxiliarySecurityParameterEstablishment,
+ aFApplicationKeyRemoval [99] AFApplicationKeyRemoval,
+
+ -- Tag 100 is reserved because there is no equivalent n9HRPDUSessionInfo in IRIEvent.
+ -- Tag 101 is reserved because there is no equivalent S8HRBearerInfo in IRIEvent.
+
+ -- Separated Location Reporting, see clause 7.3.4.1
+ separatedLocationReporting [102] SeparatedLocationReporting,
+
+ -- STIR SHAKEN and RCD/eCNAM events, see clause 7.11.3
+ sTIRSHAKENSignatureGeneration [103] STIRSHAKENSignatureGeneration,
+ sTIRSHAKENSignatureValidation [104] STIRSHAKENSignatureValidation,
+
+ -- IMS events, see clause 7.12.7
+ iMSMessage [105] IMSMessage,
+ startOfInterceptionForActiveIMSSession [106] StartOfInterceptionForActiveIMSSession,
+ iMSCCUnavailable [107] IMSCCUnavailable,
+
+ -- UDM events, see clause 7.2.2.4, continued from tag 55
+ uDMLocationInformationResult [108] UDMLocationInformationResult,
+ uDMUEInformationResponse [109] UDMUEInformationResponse,
+ uDMUEAuthenticationResponse [110] UDMUEAuthenticationResponse,
+
+ -- AMF events, see 6.2.2.3, continued from tag 5
+ positioningInfoTransfer [111] AMFPositioningInfoTransfer,
+
+ -- MME events, see clause 6.3.2.3, continued from tag 91
+ mMEPositioningInfoTransfer [112] MMEPositioningInfoTransfer,
+
+ -- AMF events, see 6.2.2.3, continued from tag 111
+ aMFRANHandoverCommand [113] AMFRANHandoverCommand,
+ aMFRANHandoverRequest [114] AMFRANHandoverRequest,
+
+ -- EES events, see clause 7.14.2.11
+ eESEECRegistration [115] EESEECRegistration,
+ eESEASDiscovery [116] EESEASDiscovery,
+ eESEASDiscoverySubscription [117] EESEASDiscoverySubscription,
+ eESEASDiscoveryNotification [118] EESEASDiscoveryNotification,
+ eESAppContextRelocation [119] EESAppContextRelocation,
+ eESACRSubscription [120] EESACRSubscription,
+ eESACRNotification [121] EESACRNotification,
+ eESEECContextRelocation [122] EESEECContextRelocation,
+ eESStartOfInterceptionWithRegisteredEEC [123] EESStartOfInterceptionWithRegisteredEEC,
+
+ -- UDM events, see clause 7.2.2.4, continued from tag 110
+ uDMStartOfInterceptionWithRegisteredTarget [124] UDMStartOfInterceptionWithRegisteredTarget,
+
+ -- 5GMS AF events, see clause 7.15.3
+ fiveGMSAFServiceAccessInformation [125] FiveGMSAFServiceAccessInformation,
+ fiveGMSAFConsumptionReporting [126] FiveGMSAFConsumptionReporting,
+ fiveGMSAFDynamicPolicyInvocation [127] FiveGMSAFDynamicPolicyInvocation,
+ fiveGMSAFMetricsReporting [128] FiveGMSAFMetricsReporting,
+ fiveGMSAFNetworkAssistance [129] FiveGMSAFNetworkAssistance,
+ fiveGMSAFUnsuccessfulProcedure [130] FiveGMSAFUnsuccessfulProcedure,
+ fiveGMSAFStartOfInterceptionWithAlreadyConfiguredUE [131] FiveGMSAFStartOfInterceptionWithAlreadyConfiguredUE,
+
+ -- AMF events, see 6.2.2.3, continued from tag 114
+ aMFUEConfigurationUpdate [132] AMFUEConfigurationUpdate,
+
+ -- HSS events, see clause 7.2.3.4
+ hSSServingSystemMessage [133] HSSServingSystemMessage,
+ hSSStartOfInterceptionWithRegisteredTarget [134] HSSStartOfInterceptionWithRegisteredTarget,
+
+ -- NEF events, see clause 7.7.6.2
+ nEFAFSessionWithQoSProvision [135] NEFAFSessionWithQoSProvision,
+ nEFAFSessionWithQoSNotification [136] NEFAFSessionWithQoSNotification,
+
+ -- SCEF events, see clause 7.8.6.2
+ sCEFASSessionWithQoSProvision [137] SCEFASSessionWithQoSProvision,
+ sCEFASSessionWithQoSNotification [138] SCEFASSessionWithQoSNotification,
+
+ -- AMF events, see 6.2.2.3, continued from tag 132
+ aMFRANTraceReport [139] AMFRANTraceReport,
+
+ -- RCS events, see clause 7.13.3
+ rCSRegistration [140] RCSRegistration,
+ rCSMessage [141] RCSMessage,
+ rCSCapabilityDiscovery [142] RCSCapabilityDiscovery,
+ rCSSessionEstablishment [143] RCSSessionEstablishment,
+ rCSSessionModification [144] RCSSessionModification,
+ rCSSessionRelease [145] RCSSessionRelease,
+
+ -- AMF events, see clause 6.2.2.3, continued from tag 139
+ aMFUEPolicyTransfer [146] AMFUEPolicyTransfer,
+ aMFUEServiceAccept [147] AMFUEServiceAccept,
+
+ -- MME events, see clause 6.3.2.3, continued from tag 112
+ ePSRANHandoverCommand [148] EPSRANHandoverCommand,
+ ePSRANHandoverRequest [149] EPSRANHandoverRequest,
+ mMERANTraceReport [150] MMERANTraceReport,
+ mMEUEServiceAccept [151] MMEUEServiceAccept,
+
+ --NWDAF events, see clause 7.16.3
+ nWDAFEventsSubscription [152] NWDAFEventsSubscription,
+ nWDAFEventsNotification [153] NWDAFEventsNotification,
+ nWDAFAnalyticsInfoQuery [154] NWDAFAnalyticsInfoQuery,
+ nWDAFRoamingAnalyticsSubscription [155] NWDAFRoamingAnalyticsSubscription,
+ nWDAFRoamingAnalyticsNotification [156] NWDAFRoamingAnalyticsNotification,
+
+ -- RCS events, see clause 7.13.3, continued from tag 145
+ startOfInterceptForRegisteredRCSUser [157] StartOfInterceptForRegisteredRCSUser,
+ startOfInterceptWithEstablisedRCSSession [158] StartOfInterceptWithEstablisedRCSSession,
+
+ -- UDM events, see clause 7.2.2.3, continued from tag 124
+ uDMProSeTargetIdentifierDeconcealment [159] UDMProSeTargetIdentifierDeconcealment,
+ uDMProSeTargetAuthentication [160] UDMProSeTargetAuthentication
}
IRITargetIdentifier ::= SEQUENCE
@@ -311,6 +537,11 @@ IRITargetIdentifier ::= SEQUENCE
provenance [2] TargetIdentifierProvenance OPTIONAL
}
+MediatedFromIndicator ::= CHOICE
+{
+ xIRIRelativeOID [1] RELATIVE-OID
+}
+
-- ==============
-- HI3 CC payload
-- ==============
@@ -326,7 +557,16 @@ CCPDU ::= CHOICE
uPFCCPDU [1] UPFCCPDU,
extendedUPFCCPDU [2] ExtendedUPFCCPDU,
mMSCCPDU [3] MMSCCPDU,
- nIDDCCPDU [4] NIDDCCPDU
+
+ -- In Rel-16 (threeGPP(4) ts33128(19) r16(16) version9(9)),
+ -- tag 4 is pTCCCPDU and tag 5 is not used.
+ -- Rel-17 or newer decoders should decode tag 4 contents as PTCCCPDU if
+ -- r16 is used in cCPayloadOID.
+ nIDDCCPDU [4] NIDDCCPDU,
+ pTCCCPDU [5] PTCCCPDU,
+
+ iMSCCPDU [6] IMSCCPDU,
+ rCSCCPDU [7] RCSCCPDU
}
-- ===========================
@@ -343,6 +583,62 @@ LINotificationMessage ::= CHOICE
{
lINotification [1] LINotification
}
+
+-- =================
+-- HR LI definitions
+-- =================
+
+N9HRPDUSessionInfo ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ pEI [2] PEI OPTIONAL,
+ pDUSessionID [3] PDUSessionID,
+ location [4] Location OPTIONAL,
+ sNSSAI [5] SNSSAI OPTIONAL,
+ dNN [6] DNN OPTIONAL,
+ messageCause [7] N9HRMessageCause
+}
+
+S8HRBearerInfo ::= SEQUENCE
+{
+ iMSI [1] IMSI,
+ iMEI [2] IMEI OPTIONAL,
+ bearerID [3] EPSBearerID,
+ linkedBearerID [4] EPSBearerID OPTIONAL,
+ location [5] Location OPTIONAL,
+ aPN [6] APN OPTIONAL,
+ sGWIPAddress [7] IPAddress OPTIONAL,
+ messageCause [8] S8HRMessageCause
+}
+
+-- ================
+-- HR LI parameters
+
+-- ================
+
+N9HRMessageCause ::= ENUMERATED
+{
+ pDUSessionEstablished(1),
+ pDUSessionModified(2),
+ pDUSessionReleased(3),
+ updatedLocationAvailable(4),
+ sMFChanged(5),
+ other(6),
+ hRLIEnabled(7)
+}
+
+S8HRMessageCause ::= ENUMERATED
+{
+ bearerActivated(1),
+ bearerModified(2),
+ bearerDeleted(3),
+ pDNDisconnected(4),
+ updatedLocationAvailable(5),
+ sGWChanged(6),
+ other(7),
+ hRLIEnabled(8)
+}
+
-- ==================
-- 5G NEF definitions
-- ==================
@@ -373,7 +669,8 @@ NEFPDUSessionModification ::= SEQUENCE
applicationID [7] ApplicationID OPTIONAL,
aFID [8] AFID OPTIONAL,
rDSAction [9] RDSAction OPTIONAL,
- serializationFormat [10] SerializationFormat OPTIONAL
+ serializationFormat [10] SerializationFormat OPTIONAL,
+ pDUSessionID [11] PDUSessionID OPTIONAL
}
-- See clause 7.7.2.1.4 for details of this structure
@@ -490,6 +787,26 @@ NEFExpectedUEBehaviourUpdate ::= SEQUENCE
validityTime [12] Timestamp OPTIONAL
}
+-- See clause 7.7.6.1.2 for details of this structure
+NEFAFSessionWithQoSProvision ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ aFID [2] AFID,
+ aFSessionWithQoSOpType [3] AForASSessionWithQoSOpType,
+ aFSessionWithQoSSubscription [4] SBIType OPTIONAL,
+ aFSessionWithQoSSubscriptionPatch [5] SBIType OPTIONAL,
+ aFSessionWithQoSResponseCode [6] AForASSessionWithQoSResponseCode
+}
+
+-- See clause 7.7.6.1.3 for details of this structure
+NEFAFSessionWithQoSNotification ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ aFID [2] AFID,
+ userPlaneNotificationData [3] SBIType,
+ aForASSessionWithQoSResponseCode [4] AForASSessionWithQoSResponseCode
+}
+
-- ==========================
-- Common SCEF/NEF parameters
-- ==========================
@@ -598,6 +915,33 @@ ScheduledCommunicationType ::= ENUMERATED
bidirectional(3)
}
+AForASSessionWithQoSResponseCode ::= ENUMERATED
+{
+ oK200(1),
+ created201(2),
+ noContent204(3),
+ temporaryRedirect307(4),
+ permanentRedirect308(5),
+ badRequest400(6),
+ unauthorized401(7),
+ forbidden403(8),
+ notFound404(9),
+ notAcceptable406(10),
+ lengthRequired411(11),
+ unsupportedMediaType415(12),
+ tooManyRequests429(13),
+ internalServerError500(14),
+ serviceUnavailable503(15)
+}
+
+AForASSessionWithQoSOpType ::= ENUMERATED
+{
+ pOST(1),
+ pUT(2),
+ pATCH(3),
+ dELETE(4)
+}
+
-- =================
-- 5G NEF parameters
-- =================
@@ -625,6 +969,7 @@ AFID ::= UTF8String
NEFID ::= UTF8String
+
-- ==================
-- SCEF definitions
-- ==================
@@ -655,7 +1000,8 @@ SCEFPDNConnectionUpdate ::= SEQUENCE
applicationID [7] ApplicationID OPTIONAL,
sCSASID [8] SCSASID OPTIONAL,
rDSAction [9] RDSAction OPTIONAL,
- serializationFormat [10] SerializationFormat OPTIONAL
+ serializationFormat [10] SerializationFormat OPTIONAL,
+ ePSBearerID [11] EPSBearerID OPTIONAL
}
-- See clause 7.8.2.1.4 for details of this structure
@@ -779,6 +1125,28 @@ SCEFCommunicationPatternUpdate ::= SEQUENCE
validityTime [14] Timestamp OPTIONAL
}
+-- See clause 7.8.6.1.2 for details of this structure
+SCEFASSessionWithQoSProvision ::= SEQUENCE
+{
+ mSISDN [1] MSISDN OPTIONAL,
+ externalIdentifier [2] NAI OPTIONAL,
+ sCSASID [3] SCSASID,
+ aSSessionWithQoSOpType [4] AForASSessionWithQoSOpType,
+ aSSessionWithQoSSubscription [5] SBIType OPTIONAL,
+ aSSessionWithQoSSubscriptionPatch [6] SBIType OPTIONAL,
+ aSSessionWithQoSResponseCode [7] AForASSessionWithQoSResponseCode
+}
+
+-- See clause 7.8.6.1.3 for details of this structure
+SCEFASSessionWithQoSNotification ::= SEQUENCE
+{
+ mSISDN [1] MSISDN OPTIONAL,
+ externalIdentifier [2] NAI OPTIONAL,
+ sCSASID [3] SCSASID,
+ userPlaneNotificationData [4] SBIType,
+ aSSessionWithQoSResponseCode [5] AForASSessionWithQoSResponseCode
+}
+
-- =================
-- SCEF parameters
-- =================
@@ -816,6 +1184,192 @@ EPSBearerID ::= INTEGER (0..255)
APN ::= UTF8String
+-- =======================
+-- AKMA AAnF definitions
+-- =======================
+
+AAnFAnchorKeyRegister ::= SEQUENCE
+{
+ aKID [1] NAI,
+ sUPI [2] SUPI,
+ kAKMA [3] KAKMA OPTIONAL
+}
+
+AAnFKAKMAApplicationKeyGet ::= SEQUENCE
+{
+ type [1] KeyGetType,
+ aKID [2] NAI,
+ keyInfo [3] AFKeyInfo
+}
+
+AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial ::= SEQUENCE
+{
+ aKID [1] NAI,
+ kAKMA [2] KAKMA OPTIONAL,
+ aFKeyList [3] SEQUENCE OF AFKeyInfo OPTIONAL
+}
+
+AAnFAKMAContextRemovalRecord ::= SEQUENCE
+{
+ aKID [1] NAI,
+ nFID [2] NFID
+}
+
+-- ======================
+-- AKMA common parameters
+-- ======================
+
+FQDN ::= UTF8String
+
+NFID ::= UTF8String
+
+UAProtocolID ::= OCTET STRING (SIZE(5))
+
+AKMAAFID ::= SEQUENCE
+{
+ aFFQDN [1] FQDN,
+ uaProtocolID [2] UAProtocolID
+}
+
+UAStarParams ::= CHOICE
+{
+ tls12 [1] TLS12UAStarParams,
+ generic [2] GenericUAStarParams
+}
+
+GenericUAStarParams ::= SEQUENCE
+{
+ genericClientParams [1] OCTET STRING,
+ genericServerParams [2] OCTET STRING
+}
+
+-- ===========================================
+-- Specific UaStarParams for TLS 1.2 (RFC5246)
+-- ===========================================
+
+TLSCipherType ::= ENUMERATED
+{
+ stream(1),
+ block(2),
+ aead(3)
+}
+
+TLSCompressionAlgorithm ::= ENUMERATED
+{
+ null(1),
+ deflate(2)
+}
+
+TLSPRFAlgorithm ::= ENUMERATED
+{
+ rfc5246(1)
+}
+
+TLSCipherSuite ::= SEQUENCE (SIZE(2)) OF INTEGER (0..255)
+
+TLS12UAStarParams ::= SEQUENCE
+{
+ preMasterSecret [1] OCTET STRING (SIZE(48)) OPTIONAL,
+ masterSecret [2] OCTET STRING (SIZE(48)),
+ pRFAlgorithm [3] TLSPRFAlgorithm,
+ cipherSuite [4] TLSCipherSuite,
+ cipherType [5] TLSCipherType,
+ encKeyLength [6] INTEGER (0..255),
+ blockLength [7] INTEGER (0..255),
+ fixedIVLength [8] INTEGER (0..255),
+ recordIVLength [9] INTEGER (0..255),
+ macLength [10] INTEGER (0..255),
+ macKeyLength [11] INTEGER (0..255),
+ compressionAlgorithm [12] TLSCompressionAlgorithm,
+ clientRandom [13] OCTET STRING (SIZE(32)),
+ serverRandom [14] OCTET STRING (SIZE(32)),
+ clientSequenceNumber [15] INTEGER,
+ serverSequenceNumber [16] INTEGER,
+ sessionID [17] OCTET STRING (SIZE(0..32)),
+ tLSServerExtensions [18] OCTET STRING (SIZE(0..65535)),
+ tLSClientExtensions [19] OCTET STRING (SIZE(0..65535)) OPTIONAL
+}
+
+KAF ::= OCTET STRING
+
+KAKMA ::= OCTET STRING
+
+-- ====================
+-- AKMA AAnF parameters
+-- ====================
+
+KeyGetType ::= ENUMERATED
+{
+ internal(1),
+ external(2)
+}
+
+AFKeyInfo ::= SEQUENCE
+{
+ aFID [1] AKMAAFID,
+ kAF [2] KAF,
+ kAFExpTime [3] KAFExpiryTime
+}
+
+-- =======================
+-- AKMA AF definitions
+-- =======================
+
+AFAKMAApplicationKeyRefresh ::= SEQUENCE
+{
+ aFID [1] AFID,
+ aKID [2] NAI,
+ kAF [3] KAF,
+ uaStarParams [4] UAStarParams OPTIONAL
+}
+
+AFStartOfInterceptWithEstablishedAKMAApplicationKey ::= SEQUENCE
+{
+ aFID [1] FQDN,
+ aKID [2] NAI,
+ kAFParamList [3] SEQUENCE OF AFSecurityParams
+}
+
+AFAuxiliarySecurityParameterEstablishment ::= SEQUENCE
+{
+ aFSecurityParams [1] AFSecurityParams
+}
+
+AFSecurityParams ::= SEQUENCE
+{
+ aFID [1] AFID,
+ aKID [2] NAI,
+ kAF [3] KAF,
+ uaStarParams [4] UAStarParams
+}
+
+AFApplicationKeyRemoval ::= SEQUENCE
+{
+ aFID [1] AFID,
+ aKID [2] NAI,
+ removalCause [3] AFKeyRemovalCause
+}
+
+-- ===================
+-- AKMA AF parameters
+-- ===================
+
+KAFParams ::= SEQUENCE
+{
+ aKID [1] NAI,
+ kAF [2] KAF,
+ kAFExpTime [3] KAFExpiryTime,
+ uaStarParams [4] UAStarParams
+}
+
+KAFExpiryTime ::= GeneralizedTime
+
+AFKeyRemovalCause ::= ENUMERATED
+{
+ unknown(1),
+ keyExpiry(2),
+ applicationSpecific(3)
+}
-- ==================
-- 5G AMF definitions
@@ -824,69 +1378,92 @@ APN ::= UTF8String
-- See clause 6.2.2.2.2 for details of this structure
AMFRegistration ::= SEQUENCE
{
- registrationType [1] AMFRegistrationType,
- registrationResult [2] AMFRegistrationResult,
- slice [3] Slice OPTIONAL,
- sUPI [4] SUPI,
- sUCI [5] SUCI OPTIONAL,
- pEI [6] PEI OPTIONAL,
- gPSI [7] GPSI OPTIONAL,
- gUTI [8] FiveGGUTI,
- location [9] Location OPTIONAL,
- non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
- fiveGSTAIList [11] TAIList OPTIONAL,
- sMSOverNasIndicator [12] SMSOverNASIndicator OPTIONAL,
- oldGUTI [13] EPS5GGUTI OPTIONAL,
- eMM5GRegStatus [14] EMM5GMMStatus OPTIONAL
+ registrationType [1] AMFRegistrationType,
+ registrationResult [2] AMFRegistrationResult,
+ slice [3] Slice OPTIONAL,
+ sUPI [4] SUPI,
+ sUCI [5] SUCI OPTIONAL,
+ pEI [6] PEI OPTIONAL,
+ gPSI [7] GPSI OPTIONAL,
+ gUTI [8] FiveGGUTI,
+ location [9] Location OPTIONAL,
+ non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
+ fiveGSTAIList [11] TAIList OPTIONAL,
+ sMSOverNasIndicator [12] SMSOverNASIndicator OPTIONAL,
+ oldGUTI [13] EPS5GGUTI OPTIONAL,
+ eMM5GRegStatus [14] EMM5GMMStatus OPTIONAL,
+ nonIMEISVPEI [15] NonIMEISVPEI OPTIONAL,
+ mACRestIndicator [16] MACRestrictionIndicator OPTIONAL,
+ pagingRestrictionIndicator [17] PagingRestrictionIndicator OPTIONAL,
+ rATType [18] RATType OPTIONAL,
+ rRCEstablishmentCause [19] RRCEstablishmentCause OPTIONAL,
+ nGInformation [20] NGInformation OPTIONAL,
+ nASTransportInitialInformation [21] NASTransportInitialInformation OPTIONAL,
+ sORTransparentContainer [22] SORTransparentContainer OPTIONAL,
+ equivalentPLMNList [23] PLMNList OPTIONAL,
+ fiveGMMCapability [24] FiveGMMCapability OPTIONAL,
+ initialRANUEContextSetup [25] InitialRANUEContextSetup OPTIONAL,
+ mUSIMUERequestType [26] MUSIMUERequestType OPTIONAL,
+ unavailabilityPeriodDuration [27] UnavailabilityPeriodDuration OPTIONAL,
+ fiveGSUpdateType [28] FiveGSUpdateType OPTIONAL,
+ uEAreaIndication [29] UEAreaIndication OPTIONAL,
+ establishmentCauseNon3GPPAccess [30] EstablishmentCauseNon3GPPAccess OPTIONAL
}
-- See clause 6.2.2.2.3 for details of this structure
AMFDeregistration ::= SEQUENCE
{
- deregistrationDirection [1] AMFDirection,
- accessType [2] AccessType,
- sUPI [3] SUPI OPTIONAL,
- sUCI [4] SUCI OPTIONAL,
- pEI [5] PEI OPTIONAL,
- gPSI [6] GPSI OPTIONAL,
- gUTI [7] FiveGGUTI OPTIONAL,
- cause [8] FiveGMMCause OPTIONAL,
- location [9] Location OPTIONAL,
- switchOffIndicator [10] SwitchOffIndicator OPTIONAL,
- reRegRequiredIndicator [11] ReRegRequiredIndicator OPTIONAL
+ deregistrationDirection [1] AMFDirection,
+ accessType [2] AccessType,
+ sUPI [3] SUPI OPTIONAL,
+ sUCI [4] SUCI OPTIONAL,
+ pEI [5] PEI OPTIONAL,
+ gPSI [6] GPSI OPTIONAL,
+ gUTI [7] FiveGGUTI OPTIONAL,
+ cause [8] FiveGMMCause OPTIONAL,
+ location [9] Location OPTIONAL,
+ switchOffIndicator [10] SwitchOffIndicator OPTIONAL,
+ reRegRequiredIndicator [11] ReRegRequiredIndicator OPTIONAL,
+ unavailabilityPeriodDuration [12] UnavailabilityPeriodDuration OPTIONAL
}
-- See clause 6.2.2.2.4 for details of this structure
AMFLocationUpdate ::= SEQUENCE
{
- sUPI [1] SUPI,
- sUCI [2] SUCI OPTIONAL,
- pEI [3] PEI OPTIONAL,
- gPSI [4] GPSI OPTIONAL,
- gUTI [5] FiveGGUTI OPTIONAL,
- location [6] Location,
- sMSOverNASIndicator [7] SMSOverNASIndicator OPTIONAL,
- oldGUTI [8] EPS5GGUTI OPTIONAL
+ sUPI [1] SUPI,
+ sUCI [2] SUCI OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ gUTI [5] FiveGGUTI OPTIONAL,
+ location [6] Location,
+ deprecatedSMSOverNASIndicator [7] SMSOverNASIndicator OPTIONAL,
+ deprecatedOldGUTI [8] EPS5GGUTI OPTIONAL,
+ uEAreaIndication [9] UEAreaIndication OPTIONAL
}
-- See clause 6.2.2.2.5 for details of this structure
AMFStartOfInterceptionWithRegisteredUE ::= SEQUENCE
{
- registrationResult [1] AMFRegistrationResult,
- registrationType [2] AMFRegistrationType OPTIONAL,
- slice [3] Slice OPTIONAL,
- sUPI [4] SUPI,
- sUCI [5] SUCI OPTIONAL,
- pEI [6] PEI OPTIONAL,
- gPSI [7] GPSI OPTIONAL,
- gUTI [8] FiveGGUTI,
- location [9] Location OPTIONAL,
- non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
- timeOfRegistration [11] Timestamp OPTIONAL,
- fiveGSTAIList [12] TAIList OPTIONAL,
- sMSOverNASIndicator [13] SMSOverNASIndicator OPTIONAL,
- oldGUTI [14] EPS5GGUTI OPTIONAL,
- eMM5GRegStatus [15] EMM5GMMStatus OPTIONAL
+ registrationResult [1] AMFRegistrationResult,
+ registrationType [2] AMFRegistrationType OPTIONAL,
+ slice [3] Slice OPTIONAL,
+ sUPI [4] SUPI,
+ sUCI [5] SUCI OPTIONAL,
+ pEI [6] PEI OPTIONAL,
+ gPSI [7] GPSI OPTIONAL,
+ gUTI [8] FiveGGUTI,
+ location [9] Location OPTIONAL,
+ non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
+ timeOfRegistration [11] Timestamp OPTIONAL,
+ fiveGSTAIList [12] TAIList OPTIONAL,
+ sMSOverNASIndicator [13] SMSOverNASIndicator OPTIONAL,
+ oldGUTI [14] EPS5GGUTI OPTIONAL,
+ eMM5GRegStatus [15] EMM5GMMStatus OPTIONAL,
+ sORTransparentContainer [16] SORTransparentContainer OPTIONAL,
+ uEPolicy [17] UEPolicy OPTIONAL,
+ unavailabilityPeriodDuration [18] UnavailabilityPeriodDuration OPTIONAL,
+ fiveGSUpdateType [19] FiveGSUpdateType OPTIONAL,
+ uEAreaIndication [20] UEAreaIndication OPTIONAL
}
-- See clause 6.2.2.2.6 for details of this structure
@@ -903,6 +1480,103 @@ AMFUnsuccessfulProcedure ::= SEQUENCE
location [9] Location OPTIONAL
}
+-- See clause 6.2.2.2.8 on for details of this structure
+AMFPositioningInfoTransfer ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ sUCI [2] SUCI OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ gUTI [5] FiveGGUTI OPTIONAL,
+ nRPPaMessage [6] OCTET STRING OPTIONAL,
+ lPPMessage [7] OCTET STRING OPTIONAL,
+ lcsCorrelationId [8] UTF8String (SIZE(1..255))
+}
+
+-- See clause 6.2.2.2.9.2 for details of this structure
+AMFRANHandoverCommand ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ aMFUENGAPID [2] AMFUENGAPID,
+ rANUENGAPID [3] RANUENGAPID,
+ handoverType [4] HandoverType,
+ targetToSourceContainer [5] RANTargetToSourceContainer
+}
+
+-- See clause 6.2.2.2.9.3 for details of this structure
+AMFRANHandoverRequest ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ aMFUENGAPID [2] AMFUENGAPID,
+ rANUENGAPID [3] RANUENGAPID,
+ handoverType [4] HandoverType,
+ handoverCause [5] HandoverCause,
+ pDUSessionResourceInformation [6] PDUSessionResourceInformation,
+ mobilityRestrictionList [7] MobilityRestrictionList OPTIONAL,
+ locationReportingRequestType [8] LocationReportingRequestType OPTIONAL,
+ targetToSourceContainer [9] RANTargetToSourceContainer,
+ nPNAccessInformation [10] NPNAccessInformation OPTIONAL,
+ sourceToTargetContainer [11] RANSourceToTargetContainer
+}
+
+-- See clause 6.2.2.2.10 on for details of this structure
+AMFUEConfigurationUpdate ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ gUTI [2] GUTI,
+ oldGUTI [3] EPS5GGUTI OPTIONAL,
+ fiveGSTAIList [4] TAIList OPTIONAL,
+ slice [5] Slice OPTIONAL,
+ serviceAreaList [6] ServiceAreaList OPTIONAL,
+ registrationResult [7] AMFRegistrationResult OPTIONAL,
+ sMSOverNASIndicator [8] SMSOverNASIndicator OPTIONAL
+}
+
+-- See clause 6.2.2.2.10.2 for details of this structure
+AMFRANTraceReport ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ aMFUENGAPID [2] AMFUENGAPID,
+ rANUENGAPID [3] RANUENGAPID,
+ traceRecordType [4] TraceRecordType,
+ traceDirection [5] TraceDirection,
+ -- deprecatedTraceActivationInfo was deprecated in r18(18) version6(6) and shall not be reused.
+ deprecatedTraceActivationInfo [6] TraceActivationInfo OPTIONAL,
+ nGRANCGI [7] NCGI,
+ globalRANNodeID [8] GlobalRANNodeID,
+ traceCollectionEntityInfo [9] TraceCollectionEntityInfo OPTIONAL,
+ aMFTraceData [10] XMLType,
+ location [11] Location OPTIONAL,
+ traceActivation [12] TraceActivation OPTIONAL
+}
+
+-- See clause 6.2.2.2.12 for details of this Structure
+AMFUEPolicyTransfer ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ sUCI [2] SUCI OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ gUTI [5] FiveGGUTI OPTIONAL,
+ uEPolicy [6] UEPolicy
+}
+
+-- See clause 6.2.2.2.12 for details of this structure
+AMFUEServiceAccept ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ serviceMessageIdentity [2] ServiceMessageIdentity,
+ serviceType [3] OCTET STRING (SIZE(1)) OPTIONAL,
+ fiveGTMSI [4] FiveGTMSI OPTIONAL,
+ uplinkDataStatus [5] OCTET STRING (SIZE(2..32)) OPTIONAL,
+ pDUSessionStatus [6] OCTET STRING (SIZE(2..32)) OPTIONAL,
+ -- deprecatedUERequestType was deprecated in r18(18) version6(6) and shall not be reused.
+ deprecatedUERequestType [7] FiveGSMRequestType OPTIONAL,
+ pagingRestriction [8] PagingRestrictionIndicator OPTIONAL,
+ forbiddenTAIList [9] TAIList OPTIONAL,
+ uERequestType [10] MUSIMUERequestType OPTIONAL
+}
+
-- =================
-- 5G AMF parameters
-- =================
@@ -949,11 +1623,289 @@ AMFRegistrationType ::= ENUMERATED
initial(1),
mobility(2),
periodic(3),
- emergency(4)
+ emergency(4),
+ sNPNOnboarding(5),
+ disasterMobility(6),
+ disasterInitial(7)
}
AMFSetID ::= INTEGER (0..1023)
+AMFUENGAPID ::= INTEGER (0..1099511627775)
+
+AreaScopeOfMDT ::= CHOICE
+{
+ cellBased [1] SEQUENCE (SIZE(1..MAX)) OF CellID,
+ tABased [2] SEQUENCE (SIZE(1..MAX)) OF TAC,
+ pLMNWide [3] PLMNID,
+ tAIBased [4] SEQUENCE (SIZE(1..MAX)) OF TAI
+}
+
+-- TS 24.502 clause 9.2.2, omitting the first octet
+EstablishmentCauseNon3GPPAccess ::= OCTET STRING
+
+MDTActivation ::= ENUMERATED
+{
+ immediateMDTOnly(1),
+ loggedMDTOnly(2),
+ immediateMDTandTrace(3)
+}
+
+MDTConfiguration ::= ENUMERATED
+{
+ mDTConfigurationNR(1),
+ mDTConfigurationEUTRA(2)
+}
+
+MDTConfigurationEUTRA ::= SEQUENCE
+{
+ mDTActivation [1] MDTActivation,
+ areaScopeofMDT [2] AreaScopeOfMDT,
+ mDTMode [3] MDTMode,
+ signallingBasedMDTPLMNList [4] PLMNList
+}
+
+MDTConfigurationNR ::= SEQUENCE
+{
+ mDTActivation [1] MDTActivation,
+ areaScopeofMDT [2] AreaScopeOfMDT,
+ mDTModeNR [3] MDTMode,
+ signallingBasedMDTPLMNList [4] PLMNList
+}
+
+-- TS 38.413 [23], clause 9.3.1.169
+MDTMode ::= CHOICE
+{
+ immediateMDT [1] OCTET STRING,
+ loggedMDT [2] OCTET STRING
+}
+
+-- TS 24.501 [13], clause 9.11.3.49
+ServiceAreaList ::= OCTET STRING (SIZE(4..112))
+
+ServiceMessageIdentity ::= CHOICE
+{
+ serviceRequest [1] OCTET STRING,
+ serviceAccept [2] OCTET STRING
+}
+
+TraceActivation ::= ExternalASNType
+
+-- The TraceActivationInfo type was deprecated in r18(18) version6(6) and shall not be reused.
+-- The TraceActivation type shall be used instead.
+TraceActivationInfo ::= SEQUENCE
+{
+ nGRANTraceID [1] OCTET STRING (SIZE(8)),
+ interfacestoTrace [2] BIT STRING (SIZE(8)),
+ traceDepth [3] TraceDepth,
+ traceCollectionEntityIPAddress [4] IPAddress,
+ mDTConfiguration [5] MDTConfiguration OPTIONAL
+}
+
+TraceCollectionEntityInfo ::= SEQUENCE
+{
+ traceCollectionEntityIPAddress [1] BIT STRING (SIZE(1..160, ...)),
+ traceCollectionEntityURI [2] UTF8String
+}
+
+-- TS 32.423 [112], clause 5.3
+TraceDepth ::= ENUMERATED
+{
+ minimum(1),
+ medium(2),
+ maximum(3),
+ minimumWithoutVendorSpecificExtension(4),
+ mediumWithoutVendorSpecificExtension(5),
+ maximumWithoutVendorSpecificExtension(6)
+}
+
+TraceDirection ::= ENUMERATED
+{
+ toAMF(1),
+ fromAMF(2),
+ toMME(3),
+ fromMME(4)
+}
+
+TraceRecordType ::= ENUMERATED
+{
+ traceStart(1),
+ cellTrafficTrace(2),
+ traceDataDelivery(3),
+ traceDeactivation(4)
+}
+
+NASTransportInitialInformation ::= SEQUENCE
+{
+ rANUENGAPID [1] RANUENGAPID,
+ iABNodeIndication [2] BOOLEAN OPTIONAL,
+ eDTSession [3] BOOLEAN OPTIONAL,
+ authenticatedIndication [4] BOOLEAN OPTIONAL,
+ nPNAccessInformation [5] CellCAGList OPTIONAL,
+ rEDCAPIndication [6] REDCAPIndication OPTIONAL
+}
+
+NGInformation ::= SEQUENCE
+{
+ globalRANNodeID [1] GlobalRANNodeID,
+ rANNodeName [2] RANNodeName OPTIONAL,
+ supportedTAList [3] SupportedTAList OPTIONAL,
+ extendedRANNodeName [4] RANNodeName OPTIONAL,
+ pLMNSupportList [5] PLMNSupportList,
+ iABSupported [6] BOOLEAN OPTIONAL
+}
+
+PLMNSupportList ::= SEQUENCE (SIZE(1..MAX)) OF PLMNSupportItem
+
+PLMNSupportItem ::= SEQUENCE
+{
+ pLMNIdentity [1] PLMNID,
+ nPNSupport [2] NID OPTIONAL,
+ onboardingSupport [3] BOOLEAN OPTIONAL
+}
+
+F1Information ::= SEQUENCE
+{
+ gNBDUID [1] INTEGER (0..68719476735),
+ gNBDUName [2] UTF8String OPTIONAL,
+ gNBCUName [3] UTF8String OPTIONAL,
+ gNBDUServedCells [4] SEQUENCE (SIZE(1..MAX)) OF RANCGI,
+ extendedGNBDUName [5] UTF8String OPTIONAL,
+ extendedGNBCUName [6] UTF8String OPTIONAL
+}
+
+REDCAPIndication ::= ENUMERATED
+{
+ redCAP(1)
+}
+
+RRCEstablishmentCause ::= CHOICE
+{
+ ePCEstablishmentCause [1] EstablishmentCause,
+ fiveGCEstablishmentCause [2] EstablishmentCause
+}
+
+EstablishmentCause ::= ENUMERATED
+{
+ emergency(1),
+ highPriorityAccess(2),
+ mtAccess(3),
+ moSignalling(4),
+ moData(5),
+ moVoiceCall(6),
+ moVideoCall(7),
+ moSMS(8),
+ mpsPriorityAccess(9),
+ mcsPriorityAccess(10),
+ notAvailable(11),
+ exceptionData(12)
+}
+
+SORTransparentContainer ::= OCTET STRING (SIZE (17..65535))
+
+UEPolicy ::= OCTET STRING (SIZE(16..65540))
+
+InitialRANUEContextSetup ::= SEQUENCE
+{
+ aMFUENGAPID [1] AMFUENGAPID,
+ rANUENGAPID [2] RANUENGAPID,
+ oldAMF [3] GUAMI OPTIONAL,
+ pDUSessionSetupRequest [4] SEQUENCE (SIZE(1..MAX)) OF PDUSessionSetupRequestItem,
+ allowedNSSAI [5] AllowedNSSAI,
+ mobilityRestrictionList [6] MobilityRestrictionList OPTIONAL,
+ uERadioCapability [7] UERadioCapability OPTIONAL,
+ rATFrequencySelectionPriority [8] RATFrequencySelectionPriority OPTIONAL,
+ uERadioCapabilityForPaging [9] UERadioCapabilityForPaging OPTIONAL,
+ iABAuthorizedIndicator [10] IABAuthorizedIndicator OPTIONAL,
+ nRV2XServicesAuthorization [11] NRV2XServicesAuthorization OPTIONAL,
+ lTEV2XServiceAuthorization [12] LTEV2XServiceAuthorization OPTIONAL,
+ rGLevelWirelineAccessCharacteristics [13] OCTET STRING OPTIONAL,
+ uERadioCapabilityID [14] OCTET STRING OPTIONAL,
+ targetNSSAIInfo [15] TargetNSSAIInfo OPTIONAL,
+ fiveGProSeAuthorizationIndication [16] FiveGProSeAuthorizationIndication OPTIONAL
+}
+
+PDUSessionSetupRequestItem ::= SEQUENCE
+{
+ pDUSessionID [1] PDUSessionID,
+ sNSSAI [2] SNSSAI
+}
+
+UERadioCapability ::= SEQUENCE
+{
+ uERadioCapibilityNR [1] OCTET STRING OPTIONAL,
+ uERadioCapabilityEUTRA [2] OCTET STRING OPTIONAL
+}
+
+UERadioCapabilityForPaging ::= SEQUENCE
+{
+ uERadioCapabilityForPagingOfNR [1] OCTET STRING OPTIONAL,
+ uERadioCapabilityForPagingOfEUTRA [2] OCTET STRING OPTIONAL,
+ uERadioCapabilityForPagingOfNBIoT [3] OCTET STRING OPTIONAL
+}
+
+NRV2XServicesAuthorization ::= SEQUENCE
+{
+ v2XVehicleUEAuthorizationIndicator [1] V2XUEAuthorizationIndicator OPTIONAL,
+ v2XPedestrianUEAuthorizationIndicator [2] V2XUEAuthorizationIndicator OPTIONAL
+}
+
+LTEV2XServiceAuthorization ::= SEQUENCE
+{
+ v2XVehicleUEAuthorizationIndicator [1] V2XUEAuthorizationIndicator OPTIONAL,
+ v2XPedestrianUEAuthorizationIndicator [2] V2XUEAuthorizationIndicator OPTIONAL
+}
+
+TargetNSSAIInfo ::= SEQUENCE
+{
+ targetSNSSAIList [1] NSSAI,
+ rATFrequencySelectionPriority [2] RATFrequencySelectionPriority
+}
+
+FiveGProSeAuthorizationIndication ::= SEQUENCE
+{
+ fiveGProSeDirectDiscovery [1] FiveGProSeAuthorizationIndicator OPTIONAL,
+ fiveGProSeDirectCommunication [2] FiveGProSeAuthorizationIndicator OPTIONAL,
+ fiveGProSeL2UEToNetworkRelay [3] FiveGProSeAuthorizationIndicator OPTIONAL,
+ fiveGProSeL3UEToNetworkRelay [4] FiveGProSeAuthorizationIndicator OPTIONAL,
+ fiveGProSeL2RemoteUE [5] FiveGProSeAuthorizationIndicator OPTIONAL
+}
+
+IABAuthorizedIndicator ::= ENUMERATED
+{
+ authorized(1),
+ notAuthorized(2)
+}
+
+V2XUEAuthorizationIndicator ::= ENUMERATED
+{
+ authorized(1),
+ notAuthorized(2)
+}
+
+FiveGProSeAuthorizationIndicator ::= ENUMERATED
+{
+ authorized(1),
+ notAuthorized(2)
+}
+
+MUSIMUERequestType ::= OCTET STRING (SIZE(1))
+
+RATFrequencySelectionPriority ::= INTEGER (1..256)
+
+FiveGMMCapability ::= OCTET STRING (SIZE(1..13))
+
+-- TS 29.171 [54], clause 7.4.48 and TS 29.572 [24], clause 6.1.6.2.42
+UEAreaIndication ::= SEQUENCE
+{
+ country [1] UTF8String (SIZE(2)) OPTIONAL,
+ internationalAreaIndication [2] BOOLEAN OPTIONAL
+}
+
+FiveGSUpdateType ::= OCTET STRING (SIZE(1))
+
+UnavailabilityPeriodDuration ::= OCTET STRING (SIZE(1))
+
-- ==================
-- 5G SMF definitions
-- ==================
@@ -961,25 +1913,35 @@ AMFSetID ::= INTEGER (0..1023)
-- See clause 6.2.3.2.2 for details of this structure
SMFPDUSessionEstablishment ::= SEQUENCE
{
- sUPI [1] SUPI OPTIONAL,
- sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
- pEI [3] PEI OPTIONAL,
- gPSI [4] GPSI OPTIONAL,
- pDUSessionID [5] PDUSessionID,
- gTPTunnelID [6] FTEID,
- pDUSessionType [7] PDUSessionType,
- sNSSAI [8] SNSSAI OPTIONAL,
- uEEndpoint [9] SEQUENCE OF UEEndpointAddress OPTIONAL,
- non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
- location [11] Location OPTIONAL,
- dNN [12] DNN,
- aMFID [13] AMFID OPTIONAL,
- hSMFURI [14] HSMFURI OPTIONAL,
- requestType [15] FiveGSMRequestType,
- accessType [16] AccessType OPTIONAL,
- rATType [17] RATType OPTIONAL,
- sMPDUDNRequest [18] SMPDUDNRequest OPTIONAL,
- uEEPSPDNConnection [19] UEEPSPDNConnection OPTIONAL
+ sUPI [1] SUPI OPTIONAL,
+ sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ pDUSessionID [5] PDUSessionID,
+ gTPTunnelID [6] FTEID,
+ pDUSessionType [7] PDUSessionType,
+ sNSSAI [8] SNSSAI OPTIONAL,
+ uEEndpoint [9] SEQUENCE OF UEEndpointAddress OPTIONAL,
+ non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
+ location [11] Location OPTIONAL,
+ dNN [12] DNN,
+ aMFID [13] AMFID OPTIONAL,
+ hSMFURI [14] HSMFURI OPTIONAL,
+ requestType [15] FiveGSMRequestType,
+ accessType [16] AccessType OPTIONAL,
+ rATType [17] RATType OPTIONAL,
+ sMPDUDNRequest [18] SMPDUDNRequest OPTIONAL,
+ uEEPSPDNConnection [19] UEEPSPDNConnection OPTIONAL,
+ ePS5GSComboInfo [20] EPS5GSComboInfo OPTIONAL,
+ selectedDNN [21] DNN OPTIONAL,
+ servingNetwork [22] SMFServingNetwork OPTIONAL,
+ oldPDUSessionID [23] PDUSessionID OPTIONAL,
+ handoverState [24] HandoverState OPTIONAL,
+ gTPTunnelInfo [25] GTPTunnelInfo OPTIONAL,
+ pCCRules [26] PCCRuleSet OPTIONAL,
+ ePSPDNConnectionEstablishment [27] EPSPDNConnectionEstablishment OPTIONAL,
+ satelliteBackhaulCategory [28] SBIType OPTIONAL,
+ gEOSatelliteID [29] GEOSatelliteID OPTIONAL
}
-- See clause 6.2.3.2.3 for details of this structure
@@ -995,7 +1957,18 @@ SMFPDUSessionModification ::= SEQUENCE
requestType [8] FiveGSMRequestType,
accessType [9] AccessType OPTIONAL,
rATType [10] RATType OPTIONAL,
- pDUSessionID [11] PDUSessionID OPTIONAL
+ pDUSessionID [11] PDUSessionID OPTIONAL,
+ ePS5GSComboInfo [12] EPS5GSComboInfo OPTIONAL,
+ uEEndpoint [13] UEEndpointAddress OPTIONAL,
+ servingNetwork [14] SMFServingNetwork OPTIONAL,
+ handoverState [15] HandoverState OPTIONAL,
+ gTPTunnelInfo [16] GTPTunnelInfo OPTIONAL,
+ pCCRules [17] PCCRuleSet OPTIONAL,
+ ePSPDNConnectionModification[18] EPSPDNConnectionModification OPTIONAL,
+ uPPathChange [19] UPPathChange OPTIONAL,
+ pFDDataForApp [20] PFDDataForApp OPTIONAL,
+ satelliteBackhaulCategory [21] SBIType OPTIONAL,
+ gEOSatelliteID [22] GEOSatelliteID OPTIONAL
}
-- See clause 6.2.3.2.4 for details of this structure
@@ -1010,31 +1983,45 @@ SMFPDUSessionRelease ::= SEQUENCE
uplinkVolume [7] INTEGER OPTIONAL,
downlinkVolume [8] INTEGER OPTIONAL,
location [9] Location OPTIONAL,
- cause [10] SMFErrorCodes OPTIONAL
+ cause [10] SMFErrorCodes OPTIONAL,
+ ePS5GSComboInfo [11] EPS5GSComboInfo OPTIONAL,
+ nGAPCause [12] NGAPCauseInt OPTIONAL,
+ fiveGMMCause [13] FiveGMMCause OPTIONAL,
+ pCCRuleIDs [14] PCCRuleIDSet OPTIONAL,
+ ePSPDNConnectionRelease [15] EPSPDNConnectionRelease OPTIONAL
}
-- See clause 6.2.3.2.5 for details of this structure
SMFStartOfInterceptionWithEstablishedPDUSession ::= SEQUENCE
{
- sUPI [1] SUPI OPTIONAL,
- sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
- pEI [3] PEI OPTIONAL,
- gPSI [4] GPSI OPTIONAL,
- pDUSessionID [5] PDUSessionID,
- gTPTunnelID [6] FTEID,
- pDUSessionType [7] PDUSessionType,
- sNSSAI [8] SNSSAI OPTIONAL,
- uEEndpoint [9] SEQUENCE OF UEEndpointAddress,
- non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
- location [11] Location OPTIONAL,
- dNN [12] DNN,
- aMFID [13] AMFID OPTIONAL,
- hSMFURI [14] HSMFURI OPTIONAL,
- requestType [15] FiveGSMRequestType,
- accessType [16] AccessType OPTIONAL,
- rATType [17] RATType OPTIONAL,
- sMPDUDNRequest [18] SMPDUDNRequest OPTIONAL,
- timeOfSessionEstablishment [19] Timestamp OPTIONAL
+ sUPI [1] SUPI OPTIONAL,
+ sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ pDUSessionID [5] PDUSessionID,
+ gTPTunnelID [6] FTEID,
+ pDUSessionType [7] PDUSessionType,
+ sNSSAI [8] SNSSAI OPTIONAL,
+ uEEndpoint [9] SEQUENCE OF UEEndpointAddress,
+ non3GPPAccessEndpoint [10] UEEndpointAddress OPTIONAL,
+ location [11] Location OPTIONAL,
+ dNN [12] DNN,
+ aMFID [13] AMFID OPTIONAL,
+ hSMFURI [14] HSMFURI OPTIONAL,
+ requestType [15] FiveGSMRequestType,
+ accessType [16] AccessType OPTIONAL,
+ rATType [17] RATType OPTIONAL,
+ sMPDUDNRequest [18] SMPDUDNRequest OPTIONAL,
+ timeOfSessionEstablishment [19] Timestamp OPTIONAL,
+ ePS5GSComboInfo [20] EPS5GSComboInfo OPTIONAL,
+ uEEPSPDNConnection [21] UEEPSPDNConnection OPTIONAL,
+ servingNetwork [22] SMFServingNetwork OPTIONAL,
+ gTPTunnelInfo [23] GTPTunnelInfo OPTIONAL,
+ pCCRules [24] PCCRuleSet OPTIONAL,
+ ePSStartOfInterceptionWithEstablishedPDNConnection [25] EPSStartOfInterceptionWithEstablishedPDNConnection OPTIONAL,
+ pFDDataForApps [26] PFDDataForApps OPTIONAL,
+ satelliteBackhaulCategory [27] SBIType OPTIONAL,
+ gEOSatelliteID [28] GEOSatelliteID OPTIONAL
}
-- See clause 6.2.3.2.6 for details of this structure
@@ -1064,66 +2051,83 @@ SMFUnsuccessfulProcedure ::= SEQUENCE
-- See clause 6.2.3.2.8 for details of this structure
SMFPDUtoMAPDUSessionModification ::= SEQUENCE
{
- sUPI [1] SUPI OPTIONAL,
- sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
- pEI [3] PEI OPTIONAL,
- gPSI [4] GPSI OPTIONAL,
- sNSSAI [5] SNSSAI OPTIONAL,
- non3GPPAccessEndpoint [6] UEEndpointAddress OPTIONAL,
- location [7] Location OPTIONAL,
- requestType [8] FiveGSMRequestType,
- accessType [9] AccessType OPTIONAL,
- rATType [10] RATType OPTIONAL,
- pDUSessionID [11] PDUSessionID,
- requestIndication [12] RequestIndication,
- aTSSSContainer [13] ATSSSContainer
+ sUPI [1] SUPI OPTIONAL,
+ sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ sNSSAI [5] SNSSAI OPTIONAL,
+ non3GPPAccessEndpoint [6] UEEndpointAddress OPTIONAL,
+ location [7] Location OPTIONAL,
+ requestType [8] FiveGSMRequestType,
+ accessType [9] AccessType OPTIONAL,
+ rATType [10] RATType OPTIONAL,
+ pDUSessionID [11] PDUSessionID,
+ requestIndication [12] RequestIndication,
+ aTSSSContainer [13] ATSSSContainer,
+ uEEndpoint [14] UEEndpointAddress OPTIONAL,
+ servingNetwork [15] SMFServingNetwork OPTIONAL,
+ handoverState [16] HandoverState OPTIONAL,
+ gTPTunnelInfo [17] GTPTunnelInfo OPTIONAL,
+ ePSPDNConnectionModification [18] EPSPDNConnectionModification OPTIONAL
}
-- See clause 6.2.3.2.7.1 for details of this structure
SMFMAPDUSessionEstablishment ::= SEQUENCE
{
- sUPI [1] SUPI OPTIONAL,
- sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
- pEI [3] PEI OPTIONAL,
- gPSI [4] GPSI OPTIONAL,
- pDUSessionID [5] PDUSessionID,
- pDUSessionType [6] PDUSessionType,
- accessInfo [7] SEQUENCE OF AccessInfo,
- sNSSAI [8] SNSSAI OPTIONAL,
- uEEndpoint [9] SEQUENCE OF UEEndpointAddress OPTIONAL,
- location [10] Location OPTIONAL,
- dNN [11] DNN,
- aMFID [12] AMFID OPTIONAL,
- hSMFURI [13] HSMFURI OPTIONAL,
- requestType [14] FiveGSMRequestType,
- sMPDUDNRequest [15] SMPDUDNRequest OPTIONAL,
- servingNetwork [16] SMFServingNetwork,
- oldPDUSessionID [17] PDUSessionID OPTIONAL,
- mAUpgradeIndication [18] SMFMAUpgradeIndication OPTIONAL,
- ePSPDNCnxInfo [19] SMFEPSPDNCnxInfo OPTIONAL,
- mAAcceptedIndication [20] SMFMAAcceptedIndication,
- aTSSSContainer [21] ATSSSContainer OPTIONAL
+ sUPI [1] SUPI OPTIONAL,
+ sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ pDUSessionID [5] PDUSessionID,
+ pDUSessionType [6] PDUSessionType,
+ accessInfo [7] SEQUENCE OF AccessInfo,
+ sNSSAI [8] SNSSAI OPTIONAL,
+ uEEndpoint [9] SEQUENCE OF UEEndpointAddress OPTIONAL,
+ location [10] Location OPTIONAL,
+ dNN [11] DNN,
+ aMFID [12] AMFID OPTIONAL,
+ hSMFURI [13] HSMFURI OPTIONAL,
+ requestType [14] FiveGSMRequestType,
+ sMPDUDNRequest [15] SMPDUDNRequest OPTIONAL,
+ servingNetwork [16] SMFServingNetwork,
+ oldPDUSessionID [17] PDUSessionID OPTIONAL,
+ mAUpgradeIndication [18] SMFMAUpgradeIndication OPTIONAL,
+ ePSPDNCnxInfo [19] SMFEPSPDNCnxInfo OPTIONAL,
+ mAAcceptedIndication [20] SMFMAAcceptedIndication,
+ aTSSSContainer [21] ATSSSContainer OPTIONAL,
+ uEEPSPDNConnection [22] UEEPSPDNConnection OPTIONAL,
+ ePS5GSComboInfo [23] EPS5GSComboInfo OPTIONAL,
+ selectedDNN [24] DNN OPTIONAL,
+ handoverState [25] HandoverState OPTIONAL,
+ pCCRules [26] PCCRuleSet OPTIONAL,
+ ePSPDNConnectionEstablishment [27] EPSPDNConnectionEstablishment OPTIONAL
}
-- See clause 6.2.3.2.7.2 for details of this structure
SMFMAPDUSessionModification ::= SEQUENCE
{
- sUPI [1] SUPI OPTIONAL,
- sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
- pEI [3] PEI OPTIONAL,
- gPSI [4] GPSI OPTIONAL,
- pDUSessionID [5] PDUSessionID,
- accessInfo [6] SEQUENCE OF AccessInfo OPTIONAL,
- sNSSAI [7] SNSSAI OPTIONAL,
- location [8] Location OPTIONAL,
- requestType [9] FiveGSMRequestType OPTIONAL,
- servingNetwork [10] SMFServingNetwork,
- oldPDUSessionID [11] PDUSessionID OPTIONAL,
- mAUpgradeIndication [12] SMFMAUpgradeIndication OPTIONAL,
- ePSPDNCnxInfo [13] SMFEPSPDNCnxInfo OPTIONAL,
- mAAcceptedIndication [14] SMFMAAcceptedIndication,
- aTSSSContainer [15] ATSSSContainer OPTIONAL
-
+ sUPI [1] SUPI OPTIONAL,
+ sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ pDUSessionID [5] PDUSessionID,
+ accessInfo [6] SEQUENCE OF AccessInfo OPTIONAL,
+ sNSSAI [7] SNSSAI OPTIONAL,
+ location [8] Location OPTIONAL,
+ requestType [9] FiveGSMRequestType OPTIONAL,
+ servingNetwork [10] SMFServingNetwork,
+ oldPDUSessionID [11] PDUSessionID OPTIONAL,
+ mAUpgradeIndication [12] SMFMAUpgradeIndication OPTIONAL,
+ ePSPDNCnxInfo [13] SMFEPSPDNCnxInfo OPTIONAL,
+ mAAcceptedIndication [14] SMFMAAcceptedIndication,
+ aTSSSContainer [15] ATSSSContainer OPTIONAL,
+ uEEPSPDNConnection [16] UEEPSPDNConnection OPTIONAL,
+ ePS5GSComboInfo [17] EPS5GSComboInfo OPTIONAL,
+ handoverState [18] HandoverState OPTIONAL,
+ pCCRules [19] PCCRuleSet OPTIONAL,
+ uPPathChange [20] UPPathChange OPTIONAL,
+ pFDDataForApp [21] PFDDataForApp OPTIONAL,
+ ePSPDNConnectionModification [22] EPSPDNConnectionModification OPTIONAL
}
-- See clause 6.2.3.2.7.3 for details of this structure
@@ -1138,33 +2142,42 @@ SMFMAPDUSessionRelease ::= SEQUENCE
uplinkVolume [7] INTEGER OPTIONAL,
downlinkVolume [8] INTEGER OPTIONAL,
location [9] Location OPTIONAL,
- cause [10] SMFErrorCodes OPTIONAL
+ cause [10] SMFErrorCodes OPTIONAL,
+ nGAPCause [11] NGAPCauseInt OPTIONAL,
+ fiveGMMCause [12] FiveGMMCause OPTIONAL,
+ pCCRuleIDs [13] PCCRuleIDSet OPTIONAL,
+ ePSPDNConnectionRelease [14] EPSPDNConnectionRelease OPTIONAL
}
-- See clause 6.2.3.2.7.4 for details of this structure
SMFStartOfInterceptionWithEstablishedMAPDUSession ::= SEQUENCE
{
- sUPI [1] SUPI OPTIONAL,
- sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
- pEI [3] PEI OPTIONAL,
- gPSI [4] GPSI OPTIONAL,
- pDUSessionID [5] PDUSessionID,
- pDUSessionType [6] PDUSessionType,
- accessInfo [7] SEQUENCE OF AccessInfo,
- sNSSAI [8] SNSSAI OPTIONAL,
- uEEndpoint [9] SEQUENCE OF UEEndpointAddress OPTIONAL,
- location [10] Location OPTIONAL,
- dNN [11] DNN,
- aMFID [12] AMFID OPTIONAL,
- hSMFURI [13] HSMFURI OPTIONAL,
- requestType [14] FiveGSMRequestType OPTIONAL,
- sMPDUDNRequest [15] SMPDUDNRequest OPTIONAL,
- servingNetwork [16] SMFServingNetwork,
- oldPDUSessionID [17] PDUSessionID OPTIONAL,
- mAUpgradeIndication [18] SMFMAUpgradeIndication OPTIONAL,
- ePSPDNCnxInfo [19] SMFEPSPDNCnxInfo OPTIONAL,
- mAAcceptedIndication [20] SMFMAAcceptedIndication,
- aTSSSContainer [21] ATSSSContainer OPTIONAL
+ sUPI [1] SUPI OPTIONAL,
+ sUPIUnauthenticated [2] SUPIUnauthenticatedIndication OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ pDUSessionID [5] PDUSessionID,
+ pDUSessionType [6] PDUSessionType,
+ accessInfo [7] SEQUENCE OF AccessInfo,
+ sNSSAI [8] SNSSAI OPTIONAL,
+ uEEndpoint [9] SEQUENCE OF UEEndpointAddress OPTIONAL,
+ location [10] Location OPTIONAL,
+ dNN [11] DNN,
+ aMFID [12] AMFID OPTIONAL,
+ hSMFURI [13] HSMFURI OPTIONAL,
+ requestType [14] FiveGSMRequestType OPTIONAL,
+ sMPDUDNRequest [15] SMPDUDNRequest OPTIONAL,
+ servingNetwork [16] SMFServingNetwork,
+ oldPDUSessionID [17] PDUSessionID OPTIONAL,
+ mAUpgradeIndication [18] SMFMAUpgradeIndication OPTIONAL,
+ ePSPDNCnxInfo [19] SMFEPSPDNCnxInfo OPTIONAL,
+ mAAcceptedIndication [20] SMFMAAcceptedIndication,
+ aTSSSContainer [21] ATSSSContainer OPTIONAL,
+ ePS5GSComboInfo [22] EPS5GSComboInfo OPTIONAL,
+ uEEPSPDNConnection [23] UEEPSPDNConnection OPTIONAL,
+ pCCRules [24] PCCRuleSet OPTIONAL,
+ pFDDataForApps [25] PFDDataForApps OPTIONAL,
+ ePSStartOfInterceptionWithEstablishedPDNConnection [26] EPSStartOfInterceptionWithEstablishedPDNConnection OPTIONAL
}
-- See clause 6.2.3.2.7.5 for details of this structure
@@ -1211,23 +2224,63 @@ SMFServingNetwork ::= SEQUENCE
AccessInfo ::= SEQUENCE
{
- accessType [1] AccessType,
- rATType [2] RATType OPTIONAL,
- gTPTunnelID [3] FTEID,
- non3GPPAccessEndpoint [4] UEEndpointAddress OPTIONAL,
- establishmentStatus [5] EstablishmentStatus,
- aNTypeToReactivate [6] AccessType OPTIONAL
+ accessType [1] AccessType,
+ rATType [2] RATType OPTIONAL,
+ gTPTunnelID [3] FTEID,
+ non3GPPAccessEndpoint [4] UEEndpointAddress OPTIONAL,
+ establishmentStatus [5] EstablishmentStatus,
+ aNTypeToReactivate [6] AccessType OPTIONAL,
+ gTPTunnelInfo [7] GTPTunnelInfo OPTIONAL,
+ satelliteBackhaulCategory [8] SBIType OPTIONAL,
+ gEOSatelliteID [9] GEOSatelliteID OPTIONAL
}
-- see Clause 6.1.2 of TS 24.193[44] for the details of the ATSSS container contents.
ATSSSContainer ::= OCTET STRING
+DLRANTunnelInformation ::= SEQUENCE
+{
+ dLQOSFlowTunnelInformation [1] QOSFlowTunnelInformation OPTIONAL,
+ additionalDLQOSFlowTunnelInformation [2] QOSFlowTunnelInformationList OPTIONAL,
+ redundantDLQOSFlowTunnelInformation [3] QOSFlowTunnelInformationList OPTIONAL,
+ additionalredundantDLQOSFlowTunnelInformation [4] QOSFlowTunnelInformationList OPTIONAL
+}
+
EstablishmentStatus ::= ENUMERATED
{
established(0),
released(1)
}
+FiveGSGTPTunnels ::= SEQUENCE
+{
+ uLNGUUPTunnelInformation [1] FTEID OPTIONAL,
+ additionalULNGUUPTunnelInformation [2] FTEIDList OPTIONAL,
+ dLRANTunnelInformation [3] DLRANTunnelInformation OPTIONAL
+}
+
+FiveQI ::= INTEGER (0..255)
+
+HandoverState ::= ENUMERATED
+{
+ none(1),
+ preparing(2),
+ prepared(3),
+ completed(4),
+ cancelled(5)
+}
+
+NGAPCauseInt ::= SEQUENCE
+{
+ group [1] NGAPCauseGroupInt,
+ value [2] NGAPCauseValueInt
+}
+
+-- Derived as described in TS 29.571 [17] clause 5.4.4.12
+NGAPCauseGroupInt ::= INTEGER
+
+NGAPCauseValueInt ::= INTEGER
+
SMFMAUpgradeIndication ::= BOOLEAN
-- Given in YAML encoding as defined in clause 6.1.6.2.31 of TS 29.502[16]
@@ -1254,6 +2307,546 @@ RequestIndication ::= ENUMERATED
rELDUETO5GANREQUEST(7)
}
+QOSFlowTunnelInformation ::= SEQUENCE
+{
+ uPTunnelInformation [1] FTEID,
+ associatedQOSFlowList [2] QOSFlowLists
+}
+
+QOSFlowTunnelInformationList ::= SEQUENCE OF QOSFlowTunnelInformation
+
+QOSFlowDescription ::= OCTET STRING
+
+QOSFlowLists ::= SEQUENCE OF QOSFlowList
+
+QOSFlowList ::= SEQUENCE
+{
+ qFI [1] QFI,
+ qOSRules [2] QOSRules OPTIONAL,
+ eBI [3] EPSBearerID OPTIONAL,
+ qOSFlowDescription [4] QOSFlowDescription OPTIONAL,
+ qOSFlowProfile [5] QOSFlowProfile OPTIONAL,
+ associatedANType [6] AccessType OPTIONAL,
+ defaultQOSRuleIndication [7] BOOLEAN OPTIONAL
+}
+
+QOSFlowProfile ::= SEQUENCE
+{
+ fiveQI [1] FiveQI
+}
+
+QOSRules ::= OCTET STRING
+
+-- See clauses 5.6.2.6-1 and 5.6.2.9-1 of TS 29.512 [89], clause table 5.6.2.5-1 of TS 29.508 [90] for the details of this structure
+PCCRule ::= SEQUENCE
+{
+ pCCRuleID [1] PCCRuleID OPTIONAL,
+ appId [2] UTF8String OPTIONAL,
+ flowInfos [3] FlowInformationSet OPTIONAL,
+ appReloc [4] BOOLEAN OPTIONAL,
+ simConnInd [5] BOOLEAN OPTIONAL,
+ simConnTerm [6] INTEGER OPTIONAL,
+ maxAllowedUpLat [7] INTEGER OPTIONAL,
+ trafficRoutes [8] RouteToLocationSet,
+ trafficSteeringPolIdDl [9] UTF8String OPTIONAL,
+ trafficSteeringPolIdUl [10] UTF8String OPTIONAL,
+ deprecatedSourceDNAI [11] DNAI OPTIONAL,
+ deprecatedTargetDNAI [12] DNAI OPTIONAL,
+ deprecatedDNAIChangeType [13] DNAIChangeType OPTIONAL,
+ deprecatedSourceUEIPAddr [14] IPAddress OPTIONAL,
+ deprecatedTargetUEIPAddr [15] IPAddress OPTIONAL,
+ sourceTrafficRouting [16] RouteToLocation OPTIONAL,
+ targetTrafficRouting [17] RouteToLocation OPTIONAL,
+ eASIPReplaceInfos [18] EASIPReplaceInfos OPTIONAL
+}
+
+-- See clause table 5.6.2.5-1 of TS 29.508 [90] for the details of this structure.
+UPPathChange ::= SEQUENCE
+{
+ sourceDNAI [1] DNAI OPTIONAL,
+ targetDNAI [2] DNAI OPTIONAL,
+ dNAIChangeType [3] DNAIChangeType OPTIONAL,
+ sourceUEIPAddr [4] IPAddress OPTIONAL,
+ targetUEIPAddr [5] IPAddress OPTIONAL,
+ sourceTrafficRouting [6] RouteToLocation OPTIONAL,
+ targetTrafficRouting [7] RouteToLocation OPTIONAL,
+ mACAddress [8] MACAddress OPTIONAL
+}
+
+-- See table 5.6.2.14-1 of TS 29.512 [89]
+PCCRuleID ::= UTF8String
+
+PCCRuleSet ::= SET OF PCCRule
+
+PCCRuleIDSet ::= SET OF PCCRuleID
+
+FlowInformationSet ::= SET OF FlowInformation
+
+RouteToLocationSet ::= SET OF RouteToLocation
+
+-- See table 5.6.2.14 of TS 29.512 [89]
+FlowInformation ::= SEQUENCE
+{
+ flowDescription [1] FlowDescription OPTIONAL,
+ ethFlowDescription [2] EthFlowDescription OPTIONAL,
+ tosTrafficClass [3] OCTET STRING (SIZE(2)) OPTIONAL,
+ spi [4] OCTET STRING (SIZE(4)) OPTIONAL,
+ flowLabel [5] OCTET STRING (SIZE(3)) OPTIONAL,
+ flowDirection [6] FlowDirection OPTIONAL
+}
+
+-- See table 5.6.2.14 of TS 29.512 [89]
+FlowDescription ::= SEQUENCE
+{
+ sourceIPAddress [1] IPAddressOrRangeOrAny,
+ destinationIPAddress [2] IPAddressOrRangeOrAny,
+ sourcePortNumber [3] PortNumber OPTIONAL,
+ destinationPortNumber [4] PortNumber OPTIONAL,
+ protocol [5] NextLayerProtocolOrAny
+}
+
+IPAddressOrRangeOrAny ::= CHOICE
+{
+ iPAddress [1] IPAddress,
+ ipAddressRange [2] IPMask,
+ anyIPAddress [3] AnyIPAddress
+}
+
+IPMask ::= SEQUENCE
+{
+ fromIPAddress [1] IPAddress,
+ toIPAddress [2] IPAddress
+}
+
+AnyIPAddress ::= ENUMERATED
+{
+ any(1)
+}
+
+NextLayerProtocolOrAny ::= CHOICE
+{
+ nextLayerProtocol [1] NextLayerProtocol,
+ anyNextLayerProtocol [2] AnyNextLayerProtocol
+}
+
+AnyNextLayerProtocol ::= ENUMERATED
+{
+ ip(1)
+}
+
+-- See table 5.6.2.17-1 of TS 29.514 [91]
+EthFlowDescription ::= SEQUENCE
+{
+ destMacAddress [1] MACAddress OPTIONAL,
+ ethType [2] OCTET STRING (SIZE(2)),
+ fDesc [3] FlowDescription OPTIONAL,
+ fDir [4] FDir OPTIONAL,
+ sourceMacAddress [5] MACAddress OPTIONAL,
+ vlanTags [6] SET OF VLANTag,
+ srcMacAddrEnd [7] MACAddress OPTIONAL,
+ destMacAddrEnd [8] MACAddress OPTIONAL
+}
+
+-- See table 5.6.2.17-1 of TS 29.514 [91]
+FDir ::= ENUMERATED
+{
+ downlink(1)
+}
+
+-- See table 5.6.2.17-1 of TS 29.514 [91]
+VLANTag ::= SEQUENCE
+{
+ priority [1] BIT STRING (SIZE(3)),
+ cFI [2] BIT STRING (SIZE(1)),
+ vLANID [3] BIT STRING (SIZE(12))
+}
+
+-- See table 5.6.2.14 of TS 29.512 [89]
+FlowDirection ::= ENUMERATED
+{
+ downlinkOnly(1),
+ uplinkOnly(2),
+ dowlinkAndUplink(3)
+}
+
+-- See table 5.4.2.1 of TS 29.571 [17]
+DNAIChangeType ::= ENUMERATED
+{
+ early(1),
+ earlyAndLate(2),
+ late(3)
+}
+
+-- See table 5.6.2.15 of TS 29.571 [17]
+RouteToLocation ::= SEQUENCE
+{
+ dNAI [1] DNAI,
+ routeInfo [2] RouteInfo
+}
+
+-- See table 5.4.2.1 of TS 29.571 [17]
+DNAI ::= UTF8String
+
+-- See table 5.4.4.16 of TS 29.571 [17]
+RouteInfo ::= SEQUENCE
+{
+ iPAddressTunnelEndpoint [1] IPAddress,
+ uDPPortNumberTunnelEndpoint [2] PortNumber
+}
+
+-- See clause 4.1.4.2 of TS 29.512 [89]
+EASIPReplaceInfos ::= SEQUENCE
+{
+ sourceEASAddress [1] EASServerAddress,
+ targetEASAddress [2] EASServerAddress
+}
+
+-- See clause 4.1.4.2 of TS 29.512 [89]
+EASServerAddress ::= SEQUENCE
+{
+ iPAddress [1] IPAddress,
+ port [2] PortNumber
+}
+
+-- See table 5.4.2.1 of TS 29.571 [17]
+GEOSatelliteID ::= UTF8String
+
+-- ================================
+-- PGW-C + SMF PDNConnection Events
+-- ================================
+
+EPSPDNConnectionEstablishment ::= SEQUENCE
+{
+ ePSSubscriberIDs [1] EPSSubscriberIDs,
+ iMSIUnauthenticated [2] IMSIUnauthenticatedIndication OPTIONAL,
+ defaultBearerID [3] EPSBearerID,
+ gTPTunnelInfo [4] GTPTunnelInfo OPTIONAL,
+ pDNConnectionType [5] PDNConnectionType,
+ uEEndpoints [6] SEQUENCE OF UEEndpointAddress OPTIONAL,
+ non3GPPAccessEndpoint [7] UEEndpointAddress OPTIONAL,
+ location [8] Location OPTIONAL,
+ additionalLocation [9] Location OPTIONAL,
+ aPN [10] APN,
+ requestType [11] EPSPDNConnectionRequestType OPTIONAL,
+ accessType [12] AccessType OPTIONAL,
+ rATType [13] RATType OPTIONAL,
+ protocolConfigurationOptions [14] PDNProtocolConfigurationOptions OPTIONAL,
+ servingNetwork [15] SMFServingNetwork OPTIONAL,
+ sMPDUDNRequest [16] SMPDUDNRequest OPTIONAL,
+ bearerContextsCreated [17] SEQUENCE OF EPSBearerContextCreated,
+ bearerContextsMarkedForRemoval [18] SEQUENCE OF EPSBearerContextForRemoval OPTIONAL,
+ indicationFlags [19] PDNConnectionIndicationFlags OPTIONAL,
+ handoverIndication [20] PDNHandoverIndication OPTIONAL,
+ nBIFOMSupport [21] PDNNBIFOMSupport OPTIONAL,
+ fiveGSInterworkingInfo [22] FiveGSInterworkingInfo OPTIONAL,
+ cSRMFI [23] CSRMFI OPTIONAL,
+ restorationOfPDNConnectionsSupport [24] RestorationOfPDNConnectionsSupport OPTIONAL,
+ pGWChangeIndication [25] PGWChangeIndication OPTIONAL,
+ pGWRNSI [26] PGWRNSI OPTIONAL
+}
+
+EPSPDNConnectionModification ::= SEQUENCE
+{
+ ePSSubscriberIDs [1] EPSSubscriberIDs,
+ iMSIUnauthenticated [2] IMSIUnauthenticatedIndication OPTIONAL,
+ defaultBearerID [3] EPSBearerID,
+ gTPTunnelInfo [4] GTPTunnelInfo OPTIONAL,
+ pDNConnectionType [5] PDNConnectionType,
+ uEEndpoints [6] SEQUENCE OF UEEndpointAddress OPTIONAL,
+ non3GPPAccessEndpoint [7] UEEndpointAddress OPTIONAL,
+ location [8] Location OPTIONAL,
+ additionalLocation [9] Location OPTIONAL,
+ aPN [10] APN,
+ requestType [11] EPSPDNConnectionRequestType OPTIONAL,
+ accessType [12] AccessType OPTIONAL,
+ rATType [13] RATType OPTIONAL,
+ protocolConfigurationOptions [14] PDNProtocolConfigurationOptions OPTIONAL,
+ servingNetwork [15] SMFServingNetwork OPTIONAL,
+ sMPDUDNRequest [16] SMPDUDNRequest OPTIONAL,
+ bearerContextsCreated [17] SEQUENCE OF EPSBearerContextCreated OPTIONAL,
+ bearerContextsModified [18] SEQUENCE OF EPSBearerContextModified,
+ bearerContextsMarkedForRemoval [19] SEQUENCE OF EPSBearerContextForRemoval OPTIONAL,
+ bearersDeleted [20] SEQUENCE OF EPSBearersDeleted OPTIONAL,
+ indicationFlags [21] PDNConnectionIndicationFlags OPTIONAL,
+ handoverIndication [22] PDNHandoverIndication OPTIONAL,
+ nBIFOMSupport [23] PDNNBIFOMSupport OPTIONAL,
+ fiveGSInterworkingInfo [24] FiveGSInterworkingInfo OPTIONAL,
+ cSRMFI [25] CSRMFI OPTIONAL,
+ restorationOfPDNConnectionsSupport [26] RestorationOfPDNConnectionsSupport OPTIONAL,
+ pGWChangeIndication [27] PGWChangeIndication OPTIONAL,
+ pGWRNSI [28] PGWRNSI OPTIONAL
+}
+
+EPSPDNConnectionRelease ::= SEQUENCE
+{
+ ePSSubscriberIDs [1] EPSSubscriberIDs,
+ iMSIUnauthenticated [2] IMSIUnauthenticatedIndication OPTIONAL,
+ defaultBearerID [3] EPSBearerID,
+ location [4] Location OPTIONAL,
+ gTPTunnelInfo [5] GTPTunnelInfo OPTIONAL,
+ rANNASCause [6] EPSRANNASCause OPTIONAL,
+ pDNConnectionType [7] PDNConnectionType,
+ indicationFlags [8] PDNConnectionIndicationFlags OPTIONAL,
+ scopeIndication [9] EPSPDNConnectionReleaseScopeIndication OPTIONAL,
+ bearersDeleted [10] SEQUENCE OF EPSBearersDeleted OPTIONAL
+}
+
+EPSStartOfInterceptionWithEstablishedPDNConnection ::= SEQUENCE
+{
+ ePSSubscriberIDs [1] EPSSubscriberIDs,
+ iMSIUnauthenticated [2] IMSIUnauthenticatedIndication OPTIONAL,
+ defaultBearerID [3] EPSBearerID,
+ gTPTunnelInfo [4] GTPTunnelInfo OPTIONAL,
+ pDNConnectionType [5] PDNConnectionType,
+ uEEndpoints [6] SEQUENCE OF UEEndpointAddress OPTIONAL,
+ non3GPPAccessEndpoint [7] UEEndpointAddress OPTIONAL,
+ location [8] Location OPTIONAL,
+ additionalLocation [9] Location OPTIONAL,
+ aPN [10] APN,
+ requestType [11] EPSPDNConnectionRequestType OPTIONAL,
+ accessType [12] AccessType OPTIONAL,
+ rATType [13] RATType OPTIONAL,
+ protocolConfigurationOptions [14] PDNProtocolConfigurationOptions OPTIONAL,
+ servingNetwork [15] SMFServingNetwork OPTIONAL,
+ sMPDUDNRequest [16] SMPDUDNRequest OPTIONAL,
+ bearerContexts [17] SEQUENCE OF EPSBearerContext
+}
+
+PFDDataForApps ::= SET OF PFDDataForApp
+
+PFDDataForApp ::= SEQUENCE
+{
+ aPPId [1] UTF8String,
+ pFDs [2] PFDs
+}
+
+PFDs ::= SET OF PFD
+
+-- See clause 5.6.2.5 of TS 29.551 [96]
+PFD ::= SEQUENCE
+{
+ pFDId [1] UTF8String,
+ pFDFlowDescriptions [2] PFDFlowDescriptions,
+ urls [3] PFDURLs,
+ domainNames [4] DomainNames,
+ dnProtocol [5] DnProtocol
+}
+
+PFDURLs ::= SET OF UTF8String
+
+PFDFlowDescriptions ::= SET OF PFDFlowDescription
+
+DomainNames ::= SET OF UTF8String
+
+PFDFlowDescription ::= SEQUENCE
+{
+ nextLayerProtocol [1] NextLayerProtocol,
+ serverIPAddress [2] IPAddress,
+ serverPortNumber [3] PortNumber
+}
+
+-- See clause 5.14.2.2.4 of TS 29.122 [63]
+DnProtocol ::= ENUMERATED
+{
+ dnsQname(1),
+ tlsSni(2),
+ tlsSan(3),
+ tlsScn(4)
+}
+
+-- ======================
+-- PGW-C + SMF Parameters
+-- ======================
+
+CSRMFI ::= BOOLEAN
+
+EPS5GSComboInfo ::= SEQUENCE
+{
+ ePSInterworkingIndication [1] EPSInterworkingIndication,
+ ePSSubscriberIDs [2] EPSSubscriberIDs,
+ ePSPDNCnxInfo [3] EPSPDNCnxInfo OPTIONAL,
+ ePSBearerInfo [4] EPSBearerInfo OPTIONAL
+}
+
+EPSInterworkingIndication ::= ENUMERATED
+{
+ none(1),
+ withN26(2),
+ withoutN26(3),
+ iwkNon3GPP(4)
+}
+
+EPSSubscriberIDs ::= SEQUENCE
+{
+ iMSI [1] IMSI OPTIONAL,
+ mSISDN [2] MSISDN OPTIONAL,
+ iMEI [3] IMEI OPTIONAL
+}
+
+EPSPDNCnxInfo ::= SEQUENCE
+{
+ pGWS8ControlPlaneFTEID [1] FTEID,
+ linkedBearerID [2] EPSBearerID OPTIONAL
+}
+
+EPSBearerInfo ::= SEQUENCE OF EPSBearers
+
+EPSBearers ::= SEQUENCE
+{
+ ePSBearerID [1] EPSBearerID,
+ pGWS8UserPlaneFTEID [2] FTEID,
+ qCI [3] QCI
+}
+
+EPSBearerContext ::= SEQUENCE
+{
+ ePSBearerID [1] EPSBearerID,
+ uPGTPTunnelInfo [2] GTPTunnelInfo,
+ bearerQOS [3] EPSBearerQOS
+}
+
+EPSBearerContextCreated ::= SEQUENCE
+{
+ ePSBearerID [1] EPSBearerID,
+ cause [2] EPSBearerCreationCauseValue,
+ gTPTunnelInfo [3] GTPTunnelInfo OPTIONAL,
+ bearerQOS [4] EPSBearerQOS OPTIONAL,
+ protocolConfigurationOptions [5] PDNProtocolConfigurationOptions OPTIONAL
+}
+
+EPSBearerContextModified ::= SEQUENCE
+{
+ ePSBearerID [1] EPSBearerID,
+ cause [2] EPSBearerModificationCauseValue,
+ gTPTunnelInfo [3] GTPTunnelInfo OPTIONAL,
+ bearerQOS [4] EPSBearerQOS OPTIONAL,
+ protocolConfigurationOptions [5] PDNProtocolConfigurationOptions OPTIONAL,
+ linkedBearerIDs [6] SEQUENCE OF EPSBearerID OPTIONAL
+}
+
+EPSBearersDeleted ::= SEQUENCE
+{
+ linkedEPSBearerID [1] EPSBearerID OPTIONAL,
+ ePSBearerIDs [2] SEQUENCE OF EPSBearerID OPTIONAL,
+ protocolConfigurationOptions [3] PDNProtocolConfigurationOptions OPTIONAL,
+ cause [4] EPSBearerDeletionCauseValue OPTIONAL,
+ deleteBearerResponse [5] EPSDeleteBearerResponse
+}
+
+EPSDeleteBearerResponse ::= SEQUENCE
+{
+ cause [1] EPSBearerDeletionCauseValue,
+ linkedEPSBearerID [2] EPSBearerID OPTIONAL,
+ bearerContexts [3] SEQUENCE OF EPSDeleteBearerContext OPTIONAL,
+ protocolConfigurationOptions [4] PDNProtocolConfigurationOptions OPTIONAL
+}
+
+EPSDeleteBearerContext ::= SEQUENCE
+{
+ cause [1] EPSBearerDeletionCauseValue,
+ ePSBearerID [2] EPSBearerID,
+ protocolConfigurationOptions [3] PDNProtocolConfigurationOptions OPTIONAL,
+ rANNASCause [4] EPSRANNASCause OPTIONAL
+}
+
+EPSBearerContextForRemoval ::= SEQUENCE
+{
+ ePSBearerID [1] EPSBearerID,
+ cause [2] EPSBearerRemovalCauseValue
+}
+
+EPSBearerCreationCauseValue ::= INTEGER (0..255)
+
+EPSBearerDeletionCauseValue ::= INTEGER (0..255)
+
+EPSBearerModificationCauseValue ::= INTEGER (0..255)
+
+EPSBearerRemovalCauseValue ::= INTEGER (0..255)
+
+EPSBearerQOS ::= SEQUENCE
+{
+ qCI [1] QCI OPTIONAL,
+ maximumUplinkBitRate [2] BitrateBinKBPS OPTIONAL,
+ maximumDownlinkBitRate [3] BitrateBinKBPS OPTIONAL,
+ guaranteedUplinkBitRate [4] BitrateBinKBPS OPTIONAL,
+ guaranteedDownlinkBitRate [5] BitrateBinKBPS OPTIONAL,
+ priorityLevel [6] EPSQOSPriority OPTIONAL
+}
+
+EPSRANNASCause ::= OCTET STRING
+
+EPSQOSPriority ::= INTEGER (1..15)
+
+BitrateBinKBPS ::= OCTET STRING
+
+EPSGTPTunnels ::= SEQUENCE
+{
+ controlPlaneSenderFTEID [1] FTEID OPTIONAL,
+ controlPlanePGWS5S8FTEID [2] FTEID OPTIONAL,
+ s1UeNodeBFTEID [3] FTEID OPTIONAL,
+ s5S8SGWFTEID [4] FTEID OPTIONAL,
+ s5S8PGWFTEID [5] FTEID OPTIONAL,
+ s2bUePDGFTEID [6] FTEID OPTIONAL,
+ s2aUePDGFTEID [7] FTEID OPTIONAL
+}
+
+EPSPDNConnectionRequestType ::= ENUMERATED
+{
+ initialRequest(1),
+ handover(2),
+ rLOS(3),
+ emergency(4),
+ handoverOfEmergencyBearerServices(5),
+ reserved(6)
+}
+
+EPSPDNConnectionReleaseScopeIndication ::= BOOLEAN
+
+FiveGSInterworkingInfo ::= SEQUENCE
+{
+ fiveGSInterworkingIndicator [1] FiveGSInterworkingIndicator,
+ fiveGSInterworkingWithoutN26 [2] FiveGSInterworkingWithoutN26,
+ fiveGCNotRestrictedSupport [3] FiveGCNotRestrictedSupport
+}
+
+FiveGSInterworkingIndicator ::= BOOLEAN
+
+FiveGSInterworkingWithoutN26 ::= BOOLEAN
+
+FiveGCNotRestrictedSupport ::= BOOLEAN
+
+PDNConnectionIndicationFlags ::= OCTET STRING
+
+PDNHandoverIndication ::= BOOLEAN
+
+PDNNBIFOMSupport ::= BOOLEAN
+
+PDNProtocolConfigurationOptions ::= SEQUENCE
+{
+ requestPCO [1] PDNPCO OPTIONAL,
+ requestAPCO [2] PDNPCO OPTIONAL,
+ requestEPCO [3] PDNPCO OPTIONAL,
+ responsePCO [4] PDNPCO OPTIONAL,
+ responseAPCO [5] PDNPCO OPTIONAL,
+ responseEPCO [6] PDNPCO OPTIONAL
+}
+
+PDNPCO ::= OCTET STRING
+
+PGWChangeIndication ::= BOOLEAN
+
+PGWRNSI ::= BOOLEAN
+
+QCI ::= INTEGER (0..255)
+
+GTPTunnelInfo ::= SEQUENCE
+{
+ fiveGSGTPTunnels [1] FiveGSGTPTunnels OPTIONAL,
+ ePSGTPTunnels [2] EPSGTPTunnels OPTIONAL
+}
+
+RestorationOfPDNConnectionsSupport ::= BOOLEAN
+
-- ==================
-- 5G UPF definitions
-- ==================
@@ -1293,7 +2886,8 @@ UDMServingSystemMessage ::= SEQUENCE
gUMMEI [5] GUMMEI OPTIONAL,
pLMNID [6] PLMNID OPTIONAL,
servingSystemMethod [7] UDMServingSystemMethod,
- serviceID [8] ServiceID OPTIONAL
+ serviceID [8] ServiceID OPTIONAL,
+ roamingIndicator [9] RoamingIndicator OPTIONAL
}
UDMSubscriberRecordChangeMessage ::= SEQUENCE
@@ -1316,9 +2910,77 @@ UDMCancelLocationMessage ::= SEQUENCE
gPSI [3] GPSI OPTIONAL,
gUAMI [4] GUAMI OPTIONAL,
pLMNID [5] PLMNID OPTIONAL,
- cancelLocationMethod [6] UDMCancelLocationMethod
+ cancelLocationMethod [6] UDMCancelLocationMethod,
+ aMFDeregistrationInfo [7] UDMAMFDeregistrationInfo OPTIONAL,
+ deregistrationData [8] UDMDeregistrationData OPTIONAL
+}
+
+UDMLocationInformationResult ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ pEI [2] PEI OPTIONAL,
+ gPSI [3] GPSI OPTIONAL,
+ locationInfoRequest [4] UDMLocationInfoRequest,
+ vPLMNID [5] PLMNID OPTIONAL,
+ currentLocationIndicator [6] BOOLEAN OPTIONAL,
+ aMFInstanceID [7] NFID OPTIONAL,
+ sMSFInstanceID [8] NFID OPTIONAL,
+ location [9] Location OPTIONAL,
+ rATType [10] RATType OPTIONAL,
+ problemDetails [11] UDMProblemDetails OPTIONAL
+}
+
+UDMUEInformationResponse ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ tADSInfo [2] UEContextInfo OPTIONAL,
+ fiveGSUserStateInfo [3] FiveGSUserStateInfo OPTIONAL,
+ fiveGSRVCCInfo [4] FiveGSRVCCInfo OPTIONAL,
+ problemDetails [5] UDMProblemDetails OPTIONAL
+}
+
+UDMUEAuthenticationResponse ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ authenticationInfoRequest [2] UDMAuthenticationInfoRequest,
+ aKMAIndicator [3] BOOLEAN OPTIONAL,
+ problemDetails [4] UDMProblemDetails OPTIONAL,
+ authAAA [5] BOOLEAN OPTIONAL,
+ pvsInfo [6] ServerAddressingInfoList OPTIONAL
+}
+
+UDMStartOfInterceptionWithRegisteredTarget ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ gPSI [2] GPSI OPTIONAL,
+ uDMSubscriptionDataSets [3] SBIType
+}
+
+UDMProSeTargetIdentifierDeconcealment ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ sUCI [2] SUCI
+}
+
+UDMProSeTargetAuthentication ::= SEQUENCE
+{
+ servingNetworkName [1] UTF8String,
+ relayServiceCode [2] INTEGER,
+ authenticationType [3] PrimaryAuthenticationType,
+ sUPI [4] SUPI
}
+ServerAddressingInfoList ::= SEQUENCE (SIZE(1..MAX)) OF ServerAddressingInfo
+
+ServerAddressingInfo ::= SEQUENCE
+{
+ iPv4Address [1] IPv4Address OPTIONAL,
+ iPv6Address [2] IPv6Address OPTIONAL,
+ fQDNList [3] FQDNList OPTIONAL
+}
+
+FQDNList ::= SEQUENCE (SIZE(1..MAX)) OF FQDN
+
-- =================
-- 5G UDM parameters
-- =================
@@ -1356,6 +3018,100 @@ ServiceID ::= SEQUENCE
CAGID ::= UTF8String
+UDMAuthenticationInfoRequest ::= SEQUENCE
+{
+ infoRequestType [1] UDMInfoRequestType,
+ rGAuthCtx [2] SEQUENCE SIZE(1..MAX) OF SubscriberIdentifier,
+ authType [3] PrimaryAuthenticationType,
+ servingNetworkName [4] PLMNID,
+ aUSFInstanceID [5] NFID OPTIONAL,
+ cellCAGInfo [6] CAGID OPTIONAL,
+ n5GCIndicator [7] BOOLEAN OPTIONAL
+}
+
+UDMLocationInfoRequest ::= SEQUENCE
+{
+ requested5GSLocation [1] BOOLEAN OPTIONAL,
+ requestedCurrentLocation [2] BOOLEAN OPTIONAL,
+ requestedRATType [3] BOOLEAN OPTIONAL,
+ requestedTimeZone [4] BOOLEAN OPTIONAL,
+ requestedServingNode [5] BOOLEAN OPTIONAL
+}
+
+UDMProblemDetails ::= SEQUENCE
+{
+ cause [1] UDMProblemDetailsCause OPTIONAL
+}
+
+UDMProblemDetailsCause ::= CHOICE
+{
+ uDMDefinedCause [1] UDMDefinedCause,
+ otherCause [2] UDMProblemDetailsOtherCause
+}
+
+UDMDefinedCause ::= ENUMERATED
+{
+ userNotFound(1),
+ dataNotFound(2),
+ contextNotFound(3),
+ subscriptionNotFound(4),
+ other(5)
+}
+
+UDMInfoRequestType ::= ENUMERATED
+{
+ hSS(1),
+ aUSF(2),
+ other(3)
+}
+
+UDMProblemDetailsOtherCause ::= SEQUENCE
+{
+ problemDetailsType [1] UTF8String OPTIONAL,
+ title [2] UTF8String OPTIONAL,
+ status [3] INTEGER OPTIONAL,
+ detail [4] UTF8String OPTIONAL,
+ instance [5] UTF8String OPTIONAL,
+ cause [6] UTF8String OPTIONAL,
+ uDMInvalidParameters [7] UDMInvalidParameters,
+ uDMSupportedFeatures [8] UTF8String
+}
+
+UDMInvalidParameters ::= SEQUENCE
+{
+ parameter [1] UTF8String OPTIONAL,
+ reason [2] UTF8String OPTIONAL
+}
+
+RoamingIndicator ::= BOOLEAN
+
+UDMAMFDeregistrationInfo ::= SEQUENCE
+{
+ gUAMI [1] GUAMI,
+ purgeFlag [2] BOOLEAN
+}
+
+UDMDeregistrationData ::= SEQUENCE
+{
+ deregReason [1] UDMDeregReason OPTIONAL,
+ accessType [2] AccessType OPTIONAL,
+ pDUSessionID [3] PDUSessionID OPTIONAL
+}
+
+UDMDeregReason ::= ENUMERATED
+{
+ uEInitialRegistration(1),
+ uERegistrationAreaChange(2),
+ subscriptionWithdrawn(3),
+ fiveGSToEPSMobility(4),
+ fiveGSToEPSMobilityUeInitialRegistration(5),
+ reregistrationRequired(6),
+ sMFContextTransferred(7),
+ duplicatePDUSession(8),
+ fiveGSRVCCToUTRANMobility(9),
+ pDUSessionReactivationRequired(10),
+ disasterConditionTerminated(11)
+}
-- ===================
-- 5G SMSF definitions
-- ===================
@@ -1437,12 +3193,17 @@ SMSRPMessageReference ::= INTEGER (0..255)
SMSTPDUData ::= CHOICE
{
- sMSTPDU [1] SMSTPDU,
- truncatedSMSTPDU [2] TruncatedSMSTPDU
+ sMSTPDU [1] SMSTPDU,
+ truncatedSMSTPDU [2] TruncatedSMSTPDU,
+ redactedSMSTPDU [3] SMSTPDU,
+ threeGPP2SMSTPDU [4] ThreeGPP2SMSTPDU,
+ redacted3GPP2SMSTPDU [5] ThreeGPP2SMSTPDU
}
SMSTPDU ::= OCTET STRING (SIZE(1..270))
+ThreeGPP2SMSTPDU ::= OCTET STRING
+
TruncatedSMSTPDU ::= OCTET STRING (SIZE(1..130))
-- ===============
@@ -2262,6 +4023,11 @@ PTCAccessPolicy ::= SEQUENCE
pTCAccessPolicyFailure [7] PTCAccessPolicyFailure OPTIONAL
}
+-- =========
+-- PTC CCPDU
+-- =========
+
+PTCCCPDU ::= OCTET STRING
-- =================
-- 5G PTC parameters
@@ -2389,21 +4155,21 @@ PTCTBReasonCode ::= ENUMERATED
PTCListManagementType ::= ENUMERATED
{
- contactListManagementAttempt(1),
- groupListManagementAttempt(2),
- contactListManagementResult(3),
- groupListManagementResult(4),
- requestUnsuccessful(5)
+ contactListManagementAttempt(1),
+ groupListManagementAttempt(2),
+ contactListManagementResult(3),
+ groupListManagementResult(4),
+ requestUnsuccessful(5)
}
PTCListManagementAction ::= ENUMERATED
{
- create(1),
- modify(2),
- retrieve(3),
- delete(4),
- notify(5)
+ create(1),
+ modify(2),
+ retrieve(3),
+ delete(4),
+ notify(5)
}
PTCAccessPolicyType ::= ENUMERATED
@@ -2457,6 +4223,1030 @@ PTCAccessPolicyFailure ::= ENUMERATED
requestUnknown(2)
}
+-- ===============
+-- IMS definitions
+-- ===============
+
+-- See clause 7.12.4.2.1 for details of this structure
+IMSMessage ::= SEQUENCE
+{
+ payload [1] IMSPayload,
+ sessionDirection [2] SessionDirection,
+ voIPRoamingIndication [3] VoIPRoamingIndication OPTIONAL,
+ -- Tag [4] is not used.
+ -- Tag [5] is not used.
+ location [6] Location OPTIONAL,
+ accessNetworkInformation [7] SEQUENCE OF SIPAccessNetworkInformation OPTIONAL,
+ cellularNetworkInformation [8] SEQUENCE OF SIPCellularNetworkInformation OPTIONAL
+}
+
+-- See clause 7.12.4.2.2 for details of this structure
+StartOfInterceptionForActiveIMSSession ::= SEQUENCE
+{
+ originatingId [1] SEQUENCE OF IMPU,
+ terminatingId [2] IMPU,
+ sDPState [3] SEQUENCE OF OCTET STRING OPTIONAL,
+ diversionIdentity [4] IMPU OPTIONAL,
+ voIPRoamingIndication [5] VoIPRoamingIndication OPTIONAL,
+ -- Tag [6] is not used.
+ location [7] Location OPTIONAL,
+ accessNetworkInformation [8] SEQUENCE OF SIPAccessNetworkInformation OPTIONAL,
+ cellularNetworkInformation [9] SEQUENCE OF SIPCellularNetworkInformation OPTIONAL
+}
+
+-- See clause 7.12.4.2.3 for the details.
+IMSCCUnavailable ::= SEQUENCE
+{
+ cCUnavailableReason [1] UTF8String,
+ sDPState [2] OCTET STRING OPTIONAL
+}
+
+-- =========
+-- IMS CCPDU
+-- =========
+
+IMSCCPDU ::= SEQUENCE
+{
+ payload [1] IMSCCPDUPayload,
+ sDPInfo [2] OCTET STRING OPTIONAL
+}
+
+IMSCCPDUPayload ::= OCTET STRING
+
+-- ==============
+-- IMS parameters
+-- ==============
+
+IMSPayload ::= CHOICE
+{
+ encapsulatedSIPMessage [1] SIPMessage,
+ modifiedSIPMessage [2] ModifiedSIPMessage
+}
+
+ModifiedSIPMessage ::= SEQUENCE
+{
+ modifiedSIPContent [1] SIPMessage,
+ modifications [2] PayloadModifications
+}
+
+SIPMessage ::= SEQUENCE
+{
+ iPSourceAddress [1] IPAddress,
+ iPDestinationAddress [2] IPAddress,
+ sIPContent [3] OCTET STRING
+}
+
+VoIPRoamingIndication ::= ENUMERATED
+{
+ roamingLBO(1),
+ roamingS8HR(2),
+ roamingN9HR(3)
+}
+
+SessionDirection ::= ENUMERATED
+{
+ fromTarget(1),
+ toTarget(2),
+ combined(3),
+ indeterminate(4)
+}
+
+HeaderOnlyIndication ::= BOOLEAN
+
+-- =================================
+-- STIR/SHAKEN/RCD/eCNAM definitions
+-- =================================
+
+-- See clause 7.11.2.1.2 for details of this structure
+STIRSHAKENSignatureGeneration ::= SEQUENCE
+{
+ pASSporTs [1] SEQUENCE OF PASSporT,
+ encapsulatedSIPMessage [2] SIPMessage OPTIONAL
+}
+
+-- See clause 7.11.2.1.3 for details of this structure
+STIRSHAKENSignatureValidation ::= SEQUENCE
+{
+ pASSporTs [1] SEQUENCE OF PASSporT OPTIONAL,
+ rCDTerminalDisplayInfo [2] RCDDisplayInfo OPTIONAL,
+ eCNAMTerminalDisplayInfo [3] ECNAMDisplayInfo OPTIONAL,
+ sHAKENValidationResult [4] SHAKENValidationResult,
+ sHAKENFailureStatusCode [5] SHAKENFailureStatusCode OPTIONAL,
+ encapsulatedSIPMessage [6] SIPMessage OPTIONAL
+}
+
+-- ================================
+-- STIR/SHAKEN/RCD/eCNAM parameters
+-- ================================
+
+PASSporT ::= SEQUENCE
+{
+ pASSporTHeader [1] PASSporTHeader,
+ pASSporTPayload [2] PASSporTPayload,
+ pASSporTSignature [3] OCTET STRING
+}
+
+PASSporTHeader ::= SEQUENCE
+{
+ type [1] JWSTokenType,
+ algorithm [2] UTF8String,
+ ppt [3] UTF8String OPTIONAL,
+ x5u [4] UTF8String
+}
+
+JWSTokenType ::= ENUMERATED
+{
+ passport(1)
+}
+
+PASSporTPayload ::= SEQUENCE
+{
+ issuedAtTime [1] GeneralizedTime,
+ originator [2] STIRSHAKENOriginator,
+ destination [3] STIRSHAKENDestinations,
+ attestation [4] Attestation,
+ origId [5] UTF8String,
+ diversion [6] STIRSHAKENDestination
+}
+
+STIRSHAKENOriginator ::= CHOICE
+{
+ telephoneNumber [1] STIRSHAKENTN,
+ sTIRSHAKENURI [2] UTF8String
+}
+
+STIRSHAKENDestinations ::= SEQUENCE OF STIRSHAKENDestination
+
+STIRSHAKENDestination ::= CHOICE
+{
+ telephoneNumber [1] STIRSHAKENTN,
+ sTIRSHAKENURI [2] UTF8String
+}
+
+
+STIRSHAKENTN ::= CHOICE
+{
+ mSISDN [1] MSISDN
+}
+
+Attestation ::= ENUMERATED
+{
+ attestationA(1),
+ attestationB(2),
+ attestationC(3)
+}
+
+SHAKENValidationResult ::= ENUMERATED
+{
+ tNValidationPassed(1),
+ tNValidationFailed(2),
+ noTNValidation(3)
+}
+
+SHAKENFailureStatusCode ::= INTEGER
+
+ECNAMDisplayInfo ::= SEQUENCE
+{
+ name [1] UTF8String,
+ additionalInfo [2] OCTET STRING OPTIONAL
+}
+
+RCDDisplayInfo ::= SEQUENCE
+{
+ name [1] UTF8String,
+ jcd [2] OCTET STRING OPTIONAL,
+ jcl [3] OCTET STRING OPTIONAL
+}
+
+-- =================
+-- RCS Definitions
+-- =================
+
+-- See clause 7.13.3.2 for details of this structure
+RCSRegistration ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ rCSRegistrationType [2] RCSRegistrationType,
+ rCSRegistrationUpdateRequest [3] IMSPayload,
+ rCSRegistrationUpdateResponse [4] IMSPayload,
+ location [5] Location OPTIONAL
+}
+
+-- See clause 7.13.3.3 for details of this structure
+RCSMessage ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ groupChatSessionID [2] RCSGroupChatSessionID OPTIONAL,
+ originatingIdentity [3] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ destinationIdentities [4] RCSDestinations,
+ direction [5] Direction,
+ messageType [6] RCSMessageType,
+ conversationID [7] RCSConversationID,
+ contributionID [8] RCSContributionID,
+ inReplyToContributionID [9] RCSContributionID OPTIONAL,
+ messageID [10] IMDNMessageID OPTIONAL,
+ location [11] Location OPTIONAL,
+ messagePayload [12] RCSPayload
+}
+
+-- See clause 7.13.3.4.2.1 for details of this structure
+RCSSessionEstablishment ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ conversationID [2] RCSConversationID,
+ contributionID [3] RCSContributionID,
+ inReplyToContributionID [4] RCSContributionID OPTIONAL,
+ sessionReplaces [5] RCSContributionID OPTIONAL,
+ rCSSessionType [6] RCSSessionType,
+ sessionDirection [7] Direction,
+ rCSSessionMessage [8] RCSSIPSessionMessage,
+ location [9] Location OPTIONAL
+}
+
+-- See clause 7.13.3.4.3.1 for details of this structure
+RCSSessionModification ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ conversationID [2] RCSConversationID,
+ contributionID [3] RCSContributionID,
+ inReplyToContributionID [4] RCSContributionID OPTIONAL,
+ sessionReplaces [5] RCSContributionID OPTIONAL,
+ rCSSessionType [6] RCSSessionType,
+ sessionDirection [7] Direction,
+ sessionEndpoints [8] RCSSessionEndpoints,
+ rCSSIPSessionMessage [9] RCSSIPSessionMessage,
+ location [10] Location OPTIONAL
+}
+
+-- See clause 7.13.3.4.4.1 for details of this structure
+RCSSessionRelease ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ conversationID [2] RCSConversationID,
+ contributionID [3] RCSContributionID,
+ rCSSessionType [4] RCSSessionType,
+ sessionDirection [5] Direction,
+ rCSSIPSessionMessage [6] RCSSIPSessionMessage,
+ location [7] Location OPTIONAL
+}
+
+-- See clause 7.13.3.5 for details of this structure
+RCSCapabilityDiscovery ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ rCSTargetContactIdentities [2] SEQUENCE SIZE (1..MAX) OF RCSIdentity OPTIONAL,
+ sIPMessage [3] IMSPayload,
+ direction [4] Direction,
+ location [5] Location OPTIONAL
+}
+
+-- See clause 7.13.3.6.1.2 for details of this structure
+StartOfInterceptForRegisteredRCSUser ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ rCSRegistrationInformation [2] SEQUENCE SIZE (1..MAX) OF RCSRegistrationInformation,
+ userOnline [3] BOOLEAN,
+ location [4] Location OPTIONAL,
+ additionalInstanceLocation [5] SEQUENCE SIZE (1..MAX) OF AdditionalInstanceLocation OPTIONAL
+}
+
+-- See clause 7.13.3.6.1.3 for details of this structure
+StartOfInterceptWithEstablisedRCSSession ::= SEQUENCE
+{
+ rCSTargetIdentities [1] SEQUENCE SIZE (1..MAX) OF RCSIdentity,
+ participants [2] SEQUENCE SIZE (1..MAX) OF RCSDestinations,
+ conversationID [3] RCSConversationID,
+ contributionID [4] RCSContributionID,
+ rCSSessionType [5] RCSSessionType,
+ rCSSessionEndpoints [6] RCSSessionEndpoints,
+ rCSSessionLegs [7] SEQUENCE SIZE (1..MAX) OF RCSSIPSessionExchange OPTIONAL,
+ rCSSessionInformation [8] SEQUENCE SIZE (1..MAX) OF RCSSessionContext,
+ location [9] Location OPTIONAL,
+ additionalInstanceLocation [10] SEQUENCE SIZE (1..MAX) OF AdditionalInstanceLocation OPTIONAL
+}
+
+RCSCCPDU ::= CHOICE
+{
+ encapsulatedRCSPayload [1] EncapsulatedRCSPayload
+}
+
+-- ==============
+-- RCS Parameters
+-- ==============
+
+AdditionalInstanceLocation ::= SEQUENCE
+{
+ instance [1] SIPEndpoint,
+ location [2] Location
+}
+
+IMDNMessageID ::= UTF8String
+
+MSRPPath ::= SEQUENCE
+{
+ path [1] UTF8String
+}
+
+RCSConversationID ::= UUID
+
+RCSContributionID ::= UUID
+
+RCSDestinations ::= SEQUENCE SIZE (1..MAX) OF RCSDestination
+
+RCSDestination ::= SEQUENCE SIZE (1..MAX) OF RCSIdentity
+
+RCSGroupChatSessionID ::= SIPURI
+
+RCSIdentity ::= CHOICE
+{
+ fiveGSIdentities [1] FiveGSSubscriberIDs,
+ ePSIdentities [2] EPSSubscriberIDs,
+ iMSIdentities [3] IMSSubscriberIDs
+}
+
+RCSMessageType ::= ENUMERATED
+{
+ messageWithUserContent(1),
+ fileTransferMessage(2),
+ geoLocationPUSHMessage(3),
+ iMDNNotification(4)
+}
+
+RCSRegistrationInformation ::= CHOICE
+{
+ sIPRegistration [1] RCSSIPRegistrationExchange,
+ userProfile [2] XMLType,
+ multiDevice [3] XMLType,
+ presenceDocument [4] XMLType
+}
+
+RCSRegistrationType ::= ENUMERATED
+{
+ registration(1),
+ reRegistration(2),
+ uEDeregistration(3),
+ networkDeregistration(4)
+}
+
+RCSServerURI ::= UTF8String
+
+RCSSessionEndpoints ::= ENUMERATED
+{
+ remoteOnly(1),
+ localOnly(2),
+ localAndRemote(3)
+}
+
+RCSSessionLeg ::= ENUMERATED
+{
+ remoteLeg(1),
+ localLeg(2)
+}
+
+RCSSessionContext ::= CHOICE
+{
+ cPMSessionInfo [1] MIMEEntity
+}
+
+RCSSessionType ::= ENUMERATED
+{
+ largeMessageStandalone(1),
+ oneTo1Chat(2)
+}
+
+RCSSIPRegistrationExchange ::= SEQUENCE
+{
+ rCSRegistrationUpdateRequest [1] IMSPayload,
+ rCSRegistrationUpdateResponse [2] IMSPayload
+}
+
+RCSSIPSessionExchange ::= SEQUENCE
+{
+ sessionLeg [1] RCSSessionLeg,
+ sIPRequest [2] IMSPayload,
+ sIPResponse [3] IMSPayload
+}
+
+RCSSIPSessionMessage ::= SEQUENCE
+{
+ sessionLeg [1] RCSSessionLeg,
+ sIPMessage [2] IMSPayload,
+ rCSSessionResult [3] RCSSessionResult,
+ mSRPPathInfo [4] MSRPPath
+}
+
+RCSSessionResult ::= ENUMERATED
+{
+ newLegRequested(1),
+ newLegEstablished(2),
+ legModificationRequested(3),
+ legModificationComplete(4),
+ legRemovalRequest(5),
+ legRemovalComplete(6)
+}
+
+SIPEndpoint ::= UTF8String
+
+-- =================
+-- EES definitions
+-- =================
+
+-- See clause 7.14.2.2 for details of this structure
+EESEECRegistration ::= SEQUENCE
+{
+ registrationType [1] RegistrationType,
+ eECID [2] UTF8String,
+ gPSI [3] GPSI OPTIONAL,
+ aCProfiles [4] ACProfiles OPTIONAL,
+ eECServiceContSupport [5] ACRScenarios OPTIONAL,
+ expirationTime [6] Timestamp OPTIONAL,
+ eECContextID [7] UTF8String OPTIONAL,
+ srcEESID [8] UTF8String OPTIONAL,
+ unfulfilledACProfiles [9] UnfulfilledACProfiles OPTIONAL,
+ failureResponse [10] FailureResponse OPTIONAL
+}
+
+-- See clause 7.14.2.3 for details of this structure
+EESEASDiscovery ::= SEQUENCE
+{
+ eECID [1] UTF8String,
+ gPSI [2] GPSI OPTIONAL,
+ eASDiscoveryFilter [3] EASDiscoveryFilter OPTIONAL,
+ eECServiceContSupport [4] ACRScenarios OPTIONAL,
+ uELocation [5] Location OPTIONAL,
+ eASTargetDNAIs [6] DNAIs OPTIONAL,
+ discoveredEAS [7] DiscoveredEAS OPTIONAL,
+ failureResponse [8] FailureResponse OPTIONAL
+}
+
+-- See clause 7.14.2.4 for details of this structure
+EESEASDiscoverySubscription ::= SEQUENCE
+{
+ eECID [1] UTF8String,
+ gPSI [2] GPSI OPTIONAL,
+ subscriptionType [3] SubscriptionType,
+ eASEventType [4] EASEventType,
+ eASDiscoveryFilter [5] EASDiscoveryFilter OPTIONAL,
+ eASDynamicInfoFilter [6] EASDynamicInfoFilter OPTIONAL,
+ eECServiceContSupport [7] ACRScenarios OPTIONAL,
+ expirationTime [8] Timestamp OPTIONAL,
+ subscriptionId [9] UTF8String OPTIONAL,
+ failureResponse [10] FailureResponse OPTIONAL
+}
+
+-- See clause 7.14.2.5 for details of this structure
+EESEASDiscoveryNotification ::= SEQUENCE
+{
+ subscriptionID [1] UTF8String,
+ eventType [2] EASEventType,
+ discoveredEAS [3] DiscoveredEAS,
+ failureResponse [4] FailureResponse OPTIONAL
+}
+
+-- See clause 7.14.2.6 for details of this structure
+EESAppContextRelocation ::= SEQUENCE
+{
+ eECID [1] UTF8String,
+ gPSI [2] GPSI OPTIONAL,
+ eESACRDetOrInit [3] EESACRDetOrInit
+}
+
+EESACRDetOrInit ::= CHOICE
+{
+ aCRDetermineReq [1] ACRDetermineReq,
+ aCRInitiateReq [2] ACRInitiateReq
+}
+
+ACRDetermineReq ::= SEQUENCE
+{
+ eASID [1] EASID OPTIONAL,
+ aCID [2] ACID OPTIONAL,
+ sEASEndpoint [3] EASEndpoint
+}
+
+ACRInitiateReq ::= SEQUENCE
+{
+ eASID [1] EASID OPTIONAL,
+ aCID [2] ACID OPTIONAL,
+ tEASEndpoint [3] EASEndpoint,
+ sEASEndpoint [4] EASEndpoint OPTIONAL,
+ previousTEASEndpoint [5] EASEndpoint OPTIONAL,
+ routeReq [6] RouteToLocation OPTIONAL
+}
+
+-- See clause 7.14.2.7 for details of this structure
+EESACRSubscription ::= SEQUENCE
+{
+ eECID [1] UTF8String,
+ gPSI [2] GPSI OPTIONAL,
+ subscriptionType [3] SubscriptionType,
+ expirationTime [4] Timestamp OPTIONAL,
+ eASIDs [5] EASIDs,
+ aCIDs [6] ACIDs OPTIONAL,
+ eventIDs [7] ACREventIDs OPTIONAL,
+ subscriptionId [8] UTF8String OPTIONAL,
+ failureResponse [9] FailureResponse OPTIONAL
+}
+
+-- See clause 7.14.2.8 for details of this structure
+EESACRNotification ::= SEQUENCE
+{
+ subscriptionID [1] UTF8String,
+ eASID [2] EASID,
+ eventID [3] ACREventIDs,
+ targetInfo [4] TargetInfo OPTIONAL,
+ aCRRes [5] BOOLEAN OPTIONAL,
+ failReason [6] UTF8String OPTIONAL
+}
+
+-- See clause 7.14.2.9 for details of this structure
+EESEECContextRelocation ::= SEQUENCE
+{
+ eECID [1] UTF8String,
+ eECContextID [2] UTF8String,
+ gPSI [3] GPSI OPTIONAL,
+ uELoc [4] Location OPTIONAL,
+ aCProfiles [5] ACProfiles OPTIONAL
+}
+
+-- See clause 7.14.2.10 for details of this structure
+EESStartOfInterceptionWithRegisteredEEC ::= SEQUENCE
+{
+ eECID [1] UTF8String,
+ gPSI [2] GPSI OPTIONAL,
+ aCProfiles [3] ACProfiles OPTIONAL,
+ eECServiceContSupport [4] ACRScenarios OPTIONAL,
+ expirationTime [5] Timestamp OPTIONAL,
+ eECContextID [6] UTF8String OPTIONAL,
+ srcEESID [7] UTF8String OPTIONAL,
+ unfulfilledACProfiles [8] UnfulfilledACProfiles OPTIONAL,
+ timeOfRegistration [9] Timestamp OPTIONAL
+}
+
+-- ==============
+-- EES parameters
+-- ==============
+
+RegistrationType ::= ENUMERATED
+{
+ registration (1),
+ registrationUpdate(2),
+ deregistration(3)
+}
+
+ACProfiles ::= SET OF ACProfile
+
+ACProfile ::= SEQUENCE
+{
+ aCID [1] ACID,
+ aCType [2] UTF8String OPTIONAL,
+ aCSchedule [3] Daytime OPTIONAL,
+ expACGeoServArea [4] Location OPTIONAL,
+ eASsInfo [5] EASsInfo OPTIONAL,
+ aCServiceContSupport [6] ACRScenarios OPTIONAL
+}
+
+ACID ::= UTF8String
+
+ACRScenarios ::= SET OF ACRScenario
+
+ACRScenario ::= ENUMERATED
+{
+ eECInitiated(1),
+ eECExecutedViaSourceEES(2),
+ eECExecutedViaTargetEES(3),
+ sourceEASDecided(4),
+ sourceEESExecuted(5),
+ eELManagedACR(6)
+}
+
+UnfulfilledACProfiles ::= SET OF UnfulfilledACProfile
+
+UnfulfilledACProfile ::= SEQUENCE
+{
+ aCID [1] ACID,
+ reason [2] UnfulfilledACProfileReason
+}
+
+UnfulfilledACProfileReason ::= ENUMERATED
+{
+ eASNotAvailable(1),
+ requirementsUnfulfilled(2)
+}
+
+EASID ::= UTF8String
+
+EASsInfo ::= SET OF EASInfo
+
+EASInfo ::= SEQUENCE
+{
+ eASID [1] EASID,
+ expectedSvcKPIs [2] ServiceKPIs OPTIONAL,
+ minimumReqSvcKPIs [3] ServiceKPIs OPTIONAL
+}
+
+ServiceKPIs ::= SEQUENCE
+{
+ connectionBandwidth [1] INTEGER OPTIONAL,
+ requestRate [2] INTEGER OPTIONAL,
+ responseTime [3] INTEGER OPTIONAL,
+ requestedAvailability [4] INTEGER OPTIONAL,
+ requestedCompute [5] OCTET STRING OPTIONAL,
+ requestedGraphCompute [6] OCTET STRING OPTIONAL,
+ requestedMemory [7] OCTET STRING OPTIONAL,
+ requestedStorage [8] OCTET STRING OPTIONAL
+}
+
+FailureResponse ::= ENUMERATED
+{
+ error400(1),
+ error401(2),
+ error403(3),
+ error404(4),
+ error406(5),
+ error411(6),
+ error413(7),
+ error415(8),
+ error429(9),
+ error500(10),
+ error503(11)
+}
+
+EASDiscoveryFilter ::= CHOICE
+{
+ aCsCharacteristics [1] ACProfiles,
+ eASCharacteristics [2] EASsCharacteristics
+}
+
+EASsCharacteristics ::= SET OF EASCharacteristics
+
+EASCharacteristics ::= SEQUENCE
+{
+ eASID [1] EASID OPTIONAL,
+ aSPID [2] UTF8String OPTIONAL,
+ eASType [3] UTF8String OPTIONAL,
+ eASSchedule [4] Daytime OPTIONAL,
+ eASProfile [5] EASProfile OPTIONAL,
+ eASServiceArea [6] Location OPTIONAL,
+ eASServicePermLevel [7] UTF8String OPTIONAL,
+ eASServiceFeatures [8] EASServiceFeatures OPTIONAL
+}
+
+DNAIs ::= SET OF DNAI
+
+DiscoveredEAS ::= SEQUENCE
+{
+ eASProfile [1] EASProfile,
+ lifetime [2] INTEGER OPTIONAL
+}
+
+EASProfile ::= SEQUENCE
+{
+ eASID [1] EASID,
+ eASEndpoint [2] EASEndpoint,
+ aCIDs [3] ACIDs OPTIONAL,
+ aSPID [4] UTF8String OPTIONAL,
+ eASType [5] UTF8String OPTIONAL,
+ eASDescription [6] UTF8String OPTIONAL,
+ eASSchedule [7] Daytime OPTIONAL,
+ eASServiceArea [8] Location OPTIONAL,
+ eASServiceKPIs [9] ServiceKPIs OPTIONAL,
+ eASServicePermLevel [10] UTF8String OPTIONAL,
+ eASServiceFeatures [11] EASServiceFeatures OPTIONAL,
+ eASServiceContSupport [12] ACRScenarios OPTIONAL,
+ appLocs [13] RouteToLocations OPTIONAL,
+ eASStatus [14] EASStatus OPTIONAL
+}
+
+EASStatus ::= ENUMERATED
+{
+ enabled(1),
+ disabled(2)
+}
+
+EASEndpoint ::= SEQUENCE
+{
+ fQDN [1] FQDN OPTIONAL,
+ iPv4Addresses [2] IPv4Addresses OPTIONAL,
+ iPv6Addresses [3] IPv6Addresses OPTIONAL,
+ uRI [4] UTF8String OPTIONAL
+}
+
+RouteToLocations ::= SET OF RouteToLocation
+EASServiceFeatures ::= SET OF EASServiceFeature
+EASServiceFeature ::= UTF8String
+ACIDs ::= SET OF ACID
+IPv4Addresses ::= SET OF IPv4Address
+IPv6Addresses ::= SET OF IPv6Address
+
+SubscriptionType ::= ENUMERATED
+{
+ subscription(1),
+ subscriptionUpdate(2),
+ unsubscription(3)
+}
+
+EASEventType ::= ENUMERATED
+{
+ eASAvailabilityChange(1),
+ eASDynamicInfoChange(2)
+}
+
+EASDynamicInfoFilter ::= SEQUENCE
+{
+ eASId [1] EASID,
+ eASStatus [2] BOOLEAN,
+ eASAcIDs [3] BOOLEAN,
+ eASDesc [4] BOOLEAN,
+ eASPt [5] BOOLEAN,
+ eASFeature [6] BOOLEAN,
+ eASSchedule [7] BOOLEAN,
+ eASSvcArea [8] BOOLEAN,
+ eASSvcKpi [9] BOOLEAN,
+ eASSvcCont [10] BOOLEAN
+}
+
+EASIDs ::= SET OF EASID
+
+ACREventIDs ::= ENUMERATED
+{
+ targetInformation(1),
+ aCRComplete(2)
+}
+
+TargetInfo ::= SEQUENCE
+{
+ discoveredEAS [1] DiscoveredEAS,
+ targetEESInfo [2] EDNConfigurationInfo OPTIONAL
+}
+
+EDNConfigurationInfo ::= SEQUENCE
+{
+ eDNConnectionInfo [1] EDNConnectionInfo,
+ eESsInfo [2] EESsInfo,
+ lifetime [3] INTEGER OPTIONAL
+}
+
+EDNConnectionInfo ::= SEQUENCE
+{
+ dNN [1] DNN OPTIONAL,
+ sNSSAI [2] SNSSAI OPTIONAL,
+ serviceArea [3] Location OPTIONAL
+}
+
+EESsInfo ::= SET OF EESInfo
+
+EESInfo ::= SEQUENCE
+{
+ eESID [1] EESID,
+ eESEndpoint [2] EESEndpoint,
+ eASIDs [3] EASIDs OPTIONAL,
+ serviceArea [4] Location OPTIONAL,
+ dNAIS [5] DNAIs OPTIONAL
+}
+
+EESID ::= UTF8String
+
+EESEndpoint ::= SEQUENCE
+{
+ fQDN [1] FQDN OPTIONAL,
+ iPv4Addresses [2] IPv4Addresses OPTIONAL,
+ iPv6Addresses [3] IPv6Addresses OPTIONAL,
+ uRI [4] UTF8String OPTIONAL
+}
+
+-- =================
+-- 5GMS AF definitions
+-- =================
+
+-- See clause 7.15.2.2 for details of this structure
+FiveGMSAFServiceAccessInformation ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ serviceAccessInformationResource [2] SBIType
+}
+
+-- See clause 7.15.2.3 for details of this structure
+FiveGMSAFConsumptionReporting ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ consumptionReport [2] SBIType
+}
+
+-- See clause 7.15.2.4 for details of this structure
+FiveGMSAFDynamicPolicyInvocation ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ dynamicPolicyResource [2] SBIType,
+ dPIoperationType [3] DPIOperationType
+}
+
+-- See clause 7.15.2.5 for details of this structure
+FiveGMSAFMetricsReporting ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ metricsReport [2] XMLType
+}
+
+-- See clause 7.15.2.6 for details of this structure
+FiveGMSAFNetworkAssistance ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ networkAssistanceSessionResource [2] SBIType,
+ nAOperationType [3] NAOperationType
+}
+
+-- See clause 7.15.2.7 for details of this structure
+FiveGMSAFUnsuccessfulProcedure ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ fiveGMSAFUnsuccessfulOperation [2] FiveGMSAFUnsuccessfulOperation,
+ fiveGMSAFErrorCode [3] FiveGMSAFErrorCode
+}
+
+-- See clause 7.15.2.8 for details of this structure
+FiveGMSAFStartOfInterceptionWithAlreadyConfiguredUE ::= SEQUENCE
+{
+ gPSI [1] GPSI,
+ serviceAccessInformationResource [2] SBIType
+}
+
+-- ==============
+-- 5GMS AF parameters
+-- ==============
+
+DPIOperationType ::= ENUMERATED
+{
+ createDynamicPolicy(1),
+ retrieveDynamicPolicy(2),
+ updateDynamicPolicy(3),
+ patchDynamicPolicy(4),
+ destroyDynamicPolicy(5)
+}
+
+NAOperationType ::= ENUMERATED
+{
+ createNetworkAssistanceSession(1),
+ retrieveNetworkAssistanceSession(2),
+ updateNetworkAssistanceSession(3),
+ patchNetworkAssistanceSession(4),
+ destroyNetworkAssistanceSession(5),
+ requestBitRateRecommendation(6),
+ requestDeliveryBoost(7)
+}
+
+FiveGMSAFUnsuccessfulOperation::= ENUMERATED
+{
+ retrieveServiceAccessInformation(1),
+ submitConsumptionReport(2),
+ submitMetricsReport(3),
+ createDynamicPolicy(4),
+ retrieveDynamicPolicy(5),
+ updateDynamicPolicy(6),
+ patchDynamicPolicy(7),
+ destroyDynamicPolicy(8),
+ createNetworkAssistanceSession(9),
+ retrieveNetworkAssistanceSession(10),
+ updateNetworkAssistanceSession(11),
+ patchNetworkAssistanceSession(12),
+ destroyNetworkAssistanceSession(13),
+ requestBitRateRecommendation(14),
+ requestDeliveryBoost(15)
+}
+
+FiveGMSAFErrorCode ::=ENUMERATED
+{
+ badRequest400(1),
+ unauthorized401(2),
+ notFound404(3),
+ unsupportedMediaType415(4)
+}
+
+-- =================
+-- NWDAF definitions
+-- =================
+
+NWDAFEventsSubscription ::=SEQUENCE
+{
+ sUPI [1] SUPI,
+ nWDAFConsumerNFType [2] NWDAFConsumerNFType,
+ nWDAFEventsSubscriptionOpType [3] NWDAFEventsSubscriptionOpType,
+ nWDAFSubscribedEventList [4] SEQUENCE SIZE(1..MAX) OF NWDAFEvent,
+ nWDAFEventsSubscription [5] SBIType,
+ nWDAFEventsSubscriptionID [6] UTF8String OPTIONAL,
+ nWDAFEventsSubscriptionResponseCode [7] NWDAFEventsSubscriptionResponseCode
+}
+
+NWDAFEventsNotification ::=SEQUENCE
+{
+ sUPI [1] SUPI,
+ nWDAFNotifiedEventList [2] SEQUENCE SIZE(1..MAX) OF NWDAFEvent,
+ nWDAFEventsNotification [3] SBIType
+}
+
+NWDAFAnalyticsInfoQuery ::=SEQUENCE
+{
+ sUPI [1] SUPI,
+ nWDAFEvent [2] NWDAFEvent,
+ nWDAFEventReportingRequirement [3] SBIType OPTIONAL,
+ nWDAFEventFilter [4] SBIType OPTIONAL,
+ nWDAFAnalyticsData [5] SBIType OPTIONAL,
+ nWDAFAnalyticsInfoResponseCode [6] NWDAFAnalyticsInfoResponseCode
+}
+
+NWDAFRoamingAnalyticsSubscription ::=SEQUENCE
+{
+ sUPI [1] SUPI,
+ pLMNID [2] PLMNID,
+ nWDAFEventsSubscriptionOpType [3] NWDAFEventsSubscriptionOpType,
+ nWDAFSubscribedEventList [4] SEQUENCE SIZE(1..MAX) OF NWDAFEvent,
+ nWDAFEventsSubscription [5] SBIType,
+ nWDAFEventsSubscriptionID [6] UTF8String OPTIONAL,
+ nWDAFEventsSubscriptionResponseCode [7] NWDAFEventsSubscriptionResponseCode
+}
+
+NWDAFRoamingAnalyticsNotification ::=SEQUENCE
+{
+ sUPI [1] SUPI,
+ nWDAFNotifiedEventList [2] SEQUENCE SIZE(1..MAX) OF NWDAFEvent,
+ nWDAFEventsNotification [3] SBIType
+}
+
+-- ==============
+-- NWDAF parameters
+-- ==============
+
+NWDAFEventsSubscriptionOpType ::= ENUMERATED
+{
+ pOST(1),
+ pUT(2),
+ dELETE(3)
+}
+
+NWDAFEventsSubscriptionResponseCode ::= ENUMERATED
+{
+ oK200(1),
+ created201(2),
+ noContent204(3),
+ temporaryRedirect307(4),
+ permanentRedirect308(5),
+ badRequest400(6),
+ unauthorized401(7),
+ forbidden403(8),
+ notFound404(9),
+ notAcceptable406(10),
+ lengthRequired411(11),
+ payloadTooLarge413(12),
+ unsupportedMediaType415(13),
+ tooManyRequests429(14),
+ internalServerError500(15),
+ notImplemented501(16),
+ badGateway502(17),
+ serviceUnavailable503(18)
+}
+
+NWDAFAnalyticsInfoResponseCode ::= ENUMERATED
+{
+ oK200(1),
+ noContent204(2),
+ badRequest400(3),
+ unauthorized401(4),
+ forbidden403(5),
+ notFound404(6),
+ notAcceptable406(7),
+ uRITooLong414(8),
+ tooManyRequests429(9),
+ internalServerError500(10),
+ badGateway502(11),
+ serviceUnavailable503(12)
+}
+
+NWDAFConsumerNFType ::= ENUMERATED
+{
+ pCF(1),
+ nSSF(2),
+ aMF(3),
+ sMF(4),
+ nEF(5),
+ aF(6),
+ lMF(7),
+ oAM(8),
+ nWDAF(9),
+ dCCF(10),
+ cEF(11)
+}
+
+NWDAFEvent ::= ENUMERATED
+{
+ serviceExperience(1),
+ uEMobility(2),
+ uEComm(3),
+ abnormalBehaviour(4),
+ dispersion(5),
+ relativeProximity(6),
+ pDUSessionTraffic(7)
+}
+
-- ===================
-- 5G LALS definitions
-- ===================
@@ -2464,7 +5254,8 @@ PTCAccessPolicyFailure ::= ENUMERATED
LALSReport ::= SEQUENCE
{
sUPI [1] SUPI OPTIONAL,
--- pEI [2] PEI OPTIONAL, deprecated in Release-16, do not re-use this tag number
+ -- deprecatedPEI was deprecated in r16(16) version6(6).
+ deprecatedPEI [2] PEI OPTIONAL,
gPSI [3] GPSI OPTIONAL,
location [4] Location OPTIONAL,
iMPU [5] IMPU OPTIONAL,
@@ -2503,7 +5294,8 @@ PDSummaryReport ::= SEQUENCE
firstPacketTimestamp [10] Timestamp,
lastPacketTimestamp [11] Timestamp,
packetCount [12] INTEGER,
- byteCount [13] INTEGER
+ byteCount [13] INTEGER,
+ useSessionTrigger [14] BOOLEAN
}
-- ====================
@@ -2523,7 +5315,7 @@ PDSRSummaryTrigger ::= ENUMERATED
-- Identifier Association definitions
-- ==================================
-AMFIdentifierAssocation ::= SEQUENCE
+AMFIdentifierAssociation ::= SEQUENCE
{
sUPI [1] SUPI,
sUCI [2] SUCI OPTIONAL,
@@ -2534,7 +5326,7 @@ AMFIdentifierAssocation ::= SEQUENCE
fiveGSTAIList [7] TAIList OPTIONAL
}
-MMEIdentifierAssocation ::= SEQUENCE
+MMEIdentifierAssociation ::= SEQUENCE
{
iMSI [1] IMSI,
iMEI [2] IMEI OPTIONAL,
@@ -2559,19 +5351,52 @@ TMSI ::= OCTET STRING (SIZE(4))
-- EPS MME definitions
-- ===================
+EPSRANHandoverCommand ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ mMEUES1APID [2] MMEUES1APID,
+ eNBUES1APID [3] RANUES1APID,
+ handoverType [4] EPSHandoverType,
+ eRABsToBeForwarded [5] ERABContextList OPTIONAL,
+ eRABsToRelease [6] ERABReleaseList OPTIONAL,
+ targetToSourceContainers [7] SEQUENCE SIZE(1..MAX) OF RANTargetToSourceContainer
+}
+
+EPSRANHandoverRequest ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ handoverType [2] EPSHandoverType,
+ handoverCause [3] EPSRANCause,
+ sourceToTargetContainer [4] RANSourceToTargetContainer,
+ cSGInfo [5] EPSCSGInfo OPTIONAL,
+ targetToSourceContainer [6] RANTargetToSourceContainer,
+ admittedCSGID [7] CSGID OPTIONAL,
+ ePSRANUEContext [8] EPSRANUEContext
+}
+
MMEAttach ::= SEQUENCE
{
- attachType [1] EPSAttachType,
- attachResult [2] EPSAttachResult,
- iMSI [3] IMSI,
- iMEI [4] IMEI OPTIONAL,
- mSISDN [5] MSISDN OPTIONAL,
- gUTI [6] GUTI OPTIONAL,
- location [7] Location OPTIONAL,
- ePSTAIList [8] TAIList OPTIONAL,
- sMSServiceStatus [9] EPSSMSServiceStatus OPTIONAL,
- oldGUTI [10] GUTI OPTIONAL,
- eMM5GRegStatus [11] EMM5GMMStatus OPTIONAL
+ attachType [1] EPSAttachType,
+ attachResult [2] EPSAttachResult,
+ iMSI [3] IMSI,
+ iMEI [4] IMEI OPTIONAL,
+ mSISDN [5] MSISDN OPTIONAL,
+ gUTI [6] GUTI OPTIONAL,
+ location [7] Location OPTIONAL,
+ ePSTAIList [8] TAIList OPTIONAL,
+ sMSServiceStatus [9] EPSSMSServiceStatus OPTIONAL,
+ oldGUTI [10] GUTI OPTIONAL,
+ eMM5GRegStatus [11] EMM5GMMStatus OPTIONAL,
+ pagingRestrictionIndicator [12] PagingRestrictionIndicator OPTIONAL,
+ rATType [13] RATType OPTIONAL,
+ rRCEstablishmentCause [14] RRCEstablishmentCause OPTIONAL,
+ s1Information [15] S1Information OPTIONAL,
+ nASTransportInitialInformation [16] EPSNASTransportInitialInformation OPTIONAL,
+ equivalentPLMNList [17] PLMNList OPTIONAL,
+ ePSUENetworkCapability [18] EPSUENetworkCapability OPTIONAL,
+ initailRANUEContextSetup [19] EPSRANUEContext OPTIONAL,
+ mUSIMUERequestType [20] MUSIMUERequestType OPTIONAL,
+ ePSNetworkPolicy [21] EPSNetworkPolicy OPTIONAL
}
MMEDetach ::= SEQUENCE
@@ -2598,18 +5423,55 @@ MMELocationUpdate ::= SEQUENCE
sMSServiceStatus [7] EPSSMSServiceStatus OPTIONAL
}
+MMERANTraceReport ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ mMEUES1APID [2] MMEUES1APID,
+ eNBUES1APID [3] RANUES1APID,
+ traceRecordType [4] TraceRecordType,
+ traceDirection [5] TraceDirection,
+ traceActivationInfo [6] TraceActivation OPTIONAL,
+ eUTRANCGI [7] ECGI,
+ globalRANNodeID [8] GlobalRANNodeID,
+ traceCollectionEntityInfo [9] TraceCollectionEntityInfo OPTIONAL,
+ mMETraceData [10] XMLType OPTIONAL,
+ location [11] Location OPTIONAL
+}
+
MMEStartOfInterceptionWithEPSAttachedUE ::= SEQUENCE
{
- attachType [1] EPSAttachType,
- attachResult [2] EPSAttachResult,
- iMSI [3] IMSI,
- iMEI [4] IMEI OPTIONAL,
- mSISDN [5] MSISDN OPTIONAL,
- gUTI [6] GUTI OPTIONAL,
- location [7] Location OPTIONAL,
- ePSTAIList [9] TAIList OPTIONAL,
- sMSServiceStatus [10] EPSSMSServiceStatus OPTIONAL,
- eMM5GRegStatus [12] EMM5GMMStatus OPTIONAL
+ attachType [1] EPSAttachType,
+ attachResult [2] EPSAttachResult,
+ iMSI [3] IMSI,
+ iMEI [4] IMEI OPTIONAL,
+ mSISDN [5] MSISDN OPTIONAL,
+ gUTI [6] GUTI OPTIONAL,
+ location [7] Location OPTIONAL,
+ ePSTAIList [9] TAIList OPTIONAL,
+ sMSServiceStatus [10] EPSSMSServiceStatus OPTIONAL,
+ eMM5GRegStatus [12] EMM5GMMStatus OPTIONAL,
+ pagingRestrictionIndicator [13] PagingRestrictionIndicator OPTIONAL,
+ rATType [14] RATType OPTIONAL,
+ rRCEstablishmentCause [15] RRCEstablishmentCause OPTIONAL,
+ s1Information [16] S1Information OPTIONAL,
+ nASTransportInitialInformation [17] EPSNASTransportInitialInformation OPTIONAL,
+ equivalentPLMNList [18] PLMNList OPTIONAL,
+ ePSUENetworkCapability [19] EPSUENetworkCapability OPTIONAL,
+ initailRANUEContextSetup [20] EPSRANUEContext OPTIONAL,
+ mUSIMUERequestType [21] MUSIMUERequestType OPTIONAL,
+ ePSNetworkPolicy [22] EPSNetworkPolicy OPTIONAL
+}
+
+MMEUEServiceAccept ::= SEQUENCE
+{
+ userIdentifiers [1] UserIdentifiers,
+ serviceType [2] OCTET STRING (SIZE(1)) OPTIONAL,
+ mTMSI [3] TMSI OPTIONAL,
+ cSFBResponse [4] OCTET STRING (SIZE (1)) OPTIONAL,
+ uEEPSBearerContextStatus [5] OCTET STRING (SIZE(2)) OPTIONAL,
+ uERequestType [6] MUSIMUERequestType OPTIONAL,
+ pagingRestriction [7] PagingRestrictionIndicator OPTIONAL,
+ controlPlaneServiceType [8] OCTET STRING (SIZE(1)) OPTIONAL
}
MMEUnsuccessfulProcedure ::= SEQUENCE
@@ -2623,10 +5485,43 @@ MMEUnsuccessfulProcedure ::= SEQUENCE
location [7] Location OPTIONAL
}
+-- See clause 6.3.2.2.8 for details of this structure
+MMEPositioningInfoTransfer ::= SEQUENCE
+{
+ iMSI [1] IMSI,
+ iMEI [2] IMEI OPTIONAL,
+ mSISDN [3] MSISDN OPTIONAL,
+ gUTI [4] GUTI OPTIONAL,
+ lPPaMessage [5] OCTET STRING OPTIONAL,
+ lPPMessage [6] OCTET STRING OPTIONAL,
+ mMELCSCorrelationId [7] OCTET STRING (SIZE(4))
+}
+
-- ==================
-- EPS MME parameters
-- ==================
+AerialUESubscriptionIndicator ::= ENUMERATED
+{
+ authorized(1),
+ notAuthorized(2)
+}
+
+BBFTunnelInformation ::= SEQUENCE
+{
+ hENBTransportLayerAddress [1] IPAddr,
+ uDPPortNumber [2] PortNumber OPTIONAL
+}
+
+ConnectedENGNB ::= SEQUENCE
+{
+ eNGNBID [1] GNbID,
+ supportedTAList [2] TACList,
+ broadcastPLMN [3] PLMNList
+}
+
+ConnectedENGNBList ::= SEQUENCE SIZE (1..MAX) OF ConnectedENGNB
+
EMMCause ::= INTEGER (0..255)
ESMCause ::= INTEGER (0..255)
@@ -2646,6 +5541,17 @@ EPSAttachResult ::= ENUMERATED
combinedEPSIMSI(2)
}
+EPSCSFallbackIndicator ::= ENUMERATED
+{
+ cSFallbackRequired(1),
+ cSFallbackHighPriority(2)
+}
+
+EPSCSGInfo ::= SEQUENCE
+{
+ cSGID [1] CSGID OPTIONAL,
+ cSGMembershipStatus [2] CSGMembershipIndication OPTIONAL
+}
EPSDetachType ::= ENUMERATED
{
@@ -2657,6 +5563,41 @@ EPSDetachType ::= ENUMERATED
reserved(6)
}
+EPSHandoverRestrictionList ::= ExternalASNType
+
+EPSRANCause ::= ExternalASNType
+
+EPSRANUEContext ::= SEQUENCE
+{
+ mMEUES1APID [1] MMEUES1APID,
+ rANUES1APID [2] RANUES1APID,
+ eRABSetupRequest [3] ERABContextList OPTIONAL,
+ handoverRestrictionList [4] EPSHandoverRestrictionList OPTIONAL,
+ uERadioCapability [5] EPSUERadioCapability OPTIONAL,
+ rATFrequencySelectionPriority [6] RATFrequencySelectionPriority OPTIONAL,
+ cSFallbackIndicator [7] EPSCSFallbackIndicator OPTIONAL,
+ proSeAuthorized [8] EPSProSeAuthorization OPTIONAL,
+ lTEV2XServicesAuthorized [9] LTEV2XServiceAuthorization OPTIONAL,
+ aerialUESubscription [10] AerialUESubscriptionIndicator OPTIONAL,
+ subscriptionBasedUEDifferentiationIndication [11] EPSSubscriptionBasedUEDifferentiationIndication OPTIONAL,
+ iABAuthorizedIndicator [12] IABAuthorizedIndicator OPTIONAL,
+ nRV2XServicesAuthorization [13] NRV2XServicesAuthorization OPTIONAL
+}
+
+EPSNASTransportInitialInformation ::= SEQUENCE
+{
+ rANUES1APID [1] RANUES1APID,
+ relayNodeIndicator [2] BOOLEAN OPTIONAL,
+ bBFTunnelInformation [3] BBFTunnelInformation OPTIONAL,
+ eDTSession [4] BOOLEAN OPTIONAL,
+ iABNodeIndication [5] BOOLEAN OPTIONAL,
+ lTENTNTAIInformation [6] LTENTNTAIInformation OPTIONAL
+}
+
+EPSNetworkPolicy ::= OCTET STRING (SIZE (1))
+
+EPSProSeAuthorization ::= ExternalASNType
+
EPSSMSServiceStatus ::= ENUMERATED
{
sMSServicesNotAvailable(1),
@@ -2665,6 +5606,43 @@ EPSSMSServiceStatus ::= ENUMERATED
congestion(4)
}
+EPSSubscriptionBasedUEDifferentiationIndication ::= ExternalASNType
+
+EPSUENetworkCapability ::= OCTET STRING (SIZE(2..13))
+
+EPSUERadioCapability ::= OCTET STRING
+
+ERABQoSParameters ::= SEQUENCE
+{
+ qCI [1] QCI
+}
+
+ERABContext ::= SEQUENCE
+{
+ eRABID [1] EPSBearerID,
+ eRABQoSParameters [2] ERABQoSParameters OPTIONAL,
+ transportLayerAddress [3] IPAddr OPTIONAL,
+ uLGTPTEID [4] FTEID OPTIONAL,
+ dLGTPTEID [5] FTEID OPTIONAL
+}
+
+ERABContextList ::= SEQUENCE SIZE (1..MAX) OF ERABContext
+
+ERABError ::= SEQUENCE
+{
+ eRABID [1] EPSBearerID,
+ cause [2] EPSRANCause
+}
+
+ERABReleaseList ::= SEQUENCE SIZE (1..MAX) OF ERABError
+
+LTENTNTAIInformation ::= SEQUENCE
+{
+ pLMN [1] PLMNID,
+ tACListInLTENTN [2] TACList,
+ uETAC [3] TAC OPTIONAL
+}
+
MMEDirection ::= ENUMERATED
{
networkInitiated(1),
@@ -2693,6 +5671,28 @@ MMEFailureCause ::= CHOICE
eSMCause [2] ESMCause
}
+MMEServedGUMMEI ::= SEQUENCE
+{
+ servedPLMNs [1] PLMNSupportList
+}
+
+MMEServedGUMMEIList ::= SEQUENCE(SIZE (1..MAX)) OF MMEServedGUMMEI
+
+MMEUES1APID ::= INTEGER (0..4294967295)
+
+RANUES1APID ::= INTEGER (0..16777215)
+
+S1Information ::= SEQUENCE
+{
+ globalRANNodeID [1] GlobalRANNodeID,
+ rANNodeName [2] RANNodeName OPTIONAL,
+ supportedTAList [3] SupportedTAList OPTIONAL,
+ cSGIDList [4] CSGIDList OPTIONAL,
+ connectedENGNBList [5] ConnectedENGNBList OPTIONAL,
+ mMEServedGUMMEIList [6] MMEServedGUMMEIList,
+ iABSupported [7] BOOLEAN OPTIONAL
+}
+
-- ===========================
-- LI Notification definitions
-- ===========================
@@ -2703,7 +5703,9 @@ LINotification ::= SEQUENCE
appliedTargetID [2] TargetIdentifier OPTIONAL,
appliedDeliveryInformation [3] SEQUENCE OF LIAppliedDeliveryInformation OPTIONAL,
appliedStartTime [4] Timestamp OPTIONAL,
- appliedEndTime [5] Timestamp OPTIONAL
+ appliedEndTime [5] Timestamp OPTIONAL,
+ appliedTargetIsLocal [6] BOOLEAN OPTIONAL,
+ appliedTargetIsNonLocal [7] BOOLEAN OPTIONAL
}
-- ==========================
@@ -2761,6 +5763,54 @@ FiveGMMStatus ::= ENUMERATED
uENot5GMMRegistered(2)
}
+-- ========================================
+-- Separated Location Reporting definitions
+-- ========================================
+
+SeparatedLocationReporting ::= SEQUENCE
+{
+ sUPI [1] SUPI,
+ sUCI [2] SUCI OPTIONAL,
+ pEI [3] PEI OPTIONAL,
+ gPSI [4] GPSI OPTIONAL,
+ gUTI [5] FiveGGUTI OPTIONAL,
+ location [6] Location,
+ non3GPPAccessEndpoint [7] UEEndpointAddress OPTIONAL,
+ rATType [8] RATType OPTIONAL,
+ ePSIdentities [9] EPSSubscriberIDs OPTIONAL
+}
+
+-- =======================
+-- HSS definitions
+-- =======================
+
+HSSServingSystemMessage ::= SEQUENCE
+{
+ iMSI [1] IMSI,
+ oldPLMNID [2] PLMNID,
+ newPLMNID [3] PLMNID,
+ roamingIndicator [4] RoamingIndicator,
+ responseCodes [5] UTF8String
+}
+
+HSSStartOfInterceptionWithRegisteredTarget ::= SEQUENCE
+{
+ hSSIdentities [1] HSSIdentities,
+ subscriptionDataSets [2] SubscriptionDataSets,
+ pSUserState [3] SBIType
+}
+
+HSSIdentities ::= SEQUENCE
+{
+ ePSSubscriberIDs [1] EPSSubscriberIDs OPTIONAL,
+ iMSSubscriberIDs [2] IMSSubscriberIDs OPTIONAL
+}
+
+SubscriptionDataSets ::= CHOICE
+{
+ iMSSubscriptionData [1] SBIType
+}
+
-- =================
-- Common Parameters
-- =================
@@ -2772,6 +5822,127 @@ AccessType ::= ENUMERATED
threeGPPandNonThreeGPPAccess(3)
}
+AllowedNSSAI ::= SEQUENCE OF NSSAI
+
+AllowedTACs ::= SEQUENCE (SIZE(1..MAX)) OF TAC
+
+AreaOfInterest ::= SEQUENCE
+{
+ areaOfInterestTAIList [1] AreaOfInterestTAIList OPTIONAL,
+ areaOfInterestCellList [2] AreaOfInterestCellList OPTIONAL,
+ areaOfInterestRANNodeList [3] AreaOfInterestRANNodeList OPTIONAL
+}
+
+AreaOfInterestCellList ::= SEQUENCE (SIZE(1..MAX)) OF NCGI
+
+AreaOfInterestItem ::= SEQUENCE
+{
+ areaOfInterest [1] AreaOfInterest
+}
+
+AreaOfInterestRANNodeList ::= SEQUENCE (SIZE(1..MAX)) OF GlobalRANNodeID
+
+AreaOfInterestTAIList ::= SEQUENCE (SIZE(1..MAX)) OF TAI
+
+BroadcastPLMNItem ::= SEQUENCE
+{
+ pLMNIdentity [1] PLMNID,
+ tAISliceSupportList [2] TAISliceSupportList,
+ nPNSupport [3] NID
+}
+
+CellCAGList ::= SEQUENCE (SIZE(1..MAX)) OF CAGID
+
+CauseMisc ::= ENUMERATED
+{
+ controlProcessingOverload(1),
+ notEnoughUserPlaneProcessingResources(2),
+ hardwareFailure(3),
+ oMIntervention(4),
+ unknownPLMNOrSNPN(5),
+ unspecified(6)
+}
+
+CauseNas ::= ENUMERATED
+{
+ normalRelease(1),
+ authenticationFailure(2),
+ deregister(3),
+ unspecified(4)
+}
+
+CauseProtocol ::= ENUMERATED
+{
+ transferSyntaxError(1),
+ abstractSyntaxError-reject(2),
+ abstractSyntaxErrorIgnoreAndNotify(3),
+ messageNotCompatibleWithReceiverState(4),
+ semanticError(5),
+ abstractSyntaxErrorFalselyConstructedMessage(6),
+ unspecified(7)
+}
+
+CauseRadioNetwork ::= ENUMERATED
+{
+ unspecified(1),
+ txnrelocoverallExpiry(2),
+ successfulHandover(3),
+ releaseDueToNGRANGeneratedReason(4),
+ releaseDueTo5gcGeneratedReason(5),
+ handoverCancelled(6),
+ partialHandover(7),
+ hoFailureInTarget5GCNGRANNodeOrTargetSystem(8),
+ hoTargetNotAllowed(9),
+ tNGRelocOverallExpiry(10),
+ tNGRelocPrepExpiry(11),
+ cellNotAvailable(12),
+ unknownTargetID(13),
+ noRadioResourcesAvailableInTargetCell(14),
+ unknownLocalUENGAPID(15),
+ inconsistentRemoteUENGAPID(16),
+ handoverDesirableForRadioReason(17),
+ timeCriticalHandover(18),
+ resourceOptimisationHandover(19),
+ reduceLoadInServingCell(20),
+ userInactivity(21),
+ radioConnectionWithUELost(22),
+ radioResourcesNotAvailable(23),
+ invalidQoSCombination(24),
+ failureInRadioInterfaceProcedure(25),
+ interactionWithOtherProcedure(26),
+ unknownPDUSessionID(27),
+ multiplePDUSessionIDInstances(29),
+ multipleQoSFlowIDInstances(30),
+ encryptionAndOrIntegrityProtectionAlgorithmsNotSupported(31),
+ nGIntraSystemHandoverTriggered(32),
+ nGInterSystemHandoverTriggered(33),
+ xNHandoverTriggered(34),
+ notSupported5QIValue(35),
+ uEContextTransfer(36),
+ iMSVoiceeEPSFallbackOrRATFallbackTriggered(37),
+ uPIntegrityProtectioNotPossible(38),
+ uPConfidentialityProtectionNotPossible(39),
+ sliceNotSupported(40),
+ uEInRRCInactiveStateNotReachable(41),
+ redirection(42),
+ resourcesNotAvailableForTheSlice(43),
+ uEMaxIntegrityProtectedDataRateReason(44),
+ releaseDueToCNDetectedMobility(45),
+ n26InterfaceNotAvailable(46),
+ releaseDueToPreemption(47),
+ multipleLocationReportingReferenceIDInstances(48),
+ rSNNotAvailableForTheUP(49),
+ nPMAccessDenied(50),
+ cAGOnlyAccessDenied(51),
+ insufficientUECapabilities(52)
+}
+
+CauseTransport ::= ENUMERATED
+{
+ transportResourceUnavailable(1),
+ unspecified(2)
+}
+
Direction ::= ENUMERATED
{
fromTarget(1),
@@ -2784,6 +5955,12 @@ E164Number ::= NumericString (SIZE(1..15))
EmailAddress ::= UTF8String
+EPSHandoverType ::= ExternalASNType
+
+EquivalentPLMNs ::= SEQUENCE (SIZE(1..MAX)) OF PLMNID
+
+EUI64 ::= OCTET STRING (SIZE(8))
+
FiveGGUTI ::= SEQUENCE
{
mCC [1] MCC,
@@ -2796,6 +5973,19 @@ FiveGGUTI ::= SEQUENCE
FiveGMMCause ::= INTEGER (0..255)
+FiveGSSubscriberID ::= CHOICE
+{
+ sUPI [1] SUPI,
+ sUCI [2] SUCI,
+ pEI [3] PEI,
+ gPSI [4] GPSI
+}
+
+FiveGSSubscriberIDs ::= SEQUENCE
+{
+ fiveGSSubscriberID [1] SEQUENCE SIZE(1..MAX) OF FiveGSSubscriberID
+}
+
FiveGSMRequestType ::= ENUMERATED
{
initialRequest(1),
@@ -2811,6 +6001,37 @@ FiveGSMCause ::= INTEGER (0..255)
FiveGTMSI ::= INTEGER (0..4294967295)
+FiveGSRVCCInfo ::= SEQUENCE
+{
+ uE5GSRVCCCapability [1] BOOLEAN,
+ sessionTransferNumber [2] UTF8String OPTIONAL,
+ correlationMSISDN [3] MSISDN OPTIONAL
+}
+
+FiveGSUserStateInfo ::= SEQUENCE
+{
+ fiveGSUserState [1] FiveGSUserState,
+ accessType [2] AccessType
+}
+
+FiveGSUserState ::= ENUMERATED
+{
+ deregistered(1),
+ registeredNotReachableForPaging(2),
+ registeredReachableForPaging(3),
+ connectedNotReachableForPaging(4),
+ connectedReachableForPaging(5),
+ notProvidedFromAMF(6)
+}
+
+ForbiddenAreaInformation ::= SEQUENCE
+{
+ pLMNIdentity [1] PLMNID,
+ forbiddenTACs [2] ForbiddenTACs
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..MAX)) OF TAC
+
FTEID ::= SEQUENCE
{
tEID [1] INTEGER (0.. 4294967295),
@@ -2818,6 +6039,8 @@ FTEID ::= SEQUENCE
iPv6Address [3] IPv6Address OPTIONAL
}
+FTEIDList ::= SEQUENCE OF FTEID
+
GPSI ::= CHOICE
{
mSISDN [1] MSISDN,
@@ -2846,6 +6069,25 @@ GUTI ::= SEQUENCE
mTMSI [5] TMSI
}
+HandoverCause ::= CHOICE
+{
+ radioNetwork [1] CauseRadioNetwork,
+ transport [2] CauseTransport,
+ nas [3] CauseNas,
+ protocol [4] CauseProtocol,
+ misc [5] CauseMisc
+}
+
+HandoverType ::= ENUMERATED
+{
+ intra5GS(1),
+ fiveGStoEPS(2),
+ ePSto5GS(3),
+ fiveGStoUTRA(4)
+}
+
+HomeNetworkIdentifier ::= UTF8String
+
HomeNetworkPublicKeyID ::= OCTET STRING
HSMFURI ::= UTF8String
@@ -2864,6 +6106,14 @@ IMPU ::= CHOICE
IMSI ::= NumericString (SIZE(6..15))
+IMSIUnauthenticatedIndication ::= BOOLEAN
+
+IMSSubscriberIDs ::= CHOICE
+{
+ iMPI [1] IMPI,
+ iMPU [2] IMPU
+}
+
Initiator ::= ENUMERATED
{
uE(1),
@@ -2883,8 +6133,39 @@ IPv6Address ::= OCTET STRING (SIZE(16))
IPv6FlowLabel ::= INTEGER(0..1048575)
+LocationAreaOfInterestList ::= SEQUENCE (SIZE(1..MAX)) OF AreaOfInterestItem
+
+LocationEventType ::= ENUMERATED
+{
+ direct(1),
+ changeOfServeCell(2),
+ uEPrescenceInAreaOfInterest(3),
+ stopChangeOfServeCell(4),
+ stopUEPresenceInAreaOfInterest(5),
+ cancelLocationReportingForTheUE(6)
+}
+
+LocationReportArea ::= ENUMERATED
+{
+ cell(1)
+}
+
+LocationReportingRequestType ::= SEQUENCE
+{
+ eventType [1] LocationEventType,
+ reportArea [2] LocationReportArea,
+ areaOfInterestList [3] LocationAreaOfInterestList
+}
+
MACAddress ::= OCTET STRING (SIZE(6))
+MACRestrictionIndicator ::= ENUMERATED
+{
+ noResrictions(1),
+ mACAddressNotUseableAsEquipmentIdentifier(2),
+ unknown(3)
+}
+
MCC ::= NumericString (SIZE(3))
MNC ::= NumericString (SIZE(2..3))
@@ -2899,6 +6180,15 @@ MMEC ::= NumericString
MMEGI ::= NumericString
+MobilityRestrictionList ::= SEQUENCE
+{
+ servingPLMN [1] PLMNID,
+ equivalentPLMNs [2] EquivalentPLMNs OPTIONAL,
+ rATRestrictions [3] RATRestrictions OPTIONAL,
+ forbiddenAreaInformation [4] ForbiddenAreaInformation OPTIONAL,
+ serviceAreaInformation [5] ServiceAreaInformation OPTIONAL
+}
+
MSISDN ::= NumericString (SIZE(1..15))
NAI ::= UTF8String
@@ -2911,16 +6201,45 @@ NonLocalID ::= ENUMERATED
nonLocal(2)
}
+NonIMEISVPEI ::= CHOICE
+{
+ mACAddress [1] MACAddress,
+ eUI64 [2] EUI64
+}
+
+NPNAccessInformation ::= CHOICE
+{
+ pNINPNAccessInformation [1] CellCAGList
+}
+
NSSAI ::= SEQUENCE OF SNSSAI
+PagingRestrictionIndicator ::= OCTET STRING (SIZE(1..33))
+
PLMNID ::= SEQUENCE
{
mCC [1] MCC,
mNC [2] MNC
}
+PLMNList ::= SEQUENCE (SIZE(1..MAX)) OF PLMNID
+
+PDNConnectionType ::= ENUMERATED
+{
+ iPv4(1),
+ iPv6(2),
+ iPv4v6(3),
+ nonIP(4),
+ ethernet(5)
+}
+
PDUSessionID ::= INTEGER (0..255)
+PDUSessionResourceInformation ::= SEQUENCE
+{
+ pDUSessionID [1] PDUSessionID
+}
+
PDUSessionType ::= ENUMERATED
{
iPv4(1),
@@ -2933,13 +6252,63 @@ PDUSessionType ::= ENUMERATED
PEI ::= CHOICE
{
iMEI [1] IMEI,
- iMEISV [2] IMEISV
+ iMEISV [2] IMEISV,
+ mACAddress [3] MACAddress,
+ eUI64 [4] EUI64
}
-PortNumber ::= INTEGER(0..65535)
+PortNumber ::= INTEGER (0..65535)
+
+PrimaryAuthenticationType ::= ENUMERATED
+{
+ eAPAKAPrime(1),
+ fiveGAKA(2),
+ eAPTLS(3),
+ none(4),
+ ePSAKA(5),
+ eAPAKA(6),
+ iMSAKA(7),
+ gBAAKA(8),
+ uMTSAKA(9)
+}
ProtectionSchemeID ::= INTEGER (0..15)
+RANNodeName ::= CHOICE
+{
+ rANNodeNameVisible [1] OCTET STRING,
+ rANNodeNameUTF8 [2] UTF8String
+}
+
+RANUENGAPID ::= INTEGER (0..4294967295)
+
+-- See clause 9.3.1.20 of TS 38.413 [23] for details
+RANSourceToTargetContainer ::= OCTET STRING
+
+-- See clause 9.3.1.21 of TS 38.413 [23] for details
+RANTargetToSourceContainer ::= OCTET STRING
+
+RATInformation ::= ENUMERATED
+{
+ unlicensed(1),
+ nBIoT(2),
+ nRLEO(3),
+ nRMEO(4),
+ nRGEO(5),
+ nROTHERSAT(6)
+}
+
+RATRestrictions ::= SEQUENCE (SIZE(1..MAX)) OF RATRestrictionItem
+
+RATRestrictionInformation ::= BIT STRING (SIZE(8, ...))
+
+RATRestrictionItem ::= SEQUENCE
+{
+ pLMNIdentity [1] PLMNID,
+ rATRestrictionInformation [2] RATRestrictionInformation
+
+}
+
RATType ::= ENUMERATED
{
nR(1),
@@ -2956,7 +6325,12 @@ RATType ::= ENUMERATED
trustedN3GA(12),
trustedWLAN(13),
uTRA(14),
- gERA(15)
+ gERA(15),
+ nRLEO(16),
+ nRMEO(17),
+ nRGEO(18),
+ nROTHERSAT(19),
+ nRREDCAP(20)
}
RejectedNSSAI ::= SEQUENCE OF RejectedSNSSAI
@@ -2979,6 +6353,15 @@ RoutingIndicator ::= INTEGER (0..9999)
SchemeOutput ::= OCTET STRING
+ServiceAreaInformation ::= SEQUENCE (SIZE(1..MAX)) OF ServiceAreaInfo
+
+ServiceAreaInfo ::= SEQUENCE
+{
+ pLMNIdentity [1] PLMNID,
+ allowedTACs [2] AllowedTACs OPTIONAL,
+ notAllowedTACs [3] ForbiddenTACs OPTIONAL
+}
+
SIPURI ::= UTF8String
Slice ::= SEQUENCE
@@ -2999,8 +6382,16 @@ SMSOverNASIndicator ::= ENUMERATED
SNSSAI ::= SEQUENCE
{
- sliceServiceType [1] INTEGER (0..255),
- sliceDifferentiator [2] OCTET STRING (SIZE(3)) OPTIONAL
+ sliceServiceType [1] INTEGER (0..255),
+ sliceDifferentiator [2] OCTET STRING (SIZE(3)) OPTIONAL,
+ mappedHPLMNSliceServiceType [3] INTEGER (0..255) OPTIONAL,
+ mappedHPLMNSliceDifferentiator [4] OCTET STRING (SIZE(3)) OPTIONAL
+}
+
+SubscriberIdentifier ::= CHOICE
+{
+ sUCI [1] SUCI,
+ sUPI [2] SUPI
}
SUCI ::= SEQUENCE
@@ -3010,7 +6401,13 @@ SUCI ::= SEQUENCE
routingIndicator [3] RoutingIndicator,
protectionSchemeID [4] ProtectionSchemeID,
homeNetworkPublicKeyID [5] HomeNetworkPublicKeyID,
- schemeOutput [6] SchemeOutput
+ schemeOutput [6] SchemeOutput,
+
+ -- routingIndicatorLength shall be included if different from the number
+ -- of meaningful digits given in routingIndicator.
+ routingIndicatorLength [7] INTEGER (1..4) OPTIONAL,
+ sUPIType [8] SUPIType OPTIONAL,
+ homeNetworkIdentifier [9] HomeNetworkIdentifier OPTIONAL
}
SUPI ::= CHOICE
@@ -3021,24 +6418,44 @@ SUPI ::= CHOICE
SUPIUnauthenticatedIndication ::= BOOLEAN
+SUPIType ::= INTEGER (0..7)
+
+SupportedTAList ::= SEQUENCE (SIZE(1..MAX)) OF TAItem
+
SwitchOffIndicator ::= ENUMERATED
{
normalDetach(1),
switchOff(2)
}
+TAItem ::= SEQUENCE
+{
+ tAC [1] TAC,
+ broadcastPLMNList [2] SEQUENCE (SIZE(1..MAX)) OF BroadcastPLMNItem,
+ rATinformation [3] RATInformation OPTIONAL
+}
+
+TAISliceSupportList ::= SEQUENCE (SIZE(1..MAX)) OF SNSSAI
+
TargetIdentifier ::= CHOICE
{
- sUPI [1] SUPI,
- iMSI [2] IMSI,
- pEI [3] PEI,
- iMEI [4] IMEI,
- gPSI [5] GPSI,
- mSISDN [6] MSISDN,
- nAI [7] NAI,
- iPv4Address [8] IPv4Address,
- iPv6Address [9] IPv6Address,
- ethernetAddress [10] MACAddress
+ sUPI [1] SUPI,
+ iMSI [2] IMSI,
+ pEI [3] PEI,
+ iMEI [4] IMEI,
+ gPSI [5] GPSI,
+ mSISDN [6] MSISDN,
+ nAI [7] NAI,
+ iPv4Address [8] IPv4Address,
+ iPv6Address [9] IPv6Address,
+ ethernetAddress [10] MACAddress,
+ iMPU [11] IMPU,
+ iMPI [12] IMPI,
+ e164Number [13] E164Number,
+ emailAddress [14] EmailAddress,
+ mCPTTID [15] UTF8String,
+ instanceIdentifierURN [16] UTF8String,
+ pTCChatGroupID [17] PTCChatGroupID
}
TargetIdentifierProvenance ::= ENUMERATED
@@ -3053,6 +6470,15 @@ TELURI ::= UTF8String
Timestamp ::= GeneralizedTime
+UEContextInfo ::= SEQUENCE
+{
+ supportVoPS [1] BOOLEAN OPTIONAL,
+ supportVoPSNon3GPP [2] BOOLEAN OPTIONAL,
+ lastActiveTime [3] Timestamp OPTIONAL,
+ accessType [4] AccessType OPTIONAL,
+ rATType [5] RATType OPTIONAL
+}
+
UEEndpointAddress ::= CHOICE
{
iPv4Address [1] IPv4Address,
@@ -3060,6 +6486,14 @@ UEEndpointAddress ::= CHOICE
ethernetAddress [3] MACAddress
}
+UserIdentifiers ::= SEQUENCE
+{
+ fiveGSSubscriberIDs [1] FiveGSSubscriberIDs OPTIONAL,
+ ePSSubscriberIDs [2] EPSSubscriberIDs OPTIONAL
+}
+
+UUID ::= OCTET STRING (SIZE (16))
+
-- ===================
-- Location parameters
-- ===================
@@ -3069,7 +6503,9 @@ Location ::= SEQUENCE
locationInfo [1] LocationInfo OPTIONAL,
positioningInfo [2] PositioningInfo OPTIONAL,
locationPresenceReport [3] LocationPresenceReport OPTIONAL,
- ePSLocationInfo [4] EPSLocationInfo OPTIONAL
+ fourGPositioningInfo [4] FourGPositioningInfo OPTIONAL,
+ fourGLocationInfo [5] FourGLocationInfo OPTIONAL,
+ iMSLocation [6] IMSLocation OPTIONAL
}
CellSiteInformation ::= SEQUENCE
@@ -3095,7 +6531,9 @@ UserLocation ::= SEQUENCE
{
eUTRALocation [1] EUTRALocation OPTIONAL,
nRLocation [2] NRLocation OPTIONAL,
- n3GALocation [3] N3GALocation OPTIONAL
+ n3GALocation [3] N3GALocation OPTIONAL,
+ uTRALocation [4] UTRALocation OPTIONAL,
+ gERALocation [5] GERALocation OPTIONAL
}
-- TS 29.571 [17], clause 5.4.4.8
@@ -3103,13 +6541,15 @@ EUTRALocation ::= SEQUENCE
{
tAI [1] TAI,
eCGI [2] ECGI,
- ageOfLocationInfo [3] INTEGER OPTIONAL,
+ ageOfLocationInfo [3] AgeOfLocation OPTIONAL,
uELocationTimestamp [4] Timestamp OPTIONAL,
geographicalInformation [5] UTF8String OPTIONAL,
geodeticInformation [6] UTF8String OPTIONAL,
globalNGENbID [7] GlobalRANNodeID OPTIONAL,
cellSiteInformation [8] CellSiteInformation OPTIONAL,
- globalENbID [9] GlobalRANNodeID OPTIONAL
+ globalENbID [9] GlobalRANNodeID OPTIONAL,
+ ignoreTAI [10] BOOLEAN OPTIONAL,
+ ignoreECGI [11] BOOLEAN OPTIONAL
}
-- TS 29.571 [17], clause 5.4.4.9
@@ -3117,12 +6557,15 @@ NRLocation ::= SEQUENCE
{
tAI [1] TAI,
nCGI [2] NCGI,
- ageOfLocationInfo [3] INTEGER OPTIONAL,
+ ageOfLocationInfo [3] AgeOfLocation OPTIONAL,
uELocationTimestamp [4] Timestamp OPTIONAL,
geographicalInformation [5] UTF8String OPTIONAL,
geodeticInformation [6] UTF8String OPTIONAL,
globalGNbID [7] GlobalRANNodeID OPTIONAL,
- cellSiteInformation [8] CellSiteInformation OPTIONAL
+ cellSiteInformation [8] CellSiteInformation OPTIONAL,
+ ignoreNCGI [9] BOOLEAN OPTIONAL,
+ nRNTNTAIInfo [10] NRNTNTAIInfo OPTIONAL,
+ iABMTUserLocation [11] IABMTUserLocation OPTIONAL
}
-- TS 29.571 [17], clause 5.4.4.10
@@ -3137,7 +6580,48 @@ N3GALocation ::= SEQUENCE
hFCNodeID [7] HFCNodeID OPTIONAL,
gLI [8] GLI OPTIONAL,
w5GBANLineType [9] W5GBANLineType OPTIONAL,
- gCI [10] GCI OPTIONAL
+ gCI [10] GCI OPTIONAL,
+ ageOfLocationInfo [11] AgeOfLocation OPTIONAL,
+ uELocationTimestamp [12] Timestamp OPTIONAL,
+ protocol [13] TransportProtocol OPTIONAL
+}
+
+-- TS 29.571 [17], clause 5.4.4.52
+UTRALocation ::= SEQUENCE
+{
+ cGI [1] CGI OPTIONAL,
+ sAI [2] SAI OPTIONAL,
+ lAI [3] LAI OPTIONAL,
+ rAI [4] RAI OPTIONAL,
+ ageOfLocationInfo [5] INTEGER OPTIONAL,
+ uELocationTimestamp [6] Timestamp OPTIONAL,
+ geographicalInformation [7] UTF8String OPTIONAL,
+ geodeticInformation [8] UTF8String OPTIONAL,
+ cellSiteInformation [9] CellSiteInformation OPTIONAL
+}
+
+-- TS 29.571 [17], clause 5.4.4.53
+GERALocation ::= SEQUENCE
+{
+ locationNumber [1] E164Number OPTIONAL,
+ cGI [2] CGI OPTIONAL,
+ rAI [3] RAI OPTIONAL,
+ sAI [4] SAI OPTIONAL,
+ lAI [5] LAI OPTIONAL,
+ vLRNumber [6] UTF8String OPTIONAL,
+ mSCNumber [7] UTF8String OPTIONAL,
+ ageOfLocationInfo [8] INTEGER OPTIONAL,
+ uELocationTimestamp [9] Timestamp OPTIONAL,
+ geographicalInformation [10] UTF8String OPTIONAL,
+ geodeticInformation [11] UTF8String OPTIONAL,
+ cellSiteInformation [12] CellSiteInformation OPTIONAL
+}
+
+IMSLocation ::= SEQUENCE
+{
+ pANIHeaderInfo [1] SEQUENCE OF PANIHeaderInfo OPTIONAL,
+ geolocationHeaderInfo [2] SEQUENCE OF SIPGeolocationHeaderInfo OPTIONAL,
+ cNIHeaderInfo [3] SEQUENCE OF SIPCNIHeaderInfo OPTIONAL
}
-- TS 38.413 [23], clause 9.3.2.4
@@ -3201,14 +6685,25 @@ SAI ::= SEQUENCE
SAC ::= OCTET STRING (SIZE(2))
+RAI ::= SEQUENCE
+{
+ pLMNID [1] PLMNID,
+ lAC [2] LAC,
+ rAC [3] RAC
+}
+
+RAC ::= OCTET STRING (SIZE(2))
+
-- TS 29.571 [17], clause 5.4.4.5
ECGI ::= SEQUENCE
{
pLMNID [1] PLMNID,
eUTRACellID [2] EUTRACellID,
- nID [3] NID OPTIONAL
+ nID [3] NID OPTIONAL
}
+TACList ::= SEQUENCE OF TAC
+
TAIList ::= SEQUENCE OF TAI
-- TS 29.571 [17], clause 5.4.4.6
@@ -3222,16 +6717,27 @@ NCGI ::= SEQUENCE
RANCGI ::= CHOICE
{
eCGI [1] ECGI,
- nCGI [2] NCGI
+ nCGI [2] NCGI,
+ cGI [3] CGI
}
CellInformation ::= SEQUENCE
{
rANCGI [1] RANCGI,
cellSiteinformation [2] CellSiteInformation OPTIONAL,
- timeOfLocation [3] Timestamp OPTIONAL
+ timeOfLocation [3] Timestamp OPTIONAL,
+ cellRadioRelatedInformation [4] CellRadioRelatedInformation OPTIONAL,
+ band [5] RFBand OPTIONAL
+}
+
+CellRadioRelatedInformation ::= CHOICE
+{
+ nGInformation [1] NGInformation,
+ f1Information [2] F1Information
}
+RFBand ::= UTF8String
+
-- TS 38.413 [23], clause 9.3.1.57
N3IWFIDNGAP ::= BIT STRING (SIZE(16))
@@ -3276,6 +6782,13 @@ GLI ::= OCTET STRING (SIZE(0..150))
-- TS 29.571 [17], clause 5.4.4.10 and table 5.4.2-1
GCI ::= UTF8String
+-- TS 29.571 [17], clause 5.4.4.10 and table 5.4.3.38
+TransportProtocol ::= ENUMERATED
+{
+ uDP(1),
+ tCP(2)
+}
+
-- TS 29.571 [17], clause 5.4.4.10 and clause 5.4.3.33
W5GBANLineType ::= ENUMERATED
{
@@ -3335,7 +6848,7 @@ LocationData ::= SEQUENCE
{
locationEstimate [1] GeographicArea,
accuracyFulfilmentIndicator [2] AccuracyFulfilmentIndicator OPTIONAL,
- ageOfLocationEstimate [3] AgeOfLocationEstimate OPTIONAL,
+ ageOfLocationEstimate [3] AgeOfLocation OPTIONAL,
velocityEstimate [4] VelocityEstimate OPTIONAL,
civicAddress [5] CivicAddress OPTIONAL,
positioningDataList [6] SET OF PositioningMethodAndUsage OPTIONAL,
@@ -3346,13 +6859,117 @@ LocationData ::= SEQUENCE
barometricPressure [11] BarometricPressure OPTIONAL
}
+-- TS 29.172 [53], clause 7.4.29
+GERANPositioningInfo ::= SEQUENCE
+{
+ gERANPositioningData [1] GERANPositioningData OPTIONAL,
+ gERANGANSSPositioningData [2] GERANGANSSPositioningData OPTIONAL
+}
+
+-- TS 29.172 [53], clause 7.4.30
+GERANPositioningData ::= OCTET STRING
+
+-- TS 29.172 [53], clause 7.4.31
+GERANGANSSPositioningData ::= OCTET STRING
+
+-- TS 29.172 [53], clause 7.4.32
+UTRANPositioningInfo ::= SEQUENCE
+{
+ uTRANPositioningData [1] UTRANPositioningData OPTIONAL,
+ uTRANGANSSPositioningData [2] UTRANGANSSPositioningData OPTIONAL,
+ uTRANAdditionalPositioningData [3] UTRANAdditionalPositioningData
+}
+
+-- TS 29.172 [53], clause 7.4.33
+UTRANPositioningData ::= OCTET STRING
+
+-- TS 29.172 [53], clause 7.4.34
+UTRANGANSSPositioningData ::= OCTET STRING
+
+-- TS 29.172 [53], clause 7.4.63
+UTRANAdditionalPositioningData ::= OCTET STRING
+
-- TS 29.172 [53], table 6.2.2-2
-EPSLocationInfo ::= SEQUENCE
+FourGPositioningInfo ::= SEQUENCE
+{
+ locationData [1] LocationData,
+ cGI [2] CGI OPTIONAL,
+ sAI [3] SAI OPTIONAL,
+ eSMLCCellInfo [4] ESMLCCellInfo OPTIONAL,
+ gERANPositioningInfo [5] GERANPositioningInfo OPTIONAL,
+ uTRANPositioningInfo [6] UTRANPositioningInfo OPTIONAL,
+ rawMLPResponse [7] RawMLPResponse OPTIONAL
+}
+
+FourGLocationInfo ::= CHOICE
+{
+ ePSLocationInformation [1] EPSLocationInformation,
+ ePSUserLocationInformation [2] EPSUserLocationInformation
+}
+
+-- TS 29.272 [106], clause 7.3.111
+EPSLocationInformation ::= SEQUENCE
+{
+ mMELocationInformation [1] MMELocationInformation OPTIONAL,
+ sGSNLocationInformation [2] SGSNLocationInformation OPTIONAL
+}
+
+-- TS 29.274 [87], clause 8.21
+EPSUserLocationInformation ::= OCTET STRING
+
+-- TS 29.272 [106], clause 7.3.115
+MMELocationInformation ::= SEQUENCE
+{
+ eCGI [1] ECGI OPTIONAL,
+ tAI [2] TAI OPTIONAL,
+ geographicalInformation [3] GeographicalInformationOctet OPTIONAL,
+ geodeticInformation [4] GeodeticInformationOctet OPTIONAL,
+ currentLocationRetrieved [5] BOOLEAN OPTIONAL,
+ ageOfLocationInformation [6] INTEGER OPTIONAL,
+ userCSGInformation [7] UserCSGInformation OPTIONAL,
+ eNbID [8] ENbID OPTIONAL,
+ additionalCellIDs [9] SEQUENCE OF CellInformation OPTIONAL
+}
+
+-- TS 32.299 [111], clause 7.3.240A
+UserCSGInformation ::= SEQUENCE
+{
+ cSGID [1] CSGID,
+ cSGAccessMode [2] CSGAccessMode,
+ cSGMembershipIndication [3] CSGMembershipIndication
+}
+
+-- TS 29.272 [106], clause 7.3.79
+CSGID ::= INTEGER
+
+CSGIDList ::= SEQUENCE SIZE(1..MAX) OF CSGID
+
+-- TS 32.299 [111], clause 7.2.46A
+CSGAccessMode ::= ENUMERATED
+{
+ closedMode(1),
+ hybridMode(2)
+}
+
+-- TS 32.299 [111], clause 7.2.46B
+CSGMembershipIndication ::= ENUMERATED
+{
+ notCSGMember(1),
+ cSGMember(2)
+}
+
+-- TS 29.272 [106], clause 7.3.116
+SGSNLocationInformation ::= SEQUENCE
{
- locationData [1] LocationData,
- cGI [2] CGI OPTIONAL,
- sAI [3] SAI OPTIONAL,
- eSMLCCellInfo [4] ESMLCCellInfo OPTIONAL
+ cGI [1] CGI OPTIONAL,
+ lAI [2] LAI OPTIONAL,
+ sAI [3] SAI OPTIONAL,
+ rAI [4] RAI OPTIONAL,
+ geographicalInformation [5] GeographicalInformationOctet OPTIONAL,
+ geodeticInformation [6] GeodeticInformationOctet OPTIONAL,
+ currentLocationRetrieved [7] BOOLEAN OPTIONAL,
+ ageOfLocationInformation [8] INTEGER OPTIONAL,
+ userCSGInformation [9] UserCSGInformation OPTIONAL
}
-- TS 29.172 [53], clause 7.4.57
@@ -3469,6 +7086,12 @@ GeographicArea ::= CHOICE
ellipsoidArc [7] EllipsoidArc
}
+-- TS 29.002 [47], clause 17.7.1, type GeographicalInformation
+GeographicalInformationOctet ::= OCTET STRING (SIZE (8))
+
+-- TS 29.002 [47], clause 17.7.1, type GeodeticInformation
+GeodeticInformationOctet ::= OCTET STRING (SIZE (10))
+
-- TS 29.572 [24], clause 6.1.6.3.12
AccuracyFulfilmentIndicator ::= ENUMERATED
{
@@ -3552,7 +7175,10 @@ Point ::= SEQUENCE
PointUncertaintyCircle ::= SEQUENCE
{
geographicalCoordinates [1] GeographicalCoordinates,
- uncertainty [2] Uncertainty
+ -- deprecatedUncertainty was deprecated in r18(18) version3(3)
+ -- and shall be set to 0. The uncertaintySBI parameter shall be used instead.
+ deprecatedUncertainty [2] Uncertainty,
+ uncertaintySBI [3] UncertaintySBI OPTIONAL
}
-- TS 29.572 [24], clause 6.1.6.2.8
@@ -3582,8 +7208,11 @@ PointAltitudeUncertainty ::= SEQUENCE
point [1] GeographicalCoordinates,
altitude [2] Altitude,
uncertaintyEllipse [3] UncertaintyEllipse,
- uncertaintyAltitude [4] Uncertainty,
- confidence [5] Confidence
+ -- deprecatedUncertaintyAltitude was deprecated in r18(18) version3(3)
+ -- and shall be set to 0. The uncertaintyAltitudeSBI parameter shall be used instead.
+ deprecatedUncertaintyAltitude [4] Uncertainty,
+ confidence [5] Confidence,
+ uncertaintyAltitudeSBI [6] UncertaintySBI OPTIONAL
}
-- TS 29.572 [24], clause 6.1.6.2.12
@@ -3591,10 +7220,13 @@ EllipsoidArc ::= SEQUENCE
{
point [1] GeographicalCoordinates,
innerRadius [2] InnerRadius,
- uncertaintyRadius [3] Uncertainty,
+ -- deprecatedUncertaintyRadius was deprecated in r18(18) version3(3)
+ -- and shall be set to 0. The uncertaintyRadiusSBI parameter shall be used instead.
+ deprecatedUncertaintyRadius [3] Uncertainty,
offsetAngle [4] Angle,
includedAngle [5] Angle,
- confidence [6] Confidence
+ confidence [6] Confidence,
+ uncertaintyRadiusSBI [7] UncertaintySBI OPTIONAL
}
-- TS 29.572 [24], clause 6.1.6.2.4
@@ -3608,9 +7240,15 @@ GeographicalCoordinates ::= SEQUENCE
-- TS 29.572 [24], clause 6.1.6.2.22
UncertaintyEllipse ::= SEQUENCE
{
- semiMajor [1] Uncertainty,
- semiMinor [2] Uncertainty,
- orientationMajor [3] Orientation
+ -- deprecatedSemiMajor was deprecated in r18(18) version3(3)
+ -- and shall be set to 0. The semiMajorSBI parameter shall be used instead.
+ deprecatedSemiMajor [1] Uncertainty,
+ -- deprecatedSemiMinor was deprecated in r18(18) version3(3)
+ -- and shall be set to 0. The semiMinorSBI parameter shall be used instead.
+ deprecatedSemiMinor [2] Uncertainty,
+ orientationMajor [3] Orientation,
+ semiMajorSBI [4] UncertaintySBI OPTIONAL,
+ semiMinorSBI [5] UncertaintySBI OPTIONAL
}
-- TS 29.572 [24], clause 6.1.6.2.18
@@ -3649,17 +7287,20 @@ HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE
}
-- The following types are described in TS 29.572 [24], table 6.1.6.3.2-1
+
Altitude ::= UTF8String
Angle ::= INTEGER (0..360)
-Uncertainty ::= INTEGER (0..127)
+UncertaintySBI ::= UTF8String
Orientation ::= INTEGER (0..180)
Confidence ::= INTEGER (0..100)
-InnerRadius ::= INTEGER (0..65535)
-AgeOfLocationEstimate ::= INTEGER (0..32767)
+InnerRadius ::= INTEGER (0..327675)
+AgeOfLocation ::= INTEGER (0..32767)
HorizontalSpeed ::= UTF8String
VerticalSpeed ::= UTF8String
SpeedUncertainty ::= UTF8String
-BarometricPressure ::= INTEGER (30000..155000)
+BarometricPressure ::= INTEGER (30000..115000)
+
+Uncertainty ::= INTEGER (0..127)
-- TS 29.572 [24], clause 6.1.6.3.13
VerticalDirection ::= ENUMERATED
@@ -3728,4 +7369,253 @@ OGCURN ::= UTF8String
-- TS 29.572 [24], clause 6.1.6.2.15
MethodCode ::= INTEGER (16..31)
+PANIHeaderInfo ::= SEQUENCE
+{
+ accessNetworkInformation [1] SIPAccessNetworkInformation,
+ accessInfo [2] SEQUENCE OF SIPAccessInfo OPTIONAL,
+ pANILocation [3] SEQUENCE OF SIPLocationInfo OPTIONAL
+}
+
+SIPGeolocationHeaderInfo ::= SEQUENCE
+{
+ locationValue [1] UTF8String,
+ cidInfo [2] UTF8String OPTIONAL
+}
+
+SIPAccessInfo ::= UTF8String
+
+SIPCellularAccessInfo ::= SEQUENCE
+{
+ accessInfo [1] SIPAccessInfo,
+ cellInfoAge [2] SIPCNICellInfoAge
+}
+
+SIPCNICellInfoAge ::= INTEGER(0..999999999)
+
+SIPLocationInfo ::= SEQUENCE
+{
+ locationInfo [1] LocationInfo OPTIONAL,
+ cellInformation [2] CellInformation OPTIONAL
+}
+
+SIPAccessNetworkInformation ::= SEQUENCE
+{
+ accessNetworkInfo [1] UTF8String,
+ servingPLMN [2] PLMNID OPTIONAL
+}
+
+SIPCNIHeaderInfo ::= SEQUENCE
+{
+ cellularNetworkInformation [1] SIPCellularNetworkInformation,
+ cellularAccessInfo [2] SEQUENCE OF SIPCellularAccessInfo OPTIONAL,
+ cNILocation [3] SEQUENCE OF SIPLocationInfo OPTIONAL
+}
+
+SIPCellularNetworkInformation ::= SEQUENCE
+{
+ cellularNetworkInfo [1] UTF8String,
+ servingPLMN [2] PLMNID OPTIONAL
+}
+
+-- TS 29.571 [17], clause 5.4.4.9 and TS 38.413 [23] clause 9.3.3.53
+NRNTNTAIInfo ::= SEQUENCE
+{
+ servingPLMN [1] PLMNID,
+ tACListNRNTN [2] SEQUENCE (SIZE(1..MAX)) OF TAC,
+ uELocationDerivedNTNTAC [3] TAC OPTIONAL
+}
+
+-- TS 38.413 [23], clause 9.3.1.260
+IABMTUserLocation ::= SEQUENCE
+{
+ nRCGI [1] NCGI,
+ tAI [2] TAI OPTIONAL
+}
+
+-- ==================================================
+-- Structures to allow reuse of encapsulated payloads
+-- ==================================================
+
+RCSPayload ::= CHOICE
+{
+ fullPayload [1] EncapsulatedRCSPayload,
+ modifiedPayload [2] ModifiedRCSPayload
+}
+
+EncapsulatedRCSPayload ::= CHOICE
+{
+ mIME [1] MIMEEntity,
+ mSRP [2] MSRPMessage,
+ sIP [3] SIPMessage
+}
+
+ModifiedRCSPayload ::= SEQUENCE
+{
+ modifiedRCSPayload [1] EncapsulatedRCSPayload,
+ modifications [2] PayloadModifications
+}
+
+PayloadModifications ::= SEQUENCE
+{
+ modificationList [1] SEQUENCE OF PayloadModification
+}
+
+PayloadModification ::= CHOICE
+{
+ predefinedModification [1] PredefinedPayloadModification,
+ describedModification [2] PayloadModificationDescription
+}
+
+PredefinedPayloadModification ::= ENUMERATED
+{
+ pANILocationRemoval(1),
+ cNILocationRemoval(2),
+ sIPGeolocationInfoRemoval(3),
+ presenceInformationLocationRemoval(4),
+ tS33128SMSTPDURedaction(5),
+ tS33128TruncatedSMSTPDU(6),
+ iMSTextContentRemoval(7),
+ iMSSubjectContentRemoval(8),
+ rCSPresenceLocationRemoval(9),
+ rCSCPIMLocationRemoval(10),
+ rCSTextContentRemoval(11),
+ rCSSubjectContentRemoval(12),
+ rCSGeolocationPUSHContentRemoval(13),
+ rCSFileURLContentRemoval(14),
+ threeGPP2SMSUserDataRedaction(15)
+}
+
+PayloadModificationDescription ::= SEQUENCE
+{
+ modificationLocation [1] ModificationLocation,
+ modificationType [2] ModificationType
+}
+
+ModificationLocation ::= CHOICE
+{
+ jSONPointer [1] UTF8String,
+ xPath [2] UTF8String,
+ sIPHeader [3] UTF8String,
+ sIPBody [4] NULL,
+ mIMEHeader [5] UTF8String,
+ mIMEBody [6] MIMEBody,
+ uTF8Location [7] IndexRange,
+ octetLocation [8] IndexRange,
+ aBNFRule [9] ABNFRuleLocation
+}
+
+ABNFRuleLocation ::= UTF8String
+
+ModificationType ::= CHOICE
+{
+ removed [1] PayloadInformationRemoved,
+ replacedWithCharacters [2] PayloadInformationReplacedWithCharacters,
+ replacedWithOctets [3] OCTET STRING,
+ replacedWithBits [4] BIT STRING
+}
+
+PayloadInformationRemoved ::= CHOICE
+{
+ charactersRemoved [1] INTEGER,
+ octetsRemoved [2] INTEGER,
+ bitsRemoved [3] INTEGER
+}
+
+PayloadInformationReplacedWithCharacters ::= SEQUENCE
+{
+ characters [1] UTF8String
+}
+
+IndexRange ::= SEQUENCE
+{
+ start [1] INTEGER,
+ end [2] INTEGER
+}
+
+-- ===============================================
+-- Externally Defined Structures - MSRP Parameters
+-- ===============================================
+
+EncapsulatedMSRP ::= UTF8String
+
+MSRPMessage ::= SEQUENCE
+{
+ encapsulatedMSRP [1] EncapsulatedMSRP
+}
+
+-- ==================================================
+-- Externally Defined Structures - SBIType Parameters
+-- ==================================================
+
+-- Details for the encoding and use of this parameter may be found in the clause
+-- that defines the xIRI that carries it. This parameter provides a generic
+-- mechanism to convey service based interface structures defined in Stage 3 working groups.
+
+SBIType ::= SEQUENCE
+{
+ sBIReference [1] SBIReference,
+ sBIValue [2] SBIValue
+}
+
+SBIReference ::= UTF8String
+
+SBIValue ::= UTF8String
+
+-- ==================================================
+-- Externally Defined Structures - XMLType Parameters
+-- ==================================================
+
+XMLType ::= SEQUENCE
+{
+ xMLNamespace [1] XMLNamespace,
+ xMLValue [2] XMLValue
+}
+
+XMLNamespace ::= UTF8String
+
+XMLValue ::= UTF8String
+
+-- ======================================================
+-- Externally Defined Structures - MIME Entity Parameters
+-- ======================================================
+
+EncapsulatedMIMEEntity ::= UTF8String
+
+MIMEContentType ::= UTF8String
+
+MIMEEntity ::= SEQUENCE
+{
+ contentType [1] MIMEContentType,
+ encapsulatedMIMEEntity [2] EncapsulatedMIMEEntity
+}
+
+MIMEPartIdentifier ::= CHOICE
+{
+ index [1] INTEGER
+}
+
+MIMEBody ::= CHOICE
+{
+ fullBody [1] NULL,
+ bodyPart [2] MIMEPartIdentifier
+}
+
+-- =======================================================
+-- Externally Defined Structures - External ASN Parameters
+-- =======================================================
+ExternalASNType ::= SEQUENCE
+{
+ moduleIdentifier [1] OBJECT IDENTIFIER,
+ aSNReference [2] ExternalASNReference OPTIONAL,
+ encodedASNValue [3] ExternalASNValue
+}
+
+ExternalASNReference ::= UTF8String
+
+ExternalASNValue ::= CHOICE
+{
+ bER [1] OCTET STRING,
+ alignedPER [2] OCTET STRING
+}
+
END
diff --git a/epan/dissectors/asn1/lix2/lix2.cnf b/epan/dissectors/asn1/lix2/lix2.cnf
index f6fa5654..d11921db 100644
--- a/epan/dissectors/asn1/lix2/lix2.cnf
+++ b/epan/dissectors/asn1/lix2/lix2.cnf
@@ -5,6 +5,16 @@
#.MODULE_IMPORT
+#.OMIT_ASSIGNMENT
+HeaderOnlyIndication
+KAFParams
+AreaScopeOfMDT
+MDTActivation
+MDTConfigurationEUTRA
+MDTConfigurationNR
+MDTMode
+RCSServerURI
+
#.EXPORTS
#.PDU
@@ -14,6 +24,9 @@ XIRIPayload
#.TYPE_RENAME
+#.TYPE_ATTR
+Timestamp TYPE = FT_ABSOLUTE_TIME DISPLAY = ABSOLUTE_TIME_UTC
+
#.FIELD_RENAME
#.END
diff --git a/epan/dissectors/asn1/lix2/packet-lix2-template.c b/epan/dissectors/asn1/lix2/packet-lix2-template.c
index 9a7c14e1..976f88ab 100644
--- a/epan/dissectors/asn1/lix2/packet-lix2-template.c
+++ b/epan/dissectors/asn1/lix2/packet-lix2-template.c
@@ -1,7 +1,7 @@
/* packet-lix2-template.c
* Routines for Lawful Interception X2 xIRI event dissection
*
- * See 3GPP TS33.128.
+ * See 3GPP TS33.128 V18.5.0
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -15,6 +15,7 @@
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
@@ -26,8 +27,8 @@ void proto_reg_handoff_lix2(void);
void proto_register_lix2(void);
/* Initialize the protocol and registered fields */
-static int proto_lix2 = -1;
-static dissector_handle_t lix2_handle = NULL;
+static int proto_lix2;
+static dissector_handle_t lix2_handle;
#include "packet-lix2-hf.c"
@@ -45,7 +46,7 @@ void proto_register_lix2(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-lix2-ettarr.c"
};
diff --git a/epan/dissectors/asn1/lnpdqp/lnpdqp.cnf b/epan/dissectors/asn1/lnpdqp/lnpdqp.cnf
index d9884247..05731a45 100644
--- a/epan/dissectors/asn1/lnpdqp/lnpdqp.cnf
+++ b/epan/dissectors/asn1/lnpdqp/lnpdqp.cnf
@@ -11,10 +11,10 @@ ProvideInstructionArg
#.FN_BODY Digits VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
- guint8 type_of_dgt;
+ uint8_t type_of_dgt;
proto_tree *subtree;
- type_of_dgt = tvb_get_guint8(tvb,offset);
+ type_of_dgt = tvb_get_uint8(tvb,offset);
switch(type_of_dgt){
case 2:
/* Calling Party Number */
diff --git a/epan/dissectors/asn1/lnpdqp/packet-lnpdqp-template.c b/epan/dissectors/asn1/lnpdqp/packet-lnpdqp-template.c
index f3ecee1d..8fe8ca46 100644
--- a/epan/dissectors/asn1/lnpdqp/packet-lnpdqp-template.c
+++ b/epan/dissectors/asn1/lnpdqp/packet-lnpdqp-template.c
@@ -11,6 +11,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#define PNAME "Local Number Portability Database Query"
@@ -28,37 +29,37 @@
* Operation Family = ProvideInstruction, Reply Required (131) 0x83
* Operation Specifier = Start (1)
*/
-/* Exluding H bit */
+/* Excluding H bit */
#define LNPDQP_ANSI_TCAP_OPCODE_PI 0x0301
void proto_reg_handoff_lnpdqp(void);
void proto_register_lnpdqp(void);
/* Initialize the protocol and registered fields */
-static int proto_lnpdqp = -1;
+static int proto_lnpdqp;
-static int hf_lnpdqp_type_of_digits = -1;
-static int hf_lnpdqp_nature_of_number = -1;
-static int hf_lnpdqp_digits_enc = -1;
-static int hf_lnpdqp_np = -1;
-static int hf_lnpdqp_nr_digits = -1;
-static int hf_lnpdqp_bcd_digits = -1;
-static int hf_lnpdqp_ia5_digits = -1;
+static int hf_lnpdqp_type_of_digits;
+static int hf_lnpdqp_nature_of_number;
+static int hf_lnpdqp_digits_enc;
+static int hf_lnpdqp_np;
+static int hf_lnpdqp_nr_digits;
+static int hf_lnpdqp_bcd_digits;
+static int hf_lnpdqp_ia5_digits;
/* asn2wrs/the ber dissector does not handle the same tag used multiple times
* in asn1 description, do some magic to handle.
*/
-static int hf_lnpdqp_networkRoutingNumber = -1; /* Digits */
-static int hf_lnpdqp_callingPartyANI = -1; /* Digits */
-static int hf_lnpdqp_originatingLATA = -1; /* Digits */
-static int hf_lnpdqp_carrierID = -1; /* Digits */
+static int hf_lnpdqp_networkRoutingNumber; /* Digits */
+static int hf_lnpdqp_callingPartyANI; /* Digits */
+static int hf_lnpdqp_originatingLATA; /* Digits */
+static int hf_lnpdqp_carrierID; /* Digits */
#include "packet-lnpdqp-hf.c"
-static int ett_lnpdqp = -1;
-static int ett_lnpdqp_digitstype = -1;
-static int ett_lnpdqp_digits = -1;
+static int ett_lnpdqp;
+static int ett_lnpdqp_digitstype;
+static int ett_lnpdqp_digits;
#include "packet-lnpdqp-ett.c"
@@ -163,7 +164,7 @@ static const value_string lnpdqp_OriginatingStationType_vals[] = {
static void
dissect_lnpdqp_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx _U_){
- guint8 octet , no_of_digits;
+ uint8_t octet , no_of_digits;
int offset = 0;
char *digit_str;
@@ -179,7 +180,7 @@ dissect_lnpdqp_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
proto_tree_add_item(subtree, hf_lnpdqp_nature_of_number, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
/* Octet 3 Numbering Plan |Encoding Scheme| */
- octet = tvb_get_guint8(tvb,offset);
+ octet = tvb_get_uint8(tvb,offset);
proto_tree_add_item(subtree, hf_lnpdqp_np, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_lnpdqp_digits_enc, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
@@ -187,17 +188,17 @@ dissect_lnpdqp_digits_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
switch ((octet&0xf)){
case 1:
/* BCD Coding */
- no_of_digits = tvb_get_guint8(tvb,offset);
+ no_of_digits = tvb_get_uint8(tvb,offset);
proto_tree_add_item(subtree, hf_lnpdqp_nr_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
if(no_of_digits == 0)
return;
offset++;
- proto_tree_add_item_ret_display_string(subtree, hf_lnpdqp_bcd_digits, tvb, offset, -1, ENC_KEYPAD_BC_TBCD, pinfo->pool, &digit_str);
+ proto_tree_add_item_ret_display_string(subtree, hf_lnpdqp_bcd_digits, tvb, offset, -1, ENC_KEYPAD_BC_TBCD|ENC_LITTLE_ENDIAN, pinfo->pool, &digit_str);
proto_item_append_text(actx->created_item, " - %s", digit_str);
break;
case 2:
/* IA5 Coding */
- no_of_digits = tvb_get_guint8(tvb,offset);
+ no_of_digits = tvb_get_uint8(tvb,offset);
proto_tree_add_item(subtree, hf_lnpdqp_nr_digits, tvb, offset, 1, ENC_BIG_ENDIAN);
if(no_of_digits == 0)
return;
@@ -221,7 +222,7 @@ dissect_lnpdqp_cc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
col_set_str(pinfo->cinfo, COL_INFO, "ConnectionControl");
@@ -241,7 +242,7 @@ dissect_lnpdqp_pi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
col_set_str(pinfo->cinfo, COL_INFO, "ProvideInstruction");
@@ -314,7 +315,7 @@ void proto_register_lnpdqp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_lnpdqp,
&ett_lnpdqp_digitstype,
&ett_lnpdqp_digits,
diff --git a/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c b/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c
index a2129050..f58499ee 100644
--- a/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c
+++ b/epan/dissectors/asn1/logotypecertextn/packet-logotypecertextn-template.c
@@ -12,6 +12,7 @@
#include "config.h"
#include <epan/packet.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-logotypecertextn.h"
@@ -25,7 +26,7 @@ void proto_register_logotypecertextn(void);
void proto_reg_handoff_logotypecertextn(void);
/* Initialize the protocol and registered fields */
-static int proto_logotypecertextn = -1;
+static int proto_logotypecertextn;
#include "packet-logotypecertextn-hf.c"
/* Initialize the subtree pointers */
@@ -44,7 +45,7 @@ void proto_register_logotypecertextn(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-logotypecertextn-ettarr.c"
};
diff --git a/epan/dissectors/asn1/lpp/LPP-Broadcast-Definitions.asn b/epan/dissectors/asn1/lpp/LPP-Broadcast-Definitions.asn
index cb5df311..44f4778a 100644
--- a/epan/dissectors/asn1/lpp/LPP-Broadcast-Definitions.asn
+++ b/epan/dissectors/asn1/lpp/LPP-Broadcast-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.355 V17.5.0 (2023-06)
+-- 3GPP TS 37.355 V18.2.0 (2024-06)
LPP-Broadcast-Definitions
@@ -11,7 +11,12 @@ IMPORTS
OTDOA-NeighbourCellInfoList,
NR-TRP-LocationInfo-r16,
NR-DL-PRS-BeamInfo-r16,
- NR-RTD-Info-r16
+ NR-RTD-Info-r16,
+ NR-IntegrityParametersTRP-LocationInfo-r18,
+ NR-IntegrityParametersDL-PRS-BeamInfo-r18,
+ NR-IntegrityParametersRTD-Info-r18,
+ NR-IntegrityParametersTRP-BeamAntennaInfo-r18
+
FROM LPP-PDU-Definitions;
@@ -58,4 +63,17 @@ NR-UEB-TRP-RTD-Info-r16 ::= SEQUENCE {
}
+NR-IntegrityParameters-r18 ::= SEQUENCE {
+ nr-IntegrityParametersTRP-LocationInfo-r18
+ NR-IntegrityParametersTRP-LocationInfo-r18 OPTIONAL, -- Need OR
+ nr-IntegrityParametersDL-PRS-BeamInfo-r18
+ NR-IntegrityParametersDL-PRS-BeamInfo-r18 OPTIONAL, -- Need OR
+ nr-IntegrityParametersRTD-Info-r18
+ NR-IntegrityParametersRTD-Info-r18 OPTIONAL, -- Need OR
+ nr-IntegrityParametersTRP-BeamAntennaInfo-r18
+ NR-IntegrityParametersTRP-BeamAntennaInfo-r18 OPTIONAL, -- Need OR
+ ...
+}
+
+
END
diff --git a/epan/dissectors/asn1/lpp/LPP-PDU-Definitions.asn b/epan/dissectors/asn1/lpp/LPP-PDU-Definitions.asn
index d7bf0b1d..5dd23721 100644
--- a/epan/dissectors/asn1/lpp/LPP-PDU-Definitions.asn
+++ b/epan/dissectors/asn1/lpp/LPP-PDU-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.355 V17.5.0 (2023-06)
+-- 3GPP TS 37.355 V18.2.0 (2024-06)
LPP-PDU-Definitions
DEFINITIONS AUTOMATIC TAGS ::=
@@ -147,8 +147,10 @@ RequestAssistanceData-r9-IEs ::= SEQUENCE {
[[ nr-Multi-RTT-RequestAssistanceData-r16 NR-Multi-RTT-RequestAssistanceData-r16 OPTIONAL,
nr-DL-AoD-RequestAssistanceData-r16 NR-DL-AoD-RequestAssistanceData-r16 OPTIONAL,
nr-DL-TDOA-RequestAssistanceData-r16 NR-DL-TDOA-RequestAssistanceData-r16 OPTIONAL
- ]]
-}
+ ]],
+ [[
+ bt-RequestAssistanceData-r18 BT-RequestAssistanceData-r18 OPTIONAL
+ ]]}
ProvideAssistanceData ::= SEQUENCE {
@@ -180,6 +182,9 @@ ProvideAssistanceData-r9-IEs ::= SEQUENCE {
nr-DL-TDOA-ProvideAssistanceData-r16
NR-DL-TDOA-ProvideAssistanceData-r16
OPTIONAL -- Need ON
+ ]],
+ [[
+ bt-ProvideAssistanceData-r18 BT-ProvideAssistanceData-r18 OPTIONAL -- Need ON
]]
}
@@ -525,6 +530,33 @@ HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
}
+Local2dPointWithUncertaintyEllipse-r18 ::= SEQUENCE {
+ localOrigin-r18 ReferencePoint-r16,
+ cartesianCoordinatesUnits-r18 ENUMERATED { mm, cm, dm, m, ...},
+ x-value-r18 X-Value-r18,
+ y-value-r18 Y-Value-r18,
+ uncertaintySemiMajor-r18 INTEGER (0..127),
+ uncertaintySemiMinor-r18 INTEGER (0..127),
+ orientationMajorAxis-r18 INTEGER (0..179),
+ confidence-r18 INTEGER (0..100)
+}
+
+
+Local3dPointWithUncertaintyEllipsoid-r18 ::= SEQUENCE {
+ localOrigin-r18 ReferencePoint-r16,
+ cartesianCoordinatesUnits-r18 ENUMERATED { mm, cm, dm, m, ...},
+ x-value-r18 X-Value-r18,
+ y-value-r18 Y-Value-r18,
+ z-value-r18 Z-Value-r18,
+ uncertaintySemiMajor-r18 INTEGER (0..127),
+ uncertaintySemiMinor-r18 INTEGER (0..127),
+ orientationMajorAxis-r18 INTEGER (0..179),
+ uncertaintyAltitude-r18 INTEGER (0..127),
+ confidence-r18 INTEGER (0..100),
+ vConfidence-r18 INTEGER (0..100) OPTIONAL -- Need ON
+}
+
+
LocationCoordinateTypes ::= SEQUENCE {
ellipsoidPoint BOOLEAN,
ellipsoidPointWithUncertaintyCircle BOOLEAN,
@@ -545,6 +577,10 @@ LocationCoordinateTypes ::= SEQUENCE {
BOOLEAN OPTIONAL, -- Need ON
ha-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16
BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[
+ local2dPointWithUncertaintyEllipse-r18 BOOLEAN OPTIONAL, -- Need ON
+ local3dPointWithUncertaintyEllipsoid-r18 BOOLEAN OPTIONAL -- Need ON
]]
}
@@ -576,6 +612,20 @@ PeriodicSessionID-r15 ::= SEQUENCE {
UpdateCapabilities-r15 ::= BIT STRING {primaryCellID-r15 (0)} (SIZE(1..8))
+PeriodicReportingIntervalMsSupport-r18 ::= SEQUENCE {
+ minPeriodicReportingIntervalMs-r18 ENUMERATED {ms1, ms10, ms100,...},
+ ...
+}
+
+
+PeriodicReportingIntervalMsSupportPerMode-r18 ::= SEQUENCE {
+ minPeriodicReportingIntervalMs1-Supported-r18 PositioningModes OPTIONAL,
+ minPeriodicReportingIntervalMs10-Supported-r18 PositioningModes OPTIONAL,
+ minPeriodicReportingIntervalMs100-Supported-r18 PositioningModes OPTIONAL,
+ ...
+}
+
+
Polygon ::= SEQUENCE (SIZE (3..15)) OF PolygonPoints
PolygonPoints ::= SEQUENCE {
@@ -634,6 +684,9 @@ CommonIEsRequestCapabilities ::= SEQUENCE {
[[
lpp-message-segmentation-req-r14 BIT STRING { serverToTarget (0),
targetToServer (1) } OPTIONAL -- Need ON
+ ]],
+ [[
+ remoteUE-IndicationReq-r18 ENUMERATED { true } OPTIONAL -- Cond NR
]]
}
@@ -644,6 +697,10 @@ CommonIEsProvideCapabilities ::= SEQUENCE {
segmentationInfo-r14 SegmentationInfo-r14 OPTIONAL, -- Cond Segmentation
lpp-message-segmentation-r14 BIT STRING { serverToTarget (0),
targetToServer (1) } OPTIONAL
+ ]],
+ [[
+ remoteUE-Indication-r18 BOOLEAN OPTIONAL, -- Cond NR
+ locationEstimateAndMeasurementReporting-r18 ENUMERATED { supported } OPTIONAL
]]
}
@@ -696,6 +753,11 @@ CommonIEsRequestLocationInformation ::= SEQUENCE {
ScheduledLocationTime-r17 OPTIONAL, -- Need ON
targetIntegrityRisk-r17
TargetIntegrityRisk-r17 OPTIONAL -- Need ON
+ ]],
+ [[
+ periodicalReportingExt-r18
+ PeriodicalReportingCriteriaExt-r18
+ OPTIONAL -- Need ON
]]
}
@@ -704,7 +766,8 @@ LocationInformationType ::= ENUMERATED {
locationMeasurementsRequired,
locationEstimatePreferred,
locationMeasurementsPreferred,
- ...
+ ...,
+ locationEstimateAndMeasurementsRequired-r18
}
PeriodicalReportingCriteria ::= SEQUENCE {
@@ -718,6 +781,15 @@ PeriodicalReportingCriteria ::= SEQUENCE {
}
}
+PeriodicalReportingCriteriaExt-r18 ::= SEQUENCE {
+ reportingAmount-r18 ENUMERATED {
+ ra2, ra4, ra8, ra16, ra32,
+ ra64, ra-Infinity
+ } DEFAULT ra-Infinity,
+ reportingIntervalMs-r18 INTEGER (1..999),
+ ...
+}
+
TriggeredReportingCriteria ::= SEQUENCE {
cellChange BOOLEAN,
reportingDuration ReportingDuration,
@@ -866,9 +938,11 @@ LocationCoordinates ::= CHOICE {
HighAccuracyEllipsoidPointWithUncertaintyEllipse-r15,
highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-v1510
HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15,
- ha-EllipsoidPointWithScalableUncertaintyEllipse-v1680 HA-EllipsoidPointWithScalableUncertaintyEllipse-r16,
+ ha-EllipsoidPointWithScalableUncertaintyEllipse-v1680 HA-EllipsoidPointWithScalableUncertaintyEllipse-r16,
ha-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-v1680
- HA-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16
+ HA-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16,
+ local2dPointWithUncertaintyEllipse-v1800 Local2dPointWithUncertaintyEllipse-r18,
+ local3dPointWithUncertaintyEllipsoid-v1800 Local3dPointWithUncertaintyEllipsoid-r18
}
Velocity ::= CHOICE {
@@ -972,6 +1046,14 @@ LCS-GCS-TranslationParameter-r16 ::= SEQUENCE {
}
+LocalOrigin-r18 ::= SEQUENCE {
+ coordinateID-r18 VisibleString (SIZE (1..256)),
+ point-r18 HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15 OPTIONAL, -- Need ON
+ horizAxesOrientation-r18 INTEGER (0..3599) OPTIONAL, -- Need ON
+ ...
+}
+
+
LOS-NLOS-Indicator-r17 ::= SEQUENCE {
indicator-r17 CHOICE {
soft-r17 INTEGER (0..10),
@@ -1005,7 +1087,13 @@ NR-AdditionalPath-r16 ::= SEQUENCE {
k3-r16 INTEGER(0..2044),
k4-r16 INTEGER(0..1022),
k5-r16 INTEGER(0..511),
- ...
+ ...,
+ kMinus6-r18 INTEGER(0..1046401),
+ kMinus5-r18 INTEGER(0..523201),
+ kMinus4-r18 INTEGER(0..261601),
+ kMinus3-r18 INTEGER(0..130801),
+ kMinus2-r18 INTEGER(0..65401),
+ kMinus1-r18 INTEGER(0..32701)
},
nr-PathQuality-r16 NR-TimingQuality-r16 OPTIONAL,
...,
@@ -1015,13 +1103,24 @@ NR-AdditionalPath-r16 ::= SEQUENCE {
}
+NR-AggregatedDL-PRS-ResourceInfo-Element-r18 ::= SEQUENCE {
+ aggregatedDL-PRS-ID-r18 INTEGER (0..255) OPTIONAL,
+ nr-DL-PRS-ResourceSetID-r18 NR-DL-PRS-ResourceSetID-r16 OPTIONAL,
+ nr-DL-PRS-ResourceID-r18 NR-DL-PRS-ResourceID-r16 OPTIONAL,
+ ...
+}
+
+
NR-DL-PRS-AssistanceData-r16 ::= SEQUENCE {
nr-DL-PRS-ReferenceInfo-r16 DL-PRS-ID-Info-r16,
nr-DL-PRS-AssistanceDataList-r16 SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
NR-DL-PRS-AssistanceDataPerFreq-r16,
nr-SSB-Config-r16 SEQUENCE (SIZE (1..nrMaxTRPs-r16)) OF
NR-SSB-Config-r16 OPTIONAL, -- Need ON
- ...
+ ...,
+ [[
+ nr-DL-PRS-AggregationInfo-r18 NR-DL-PRS-AggregationInfo-r18 OPTIONAL -- Need ON
+ ]]
}
NR-DL-PRS-AssistanceDataPerFreq-r16 ::= SEQUENCE {
@@ -1083,6 +1182,18 @@ NR-DL-PRS-ExpectedAoD-or-AoA-r17 ::= CHOICE {
}
}
+NR-DL-PRS-AggregationInfo-r18 ::= SEQUENCE (SIZE (1..nrMaxNumPRS-BandWidthAggregation-r18)) OF
+ NR-linkedDL-PRS-ResourceSetID-PRS-AggregationList-r18
+
+NR-linkedDL-PRS-ResourceSetID-PRS-AggregationList-r18 ::= SEQUENCE (SIZE (2..3)) OF
+ NR-DL-PRS-AggregationElement-r18
+
+NR-DL-PRS-AggregationElement-r18 ::= SEQUENCE {
+ nr-DL-PRS-FrequencyLayerIndex-r18 INTEGER (0..nrMaxFreqLayers-1-r16),
+ nr-DL-PRS-TRP-Index-r18 INTEGER (0..nrMaxTRPsPerFreq-1-r16),
+ nr-DL-PRS-ResourceSetIndex-r18 INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16)
+}
+
NR-DL-PRS-BeamInfo-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
NR-DL-PRS-BeamInfoPerFreqLayer-r16
@@ -1113,6 +1224,17 @@ DL-PRS-BeamInfoElement-r16 ::= SEQUENCE {
dl-PRS-Azimuth-fine-r16 INTEGER (0..9) OPTIONAL, -- Need ON
dl-PRS-Elevation-r16 INTEGER (0..180) OPTIONAL, -- Need ON
dl-PRS-Elevation-fine-r16 INTEGER (0..9) OPTIONAL, -- Need ON
+ ...,
+ [[
+ nr-IntegrityBeamInfoBounds-r18 NR-IntegrityBeamInfoBounds-r18 OPTIONAL -- Need OP
+ ]]
+}
+
+NR-IntegrityBeamInfoBounds-r18 ::= SEQUENCE {
+ meanAzimuth-r18 INTEGER (0..255),
+ stdDevAzimuth-r18 INTEGER (0..255),
+ meanElevation-r18 INTEGER (0..255),
+ stdDevElevation-r18 INTEGER (0..255),
...
}
@@ -1155,7 +1277,7 @@ NR-DL-PRS-ResourceSet-r16 ::= SEQUENCE {
OPTIONAL, -- Need OP
dl-PRS-ResourceTimeGap-r16 ENUMERATED {s1, s2, s4, s8, s16, s32, ...}
OPTIONAL, -- Cond Rep
- dl-PRS-NumSymbols-r16 ENUMERATED {n2, n4, n6, n12, ...},
+ dl-PRS-NumSymbols-r16 ENUMERATED {n2, n4, n6, n12, ..., n1-v1800 },
dl-PRS-MutingOption1-r16 DL-PRS-MutingOption1-r16 OPTIONAL, -- Need OP
dl-PRS-MutingOption2-r16 DL-PRS-MutingOption2-r16 OPTIONAL, -- Need OP
dl-PRS-ResourcePower-r16 INTEGER (-60..50),
@@ -1202,6 +1324,9 @@ NR-DL-PRS-Resource-r16 ::= SEQUENCE {
...,
[[
dl-PRS-ResourcePrioritySubset-r17 DL-PRS-ResourcePrioritySubset-r17 OPTIONAL -- Need ON
+ ]],
+ [[
+ dl-PRS-ResourceSymbolOffset-v1800 INTEGER (13) OPTIONAL -- Need OR
]]
}
@@ -1311,6 +1436,47 @@ NR-DL-PRSResourcePriorityItem-r17 ::= SEQUENCE {
}
+NR-DL-PRS-MeasurementTimeWindowsConfig-r18 ::=
+ SEQUENCE (SIZE(1..2)) OF
+ NR-DL-PRS-MeasurementTimeWindowsConfigElement-r18
+
+NR-DL-PRS-MeasurementTimeWindowsConfigElement-r18 ::= SEQUENCE {
+ nr-StartSFN-TimeWindow-r18 INTEGER (0..1023),
+ nr-PeriodicOrOneShotTimeWindow-r18 CHOICE {
+ nr-PeriodicityAndSlotOffsetTimeWindow-r18
+ NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r16,
+ nr-OneShotSlotOffsetTimeWindow-r18 CHOICE {
+ scs15-r18 INTEGER (0..10239),
+ scs30-r18 INTEGER (0..20479),
+ scs60-r18 INTEGER (0..40959),
+ scs120-r18 INTEGER (0..81919)
+ }
+ } OPTIONAL, -- Need ON
+ nr-SymbolOffsetTimeWindow-r18 INTEGER (0..13) OPTIONAL, -- Need ON
+ nr-DurationTimeWindow-r18 ENUMERATED { n1, n2, n4, n6, n8, n12, n16, ... },
+ nr-SelectedDL-PRS-FrequencyLayerIndex-r18 INTEGER (0..nrMaxFreqLayers-1-r16)
+ OPTIONAL, -- Need ON
+ nr-SelectedDL-PRS-IndexListPerFreq-r18
+ SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
+ NR-SelectedDL-PRS-IndexPerTRP-r18 OPTIONAL, -- Need OP
+ nr-MeasurementsToPerformInTimeWindow-r18 BIT STRING { rstd (0),
+ ueRxTx (1),
+ rsrp (2),
+ rsrpp (3),
+ rscp (4),
+ rscpd (5)
+ } (SIZE(1..16)) OPTIONAL, -- Need ON
+ ...
+}
+
+NR-SelectedDL-PRS-IndexPerTRP-r18 ::= SEQUENCE {
+ nr-SelectedTRP-Index-r18 INTEGER (0..nrMaxTRPsPerFreq-1-r16),
+ dl-SelectedPRS-ResourceSetIndexList-r18 SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
+ INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16) OPTIONAL, --Need OP
+ ...
+}
+
+
NR-DL-PRS-ProcessingCapability-r16 ::= SEQUENCE {
prs-ProcessingCapabilityBandList-r16 SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
PRS-ProcessingCapabilityPerBand-r16,
@@ -1396,6 +1562,61 @@ PRS-ProcessingCapabilityPerBand-r16 ::= SEQUENCE {
[[
prs-MeasurementWithoutMG-r17 ENUMERATED {cp, symbolDot25, symbolDot5,
slotDot5} OPTIONAL
+ ]],
+ [[
+ maxNumOfOneSymbolPRS-ResProcessedPerSlot-RRC-Inactive-r18 SEQUENCE {
+ scs15-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs30-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs60-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs120-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ ...
+ } OPTIONAL,
+ maxNumOfOneSymbolPRS-ResProcessedPerSlot-RRC-Connected-r18 SEQUENCE {
+ scs15-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs30-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs60-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs120-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ ...
+ } OPTIONAL,
+ ppw-maxNumOfOneSymbolPRS-ResProcessedPerSlot-r18 SEQUENCE {
+ scs15-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs30-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs60-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ scs120-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
+ n32, n48, n64} OPTIONAL,
+ ...
+ } OPTIONAL,
+ prs-BWA-TwoContiguousIntrabandInMG-RRC-Connected-r18
+ PRS-BWA-TwoContiguousIntrabandInMG-r18 OPTIONAL,
+ prs-BWA-ThreeContiguousIntrabandInMG-RRC-Connected-r18
+ PRS-BWA-ThreeContiguousIntrabandInMG-r18 OPTIONAL,
+ prs-BWA-TwoContiguousIntraband-RRC-IdleAndInactive-r18
+ PRS-BWA-TwoContiguousIntrabandInMG-r18 OPTIONAL,
+ prs-BWA-ThreeContiguousIntraband-RRC-IdleAndInactive-r18
+ PRS-BWA-ThreeContiguousIntrabandInMG-r18 OPTIONAL,
+ reducedNumOfSampleInMeasurementWithPRS-BWA-RRC-Connected-r18 ENUMERATED { supported }
+ OPTIONAL,
+ reducedNumOfSampleInMeasurementWithPRS-BWA-RRC-IdleAndInactive-r18
+ ENUMERATED { supported } OPTIONAL,
+ dl-PRS-MeasurementWithRxFH-RRC-Inactive-r18 ENUMERATED { supported } OPTIONAL,
+ dl-PRS-MeasurementWithRxFH-RRC-Idle-r18 ENUMERATED { supported } OPTIONAL,
+ reducedNumOfSampleForMeasurementWithFH-RRC-Connected-r18 ENUMERATED { supported }
+ OPTIONAL,
+ reducedNumOfSampleForMeasurementWithFH-RRC-IdleAndInactive-r18 ENUMERATED { supported }
+ OPTIONAL,
+ supportOfPRS-BWA-WithTwoPFL-Combination-r18 ENUMERATED { supported } OPTIONAL,
+ dl-PRS-MeasurementWithRxFH-RRC-Connected-r18 DL-PRS-MeasurementWithRxFH-RRC-Connected-r18 OPTIONAL
]]
}
@@ -1443,6 +1664,94 @@ PRS-ProcessingCapabilityOutsideMGinPPWperType-r17 ::= SEQUENCE {
]]
}
+PRS-BWA-TwoContiguousIntrabandInMG-r18 ::= SEQUENCE {
+ maximumOfTwoAggregatedDL-PRS-Bandwidth-FR1-r18 ENUMERATED {mhz10, mhz20, mhz40, mhz50,
+ mhz80, mhz100, mhz160, mhz200}
+ OPTIONAL,
+ maximumOfTwoAggregatedDL-PRS-Bandwidth-FR2-r18 ENUMERATED {mhz100, mhz200, mhz400, mhz800}
+ OPTIONAL,
+ maximumOfDL-PRS-BandwidthPerPFL-FR1-r18 ENUMERATED {mhz5, mhz10, mhz20, mhz40,
+ mhz50, mhz80, mhz100} OPTIONAL,
+ maximumOfDL-PRS-BandwidthPerPFL-FR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400}
+ OPTIONAL,
+ dl-PRS-BufferTypeOfBWA-r18 ENUMERATED {type1, type2},
+ prs-durationOfTwoPRS-BWA-Processing-r18 SEQUENCE {
+ prs-durationOfTwoPRS-BWA-ProcessingSymbolsN-r18
+ ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2, ms4, ms6, ms8, ms12,
+ ms16, ms20, ms25, ms30, ms32, ms35, ms40, ms45, ms50},
+ prs-durationOfTwoPRS-BWA-ProcessingSymbolsT-r18
+ ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80, ms160, ms320, ms640, ms1280}
+ } OPTIONAL,
+ maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR1-r18 SEQUENCE {
+ scs15-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL,
+ scs30-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL,
+ scs60-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL
+ },
+ maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR2-r18 SEQUENCE {
+ scs60-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL,
+ scs120-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL
+ }
+}
+
+PRS-BWA-ThreeContiguousIntrabandInMG-r18 ::= SEQUENCE {
+ maximumOfThreeAggregatedDL-PRS-Bandwidth-FR1-r18
+ ENUMERATED {mhz15, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, mhz120,
+ mhz140, mhz150, mhz180, mhz200, mhz240, mhz300} OPTIONAL,
+ maximumOfThreeAggregatedDL-PRS-Bandwidth-FR2-r18
+ ENUMERATED {mhz150, mhz200, mhz300, mhz400, mhz600, mhz800, mhz1000,
+ mhz1200} OPTIONAL,
+ maximumOfDL-PRS-BandwidthPerPFL-FR1-r18
+ ENUMERATED {mhz5, mhz10, mhz20, mhz40, mhz50, mhz80, mhz100} OPTIONAL,
+ maximumOfDL-PRS-BandwidthPerPFL-FR2-r18
+ ENUMERATED {mhz50, mhz100, mhz200, mhz400} OPTIONAL,
+ dl-PRS-BufferTypeOfBWA-r18 ENUMERATED {type1, type2},
+ prs-durationOfThreePRS-BWA-Processing-r18 SEQUENCE {
+ prs-durationOfThreePRS-BWA-ProcessingSymbolsN-r18
+ ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2, ms4, ms6, ms8, ms12,
+ ms16, ms20, ms25, ms30, ms32, ms35, ms40, ms45, ms50},
+ prs-durationOfThreePRS-BWA-ProcessingSymbolsT-r18
+ ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80, ms160,
+ ms320, ms640, ms1280}
+ } OPTIONAL,
+ maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR1-r18 SEQUENCE {
+ scs15-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL,
+ scs30-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL,
+ scs60-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL
+ },
+ maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR2-r18 SEQUENCE {
+ scs60-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL,
+ scs120-r18 ENUMERATED {n1, n2, n4, n6, n8, n12,
+ n16, n24, n32, n48, n64 } OPTIONAL
+ }
+}
+
+DL-PRS-MeasurementWithRxFH-RRC-Connected-r18 ::=SEQUENCE {
+ maximumPRS-BandwidthAcrossAllHopsFR1-r18 ENUMERATED {mhz40, mhz50, mhz80, mhz100}
+ OPTIONAL,
+ maximumPRS-BandwidthAcrossAllHopsFR2-r18 ENUMERATED {mhz100, mhz200, mhz400} OPTIONAL,
+ maximumFH-Hops-r18 ENUMERATED {n2, n3, n4, n5, n6} OPTIONAL,
+ processingDuration-r18 SEQUENCE {
+ processingPRS-SymbolsDurationN3-r18 ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2,
+ ms4, ms6, ms8, ms12,ms16, ms20, ms25,
+ ms30, ms32, ms35, ms40, ms45, ms50},
+ processingDurationT3-r18 ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80,
+ ms160, ms320, ms640, ms1280}
+ } OPTIONAL,
+ rf-RxRetunTimeFR1-r18 ENUMERATED {n70,n140,n210} OPTIONAL,
+ rf-RxRetunTimeFR2-r18 ENUMERATED {n35,n70,n140} OPTIONAL,
+ numOfOverlappingPRB-r18 ENUMERATED {n0,n1,n2,n4} OPTIONAL,
+ ...
+}
+
NR-DL-PRS-QCL-ProcessingCapability-r16 ::= SEQUENCE {
dl-PRS-QCL-ProcessingCapabilityBandList-r16 SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
@@ -1460,7 +1769,6 @@ DL-PRS-QCL-ProcessingCapabilityPerBand-r16 ::= SEQUENCE {
NR-DL-PRS-ResourceID-r16 ::= INTEGER (0..nrMaxNumDL-PRS-ResourcesPerSet-1-r16)
-
NR-DL-PRS-ResourcesCapability-r16 ::= SEQUENCE {
maxNrOfDL-PRS-ResourceSetPerTrpPerFrequencyLayer-r16
INTEGER (1..2),
@@ -1538,10 +1846,47 @@ DL-PRS-TEG-InfoElement-r17 ::= SEQUENCE {
}
+NR-IntegrityRiskParameters-r18 ::= SEQUENCE {
+ nr-ProbOnsetTRP-Fault-r18 INTEGER (0..255),
+ nr-MeanTRP-FaultDuration-r18 INTEGER (1..3600),
+ ...
+}
+
+
+NR-IntegrityServiceAlert-r18 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
+ NR-TRP-IntegrityServiceAlertPerFreqLayer-r18
+
+NR-TRP-IntegrityServiceAlertPerFreqLayer-r18 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16))
+ OF NR-TRP-IntegrityServiceAlertElement-r18
+
+NR-TRP-IntegrityServiceAlertElement-r18 ::= SEQUENCE {
+ dl-PRS-ID-r18 INTEGER (0..255),
+ nr-PhysCellID-r18 NR-PhysCellID-r16 OPTIONAL, -- Need ON
+ nr-CellGlobalID-r18 NCGI-r15 OPTIONAL, -- Need ON
+ nr-ARFCN-r18 ARFCN-ValueNR-r15 OPTIONAL, -- Need ON
+ rtd-DoNotUse-r18 BOOLEAN OPTIONAL, -- Need OR
+ trp-LocationDoNotUse-r18 BOOLEAN OPTIONAL, -- Need OR
+ beamInfo-DoNotUse-r18 BOOLEAN OPTIONAL, -- Need OR
+ beamAntennaInfo-DoNotUse-r18 BOOLEAN OPTIONAL, -- Need OR
+ ...
+}
+
+
+NR-IntegrityServiceParameters-r18 ::= SEQUENCE {
+ ir-Minimum-r18 INTEGER (0..255),
+ ir-Maximum-r18 INTEGER (0..255),
+ ...
+}
+
+
NR-On-Demand-DL-PRS-Configurations-r17 ::= SEQUENCE {
on-demand-dl-prs-configuration-list-r17 SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
On-Demand-DL-PRS-Configuration-r17,
- ...
+ ...,
+ [[
+ onDemandDL-PRS-AggregationList-r18 SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
+ OnDemandDL-PRS-AggregationInfo-r18 OPTIONAL-- Need OR
+ ]]
}
On-Demand-DL-PRS-Configuration-r17 ::= SEQUENCE {
@@ -1556,6 +1901,8 @@ DL-PRS-Configuration-ID-r17 ::= SEQUENCE {
...
}
+OnDemandDL-PRS-AggregationInfo-r18 ::= SEQUENCE (SIZE (2..3)) OF DL-PRS-Configuration-ID-r17
+
NR-On-Demand-DL-PRS-Information-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
NR-On-Demand-DL-PRS-PerFreqLayer-r17
@@ -1564,12 +1911,13 @@ NR-On-Demand-DL-PRS-PerFreqLayer-r17 ::= SEQUENCE {
dl-prs-FrequencyRangeReq-r17 ENUMERATED { fr1, fr2, ...},
dl-prs-ResourceSetPeriodicityReq-r17 ENUMERATED { p4, p5, p8, p10, p16, p20, p32, p40,
p64, p80, p160, p320, p640, p1280, p2560,
- p5120, p10240, p20480, p40960, p81920, ...}
+ p5120, p10240, p20480, p40960, p81920, ...,
+ p128-v1760, p256-v1760, p512-v1760}
OPTIONAL,
dl-prs-ResourceBandwidthReq-r17 INTEGER (1..63) OPTIONAL,
dl-prs-ResourceRepetitionFactorReq-r17 ENUMERATED {n2, n4, n6, n8, n16, n32, ...}
OPTIONAL,
- dl-prs-NumSymbolsReq-r17 ENUMERATED {n2, n4, n6, n12, ...} OPTIONAL,
+ dl-prs-NumSymbolsReq-r17 ENUMERATED {n2, n4, n6, n12, ..., n1-v1800} OPTIONAL,
dl-prs-CombSizeN-Req-r17 ENUMERATED {n2, n4, n6, n12, ...} OPTIONAL,
dl-prs-QCL-InformationReqTRPlist-r17 DL-PRS-QCL-InformationReqTRPlist-r17 OPTIONAL,
...
@@ -1607,7 +1955,15 @@ NR-On-Demand-DL-PRS-Request-r17 ::= SEQUENCE {
nr-on-demand-DL-PRS-Information-r17 NR-On-Demand-DL-PRS-Information-r17 OPTIONAL,
dl-prs-configuration-id-PrefList-r17 SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
DL-PRS-Configuration-ID-r17 OPTIONAL,
- ...
+ ...,
+ [[
+ dl-PRS-AggregationID-PrefList-r18 SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
+ INTEGER (1.. maxOD-DL-PRS-Configs-r17)
+ OPTIONAL,
+ nr-OnDemandDL-PRS-AggregationReqList-r18 SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
+ NR-OnDemandDL-PRS-AggregationReqElement-r18
+ OPTIONAL
+ ]]
}
DL-PRS-StartTime-and-Duration-r17 ::= SEQUENCE {
@@ -1621,6 +1977,9 @@ DL-PRS-StartTime-and-Duration-r17 ::= SEQUENCE {
...
}
+NR-OnDemandDL-PRS-AggregationReqElement-r18 ::= SEQUENCE (SIZE (2..3)) OF
+ INTEGER (1..nrMaxFreqLayers-r16)
+
NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17 ::=
SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
@@ -1633,6 +1992,25 @@ NR-On-Demand-DL-PRS-Support-r17 ::= SEQUENCE {
...
}
+NR-PeriodicAssistData-r18 ::= SEQUENCE {
+ nr-PeriodicPRU-DL-Info-r18 NR-PeriodicControlParam-r18 OPTIONAL, -- Need ON
+ ...
+}
+
+
+NR-PeriodicAssistDataReq-r18 ::= SEQUENCE {
+ nr-PeriodicPRU-DL-InfoReq-r18 NR-PeriodicControlParam-r18 OPTIONAL, -- Cond pPRU
+ ...
+}
+
+
+NR-PeriodicControlParam-r18 ::= SEQUENCE {
+ deliveryAmount-r18 INTEGER (1..32),
+ deliveryInterval-r18 INTEGER (4..81920),
+ ...
+}
+
+
NR-PositionCalculationAssistance-r16 ::= SEQUENCE {
nr-TRP-LocationInfo-r16 NR-TRP-LocationInfo-r16 OPTIONAL, -- Need ON
nr-DL-PRS-BeamInfo-r16 NR-DL-PRS-BeamInfo-r16 OPTIONAL, -- Need ON
@@ -1644,9 +2022,105 @@ NR-PositionCalculationAssistance-r16 ::= SEQUENCE {
NR-DL-PRS-ExpectedLOS-NLOS-Assistance-r17
OPTIONAL, -- Need ON
nr-DL-PRS-TRP-TEG-Info-r17 NR-DL-PRS-TRP-TEG-Info-r17 OPTIONAL -- Need ON
+ ]],
+ [[
+ nr-IntegrityServiceParameters-r18 NR-IntegrityServiceParameters-r18 OPTIONAL, -- Need OR
+ nr-IntegrityServiceAlert-r18 NR-IntegrityServiceAlert-r18 OPTIONAL, -- Need OR
+ nr-IntegrityRiskParameters-r18 NR-IntegrityRiskParameters-r18 OPTIONAL, -- Need OR
+ nr-IntegrityParametersTRP-LocationInfo-r18 NR-IntegrityParametersTRP-LocationInfo-r18
+ OPTIONAL, -- Cond Integrity1
+ nr-IntegrityParametersDL-PRS-BeamInfo-r18
+ NR-IntegrityParametersDL-PRS-BeamInfo-r18
+ OPTIONAL, -- Cond Integrity2
+ nr-IntegrityParametersRTD-Info-r18 NR-IntegrityParametersRTD-Info-r18
+ OPTIONAL, -- Cond Integrity3
+ nr-IntegrityParametersTRP-BeamAntennaInfo-r18 NR-IntegrityParametersTRP-BeamAntennaInfo-r18
+ OPTIONAL, -- Cond Integrity4
+ nr-PRU-DL-Info-r18 NR-PRU-DL-Info-r18 OPTIONAL -- Need ON
]]
}
+NR-IntegrityParametersTRP-LocationInfo-r18 ::= SEQUENCE {
+ trp-ErrorCorrelationTime-r18 INTEGER(0..255) OPTIONAL, -- Need ON
+ dl-PRS-ResourceSetARP-ErrorCorrelationTime-r18 INTEGER(0..255) OPTIONAL, -- Need ON
+ dl-PRS-ResourceARP-ErrorCorrelationTime-r18 INTEGER(0..255) OPTIONAL, -- Need ON
+ ...
+}
+
+NR-IntegrityParametersDL-PRS-BeamInfo-r18 ::= SEQUENCE {
+ dl-PRS-BeamInfoErrorCorrelationTime-r18 INTEGER (0..255),
+ ...
+}
+
+NR-IntegrityParametersRTD-Info-r18 ::= SEQUENCE {
+ rtd-ErrorCorrelationTime-r18 INTEGER (0..255),
+ ...
+}
+
+NR-IntegrityParametersTRP-BeamAntennaInfo-r18 ::= SEQUENCE {
+ trp-BeamAntennaInfoErrorCorrelationTime-r18 INTEGER (0..255),
+ ...
+
+}
+
+NR-PRU-DL-Info-r18 ::= SEQUENCE {
+ nr-PRU-LocationInfo-r18 LocationCoordinates OPTIONAL, -- Need ON
+ nr-PRU-DL-TDOA-MeasInfo-r18 NR-DL-TDOA-SignalMeasurementInformation-r16
+ OPTIONAL, -- Need ON
+ nr-PRU-DL-AoD-MeasInfo-r18 NR-DL-AoD-SignalMeasurementInformation-r16
+ OPTIONAL, -- Need ON
+ nr-PRU-RSCP-MeasInfo-r18 NR-PRU-RSCP-MeasurementInformation-r18
+ OPTIONAL, -- Need ON
+ ...
+}
+
+NR-PRU-RSCP-MeasurementInformation-r18 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF
+ NR-PRU-RSCP-MeasElement-r18
+
+NR-PRU-RSCP-MeasElement-r18 ::= SEQUENCE {
+ dl-PRS-ID-r18 INTEGER (0..255),
+ nr-PhysCellID-r18 NR-PhysCellID-r16 OPTIONAL, -- Need ON
+ nr-CellGlobalID-r18 NCGI-r15 OPTIONAL, -- Need ON
+ nr-ARFCN-r18 ARFCN-ValueNR-r15 OPTIONAL, -- Need ON
+ nr-DL-PRS-ResourceID-r18 NR-DL-PRS-ResourceID-r16 OPTIONAL, -- Need ON
+ nr-DL-PRS-ResourceSetID-r18 NR-DL-PRS-ResourceSetID-r16 OPTIONAL, -- Need ON
+ nr-TimeStamp-r18 NR-TimeStamp-r16,
+ nr-los-nlos-Indicator-r18 CHOICE {
+ perTRP LOS-NLOS-Indicator-r17,
+ perResource LOS-NLOS-Indicator-r17
+ } OPTIONAL, -- Need ON
+ nr-RSCP-r18 INTEGER (0..3599) OPTIONAL, -- Need ON
+ nr-DL-PRS-RSRP-Result-r18 INTEGER (0..126) OPTIONAL, -- Need ON
+ nr-DL-PRS-FirstPathRSRP-Result-r18 INTEGER (0..126) OPTIONAL, -- Need ON
+ nr-PhaseQuality-r18 NR-PhaseQuality-r18 OPTIONAL, -- Need ON
+ nr-PRU-RSCP-AddSampleMeasurements-r18 SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
+ NR-RSCP-AdditionalMeasurements-r18 OPTIONAL, -- Need ON
+ nr-PRU-RSRP-AddSampleMeasurements-r18 SEQUENCE (SIZE (1..nrNumOfSamples-1-r18)) OF
+ INTEGER (0..61) OPTIONAL, -- Need ON
+ nr-PRU-FirstPathRSRP-ResultDiff-AddSampleMeasurements-r18
+ SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF INTEGER (0..61) OPTIONAL, -- Need ON
+ nr-PRU-RSCP-AdditionalMeasurements-r18
+ NR-PRU-RSCP-AdditionalMeasurements-r18 OPTIONAL, -- Need ON
+ ...
+}
+
+NR-PRU-RSCP-AdditionalMeasurements-r18 ::= SEQUENCE (SIZE (1..3)) OF
+ NR-PRU-RSCP-AdditionalMeasurementElement-r18
+
+NR-PRU-RSCP-AdditionalMeasurementElement-r18 ::= SEQUENCE {
+ nr-DL-PRS-ResourceID-r18 NR-DL-PRS-ResourceID-r16 OPTIONAL, -- Need ON
+ nr-DL-PRS-ResourceSetID-r18 NR-DL-PRS-ResourceSetID-r16 OPTIONAL, -- Need ON
+ nr-DL-PRS-RSRP-ResultDiff-r18 INTEGER (0..61) OPTIONAL, -- Need ON
+ nr-DL-PRS-FirstPathRSRP-ResultDiff-r18 INTEGER (0..61) OPTIONAL, -- Need ON
+ nr-PRU-RSCP-AdditionalMeasurementsList-r18 SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF
+ NR-RSCP-AdditionalMeasurements-r18 OPTIONAL, -- Need ON
+ nr-PRU-RSRPDiff-AdditionalMeasurementsList-r18 SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF INTEGER (0..61) OPTIONAL, -- Need ON
+ nr-PRU-FirstPathRSRP-ResultDiff-AdditionalMeasurementsList-r18
+ SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF INTEGER (0..61) OPTIONAL, -- Need ON
+ ...
+}
+
+
NR-RTD-Info-r16 ::= SEQUENCE {
referenceTRP-RTD-Info-r16 ReferenceTRP-RTD-Info-r16,
rtd-InfoList-r16 RTD-InfoList-r16,
@@ -1678,6 +2152,16 @@ RTD-InfoElement-r16 ::= SEQUENCE {
nr-ARFCN-r16 ARFCN-ValueNR-r15 OPTIONAL, -- Need ON
subframeOffset-r16 INTEGER (0..1966079),
rtd-Quality-r16 NR-TimingQuality-r16,
+ ...,
+ [[
+ nr-IntegrityRTD-InfoBounds-r18 NR-IntegrityRTD-InfoBounds-r18 OPTIONAL -- Need OR
+ ]]
+}
+
+NR-IntegrityRTD-InfoBounds-r18 ::= SEQUENCE {
+ resolution-r18 ENUMERATED {mdot1, m1, m10, m30, ...},
+ meanRTD-r18 INTEGER (0..255),
+ stdDevRTD-r18 INTEGER (0..31),
...
}
@@ -1743,7 +2227,10 @@ NR-TimeStamp-r16 ::= SEQUENCE {
scs60-r16 INTEGER (0..39),
scs120-r16 INTEGER (0..79)
},
- ...
+ ...,
+ [[
+ nr-Symbol-r18 INTEGER (0..13) OPTIONAL -- Need ON
+ ]]
}
@@ -1794,6 +2281,15 @@ BeamPowerElement-r17 ::= SEQUENCE {
nr-dl-prs-ResourceID-r17 NR-DL-PRS-ResourceID-r16,
nr-dl-prs-RelativePower-r17 INTEGER (0..30),
nr-dl-prs-RelativePowerFine-r17 INTEGER (0..9) OPTIONAL, -- Need ON
+ ...,
+ [[
+ nr-IntegrityBeamPowerBounds-r18 NR-IntegrityBeamPowerBounds-r18 OPTIONAL -- Need OP
+ ]]
+}
+
+NR-IntegrityBeamPowerBounds-r18 ::= SEQUENCE {
+ meanBeamPower-r18 INTEGER (0..127),
+ stdDevBeamPower-r18 INTEGER (0..127),
...
}
@@ -1817,18 +2313,47 @@ TRP-LocationInfoElement-r16 ::= SEQUENCE {
trp-Location-r16 RelativeLocation-r16 OPTIONAL, -- Need OP
trp-DL-PRS-ResourceSets-r16 SEQUENCE (SIZE(1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
DL-PRS-ResourceSets-TRP-Element-r16 OPTIONAL, -- Need OP
- ...
+ ...,
+ [[
+ trp-LocationCartesian-r18 RelativeCartesianLocation-r18 OPTIONAL, -- Need OP
+ nr-IntegrityTRP-LocationBounds-r18
+ NR-IntegrityLocationBounds-r18 OPTIONAL -- Need OR
+ ]]
}
DL-PRS-ResourceSets-TRP-Element-r16 ::= SEQUENCE {
dl-PRS-ResourceSetARP-r16 RelativeLocation-r16 OPTIONAL, -- Need OP
dl-PRS-Resource-ARP-List-r16 SEQUENCE (SIZE(1..nrMaxResourcesPerSet-r16)) OF
DL-PRS-Resource-ARP-Element-r16 OPTIONAL, -- Need OP
- ...
+ ...,
+ [[
+ dl-PRS-ResourceSetARP-Cartesian-r18 RelativeCartesianLocation-r18 OPTIONAL, -- Need OP
+ nr-IntegrityDL-PRS-ResourceSetARP-LocationBounds-r18
+ NR-IntegrityLocationBounds-r18 OPTIONAL -- Need OR
+ ]]
}
DL-PRS-Resource-ARP-Element-r16 ::= SEQUENCE {
dl-PRS-Resource-ARP-location-r16 RelativeLocation-r16 OPTIONAL, -- Need OP
+ ...,
+ [[
+ dl-PRS-Resource-ARP-locationCartesian-r18
+ RelativeCartesianLocation-r18 OPTIONAL, -- Need OP
+ nr-IntegrityDL-PRS-ResourceARP-LocationBounds-r18
+ NR-IntegrityLocationBounds-r18 OPTIONAL -- Need OR
+ ]]
+}
+
+NR-IntegrityLocationBounds-r18 ::= SEQUENCE {
+ units-r18 ENUMERATED {mm, cm, m, ...},
+ meanLocationErrorBound-r18 SEQUENCE {
+ horizontal-r18 INTEGER (0..255),
+ vertical-r18 INTEGER (0..255)
+ },
+ stdDevLocationErrorBound-r18 SEQUENCE {
+ horizontal-r18 INTEGER (0..255),
+ vertical-r18 INTEGER (0..255)
+ },
...
}
@@ -1881,6 +2406,16 @@ SRS-CapabilityPerBand-r16 ::= SEQUENCE {
[[
posSRS-SP-RRC-Inactive-InInitialUL-BWP-r17 PosSRS-SP-RRC-Inactive-InInitialUL-BWP-r17
OPTIONAL
+ ]],
+ [[
+ posSRS-Preconfigured-RRC-InactiveInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ posSRS-Preconfigured-RRC-InactiveOutsideInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ posSRS-ValidityAreaRRC-InactiveInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ posSRS-ValidityAreaRRC-InactiveOutsideInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ posSRS-TxFH-RRC-Connected-r18 PosSRS-TxFrequencyHoppingRRC-Connected-r18 OPTIONAL,
+ posSRS-TxFH-RRC-Inactive-r18 PosSRS-TxFrequencyHoppingRRC-Inactive-r18 OPTIONAL,
+ posSRS-TxFH-WithTimeWindow-r18 ENUMERATED {supported} OPTIONAL,
+ posSRS-BWA-RRC-Inactive-r18 PosSRS-BWA-RRC-Inactive-r18 OPTIONAL
]]
}
@@ -1911,7 +2446,12 @@ SRS-PosResourcesPerBand-r16 ::= SEQUENCE {
OPTIONAL,
maxNumberSP-SRS-PosResourcesPerBWP-r16 ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
OPTIONAL,
- ...
+ ...,
+ [[
+ posSRS-BWA-RRC-Connected-r18 PosSRS-BWA-RRC-Connected-r18 OPTIONAL,
+ posSRS-BWA-IndependentCA-RRC-Connected-r18 PosSRS-BWA-IndependentCA-RRC-Connected-r18
+ OPTIONAL
+ ]]
}
PosSRS-RRC-Inactive-InInitialUL-BWP-r17 ::= SEQUENCE {
@@ -1978,17 +2518,156 @@ PosSRS-SP-RRC-Inactive-InInitialUL-BWP-r17 ::= SEQUENCE {
...
}
+PosSRS-TxFrequencyHoppingRRC-Connected-r18 ::=SEQUENCE {
+ maximumSRS-BandwidthAcrossAllHopsFR1-r18 ENUMERATED {mhz40, mhz50, mhz80, mhz100}
+ OPTIONAL,
+ maximumSRS-BandwidthAcrossAllHopsFR2-r18 ENUMERATED {mhz100, mhz200, mhz400} OPTIONAL,
+ maximumTxFH-Hops-r18 ENUMERATED {n2, n3, n4, n5, n6} OPTIONAL,
+ rf-TxRetunTimeFR1-r18 ENUMERATED {n70, n140, n210} OPTIONAL,
+ rf-TxRetunTimeFR2-r18 ENUMERATED {n35, n70, n140} OPTIONAL,
+ switchTimeBetweenActiveBWP-FrequencyHop-r18 ENUMERATED {n100, n140,n200,n300,n500} OPTIONAL,
+ numOfOverlappingPRB-r18 ENUMERATED {n0, n1, n2, n4} OPTIONAL,
+ maximumSRS-ResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ maximumSRS-ResourceAperiodic-r18 ENUMERATED {n0,n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ maximumSRS-ResourceSemipersistent-r18 ENUMERATED {n0,n1, n2, n4, n8, n16, n32, n64}
+ OPTIONAL,
+ ...
+}
+
+PosSRS-TxFrequencyHoppingRRC-Inactive-r18 ::=SEQUENCE {
+ maximumSRS-BandwidthAcrossAllHopsFR1-r18 ENUMERATED {mhz40, mhz50, mhz80, mhz100}
+ OPTIONAL,
+ maximumSRS-BandwidthAcrossAllHopsFR2-r18 ENUMERATED {mhz100, mhz200, mhz400} OPTIONAL,
+ maximumTxFH-Hops-r18 ENUMERATED {n2, n3, n4, n5, n6} OPTIONAL,
+ rf-TxRetunTimeFR1-r18 ENUMERATED {n70, n140, n210} OPTIONAL,
+ rf-TxRetunTimeFR2-r18 ENUMERATED {n35, n70, n140} OPTIONAL,
+ switchTimeBetweenActiveBWP-FrequencyHop-r18 ENUMERATED {n100, n140,n200,n300,n500} OPTIONAL,
+ numOfOverlappingPRB-r18 ENUMERATED {n0, n1, n2, n4} OPTIONAL,
+ maximumSRS-ResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ maximumSRS-ResourceSemipersistent-r18 ENUMERATED {n0,n1, n2, n4, n8, n16, n32, n64}
+ OPTIONAL,
+ ...
+}
+
+PosSRS-BWA-RRC-Connected-r18 ::=SEQUENCE {
+ numOfCarriersIntraBandContiguous-r18 ENUMERATED {two, three, twoandthree},
+ maximumAggregatedBW-TwoCarriersFR1-r18 ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100, mhz160,
+ mhz180, mhz190, mhz200} OPTIONAL,
+ maximumAggregatedBW-TwoCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
+ mhz800} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR1-r18 ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
+ mhz300} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
+ mhz600, mhz800, mhz1000, mhz1200} OPTIONAL,
+ maximumAggregatedResourceSet-r18 ENUMERATED {n1, n2, n4, n8, n12, n16},
+ maximumAggregatedResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceAperiodic-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceSemi-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourcePeriodicPerSlot-r18 ENUMERATED {n1, n2, n3, n4, n5, n6,
+ n8, n10, n12, n14},
+ maximumAggregatedResourceAperiodicPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4,
+ n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceSemiPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4,
+ n5, n6, n8, n10, n12, n14},
+ ...
+}
+
+PosSRS-BWA-IndependentCA-RRC-Connected-r18 ::=SEQUENCE {
+ numOfCarriersIntraBandContiguous-r18 ENUMERATED {two, three, twoandthree},
+ maximumAggregatedBW-TwoCarriersFR1-r18 ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100, mhz160,
+ mhz180, mhz190, mhz200} OPTIONAL,
+ maximumAggregatedBW-TwoCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
+ mhz800} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR1-r18 ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
+ mhz300} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
+ mhz600, mhz800, mhz1000, mhz1200} OPTIONAL,
+ maximumAggregatedResourceSet-r18 ENUMERATED {n1, n2, n4, n8, n12, n16},
+ maximumAggregatedResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceAperiodic-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceSemi-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourcePeriodicPerSlot-r18 ENUMERATED {n1, n2, n3, n4, n5,
+ n6, n8, n10, n12, n14},
+ maximumAggregatedResourceAperiodicPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4,
+ n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceSemiPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4,
+ n5, n6, n8, n10, n12, n14},
+ guardPeriod-r18 ENUMERATED {n0, n30, n100, n140, n200},
+ powerClassForTwoAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+ powerClassForThreeAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+...
+}
+
+PosSRS-BWA-RRC-Inactive-r18 ::=SEQUENCE {
+ numOfCarriersIntraBandContiguous-r18 ENUMERATED {two, three, twoandthree},
+ maximumAggregatedBW-TwoCarriersFR1-r18 ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100, mhz160,
+ mhz180, mhz190, mhz200} OPTIONAL,
+ maximumAggregatedBW-TwoCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
+ mhz800} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR1-r18 ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
+ mhz300} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
+ mhz600, mhz800, mhz1000, mhz1200} OPTIONAL,
+ maximumAggregatedResourceSet-r18 ENUMERATED {n1, n2, n4, n8, n12, n16},
+ maximumAggregatedResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceSemi-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourcePeriodicPerSlot-r18 ENUMERATED {n1, n2, n3, n4,
+ n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceSemiPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4,
+ n5, n6, n8, n10, n12, n14},
+ guardPeriod-r18 ENUMERATED {n0, n30, n100, n140, n200},
+ powerClassForTwoAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+ powerClassForThreeAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+...
+}
+
+
+NR-PhaseQuality-r18 ::= SEQUENCE {
+ phaseQualityIndex-r18 INTEGER (0..179),
+ phaseQualityResolution-r18 ENUMERATED {mdot1, m1,...},
+ ...
+}
+
ReferencePoint-r16 ::= SEQUENCE {
referencePointGeographicLocation-r16 CHOICE {
location3D-r16 EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
ha-location3D-r16 HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15,
- ...
+ ...,
+ localOrigin-v1800 LocalOrigin-r18
},
...
}
+RelativeCartesianLocation-r18 ::= SEQUENCE {
+ cartesianCoordinatesUnits-r18 ENUMERATED { mm, cm, dm, m, ...},
+ x-value-r18 X-Value-r18,
+ y-value-r18 Y-Value-r18,
+ z-value-r18 Z-Value-r18,
+ locationUnc-r18 LocationUncertainty-r16 OPTIONAL, -- Need OP
+ ...
+}
+
+X-Value-r18 ::= SEQUENCE {
+ delta-x-r18 INTEGER (-1024..1023),
+ coarse-delta-x-r18 INTEGER (0..4095) OPTIONAL, -- Need OP
+ ...
+}
+
+Y-Value-r18 ::= SEQUENCE {
+ delta-y-r18 INTEGER (-1024..1023),
+ coarse-delta-y-r18 INTEGER (0..4095) OPTIONAL, -- Need OP
+ ...
+}
+
+Z-Value-r18 ::= SEQUENCE {
+ delta-z-r18 INTEGER (-1024..1023),
+ coarse-delta-z-r18 INTEGER (0..4095) OPTIONAL, -- Need OP
+ ...
+}
+
+
RelativeLocation-r16 ::= SEQUENCE {
milli-arc-second-units-r16 ENUMERATED { mas0-03, mas0-3, mas3, mas30, ...},
height-units-r16 ENUMERATED {mm, cm, m, ...},
@@ -2333,8 +3012,7 @@ NeighbourMeasurementElement ::= SEQUENCE {
additionalPathsNeighbour-r14
AdditionalPathList-r14 OPTIONAL,
nprsIdNeighbour-r14 INTEGER (0..4095) OPTIONAL, -- Cond ProvidedByServer2
- carrierFreqOffsetNB-Neighbour-r14
- CarrierFreqOffsetNB-r14 OPTIONAL -- Cond NB-IoT
+ carrierFreqOffsetNB-Neighbour-r14 CarrierFreqOffsetNB-r14 OPTIONAL -- Cond NB-IoT
]],
[[
delta-SFN-r15 INTEGER (-8192..8191) OPTIONAL
@@ -2441,7 +3119,8 @@ OTDOA-ProvideCapabilities ::= SEQUENCE {
numberOfRXantennas-r14 ENUMERATED { rx1, ... } OPTIONAL,
motionMeasurements-r15 ENUMERATED { supported } OPTIONAL,
interRAT-RSTDmeasurement-r15 ENUMERATED { supported } OPTIONAL,
- scheduledLocationRequestSupported-r17 ScheduledLocationTimeSupport-r17 OPTIONAL
+ scheduledLocationRequestSupported-r17 ScheduledLocationTimeSupport-r17 OPTIONAL,
+ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupport-r18 OPTIONAL
}
maxBands INTEGER ::= 64
@@ -2527,6 +3206,10 @@ GNSS-CommonAssistData ::= SEQUENCE {
GNSS-Integrity-ServiceParameters-r17 OPTIONAL, -- Need ON
gnss-Integrity-ServiceAlert-r17
GNSS-Integrity-ServiceAlert-r17 OPTIONAL -- Need OR
+ ]],
+ [[
+ gnss-los-nlos-GridPoints-r18 GNSS-LOS-NLOS-GridPoints-r18 OPTIONAL, -- Need ON
+ gnss-SSR-IOD-Update-r18 GNSS-SSR-IOD-Update-r18 OPTIONAL -- Need OR
]]
}
@@ -2576,6 +3259,19 @@ GNSS-GenericAssistDataElement ::= SEQUENCE {
OPTIONAL, -- Cond GNSS-ID-NavIC
navic-GridModel-r16 NavIC-GridModelParameter-r16
OPTIONAL -- Cond GNSS-ID-NavIC
+ ]],
+ [[
+ gnss-SSR-OrbitCorrectionsSet2-r17 GNSS-SSR-OrbitCorrectionsSet2-r17
+ OPTIONAL, -- Need ON
+ gnss-SSR-ClockCorrectionsSet2-r17 GNSS-SSR-ClockCorrectionsSet2-r17
+ OPTIONAL, -- Need ON
+ gnss-SSR-URA-Set2-r17 GNSS-SSR-URA-Set2-r17 OPTIONAL -- Need ON
+ ]],
+ [[
+ gnss-LOS-NLOS-GriddedIndications-r18 GNSS-LOS-NLOS-GriddedIndications-r18
+ OPTIONAL, -- Need ON
+ gnss-SSR-SatellitePCVResiduals-r18 GNSS-SSR-SatellitePCVResiduals-r18
+ OPTIONAL -- Need ON
]]
}
@@ -2601,6 +3297,16 @@ GNSS-PeriodicAssistData-r15 ::= SEQUENCE {
]],
[[
gnss-Integrity-PeriodicServiceAlert-r17 GNSS-PeriodicControlParam-r15 OPTIONAL -- Need ON
+ ]],
+ [[
+ gnss-SSR-PeriodicOrbitCorrectionsSet2-r17
+ GNSS-PeriodicControlParam-r15 OPTIONAL, -- Need ON
+ gnss-SSR-PeriodicClockCorrectionsSet2-r17
+ GNSS-PeriodicControlParam-r15 OPTIONAL, -- Need ON
+ gnss-SSR-PeriodicURA-Set2-r17 GNSS-PeriodicControlParam-r15 OPTIONAL -- Need ON
+ ]],
+ [[
+ gnss-SSR-PeriodicIOD-Update-r18 GNSS-PeriodicControlParam-r15 OPTIONAL -- Need OR
]]
}
@@ -2900,6 +3606,51 @@ GNSS-Integrity-ServiceAlert-r17 ::= SEQUENCE {
}
+GNSS-LOS-NLOS-GridPoints-r18 ::= SEQUENCE {
+ gridPointsSetID-r18 INTEGER (0..16383),
+ horizontalGridPoints-r18 ArrayOfGridPoints-r18,
+ referenceAltitudeFine-r18 INTEGER (0..9) OPTIONAL, -- Need OP
+ verticalGridPoints-r18 VerticalGridPoints-r18 OPTIONAL, -- Cond 3D
+ ...
+}
+
+ArrayOfGridPoints-r18 ::= SEQUENCE {
+ referencePointLatitude-r18 INTEGER (-16777216.. 16777215),
+ referencePointLongitude-r18 INTEGER (-33554432.. 33554431),
+ numberOfStepsSouth-r18 INTEGER (0.. 255),
+ numberOfStepsEast-r18 INTEGER (0.. 255),
+ stepSouth-r18 SpatialDelta-r18,
+ stepEast-r18 SpatialDelta-r18,
+ bitmaskOfGrids-r18 CHOICE {
+ bog16-r18 BIT STRING (SIZE(16)),
+ bog64-r18 BIT STRING (SIZE(64)),
+ bog256-r18 BIT STRING (SIZE(256)),
+ ...
+ } OPTIONAL, -- Need OP
+ ...
+}
+
+VerticalGridPoints-r18 ::=SEQUENCE {
+ referenceAltitudeCoarse-r18 INTEGER (-50..900),
+ numberOfStepsDown-r18 INTEGER (1..3),
+ stepDown-r18 SpatialDelta-r18,
+ upperValidityDeltaAltitude-r18 SpatialDelta-r18 OPTIONAL, -- Need OP
+ lowerValidityDeltaAltitude-r18 SpatialDelta-r18 OPTIONAL, -- Need OP
+ ...
+}
+
+SpatialDelta-r18 ::= ENUMERATED {n1, n2, n3, n4, n5, n10, n20, n50, n100}
+
+
+GNSS-SSR-IOD-Update-r18 ::= SEQUENCE {
+ epochTime-r18 GNSS-SystemTime,
+ ssrUpdateInterval-r18 INTEGER (0..15),
+ iod-ssr-r18 INTEGER (0..15),
+ iod-ssr-PCVResiduals-r18 INTEGER (0..64),
+ ...
+}
+
+
GNSS-TimeModelList ::= SEQUENCE (SIZE (1..15)) OF GNSS-TimeModelElement
GNSS-TimeModelElement ::= SEQUENCE {
@@ -2933,7 +3684,7 @@ DGNSS-SatList ::= SEQUENCE (SIZE (1..64)) OF DGNSS-CorrectionsElement
DGNSS-CorrectionsElement ::= SEQUENCE {
svID SV-ID,
- iod BIT STRING (SIZE(11)),
+ iod BIT STRING (SIZE(11)),
udre INTEGER (0..3),
pseudoRangeCor INTEGER (-2047..2047),
rangeRateCor INTEGER (-127..127),
@@ -4140,6 +4891,76 @@ RegionIgpElement-r16 ::= SEQUENCE {
}
+GNSS-SSR-OrbitCorrectionsSet2-r17 ::= SEQUENCE {
+ refEph-r17 ENUMERATED { b1c,...},
+ gnss-SSR-OrbitCorrections-r17 GNSS-SSR-OrbitCorrections-r15,
+ ...
+}
+
+
+GNSS-SSR-ClockCorrectionsSet2-r17 ::= SEQUENCE {
+ refEph-r17 ENUMERATED { b1c,...},
+ gnss-SSR-ClockCorrections-r17 GNSS-SSR-ClockCorrections-r15,
+ ...
+}
+
+
+GNSS-SSR-URA-Set2-r17 ::= SEQUENCE {
+ refEph-r17 ENUMERATED { b1c,...},
+ gnss-SSR-URA-r17 GNSS-SSR-URA-r16,
+ ...
+}
+
+
+GNSS-LOS-NLOS-GriddedIndications-r18 ::= SEQUENCE {
+ gridPointsSetID-r18 INTEGER (0..16383),
+ expirationTime-r18 UTCTime OPTIONAL, -- Need ON
+ gridList-r18 GridList-r18,
+ ...
+}
+
+GridList-r18 ::= SEQUENCE (SIZE(1..1024)) OF GridElement-r18
+
+GridElement-r18 ::= SEQUENCE {
+ gnss-LOS-InfoList-r18 GNSS-LOS-InfoList-r18 OPTIONAL, -- Need ON
+ ...
+}
+
+GNSS-LOS-InfoList-r18 ::= SEQUENCE (SIZE(1..64)) OF GNSS-LOS-InfoElement-r18
+
+GNSS-LOS-InfoElement-r18 ::= SEQUENCE {
+ svID-r18 SV-ID,
+ los-r18 ENUMERATED{true, false, uncertain},
+ ...
+}
+
+
+GNSS-SSR-SatellitePCVResiduals-r18 ::= SEQUENCE {
+ iod-ssr-PCVResiduals-r18 INTEGER (0..64),
+ ssr-SatellitePCV-List-r18 SSR-SatellitePCV-List-r18,
+ ...
+}
+
+SSR-SatellitePCV-List-r18 ::= SEQUENCE (SIZE(1..64)) OF SSR-SatellitePCV-Element-r18
+
+SSR-SatellitePCV-Element-r18 ::= SEQUENCE {
+ svID-r18 SV-ID,
+ ssr-SatellitePCV-FrequencyList-r18 SSR-SatellitePCV-FrequencyList-r18,
+ ...
+}
+
+SSR-SatellitePCV-FrequencyList-r18 ::= SEQUENCE (SIZE(1..8)) OF
+ SSR-SatellitePCV-FrequencyElement-r18
+
+SSR-SatellitePCV-FrequencyElement-r18 ::= SEQUENCE {
+ frequencyID-r18 GNSS-FrequencyID-r15,
+ phaseCenterVariations-r18 SSR-PhaseCenterVariationList-r18,
+ ...
+}
+
+SSR-PhaseCenterVariationList-r18 ::= SEQUENCE (SIZE(1..32)) OF INTEGER(-1024..1023)
+
+
A-GNSS-RequestAssistanceData ::= SEQUENCE {
gnss-CommonAssistDataReq GNSS-CommonAssistDataReq OPTIONAL, -- Cond CommonADReq
gnss-GenericAssistDataReq GNSS-GenericAssistDataReq OPTIONAL, -- Cond GenADReq
@@ -4181,6 +5002,10 @@ GNSS-CommonAssistDataReq ::= SEQUENCE {
gnss-Integrity-ServiceAlertReq-r17
GNSS-Integrity-ServiceAlertReq-r17
OPTIONAL -- Cond IntAlertReq
+ ]],
+ [[
+ gnss-SSR-IOD-UpdateReq-r18 GNSS-SSR-IOD-UpdateReq-r18
+ OPTIONAL -- Cond IODUpdateReq
]]
}
@@ -4236,6 +5061,22 @@ GNSS-GenericAssistDataReqElement ::= SEQUENCE {
NavIC-DifferentialCorrectionsReq-r16
OPTIONAL, -- Cond DNavIC-Req
navic-GridModelReq-r16 NavIC-GridModelReq-r16 OPTIONAL -- Cond NavIC-GridModReq
+ ]],
+ [[
+ gnss-SSR-OrbitCorrectionsSet2Req-r17
+ GNSS-SSR-OrbitCorrectionsSet2Req-r17
+ OPTIONAL, -- Cond OC2-Req
+ gnss-SSR-ClockCorrectionsSet2Req-r17
+ GNSS-SSR-ClockCorrectionsSet2Req-r17
+ OPTIONAL, -- Cond CC2-Req
+ gnss-SSR-URA-Set2Req-r17 GNSS-SSR-URA-Set2Req-r17 OPTIONAL -- Cond URA2-Req
+ ]],
+ [[
+ gnss-LOS-NLOS-GriddedIndicationsReq-r18 GNSS-LOS-NLOS-GriddedIndicationsReq-r18
+ OPTIONAL, -- Cond LOS-GridReq
+ gnss-SSR-SatellitePCVResidualsReq-r18
+ GNSS-SSR-SatellitePCVResidualsReq-r18
+ OPTIONAL -- Cond SatPCV-Req
]]
}
@@ -4263,6 +5104,18 @@ GNSS-PeriodicAssistDataReq-r15 ::= SEQUENCE {
[[
gnss-Integrity-PeriodicServiceAlertReq-r17
GNSS-PeriodicControlParam-r15 OPTIONAL -- Cond pDNU
+ ]],
+ [[
+ gnss-SSR-PeriodicOrbitCorrectionsSet2Req-r17
+ GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pOC2
+ gnss-SSR-PeriodicClockCorrectionsSet2Req-r17
+ GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pCC2
+ gnss-SSR-PeriodicURA-Set2Req-r17
+ GNSS-PeriodicControlParam-r15 OPTIONAL -- Cond pURA2
+ ]],
+ [[
+ gnss-SSR-PeriodicIOD-UpdateReq-r18
+ GNSS-PeriodicControlParam-r15 OPTIONAL -- Cond pPCV
]]
}
@@ -4326,6 +5179,11 @@ GNSS-Integrity-ServiceAlertReq-r17 ::= SEQUENCE {
}
+GNSS-SSR-IOD-UpdateReq-r18 ::= SEQUENCE {
+ ...
+}
+
+
GNSS-TimeModelListReq ::= SEQUENCE (SIZE(1..15)) OF GNSS-TimeModelElementReq
GNSS-TimeModelElementReq ::= SEQUENCE {
@@ -4551,6 +5409,46 @@ NavIC-GridModelReq-r16 ::= SEQUENCE {
}
+GNSS-SSR-OrbitCorrectionsSet2Req-r17 ::= SEQUENCE {
+ refEphReq-r17 ENUMERATED { b1c,...},
+ gnss-SSR-OrbitCorrectionsSet2Req-r17
+ GNSS-SSR-OrbitCorrectionsReq-r15 OPTIONAL, -- Cond OC2-Req
+ ...
+}
+
+
+GNSS-SSR-ClockCorrectionsSet2Req-r17 ::= SEQUENCE {
+ refEphReq-r17 ENUMERATED { b1c,...},
+ gnss-SSR-ClockCorrectionsSet2Req-r17
+ GNSS-SSR-ClockCorrectionsReq-r15 OPTIONAL, -- Cond CC2-Req
+ ...
+}
+
+
+GNSS-SSR-URA-Set2Req-r17 ::= SEQUENCE {
+ refEphReq-r17 ENUMERATED { b1c,...},
+ ...
+}
+
+
+GNSS-LOS-NLOS-GriddedIndicationsReq-r18 ::= SEQUENCE {
+ gridPointsSetID-Req-r18 INTEGER (0..16383) OPTIONAL,
+ relativeLocationInfo-r18 CHOICE {
+ inside-r18 ENUMERATED {upper-left, upper-right, lower-left, lower-right, ...},
+ outside-r18 ENUMERATED {north, west, south, east, above, below, ...}
+ } OPTIONAL, -- Cond Relative
+ verticalGridType-r18 ENUMERATED {ground-level, threeD},
+ referenceAltitudeFine-r18 INTEGER (0..9) OPTIONAL,
+ referenceAltitudeCoarse-r18 INTEGER (-50..900) OPTIONAL,
+ ...
+}
+
+
+GNSS-SSR-SatellitePCVResidualsReq-r18 ::= SEQUENCE {
+ ...
+}
+
+
A-GNSS-ProvideLocationInformation ::= SEQUENCE {
gnss-SignalMeasurementInformation GNSS-SignalMeasurementInformation OPTIONAL,
gnss-LocationInformation GNSS-LocationInformation OPTIONAL,
@@ -4725,6 +5623,9 @@ A-GNSS-ProvideCapabilities ::= SEQUENCE {
]],
[[ scheduledLocationRequestSupported-r17
ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
+ ]],
+ [[ periodicReportingIntervalMsSupport-r18
+ PeriodicReportingIntervalMsSupportPerMode-r18 OPTIONAL
]]
}
@@ -4785,6 +5686,10 @@ GNSS-CommonAssistanceDataSupport ::= SEQUENCE {
gnss-Integrity-ServiceAlertSupport-r17
GNSS-Integrity-ServiceAlertSupport-r17
OPTIONAL -- Cond IntAlertSup
+ ]],
+ [[
+ gnss-SSR-IOD-UpdateSupport-r18 GNSS-SSR-IOD-UpdateSupport-r18
+ OPTIONAL -- Cond IODUpdateSup
]]
}
@@ -4834,6 +5739,11 @@ GNSS-Integrity-ServiceAlertSupport-r17 ::= SEQUENCE {
}
+GNSS-SSR-IOD-UpdateSupport-r18 ::= SEQUENCE {
+ ...
+}
+
+
GNSS-GenericAssistanceDataSupport ::=
SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataSupportElement
@@ -4905,6 +5815,24 @@ GNSS-GenericAssistDataSupportElement ::= SEQUENCE {
OPTIONAL, -- Cond DNavIC-Sup
navic-GridModelSupport-r16 NavIC-GridModelSupport-r16
OPTIONAL -- Cond NavIC-GridModSup
+ ]],
+ [[
+ gnss-SSR-OrbitCorrectionsSet2Support-r17
+ GNSS-SSR-OrbitCorrectionsSet2Support-r17
+ OPTIONAL, -- Cond OC2-Sup
+ gnss-SSR-ClockCorrectionsSet2Support-r17
+ GNSS-SSR-ClockCorrectionsSet2Support-r17
+ OPTIONAL, -- Cond CC2-Sup
+ gnss-SSR-URA-Set2Support-r17 GNSS-SSR-URA-Set2Support-r17
+ OPTIONAL -- Cond URA2-Sup
+ ]],
+ [[
+ gnss-LOS-NLOS-GriddedIndicationsSupport-r18
+ GNSS-LOS-NLOS-GriddedIndicationsSupport-r18
+ OPTIONAL, -- Cond LOS-NLOS-Grid-Sup
+ gnss-SSR-SatellitePCVResidualsSupport-r18
+ GNSS-SSR-SatellitePCVResidualsSupport-r18
+ OPTIONAL -- Cond SatPCV-Sup
]]
}
@@ -5095,6 +6023,30 @@ NavIC-GridModelSupport-r16 ::= SEQUENCE {
}
+GNSS-SSR-OrbitCorrectionsSet2Support-r17 ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-SSR-ClockCorrectionsSet2Support-r17 ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-SSR-URA-Set2Support-r17 ::= SEQUENCE {
+ ...
+}
+
+
+GNSS-LOS-NLOS-GriddedIndicationsSupport-r18 ::= SEQUENCE {
+ ...
+}
+
+GNSS-SSR-SatellitePCVResidualsSupport-r18 ::= SEQUENCE {
+ ...
+}
+
+
A-GNSS-RequestCapabilities ::= SEQUENCE {
gnss-SupportListReq BOOLEAN,
assistanceDataSupportListReq BOOLEAN,
@@ -5135,7 +6087,10 @@ GNSS-TargetDeviceErrorCauses ::= SEQUENCE {
fineTimeAssistanceMeasurementsNotPossible NULL OPTIONAL,
adrMeasurementsNotPossible NULL OPTIONAL,
multiFrequencyMeasurementsNotPossible NULL OPTIONAL,
- ...
+ ...,
+ [[
+ remoteUE-Indication-r18 ENUMERATED {true} OPTIONAL -- Cond NR
+ ]]
}
@@ -5308,6 +6263,8 @@ ECID-ProvideCapabilities ::= SEQUENCE {
idleStateForMeasurements-r14 ENUMERATED { required } OPTIONAL
]],
[[ scheduledLocationRequestSupported-r17 ScheduledLocationTimeSupport-r17 OPTIONAL
+ ]],
+ [[ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupport-r18 OPTIONAL
]]
}
@@ -5399,6 +6356,9 @@ TBS-ProvideCapabilities-r13 ::= SEQUENCE {
mbs-IdleStateForMeasurements-r14 ENUMERATED { required } OPTIONAL
]],
[[ scheduledLocationRequestSupported-r17 ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
+ ]],
+ [[ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupportPerMode-r18
+ OPTIONAL
]]
}
@@ -5595,6 +6555,9 @@ Sensor-ProvideCapabilities-r13 ::= SEQUENCE {
[[ adjustmentSupported-r16 ENUMERATED { true } OPTIONAL
]],
[[ scheduledLocationRequestSupported-r17 ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
+ ]],
+ [[ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupportPerMode-r18
+ OPTIONAL
]]
}
@@ -5754,6 +6717,9 @@ WLAN-ProvideCapabilities-r13 ::= SEQUENCE {
ENUMERATED { required } OPTIONAL
]],
[[ scheduledLocationRequestSupported-r17 ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
+ ]],
+ [[ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupportPerMode-r18
+ OPTIONAL
]]
}
@@ -5881,6 +6847,21 @@ WLAN-RequestAssistanceData-r14 ::= SEQUENCE {
BT-ProvideLocationInformation-r13 ::= SEQUENCE {
bt-MeasurementInformation-r13 BT-MeasurementInformation-r13 OPTIONAL,
bt-Error-r13 BT-Error-r13 OPTIONAL,
+ ...,
+ [[
+ bt-AoA-Config-r18 BT-AoA-Config-r18 OPTIONAL
+ ]]
+}
+
+BT-AoA-Config-r18 ::= SEQUENCE {
+ bt-Addr-r18 BIT STRING (SIZE (48)),
+ cte-Status-r18 ENUMERATED { enabled } OPTIONAL,
+ primaryAdvInterval-r18 INTEGER (32..16777) OPTIONAL,
+ secondAdvInterval-r18 INTEGER (6..65535) OPTIONAL,
+ tx-Power-r18 INTEGER (-127..20) OPTIONAL,
+ cte-Length-r18 INTEGER (2..20) OPTIONAL,
+ cte-Count-r18 INTEGER (1..16) OPTIONAL,
+ tx-PHY-M2-r18 ENUMERATED { m2 } OPTIONAL,
...
}
@@ -5888,7 +6869,10 @@ BT-ProvideLocationInformation-r13 ::= SEQUENCE {
BT-MeasurementInformation-r13 ::= SEQUENCE {
measurementReferenceTime-r13 UTCTime OPTIONAL,
bt-MeasurementList-r13 BT-MeasurementList-r13 OPTIONAL,
- ...
+ ...,
+ [[
+ bt-MeasurementList-r18 BT-MeasurementList-r18 OPTIONAL
+ ]]
}
BT-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxBT-Beacon-r13)) OF BT-MeasurementElement-r13
@@ -5900,18 +6884,48 @@ BT-MeasurementElement-r13 ::= SEQUENCE {
...
}
+BT-MeasurementList-r18 ::= SEQUENCE (SIZE(1..maxBT-Beacon-r13)) OF BT-MeasurementElement-r18
+
+BT-MeasurementElement-r18 ::= SEQUENCE {
+ btAddr-r18 BIT STRING (SIZE (48)),
+ bt-azimuth-r18 INTEGER (0..359),
+ bt-elevation-r18 INTEGER (0..180) OPTIONAL,
+ rssi-r18 INTEGER (-128..127) OPTIONAL,
+ ...
+}
+
BT-RequestLocationInformation-r13 ::= SEQUENCE {
requestedMeasurements-r13 BIT STRING {
- rssi (0)} (SIZE(1..8)),
+ rssi (0),
+ aod-v1800 (1)} (SIZE(1..8)),
+ ...,
+ [[
+ bt-requestedAoA-Config-r18 BIT STRING {
+ aoa-advConfig (0),
+ aoa-cteConfig (1)} (SIZE(1..8)) OPTIONAL, -- Need ON
+ bt-suggestedAoA-Config-r18 BT-SuggestedAoA-Config-r18 OPTIONAL -- Need ON
+ ]]
+}
+
+BT-SuggestedAoA-Config-r18 ::= SEQUENCE {
+ cte-Status-r18 ENUMERATED {enabled, disabled} OPTIONAL, -- Need ON
+ primaryAdvInterval-r18 INTEGER (32..16777) OPTIONAL, -- Need ON
+ secondAdvInterval-r18 INTEGER (6..65535) OPTIONAL, -- Need ON
+ tx-Power-r18 INTEGER (-127..20) OPTIONAL, -- Need ON
+ cte-Length-r18 INTEGER (2..20) OPTIONAL, -- Need ON
+ cte-Count-r18 INTEGER (1..16) OPTIONAL, -- Need ON
+ tx-PHY-M2-r18 ENUMERATED { m2 } OPTIONAL, -- Need OP
...
}
BT-ProvideCapabilities-r13 ::= SEQUENCE {
bt-Modes-r13 BIT STRING { standalone (0),
- ue-assisted (1)} (SIZE (1..8)),
- bt-MeasSupported-r13 BIT STRING { rssi-r13 (0)} (SIZE (1..8)),
+ ue-assisted (1),
+ ue-based-v1810 (2)} (SIZE (1..8)),
+ bt-MeasSupported-r13 BIT STRING { rssi-r13 (0),
+ aod-v1800 (1)} (SIZE (1..8)),
...,
[[
idleStateForMeasurements-r14
@@ -5920,6 +6934,10 @@ BT-ProvideCapabilities-r13 ::= SEQUENCE {
PositioningModes OPTIONAL
]],
[[ scheduledLocationRequestSupported-r17 ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
+ ]],
+ [[ bt-AoA-r18 ENUMERATED { request-only, suggestion } OPTIONAL,
+ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupportPerMode-r18
+ OPTIONAL
]]
}
@@ -5937,7 +6955,11 @@ BT-Error-r13 ::= CHOICE {
BT-LocationServerErrorCauses-r13 ::= SEQUENCE {
- cause-r13 ENUMERATED {undefined, ...},
+ cause-r13 ENUMERATED {undefined, ...,
+ assistanceDataNotSupportedByServer-v1810,
+ assistanceDataSupportedButCurrentlyNotAvailableByServer-v1810,
+ notAllrequestedAssistanceDataAvailableByServer-v1810
+ },
...
}
@@ -5946,13 +6968,109 @@ BT-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
cause-r13 ENUMERATED {undefined,
requestedMeasurementsNotAvailable,
notAllrequestedMeasurementsPossible,
- ...
+ ...,
+ assistanceDataMissing-v1810
},
bt-Beacon-rssiMeasurementNotPossible-r13 NULL OPTIONAL,
...
}
+BT-ProvideAssistanceData-r18 ::= SEQUENCE {
+ bt-BeaconInfo-r18 BT-BeaconInfo-r18,
+ bt-Error-r18 BT-Error-r13 OPTIONAL, -- Need ON
+ ...
+}
+
+
+BT-BeaconInfo-r18 ::= SEQUENCE {
+ referencePoint-r18 ReferencePoint-r16,
+ bt-BeaconInfoList-r18 SEQUENCE (SIZE (1..maxBT-BeaconAD-r18)) OF
+ BT-BeaconInfoElement-r18,
+ ...
+}
+
+BT-BeaconInfoElement-r18 ::= SEQUENCE {
+ bt-Addr-r18 BIT STRING (SIZE (48)),
+ bt-BeaconLocation-r18 RelativeLocation-r16 OPTIONAL, -- Need OP
+ bt-LCS-GCS-TranslationParameter-r18 LCS-GCS-TranslationParameter-r16
+ OPTIONAL, -- Cond NotSameAsPrev1
+ bt-antArrayConfig-r18 BT-AntArrayConfig-r18 OPTIONAL, -- Cond NotSameAsPrev2
+ bt-antElementList-r18 SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF
+ BT-AntElement-r18 OPTIONAL, -- Cond NotSameAsPrev3
+ bt-antSwitchingPattern-r18 SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF
+ BT-AntSwitchElement-r18 OPTIONAL, -- Cond NotSameAsPrev4
+ bt-AoD-TransmConfig-r18 BT-AoD-TransmConfig-r18 OPTIONAL, -- Cond NotSameAsPrev5
+ ...
+}
+
+BT-AntArrayConfig-r18 ::= CHOICE {
+ bt-UniformLinearArray-r18 BT-UniformLinearArray-r18,
+ bt-UniformRectangularArray-r18 BT-UniformRectangularArray-r18,
+ bt-UniformCircularArray-r18 BT-UniformCircularArray-r18,
+ bt-GenericArray-r18 BT-GenericArray-r18
+}
+
+BT-AntElement-r18 ::= SEQUENCE {
+ polarization-r18 ENUMERATED {m45, zero, p45, p90, circ},
+ ...
+}
+
+BT-AntSwitchElement-r18 ::= SEQUENCE {
+ antElementIndexShort-r18 INTEGER (1..16),
+ antElementIndexOffset-r18 ENUMERATED {o16, o32, o48, o64} OPTIONAL, -- Need OP
+ ...
+}
+
+BT-AoD-TransmConfig-r18 ::= SEQUENCE {
+ primaryAdvInterval-r18 INTEGER (32..16777),
+ secondAdvInterval-r18 INTEGER (6..65535),
+ cte-Length-r18 INTEGER (2..20),
+ cte-Count-r18 INTEGER (1..16),
+ cte-Type2us-r18 ENUMERATED { true } OPTIONAL, -- Need OP
+ tx-PHY-M2-r18 ENUMERATED { true } OPTIONAL, -- Need OP
+ ...
+}
+
+
+BT-UniformLinearArray-r18 ::= SEQUENCE {
+ bt-NoElements-r18 INTEGER (2..maxBT-BeaconAntElt-r18),
+ bt-InterElementDist-r18 INTEGER (30..130)
+}
+
+
+BT-UniformRectangularArray-r18 ::= SEQUENCE {
+ bt-NoElementsY-r18 INTEGER (1..maxBT-BeaconAntElt-r18),
+ bt-NoElementsZ-r18 INTEGER (1..maxBT-BeaconAntElt-r18),
+ bt-InterElementDistY-r18 INTEGER (30..135),
+ bt-InterElementDistZ-r18 INTEGER (30..135)
+}
+
+
+BT-UniformCircularArray-r18 ::= SEQUENCE {
+ bt-NoElements-r18 INTEGER (2..maxBT-BeaconAntElt-r18),
+ bt-InterElementDist-r18 INTEGER (30..130)
+}
+
+
+BT-GenericArray-r18 ::= SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF BT-ULA-GenericAntElement-r18
+
+BT-ULA-GenericAntElement-r18 ::= SEQUENCE {
+ deltaY-r18 INTEGER (-135..135) OPTIONAL, -- Need OP
+ deltaX-r18 INTEGER (-135..135) OPTIONAL, -- Need OP
+ deltaZ-r18 INTEGER (-135..135) OPTIONAL -- Need OP
+}
+
+
+BT-RequestAssistanceData-r18 ::= SEQUENCE {
+ requestedAD-r18 BIT STRING {
+ beacon-location (0),
+ beacon-antConfig (1),
+ beacon-transmConfig (2) } (SIZE (1..8)),
+ ...
+}
+
+
NR-UL-ProvideCapabilities-r16 ::= SEQUENCE {
nr-UL-SRS-Capability-r16 NR-UL-SRS-Capability-r16,
...,
@@ -6036,6 +7154,8 @@ NR-ECID-ProvideCapabilities-r16 ::= SEQUENCE {
ten-ms-unit-ResponseTime-r17 ENUMERATED { supported } OPTIONAL,
scheduledLocationRequestSupported-r17
ScheduledLocationTimeSupport-r17 OPTIONAL
+ ]],
+ [[ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupport-r18 OPTIONAL
]]
}
@@ -6070,7 +7190,10 @@ NR-ECID-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
ss-RSRQMeasurementNotPossible-r16 NULL OPTIONAL,
csi-RSRPMeasurementNotPossible-r16 NULL OPTIONAL,
csi-RSRQMeasurementNotPossible-r16 NULL OPTIONAL,
- ...
+ ...,
+ [[
+ remoteUE-Indication-r18 ENUMERATED {true} OPTIONAL -- Cond NR
+ ]]
}
@@ -6089,6 +7212,9 @@ NR-DL-TDOA-ProvideAssistanceData-r16 ::= SEQUENCE {
nr-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17 OPTIONAL, -- Need ON
assistanceDataValidityArea-r17 AreaID-CellList-r17 OPTIONAL -- Need ON
+ ]],
+ [[
+ nr-PeriodicAssistData-r18 NR-PeriodicAssistData-r18 OPTIONAL -- Cond CtrTrans
]]
}
@@ -6103,13 +7229,26 @@ NR-DL-TDOA-RequestAssistanceData-r16 ::= SEQUENCE {
beamInfo (1),
rtdInfo (2),
losNlosInfo (3),
- trpTEG-Info (4)
+ trpTEG-Info (4),
+ nr-IntegrityBounds-r18 (5),
+ pruInfo-r18 (6)
} (SIZE (1..8)) OPTIONAL,
nr-on-demand-DL-PRS-Request-r17 NR-On-Demand-DL-PRS-Request-r17 OPTIONAL,
nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17
ENUMERATED { eAoD, eAoA } OPTIONAL,
pre-configured-AssistanceDataRequest-r17
ENUMERATED { true } OPTIONAL
+ ]],
+ [[
+ nr-PeriodicAssistDataReq-r18 NR-PeriodicAssistDataReq-r18 OPTIONAL, -- Cond PerADReq
+ nr-IntegrityAssistanceRequest-r18 BIT STRING {
+ serviceParameters (0),
+ serviceAlert (1),
+ riskParameters (2),
+ integrityParaTRP-Loc (3),
+ integrityParaBeamInfo (4),
+ integrityParaRTD-Info (5)
+ } (SIZE (1..8)) OPTIONAL
]]
}
@@ -6161,7 +7300,13 @@ NR-DL-TDOA-MeasElement-r16 ::= SEQUENCE {
k3-r16 INTEGER (0..246257),
k4-r16 INTEGER (0..123129),
k5-r16 INTEGER (0..61565),
- ...
+ ...,
+ kMinus6-r18 INTEGER (0..126083073),
+ kMinus5-r18 INTEGER (0..63041537),
+ kMinus4-r18 INTEGER (0..31520769),
+ kMinus3-r18 INTEGER (0..15760385),
+ kMinus2-r18 INTEGER (0..7880193),
+ kMinus1-r18 INTEGER (0..3940097)
},
nr-AdditionalPathList-r16 NR-AdditionalPathList-r16 OPTIONAL,
nr-TimingQuality-r16 NR-TimingQuality-r16,
@@ -6179,6 +7324,17 @@ NR-DL-TDOA-MeasElement-r16 ::= SEQUENCE {
nr-AdditionalPathListExt-r17 NR-AdditionalPathListExt-r17 OPTIONAL,
nr-DL-TDOA-AdditionalMeasurementsExt-r17
NR-DL-TDOA-AdditionalMeasurementsExt-r17 OPTIONAL
+ ]],
+ [[
+ nr-MeasBasedOnAggregatedResources-r18 ENUMERATED {true} OPTIONAL,
+ nr-AggregatedDL-PRS-ResourceInfo-List-r18 SEQUENCE (SIZE (2.. 3)) OF
+ NR-AggregatedDL-PRS-ResourceInfo-Element-r18 OPTIONAL,
+ nr-RSCPD-r18 INTEGER (0..3599) OPTIONAL,
+ nr-PhaseQuality-r18 NR-PhaseQuality-r18 OPTIONAL,
+ nr-RSCPD-AddMeasurementSamples-r18 SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
+ NR-RSCPD-AdditionalMeasurementSamplesElement-r18 OPTIONAL,
+ nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
+ ENUMERATED { singleHop, multipleHop } OPTIONAL
]]
}
@@ -6199,7 +7355,13 @@ NR-DL-TDOA-AdditionalMeasurementElement-r16 ::= SEQUENCE {
k3-r16 INTEGER (0..1023),
k4-r16 INTEGER (0..511),
k5-r16 INTEGER (0..255),
- ...
+ ...,
+ kMinus6-r18 INTEGER (0..524224),
+ kMinus5-r18 INTEGER (0..262112),
+ kMinus4-r18 INTEGER (0..131056),
+ kMinus3-r18 INTEGER (0..65528),
+ kMinus2-r18 INTEGER (0..32764),
+ kMinus1-r18 INTEGER (0..16382)
},
nr-TimingQuality-r16 NR-TimingQuality-r16,
nr-DL-PRS-RSRP-ResultDiff-r16 INTEGER (0..61) OPTIONAL,
@@ -6212,9 +7374,28 @@ NR-DL-TDOA-AdditionalMeasurementElement-r16 ::= SEQUENCE {
nr-los-nlos-IndicatorPerResource-r17
LOS-NLOS-Indicator-r17 OPTIONAL,
nr-AdditionalPathListExt-r17 NR-AdditionalPathListExt-r17 OPTIONAL
+ ]],
+ [[
+ nr-MeasBasedOnAggregatedResources-r18 ENUMERATED {true} OPTIONAL,
+ nr-AggregatedDL-PRS-ResourceInfo-List-r18 SEQUENCE (SIZE (2.. 3)) OF
+ NR-AggregatedDL-PRS-ResourceInfo-Element-r18 OPTIONAL,
+ nr-RSCPD-r18 INTEGER (0..3599) OPTIONAL,
+ nr-PhaseQuality-r18 NR-PhaseQuality-r18 OPTIONAL,
+ nr-RSCPD-AdditionalMeasurementsAddSamples-r18
+ SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
+ NR-RSCPD-AdditionalMeasurementSamplesElement-r18 OPTIONAL,
+ nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
+ ENUMERATED { singleHop, multipleHop } OPTIONAL
]]
}
+NR-RSCPD-AdditionalMeasurementSamplesElement-r18 ::= SEQUENCE {
+ nr-RSCPD-r18 INTEGER (0..3599) OPTIONAL,
+ nr-PhaseQuality-r18 NR-PhaseQuality-r18 OPTIONAL,
+ nr-TimeStamp-r18 NR-TimeStamp-r16 OPTIONAL,
+ ...
+}
+
NR-DL-TDOA-LocationInformation-r16 ::= SEQUENCE {
measurementReferenceTime-r16 CHOICE {
@@ -6233,7 +7414,8 @@ NR-DL-TDOA-LocationInformation-r16 ::= SEQUENCE {
NR-DL-TDOA-RequestLocationInformation-r16 ::= SEQUENCE {
nr-DL-PRS-RstdMeasurementInfoRequest-r16 ENUMERATED { true } OPTIONAL,-- Need ON
nr-RequestedMeasurements-r16 BIT STRING { prsrsrpReq (0),
- firstPathRsrpReq-r17 (1)
+ firstPathRsrpReq-r17 (1),
+ dl-PRS-RSCPD-Request-r18 (2)
} (SIZE(1..8)),
nr-AssistanceAvailability-r16 BOOLEAN,
nr-DL-TDOA-ReportConfig-r16 NR-DL-TDOA-ReportConfig-r16 OPTIONAL, -- Need ON
@@ -6249,7 +7431,18 @@ NR-DL-TDOA-RequestLocationInformation-r16 ::= SEQUENCE {
additionalPathsExt-r17 ENUMERATED { requested } OPTIONAL, -- Need ON
additionalPathsDL-PRS-RSRP-Request-r17 ENUMERATED { requested } OPTIONAL, -- Need ON
multiMeasInSameReport-r17 ENUMERATED { requested } OPTIONAL -- Need ON
-
+ ]],
+ [[
+ nr-DL-PRS-JointMeasurementRequest-r18 SEQUENCE {
+ nr-DL-PRS-JointMeasurementRequestedPFL-List-r18 SEQUENCE (SIZE (2..3)) OF
+ INTEGER (0..nrMaxFreqLayers-1-r16) OPTIONAL -- Need ON
+ } OPTIONAL, -- Need ON
+ nr-DL-PRS-RxHoppingRequest-r18 SEQUENCE {
+ nr-DL-PRS-RxHoppingTotalBandwidth-r18 CHOICE {
+ fr1 ENUMERATED {mhz40, mhz50, mhz80, mhz100},
+ fr2 ENUMERATED {mhz100, mhz200, mhz400}
+ } OPTIONAL -- Need ON
+ } OPTIONAL -- Need ON
]]
}
@@ -6263,6 +7456,11 @@ NR-DL-TDOA-ReportConfig-r16 ::= SEQUENCE {
OPTIONAL, -- Need ON
reducedDL-PRS-ProcessingSamples-r17 ENUMERATED { requested, ... } OPTIONAL, -- Need ON
lowerRxBeamSweepingFactor-FR2-r17 ENUMERATED { requested } OPTIONAL -- Need ON
+ ]],
+ [[
+ timingReportingGranularityFactorExt-r18 INTEGER (-6..-1) OPTIONAL, -- Need ON
+ nr-DL-PRS-MeasurementTimeWindowsConfig-r18
+ NR-DL-PRS-MeasurementTimeWindowsConfig-r18 OPTIONAL -- Need ON
]]
}
@@ -6281,7 +7479,9 @@ NR-DL-TDOA-ProvideCapabilities-r16 ::= SEQUENCE {
nr-PosCalcAssistanceSupport-r17 BIT STRING { trpLocSup (0),
beamInfoSup (1),
rtdInfoSup (2),
- trpTEG-InfoSup (3)
+ trpTEG-InfoSup (3),
+ nr-IntegritySup-r18 (4),
+ pruInfoSup-r18 (5)
} (SIZE (1..8)) OPTIONAL,
nr-los-nlos-AssistanceDataSupport-r17 SEQUENCE {
type-r17 LOS-NLOS-IndicatorType2-r17,
@@ -6307,6 +7507,26 @@ NR-DL-TDOA-ProvideCapabilities-r16 ::= SEQUENCE {
]],
[[
posMeasGapSupport-r17 ENUMERATED { supported } OPTIONAL
+ ]],
+ [[
+ multiLocationEstimateInSameMeasReport-r17 ENUMERATED { supported } OPTIONAL
+ ]],
+ [[
+ locationCoordinateTypes-r18 LocationCoordinateTypes OPTIONAL,
+ periodicAssistanceData-r18 BIT STRING { solicited (0),
+ unsolicited (1)} (SIZE (1..8)) OPTIONAL,
+ nr-IntegrityAssistanceSupport-r18 BIT STRING {
+ serviceParametersSup (0),
+ serviceAlertSup (1),
+ riskParametersSup (2),
+ integrityParaTRP-LocSup (3),
+ integrityParaBeamInfoSup (4),
+ integrityParaRTD-InfoSup (5)
+ } (SIZE (1..8)) OPTIONAL,
+ nr-DL-TDOA-OnDemandPRS-ForBWA-Support-r18
+ ENUMERATED { supported } OPTIONAL,
+ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupportPerMode-r18
+ OPTIONAL
]]
}
@@ -6328,7 +7548,26 @@ DL-TDOA-MeasCapabilityPerBand-r17 ::= SEQUENCE {
freqBandIndicatorNR-r17 FreqBandIndicatorNR-r16,
supportOfDL-PRS-FirstPathRSRP-r17 ENUMERATED { supported } OPTIONAL,
dl-PRS-MeasRRC-Inactive-r17 ENUMERATED { supported } OPTIONAL,
- ...
+ ...,
+ [[
+ supportOfDL-PRS-BWA-RRC-Connected-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfDL-PRS-BWA-RRC-Inactive-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfDL-PRS-BWA-RRC-Idle-r18 ENUMERATED { supported } OPTIONAL,
+ nr-DL-PRS-RSCPD-ReportingRRC-Connected-r18 ENUMERATED { supported } OPTIONAL,
+ assocSingleRSTD-WithUpToNsampleRSCPD-r18 ENUMERATED { supported } OPTIONAL,
+ nr-DL-PRS-RSCPD-MeasurementRRC-Idle-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfUE-basedCarrierPhasePositioning-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfSymbolTimeStampForRSCPD-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfFinerTimingReportGranularityForPRS-Meas-r18 ENUMERATED { minus1, minus2,
+ minus3, minus4, minus5, minus6}
+ OPTIONAL,
+ supportOfMeasurementsInTimeWindow-r18 BIT STRING { rstd (0),
+ rsrp (1),
+ rsrpp (2),
+ rscpd (3)
+ } (SIZE (1..8)) OPTIONAL,
+ supportOfPRS-MeasurementRRC-Idle-r18 ENUMERATED { supported } OPTIONAL
+ ]]
}
@@ -6366,7 +7605,10 @@ NR-DL-TDOA-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
locationCalculationAssistanceDataMissing,
...
},
- ...
+ ...,
+ [[
+ remoteUE-Indication-r18 ENUMERATED {true} OPTIONAL -- Cond NR
+ ]]
}
@@ -6401,12 +7643,22 @@ NR-DL-AoD-RequestAssistanceData-r16 ::= SEQUENCE {
beamInfo (1),
rtdInfo (2),
beamAntInfo (3),
- losNlosInfo (4)
+ losNlosInfo (4),
+ nr-IntegrityBounds-r18 (5)
} (SIZE (1..8)) OPTIONAL,
nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17 ENUMERATED { eAoD, eAoA } OPTIONAL,
nr-DL-PRS-BeamInfoRequest-r17 ENUMERATED { requested } OPTIONAL,
nr-on-demand-DL-PRS-Request-r17 NR-On-Demand-DL-PRS-Request-r17 OPTIONAL,
- pre-configured-AssistanceDataRequest-r17 ENUMERATED { true } OPTIONAL
+ pre-configured-AssistanceDataRequest-r17 ENUMERATED { true } OPTIONAL,
+ nr-IntegrityAssistanceRequest-r18 BIT STRING {
+ serviceParameters (0),
+ serviceAlert (1),
+ riskParameters (2),
+ integrityParaTRP-Loc (3),
+ integrityParaBeamInfo (4),
+ integrityParaRTD-Info (5),
+ integrityBeamAntInfo (6)
+ } (SIZE (1..8)) OPTIONAL
]]
}
@@ -6457,7 +7709,12 @@ NR-DL-AoD-MeasElement-r16 ::= SEQUENCE {
} OPTIONAL,
nr-DL-AoD-AdditionalMeasurementsExt-r17
NR-DL-AoD-AdditionalMeasurementsExt-r17 OPTIONAL
+ ]],
+ [[
+ nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
+ ENUMERATED { singleHop, multipleHop } OPTIONAL
]]
+
}
NR-DL-AoD-AdditionalMeasurements-r16 ::= SEQUENCE (SIZE (1..7)) OF
@@ -6483,7 +7740,11 @@ NR-DL-AoD-AdditionalMeasurementElement-r17 ::= SEQUENCE {
nr-DL-PRS-RxBeamIndex-r17 INTEGER (1..8) OPTIONAL,
nr-DL-PRS-FirstPathRSRP-ResultDiff-r17 INTEGER (0..61) OPTIONAL, -- Cond rsrpp
nr-los-nlos-IndicatorPerResource-r17 LOS-NLOS-Indicator-r17 OPTIONAL,
- ...
+ ...,
+ [[
+ nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
+ ENUMERATED { singleHop, multipleHop } OPTIONAL
+ ]]
}
@@ -6507,6 +7768,14 @@ NR-DL-AoD-RequestLocationInformation-r16 ::= SEQUENCE {
...,
[[
multiMeasInSameReport-r17 ENUMERATED { requested } OPTIONAL -- Need ON
+ ]],
+ [[
+ nr-DL-PRS-RxHoppingRequest-r18 SEQUENCE {
+ nr-DL-PRS-RxHoppingTotalBandwidth-r18 CHOICE {
+ fr1 ENUMERATED {mhz40, mhz50, mhz80, mhz100},
+ fr2 ENUMERATED {mhz100, mhz200, mhz400}
+ } OPTIONAL -- Need ON
+ } OPTIONAL -- Need ON
]]
}
@@ -6525,6 +7794,10 @@ NR-DL-AoD-ReportConfig-r16 ::= SEQUENCE {
reducedDL-PRS-ProcessingSamples-r17 ENUMERATED { requested, ... }
OPTIONAL, -- Need ON
lowerRxBeamSweepingFactor-FR2-r17 ENUMERATED { requested } OPTIONAL -- Need ON
+ ]],
+ [[
+ nr-DL-PRS-MeasurementTimeWindowsConfig-r18
+ NR-DL-PRS-MeasurementTimeWindowsConfig-r18 OPTIONAL -- Need ON
]]
}
@@ -6542,7 +7815,8 @@ NR-DL-AoD-ProvideCapabilities-r16 ::= SEQUENCE {
nr-PosCalcAssistanceSupport-r17 BIT STRING { trpLocSup (0),
beamInfoSup (1),
rtdInfoSup (2),
- beamAntInfoSup (3)
+ beamAntInfoSup (3),
+ nr-IntegrityBoundsSup-r18 (4)
} (SIZE (1..8)) OPTIONAL,
nr-los-nlos-AssistanceDataSupport-r17 SEQUENCE {
type-r17 LOS-NLOS-IndicatorType2-r17,
@@ -6572,6 +7846,23 @@ NR-DL-AoD-ProvideCapabilities-r16 ::= SEQUENCE {
]],
[[
posMeasGapSupport-r17 ENUMERATED { supported } OPTIONAL
+ ]],
+ [[
+ multiLocationEstimateInSameMeasReport-r17 ENUMERATED { supported } OPTIONAL
+ ]],
+ [[
+ locationCoordinateTypes-r18 LocationCoordinateTypes OPTIONAL,
+ nr-IntegrityAssistanceSupport-r18 BIT STRING {
+ serviceParametersSup (0),
+ serviceAlertSup (1),
+ riskParametersSup (2),
+ integrityParaTRP-LocSup (3),
+ integrityParaBeamInfoSup (4),
+ integrityParaRTD-InfoSup (5),
+ integrityBeamAntInfoSup (6)
+ } (SIZE (1..8)) OPTIONAL,
+ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupportPerMode-r18
+ OPTIONAL
]]
}
@@ -6596,6 +7887,13 @@ DL-AoD-MeasCapabilityPerBand-r16 ::= SEQUENCE {
[[
maxDL-PRS-FirstPathRSRP-MeasPerTRP-r17 ENUMERATED { n1, n2, n4, n8, n16, n24 } OPTIONAL,
dl-PRS-MeasRRC-Inactive-r17 ENUMERATED { supported } OPTIONAL
+ ]],
+ [[
+ supportOfMeasurementsInTimeWindow-r18 BIT STRING {
+ rsrp (0),
+ rsrpp (1)
+ } (SIZE (1..8)) OPTIONAL,
+ supportOfPRS-MeasurementRRC-Idle-r18 ENUMERATED { supported } OPTIONAL
]]
}
@@ -6634,7 +7932,10 @@ NR-DL-AoD-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
locationCalculationAssistanceDataMissing,
...
},
- ...
+ ...,
+ [[
+ remoteUE-Indication-r18 ENUMERATED {true} OPTIONAL -- Cond NR
+ ]]
}
@@ -6677,7 +7978,7 @@ NR-Multi-RTT-ProvideLocationInformation-r16 ::= SEQUENCE {
nr-Multi-RTT-SignalMeasurementInstances-r17
SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
NR-Multi-RTT-SignalMeasurementInformation-r16
- OPTIONAL
+ OPTIONAL --Cond batchUEA
]]
}
@@ -6714,7 +8015,13 @@ NR-Multi-RTT-MeasElement-r16 ::= SEQUENCE {
k3-r16 INTEGER (0..246257),
k4-r16 INTEGER (0..123129),
k5-r16 INTEGER (0..61565),
- ...
+ ...,
+ kMinus6-r18 INTEGER (0..126083073),
+ kMinus5-r18 INTEGER (0..63041537),
+ kMinus4-r18 INTEGER (0..31520769),
+ kMinus3-r18 INTEGER (0..15760385),
+ kMinus2-r18 INTEGER (0..7880193),
+ kMinus1-r18 INTEGER (0..3940097)
},
nr-AdditionalPathList-r16 NR-AdditionalPathList-r16 OPTIONAL,
nr-TimeStamp-r16 NR-TimeStamp-r16,
@@ -6733,6 +8040,19 @@ NR-Multi-RTT-MeasElement-r16 ::= SEQUENCE {
nr-AdditionalPathListExt-r17 NR-AdditionalPathListExt-r17 OPTIONAL,
nr-Multi-RTT-AdditionalMeasurementsExt-r17
NR-Multi-RTT-AdditionalMeasurementsExt-r17 OPTIONAL
+ ]],
+ [[
+ nr-MeasBasedOnAggregatedResources-r18 ENUMERATED {true} OPTIONAL,
+ nr-AggregatedDL-PRS-ResourceInfo-List-r18 SEQUENCE (SIZE (2..3)) OF
+ NR-AggregatedDL-PRS-ResourceInfo-Element-r18 OPTIONAL,
+ nr-RSCP-r18 INTEGER (0..3599) OPTIONAL,
+ nr-PhaseQuality-r18 NR-PhaseQuality-r18 OPTIONAL,
+ nr-RSCP-AddSampleMeasurements-r18
+ SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF NR-RSCP-AdditionalMeasurements-r18
+ OPTIONAL,
+ nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
+ ENUMERATED { singleHop, multipleHop } OPTIONAL,
+ nr-NTN-UE-RxTxMeasurements-r18 NR-NTN-UE-RxTxMeasurements-r18 OPTIONAL
]]
}
@@ -6744,7 +8064,7 @@ NR-Multi-RTT-AdditionalMeasurementsExt-r17 ::= SEQUENCE (SIZE (1..maxAddMeasRTT-
NR-Multi-RTT-AdditionalMeasurementElement-r16 ::= SEQUENCE {
nr-DL-PRS-ResourceID-r16 NR-DL-PRS-ResourceID-r16 OPTIONAL,
- nr-DL-PRS-ResourceSetID-r16 NR-DL-PRS-ResourceSetID-r16 OPTIONAL,
+ nr-DL-PRS-ResourceSetID-r16 NR-DL-PRS-ResourceSetID-r16 OPTIONAL,
nr-DL-PRS-RSRP-ResultDiff-r16 INTEGER (0..61) OPTIONAL,
nr-UE-RxTxTimeDiffAdditional-r16 CHOICE {
k0-r16 INTEGER (0..8191),
@@ -6753,7 +8073,13 @@ NR-Multi-RTT-AdditionalMeasurementElement-r16 ::= SEQUENCE {
k3-r16 INTEGER (0..1023),
k4-r16 INTEGER (0..511),
k5-r16 INTEGER (0..255),
- ...
+ ...,
+ kMinus6-r18 INTEGER (0..524224),
+ kMinus5-r18 INTEGER (0..262112),
+ kMinus4-r18 INTEGER (0..131056),
+ kMinus3-r18 INTEGER (0..65528),
+ kMinus2-r18 INTEGER (0..32764),
+ kMinus1-r18 INTEGER (0..16382)
},
nr-TimingQuality-r16 NR-TimingQuality-r16,
nr-AdditionalPathList-r16 NR-AdditionalPathList-r16 OPTIONAL,
@@ -6764,6 +8090,19 @@ NR-Multi-RTT-AdditionalMeasurementElement-r16 ::= SEQUENCE {
nr-DL-PRS-FirstPathRSRP-ResultDiff-r17 INTEGER (0..61) OPTIONAL,
nr-los-nlos-IndicatorPerResource-r17 LOS-NLOS-Indicator-r17 OPTIONAL,
nr-AdditionalPathListExt-r17 NR-AdditionalPathListExt-r17 OPTIONAL
+ ]],
+ [[
+ nr-MeasBasedOnAggregatedResources-r18 ENUMERATED {true} OPTIONAL,
+ nr-AggregatedDL-PRS-ResourceInfo-List-r18 SEQUENCE (SIZE (2..3)) OF
+ NR-AggregatedDL-PRS-ResourceInfo-Element-r18 OPTIONAL,
+ nr-RSCP-r18 INTEGER (0..3599) OPTIONAL,
+ nr-PhaseQuality-r18 NR-PhaseQuality-r18 OPTIONAL,
+ nr-RSCP-AdditionalMeasurementsAddSample-r18
+ SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF NR-RSCP-AdditionalMeasurements-r18
+ OPTIONAL,
+ nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
+ ENUMERATED { singleHop, multipleHop } OPTIONAL,
+ nr-NTN-UE-RxTxMeasurements-r18 NR-NTN-UE-RxTxMeasurements-r18 OPTIONAL
]]
}
@@ -6794,12 +8133,26 @@ NR-UE-RxTx-TEG-Info-r17 ::= CHOICE {
...
}
+NR-RSCP-AdditionalMeasurements-r18 ::= SEQUENCE {
+ nr-RSCP-r18 INTEGER (0..3599) OPTIONAL,
+ nr-PhaseQuality-r18 NR-PhaseQuality-r18 OPTIONAL,
+ nr-TimeStamp-r18 NR-TimeStamp-r16 OPTIONAL,
+ ...
+}
+
+NR-NTN-UE-RxTxMeasurements-r18 ::= SEQUENCE {
+ nr-NTN-UE-RxTxTimeDiffSubframeOffset-r18 INTEGER (0..542),
+ nr-NTN-DL-TimingDrift-r18 INTEGER (-265..265)
+}
+
NR-Multi-RTT-RequestLocationInformation-r16 ::= SEQUENCE {
nr-UE-RxTxTimeDiffMeasurementInfoRequest-r16
ENUMERATED { true } OPTIONAL, -- Need ON
nr-RequestedMeasurements-r16 BIT STRING { prsrsrpReq (0),
- firstPathRsrpReq-r17 (1) } (SIZE(1..8)),
+ firstPathRsrpReq-r17 (1),
+ dl-PRS-RSCP-Request-r18 (2)}
+ (SIZE(1..8)),
nr-AssistanceAvailability-r16 BOOLEAN,
nr-Multi-RTT-ReportConfig-r16 NR-Multi-RTT-ReportConfig-r16,
additionalPaths-r16 ENUMERATED { requested } OPTIONAL, -- Need ON
@@ -6825,6 +8178,21 @@ NR-Multi-RTT-RequestLocationInformation-r16 ::= SEQUENCE {
ENUMERATED { requested } OPTIONAL, -- Need ON
multiMeasInSameReport-r17 ENUMERATED { requested } OPTIONAL, -- Need ON
lowerRxBeamSweepingFactor-FR2-r17 ENUMERATED { requested } OPTIONAL -- Need ON
+ ]],
+ [[
+ nr-DL-PRS-RxHoppingRequest-r18 SEQUENCE {
+ nr-DL-PRS-RxHoppingTotalBandwidth-r18 CHOICE {
+ fr1 ENUMERATED {mhz40, mhz50, mhz80, mhz100},
+ fr2 ENUMERATED {mhz100, mhz200, mhz400}
+ } OPTIONAL -- Need ON
+ } OPTIONAL, -- Need ON
+ timingReportingGranularityFactorExt-r18 INTEGER (-6..-1) OPTIONAL, -- Need ON
+ nr-DL-PRS-JointMeasurementRequest-r18 SEQUENCE {
+ nr-DL-PRS-JointMeasurementRequestedPFL-List-r18 SEQUENCE (SIZE (2..3)) OF
+ INTEGER (0..nrMaxFreqLayers-1-r16) OPTIONAL -- Need ON
+ } OPTIONAL, -- Need ON
+ nr-DL-PRS-MeasurementTimeWindowsConfig-r18
+ NR-DL-PRS-MeasurementTimeWindowsConfig-r18 OPTIONAL -- Need ON
]]
}
@@ -6869,6 +8237,10 @@ NR-Multi-RTT-ProvideCapabilities-r16 ::= SEQUENCE {
]],
[[
posMeasGapSupport-r17 ENUMERATED { supported } OPTIONAL
+ ]],
+ [[
+ nr-MultiRTT-OnDemandPRS-ForBWA-Support-r18 ENUMERATED { supported } OPTIONAL,
+ periodicReportingIntervalMsSupport-r18 PeriodicReportingIntervalMsSupport-r18 OPTIONAL
]]
}
@@ -6893,7 +8265,23 @@ Multi-RTT-MeasCapabilityPerBand-r17 ::= SEQUENCE {
freqBandIndicatorNR-r17 FreqBandIndicatorNR-r16,
supportOfDL-PRS-FirstPathRSRP-r17 ENUMERATED { supported } OPTIONAL,
dl-PRS-MeasRRC-Inactive-r17 ENUMERATED { supported } OPTIONAL,
- ...
+ ...,
+ [[
+ supportOfDL-PRS-BWA-RRC-Connected-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfDL-PRS-BWA-RRC-Inactive-r18 ENUMERATED { supported } OPTIONAL,
+ nr-NTN-MeasAndReport-r18 ENUMERATED { supported } OPTIONAL,
+ nr-DL-PRS-RSCP-ReportingRRC-Connected-r18 ENUMERATED { supported } OPTIONAL,
+ nr-DL-PRS-RSCP-ReportingRRC-Inactive-r18 ENUMERATED { supported } OPTIONAL,
+ assocSingleRx-Tx-WithUpToNsampleRSCP-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfSymbolTimeStampForRSCP-r18 ENUMERATED { supported } OPTIONAL,
+ supportOfFinerTimingReportGranularityForPRS-Meas-r18 ENUMERATED { minus1, minus2,
+ minus3, minus4, minus5, minus6} OPTIONAL,
+ supportOfMeasurementsInTimeWindow-r18 BIT STRING { rx-tx (0),
+ rsrp (1),
+ rsrpp (2),
+ rscp (3)
+ } (SIZE (1..8)) OPTIONAL
+ ]]
}
@@ -6930,7 +8318,10 @@ NR-Multi-RTT-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
unableToTransmit-ul-srs,
...
},
- ...
+ ...,
+ [[
+ remoteUE-Indication-r18 ENUMERATED {true} OPTIONAL -- Cond NR
+ ]]
}
@@ -6946,6 +8337,8 @@ maxWLAN-AP-r14 INTEGER ::= 128
maxWLAN-DataSets-r14 INTEGER ::= 8
maxBT-Beacon-r13 INTEGER ::= 32
+maxBT-BeaconAntElt-r18 INTEGER ::= 74
+maxBT-BeaconAD-r18 INTEGER ::= 64
nrMaxBands-r16 INTEGER ::= 1024 -- Maximum number of supported bands in
-- UE capability.
@@ -6972,8 +8365,8 @@ maxNumOfTxTEGs-1-r17 INTEGER ::= 7
maxTxTEG-Sets-r17 INTEGER ::= 256 -- Maximum applicable number is 64
maxNumOfRxTxTEGs-1-r17 INTEGER ::= 255
maxNumOfTRP-TxTEGs-1-r17 INTEGER ::= 7
-maxNumOfSRS-PosResources-r17 INTEGER ::= 64
-maxNumOfSRS-PosResources-1-r17 INTEGER ::= 63
+maxNumOfSRS-PosResources-r17 INTEGER ::= 64
+maxNumOfSRS-PosResources-1-r17 INTEGER ::= 63
maxNumResourcesPerAngle-r17 INTEGER ::= 24
maxNumPrioResources-r17 INTEGER ::= 24
@@ -6988,5 +8381,11 @@ maxCellIDsPerArea-r17 INTEGER ::= 256
maxNrOfAreas-r17 INTEGER ::= 16
maxMeasInstances-r17 INTEGER ::= 32
+nrMaxNumPRS-BandWidthAggregation-r18 INTEGER ::= 256 -- Max number of DL-PRS bandwidth
+ -- aggregation configurations that a
+ -- location server can provide to a UE
+nrNumOfSamples-r18 INTEGER ::= 4 -- NSample of RSCP/RSCPD
+nrNumOfSamples-1-r18 INTEGER ::= 3
+
END
diff --git a/epan/dissectors/asn1/lpp/lpp.cnf b/epan/dissectors/asn1/lpp/lpp.cnf
index d3ccd23a..5502b4b9 100644
--- a/epan/dissectors/asn1/lpp/lpp.cnf
+++ b/epan/dissectors/asn1/lpp/lpp.cnf
@@ -1,6 +1,6 @@
# lpp.cnf
# lpp conformation file
-# Copyright 2011-2023 Pascal Quantin
+# Copyright 2011-2024 Pascal Quantin
#.OPT
PER
@@ -69,6 +69,8 @@ GNSS-EarthOrientationParameters
GNSS-Integrity-ServiceAlert-r17
GNSS-Integrity-ServiceParameters-r17
GNSS-IonosphericModel
+GNSS-LOS-NLOS-GriddedIndications-r18
+GNSS-LOS-NLOS-GridPoints-r18
GNSS-NavigationModel
GNSS-RealTimeIntegrity
GNSS-ReferenceTime
@@ -81,13 +83,18 @@ GNSS-RTK-Observations-r15
GNSS-RTK-ReferenceStationInfo-r15
GNSS-RTK-Residuals-r15
GNSS-SSR-ClockCorrections-r15
+GNSS-SSR-ClockCorrectionsSet2-r17
GNSS-SSR-CodeBias-r15
GNSS-SSR-CorrectionPoints-r16
GNSS-SSR-GriddedCorrection-r16
+GNSS-SSR-IOD-Update-r18
GNSS-SSR-OrbitCorrections-r15
+GNSS-SSR-OrbitCorrectionsSet2-r17
GNSS-SSR-PhaseBias-r16
+GNSS-SSR-SatellitePCVResiduals-r18
GNSS-SSR-STEC-Correction-r16
GNSS-SSR-URA-r16
+GNSS-SSR-URA-Set2-r17
GNSS-TimeModelList
GNSS-UTC-Model
HorizontalVelocity
@@ -101,7 +108,12 @@ NavIC-DifferentialCorrections-r16
NavIC-GridModelParameter-r16
NR-DL-PRS-AssistanceData-r16
NR-DL-PRS-TRP-TEG-Info-r17
+NR-IntegrityParameters-r18
+NR-IntegrityRiskParameters-r18
+NR-IntegrityServiceAlert-r18
+NR-IntegrityServiceParameters-r18
NR-On-Demand-DL-PRS-Configurations-r17
+NR-PRU-DL-Info-r18
NR-TRP-BeamAntennaInfo-r17
NR-UEB-TRP-LocationData-r16
NR-UEB-TRP-RTD-Info-r16
@@ -116,7 +128,7 @@ Velocity
#.FIELD_RENAME
CellGlobalIdGERAN/cellIdentity cellGlobalIdGERAN_cellIdentity
LocationCoordinates/polygon locationCoordinates_polygon
-UTC-ModelSet4/utcDN UTC-ModelSet4_utcDN
+UTC-ModelSet4/utcDN uTC-ModelSet4_utcDN
#.FIELD_ATTR
CellGlobalIdGERAN/cellIdentity ABBREV=cellGlobalIdGERAN.cellIdentity
@@ -258,34 +270,34 @@ EllipsoidArc/includedAngle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt)
EllipsoidArc/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
#.TYPE_ATTR
-HorizontalVelocity/bearing DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+HorizontalVelocity/bearing DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.TYPE_ATTR
-HorizontalVelocity/horizontalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+HorizontalVelocity/horizontalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
-HorizontalVelocityWithUncertainty/bearing DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+HorizontalVelocityWithUncertainty/bearing DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.TYPE_ATTR
-HorizontalVelocityWithUncertainty/horizontalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+HorizontalVelocityWithUncertainty/horizontalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
-HorizontalVelocityWithUncertainty/uncertaintySpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+HorizontalVelocityWithUncertainty/uncertaintySpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
-HorizontalWithVerticalVelocityAndUncertainty/bearing DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+HorizontalWithVerticalVelocityAndUncertainty/bearing DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.TYPE_ATTR
-HorizontalWithVerticalVelocityAndUncertainty/horizontalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+HorizontalWithVerticalVelocityAndUncertainty/horizontalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
-HorizontalWithVerticalVelocityAndUncertainty/verticalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+HorizontalWithVerticalVelocityAndUncertainty/verticalSpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
-HorizontalWithVerticalVelocityAndUncertainty/horizontalUncertaintySpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+HorizontalWithVerticalVelocityAndUncertainty/horizontalUncertaintySpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
-HorizontalWithVerticalVelocityAndUncertainty/verticalUncertaintySpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+HorizontalWithVerticalVelocityAndUncertainty/verticalUncertaintySpeed DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
PolygonPoints/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt)
@@ -294,8 +306,8 @@ PolygonPoints/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLat
PolygonPoints/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt)
#.FN_BODY PeriodicalReportingCriteria/reportingInterval VAL_PTR=&idx
- guint32 idx;
- const gchar *interval[10] = {"", ": 1s", ": 2s", ": 4s", ": 8s", ": 10s",
+ uint32_t idx;
+ const char *interval[10] = {"", ": 1s", ": 2s", ": 4s", ": 8s", ": 10s",
": 16s", ": 20s", ": 32s", ": 64s"};
%(DEFAULT_BODY)s
@@ -306,7 +318,7 @@ PolygonPoints/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLo
}
#.FN_BODY ReportingDuration VAL_PTR = &duration
- guint32 duration;
+ uint32_t duration;
%(DEFAULT_BODY)s
if (duration == 0) {
@@ -314,7 +326,7 @@ PolygonPoints/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLo
}
#.TYPE_ATTR
-ReportingDuration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ReportingDuration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
HorizontalAccuracy/accuracy DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt)
@@ -335,13 +347,13 @@ HorizontalAccuracyExt-r15/confidence-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp
VerticalAccuracyExt-r15/confidence-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
#.TYPE_ATTR
-ResponseTime/time DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ResponseTime/time DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ResponseTime/eag_1/responseTimeEarlyFix-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ResponseTime/eag_1/responseTimeEarlyFix-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ResponseTimeNB-r14/timeNB-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ResponseTimeNB-r14/timeNB-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
MessageSizeLimitNB-r14/measurementLimit-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_measurementLimit_fmt)
@@ -364,7 +376,7 @@ NeighbourMeasurementElement/rstd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rstd_fm
#.FN_FTR OTDOA-MeasQuality/error-Resolution
if (error_Resolution_tvb) {
- guint bitvalue = tvb_get_bits8(error_Resolution_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(error_Resolution_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, error_Resolution_tvb, 0, 1, bitvalue);
}
@@ -377,7 +389,7 @@ OTDOA-MeasQuality/error-Resolution TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(l
#.FN_FTR OTDOA-MeasQuality/error-Value
if (error_Value_tvb) {
- guint bitvalue = tvb_get_bits8(error_Value_tvb, 0, 5);
+ unsigned bitvalue = tvb_get_bits8(error_Value_tvb, 0, 5);
actx->created_item = proto_tree_add_uint(tree, hf_index, error_Value_tvb, 0, 1, bitvalue);
}
@@ -390,7 +402,7 @@ OTDOA-MeasQuality/error-Value TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STR
#.FN_FTR OTDOA-MeasQuality/error-NumSamples
if (error_NumSamples_tvb) {
- guint bitvalue = tvb_get_bits8(error_NumSamples_tvb, 0, 3);
+ unsigned bitvalue = tvb_get_bits8(error_NumSamples_tvb, 0, 3);
actx->created_item = proto_tree_add_uint(tree, hf_index, error_NumSamples_tvb, 0, 1, bitvalue);
}
@@ -412,7 +424,7 @@ GNSS-ReferenceTimeForOneCell/referenceTimeUnc DISPLAY=BASE_CUSTOM STRINGS=CF_FUN
#.FN_FTR GNSS-SystemTime/notificationOfLeapSecond
if (notificationOfLeapSecond_tvb) {
- guint bitvalue = tvb_get_bits8(notificationOfLeapSecond_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(notificationOfLeapSecond_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, notificationOfLeapSecond_tvb, 0, 1, bitvalue);
}
@@ -431,7 +443,7 @@ NetworkTime/frameDrift DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_frameDrift_fmt)
#.FN_FTR KlobucharModelParameter/dataID
if (dataID_tvb) {
- guint bitvalue = tvb_get_bits8(dataID_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(dataID_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, dataID_tvb, 0, 1, bitvalue);
}
@@ -537,7 +549,7 @@ GNSS-RTK-CommonObservationInfo-r15/smoothingIndicator-r15 TYPE=FT_UINT8 DISPLAY=
#.FN_FTR GNSS-RTK-CommonObservationInfo-r15/smoothingIndicator-r15
if (param_tvb) {
- guint bitvalue = tvb_get_bits8(param_tvb, 0, 1);
+ unsigned bitvalue = tvb_get_bits8(param_tvb, 0, 1);
actx->created_item = proto_tree_add_uint(tree, hf_index, param_tvb, 0, 1, bitvalue);
}
@@ -550,7 +562,7 @@ GNSS-RTK-CommonObservationInfo-r15/smoothingInterval-r15 TYPE=FT_UINT8 DISPLAY=B
#.FN_FTR GNSS-RTK-CommonObservationInfo-r15/smoothingInterval-r15
if (param_tvb) {
- guint bitvalue = tvb_get_bits8(param_tvb, 0, 3);
+ unsigned bitvalue = tvb_get_bits8(param_tvb, 0, 3);
actx->created_item = proto_tree_add_uint(tree, hf_index, param_tvb, 0, 1, bitvalue);
}
@@ -585,10 +597,10 @@ GNSS-TimeModelElement/tA2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA2_fmt)
GNSS-TimeModelElement/gnss-TO-ID STRINGS=VALS(lpp_gnss_TO_ID_vals)
#.TYPE_ATTR
-GNSS-TimeModelElement/deltaT DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+GNSS-TimeModelElement/deltaT DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-GNSS-DifferentialCorrections/dgnss-RefTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+GNSS-DifferentialCorrections/dgnss-RefTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
DGNSS-SgnTypeElement/gnss-StatusHealth STRINGS=VALS(lpp_gnss_StatusHealth_vals)
@@ -919,7 +931,7 @@ NavModelCNAV-KeplerianSet/cnavCus DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx
NavModelCNAV-KeplerianSet/cnavCuc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt)
#.TYPE_ATTR
-NavModel-GLONASS-ECEF/gloEn DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day_days
+NavModel-GLONASS-ECEF/gloEn DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_day_days)
#.FN_BODY NavModel-GLONASS-ECEF/gloP1 VAL_PTR = &gloP1_tvb HF_INDEX=-1
tvbuff_t *gloP1_tvb = NULL;
@@ -927,12 +939,12 @@ NavModel-GLONASS-ECEF/gloEn DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day
#.FN_FTR NavModel-GLONASS-ECEF/gloP1
if (gloP1_tvb) {
- guint bitvalue = tvb_get_bits8(gloP1_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(gloP1_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, gloP1_tvb, 0, 1, bitvalue);
}
#.TYPE_ATTR
-NavModel-GLONASS-ECEF/gloP1 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
+NavModel-GLONASS-ECEF/gloP1 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_minutes)
#.TYPE_ATTR
NavModel-GLONASS-ECEF/gloX DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloX_Y_Z_fmt)
@@ -995,7 +1007,7 @@ NavModel-SBAS-ECEF/sbasZgDotDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasZgDo
NavModel-BDS-KeplerianSet-r12/bdsAODE-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAODC_AODE_r12_fmt)
#.TYPE_ATTR
-NavModel-BDS-KeplerianSet-r12/bdsURAI-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_meters
+NavModel-BDS-KeplerianSet-r12/bdsURAI-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
#.TYPE_ATTR
NavModel-BDS-KeplerianSet-r12/bdsToe-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsToc_Toe_r12_fmt)
@@ -1046,10 +1058,10 @@ NavModel-BDS-KeplerianSet-r12/bdsCic-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp
NavModel-BDS-KeplerianSet-r12/bdsCis-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt)
#.TYPE_ATTR
-GNSS-DataBitAssistance/gnss-TOD DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+GNSS-DataBitAssistance/gnss-TOD DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-GNSS-DataBitAssistance/gnss-TODfrac DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+GNSS-DataBitAssistance/gnss-TODfrac DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
GNSS-AcquisitionAssistance/confidence-r10 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
@@ -1067,7 +1079,7 @@ GNSS-AcquisitionAssistElement/dopplerUncertainty STRINGS=VALS(lpp_dopplerUncerta
GNSS-AcquisitionAssistElement/codePhase DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhase_fmt)
#.TYPE_ATTR
-GNSS-AcquisitionAssistElement/intCodePhase DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+GNSS-AcquisitionAssistElement/intCodePhase DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
GNSS-AcquisitionAssistElement/codePhaseSearchWindow DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_codePhaseSearchWindow_vals_ext
@@ -1079,7 +1091,7 @@ GNSS-AcquisitionAssistElement/azimuth DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_az
GNSS-AcquisitionAssistElement/elevation DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_azimuth_elevation_fmt)
#.FN_BODY GNSS-Almanac/toa VAL_PTR = &toa
- guint32 toa, val;
+ uint32_t 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
@@ -1091,7 +1103,7 @@ GNSS-AcquisitionAssistElement/elevation DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_
toa, "%u s (%u)", val, toa);
#.FN_BODY GNSS-Almanac/eag_1/toa-ext-v1240 VAL_PTR = &toa_ext
- guint32 toa_ext, val;
+ uint32_t 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
@@ -1213,7 +1225,7 @@ AlmanacMidiAlmanacSet/midiAlmaf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlm
AlmanacMidiAlmanacSet/midiAlmaf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmaf1_fmt)
#.TYPE_ATTR
-AlmanacGLONASS-AlmanacSet/gloAlm-NA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day_days
+AlmanacGLONASS-AlmanacSet/gloAlm-NA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_day_days)
#.TYPE_ATTR
AlmanacGLONASS-AlmanacSet/gloAlmLambdaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmLambdaA_DeltaIa_fmt)
@@ -1297,7 +1309,7 @@ AlmanacBDS-AlmanacSet-r12/bdsAlmA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_b
#.FN_FTR AlmanacBDS-AlmanacSet-r12/bdsSvHealth-r12
if (bdsSvHealth_tvb) {
- guint16 bits;
+ uint16_t 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) {
@@ -1324,19 +1336,19 @@ UTC-ModelSet1/gnss-Utc-A0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fm
UTC-ModelSet1/gnss-Utc-Tot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_Tot_fmt)
#.TYPE_ATTR
-UTC-ModelSet1/gnss-Utc-WNt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_weeks
+UTC-ModelSet1/gnss-Utc-WNt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_week_weeks)
#.TYPE_ATTR
-UTC-ModelSet1/gnss-Utc-DeltaTls DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet1/gnss-Utc-DeltaTls DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-UTC-ModelSet1/gnss-Utc-WNlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_weeks
+UTC-ModelSet1/gnss-Utc-WNlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_week_weeks)
#.TYPE_ATTR
-UTC-ModelSet1/gnss-Utc-DN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day_days
+UTC-ModelSet1/gnss-Utc-DN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_day_days)
#.TYPE_ATTR
-UTC-ModelSet1/gnss-Utc-DeltaTlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet1/gnss-Utc-DeltaTlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
UTC-ModelSet2/utcA0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA0_fmt)
@@ -1348,16 +1360,16 @@ UTC-ModelSet2/utcA1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA1_fmt)
UTC-ModelSet2/utcA2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA2_fmt)
#.TYPE_ATTR
-UTC-ModelSet2/utcDeltaTls DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet2/utcDeltaTls DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
UTC-ModelSet2/utcTot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_TimeModelRefTime_fmt)
#.TYPE_ATTR
-UTC-ModelSet2/utcWNot DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_weeks
+UTC-ModelSet2/utcWNot DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_week_weeks)
#.TYPE_ATTR
-UTC-ModelSet2/utcWNlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_weeks
+UTC-ModelSet2/utcWNlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_week_weeks)
#.FN_BODY UTC-ModelSet2/utcDN VAL_PTR = &utcDN_tvb HF_INDEX=-1
tvbuff_t *utcDN_tvb = NULL;
@@ -1365,18 +1377,18 @@ UTC-ModelSet2/utcWNlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_wee
#.FN_FTR UTC-ModelSet2/utcDN
if (utcDN_tvb) {
- guint bitvalue = tvb_get_bits8(utcDN_tvb, 0, 4);
+ unsigned bitvalue = tvb_get_bits8(utcDN_tvb, 0, 4);
actx->created_item = proto_tree_add_uint(tree, hf_index, utcDN_tvb, 0, 1, bitvalue);
}
#.TYPE_ATTR
-UTC-ModelSet2/utcDN TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day_days
+UTC-ModelSet2/utcDN TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_day_days)
#.TYPE_ATTR
-UTC-ModelSet2/utcDeltaTlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet2/utcDeltaTlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-UTC-ModelSet3/nA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day_days
+UTC-ModelSet3/nA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_day_days)
#.TYPE_ATTR
UTC-ModelSet3/tauC DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tauC_fmt)
@@ -1393,7 +1405,7 @@ UTC-ModelSet3/b2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_b2_fmt)
#.FN_FTR UTC-ModelSet3/kp
if (kp_tvb) {
- guint bitvalue = tvb_get_bits8(kp_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(kp_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, kp_tvb, 0, 1, bitvalue);
}
@@ -1410,19 +1422,19 @@ UTC-ModelSet4/utcA0wnt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fmt)
UTC-ModelSet4/utcTot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_Tot_fmt)
#.TYPE_ATTR
-UTC-ModelSet4/utcWNt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_weeks
+UTC-ModelSet4/utcWNt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_week_weeks)
#.TYPE_ATTR
-UTC-ModelSet4/utcDeltaTls DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet4/utcDeltaTls DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-UTC-ModelSet4/utcWNlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_weeks
+UTC-ModelSet4/utcWNlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_week_weeks)
#.TYPE_ATTR
-UTC-ModelSet4/utcDN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day_days
+UTC-ModelSet4/utcDN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_day_days)
#.TYPE_ATTR
-UTC-ModelSet4/utcDeltaTlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet4/utcDeltaTlsf DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
UTC-ModelSet4/utcStandardID TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_utcStandardID_vals)
@@ -1434,19 +1446,19 @@ UTC-ModelSet5-r12/utcA0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_
UTC-ModelSet5-r12/utcA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A1_fmt)
#.TYPE_ATTR
-UTC-ModelSet5-r12/utcDeltaTls-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet5-r12/utcDeltaTls-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-UTC-ModelSet5-r12/utcWNlsf-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_week_weeks
+UTC-ModelSet5-r12/utcWNlsf-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_week_weeks)
#.TYPE_ATTR
-UTC-ModelSet5-r12/utcDN-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_day_days
+UTC-ModelSet5-r12/utcDN-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_day_days)
#.TYPE_ATTR
-UTC-ModelSet5-r12/utcDeltaTlsf-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTC-ModelSet5-r12/utcDeltaTlsf-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-BDS-DifferentialCorrections-r12/dbds-RefTime-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+BDS-DifferentialCorrections-r12/dbds-RefTime-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
DBDS-CorrectionElement-r12/bds-UDREI-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_UDREI_vals_ext
@@ -1458,7 +1470,7 @@ DBDS-CorrectionElement-r12/bds-RURAI-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT
DBDS-CorrectionElement-r12/bds-ECC-DeltaT-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bds_ECC_DeltaT_r12_fmt)
#.TYPE_ATTR
-BDS-GridModelParameter-r12/bds-RefTime-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+BDS-GridModelParameter-r12/bds-RefTime-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
GridIonElement-r12/dt-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bds_GridIonElement_dt_r12_fmt)
@@ -1467,13 +1479,13 @@ GridIonElement-r12/dt-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bds_GridIonEle
GridIonElement-r12/givei-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_givei_vals_ext
#.TYPE_ATTR
-GNSS-RTK-SatelliteDataElement-r15/integer-ms-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+GNSS-RTK-SatelliteDataElement-r15/integer-ms-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-GNSS-RTK-SatelliteDataElement-r15/rough-range-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+GNSS-RTK-SatelliteDataElement-r15/rough-range-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-GNSS-RTK-SatelliteDataElement-r15/rough-phase-range-rate-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_meter_sec
+GNSS-RTK-SatelliteDataElement-r15/rough-phase-range-rate-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meter_sec)
#.TYPE_ATTR
GNSS-RTK-SatelliteSignalDataElement-r15/fine-PseudoRange-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_fine_PseudoRange_r15_fmt)
@@ -1581,16 +1593,16 @@ SSR-CodeBiasSignalElement-r15/codeBias-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(l
proto_item_append_text(actx->created_item, " (units of 30 mns for glonass, hours otherwise)");
#.TYPE_ATTR
-GNSS-DataBitAssistanceReq/gnss-TOD-Req DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+GNSS-DataBitAssistanceReq/gnss-TOD-Req DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-GNSS-DataBitAssistanceReq/gnss-TOD-FracReq DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+GNSS-DataBitAssistanceReq/gnss-TOD-FracReq DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
GNSS-DataBitAssistanceReq/dataBitInterval TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_dataBitInterval_vals_ext
#.TYPE_ATTR
-MeasurementReferenceTime/gnss-TOD-msec DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+MeasurementReferenceTime/gnss-TOD-msec DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
MeasurementReferenceTime/gnss-TOD-frac DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_fractionalSecondsFromFrameStructureStart_fmt)
@@ -1599,13 +1611,13 @@ MeasurementReferenceTime/gnss-TOD-frac DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_f
MeasurementReferenceTime/gnss-TOD-unc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referenceTimeUnc_fmt)
#.TYPE_ATTR
-MeasurementReferenceTime/networkTime/gSM/deltaGNSS-TOD DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+MeasurementReferenceTime/networkTime/gSM/deltaGNSS-TOD DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-GNSS-SgnMeasElement/gnss-CodePhaseAmbiguity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+GNSS-SgnMeasElement/gnss-CodePhaseAmbiguity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-GNSS-SatMeasElement/cNo DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbhz
+GNSS-SatMeasElement/cNo DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbhz)
#.TYPE_ATTR
GNSS-SatMeasElement/carrierQualityInd TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_carrierQualityInd_vals)
@@ -1614,7 +1626,7 @@ GNSS-SatMeasElement/carrierQualityInd TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VAL
GNSS-SatMeasElement/codePhase DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_GNSS_SatMeas_codePhase_fmt)
#.TYPE_ATTR
-GNSS-SatMeasElement/integerCodePhase DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+GNSS-SatMeasElement/integerCodePhase DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
GNSS-SatMeasElement/codePhaseRMSError DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhaseRMSError_fmt)
@@ -1635,7 +1647,7 @@ GNSS-SatMeasElement/eag_1/adrRMSerror-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lp
GNSS-SatMeasElement/eag_1/delta-codePhase-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_GNSS_SatMeas_delta_codePhase_r15_fmt)
#.FN_BODY GNSS-ID/gnss-id VAL_PTR = &gnss_id
- guint32 gnss_id;
+ uint32_t gnss_id;
%(DEFAULT_BODY)s
actx->private_data = GUINT_TO_POINTER(gnss_id);
@@ -1643,7 +1655,7 @@ GNSS-SatMeasElement/eag_1/delta-codePhase-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUN
GNSS-PeriodicControlParam-r15/deliveryAmount-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_deliveryAmount_r15_fmt)
#.TYPE_ATTR
-GNSS-PeriodicControlParam-r15/deliveryInterval-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+GNSS-PeriodicControlParam-r15/deliveryInterval-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
MeasuredResultsElement/rsrp-Result DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rsrp_Result_fmt)
@@ -1673,13 +1685,13 @@ MBS-BeaconMeasElement-r13/codePhase-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_
MBS-BeaconMeasElement-r13/codePhaseRMSError-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhaseRMSError_fmt)
#.TYPE_ATTR
-MBS-BeaconMeasElement-r13/eag_1/rssi-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+MBS-BeaconMeasElement-r13/eag_1/rssi-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-Sensor-MeasurementInformation-r13/uncompensatedBarometricPressure-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_pa
+Sensor-MeasurementInformation-r13/uncompensatedBarometricPressure-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_pa)
#.TYPE_ATTR
-Sensor-MeasurementInformation-r13/eag_1/uncertainty-r14/range-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_pa
+Sensor-MeasurementInformation-r13/eag_1/uncertainty-r14/range-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_pa)
#.TYPE_ATTR
Sensor-MeasurementInformation-r13/eag_1/uncertainty-r14/confidence-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
@@ -1703,11 +1715,11 @@ Displacement-r15/verticalDistance-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_1_
Displacement-r15/verticalUncConfidence-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt)
#.TYPE_ATTR
-UTC-Time-r15/utcTime-ms-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+UTC-Time-r15/utcTime-ms-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.FN_BODY MBS-AlmanacAssistance-r14/transmitterLatitude-r14 VAL_PTR = &transmitterLatitude_tvb HF_INDEX=-1
tvbuff_t *transmitterLatitude_tvb = NULL;
- guint32 val;
+ uint32_t val;
%(DEFAULT_BODY)s
val = tvb_get_bits32(transmitterLatitude_tvb, 0, 26, ENC_BIG_ENDIAN);
@@ -1718,7 +1730,7 @@ MBS-AlmanacAssistance-r14/transmitterLatitude-r14 TYPE=FT_UINT32 DISPLAY=BASE_CU
#.FN_BODY MBS-AlmanacAssistance-r14/transmitterLongitude-r14 VAL_PTR = &transmitterLongitude_tvb HF_INDEX=-1
tvbuff_t *transmitterLongitude_tvb = NULL;
- guint32 val;
+ uint32_t val;
%(DEFAULT_BODY)s
val = tvb_get_bits32(transmitterLongitude_tvb, 0, 27, ENC_BIG_ENDIAN);
@@ -1729,7 +1741,7 @@ MBS-AlmanacAssistance-r14/transmitterLongitude-r14 TYPE=FT_UINT32 DISPLAY=BASE_C
#.FN_BODY MBS-AlmanacAssistance-r14/transmitterAltitude-r14 VAL_PTR = &transmitterAltitude_tvb HF_INDEX=-1
tvbuff_t *transmitterAltitude_tvb = NULL;
- guint32 val;
+ uint32_t val;
%(DEFAULT_BODY)s
val = tvb_get_bits16(transmitterAltitude_tvb, 0, 15, ENC_BIG_ENDIAN);
@@ -1739,10 +1751,10 @@ MBS-AlmanacAssistance-r14/transmitterLongitude-r14 TYPE=FT_UINT32 DISPLAY=BASE_C
MBS-AlmanacAssistance-r14/transmitterAltitude-r14 TYPE=FT_UINT16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_transmitterAltitude_fmt)
#.TYPE_ATTR
-MBS-AlmanacAssistance-r14/timeCorrection-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_nanoseconds
+MBS-AlmanacAssistance-r14/timeCorrection-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_nanoseconds)
#.TYPE_ATTR
-MBS-AcquisitionAssistance-r14/freq-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_hz
+MBS-AcquisitionAssistance-r14/freq-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_hz)
#.TYPE_ATTR
Sensor-AssistanceDataList-r14/refPressure-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_refPressure_fmt)
@@ -1760,10 +1772,10 @@ Sensor-AssistanceDataList-r14/eag_1/period-v1520/referencePressureRate-v1520 DIS
proto_item_append_text(actx->created_item, "Pa/Km");
#.TYPE_ATTR
-PressureValidityArea-v1520/validityAreaWidth-v1520 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_km
+PressureValidityArea-v1520/validityAreaWidth-v1520 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_km)
#.TYPE_ATTR
-PressureValidityArea-v1520/vvalidityAreaHeight-v1520 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_km
+PressureValidityArea-v1520/vvalidityAreaHeight-v1520 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_km)
#.TYPE_ATTR
PressureValidityPeriod-v1520/beginTimeAlt-v1520 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt)
@@ -1772,7 +1784,7 @@ PressureValidityPeriod-v1520/beginTimeAlt-v1520 DISPLAY=BASE_CUSTOM STRINGS=CF_F
PressureValidityPeriod-v1520/duration-v1520 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt)
#.TYPE_ATTR
-WLAN-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+WLAN-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
WLAN-AP-Identifier-r13/bssid-r13 TYPE=FT_ETHER
@@ -1796,13 +1808,13 @@ BT-MeasurementElement-r13/btAddr-r13 TYPE=FT_ETHER DISPLAY=BASE_NONE
actx->created_item = proto_tree_add_item(tree, hf_index, btAddr_tvb, 0, 6, ENC_NA);
#.TYPE_ATTR
-BT-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+BT-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.FN_HDR CipheringKeyData-r15
- lpp_get_private_data(actx->pinfo)->is_ciphered = TRUE;
+ lpp_get_private_data(actx->pinfo)->is_ciphered = true;
#.FN_HDR SegmentationInfo-r15
- lpp_get_private_data(actx->pinfo)->is_segmented = TRUE;
+ lpp_get_private_data(actx->pinfo)->is_segmented = true;
#.FN_BODY AssistanceDataSIBelement-r15/assistanceDataElement-r15 VAL_PTR = &assist_data_sib_elem_tvb
tvbuff_t *assist_data_sib_elem_tvb = NULL;
@@ -1844,6 +1856,12 @@ BT-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&un
case LPP_POS_SIB_TYPE_1_10:
dissect_GNSS_Integrity_ServiceAlert_r17_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
+ case LPP_POS_SIB_TYPE_1_11:
+ dissect_GNSS_LOS_NLOS_GridPoints_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case LPP_POS_SIB_TYPE_1_12:
+ dissect_GNSS_SSR_IOD_Update_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
case LPP_POS_SIB_TYPE_2_1:
dissect_GNSS_TimeModelList_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
@@ -1895,15 +1913,24 @@ BT-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&un
case LPP_POS_SIB_TYPE_2_17:
dissect_GNSS_SSR_OrbitCorrections_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
+ case LPP_POS_SIB_TYPE_2_17a:
+ dissect_GNSS_SSR_OrbitCorrectionsSet2_r17_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
case LPP_POS_SIB_TYPE_2_18:
dissect_GNSS_SSR_ClockCorrections_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
+ case LPP_POS_SIB_TYPE_2_18a:
+ dissect_GNSS_SSR_ClockCorrectionsSet2_r17_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
case LPP_POS_SIB_TYPE_2_19:
dissect_GNSS_SSR_CodeBias_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
case LPP_POS_SIB_TYPE_2_20:
dissect_GNSS_SSR_URA_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
+ case LPP_POS_SIB_TYPE_2_20a:
+ dissect_GNSS_SSR_URA_Set2_r17_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
case LPP_POS_SIB_TYPE_2_21:
dissect_GNSS_SSR_PhaseBias_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
@@ -1919,6 +1946,12 @@ BT-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&un
case LPP_POS_SIB_TYPE_2_25:
dissect_NavIC_GridModelParameter_r16_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
+ case LPP_POS_SIB_TYPE_2_26:
+ dissect_GNSS_LOS_NLOS_GriddedIndications_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case LPP_POS_SIB_TYPE_2_27:
+ dissect_GNSS_SSR_SatellitePCVResiduals_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
case LPP_POS_SIB_TYPE_3_1:
dissect_OTDOA_UE_Assisted_r15_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
@@ -1946,6 +1979,21 @@ BT-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&un
case LPP_POS_SIB_TYPE_6_6:
dissect_NR_On_Demand_DL_PRS_Configurations_r17_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
break;
+ case LPP_POS_SIB_TYPE_6_7:
+ dissect_NR_PRU_DL_Info_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case LPP_POS_SIB_TYPE_7_1:
+ dissect_NR_IntegrityRiskParameters_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case LPP_POS_SIB_TYPE_7_2:
+ dissect_NR_IntegrityServiceParameters_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case LPP_POS_SIB_TYPE_7_3:
+ dissect_NR_IntegrityServiceAlert_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
+ case LPP_POS_SIB_TYPE_7_4:
+ dissect_NR_IntegrityParameters_r18_PDU(assist_data_sib_elem_tvb, actx->pinfo, subtree, NULL);
+ break;
default:
break;
}
diff --git a/epan/dissectors/asn1/lpp/packet-lpp-template.c b/epan/dissectors/asn1/lpp/packet-lpp-template.c
index 93fb2645..8c53fc3b 100644
--- a/epan/dissectors/asn1/lpp/packet-lpp-template.c
+++ b/epan/dissectors/asn1/lpp/packet-lpp-template.c
@@ -1,6 +1,6 @@
/* packet-lpp.c
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
- * Copyright 2011-2023 Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2011-2024 Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 37.355 version 17.5.0 Release 17
+ * Ref 3GPP TS 37.355 version 18.2.0 Release 18
* http://www.3gpp.org
*/
@@ -20,6 +20,8 @@
#include <epan/asn1.h>
#include <epan/tfs.h>
#include <epan/proto_data.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-lpp.h"
@@ -32,31 +34,31 @@ void proto_register_lpp(void);
void proto_reg_handoff_lpp(void);
/* Initialize the protocol and registered fields */
-static int proto_lpp = -1;
+static int proto_lpp;
#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 int hf_lpp_AssistanceDataSIBelement_r15_PDU = -1;
+static int hf_lpp_svHealthExt_v1240_e5bhs;
+static int hf_lpp_svHealthExt_v1240_e1_bhs;
+static int hf_lpp_kepSV_StatusINAV_e5bhs;
+static int hf_lpp_kepSV_StatusINAV_e1_bhs;
+static int hf_lpp_kepSV_StatusFNAV_e5ahs;
+static int hf_lpp_bdsSvHealth_r12_sat_clock;
+static int hf_lpp_bdsSvHealth_r12_b1i;
+static int hf_lpp_bdsSvHealth_r12_b2i;
+static int hf_lpp_bdsSvHealth_r12_nav;
+static int hf_lpp_AssistanceDataSIBelement_r15_PDU;
-static dissector_handle_t lppe_handle = NULL;
+static dissector_handle_t lppe_handle;
-static guint32 lpp_epdu_id = -1;
+static uint32_t lpp_epdu_id = -1;
/* Initialize the subtree pointers */
-static gint ett_lpp = -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;
-static gint ett_lpp_assistanceDataElement_r15 = -1;
+static int ett_lpp;
+static int ett_lpp_svHealthExt_v1240;
+static int ett_kepSV_StatusINAV;
+static int ett_kepSV_StatusFNAV;
+static int ett_lpp_bdsSvHealth_r12;
+static int ett_lpp_assistanceDataElement_r15;
#include "packet-lpp-ett.c"
/* Include constants */
@@ -69,8 +71,8 @@ static const value_string lpp_ePDU_ID_vals[] = {
struct lpp_private_data {
lpp_pos_sib_type_t pos_sib_type;
- gboolean is_ciphered;
- gboolean is_segmented;
+ bool is_ciphered;
+ bool is_segmented;
};
static struct lpp_private_data*
@@ -129,25 +131,37 @@ static int dissect_NR_UEB_TRP_RTD_Info_r16_PDU(tvbuff_t *tvb _U_, packet_info *p
static int dissect_NR_TRP_BeamAntennaInfo_r17_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_NR_DL_PRS_TRP_TEG_Info_r17_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_NR_On_Demand_DL_PRS_Configurations_r17_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
-
-static void
-lpp_degreesLatitude_fmt(gchar *s, guint32 v)
+static int dissect_GNSS_SSR_OrbitCorrectionsSet2_r17_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_GNSS_SSR_ClockCorrectionsSet2_r17_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_GNSS_SSR_URA_Set2_r17_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_GNSS_LOS_NLOS_GridPoints_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_GNSS_SSR_IOD_Update_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_GNSS_LOS_NLOS_GriddedIndications_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_GNSS_SSR_SatellitePCVResiduals_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_NR_PRU_DL_Info_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_NR_IntegrityRiskParameters_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_NR_IntegrityServiceParameters_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_NR_IntegrityServiceAlert_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_NR_IntegrityParameters_r18_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+
+static void
+lpp_degreesLatitude_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
((float)v/8388607.0)*90, v);
}
static void
-lpp_degreesLongitude_fmt(gchar *s, guint32 v)
+lpp_degreesLongitude_fmt(char *s, uint32_t v)
{
- gint32 longitude = (gint32) v;
+ int32_t longitude = (int32_t) v;
snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
((float)longitude/8388608.0)*180, longitude);
}
static void
-lpp_uncertainty_fmt(gchar *s, guint32 v)
+lpp_uncertainty_fmt(char *s, uint32_t v)
{
double uncertainty = 10*(pow(1.1, (double)v)-1);
@@ -159,13 +173,13 @@ lpp_uncertainty_fmt(gchar *s, guint32 v)
}
static void
-lpp_angle_fmt(gchar *s, guint32 v)
+lpp_angle_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%u degrees (%u)", 2*v, v);
}
static void
-lpp_confidence_fmt(gchar *s, guint32 v)
+lpp_confidence_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "no information (0)");
@@ -175,7 +189,7 @@ lpp_confidence_fmt(gchar *s, guint32 v)
}
static void
-lpp_1_10_degrees_fmt(gchar *s, guint32 v)
+lpp_1_10_degrees_fmt(char *s, uint32_t v)
{
double val = (double)v/10;
@@ -183,7 +197,7 @@ lpp_1_10_degrees_fmt(gchar *s, guint32 v)
}
static void
-lpp_1_100_m_fmt(gchar *s, guint32 v)
+lpp_1_100_m_fmt(char *s, uint32_t v)
{
double val = (double)v/100;
@@ -191,19 +205,19 @@ lpp_1_100_m_fmt(gchar *s, guint32 v)
}
static void
-lpp_measurementLimit_fmt(gchar *s, guint32 v)
+lpp_measurementLimit_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%u octets (%u)", 100*v, v);
}
static void
-lpp_altitude_fmt(gchar *s, guint32 v)
+lpp_altitude_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%um", v);
}
static void
-lpp_uncertaintyAltitude_fmt(gchar *s, guint32 v)
+lpp_uncertaintyAltitude_fmt(char *s, uint32_t v)
{
double uncertainty = 45*(pow(1.025, (double)v)-1);
@@ -211,33 +225,33 @@ lpp_uncertaintyAltitude_fmt(gchar *s, guint32 v)
}
static void
-lpp_radius_fmt(gchar *s, guint32 v)
+lpp_radius_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%um (%u)", 5*v, v);
}
static void
-lpp_nr_LTE_fineTiming_Offset_fmt(gchar *s, guint32 v)
+lpp_nr_LTE_fineTiming_Offset_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
}
static void
-lpp_expectedRSTD_fmt(gchar *s, guint32 v)
+lpp_expectedRSTD_fmt(char *s, uint32_t v)
{
- gint32 rstd = 3*((gint32)v-8192);
+ int32_t rstd = 3*((int32_t)v-8192);
snprintf(s, ITEM_LABEL_LENGTH, "%dTs (%u)", rstd, v);
}
static void
-lpp_expectedRSTD_Uncertainty_fmt(gchar *s, guint32 v)
+lpp_expectedRSTD_Uncertainty_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%uTs (%u)", 3*v, v);
}
static void
-lpp_rstd_fmt(gchar *s, guint32 v)
+lpp_rstd_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSTD < -15391Ts (0)");
@@ -314,15 +328,15 @@ static const value_string lpp_error_NumSamples_vals[] = {
};
static void
-lpp_relativeTimeDifference_fmt(gchar *s, guint32 v)
+lpp_relativeTimeDifference_fmt(char *s, uint32_t v)
{
- double rtd = (double)((gint32)v)*0.5;
+ double rtd = (double)((int32_t)v)*0.5;
- snprintf(s, ITEM_LABEL_LENGTH, "%.1f Ts (%d)", rtd, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1f Ts (%d)", rtd, (int32_t)v);
}
static void
-lpp_referenceTimeUnc_fmt(gchar *s, guint32 v)
+lpp_referenceTimeUnc_fmt(char *s, uint32_t v)
{
double referenceTimeUnc = 0.5*(pow(1.14, (double)v)-1);
@@ -337,7 +351,7 @@ static const value_string lpp_kp_vals[] = {
};
static void
-lpp_fractionalSecondsFromFrameStructureStart_fmt(gchar *s, guint32 v)
+lpp_fractionalSecondsFromFrameStructureStart_fmt(char *s, uint32_t v)
{
float frac = ((float)v)/4;
@@ -345,11 +359,11 @@ lpp_fractionalSecondsFromFrameStructureStart_fmt(gchar *s, guint32 v)
}
static void
-lpp_frameDrift_fmt(gchar *s, guint32 v)
+lpp_frameDrift_fmt(char *s, uint32_t v)
{
- double drift = (double)((gint32)v)*pow(2, -30);
+ double drift = (double)((int32_t)v)*pow(2, -30);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", drift, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", drift, (int32_t)v);
}
static const value_string lpp_dataID_vals[] = {
@@ -360,55 +374,55 @@ static const value_string lpp_dataID_vals[] = {
};
static void
-lpp_alpha0_fmt(gchar *s, guint32 v)
+lpp_alpha0_fmt(char *s, uint32_t v)
{
- double alpha = (double)((gint32)v)*pow(2, -30);
+ double alpha = (double)((int32_t)v)*pow(2, -30);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", alpha, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", alpha, (int32_t)v);
}
static void
-lpp_alpha1_fmt(gchar *s, guint32 v)
+lpp_alpha1_fmt(char *s, uint32_t v)
{
- double alpha = (double)((gint32)v)*pow(2, -27);
+ double alpha = (double)((int32_t)v)*pow(2, -27);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", alpha, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", alpha, (int32_t)v);
}
static void
-lpp_alpha2_3_fmt(gchar *s, guint32 v)
+lpp_alpha2_3_fmt(char *s, uint32_t v)
{
- double alpha = (double)((gint32)v)*pow(2, -24);
+ double alpha = (double)((int32_t)v)*pow(2, -24);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", alpha, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", alpha, (int32_t)v);
}
static void
-lpp_beta0_fmt(gchar *s, guint32 v)
+lpp_beta0_fmt(char *s, uint32_t v)
{
- double beta = (double)((gint32)v)*pow(2, 11);
+ double beta = (double)((int32_t)v)*pow(2, 11);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", beta, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", beta, (int32_t)v);
}
static void
-lpp_beta1_fmt(gchar *s, guint32 v)
+lpp_beta1_fmt(char *s, uint32_t v)
{
- double beta = (double)((gint32)v)*pow(2, 14);
+ double beta = (double)((int32_t)v)*pow(2, 14);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", beta, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", beta, (int32_t)v);
}
static void
-lpp_beta2_3_fmt(gchar *s, guint32 v)
+lpp_beta2_3_fmt(char *s, uint32_t v)
{
- double beta = (double)((gint32)v)*pow(2, 16);
+ double beta = (double)((int32_t)v)*pow(2, 16);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", beta, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/semi-circle (%d)", beta, (int32_t)v);
}
static void
-lpp_ai0_fmt(gchar *s, guint32 v)
+lpp_ai0_fmt(char *s, uint32_t v)
{
double ai = (double)v*pow(2, -2);
@@ -416,7 +430,7 @@ lpp_ai0_fmt(gchar *s, guint32 v)
}
static void
-lpp_ai1_fmt(gchar *s, guint32 v)
+lpp_ai1_fmt(char *s, uint32_t v)
{
double ai = (double)v*pow(2, -8);
@@ -424,7 +438,7 @@ lpp_ai1_fmt(gchar *s, guint32 v)
}
static void
-lpp_ai2_fmt(gchar *s, guint32 v)
+lpp_ai2_fmt(char *s, uint32_t v)
{
double ai = (double)v*pow(2, -15);
@@ -432,53 +446,53 @@ lpp_ai2_fmt(gchar *s, guint32 v)
}
static void
-lpp_teop_fmt(gchar *s, guint32 v)
+lpp_teop_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
}
static void
-lpp_pmX_Y_fmt(gchar *s, guint32 v)
+lpp_pmX_Y_fmt(char *s, uint32_t v)
{
- double pm = (double)((gint32)v)*pow(2, -20);
+ double pm = (double)((int32_t)v)*pow(2, -20);
- snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds (%d)", pm, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds (%d)", pm, (int32_t)v);
}
static void
-lpp_pmX_Ydot_fmt(gchar *s, guint32 v)
+lpp_pmX_Ydot_fmt(char *s, uint32_t v)
{
- double pmDot = (double)((gint32)v)*pow(2, -21);
+ double pmDot = (double)((int32_t)v)*pow(2, -21);
- snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds/day (%d)", pmDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g arc-seconds/day (%d)", pmDot, (int32_t)v);
}
static void
-lpp_deltaUT1_fmt(gchar *s, guint32 v)
+lpp_deltaUT1_fmt(char *s, uint32_t v)
{
- double deltaUT1 = (double)((gint32)v)*pow(2, -24);
+ double deltaUT1 = (double)((int32_t)v)*pow(2, -24);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", deltaUT1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", deltaUT1, (int32_t)v);
}
static void
-lpp_deltaUT1dot_fmt(gchar *s, guint32 v)
+lpp_deltaUT1dot_fmt(char *s, uint32_t v)
{
- double deltaUT1dot = (double)((gint32)v)*pow(2, -25);
+ double deltaUT1dot = (double)((int32_t)v)*pow(2, -25);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/day (%d)", deltaUT1dot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/day (%d)", deltaUT1dot, (int32_t)v);
}
static void
-lpp_1_1000m_64_fmt(gchar *s, uint64_t v)
+lpp_1_1000m_64_fmt(char *s, uint64_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%gm (%"PRId64")", (double)v/1000, (int64_t)v);
}
static void
-lpp_1_1000m_32_fmt(gchar *s, guint32 v)
+lpp_1_1000m_32_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (double)v/1000, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (double)v/1000, (int32_t)v);
}
static const value_string lpp_clockSteeringIndicator_vals[] = {
@@ -516,40 +530,40 @@ static const value_string lpp_smoothingInterval_r15_vals[] = {
};
static void
-lpp_aux_master_delta_fmt(gchar *s, guint32 v)
+lpp_aux_master_delta_fmt(char *s, uint32_t v)
{
- double delta = (double)((gint32)v)*25*pow(10, -6);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", delta, (gint32)v);
+ double delta = (double)((int32_t)v)*25*pow(10, -6);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", delta, (int32_t)v);
}
static void
-lpp_gnss_TimeModelRefTime_fmt(gchar *s, guint32 v)
+lpp_gnss_TimeModelRefTime_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", v*16, v);
}
static void
-lpp_tA0_fmt(gchar *s, guint32 v)
+lpp_tA0_fmt(char *s, uint32_t v)
{
- double tA0 = (double)((gint32)v)*pow(2, -35);
+ double tA0 = (double)((int32_t)v)*pow(2, -35);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", tA0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", tA0, (int32_t)v);
}
static void
-lpp_tA1_fmt(gchar *s, guint32 v)
+lpp_tA1_fmt(char *s, uint32_t v)
{
- double tA1 = (double)((gint32)v)*pow(2, -51);
+ double tA1 = (double)((int32_t)v)*pow(2, -51);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", tA1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", tA1, (int32_t)v);
}
static void
-lpp_tA2_fmt(gchar *s, guint32 v)
+lpp_tA2_fmt(char *s, uint32_t v)
{
- double tA2 = (double)((gint32)v)*pow(2, -68);
+ double tA2 = (double)((int32_t)v)*pow(2, -68);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", tA2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", tA2, (int32_t)v);
}
static const value_string lpp_gnss_TO_ID_vals[] = {
@@ -581,19 +595,19 @@ static const value_string lpp_udre_vals[] = {
};
static void
-lpp_pseudoRangeCor_fmt(gchar *s, guint32 v)
+lpp_pseudoRangeCor_fmt(char *s, uint32_t v)
{
- double pseudoRangeCor = ((double)(gint32)v)*0.32;
+ double pseudoRangeCor = ((double)(int32_t)v)*0.32;
- snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", pseudoRangeCor, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", pseudoRangeCor, (int32_t)v);
}
static void
-lpp_rangeRateCor_fmt(gchar *s, guint32 v)
+lpp_rangeRateCor_fmt(char *s, uint32_t v)
{
- double rangeRateCor = ((double)(gint32)v)*0.032;
+ double rangeRateCor = ((double)(int32_t)v)*0.032;
- snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", rangeRateCor, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", rangeRateCor, (int32_t)v);
}
static const value_string lpp_udreGrowthRate_vals[] = {
@@ -628,45 +642,45 @@ static const value_string lpp_signal_health_status_vals[] = {
{ 0, NULL}
};
static void
-lpp_stanClockToc_fmt(gchar *s, guint32 v)
+lpp_stanClockToc_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%um/s (%u)", 60*v, v);
}
static void
-lpp_stanClockAF2_fmt(gchar *s, guint32 v)
+lpp_stanClockAF2_fmt(char *s, uint32_t v)
{
- double stanClockAF2 = (double)((gint32)v)*pow(2, -59);
+ double stanClockAF2 = (double)((int32_t)v)*pow(2, -59);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", stanClockAF2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", stanClockAF2, (int32_t)v);
}
static void
-lpp_stanClockAF1_fmt(gchar *s, guint32 v)
+lpp_stanClockAF1_fmt(char *s, uint32_t v)
{
- double stanClockAF1 = (double)((gint32)v)*pow(2, -46);
+ double stanClockAF1 = (double)((int32_t)v)*pow(2, -46);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", stanClockAF1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", stanClockAF1, (int32_t)v);
}
static void
-lpp_stanClockAF0_fmt(gchar *s, guint32 v)
+lpp_stanClockAF0_fmt(char *s, uint32_t v)
{
- double stanClockAF0 = (double)((gint32)v)*pow(2, -34);
+ double stanClockAF0 = (double)((int32_t)v)*pow(2, -34);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", stanClockAF0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", stanClockAF0, (int32_t)v);
}
static void
-lpp_stanClockTgd_fmt(gchar *s, guint32 v)
+lpp_stanClockTgd_fmt(char *s, uint32_t v)
{
- double stanClockTgd = (double)((gint32)v)*pow(2, -32);
+ double stanClockTgd = (double)((int32_t)v)*pow(2, -32);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", stanClockTgd, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", stanClockTgd, (int32_t)v);
}
static void
-lpp_sisa_fmt(gchar *s, guint32 v)
+lpp_sisa_fmt(char *s, uint32_t v)
{
if (v < 50) {
snprintf(s, ITEM_LABEL_LENGTH, "%ucm (%u)", v, v);
@@ -690,105 +704,105 @@ static const value_string lpp_stanModelID_vals[] = {
};
static void
-lpp_navToc_fmt(gchar *s, guint32 v)
+lpp_navToc_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
}
static void
-lpp_navaf2_fmt(gchar *s, guint32 v)
+lpp_navaf2_fmt(char *s, uint32_t v)
{
- double navaf2 = (double)((gint32)v)*pow(2, -55);
+ double navaf2 = (double)((int32_t)v)*pow(2, -55);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", navaf2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", navaf2, (int32_t)v);
}
static void
-lpp_navaf1_fmt(gchar *s, guint32 v)
+lpp_navaf1_fmt(char *s, uint32_t v)
{
- double navaf1 = (double)((gint32)v)*pow(2, -43);
+ double navaf1 = (double)((int32_t)v)*pow(2, -43);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navaf1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navaf1, (int32_t)v);
}
static void
-lpp_navaf0_navTgd_fmt(gchar *s, guint32 v)
+lpp_navaf0_navTgd_fmt(char *s, uint32_t v)
{
- double navaf0_navTgd = (double)((gint32)v)*pow(2, -31);
+ double navaf0_navTgd = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navaf0_navTgd, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navaf0_navTgd, (int32_t)v);
}
static void
-lpp_cnavToc_cnavTop_fmt(gchar *s, guint32 v)
+lpp_cnavToc_cnavTop_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 300*v, v);
}
static void
-lpp_cnavAf2_fmt(gchar *s, guint32 v)
+lpp_cnavAf2_fmt(char *s, uint32_t v)
{
- double cnavAf2 = (double)((gint32)v)*pow(2, -60);
+ double cnavAf2 = (double)((int32_t)v)*pow(2, -60);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", cnavAf2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", cnavAf2, (int32_t)v);
}
static void
-lpp_cnavAf1_fmt(gchar *s, guint32 v)
+lpp_cnavAf1_fmt(char *s, uint32_t v)
{
- double cnavAf1 = (double)((gint32)v)*pow(2, -48);
+ double cnavAf1 = (double)((int32_t)v)*pow(2, -48);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", cnavAf1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", cnavAf1, (int32_t)v);
}
static void
-lpp_cnavX_fmt(gchar *s, guint32 v)
+lpp_cnavX_fmt(char *s, uint32_t v)
{
- double cnavX = (double)((gint32)v)*pow(2, -35);
+ double cnavX = (double)((int32_t)v)*pow(2, -35);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", cnavX, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", cnavX, (int32_t)v);
}
static void
-lpp_gloTau_gloDeltaTau_fmt(gchar *s, guint32 v)
+lpp_gloTau_gloDeltaTau_fmt(char *s, uint32_t v)
{
- double gloTau_gloDeltaTau = (double)((gint32)v)*pow(2, -30);
+ double gloTau_gloDeltaTau = (double)((int32_t)v)*pow(2, -30);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gloTau_gloDeltaTau, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gloTau_gloDeltaTau, (int32_t)v);
}
static void
-lpp_gloGamma_fmt(gchar *s, guint32 v)
+lpp_gloGamma_fmt(char *s, uint32_t v)
{
- double gloGamma = (double)((gint32)v)*pow(2, -40);
+ double gloGamma = (double)((int32_t)v)*pow(2, -40);
- snprintf(s, ITEM_LABEL_LENGTH, "%g (%d)", gloGamma, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g (%d)", gloGamma, (int32_t)v);
}
static void
-lpp_sbasTo_fmt(gchar *s, guint32 v)
+lpp_sbasTo_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
}
static void
-lpp_sbasAgfo_fmt(gchar *s, guint32 v)
+lpp_sbasAgfo_fmt(char *s, uint32_t v)
{
- double sbasAgfo = (double)((gint32)v)*pow(2, -31);
+ double sbasAgfo = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", sbasAgfo, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", sbasAgfo, (int32_t)v);
}
static void
-lpp_sbasAgf1_fmt(gchar *s, guint32 v)
+lpp_sbasAgf1_fmt(char *s, uint32_t v)
{
- double sbasAgf1 = (double)((gint32)v)*pow(2, -40);
+ double sbasAgf1 = (double)((int32_t)v)*pow(2, -40);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", sbasAgf1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", sbasAgf1, (int32_t)v);
}
static void
-lpp_bdsAODC_AODE_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAODC_AODE_r12_fmt(char *s, uint32_t v)
{
if (v < 25) {
snprintf(s, ITEM_LABEL_LENGTH, "Age of the satellite clock correction parameters is %u hours (%u)", v, v);
@@ -801,67 +815,67 @@ lpp_bdsAODC_AODE_r12_fmt(gchar *s, guint32 v)
static void
-lpp_bdsToc_Toe_r12_fmt(gchar *s, guint32 v)
+lpp_bdsToc_Toe_r12_fmt(char *s, uint32_t v)
{
- double bdsToc = (double)((gint32)v)*pow(2, 3);
+ double bdsToc = (double)((int32_t)v)*pow(2, 3);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsToc, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsToc, (int32_t)v);
}
static void
-lpp_bdsA0_r12_fmt(gchar *s, guint32 v)
+lpp_bdsA0_r12_fmt(char *s, uint32_t v)
{
- double bdsA0 = (double)((gint32)v)*pow(2, -33);
+ double bdsA0 = (double)((int32_t)v)*pow(2, -33);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsA0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsA0, (int32_t)v);
}
static void
-lpp_bdsA1_r12_fmt(gchar *s, guint32 v)
+lpp_bdsA1_r12_fmt(char *s, uint32_t v)
{
- double bdsA1 = (double)((gint32)v)*pow(2, -50);
+ double bdsA1 = (double)((int32_t)v)*pow(2, -50);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", bdsA1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", bdsA1, (int32_t)v);
}
static void
-lpp_bdsA2_r12_fmt(gchar *s, guint32 v)
+lpp_bdsA2_r12_fmt(char *s, uint32_t v)
{
- double bdsA2 = (double)((gint32)v)*pow(2, -66);
+ double bdsA2 = (double)((int32_t)v)*pow(2, -66);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", bdsA2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s2 (%d)", bdsA2, (int32_t)v);
}
static void
-lpp_bdsTgd1_r12_fmt(gchar *s, guint32 v)
+lpp_bdsTgd1_r12_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%gns (%d)", (float)((gint32)v)*0.1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gns (%d)", (float)((int32_t)v)*0.1, (int32_t)v);
}
static void
-lpp_keplerToe_fmt(gchar *s, guint32 v)
+lpp_keplerToe_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 60*v, v);
}
static void
-lpp_keplerW_M0_I0_Omega0_fmt(gchar *s, guint32 v)
+lpp_keplerW_M0_I0_Omega0_fmt(char *s, uint32_t v)
{
- double keplerW_M0_I0_Omega0 = (double)((gint32)v)*pow(2, -31);
+ double keplerW_M0_I0_Omega0 = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", keplerW_M0_I0_Omega0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", keplerW_M0_I0_Omega0, (int32_t)v);
}
static void
-lpp_keplerDeltaN_OmegaDot_IDot_fmt(gchar *s, guint32 v)
+lpp_keplerDeltaN_OmegaDot_IDot_fmt(char *s, uint32_t v)
{
- double keplerDeltaN_OmegaDot_IDot = (double)((gint32)v)*pow(2, -43);
+ double keplerDeltaN_OmegaDot_IDot = (double)((int32_t)v)*pow(2, -43);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", keplerDeltaN_OmegaDot_IDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", keplerDeltaN_OmegaDot_IDot, (int32_t)v);
}
static void
-lpp_keplerE_fmt(gchar *s, guint32 v)
+lpp_keplerE_fmt(char *s, uint32_t v)
{
double keplerE = (double)v*pow(2, -33);
@@ -869,7 +883,7 @@ lpp_keplerE_fmt(gchar *s, guint32 v)
}
static void
-lpp_keplerAPowerHalf_fmt(gchar *s, guint32 v)
+lpp_keplerAPowerHalf_fmt(char *s, uint32_t v)
{
double keplerAPowerHalf = (double)v*pow(2, -19);
@@ -877,45 +891,45 @@ lpp_keplerAPowerHalf_fmt(gchar *s, guint32 v)
}
static void
-lpp_keplerCrs_Crc_fmt(gchar *s, guint32 v)
+lpp_keplerCrs_Crc_fmt(char *s, uint32_t v)
{
- double keplerCrs_Crc = (double)((gint32)v)*pow(2, -5);
+ double keplerCrs_Crc = (double)((int32_t)v)*pow(2, -5);
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", keplerCrs_Crc, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", keplerCrs_Crc, (int32_t)v);
}
static void
-lpp_keplerCx_fmt(gchar *s, guint32 v)
+lpp_keplerCx_fmt(char *s, uint32_t v)
{
- double keplerCx = (double)((gint32)v)*pow(2, -29);
+ double keplerCx = (double)((int32_t)v)*pow(2, -29);
- snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", keplerCx, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", keplerCx, (int32_t)v);
}
static void
-lpp_navToe_fmt(gchar *s, guint32 v)
+lpp_navToe_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", 16*v, v);
}
static void
-lpp_navOmega_M0_I0_OmegaA0_fmt(gchar *s, guint32 v)
+lpp_navOmega_M0_I0_OmegaA0_fmt(char *s, uint32_t v)
{
- double navOmega_M0_I0_OmegaA0 = (double)((gint32)v)*pow(2, -31);
+ double navOmega_M0_I0_OmegaA0 = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navOmega_M0_I0_OmegaA0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navOmega_M0_I0_OmegaA0, (int32_t)v);
}
static void
-lpp_navDeltaN_OmegaADot_IDot_fmt(gchar *s, guint32 v)
+lpp_navDeltaN_OmegaADot_IDot_fmt(char *s, uint32_t v)
{
- double navDeltaN_OmegaADot_IDot = (double)((gint32)v)*pow(2, -43);
+ double navDeltaN_OmegaADot_IDot = (double)((int32_t)v)*pow(2, -43);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navDeltaN_OmegaADot_IDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navDeltaN_OmegaADot_IDot, (int32_t)v);
}
static void
-lpp_navE_fmt(gchar *s, guint32 v)
+lpp_navE_fmt(char *s, uint32_t v)
{
double navE = (double)v*pow(2, -33);
@@ -923,7 +937,7 @@ lpp_navE_fmt(gchar *s, guint32 v)
}
static void
-lpp_navAPowerHalf_fmt(gchar *s, guint32 v)
+lpp_navAPowerHalf_fmt(char *s, uint32_t v)
{
double navAPowerHalf = (double)v*pow(2, -19);
@@ -931,151 +945,151 @@ lpp_navAPowerHalf_fmt(gchar *s, guint32 v)
}
static void
-lpp_navCrs_Crc_fmt(gchar *s, guint32 v)
+lpp_navCrs_Crc_fmt(char *s, uint32_t v)
{
- double navCrs_Crc = (double)((gint32)v)*pow(2, -5);
+ double navCrs_Crc = (double)((int32_t)v)*pow(2, -5);
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", navCrs_Crc, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", navCrs_Crc, (int32_t)v);
}
static void
-lpp_navCx_fmt(gchar *s, guint32 v)
+lpp_navCx_fmt(char *s, uint32_t v)
{
- double navCx = (double)((gint32)v)*pow(2, -29);
+ double navCx = (double)((int32_t)v)*pow(2, -29);
- snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", navCx, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", navCx, (int32_t)v);
}
static void
-lpp_cnavDeltaA_fmt(gchar *s, guint32 v)
+lpp_cnavDeltaA_fmt(char *s, uint32_t v)
{
- double cnavDeltaA = (double)((gint32)v)*pow(2, -9);
+ double cnavDeltaA = (double)((int32_t)v)*pow(2, -9);
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", cnavDeltaA, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", cnavDeltaA, (int32_t)v);
}
static void
-lpp_cnavAdot_fmt(gchar *s, guint32 v)
+lpp_cnavAdot_fmt(char *s, uint32_t v)
{
- double cnavAdot = (double)((gint32)v)*pow(2, -21);
+ double cnavAdot = (double)((int32_t)v)*pow(2, -21);
- snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", cnavAdot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", cnavAdot, (int32_t)v);
}
static void
-lpp_cnavDeltaNo_fmt(gchar *s, guint32 v)
+lpp_cnavDeltaNo_fmt(char *s, uint32_t v)
{
- double cnavDeltaNo = (double)((gint32)v)*pow(2, -44);
+ double cnavDeltaNo = (double)((int32_t)v)*pow(2, -44);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaNo, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaNo, (int32_t)v);
}
static void
-lpp_cnavDeltaNoDot_fmt(gchar *s, guint32 v)
+lpp_cnavDeltaNoDot_fmt(char *s, uint32_t v)
{
- double cnavDeltaNoDot = (double)((gint32)v)*pow(2, -57);
+ double cnavDeltaNoDot = (double)((int32_t)v)*pow(2, -57);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s2 (%d)", cnavDeltaNoDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s2 (%d)", cnavDeltaNoDot, (int32_t)v);
}
static void
-lpp_cnavDeltaOmegaDot_IoDot_fmt(gchar *s, guint32 v)
+lpp_cnavDeltaOmegaDot_IoDot_fmt(char *s, uint32_t v)
{
- double cnavDeltaOmegaDot_IoDot = (double)((gint32)v)*pow(2, -44);
+ double cnavDeltaOmegaDot_IoDot = (double)((int32_t)v)*pow(2, -44);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaOmegaDot_IoDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", cnavDeltaOmegaDot_IoDot, (int32_t)v);
}
static void
-lpp_cnavCx_fmt(gchar *s, guint32 v)
+lpp_cnavCx_fmt(char *s, uint32_t v)
{
- double cnavCx = (double)((gint32)v)*pow(2, -30);
+ double cnavCx = (double)((int32_t)v)*pow(2, -30);
- snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", cnavCx, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", cnavCx, (int32_t)v);
}
static void
-lpp_cnavCrs_Crc_fmt(gchar *s, guint32 v)
+lpp_cnavCrs_Crc_fmt(char *s, uint32_t v)
{
- double cnavCrs_Crc = (double)((gint32)v)*pow(2, -8);
+ double cnavCrs_Crc = (double)((int32_t)v)*pow(2, -8);
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", cnavCrs_Crc, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", cnavCrs_Crc, (int32_t)v);
}
static void
-lpp_gloX_Y_Z_fmt(gchar *s, guint32 v)
+lpp_gloX_Y_Z_fmt(char *s, uint32_t v)
{
- double gloX_Y_Z = (double)((gint32)v)*pow(2, -11);
+ double gloX_Y_Z = (double)((int32_t)v)*pow(2, -11);
- snprintf(s, ITEM_LABEL_LENGTH, "%gkm (%d)", gloX_Y_Z, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gkm (%d)", gloX_Y_Z, (int32_t)v);
}
static void
-lpp_gloXdot_Ydot_Zdot_fmt(gchar *s, guint32 v)
+lpp_gloXdot_Ydot_Zdot_fmt(char *s, uint32_t v)
{
- double gloXdot_Ydot_Zdot = (double)((gint32)v)*pow(2, -20);
+ double gloXdot_Ydot_Zdot = (double)((int32_t)v)*pow(2, -20);
- snprintf(s, ITEM_LABEL_LENGTH, "%gkm/s (%d)", gloXdot_Ydot_Zdot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gkm/s (%d)", gloXdot_Ydot_Zdot, (int32_t)v);
}
static void
-lpp_gloXdotdot_Ydotdot_Zdotdot_fmt(gchar *s, guint32 v)
+lpp_gloXdotdot_Ydotdot_Zdotdot_fmt(char *s, uint32_t v)
{
- double gloXdotdot_Ydotdot_Zdotdot = (double)((gint32)v)*pow(2, -30);
+ double gloXdotdot_Ydotdot_Zdotdot = (double)((int32_t)v)*pow(2, -30);
- snprintf(s, ITEM_LABEL_LENGTH, "%gkm/s2 (%d)", gloXdotdot_Ydotdot_Zdotdot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gkm/s2 (%d)", gloXdotdot_Ydotdot_Zdotdot, (int32_t)v);
}
static void
-lpp_sbasXg_Yg_fmt(gchar *s, guint32 v)
+lpp_sbasXg_Yg_fmt(char *s, uint32_t v)
{
- double sbasXg_Yg = (double)((gint32)v)*0.08;
+ double sbasXg_Yg = (double)((int32_t)v)*0.08;
- snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", sbasXg_Yg, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", sbasXg_Yg, (int32_t)v);
}
static void
-lpp_sbasZg_fmt(gchar *s, guint32 v)
+lpp_sbasZg_fmt(char *s, uint32_t v)
{
- double sbasZg = (double)((gint32)v)*0.4;
+ double sbasZg = (double)((int32_t)v)*0.4;
- snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", sbasZg, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm (%d)", sbasZg, (int32_t)v);
}
static void
-lpp_sbasXgDot_YgDot_fmt(gchar *s, guint32 v)
+lpp_sbasXgDot_YgDot_fmt(char *s, uint32_t v)
{
- double sbasXgDot_YgDot = (double)((gint32)v)*0.000625;
+ double sbasXgDot_YgDot = (double)((int32_t)v)*0.000625;
- snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", sbasXgDot_YgDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", sbasXgDot_YgDot, (int32_t)v);
}
static void
-lpp_sbasZgDot_fmt(gchar *s, guint32 v)
+lpp_sbasZgDot_fmt(char *s, uint32_t v)
{
- double sbasZgDot = (double)((gint32)v)*0.004;
+ double sbasZgDot = (double)((int32_t)v)*0.004;
- snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", sbasZgDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", sbasZgDot, (int32_t)v);
}
static void
-lpp_sbasXgDotDot_YgDotDot_fmt(gchar *s, guint32 v)
+lpp_sbasXgDotDot_YgDotDot_fmt(char *s, uint32_t v)
{
- double sbasXgDotDot_YgDotDot = (double)((gint32)v)*0.0000125;
+ double sbasXgDotDot_YgDotDot = (double)((int32_t)v)*0.0000125;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", sbasXgDotDot_YgDotDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", sbasXgDotDot_YgDotDot, (int32_t)v);
}
static void
-lpp_sbasZgDotDot_fmt(gchar *s, guint32 v)
+lpp_sbasZgDotDot_fmt(char *s, uint32_t v)
{
- double sbasZgDotDot = (double)((gint32)v)*0.0000625;
+ double sbasZgDotDot = (double)((int32_t)v)*0.0000625;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", sbasZgDotDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", sbasZgDotDot, (int32_t)v);
}
static void
-lpp_bdsAPowerHalf_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAPowerHalf_r12_fmt(char *s, uint32_t v)
{
double bdsAPowerHalf = (double)v*pow(2, -19);
@@ -1083,7 +1097,7 @@ lpp_bdsAPowerHalf_r12_fmt(gchar *s, guint32 v)
}
static void
-lpp_bdsE_r12_fmt(gchar *s, guint32 v)
+lpp_bdsE_r12_fmt(char *s, uint32_t v)
{
double bdsE = (double)v*pow(2, -33);
@@ -1091,49 +1105,49 @@ lpp_bdsE_r12_fmt(gchar *s, guint32 v)
}
static void
-lpp_bdsW_M0_Omega0_I0_r12_fmt(gchar *s, guint32 v)
+lpp_bdsW_M0_Omega0_I0_r12_fmt(char *s, uint32_t v)
{
- double bdsW_M0_Omega0_I0 = (double)((gint32)v)*pow(2, -31);
+ double bdsW_M0_Omega0_I0 = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsW_M0_Omega0_I0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsW_M0_Omega0_I0, (int32_t)v);
}
static void
-lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt(gchar *s, guint32 v)
+lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt(char *s, uint32_t v)
{
- double bdsDeltaN_OmegaDot_IDot = (double)((gint32)v)*pow(2, -43);
+ double bdsDeltaN_OmegaDot_IDot = (double)((int32_t)v)*pow(2, -43);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsDeltaN_OmegaDot_IDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsDeltaN_OmegaDot_IDot, (int32_t)v);
}
static void
-lpp_bdsCuc_Cus_Cic_Cis_r12_fmt(gchar *s, guint32 v)
+lpp_bdsCuc_Cus_Cic_Cis_r12_fmt(char *s, uint32_t v)
{
- double bdsCuc_Cus_Cic_Cis = (double)((gint32)v)*pow(2, -31);
+ double bdsCuc_Cus_Cic_Cis = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", bdsCuc_Cus_Cic_Cis, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", bdsCuc_Cus_Cic_Cis, (int32_t)v);
}
static void
-lpp_bdsCrc_Crs_r12_fmt(gchar *s, guint32 v)
+lpp_bdsCrc_Crs_r12_fmt(char *s, uint32_t v)
{
- double bdsCrc_Crs = (double)((gint32)v)*pow(2, -6);
+ double bdsCrc_Crs = (double)((int32_t)v)*pow(2, -6);
- snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", bdsCrc_Crs, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%grad (%d)", bdsCrc_Crs, (int32_t)v);
}
static void
-lpp_doppler0_fmt(gchar *s, guint32 v)
+lpp_doppler0_fmt(char *s, uint32_t v)
{
- double doppler0 = (double)((gint32)v)*0.5;
+ double doppler0 = (double)((int32_t)v)*0.5;
- snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", doppler0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", doppler0, (int32_t)v);
}
static void
-lpp_doppler1_fmt(gchar *s, guint32 v)
+lpp_doppler1_fmt(char *s, uint32_t v)
{
- double doppler1 = (double)((gint32)(v-42))/210;
+ double doppler1 = (double)((int32_t)(v-42))/210;
snprintf(s, ITEM_LABEL_LENGTH, "%fm/s2 (%u)", doppler1, v);
}
@@ -1148,7 +1162,7 @@ static const value_string lpp_dopplerUncertainty_vals[] = {
};
static void
-lpp_codePhase_fmt(gchar *s, guint32 v)
+lpp_codePhase_fmt(char *s, uint32_t v)
{
double codePhase = (double)v*pow(2, -10);
@@ -1193,13 +1207,13 @@ static const value_string lpp_codePhaseSearchWindow_vals[] = {
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)
+lpp_azimuth_elevation_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)", (float)v*0.703125, v);
}
static void
-lpp_kepAlmanacE_fmt(gchar *s, guint32 v)
+lpp_kepAlmanacE_fmt(char *s, uint32_t v)
{
double kepAlmanacE = (double)v*pow(2, -16);
@@ -1207,55 +1221,55 @@ lpp_kepAlmanacE_fmt(gchar *s, guint32 v)
}
static void
-lpp_kepAlmanacDeltaI_fmt(gchar *s, guint32 v)
+lpp_kepAlmanacDeltaI_fmt(char *s, uint32_t v)
{
- double kepAlmanacDeltaI = (double)((gint32)v)*pow(2, -14);
+ double kepAlmanacDeltaI = (double)((int32_t)v)*pow(2, -14);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacDeltaI, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacDeltaI, (int32_t)v);
}
static void
-lpp_kepAlmanacOmegaDot_fmt(gchar *s, guint32 v)
+lpp_kepAlmanacOmegaDot_fmt(char *s, uint32_t v)
{
- double kepAlmanacOmegaDot = (double)((gint32)v)*pow(2, -33);
+ double kepAlmanacOmegaDot = (double)((int32_t)v)*pow(2, -33);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", kepAlmanacOmegaDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", kepAlmanacOmegaDot, (int32_t)v);
}
static void
-lpp_kepAlmanacAPowerHalf_fmt(gchar *s, guint32 v)
+lpp_kepAlmanacAPowerHalf_fmt(char *s, uint32_t v)
{
- double kepAlmanacAPowerHalf = (double)((gint32)v)*pow(2, -9);
+ double kepAlmanacAPowerHalf = (double)((int32_t)v)*pow(2, -9);
- snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%d)", kepAlmanacAPowerHalf, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm1/2 (%d)", kepAlmanacAPowerHalf, (int32_t)v);
}
static void
-lpp_kepAlmanacOmega0_W_M0_fmt(gchar *s, guint32 v)
+lpp_kepAlmanacOmega0_W_M0_fmt(char *s, uint32_t v)
{
- double kepAlmanacOmega0_W_M0 = (double)((gint32)v)*pow(2, -15);
+ double kepAlmanacOmega0_W_M0 = (double)((int32_t)v)*pow(2, -15);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacOmega0_W_M0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", kepAlmanacOmega0_W_M0, (int32_t)v);
}
static void
-lpp_kepAlmanacAF0_fmt(gchar *s, guint32 v)
+lpp_kepAlmanacAF0_fmt(char *s, uint32_t v)
{
- double kepAlmanacAF0 = (double)((gint32)v)*pow(2, -19);
+ double kepAlmanacAF0 = (double)((int32_t)v)*pow(2, -19);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", kepAlmanacAF0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", kepAlmanacAF0, (int32_t)v);
}
static void
-lpp_kepAlmanacAF1_fmt(gchar *s, guint32 v)
+lpp_kepAlmanacAF1_fmt(char *s, uint32_t v)
{
- double kepAlmanacAF1 = (double)((gint32)v)*pow(2, -38);
+ double kepAlmanacAF1 = (double)((int32_t)v)*pow(2, -38);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", kepAlmanacAF1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", kepAlmanacAF1, (int32_t)v);
}
static void
-lpp_navAlmE_fmt(gchar *s, guint32 v)
+lpp_navAlmE_fmt(char *s, uint32_t v)
{
double navAlmE = (double)v*pow(2, -21);
@@ -1263,23 +1277,23 @@ lpp_navAlmE_fmt(gchar *s, guint32 v)
}
static void
-lpp_navAlmDeltaI_fmt(gchar *s, guint32 v)
+lpp_navAlmDeltaI_fmt(char *s, uint32_t v)
{
- double navAlmDeltaI = (double)((gint32)v)*pow(2, -19);
+ double navAlmDeltaI = (double)((int32_t)v)*pow(2, -19);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmDeltaI, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmDeltaI, (int32_t)v);
}
static void
-lpp_navAlmOMEGADOT_fmt(gchar *s, guint32 v)
+lpp_navAlmOMEGADOT_fmt(char *s, uint32_t v)
{
- double navAlmOMEGADOT = (double)((gint32)v)*pow(2, -38);
+ double navAlmOMEGADOT = (double)((int32_t)v)*pow(2, -38);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navAlmOMEGADOT, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", navAlmOMEGADOT, (int32_t)v);
}
static void
-lpp_navAlmSqrtA_fmt(gchar *s, guint32 v)
+lpp_navAlmSqrtA_fmt(char *s, uint32_t v)
{
double navAlmSqrtA = (double)v*pow(2, -11);
@@ -1287,45 +1301,45 @@ lpp_navAlmSqrtA_fmt(gchar *s, guint32 v)
}
static void
-lpp_navAlmOMEGAo_Omega_Mo_fmt(gchar *s, guint32 v)
+lpp_navAlmOMEGAo_Omega_Mo_fmt(char *s, uint32_t v)
{
- double navAlmOMEGAo_Omega_Mo = (double)((gint32)v)*pow(2, -23);
+ double navAlmOMEGAo_Omega_Mo = (double)((int32_t)v)*pow(2, -23);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmOMEGAo_Omega_Mo, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", navAlmOMEGAo_Omega_Mo, (int32_t)v);
}
static void
-lpp_navAlmaf0_fmt(gchar *s, guint32 v)
+lpp_navAlmaf0_fmt(char *s, uint32_t v)
{
- double navAlmaf0 = (double)((gint32)v)*pow(2, -20);
+ double navAlmaf0 = (double)((int32_t)v)*pow(2, -20);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", navAlmaf0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", navAlmaf0, (int32_t)v);
}
static void
-lpp_navAlmaf1_fmt(gchar *s, guint32 v)
+lpp_navAlmaf1_fmt(char *s, uint32_t v)
{
- double navAlmaf1 = (double)((gint32)v)*pow(2, -38);
+ double navAlmaf1 = (double)((int32_t)v)*pow(2, -38);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navAlmaf1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", navAlmaf1, (int32_t)v);
}
static void
-lpp_redAlmDeltaA_fmt(gchar *s, guint32 v)
+lpp_redAlmDeltaA_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%dm (%d)", 512*(gint)v, (gint)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%dm (%d)", 512*(int)v, (int)v);
}
static void
-lpp_redAlmOmega0_Phi0_fmt(gchar *s, guint32 v)
+lpp_redAlmOmega0_Phi0_fmt(char *s, uint32_t v)
{
- double redAlmOmega0_Phi0 = (double)((gint32)v)*pow(2, -6);
+ double redAlmOmega0_Phi0 = (double)((int32_t)v)*pow(2, -6);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", redAlmOmega0_Phi0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", redAlmOmega0_Phi0, (int32_t)v);
}
static void
-lpp_midiAlmE_fmt(gchar *s, guint32 v)
+lpp_midiAlmE_fmt(char *s, uint32_t v)
{
double midiAlmE = (double)v*pow(2, -16);
@@ -1333,143 +1347,143 @@ lpp_midiAlmE_fmt(gchar *s, guint32 v)
}
static void
-lpp_midiAlmDeltaI_fmt(gchar *s, guint32 v)
+lpp_midiAlmDeltaI_fmt(char *s, uint32_t v)
{
- double midiAlmDeltaI = (double)((gint32)v)*pow(2, -14);
+ double midiAlmDeltaI = (double)((int32_t)v)*pow(2, -14);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmDeltaI, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmDeltaI, (int32_t)v);
}
static void
-lpp_midiAlmOmegaDot_fmt(gchar *s, guint32 v)
+lpp_midiAlmOmegaDot_fmt(char *s, uint32_t v)
{
- double midiAlmOmegaDot = (double)((gint32)v)*pow(2, -33);
+ double midiAlmOmegaDot = (double)((int32_t)v)*pow(2, -33);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", midiAlmOmegaDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", midiAlmOmegaDot, (int32_t)v);
}
static void
-lpp_midiAlmSqrtA_fmt(gchar *s, guint32 v)
+lpp_midiAlmSqrtA_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%fm1/2 (%u)", (float)v*0.0625, v);
}
static void
-lpp_midiAlmOmega0_Omega_Mo_fmt(gchar *s, guint32 v)
+lpp_midiAlmOmega0_Omega_Mo_fmt(char *s, uint32_t v)
{
- double midiAlmOmega0_Omega_Mo = (double)((gint32)v)*pow(2, -15);
+ double midiAlmOmega0_Omega_Mo = (double)((int32_t)v)*pow(2, -15);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmOmega0_Omega_Mo, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", midiAlmOmega0_Omega_Mo, (int32_t)v);
}
static void
-lpp_midiAlmaf0_fmt(gchar *s, guint32 v)
+lpp_midiAlmaf0_fmt(char *s, uint32_t v)
{
- double midiAlmaf0 = (double)((gint32)v)*pow(2, -20);
+ double midiAlmaf0 = (double)((int32_t)v)*pow(2, -20);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", midiAlmaf0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", midiAlmaf0, (int32_t)v);
}
static void
-lpp_midiAlmaf1_fmt(gchar *s, guint32 v)
+lpp_midiAlmaf1_fmt(char *s, uint32_t v)
{
- double midiAlmaf1 = (double)((gint32)v)*pow(2, -37);
+ double midiAlmaf1 = (double)((int32_t)v)*pow(2, -37);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", midiAlmaf1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", midiAlmaf1, (int32_t)v);
}
static void
-lpp_gloAlmLambdaA_DeltaIa_fmt(gchar *s, guint32 v)
+lpp_gloAlmLambdaA_DeltaIa_fmt(char *s, uint32_t v)
{
- double gloAlmLambdaA_DeltaIa = (double)((gint32)v)*pow(2, -20);
+ double gloAlmLambdaA_DeltaIa = (double)((int32_t)v)*pow(2, -20);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmLambdaA_DeltaIa, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmLambdaA_DeltaIa, (int32_t)v);
}
static void
-lpp_gloAlmtlambdaA_fmt(gchar *s, guint32 v)
+lpp_gloAlmtlambdaA_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%fs (%u)", (float)v*0.03125, v);
}
static void
-lpp_gloAlmDeltaTA_fmt(gchar *s, guint32 v)
+lpp_gloAlmDeltaTA_fmt(char *s, uint32_t v)
{
- double gloAlmDeltaTA = (double)((gint32)v)*pow(2, -9);
+ double gloAlmDeltaTA = (double)((int32_t)v)*pow(2, -9);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/orbit period (%d)", gloAlmDeltaTA, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/orbit period (%d)", gloAlmDeltaTA, (int32_t)v);
}
static void
-lpp_gloAlmDeltaTdotA_fmt(gchar *s, guint32 v)
+lpp_gloAlmDeltaTdotA_fmt(char *s, uint32_t v)
{
- double gloAlmDeltaTdotA = (double)((gint32)v)*pow(2, -14);
+ double gloAlmDeltaTdotA = (double)((int32_t)v)*pow(2, -14);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/orbit period (%d)", gloAlmDeltaTdotA, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/orbit period (%d)", gloAlmDeltaTdotA, (int32_t)v);
}
static void
-lpp_gloAlmEpsilonA_fmt(gchar *s, guint32 v)
+lpp_gloAlmEpsilonA_fmt(char *s, uint32_t v)
{
double gloAlmEpsilonA = (double)v*pow(2, -20);
- snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", gloAlmEpsilonA, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", gloAlmEpsilonA, (int32_t)v);
}
static void
-lpp_gloAlmOmegaA_fmt(gchar *s, guint32 v)
+lpp_gloAlmOmegaA_fmt(char *s, uint32_t v)
{
- double gloAlmOmegaA = (double)((gint32)v)*pow(2, -15);
+ double gloAlmOmegaA = (double)((int32_t)v)*pow(2, -15);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmOmegaA, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", gloAlmOmegaA, (int32_t)v);
}
static void
-lpp_gloAlmTauA_fmt(gchar *s, guint32 v)
+lpp_gloAlmTauA_fmt(char *s, uint32_t v)
{
- double gloAlmTauA = (double)((gint32)v)*pow(2, -18);
+ double gloAlmTauA = (double)((int32_t)v)*pow(2, -18);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gloAlmTauA, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gloAlmTauA, (int32_t)v);
}
static void
-lpp_sbasAlmXg_Yg_fmt(gchar *s, guint32 v)
+lpp_sbasAlmXg_Yg_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%fkm (%d)", (gint32)v*2.6, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fkm (%d)", (int32_t)v*2.6, (int32_t)v);
}
static void
-lpp_sbasAlmZg_fmt(gchar *s, guint32 v)
+lpp_sbasAlmZg_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%dkm (%d)", (gint32)v*26, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%dkm (%d)", (int32_t)v*26, (int32_t)v);
}
static void
-lpp_sbasAlmXgdot_YgDot_fmt(gchar *s, guint32 v)
+lpp_sbasAlmXgdot_YgDot_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%dm/s (%d)", (gint32)v*10, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%dm/s (%d)", (int32_t)v*10, (int32_t)v);
}
static void
-lpp_sbasAlmZgDot_fmt(gchar *s, guint32 v)
+lpp_sbasAlmZgDot_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", (gint32)v*40.96, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%fm/s (%d)", (int32_t)v*40.96, (int32_t)v);
}
static void
-lpp_sbasAlmTo_fmt(gchar *s, guint32 v)
+lpp_sbasAlmTo_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%um/s (%u)", v*64, v);
}
static void
-lpp_bdsAlmToa_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmToa_r12_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", v*4096, v);
}
static void
-lpp_bdsAlmSqrtA_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmSqrtA_r12_fmt(char *s, uint32_t v)
{
double bdsAlmSqrtA = (double)v*pow(2, -11);
@@ -1477,7 +1491,7 @@ lpp_bdsAlmSqrtA_r12_fmt(gchar *s, guint32 v)
}
static void
-lpp_bdsAlmE_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmE_r12_fmt(char *s, uint32_t v)
{
double bdsAlmE = (double)v*pow(2, -21);
@@ -1485,43 +1499,43 @@ lpp_bdsAlmE_r12_fmt(gchar *s, guint32 v)
}
static void
-lpp_bdsAlmW_M0_Omega0_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmW_M0_Omega0_r12_fmt(char *s, uint32_t v)
{
- double bdsAlmW_M0_Omega0 = (double)((gint32)v)*pow(2, -23);
+ double bdsAlmW_M0_Omega0 = (double)((int32_t)v)*pow(2, -23);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmW_M0_Omega0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmW_M0_Omega0, (int32_t)v);
}
static void
-lpp_bdsAlmOmegaDot_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmOmegaDot_r12_fmt(char *s, uint32_t v)
{
- double bdsAlmOmegaDot = (double)((gint32)v)*pow(2, -38);
+ double bdsAlmOmegaDot = (double)((int32_t)v)*pow(2, -38);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsAlmOmegaDot, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles/s (%d)", bdsAlmOmegaDot, (int32_t)v);
}
static void
-lpp_bdsAlmDeltaI_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmDeltaI_r12_fmt(char *s, uint32_t v)
{
- double bdsAlmDeltaI = (double)((gint32)v)*pow(2, -19);
+ double bdsAlmDeltaI = (double)((int32_t)v)*pow(2, -19);
- snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmDeltaI, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%g semi-circles (%d)", bdsAlmDeltaI, (int32_t)v);
}
static void
-lpp_bdsAlmA0_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmA0_r12_fmt(char *s, uint32_t v)
{
- double bdsAlmA0 = (double)((gint32)v)*pow(2, -20);
+ double bdsAlmA0 = (double)((int32_t)v)*pow(2, -20);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsAlmA0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", bdsAlmA0, (int32_t)v);
}
static void
-lpp_bdsAlmA1_r12_fmt(gchar *s, guint32 v)
+lpp_bdsAlmA1_r12_fmt(char *s, uint32_t v)
{
- double bdsAlmA1 = (double)((gint32)v)*pow(2, -38);
+ double bdsAlmA1 = (double)((int32_t)v)*pow(2, -38);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", bdsAlmA1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", bdsAlmA1, (int32_t)v);
}
static const true_false_string lpp_bdsSvHealth_r12_b1i_b2i_value = {
@@ -1535,23 +1549,23 @@ static const true_false_string lpp_bdsSvHealth_r12_nav_value = {
};
static void
-lpp_gnss_Utc_A1_fmt(gchar *s, guint32 v)
+lpp_gnss_Utc_A1_fmt(char *s, uint32_t v)
{
- double gnss_Utc_A1 = (double)((gint32)v)*pow(2, -50);
+ double gnss_Utc_A1 = (double)((int32_t)v)*pow(2, -50);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", gnss_Utc_A1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/s (%d)", gnss_Utc_A1, (int32_t)v);
}
static void
-lpp_gnss_Utc_A0_fmt(gchar *s, guint32 v)
+lpp_gnss_Utc_A0_fmt(char *s, uint32_t v)
{
- double gnss_Utc_A0 = (double)((gint32)v)*pow(2, -30);
+ double gnss_Utc_A0 = (double)((int32_t)v)*pow(2, -30);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gnss_Utc_A0, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", gnss_Utc_A0, (int32_t)v);
}
static void
-lpp_gnss_Utc_Tot_fmt(gchar *s, guint32 v)
+lpp_gnss_Utc_Tot_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%us (%u)", v*4096, v);
}
@@ -1599,19 +1613,19 @@ static const value_string lpp_bds_RURAI_vals[] = {
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)
+lpp_bds_ECC_DeltaT_r12_fmt(char *s, uint32_t v)
{
- if ((gint32)v == -4096) {
- snprintf(s, ITEM_LABEL_LENGTH, "Not available (%d)", (gint32)v);
+ if ((int32_t)v == -4096) {
+ snprintf(s, ITEM_LABEL_LENGTH, "Not available (%d)", (int32_t)v);
} else {
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (float)((gint32)v)*0.1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (float)((int32_t)v)*0.1, (int32_t)v);
}
}
static void
-lpp_bds_GridIonElement_dt_r12_fmt(gchar *s, guint32 v)
+lpp_bds_GridIonElement_dt_r12_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (float)((gint32)v)*0.125, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", (float)((int32_t)v)*0.125, (int32_t)v);
}
static const value_string lpp_bds_givei_vals[] = {
@@ -1636,23 +1650,23 @@ static const value_string lpp_bds_givei_vals[] = {
static value_string_ext lpp_bds_givei_vals_ext = VALUE_STRING_EXT_INIT(lpp_bds_givei_vals);
static void
-lpp_fine_PseudoRange_r15_fmt(gchar *s, guint32 v)
+lpp_fine_PseudoRange_r15_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)*pow(2, -29);
+ double val = (double)((int32_t)v)*pow(2, -29);
- snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (int32_t)v);
}
static void
-lpp_fine_PhaseRange_r15_fmt(gchar *s, guint32 v)
+lpp_fine_PhaseRange_r15_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)*pow(2, -31);
+ double val = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (int32_t)v);
}
static void
-lpp_carrier_to_noise_ratio_r15_fmt(gchar *s, guint32 v)
+lpp_carrier_to_noise_ratio_r15_fmt(char *s, uint32_t v)
{
double val = (double)v*pow(2, -4);
@@ -1660,19 +1674,19 @@ lpp_carrier_to_noise_ratio_r15_fmt(gchar *s, guint32 v)
}
static void
-lpp_fine_PhaseRangeRate_r15_fmt(gchar *s, guint32 v)
+lpp_fine_PhaseRangeRate_r15_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/1000;
+ double val = (double)((int32_t)v)/1000;
- snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gms (%d)", val, (int32_t)v);
}
static void
-lpp_cpBias_r15_fmt(gchar *s, guint32 v)
+lpp_cpBias_r15_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/50;
+ double val = (double)((int32_t)v)/50;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (int32_t)v);
}
static const value_string lpp_ambiguityStatusFlag_r15_vals[] = {
@@ -1684,27 +1698,27 @@ static const value_string lpp_ambiguityStatusFlag_r15_vals[] = {
};
static void
-lpp_1_2000m_fmt(gchar *s, guint32 v)
+lpp_1_2000m_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/2000;
+ double val = (double)((int32_t)v)/2000;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (int32_t)v);
}
static void
-lpp_1_100ppm_fmt(gchar *s, guint32 v)
+lpp_1_100ppm_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/100;
+ double val = (double)((int32_t)v)/100;
- snprintf(s, ITEM_LABEL_LENGTH, "%gppm (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gppm (%d)", val, (int32_t)v);
}
static void
-lpp_1_10ppm_fmt(gchar *s, guint32 v)
+lpp_1_10ppm_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/10;
+ double val = (double)((int32_t)v)/10;
- snprintf(s, ITEM_LABEL_LENGTH, "%gppm (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gppm (%d)", val, (int32_t)v);
}
static const value_string lpp_ssrUpdateInterval_r15_vals[] = {
@@ -1728,75 +1742,75 @@ static const value_string lpp_ssrUpdateInterval_r15_vals[] = {
};
static void
-lpp_1_10000m_fmt(gchar *s, guint32 v)
+lpp_1_10000m_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/10000;
+ double val = (double)((int32_t)v)/10000;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (int32_t)v);
}
static void
-lpp_4_10000m_fmt(gchar *s, guint32 v)
+lpp_4_10000m_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/10000*4;
+ double val = (double)((int32_t)v)/10000*4;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (int32_t)v);
}
static void
-lpp_1_1000000m_s_fmt(gchar *s, guint32 v)
+lpp_1_1000000m_s_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/1000000;
+ double val = (double)((int32_t)v)/1000000;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", val, (int32_t)v);
}
static void
-lpp_4_1000000m_s_fmt(gchar *s, guint32 v)
+lpp_4_1000000m_s_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/1000000*4;
+ double val = (double)((int32_t)v)/1000000*4;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", val, (int32_t)v);
}
static void
-lpp_2_100000000m_s2_fmt(gchar *s, guint32 v)
+lpp_2_100000000m_s2_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/100000000*2;
+ double val = (double)((int32_t)v)/100000000*2;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm/s2 (%d)", val, (int32_t)v);
}
static void
-lpp_1_100000m_fmt(gchar *s, guint32 v)
+lpp_1_100000m_fmt(char *s, uint32_t v)
{
- double val = (double)((gint32)v)/100000;
+ double val = (double)((int32_t)v)/100000;
- snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm (%d)", val, (int32_t)v);
}
static void
-lpp_tauC_fmt(gchar *s, guint32 v)
+lpp_tauC_fmt(char *s, uint32_t v)
{
- double tauC = (double)((gint32)v)*pow(2, -31);
+ double tauC = (double)((int32_t)v)*pow(2, -31);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", tauC, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", tauC, (int32_t)v);
}
static void
-lpp_b1_fmt(gchar *s, guint32 v)
+lpp_b1_fmt(char *s, uint32_t v)
{
- double b1 = (double)((gint32)v)*pow(2, -10);
+ double b1 = (double)((int32_t)v)*pow(2, -10);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", b1, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs (%d)", b1, (int32_t)v);
}
static void
-lpp_b2_fmt(gchar *s, guint32 v)
+lpp_b2_fmt(char *s, uint32_t v)
{
- double b2 = (double)((gint32)v)*pow(2, -16);
+ double b2 = (double)((int32_t)v)*pow(2, -16);
- snprintf(s, ITEM_LABEL_LENGTH, "%gs/msd (%d)", b2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gs/msd (%d)", b2, (int32_t)v);
}
static const value_string lpp_utcStandardID_vals[] = {
@@ -1837,7 +1851,7 @@ static const value_string lpp_carrierQualityInd_vals[] = {
};
static void
-lpp_GNSS_SatMeas_codePhase_fmt(gchar *s, guint32 v)
+lpp_GNSS_SatMeas_codePhase_fmt(char *s, uint32_t v)
{
double codePhase = (double)v*pow(2, -21);
@@ -1845,12 +1859,12 @@ lpp_GNSS_SatMeas_codePhase_fmt(gchar *s, guint32 v)
}
static void
-lpp_codePhaseRMSError_fmt(gchar *s, guint32 v)
+lpp_codePhaseRMSError_fmt(char *s, uint32_t v)
{
- guint8 mantissa = v & 0x07;
- guint8 exponent = (v & 0x38) >> 3;
- guint8 mantissa_1 = (v - 1) & 0x07;
- guint8 exponent_1 = ((v - 1) & 0x38) >> 3;
+ uint8_t mantissa = v & 0x07;
+ uint8_t exponent = (v & 0x38) >> 3;
+ uint8_t mantissa_1 = (v - 1) & 0x07;
+ uint8_t exponent_1 = ((v - 1) & 0x38) >> 3;
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "P < 0.5 (0)");
@@ -1863,7 +1877,7 @@ lpp_codePhaseRMSError_fmt(gchar *s, guint32 v)
}
static void
-lpp_transmitterLatitude_fmt(gchar *s, guint32 v)
+lpp_transmitterLatitude_fmt(char *s, uint32_t v)
{
double lat = ((double)v*4.0/pow(2, 20))-90.0;
@@ -1871,7 +1885,7 @@ lpp_transmitterLatitude_fmt(gchar *s, guint32 v)
}
static void
-lpp_transmitterLongitude_fmt(gchar *s, guint32 v)
+lpp_transmitterLongitude_fmt(char *s, uint32_t v)
{
double longitude = ((double)v*4.0/pow(2, 20))-180.0;
@@ -1879,7 +1893,7 @@ lpp_transmitterLongitude_fmt(gchar *s, guint32 v)
}
static void
-lpp_transmitterAltitude_fmt(gchar *s, guint32 v)
+lpp_transmitterAltitude_fmt(char *s, uint32_t v)
{
double alt = ((double)v*0.29)-500.0;
@@ -1887,43 +1901,43 @@ lpp_transmitterAltitude_fmt(gchar *s, guint32 v)
}
static void
-lpp_refPressure_fmt(gchar *s, guint32 v)
+lpp_refPressure_fmt(char *s, uint32_t v)
{
- gint32 pressure = (gint32)v;
+ int32_t pressure = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%dPa (%d)", 101325+pressure, pressure);
}
static void
-lpp_refTemperature_fmt(gchar *s, guint32 v)
+lpp_refTemperature_fmt(char *s, uint32_t v)
{
- gint32 temp = (gint32)v;
+ int32_t temp = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%dK (%d)", 273+temp, temp);
}
static void
-lpp_referencePressureRate_v1520_fmt(gchar *s, guint32 v)
+lpp_referencePressureRate_v1520_fmt(char *s, uint32_t v)
{
- gint32 rate = (gint32)v;
+ int32_t rate = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%dPa/hour (%d)", 10*rate, rate);
}
static void
-lpp_PressureValidityPeriod_v1520_fmt(gchar *s, guint32 v)
+lpp_PressureValidityPeriod_v1520_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%umin (%u)", 15*v, v);
}
static void
-lpp_doppler_fmt(gchar *s, guint32 v)
+lpp_doppler_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", (gint32)v*0.04, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", (int32_t)v*0.04, (int32_t)v);
}
static void
-lpp_adr_fmt(gchar *s, guint32 v)
+lpp_adr_fmt(char *s, uint32_t v)
{
double adr = (double)v*pow(2, -10);
@@ -1931,13 +1945,13 @@ lpp_adr_fmt(gchar *s, guint32 v)
}
static void
-lpp_adrMSB_r15_fmt(gchar *s, guint32 v)
+lpp_adrMSB_r15_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%um (%u)", v*32768, v);
}
static void
-lpp_GNSS_SatMeas_delta_codePhase_r15_fmt(gchar *s, guint32 v)
+lpp_GNSS_SatMeas_delta_codePhase_r15_fmt(char *s, uint32_t v)
{
double codePhase = (double)v*pow(2, -24);
@@ -1945,13 +1959,13 @@ lpp_GNSS_SatMeas_delta_codePhase_r15_fmt(gchar *s, guint32 v)
}
static void
-lpp_deliveryAmount_r15_fmt(gchar *s, guint32 v)
+lpp_deliveryAmount_r15_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%g (%u)", pow(2, v), v);
}
static void
-lpp_rsrp_Result_fmt(gchar *s, guint32 v)
+lpp_rsrp_Result_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)");
@@ -1963,7 +1977,7 @@ lpp_rsrp_Result_fmt(gchar *s, guint32 v)
}
static void
-lpp_rsrq_Result_fmt(gchar *s, guint32 v)
+lpp_rsrq_Result_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
@@ -1975,7 +1989,7 @@ lpp_rsrq_Result_fmt(gchar *s, guint32 v)
}
static void
-lpp_nrsrp_Result_fmt(gchar *s, guint32 v)
+lpp_nrsrp_Result_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "NRSRP < -156dBm (0)");
@@ -1987,7 +2001,7 @@ lpp_nrsrp_Result_fmt(gchar *s, guint32 v)
}
static void
-lpp_nrsrq_Result_fmt(gchar *s, guint32 v)
+lpp_nrsrq_Result_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "NRSRQ < -34dB (0)");
@@ -1999,9 +2013,9 @@ lpp_nrsrq_Result_fmt(gchar *s, guint32 v)
}
static void
-lpp_rsrp_Result_v1470_fmt(gchar *s, guint32 v)
+lpp_rsrp_Result_v1470_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
if (d == -17) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -157dBm (-17)");
@@ -2011,9 +2025,9 @@ lpp_rsrp_Result_v1470_fmt(gchar *s, guint32 v)
}
static void
-lpp_rsrq_Result_v1470_fmt(gchar *s, guint32 v)
+lpp_rsrq_Result_v1470_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -34.5dB (-30)");
@@ -2025,7 +2039,7 @@ lpp_rsrq_Result_v1470_fmt(gchar *s, guint32 v)
}
static void
-lpp_ue_RxTxTimeDiff_fmt(gchar *s, guint32 v)
+lpp_ue_RxTxTimeDiff_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "T < 2Ts (0)");
@@ -2039,14 +2053,14 @@ lpp_ue_RxTxTimeDiff_fmt(gchar *s, guint32 v)
}
static void
-lpp_mbs_beaconMeasElt_codePhase_fmt(gchar *s, guint32 v)
+lpp_mbs_beaconMeasElt_codePhase_fmt(char *s, uint32_t v)
{
double codePhase = (double)v*pow(2, -21);
snprintf(s, ITEM_LABEL_LENGTH, "%gms (%u)", codePhase, v);
}
-const unit_name_string units_pa = { "Pa", NULL };
+static const unit_name_string units_pa = { "Pa", NULL };
#include "packet-lpp-fn.c"
@@ -2055,7 +2069,7 @@ int dissect_lpp_AssistanceDataSIBelement_r15_PDU(tvbuff_t *tvb, packet_info *pin
asn1_ctx_t asn1_ctx;
struct lpp_private_data *lpp_data = lpp_get_private_data(pinfo);
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, false, pinfo);
lpp_data->pos_sib_type = pos_sib_type;
offset = dissect_lpp_AssistanceDataSIBelement_r15(tvb, offset, &asn1_ctx, tree, hf_lpp_AssistanceDataSIBelement_r15_PDU);
offset += 7; offset >>= 3;
@@ -2123,7 +2137,7 @@ void proto_register_lpp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_lpp,
&ett_lpp_svHealthExt_v1240,
&ett_kepSV_StatusINAV,
diff --git a/epan/dissectors/asn1/lpp/packet-lpp-template.h b/epan/dissectors/asn1/lpp/packet-lpp-template.h
index 6d3ec42c..22c84f26 100644
--- a/epan/dissectors/asn1/lpp/packet-lpp-template.h
+++ b/epan/dissectors/asn1/lpp/packet-lpp-template.h
@@ -1,6 +1,6 @@
/* packet-lpp.h
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
- * Copyright 2011-2022 Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2011-2024 Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -25,6 +25,8 @@ typedef enum {
LPP_POS_SIB_TYPE_1_8,
LPP_POS_SIB_TYPE_1_9,
LPP_POS_SIB_TYPE_1_10,
+ LPP_POS_SIB_TYPE_1_11,
+ LPP_POS_SIB_TYPE_1_12,
LPP_POS_SIB_TYPE_2_1,
LPP_POS_SIB_TYPE_2_2,
LPP_POS_SIB_TYPE_2_3,
@@ -42,14 +44,19 @@ typedef enum {
LPP_POS_SIB_TYPE_2_15,
LPP_POS_SIB_TYPE_2_16,
LPP_POS_SIB_TYPE_2_17,
+ LPP_POS_SIB_TYPE_2_17a,
LPP_POS_SIB_TYPE_2_18,
+ LPP_POS_SIB_TYPE_2_18a,
LPP_POS_SIB_TYPE_2_19,
LPP_POS_SIB_TYPE_2_20,
+ LPP_POS_SIB_TYPE_2_20a,
LPP_POS_SIB_TYPE_2_21,
LPP_POS_SIB_TYPE_2_22,
LPP_POS_SIB_TYPE_2_23,
LPP_POS_SIB_TYPE_2_24,
LPP_POS_SIB_TYPE_2_25,
+ LPP_POS_SIB_TYPE_2_26,
+ LPP_POS_SIB_TYPE_2_27,
LPP_POS_SIB_TYPE_3_1,
LPP_POS_SIB_TYPE_4_1,
LPP_POS_SIB_TYPE_5_1,
@@ -59,6 +66,11 @@ typedef enum {
LPP_POS_SIB_TYPE_6_4,
LPP_POS_SIB_TYPE_6_5,
LPP_POS_SIB_TYPE_6_6,
+ LPP_POS_SIB_TYPE_6_7,
+ LPP_POS_SIB_TYPE_7_1,
+ LPP_POS_SIB_TYPE_7_2,
+ LPP_POS_SIB_TYPE_7_3,
+ LPP_POS_SIB_TYPE_7_4,
} lpp_pos_sib_type_t;
int dissect_lpp_AssistanceDataSIBelement_r15_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, lpp_pos_sib_type_t pos_sib_type);
diff --git a/epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn b/epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn
index 8b7dcd09..0478b321 100644
--- a/epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.455 V16.1.0 (2020-09)
+-- 3GPP TS 36.455 V18.1.0 (2024-06)
--
-- **************************************************************
@@ -8,10 +8,10 @@
-- **************************************************************
LPPA-CommonDataTypes {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+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 ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
diff --git a/epan/dissectors/asn1/lppa/LPPA-Constants.asn b/epan/dissectors/asn1/lppa/LPPA-Constants.asn
index 92d49b7c..57ff5d5e 100644
--- a/epan/dissectors/asn1/lppa/LPPA-Constants.asn
+++ b/epan/dissectors/asn1/lppa/LPPA-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.455 V16.1.0 (2020-09)
+-- 3GPP TS 36.455 V18.1.0 (2024-06)
--
-- **************************************************************
@@ -8,10 +8,10 @@
-- **************************************************************
LPPA-Constants {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+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 ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
@@ -54,7 +54,7 @@ maxGERANMeas INTEGER ::= 8
maxUTRANMeas INTEGER ::= 8
maxCellineNB-ext INTEGER ::= 3840
maxMBSFN-Allocations INTEGER ::= 8
-maxWLANchannels INTEGER ::= 16
+maxWLANchannels INTEGER ::= 16
maxnoFreqHoppingBandsMinusOne INTEGER ::= 7
maxNrOfPosSImessage INTEGER ::= 32
maxnoAssistInfoFailureListItems INTEGER ::= 32
diff --git a/epan/dissectors/asn1/lppa/LPPA-Containers.asn b/epan/dissectors/asn1/lppa/LPPA-Containers.asn
index 11d94b56..0641ed09 100644
--- a/epan/dissectors/asn1/lppa/LPPA-Containers.asn
+++ b/epan/dissectors/asn1/lppa/LPPA-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.455 V16.1.0 (2020-09)
+-- 3GPP TS 36.455 V18.1.0 (2024-06)
--
-- **************************************************************
@@ -8,10 +8,10 @@
-- **************************************************************
LPPA-Containers {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+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 ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
@@ -28,7 +28,7 @@ IMPORTS
Criticality,
Presence,
PrivateIE-ID,
- ProtocolIE-ID
+ ProtocolIE-ID
FROM LPPA-CommonDataTypes;
-- **************************************************************
@@ -117,11 +117,11 @@ WITH SYNTAX {
--
-- **************************************************************
-ProtocolIE-Container { LPPA-PROTOCOL-IES : IEsSetParam} ::=
+ProtocolIE-Container { LPPA-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-Field {{IEsSetParam}}
-ProtocolIE-Single-Container { LPPA-PROTOCOL-IES : IEsSetParam} ::=
+ProtocolIE-Single-Container { LPPA-PROTOCOL-IES : IEsSetParam} ::=
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field { LPPA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
@@ -136,7 +136,7 @@ ProtocolIE-Field { LPPA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
--
-- **************************************************************
-ProtocolIE-ContainerPair { LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ProtocolIE-ContainerPair { LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-FieldPair {{IEsSetParam}}
@@ -168,7 +168,7 @@ ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, LPPA-P
--
-- **************************************************************
-ProtocolExtensionContainer { LPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ProtocolExtensionContainer { LPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
ProtocolExtensionField {{ExtensionSetParam}}
@@ -184,7 +184,7 @@ ProtocolExtensionField { LPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUEN
--
-- **************************************************************
-PrivateIE-Container { LPPA-PRIVATE-IES : IEsSetParam} ::=
+PrivateIE-Container { LPPA-PRIVATE-IES : IEsSetParam} ::=
SEQUENCE (SIZE (1..maxPrivateIEs)) OF
PrivateIE-Field {{IEsSetParam}}
diff --git a/epan/dissectors/asn1/lppa/LPPA-IEs.asn b/epan/dissectors/asn1/lppa/LPPA-IEs.asn
index ccc24203..ed89676f 100644
--- a/epan/dissectors/asn1/lppa/LPPA-IEs.asn
+++ b/epan/dissectors/asn1/lppa/LPPA-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.455 V16.1.0 (2020-09)
+-- 3GPP TS 36.455 V18.1.0 (2024-06)
--
-- **************************************************************
@@ -8,15 +8,15 @@
-- **************************************************************
LPPA-IEs {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+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 ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-IMPORTS
-
+IMPORTS
+
id-MeasurementQuantities-Item,
id-ResultsPerSSB-Index-List,
id-ResultsPerSSB-Index-Item,
@@ -54,7 +54,7 @@ FROM LPPA-CommonDataTypes
ProtocolExtensionContainer{},
ProtocolIE-Single-Container{},
-
+
LPPA-PROTOCOL-EXTENSION,
LPPA-PROTOCOL-IES
FROM LPPA-Containers;
@@ -350,7 +350,7 @@ MeasurementQuantitiesValue ::= ENUMERATED {
MeasuredResults ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF MeasuredResultsValue
-MeasuredResultsValue ::= CHOICE {
+MeasuredResultsValue ::= CHOICE {
valueAngleOfArrival INTEGER (0..719),
valueTimingAdvanceType1 INTEGER (0..7690),
valueTimingAdvanceType2 INTEGER (0..7690),
@@ -411,7 +411,7 @@ NPRSSubframePartB ::= SEQUENCE {
startingsubframeoffset ENUMERATED {zero, one-Eighth, two-Eighths, three-Eighths, four-Eighths, five-Eighths, six-Eighths, seven-Eighths, ...},
nPRSMutingConfiguration NPRSMutingConfiguration OPTIONAL,
...,
- sIB1-NB-Subframe-TDD ENUMERATED { sf0, sf4, sf0and5, ...} OPTIONAL
+ sIB1-NB-Subframe-TDD ENUMERATED { sf0, sf4, sf0and5, ...} OPTIONAL
}
@@ -497,7 +497,7 @@ OTDOACell-Information-Item ::= CHOICE {
tAC TAC,
eARFCN EARFCN,
pRS-Bandwidth PRS-Bandwidth,
- pRS-ConfigurationIndex PRS-Configuration-Index,
+ pRS-ConfigurationIndex PRS-Configuration-Index,
cPLength CPLength,
numberOfDlFrames NumberOfDlFrames,
numberOfAntennaPorts NumberOfAntennaPorts,
@@ -514,7 +514,7 @@ OTDOACell-Information-Item ::= CHOICE {
nPRSConfiguration NPRSConfiguration,
offsetNBChanneltoEARFCN OffsetNBChanneltoEARFCN,
operationModeInfo OperationModeInfo,
- nPRS-ID INTEGER (0..4095, ...),
+ nPRS-ID INTEGER (0..4095, ...),
dL-Bandwidth DL-Bandwidth,
pRSOccasionGroup PRSOccasionGroup,
pRSFreqHoppingConfig PRSFrequencyHoppingConfiguration,
@@ -599,31 +599,31 @@ PosSIB-Segments-ExtIEs LPPA-PROTOCOL-EXTENSION ::= {
PosSIB-Type ::= ENUMERATED {
- posSibType1-1,
- posSibType1-2,
- posSibType1-3,
- posSibType1-4,
+ posSibType1-1,
+ posSibType1-2,
+ posSibType1-3,
+ posSibType1-4,
posSibType1-5,
- posSibType1-6,
- posSibType1-7,
- posSibType2-1,
- posSibType2-2,
+ posSibType1-6,
+ posSibType1-7,
+ posSibType2-1,
+ posSibType2-2,
posSibType2-3,
- posSibType2-4,
- posSibType2-5,
- posSibType2-6,
- posSibType2-7,
+ posSibType2-4,
+ posSibType2-5,
+ posSibType2-6,
+ posSibType2-7,
posSibType2-8,
- posSibType2-9,
- posSibType2-10,
- posSibType2-11,
- posSibType2-12,
- posSibType2-13,
- posSibType2-14,
- posSibType2-15,
+ posSibType2-9,
+ posSibType2-10,
+ posSibType2-11,
+ posSibType2-12,
+ posSibType2-13,
+ posSibType2-14,
+ posSibType2-15,
posSibType2-16,
- posSibType2-17,
- posSibType2-18,
+ posSibType2-17,
+ posSibType2-18,
posSibType2-19,
posSibType3-1,
...,
@@ -819,7 +819,7 @@ SRSConfigurationForOneCell ::= SEQUENCE {
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
+ maxUpPts ENUMERATED {true} OPTIONAL, -- This IE shall be present if the UL-EARFCN IE refers to TDD operation. --
transmissionComb INTEGER (0..1),
freqDomainPosition INTEGER (0..23),
groupHoppingEnabled BOOLEAN,
diff --git a/epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn b/epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn
index 81c60b68..14e2c91c 100644
--- a/epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn
+++ b/epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.455 V16.1.0 (2020-09)
+-- 3GPP TS 36.455 V18.1.0 (2024-06)
--
-- **************************************************************
@@ -8,10 +8,10 @@
-- **************************************************************
LPPA-PDU-Contents {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+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 ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
@@ -22,7 +22,7 @@ BEGIN
-- **************************************************************
IMPORTS
-
+
Cause,
CriticalityDiagnostics,
E-CID-MeasurementResult,
@@ -43,7 +43,7 @@ IMPORTS
Assistance-Information,
Broadcast,
AssistanceInformationFailureList
-
+
FROM LPPA-IEs
PrivateIE-Container{},
@@ -81,7 +81,7 @@ FROM LPPA-Containers
id-Assistance-Information,
id-Broadcast,
id-AssistanceInformationFailureList
-
+
FROM LPPA-Constants;
-- **************************************************************
@@ -99,7 +99,7 @@ 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†--
+-- The IE shall be present if the Report Characteritics IE is set to the value “periodic†--
{ ID id-MeasurementQuantities CRITICALITY reject TYPE MeasurementQuantities PRESENCE mandatory}|
{ ID id-InterRATMeasurementQuantities CRITICALITY ignore TYPE InterRATMeasurementQuantities PRESENCE optional}|
{ ID id-WLANMeasurementQuantities CRITICALITY ignore TYPE WLANMeasurementQuantities PRESENCE optional},
@@ -192,7 +192,7 @@ E-CIDMeasurementReport-IEs LPPA-PROTOCOL-IES ::= {
-- **************************************************************
--
--- E-CID MEASUREMENT TERMINATION
+-- E-CID MEASUREMENT TERMINATION COMMAND
--
-- **************************************************************
@@ -391,7 +391,7 @@ ErrorIndication ::= SEQUENCE {
}
ErrorIndication-IEs LPPA-PROTOCOL-IES ::= {
-
+
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
...
diff --git a/epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn b/epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn
index e35d1aa2..a8c1466a 100644
--- a/epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.455 V16.1.0 (2020-09)
+-- 3GPP TS 36.455 V18.1.0 (2024-06)
--
-- **************************************************************
@@ -11,7 +11,7 @@ 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 ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
diff --git a/epan/dissectors/asn1/lppa/lppa.cnf b/epan/dissectors/asn1/lppa/lppa.cnf
index a0a4381c..15c20f3e 100644
--- a/epan/dissectors/asn1/lppa/lppa.cnf
+++ b/epan/dissectors/asn1/lppa/lppa.cnf
@@ -1,6 +1,6 @@
# lppa.cnf
# llpa conformation file
-# Copyright 2011-2020 Pascal Quantin
+# Copyright 2011-2024 Pascal Quantin
#.OPT
PER
@@ -39,7 +39,8 @@ ProtocolExtensionField/id ext_id
#.FN_FTR ProtocolIE-ID
if (tree) {
- proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(lppa_data->protocol_ie_id, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)"));
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
+ val_to_str(lppa_data->protocol_ie_id, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)"));
}
#.END
@@ -49,8 +50,8 @@ ProtocolExtensionField/id ext_id
%(DEFAULT_BODY)s
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ",
- val_to_str(lppa_data->procedure_code, lppa_ProcedureCode_vals,
- "unknown message"));
+ val_to_str_const(lppa_data->procedure_code, lppa_ProcedureCode_vals,
+ "unknown message"));
#.END
#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
diff --git a/epan/dissectors/asn1/lppa/packet-lppa-template.c b/epan/dissectors/asn1/lppa/packet-lppa-template.c
index 56277499..111693c4 100644
--- a/epan/dissectors/asn1/lppa/packet-lppa-template.c
+++ b/epan/dissectors/asn1/lppa/packet-lppa-template.c
@@ -1,6 +1,6 @@
/* packet-lppa.c
* Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection
- * Copyright 2011-2019, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2011-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 36.455 version 16.1.0 (2020-09)
+ * Ref 3GPP TS 36.455 version 18.1.0 (2024-06)
* http://www.3gpp.org
*/
@@ -17,6 +17,7 @@
#include <epan/packet.h>
#include <epan/proto_data.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-lppa.h"
@@ -29,12 +30,12 @@ void proto_register_lppa(void);
void proto_reg_handoff_lppa(void);
/* Initialize the protocol and registered fields */
-static int proto_lppa = -1;
+static int proto_lppa;
#include "packet-lppa-hf.c"
/* Initialize the subtree pointers */
-static gint ett_lppa = -1;
+static int ett_lppa;
#include "packet-lppa-ett.c"
enum {
@@ -60,10 +61,10 @@ static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
struct lppa_private_data {
- guint32 procedure_code;
- guint32 protocol_ie_id;
- guint32 protocol_extension_id;
- guint32 message_type;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
+ uint32_t protocol_extension_id;
+ uint32_t message_type;
};
static struct lppa_private_data*
@@ -91,7 +92,7 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
lppa_ctx.ProtocolIE_ID = lppa_data->protocol_ie_id;
lppa_ctx.ProtocolExtensionID = lppa_data->protocol_extension_id;
- return (dissector_try_uint_new(lppa_ies_dissector_table, lppa_ctx.ProtocolIE_ID, tvb, pinfo, tree, FALSE, &lppa_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(lppa_ies_dissector_table, lppa_ctx.ProtocolIE_ID, tvb, pinfo, tree, false, &lppa_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -104,26 +105,26 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in
lppa_ctx.ProtocolIE_ID = lppa_data->protocol_ie_id;
lppa_ctx.ProtocolExtensionID = lppa_data->protocol_extension_id;
- return (dissector_try_uint_new(lppa_extension_dissector_table, lppa_ctx.ProtocolExtensionID, tvb, pinfo, tree, FALSE, &lppa_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(lppa_extension_dissector_table, lppa_ctx.ProtocolExtensionID, tvb, pinfo, tree, false, &lppa_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
- return (dissector_try_uint_new(lppa_proc_imsg_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(lppa_proc_imsg_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
- return (dissector_try_uint_new(lppa_proc_sout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(lppa_proc_sout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo);
- return (dissector_try_uint_new(lppa_proc_uout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(lppa_proc_uout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
/*--- proto_register_lppa -------------------------------------------*/
@@ -136,7 +137,7 @@ void proto_register_lppa(void) {
};
/* List of subtrees */
- static gint* ett[] = {
+ static int* ett[] = {
&ett_lppa,
#include "packet-lppa-ettarr.c"
};
diff --git a/epan/dissectors/asn1/lppa/packet-lppa-template.h b/epan/dissectors/asn1/lppa/packet-lppa-template.h
index 7e85331d..dafc19c4 100644
--- a/epan/dissectors/asn1/lppa/packet-lppa-template.h
+++ b/epan/dissectors/asn1/lppa/packet-lppa-template.h
@@ -12,10 +12,10 @@
#define PACKET_LPPA_H
typedef struct _lppa_ctx_t {
- guint32 message_type;
- guint32 ProcedureCode;
- guint32 ProtocolIE_ID;
- guint32 ProtocolExtensionID;
+ uint32_t message_type;
+ uint32_t ProcedureCode;
+ uint32_t ProtocolIE_ID;
+ uint32_t ProtocolExtensionID;
} lppa_ctx_t;
diff --git a/epan/dissectors/asn1/lppe/lppe.cnf b/epan/dissectors/asn1/lppe/lppe.cnf
index c6a6e790..9e5ec169 100644
--- a/epan/dissectors/asn1/lppe/lppe.cnf
+++ b/epan/dissectors/asn1/lppe/lppe.cnf
@@ -35,7 +35,7 @@ OMA-LPPe-WLAN-LocationDataLCI/altitude ABBREV=oMA-LPPe-WLAN-LocationDat
#.FN_BODY OMA-LPPe-Uri
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:/?#[]@!$&'()*+,;=-._~%%", 85,
+ NO_BOUND, NO_BOUND, false, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:/?#[]@!$&'()*+,;=-._~%%", 85,
NULL);
#.FN_BODY OMA-LPPe-CivicLocation-pidf-lo/civicLocation VAL_PTR = &xml_tvb
diff --git a/epan/dissectors/asn1/lppe/packet-lppe-template.c b/epan/dissectors/asn1/lppe/packet-lppe-template.c
index 8d8c488d..7ff33a08 100644
--- a/epan/dissectors/asn1/lppe/packet-lppe-template.c
+++ b/epan/dissectors/asn1/lppe/packet-lppe-template.c
@@ -16,6 +16,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-lpp.h"
@@ -33,15 +34,15 @@ void proto_register_lppe(void);
void proto_reg_handoff_lppe(void);
/* Initialize the protocol and registered fields */
-static int proto_lppe = -1;
+static int proto_lppe;
static dissector_handle_t xml_handle;
#include "packet-lppe-hf.c"
/* Initialize the subtree pointers */
-static gint ett_lppe = -1;
-static gint ett_lppe_civicLocation = -1;
+static int ett_lppe;
+static int ett_lppe_civicLocation;
#include "packet-lppe-ett.c"
/* Include constants */
@@ -61,7 +62,7 @@ void proto_register_lppe(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_lppe,
&ett_lppe_civicLocation,
#include "packet-lppe-ettarr.c"
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
index 1bb4be95..8fa13552 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
index dbb01f78..09ea1843 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
@@ -690,6 +690,11 @@ LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE {
LoggedMeasurementConfiguration-v1700-IEs ::= SEQUENCE {
loggedEventTriggerConfig-r17 LoggedEventTriggerConfig-r17 OPTIONAL, --Need OR
measUncomBarPre-r17 ENUMERATED {true} OPTIONAL, --Need OR
+ nonCriticalExtension LoggedMeasurementConfiguration-v1800-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1800-IEs ::= SEQUENCE {
+ sigLoggedMeasType-r18 ENUMERATED {true} OPTIONAL, --Need OR
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -723,7 +728,7 @@ MasterInformationBlock ::= SEQUENCE {
systemFrameNumber BIT STRING (SIZE (8)),
schedulingInfoSIB1-BR-r13 INTEGER (0..31),
systemInfoUnchanged-BR-r15 BOOLEAN,
- partEARFCN-17 CHOICE {
+ partEARFCN-r17 CHOICE {
spare BIT STRING (SIZE (2)),
earfcn-LSB BIT STRING (SIZE (2))
},
@@ -1669,7 +1674,12 @@ RRCConnectionReconfigurationComplete-v1700-IEs ::= SEQUENCE {
RRCConnectionReconfigurationComplete-v1710-IEs ::= SEQUENCE {
gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1800-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1800-IEs ::= SEQUENCE {
+ gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -1745,7 +1755,12 @@ RRCConnectionReestablishmentComplete-v1530-IEs ::= SEQUENCE {
RRCConnectionReestablishmentComplete-v1710-IEs ::= SEQUENCE {
gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1800-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1800-IEs ::= SEQUENCE {
+ gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -2177,12 +2192,12 @@ RRCConnectionResume-r13-IEs ::= SEQUENCE {
antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON
drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP
lateNonCriticalExtension OCTET STRING OPTIONAL,
- rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL
+ nonCriticalExtension RRCConnectionResume-v1430-IEs OPTIONAL
}
RRCConnectionResume-v1430-IEs ::= SEQUENCE {
otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON
- rrcConnectionResume-v1510-IEs RRCConnectionResume-v1510-IEs OPTIONAL
+ nonCriticalExtension RRCConnectionResume-v1510-IEs OPTIONAL
}
RRCConnectionResume-v1510-IEs ::= SEQUENCE {
@@ -2258,7 +2273,12 @@ RRCConnectionResumeComplete-v1610-IEs ::= SEQUENCE {
RRCConnectionResumeComplete-v1710-IEs ::= SEQUENCE {
gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL,
- nonCriticalExtension SEQUENCE{} OPTIONAL
+ nonCriticalExtension RRCConnectionResumeComplete-v1800-IEs OPTIONAL
+}
+
+RRCConnectionResumeComplete-v1800-IEs ::= SEQUENCE {
+ gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
}
@@ -2429,7 +2449,12 @@ RRCConnectionSetupComplete-v1690-IEs ::= SEQUENCE {
}
RRCConnectionSetupComplete-v1710-IEs ::= SEQUENCE {
- gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+ gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension RRCConnectionSetupComplete-v1800-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1800-IEs ::= SEQUENCE {
+ gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
RegisteredMME ::= SEQUENCE {
@@ -2818,7 +2843,8 @@ SystemInformation-r8-IEs ::= SEQUENCE {
sib29-v1610 SystemInformationBlockType29-r16,
sib30-v1700 SystemInformationBlockType30-r17,
sib31-v1700 SystemInformationBlockType31-r17,
- sib32-v1700 SystemInformationBlockType32-r17
+ sib32-v1700 SystemInformationBlockType32-r17,
+ sib33-v1800 SystemInformationBlockType33-r18
},
nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL
}
@@ -2872,6 +2898,17 @@ PosSystemInformation-r15-IEs ::= SEQUENCE {
[[
posSib1-9-v1700 SystemInformationBlockPos-r15,
posSib1-10-v1700 SystemInformationBlockPos-r15
+ ]],
+ [[
+ posSib2-17a-v1770 SystemInformationBlockPos-r15,
+ posSib2-18a-v1770 SystemInformationBlockPos-r15,
+ posSib2-20a-v1770 SystemInformationBlockPos-r15
+ ]],
+ [[
+ posSib1-11-v1800 SystemInformationBlockPos-r15,
+ posSib1-12-v1800 SystemInformationBlockPos-r15,
+ posSib2-26-v1800 SystemInformationBlockPos-r15,
+ posSib2-27-v1800 SystemInformationBlockPos-r15
]]
},
lateNonCriticalExtension OCTET STRING OPTIONAL,
@@ -3078,7 +3115,14 @@ SystemInformationBlockType1-v1700-IEs ::= SEQUENCE {
cellBarred-NTN-r17 ENUMERATED {barred, notBarred},
plmn-IdentityList-v1700 PLMN-IdentityList-v1700 OPTIONAL -- Need OR
} OPTIONAL, -- Need OR
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension SystemInformationBlockType1-v1800-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1800-IEs ::= SEQUENCE {
+ freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Need OR
+ freqBandInfoAerial-r18 NS-PmaxListAerial-r18 OPTIONAL, -- Need OR
+ multiBandInfoListAerial-r18 MultiBandInfoListAerial-r18 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo
@@ -3169,7 +3213,7 @@ SIB-Type-v12j0 ::= ENUMERATED {
sibType24-v1530, sibType25-v1530, sibType26-v1530,
sibType26a-v1610, sibType27-v1610, sibType28-v1610,
sibType29-v1610, sibType30-v1700, sibType31-v1700, sibType32-v1700,
- spare3, spare2, spare1, ...}
+ sibType33-v1800, spare2, spare1, ...}
SI-Periodicity-r12 ::= ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512}
@@ -3261,7 +3305,13 @@ PosSIB-Type-r15 ::= SEQUENCE {
posSibType4-1-v1610,
posSibType5-1-v1610,
posSibType1-9-v1700,
- posSibType1-10-v1700
+ posSibType1-10-v1700,
+ posSibType2-17a-v1770,
+ posSibType2-18a-v1770,
+ posSibType2-20a-v1770,
+ posSibType1-11-v1800,
+ posSibType1-12-v1800,
+ posSibType2-26-v1800, posSibType2-27-v1800
},
...
}
@@ -3590,7 +3640,12 @@ UEInformationRequest-v1530-IEs ::= SEQUENCE {
UEInformationRequest-v1710-IEs ::= SEQUENCE {
coarseLocationReq-r17 ENUMERATED {true} OPTIONAL, -- Need ON
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension UEInformationRequest-v1800-IEs OPTIONAL
+}
+
+UEInformationRequest-v1800-IEs ::= SEQUENCE {
+ rach-ReportReqNR-r18 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -3652,7 +3707,12 @@ UEInformationResponse-v1610-IEs ::= SEQUENCE {
}
UEInformationResponse-v1710-IEs ::= SEQUENCE {
- coarseLocationInfo-r17 OCTET STRING OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+ coarseLocationInfo-r17 OCTET STRING OPTIONAL, nonCriticalExtension UEInformationResponse-v1800-IEs OPTIONAL
+}
+
+UEInformationResponse-v1800-IEs ::= SEQUENCE {
+ rach-ReportNR-r18 RACH-ReportNR-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
RACH-Report-r16 ::= SEQUENCE {
@@ -3665,6 +3725,21 @@ RACH-Report-v1610 ::= SEQUENCE {
edt-Fallback-r16 BOOLEAN
}
+RACH-ReportNR-r18 ::= SEQUENCE {
+ rach-ReportListNR-r18 OCTET STRING,
+ cellIdListNR-r18 CellIdListNR-r18
+}
+
+CellIdListNR-r18 ::= SEQUENCE (SIZE (1..maxCellRAReportNR-r18)) OF CellIdNR-r18
+
+CellIdNR-r18 ::= CHOICE {
+ cellGlobalId-r18 CellGlobalIdNR-r16,
+ pci-arfcn-r18 SEQUENCE {
+ physCellId-r18 PhysCellIdNR-r15,
+ carrierFreq-r18 ARFCN-ValueNR-r15
+ }
+}
+
RLF-Report-r9 ::= SEQUENCE {
measResultLastServCell-r9 SEQUENCE {
rsrpResult-r9 RSRP-Range,
@@ -3753,7 +3828,10 @@ RLF-Report-r9 ::= SEQUENCE {
[[ measResultListNR-v1640 SEQUENCE {
carrierFreqNR-r16 ARFCN-ValueNR-r15
} OPTIONAL,
- measResultListExtNR-r16 MeasResultFreqListNR-r16 OPTIONAL
+ measResultListExtNR-r16 MeasResultFreqListNR-r16 OPTIONAL
+ ]],
+ [[
+ voiceFallbackHO-r18 ENUMERATED {true} OPTIONAL
]]
}
@@ -4121,7 +4199,7 @@ SystemInformationBlockType2 ::= SEQUENCE {
idleModeMeasurements-r15 ENUMERATED {true} OPTIONAL, -- Need OR
reducedCP-LatencyEnabled-r15 ENUMERATED {true} OPTIONAL -- Need OR
]],
- [[ mbms-ROM-ServiceIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR
+ [[ mbms-ROM-ServiceIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR
]],
[[ rlos-Enabled-r16 ENUMERATED {true} OPTIONAL, -- Need OR
earlySecurityReactivation-r16 ENUMERATED {true} OPTIONAL, -- Need OR
@@ -4134,6 +4212,12 @@ SystemInformationBlockType2 ::= SEQUENCE {
mpdcch-CQI-Reporting-r16 ENUMERATED {fourBits, both} OPTIONAL, -- Need OR
rai-ActivationEnh-r16 ENUMERATED {true} OPTIONAL, -- Need OR
idleModeMeasurementsNR-r16 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ gnss-PositionFixDurationReporting-r18 ENUMERATED {true} OPTIONAL, -- Need OR
+ freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Need OR
+ freqInfoAerial-r18 AdditionalSpectrumEmission-r18 OPTIONAL, -- Need OR
+ multiBandInfoListAerial-r18 SEQUENCE (SIZE (1..maxMultiBands)) OF
+ AdditionalSpectrumEmission-r18 OPTIONAL -- Need OR
]]
}
@@ -4320,6 +4404,11 @@ SystemInformationBlockType3 ::= SEQUENCE {
[[ cellReselectionServingFreqInfo-v1610 CellReselectionServingFreqInfo-v1610 OPTIONAL -- Need OR
]],
[[ t-Service-r17 TimeOffsetUTC-r17 OPTIONAL -- Need OR
+ ]],
+ [[ satelliteAssistanceInfoList-r18
+ SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18 OPTIONAL, -- Need OR
+ freqBandInfoAerial-r18 NS-PmaxListAerial-r18 OPTIONAL, -- Need OR
+ multiBandInfoListAerial-r18 MultiBandInfoListAerial-r18 OPTIONAL -- Need OR
]]
}
@@ -4420,6 +4509,9 @@ SystemInformationBlockType5 ::= SEQUENCE {
[[ interFreqCarrierFreqList-v1610 InterFreqCarrierFreqList-v1610 OPTIONAL, -- Need OR
interFreqCarrierFreqListExt-v1610 InterFreqCarrierFreqListExt-v1610 OPTIONAL, -- Need OR
measIdleConfigSIB-NR-r16 MeasIdleConfigSIB-NR-r16 OPTIONAL -- Need OR
+ ]],
+ [[ interFreqCarrierFreqList-v1800 InterFreqCarrierFreqList-v1800 OPTIONAL, -- Need OR
+ interFreqCarrierFreqListExt-v1800 InterFreqCarrierFreqListExt-v1800 OPTIONAL -- Need OR
]]
}
@@ -4466,6 +4558,8 @@ InterFreqCarrierFreqList-v1530 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarr
InterFreqCarrierFreqList-v1610 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1610
+InterFreqCarrierFreqList-v1800 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1800
+
InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-r12
InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0
@@ -4480,6 +4574,8 @@ InterFreqCarrierFreqListExt-v1530 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqC
InterFreqCarrierFreqListExt-v1610 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1610
+InterFreqCarrierFreqListExt-v1800 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1800
+
InterFreqCarrierFreqInfo ::= SEQUENCE {
dl-CarrierFreq ARFCN-ValueEUTRA,
q-RxLevMin Q-RxLevMin,
@@ -4585,6 +4681,15 @@ InterFreqCarrierFreqInfo-v1610 ::= SEQUENCE {
interFreqNeighCellList-v1610 InterFreqNeighCellList-v1610 OPTIONAL -- Cond RSS
}
+
+InterFreqCarrierFreqInfo-v1800 ::= SEQUENCE {
+ satelliteAssistanceInfoList-r18 SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18
+ OPTIONAL, -- Need OR
+ freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Need OR
+ freqBandInfoAerial-r18 NS-PmaxListAerial-r18 OPTIONAL, -- Need OR
+ multiBandInfoListAerial-r18 MultiBandInfoListAerial-r18 OPTIONAL -- Need OR
+}
+
InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
InterFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo-v1610
@@ -5216,6 +5321,8 @@ SystemInformationBlockType21-r14 ::= SEQUENCE {
lateNonCriticalExtension OCTET STRING OPTIONAL,
...,
[[ anchorCarrierFreqListNR-r16 SL-NR-AnchorCarrierFreqList-r16 OPTIONAL -- Need OR
+ ]],
+ [[ sl-A2X-ConfigCommon-r18 SL-A2X-ConfigCommon-r18 OPTIONAL -- Need OR
]]
}
@@ -5235,6 +5342,10 @@ SL-V2X-ConfigCommon-r14 ::= SEQUENCE {
cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR
}
+SL-A2X-ConfigCommon-r18 ::= SEQUENCE {
+ a2x-CommRxPool-r18 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR
+ a2x-commTxPool-r18 SL-CommTxPoolListV2X-r14 OPTIONAL -- Need OR
+}
SystemInformationBlockType24-r15 ::= SEQUENCE {
@@ -5248,6 +5359,8 @@ SystemInformationBlockType24-r15 ::= SEQUENCE {
[[ carrierFreqListNR-v1700 CarrierFreqListNR-v1700 OPTIONAL -- Need OR
]],
[[ carrierFreqListNR-v1720 CarrierFreqListNR-v1720 OPTIONAL -- Need OR
+ ]],
+ [[ carrierFreqListNR-v1810 CarrierFreqListNR-v1810 OPTIONAL -- Need OR
]]
}
@@ -5259,6 +5372,8 @@ CarrierFreqListNR-v1700 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1700
CarrierFreqListNR-v1720 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1720
+CarrierFreqListNR-v1810 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1810
+
CarrierFreqNR-r15 ::= SEQUENCE {
carrierFreq-r15 ARFCN-ValueNR-r15,
multiBandInfoList-r15 MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR
@@ -5286,6 +5401,10 @@ CarrierFreqNR-r15 ::= SEQUENCE {
[[ multiBandNsPmaxListNR-v1550 MultiBandNsPmaxListNR-1-v1550 OPTIONAL, -- Need OR
multiBandNsPmaxListNR-SUL-v1550 MultiBandNsPmaxListNR-v1550 OPTIONAL, -- Need OR
ssb-ToMeasure-r15 SSB-ToMeasure-r15 OPTIONAL -- Need OR
+ ]],
+ [[ ns-PmaxListNR-v1760 NS-PmaxListNR-v1760 OPTIONAL, -- Need OR
+ multiBandNsPmaxListNR-v1760 MultiBandNsPmaxListNR-1-v1760 OPTIONAL, -- Need OR
+ multiBandNsPmaxListNR-SUL-v1760 MultiBandNsPmaxListNR-v1760 OPTIONAL -- Need OR
]]
}
@@ -5305,10 +5424,26 @@ CarrierFreqNR-v1720 ::= SEQUENCE {
ssb-PositionQCL-CommonNR-r17 SSB-PositionQCL-RelationNR-r17 OPTIONAL -- Cond SharedSpectrum2
}
+CarrierFreqNR-v1810 ::= SEQUENCE {
+ carrierFreq-r18 ARFCN-ValueNR-r15 OPTIONAL, -- Cond LessThan5MHz
+ multiBandInfoList-r18 MultiFrequencyBandListNR-r15 OPTIONAL, -- Cond LessThan5MHz
+ multiBandInfoListAerial-r18 MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR
+ ns-PmaxListNR-Aerial-r18 NS-PmaxListNR-Aerial-r18 OPTIONAL, -- Need OR
+ multiBandNsPmaxListNR-Aerial-r18 MultiBandNsPmaxListNR-Aerial-1-r18 OPTIONAL, -- Need OR
+ mobileIAB-CellList-r18 PhysCellIdRangeNR-r16 OPTIONAL, -- Need OR
+ mobileIAB-Freq-r18 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
MultiBandNsPmaxListNR-1-v1550 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-r15
MultiBandNsPmaxListNR-v1550 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-r15)) OF NS-PmaxListNR-r15
+MultiBandNsPmaxListNR-1-v1760 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-v1760
+
+MultiBandNsPmaxListNR-v1760 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-r15)) OF NS-PmaxListNR-v1760
+
+MultiBandNsPmaxListNR-Aerial-1-r18 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-Aerial-r18
+
AllowedCellListNR-r16 ::= SEQUENCE (SIZE (1..maxCellAllowedNR-r16)) OF PhysCellIdNR-r15
NR-FreqNeighHSDN-CellList-r17 ::= SEQUENCE (SIZE (1..maxCellNR-r17)) OF PhysCellIdRangeNR-r16
@@ -5455,7 +5590,9 @@ ApplicableDisasterInfo-r17 ::= CHOICE {
SystemInformationBlockType31-r17 ::= SEQUENCE {
servingSatelliteInfo-r17 ServingSatelliteInfo-r17,
lateNonCriticalExtension OCTET STRING OPTIONAL,
- ...
+ ...,
+ [[ servingSatelliteInfo-v1820 ServingSatelliteInfo-v1820 OPTIONAL -- Need OR
+ ]]
}
ServingSatelliteInfo-r17 ::= SEQUENCE {
@@ -5463,7 +5600,7 @@ ServingSatelliteInfo-r17 ::= SEQUENCE {
stateVectors EphemerisStateVectors-r17,
orbitalParameters EphemerisOrbitalParameters-r17
},
- nta-CommonParameters-17 SEQUENCE {
+ nta-CommonParameters-r17 SEQUENCE {
nta-Common-r17 INTEGER (0..8316827) OPTIONAL, -- Need OP
nta-CommonDrift-r17 INTEGER (-261935..261935) OPTIONAL, -- Need OP
nta-CommonDriftVariation-r17 INTEGER (0..29479) OPTIONAL -- Need OP
@@ -5479,15 +5616,28 @@ ServingSatelliteInfo-r17 ::= SEQUENCE {
...
}
+ServingSatelliteInfo-v1820 ::= SEQUENCE {
+ satelliteId-r18 SatelliteId-r18 OPTIONAL, -- Need OR
+ referenceLocation-r18 CHOICE {
+ fixedReferenceLocation-r18 ReferenceLocation-r18,
+ movingReferenceLocation-r18 ReferenceLocation-r18
+ } OPTIONAL, -- Need OR
+ distanceThresh-r18 INTEGER(0..65535) OPTIONAL -- Need OR
+}
+
SystemInformationBlockType32-r17 ::= SEQUENCE {
satelliteInfoList-r17 SatelliteInfoList-r17 OPTIONAL, -- Need OR
lateNonCriticalExtension OCTET STRING OPTIONAL,
- ...
+ ...,
+ [[ satelliteInfoList-v1800 SatelliteInfoList-v1800 OPTIONAL -- Need OR
+ ]]
}
SatelliteInfoList-r17 ::= SEQUENCE (SIZE (1..maxSat-r17)) OF SatelliteInfo-r17
+SatelliteInfoList-v1800 ::= SEQUENCE (SIZE (1..maxSat-r17)) OF CarrierFreqList-v1800
+
SatelliteInfo-r17 ::= SEQUENCE {
satelliteId-r17 INTEGER (0..255),
serviceInfo-r17 SEQUENCE {
@@ -5507,6 +5657,39 @@ SatelliteInfo-r17 ::= SEQUENCE {
}
}
+CarrierFreqList-v1800 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA
+
+
+SystemInformationBlockType33-r18 ::= SEQUENCE {
+ neighSatelliteInfoList-r18 NeighSatelliteInfoList-r18 OPTIONAL, -- Need OR
+ neighValidityDuration-r18 ENUMERATED {s5, s10, s15, s20, s25, s30, s35, s40,
+ s45, s50, s55, s60, s120, s180, s240, s900}
+ OPTIONAL, -- Need OP
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+NeighSatelliteInfoList-r18 ::= SEQUENCE (SIZE(1..maxSat-r17)) OF NeighSatelliteInfo-r18
+
+NeighSatelliteInfo-r18 ::= SEQUENCE {
+ satelliteId-r18 SatelliteId-r18,
+ ephemerisInfo-r18 CHOICE {
+ stateVectors-r18 EphemerisStateVectors-r17,
+ orbitalParameters-r18 EphemerisOrbitalParameters-r17
+ },
+ nta-CommonParameters-r18 SEQUENCE {
+ nta-Common-r18 INTEGER (0..8316827) OPTIONAL, -- Need OP
+ nta-CommonDrift-r18 INTEGER (-261935..261935) OPTIONAL, -- Need OP
+ nta-CommonDriftVariation-r18 INTEGER (0..29479) OPTIONAL -- Need OP
+ },
+ epochTime-r18 SEQUENCE {
+ startSFN-r18 INTEGER (0..1023),
+ startSubFrame-r18 INTEGER (0..9)
+ } OPTIONAL, -- Need OP
+ k-Mac-r18 INTEGER (1..512) OPTIONAL, -- Need OP
+ t-ServiceStartNeigh-r18 TimeOffsetUTC-r17 OPTIONAL -- Need OR
+}
+
Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}
@@ -6567,6 +6750,9 @@ LogicalChannelConfig ::= SEQUENCE {
]],
[[
bitRateMultiplier-r16 ENUMERATED {x40, x70, x100, x200} OPTIONAL -- Need OR
+ ]],
+ [[
+ allowedHARQ-Mode-r18 ENUMERATED {harqModeA, harqModeB} OPTIONAL -- Need OR
]]
}
@@ -7107,6 +7293,12 @@ PDSCH-ConfigDedicated-v1700 ::= SEQUENCE {
ce-PDSCH-maxTBS-r17 ENUMERATED {enabled} OPTIONAL -- Need OR
}
+PDSCH-ConfigDedicated-v1800 ::= SEQUENCE {
+ downlinkHARQ-FeedbackDisabledBitmap-r18
+ CHOICE {release NULL, setup DownlinkHARQ-FeedbackDisabledBitmap-r18} OPTIONAL, -- Need ON
+ downlinkHARQ-FeedbackDisabledDCI-r18 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE {
tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR
}
@@ -7162,6 +7354,8 @@ PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE {
]]
}
+DownlinkHARQ-FeedbackDisabledBitmap-r18 ::= BIT STRING (SIZE(14))
+
PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11)
@@ -7319,7 +7513,7 @@ PhysicalConfigDedicated ::= SEQUENCE {
cfi-Config-r15 CFI-Config-r15,
cfi-PatternConfig-r15 CFI-PatternConfig-r15
}
- } OPTIONAL, -- Need ON
+ } OPTIONAL, -- Need ON
blindPDSCH-Repetition-Config-r15 CHOICE{
release NULL,
setup SEQUENCE {
@@ -7334,7 +7528,7 @@ PhysicalConfigDedicated ::= SEQUENCE {
mcs-restrictionSubframePDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL, -- Need ON
mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL -- Need ON
}
- } OPTIONAL -- Need ON
+ } OPTIONAL -- Need ON
]],
[[ spucch-Config-v1550 SPUCCH-Config-v1550 OPTIONAL -- Need ON
]],
@@ -7357,6 +7551,9 @@ PhysicalConfigDedicated ::= SEQUENCE {
]],
[[
uplinkSegmentedPrecompensationGap-r17 ENUMERATED {sym1,sl1,sf1} OPTIONAL -- Need OR
+ ]],
+ [[ pdsch-ConfigDedicated-v1800 PDSCH-ConfigDedicated-v1800 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1800 PUSCH-ConfigDedicated-v1800 OPTIONAL -- Need ON
]]
}
@@ -7501,7 +7698,7 @@ PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE {
cfi-Config-r15 CFI-Config-r15,
cfi-PatternConfig-r15 CFI-PatternConfig-r15
}
- } OPTIONAL, -- Need ON
+ } OPTIONAL, -- Need ON
blindPDSCH-Repetition-Config-r15 CHOICE{
release NULL,
setup SEQUENCE {
@@ -7516,7 +7713,7 @@ PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE {
mcs-restrictionSubframePDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL, -- Need ON
mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL -- Need ON
}
- } OPTIONAL -- Need ON
+ } OPTIONAL -- Need ON
]],
[[ spucch-Config-v1550 SPUCCH-Config-v1550 OPTIONAL -- Need ON
]],
@@ -7553,15 +7750,15 @@ PhysicalConfigDedicatedSCell-v1730 ::= SEQUENCE {
}
CFI-Config-r15 ::= SEQUENCE {
- cfi-SubframeNonMBSFN-r15 INTEGER (1..4) OPTIONAL, -- Need ON
- cfi-SlotSubslotNonMBSFN-r15 INTEGER (1..3) OPTIONAL, -- Need ON
- cfi-SubframeMBSFN-r15 INTEGER (1..2) OPTIONAL, -- Need ON
- cfi-SlotSubslotMBSFN-r15 INTEGER (1..2) OPTIONAL -- Need ON
+ cfi-SubframeNonMBSFN-r15 INTEGER (1..4) OPTIONAL, -- Need ON
+ cfi-SlotSubslotNonMBSFN-r15 INTEGER (1..3) OPTIONAL, -- Need ON
+ cfi-SubframeMBSFN-r15 INTEGER (1..2) OPTIONAL, -- Need ON
+ cfi-SlotSubslotMBSFN-r15 INTEGER (1..2) OPTIONAL -- Need ON
}
CFI-PatternConfig-r15 ::= SEQUENCE {
- cfi-PatternSubframe-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..4) OPTIONAL, -- Need ON
- cfi-PatternSlotSubslot-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..3) OPTIONAL -- Need ON
+ cfi-PatternSubframe-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..4) OPTIONAL, -- Need ON
+ cfi-PatternSlotSubslot-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..3) OPTIONAL -- Need ON
}
LAA-SCellConfiguration-r13 ::= SEQUENCE {
@@ -8214,6 +8411,10 @@ PUSCH-ConfigDedicated-v1610 ::= SEQUENCE {
ce-PUSCH-MultiTB-Config-r16 CHOICE {release NULL, setup CE-PUSCH-MultiTB-Config-r16}
}
+PUSCH-ConfigDedicated-v1800 ::= SEQUENCE {
+ uplinkHARQ-Mode-r18 CHOICE {release NULL, setup UplinkHARQ-Mode-r18}
+}
+
PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE {
groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR
dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR
@@ -8240,7 +8441,7 @@ TDD-PUSCH-UpPTS-r14 ::= CHOICE {
}
}
-CE-PUSCH-MultiTB-Config-r16 ::= SEQUENCE {
+CE-PUSCH-MultiTB-Config-r16 ::= SEQUENCE {
interleaving-r16 ENUMERATED {on} OPTIONAL -- Need OR
}
@@ -8282,6 +8483,8 @@ UL-ReferenceSignalsPUSCH ::= SEQUENCE {
cyclicShift INTEGER (0..7)
}
+UplinkHARQ-Mode-r18 ::= BIT STRING (SIZE(8))
+
RACH-ConfigCommon ::= SEQUENCE {
preambleInfo SEQUENCE {
@@ -8730,6 +8933,13 @@ RadioResourceConfigDedicated ::= SEQUENCE {
OPTIONAL, -- Cond Split-SRB1-SRB3
crs-ChEstMPDCCH-ConfigDedicated-r16 CHOICE {release NULL, setup CRS-ChEstMPDCCH-ConfigDedicated-r16} OPTIONAL, -- Need ON
newUE-Identity-r16 C-RNTI OPTIONAL -- Need OP
+ ]],
+ [[ harq-FeedbackEnablingforSPSactive-r18 ENUMERATED {enabled} OPTIONAL, -- Need OR
+ gnss-AutonomousEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR
+ ul-TransmissionExtensionEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR
+ ul-TransmissionExtensionValue-r18 ENUMERATED {sf500, sf750, sf1280, sf1920,
+ sf2560, sf5120, sf10240, spare1}
+ OPTIONAL -- Need OR
]]
}
@@ -10225,9 +10435,15 @@ AdditionalSpectrumEmission ::= INTEGER (1..32)
AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288)
+AdditionalSpectrumEmission-r18 ::= INTEGER (1..288)
+
AdditionalSpectrumEmissionNR-r15 ::= INTEGER (0..7)
+AdditionalSpectrumEmissionNR-v1760 ::= INTEGER (8..39)
+
+AdditionalSpectrumEmissionNR-r18 ::= INTEGER (0..39)
+
ARFCN-ValueCDMA2000 ::= INTEGER (0..2047)
@@ -10484,6 +10700,8 @@ MobilityControlInfo ::= SEQUENCE {
schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced
]],
[[ daps-Config-r16 DAPS-Config-r16 OPTIONAL -- Cond NotFullConfigHO
+ ]],
+ [[ gnss-PositionFixDurationReporting-r18 ENUMERATED {true} OPTIONAL -- Need OR
]]
}
@@ -10587,6 +10805,13 @@ MultiBandInfo-v9e0 ::= SEQUENCE {
freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP
}
+MultiBandInfoListAerial-r18 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfoAerial-r18
+
+MultiBandInfoAerial-r18 ::= SEQUENCE {
+ freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Cond NotSIB3
+ ns-PmaxListAerial-r18 NS-PmaxListAerial-r18 OPTIONAL -- Need OP
+}
+
MultiFrequencyBandListNR-r15 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-r15)) OF FreqBandIndicatorNR-r15
@@ -10595,6 +10820,8 @@ NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10
NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0
+NS-PmaxListAerial-r18 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValueAerial-r18
+
NS-PmaxValue-r10 ::= SEQUENCE {
additionalPmax-r10 P-Max OPTIONAL, -- Need OP
additionalSpectrumEmission AdditionalSpectrumEmission
@@ -10604,6 +10831,11 @@ NS-PmaxValue-v10l0 ::= SEQUENCE {
additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP
}
+NS-PmaxValueAerial-r18 ::= SEQUENCE {
+ additionalPmax-r18 P-Max OPTIONAL, -- Need OP
+ additionalSpectrumEmission-r18 AdditionalSpectrumEmission-r18 OPTIONAL -- Need OP
+}
+
NS-PmaxListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-r15
@@ -10612,6 +10844,19 @@ NS-PmaxValueNR-r15 ::= SEQUENCE {
additionalSpectrumEmissionNR-r15 AdditionalSpectrumEmissionNR-r15
}
+NS-PmaxListNR-v1760 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-v1760
+
+NS-PmaxValueNR-v1760 ::= SEQUENCE {
+ additionalSpectrumEmissionNR-v1760 AdditionalSpectrumEmissionNR-v1760 OPTIONAL -- Need OR
+}
+
+NS-PmaxListNR-Aerial-r18 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-Aerial-r18
+
+NS-PmaxValueNR-Aerial-r18 ::= SEQUENCE {
+ additionalPmaxNR-r18 P-MaxNR-r15 OPTIONAL, -- Need OP
+ additionalSpectrumEmissionNR-r18 AdditionalSpectrumEmissionNR-r18 OPTIONAL -- Need OP
+}
+
PhysCellId ::= INTEGER (0..503)
@@ -10804,6 +11049,9 @@ CSI-RSRP-Range-r12 ::= INTEGER(0..97)
Hysteresis ::= INTEGER (0..30)
+HysteresisLocation-r18 ::= INTEGER (0..32767)
+
+
LocationInfo-r10 ::= SEQUENCE {
locationCoordinates-r10 CHOICE {
ellipsoid-Point-r10 OCTET STRING,
@@ -10897,11 +11145,14 @@ MeasConfig ::= SEQUENCE {
[[ fr1-Gap-r15 BOOLEAN OPTIONAL, -- Need ON
mgta-r15 BOOLEAN OPTIONAL -- Need ON
]],
- [[ measGapConfigDensePRS-r15 MeasGapConfigDensePRS-r15 OPTIONAL, -- Need ON
+ [[ measGapConfigDensePRS-r15 MeasGapConfigDensePRS-r15 OPTIONAL, -- Need ON
heightThreshRef-r15 CHOICE {
release NULL,
setup INTEGER (0..31)
} OPTIONAL --Need ON
+ ]],
+ [[ timeMeasConfig-r18 ENUMERATED {true} OPTIONAL, -- Need OR
+ locationMeasConfig-r18 ENUMERATED {true} OPTIONAL -- Need OR
]]
}
@@ -11216,6 +11467,9 @@ MeasObjectEUTRA ::= SEQUENCE {
]],
[[
measRSS-DedicatedConfig-r16 CHOICE {release NULL, setup MeasRSS-DedicatedConfig-r16} OPTIONAL -- Need ON
+ ]],
+ [[
+ cellsToAddModList-v1810 CellsToAddModList-v1810 OPTIONAL -- Need ON
]]
}
@@ -11231,6 +11485,7 @@ MeasRSS-DedicatedConfig-r16 ::= SEQUENCE {
CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod
CellsToAddModList-v1610 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod-v1610
+CellsToAddModList-v1810 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod-v1810
CellsToAddMod ::= SEQUENCE {
cellIndex INTEGER (1..maxCellMeas),
@@ -11242,6 +11497,18 @@ CellsToAddMod-v1610 ::= SEQUENCE {
rss-MeasPowerBias-r16 RSS-MeasPowerBias-r16
}
+CellsToAddMod-v1810 ::= SEQUENCE {
+ satelliteId-r18 SatelliteId-r18 OPTIONAL, -- Need OR
+ ephemerisInfo-r18 CHOICE {
+ stateVectors-r18 EphemerisStateVectors-r17,
+ orbitalParameters-r18 EphemerisOrbitalParameters-r17
+ } OPTIONAL, -- Need OR
+ epochTime-r18 SEQUENCE {
+ startSFN-r18 INTEGER (0..1023),
+ startSubFrame-r18 INTEGER (0..9)
+ } OPTIONAL, -- Cond Moving
+ referenceLocation-r18 ReferenceLocation-r18 OPTIONAL -- Cond Moving
+}
ExcludedCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF ExcludedCellsToAddMod
@@ -12025,6 +12292,9 @@ QuantityConfigWLAN-r13 ::= SEQUENCE {
}
+ReferenceLocation-r18 ::= OCTET STRING
+
+
ReportConfigEUTRA ::= SEQUENCE {
triggerType CHOICE {
event SEQUENCE {
@@ -12073,6 +12343,20 @@ ReportConfigEUTRA ::= SEQUENCE {
eventH2-r15 SEQUENCE {
h2-ThresholdOffset-r15 INTEGER (0..300),
h2-Hysteresis-r15 INTEGER (1..16)
+ },
+ eventD1-r18 SEQUENCE {
+ distanceThreshFromReference1-r18 INTEGER(0.. 65535),
+ distanceThreshFromReference2-r18 INTEGER(0.. 65535),
+ referenceLocation1-r18 ReferenceLocation-r18,
+ referenceLocation2-r18 ReferenceLocation-r18,
+ hysteresisLocation-r18 HysteresisLocation-r18,
+ reportOnLeave-r18 BOOLEAN
+ },
+ eventD2-r18 SEQUENCE {
+ distanceThreshFromReference1-r18 INTEGER(0.. 65535),
+ distanceThreshFromReference2-r18 INTEGER(0.. 65535),
+ hysteresisLocation-r18 HysteresisLocation-r18,
+ reportOnLeave-r18 BOOLEAN
}
},
hysteresis Hysteresis,
@@ -12159,7 +12443,32 @@ CondReconfigurationTriggerEUTRA-r16 ::= SEQUENCE {
hysteresis-r16 Hysteresis,
timeToTrigger-r16 TimeToTrigger
},
- ...
+ ...,
+ [[
+ condEventA4-r18 SEQUENCE {
+ a4-Threshold-r18 ThresholdEUTRA,
+ hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger
+ },
+ condEventD1-r18 SEQUENCE {
+ distanceThreshFromReference1-r18 INTEGER(0.. 65535),
+ distanceThreshFromReference2-r18 INTEGER(0.. 65535),
+ referenceLocation1-r18 ReferenceLocation-r18,
+ referenceLocation2-r18 ReferenceLocation-r18,
+ hysteresisLocation-r18 HysteresisLocation-r18,
+ timeToTrigger-r18 TimeToTrigger
+ },
+ condEventD2-r18 SEQUENCE {
+ distanceThreshFromReference1-r18 INTEGER(0.. 65535),
+ distanceThreshFromReference2-r18 INTEGER(0.. 65535),
+ hysteresisLocation-r18 HysteresisLocation-r18,
+ timeToTrigger-r18 TimeToTrigger
+ },
+ condEventT1-r18 SEQUENCE {
+ t1-Threshold-r18 TimeOffsetUTC-r17,
+ duration-r18 INTEGER (1..6000)
+ }
+ ]]
}
}
@@ -12523,6 +12832,10 @@ GNSS-ID-r15 ::= SEQUENCE {
}
+GNSS-PositionFixDuration-r18 ::= ENUMERATED{
+ s1, s2, s3, s4, s5, s6, s7, s13, s19, s25, s31}
+
+
GNSS-ValidityDuration-r17 ::= ENUMERATED{
s10, s20, s30, s40, s50, s60, min5, min10,
min15, min20, min25, min30, min50, min90, min120, infinity}
@@ -12681,6 +12994,9 @@ ResumeIdentity-r13 ::= BIT STRING (SIZE(40))
RRC-TransactionIdentifier ::= INTEGER (0..3)
+SatelliteId-r18 ::= INTEGER (0..255)
+
+
SBAS-ID-r15 ::= SEQUENCE {
sbas-id-r15 ENUMERATED {waas, egnos, msas, gagan, ...},
...
@@ -12875,7 +13191,7 @@ UE-EUTRA-Capability-v15x0-IEs ::= SEQUENCE {
}
UE-EUTRA-Capability-v16c0-IEs ::= SEQUENCE {
- measParameters-v16c0 MeasParameters-v16c0,
+ measParameters-v16c0 MeasParameters-v16c0,
-- Following field is only to be used for late REL-16 extensions
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
@@ -13241,7 +13557,23 @@ UE-EUTRA-Capability-v1720-IEs ::= SEQUENCE {
UE-EUTRA-Capability-v1730-IEs ::= SEQUENCE {
phyLayerParameters-v1730 PhyLayerParameters-v1730,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension UE-EUTRA-Capability-v1770-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1770-IEs ::= SEQUENCE {
+ measParameters-v1770 MeasParameters-v1770,
+ nonCriticalExtension UE-EUTRA-Capability-v1800-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1800-IEs ::= SEQUENCE {
+ measParameters-v1800 MeasParameters-v1800 OPTIONAL,
+ rf-Parameters-v1800 RF-Parameters-v1800 OPTIONAL,
+ ntn-Parameters-v1800 NTN-Parameters-v1800 OPTIONAL,
+ -- A2X capabilities
+ sl-Parameters-v1800 SL-Parameters-v1800 OPTIONAL,
+ son-Parameters-v1800 SON-Parameters-v1800,
+ ue-BasedNetwPerfMeasParameters-v1800 UE-BasedNetwPerfMeasParameters-v1800,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE {
@@ -13349,7 +13681,7 @@ UE-EUTRA-CapabilityAddXDD-Mode-v1630 ::= SEQUENCE {
AccessStratumRelease ::= ENUMERATED {
rel8, rel9, rel10, rel11, rel12, rel13,
- rel14, rel15, ..., rel16, rel17}
+ rel14, rel15, ..., rel16, rel17, rel18}
FeatureSetsEUTRA-r15 ::= SEQUENCE {
featureSetsDL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetDL-r15 OPTIONAL,
@@ -13445,6 +13777,34 @@ NTN-Parameters-v1720 ::= SEQUENCE {
ntn-SegmentedPrecompensationGaps-r17 ENUMERATED {sym1,sl1,sf1} OPTIONAL
}
+NTN-Parameters-v1800 ::= SEQUENCE {
+ ntn-EventA4BasedCHO-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-LocationBasedCHO-EFC-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-LocationBasedCHO-EMC-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-TimeBasedCHO-r18 ENUMERATED {supported} OPTIONAL,
+ eventD1-MeasReportTrigger-r18 ENUMERATED {supported} OPTIONAL,
+ eventD2-MeasReportTrigger-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-LocationBasedMeasTrigger-EFC-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-LocationBasedMeasTrigger-EMC-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-TimeBasedMeasTrigger-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-RRC-HarqDisableSingleTB-CE-ModeA-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-RRC-HarqDisableMultiTB-CE-ModeA-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-RRC-HarqDisableSingleTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-OverriddenHarqDisableSingleTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-DCI-HarqDisableSingleTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-RRC-HarqDisableMultiTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-OverriddenHarqDisableMultiTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-DCI-HarqDisableMultiTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-SemiStaticHarqDisableSPS-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-UplinkHarq-ModeB-SingleTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-UplinkHarq-ModeB-MultiTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-HarqEnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL,
+ ntn-Triggered-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-Autonomous-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-UplinkTxExtension-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-GNSS-EnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL
+}
+
ProcessingTimelineSet-r15 ::= ENUMERATED {set1, set2}
RLC-Parameters-r12 ::= SEQUENCE {
@@ -14049,6 +14409,15 @@ RF-Parameters-v1630 ::= SEQUENCE {
supportedBandCombinationReduced-v1630 SupportedBandCombinationReduced-v1630 OPTIONAL
}
+RF-Parameters-v1800 ::= SEQUENCE {
+ -- Support handling of aerial-specific Ns and Pmax list broadcasted by the cell
+ multiNS-PmaxAerial-r18 ENUMERATED {supported} OPTIONAL,
+ supportedBandListEUTRA-v1800 SupportedBandListEUTRA-v1800 OPTIONAL,
+ supportedBandCombination-v1800 SupportedBandCombination-v1800 OPTIONAL,
+ supportedBandCombinationAdd-v1800 SupportedBandCombinationAdd-v1800 OPTIONAL,
+ supportedBandCombinationReduced-v1800 SupportedBandCombinationReduced-v1800 OPTIONAL
+}
+
SkipSubframeProcessing-r15 ::= SEQUENCE {
skipProcessingDL-Slot-r15 INTEGER (0..3) OPTIONAL,
skipProcessingDL-SubSlot-r15 INTEGER (0..3) OPTIONAL,
@@ -14126,6 +14495,8 @@ SupportedBandCombination-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandC
SupportedBandCombination-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1630
+SupportedBandCombination-v1800 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1800
+
SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11
SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0
@@ -14154,6 +14525,8 @@ SupportedBandCombinationAdd-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF Ba
SupportedBandCombinationAdd-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1630
+SupportedBandCombinationAdd-v1800 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1800
+
SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13
SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320
@@ -14176,6 +14549,8 @@ SupportedBandCombinationReduced-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) O
SupportedBandCombinationReduced-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1630
+SupportedBandCombinationReduced-v1800 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1800
+
BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10
BandCombinationParametersExt-r10 ::= SEQUENCE {
@@ -14308,6 +14683,10 @@ BandCombinationParameters-v1630 ::= SEQUENCE {
interBandPowerSharingAsyncDAPS-r16 ENUMERATED {supported} OPTIONAL
}
+BandCombinationParameters-v1800 ::= SEQUENCE {
+ measGapInfoNR-r18 MeasGapInfoNR-r18 OPTIONAL
+}
+
ScalingFactorSidelink-r16 ::= ENUMERATED {f0p4, f0p75, f0p8, f1}
SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10))
@@ -14536,6 +14915,8 @@ SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand
SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320
+SupportedBandListEUTRA-v1800 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1800
+
SupportedBandEUTRA ::= SEQUENCE {
bandEUTRA FreqBandIndicator,
halfDuplex BOOLEAN
@@ -14553,11 +14934,16 @@ SupportedBandEUTRA-v1250 ::= SEQUENCE {
SupportedBandEUTRA-v1310 ::= SEQUENCE {
ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL
}
+
SupportedBandEUTRA-v1320 ::= SEQUENCE {
intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL,
ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL
}
+SupportedBandEUTRA-v1800 ::= SEQUENCE {
+ lowerMSD-MRDC-r18 SEQUENCE (SIZE (1..maxLowerMSD-r18)) OF LowerMSD-MRDC-r18 OPTIONAL
+}
+
MeasParameters ::= SEQUENCE {
bandListEUTRA BandListEUTRA
}
@@ -14645,6 +15031,14 @@ MeasParameters-v1700 ::= SEQUENCE {
sharedSpectrumMeasNR-SA-r17 SEQUENCE (SIZE (1..maxBandsNR-r15)) OF SharedSpectrumMeasNR-r17 OPTIONAL
}
+MeasParameters-v1770 ::= SEQUENCE {
+ gaplessMeas-FR2-maxCC-r17 INTEGER (1..32) OPTIONAL
+}
+
+MeasParameters-v1800 ::= SEQUENCE {
+ bandInfoNR-v1800 SEQUENCE (SIZE (1..maxBands)) OF MeasGapInfoNR-r18
+}
+
SharedSpectrumMeasNR-r17 ::= SEQUENCE {
nr-RSSI-ChannelOccupancyReporting-r17 BOOLEAN
}
@@ -14654,6 +15048,11 @@ MeasGapInfoNR-r16 ::= SEQUENCE {
interRAT-BandListNR-SA-r16 InterRAT-BandListNR-r16 OPTIONAL
}
+MeasGapInfoNR-r18 ::= SEQUENCE {
+ interRAT-BandListNR-EN-DC-r18 InterRAT-BandListNR-r18 OPTIONAL,
+ interRAT-BandListNR-SA-r18 InterRAT-BandListNR-r18 OPTIONAL
+}
+
BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA
BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA
@@ -14673,6 +15072,8 @@ InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo
InterRAT-BandListNR-r16 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF InterRAT-BandInfoNR-r16
+InterRAT-BandListNR-r18 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF InterRAT-BandInfoNR-r18
+
InterRAT-BandInfo ::= SEQUENCE {
interRAT-NeedForGaps BOOLEAN
}
@@ -14681,6 +15082,11 @@ InterRAT-BandInfoNR-r16 ::= SEQUENCE {
interRAT-NeedForGapsNR-r16 BOOLEAN
}
+InterRAT-BandInfoNR-r18 ::= SEQUENCE {
+ interRAT-NeedForInterruptionNR-r18
+ ENUMERATED {no-gap-with-interruption, no-gap-no-interruption} OPTIONAL
+}
+
IRAT-ParametersNR-r15 ::= SEQUENCE {
en-DC-r15 ENUMERATED {supported} OPTIONAL,
eventB2-r15 ENUMERATED {supported} OPTIONAL,
@@ -14734,6 +15140,21 @@ IRAT-ParametersNR-v1710 ::= SEQUENCE {
extendedBand-n77-2-r17 ENUMERATED {supported} OPTIONAL
}
+LowerMSD-MRDC-r18 ::= SEQUENCE {
+ aggressorband1-r18 FreqBandIndicatorNR-r15,
+ aggressorband2-r18 FreqBandIndicator-r11 OPTIONAL,
+ msd-Information-r18 SEQUENCE (SIZE (1.. maxLowerMSD-Info-r18)) OF MSD-Information-r18
+}
+
+MSD-Information-r18 ::= SEQUENCE {
+ msd-Type-r18 ENUMERATED {harmonic, harmonicMixing, crossBandIsolation, imd2,
+ imd3, imd4, imd5, all, spare8, spare7, spare6,
+ spare5,spare4, spare3, spare2, spare1},
+ msd-PowerClass-r18 ENUMERATED {pc1dot5, pc2, pc3},
+ msd-Class-r18 ENUMERATED {classI, classII, classIII, classIV, classV, classVI,
+ classVII, classVIII }
+}
+
EUTRA-5GC-Parameters-r15 ::= SEQUENCE {
eutra-5GC-r15 ENUMERATED {supported} OPTIONAL,
eutra-EPC-HO-EUTRA-5GC-r15 ENUMERATED {supported} OPTIONAL,
@@ -14946,6 +15367,10 @@ SON-Parameters-r9 ::= SEQUENCE {
rach-Report-r9 ENUMERATED {supported} OPTIONAL
}
+SON-Parameters-v1800 ::= SEQUENCE {
+ rach-ReportForNR-r18 ENUMERATED {supported} OPTIONAL
+}
+
PUR-Parameters-r16 ::= SEQUENCE {
pur-CP-5GC-CE-ModeA-r16 ENUMERATED {supported} OPTIONAL,
pur-CP-5GC-CE-ModeB-r16 ENUMERATED {supported} OPTIONAL,
@@ -14994,6 +15419,10 @@ UE-BasedNetwPerfMeasParameters-v1700 ::= SEQUENCE {
immMeasUncomBarPre-r17 ENUMERATED {supported} OPTIONAL
}
+UE-BasedNetwPerfMeasParameters-v1800 ::= SEQUENCE {
+ sigBasedEUTRA-LoggedMeasOverrideProtect-r18 ENUMERATED {supported} OPTIONAL
+}
+
OTDOA-PositioningCapabilities-r10 ::= SEQUENCE {
otdoa-UE-Assisted-r10 ENUMERATED {supported},
interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL
@@ -15301,6 +15730,11 @@ SL-Parameters-v1710 ::= SEQUENCE {
v2x-SupportedBandCombinationListEUTRA-NR-v1710 V2X-SupportedBandCombinationEUTRA-NR-v1710 OPTIONAL
}
+SL-Parameters-v1800 ::= SEQUENCE {
+ sl-A2X-SupportedBandCombinationList-r18 SL-A2X-SupportedBandCombination-r18 OPTIONAL,
+ sl-A2X-Service-r18 ENUMERATED {brid, daa, bridAndDAA} OPTIONAL
+}
+
UE-CategorySL-r15 ::= SEQUENCE {
ue-CategorySL-C-TX-r15 INTEGER(1..5),
ue-CategorySL-C-RX-r15 INTEGER(1..4)
@@ -15349,6 +15783,24 @@ V2X-BandParametersEUTRA-NR-v1710 ::= SEQUENCE {
v2x-BandParametersEUTRA-NR-v1710 OCTET STRING OPTIONAL
}
+SL-A2X-SupportedBandCombination-r18 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF SL-A2X-BandCombinationParameters-r18
+
+SL-A2X-BandCombinationParameters-r18 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF SL-A2X-BandParameters-r18
+
+SL-A2X-BandParameters-r18 ::= SEQUENCE {
+ a2x-FreqBandEUTRA-r18 FreqBandIndicator-r11,
+ a2x-BandParametersTxSL-r18 BandParametersTxA2X-r18 OPTIONAL,
+ a2x-BandParametersRxSL-r18 BandParametersRxA2X-r18 OPTIONAL
+}
+
+BandParametersTxA2X-r18 ::= SEQUENCE {
+ a2x-BandwidthClassTxSL-r18 V2X-BandwidthClassSL-r14
+}
+
+BandParametersRxA2X-r18 ::= SEQUENCE {
+ a2x-BandwidthClassRxSL-r18 V2X-BandwidthClassSL-r14
+}
+
SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12
SupportedBandInfo-r12 ::= SEQUENCE {
@@ -15973,6 +16425,8 @@ SL-CommResourcePoolV2X-r14 ::= SEQUENCE {
...,
[[ sl-MinT2ValueList-r15 SL-MinT2ValueList-r15 OPTIONAL, -- Need OR
cbr-pssch-TxConfigList-v1530 SL-CBR-PPPP-TxConfigList-v1530 OPTIONAL -- Need OR
+ ]],
+ [[ sl-A2X-Service-r18 ENUMERATED {brid, daa, bridAndDAA, spare1} OPTIONAL -- Cond A2X
]]
}
@@ -16702,6 +17156,8 @@ maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency
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
+maxCellRAReportNR-r18 INTEGER ::= 8 -- Maximum number of unique Cells identities of RA
+ -- reports included in the NR RA report container
maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources
maxCellSFTD INTEGER ::= 3 -- Maximum number of cells for SFTD reporting
maxCellAllowedNR-r16 INTEGER ::= 16 -- Maximum number of allowlisted NR cells in SIB24
@@ -16765,6 +17221,10 @@ maxIdleMeasCarriers-r16 INTEGER ::= 8 -- Maximum number of neighbouring inter-
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
+maxLowerMSD-r18 INTEGER ::= 256 -- Maximum number of lower MSD capability sets for
+ -- a victim band
+maxLowerMSD-Info-r18 INTEGER ::= 64 -- Maximum number of lower MSD capability sets for
+ -- a band combination
maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with
-- different offset
maxMBSFN-Area INTEGER ::= 8
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
index e8f39de8..870ed39b 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
index 98b92e6b..6d01a7c0 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
@@ -74,7 +74,7 @@ FROM EUTRA-RRC-Definitions;
VarConditionalReconfiguration ::= SEQUENCE {
- -- Conditional reconfigurations list
+ -- Conditional reconfigurations list
condReconfigurationList-r16 CondReconfigurationToAddModList-r16
OPTIONAL
}
@@ -145,7 +145,8 @@ VarLogMeasReport-r11 ::= SEQUENCE {
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-IdentityList-r11 PLMN-IdentityList3-r11,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
- logMeasInfoList-r10 LogMeasInfoList2-r10
+ logMeasInfoList-r10 LogMeasInfoList2-r10,
+ sigLoggedMeasType-r18 ENUMERATED {true}
}
LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn
index 85af838c..38a1104c 100644
--- a/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn
index b68e6a8a..e9259f5c 100644
--- a/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
@@ -17,6 +17,7 @@ IMPORTS
C-RNTI,
DedicatedInfoNAS,
DRB-Identity,
+ GNSS-PositionFixDuration-r18,
GNSS-ValidityDuration-r17,
InitialUE-Identity,
IntraFreqExcludedCellList,
@@ -35,11 +36,13 @@ IMPORTS
maxPageRec,
maxPLMN-r11,
maxSAI-MBMS-r11,
+ maxSat-r17,
maxSIB,
maxSIB-1,
MBMS-SAI-r11,
MBMS-SAI-List-r11,
MBMSSessionInfo-r13,
+ NeighSatelliteInfoList-r18,
NextHopChainingCount,
NG-5G-S-TMSI-r15,
PagingUE-Identity,
@@ -61,8 +64,11 @@ IMPORTS
RSRP-Range,
S-NSSAI-r15,
S-TMSI,
+ SatelliteId-r18,
SatelliteInfoList-r17,
+ SatelliteInfoList-v1800,
ServingSatelliteInfo-r17,
+ ServingSatelliteInfo-v1820,
SetupRelease,
ShortMAC-I,
SystemInformationBlockType16-r11,
@@ -243,7 +249,7 @@ MasterInformationBlock-NB ::= SEQUENCE {
},
additionalTransmissionSIB1-r15 BOOLEAN,
ab-Enabled-5GC-r16 BOOLEAN,
- partEARFCN-17 CHOICE {
+ partEARFCN-r17 CHOICE {
spare BIT STRING (SIZE (2)),
earfcn-LSB BIT STRING (SIZE (2))
},
@@ -403,7 +409,12 @@ RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE {
radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON
fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab
lateNonCriticalExtension OCTET STRING OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension RRCConnectionReconfiguration-NB-v16f0-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-NB-v16f0-IEs ::= SEQUENCE {
+ obtainLocationNB-r16 ENUMERATED {setup} OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -472,9 +483,15 @@ RRCConnectionReestablishmentComplete-NB-v1610-IEs ::= SEQUENCE {
RRCConnectionReestablishmentComplete-NB-v1710-IEs ::= SEQUENCE {
gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-NB-v1800-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-NB-v1800-IEs ::= SEQUENCE {
+ gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
+
RRCConnectionReestablishmentRequest-NB ::= SEQUENCE {
criticalExtensions CHOICE {
rrcConnectionReestablishmentRequest-r13
@@ -676,6 +693,11 @@ RRCConnectionResume-NB-r13-IEs ::= SEQUENCE {
RRCConnectionResume-NB-v1610-IEs ::= SEQUENCE {
fullConfig-r16 ENUMERATED {true} OPTIONAL, -- Cond 5GC
+ nonCriticalExtension RRCConnectionResume-NB-v16f0-IEs OPTIONAL
+}
+
+RRCConnectionResume-NB-v16f0-IEs ::= SEQUENCE {
+ obtainLocationNB-r16 ENUMERATED {setup} OPTIONAL, -- Need OR
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -707,7 +729,12 @@ RRCConnectionResumeComplete-NB-v1610-IEs ::= SEQUENCE {
}
RRCConnectionResumeComplete-NB-v1710-IEs ::= SEQUENCE {
- gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+ gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension RRCConnectionResumeComplete-NB-v1800-IEs OPTIONAL
+}
+
+RRCConnectionResumeComplete-NB-v1800-IEs ::= SEQUENCE {
+ gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -809,7 +836,12 @@ RRCConnectionSetupComplete-NB-v1610-IEs ::= SEQUENCE {
}
RRCConnectionSetupComplete-NB-v1710-IEs ::= SEQUENCE {
- gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+ gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension RRCConnectionSetupComplete-NB-v1800-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-NB-v1800-IEs ::= SEQUENCE {
+ gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -907,7 +939,8 @@ SystemInformation-NB-r13-IEs ::= SEQUENCE {
sib23-v1530 SystemInformationBlockType23-NB-r15,
sib27-v1610 SystemInformationBlockType27-NB-r16,
sib31-v1700 SystemInformationBlockType31-NB-r17,
- sib32-v1700 SystemInformationBlockType32-NB-r17
+ sib32-v1700 SystemInformationBlockType32-NB-r17,
+ sib33-v1800 SystemInformationBlockType33-NB-r18
},
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
@@ -1054,7 +1087,9 @@ SIB-Type-NB-r13 ::= ENUMERATED {
SIB-Type-NB-v1530 ::= ENUMERATED {
sibType23-NB-r15, sibType27-NB-r16, sibType31-NB-r17,
- sibType32-NB-r17, spare4, spare3, spare2, spare1}
+ sibType32-NB-r17, sibType33-NB-r18, spare3, spare2,
+ spare1
+}
CellSelectionInfo-NB-v1350 ::= SEQUENCE {
delta-RxLevMin-v1350 INTEGER (-8..-1)
@@ -1201,6 +1236,8 @@ SystemInformationBlockType2-NB-r13 ::= SEQUENCE {
cp-PUR-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
up-PUR-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR
rai-ActivationEnh-r16 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ gnss-PositionFixDurationReporting-r18 ENUMERATED {true} OPTIONAL -- Need OR
]]
}
@@ -1240,6 +1277,8 @@ SystemInformationBlockType3-NB-r13 ::= SEQUENCE {
]],
[[ connMeasConfig-r17 ConnMeasConfig-NB-r17 OPTIONAL, -- Need OR
t-Service-r17 TimeOffsetUTC-r17 OPTIONAL -- Need OR
+ ]],
+ [[ satelliteAssistanceInfo-r18 SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18 OPTIONAL -- Need OR
]]
}
@@ -1293,12 +1332,15 @@ SystemInformationBlockType5-NB-r13 ::= SEQUENCE {
lateNonCriticalExtension OCTET STRING OPTIONAL,
...,
[[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP
+ ]],
+ [[ interFreqCarrierFreqList-v1820 InterFreqCarrierFreqList-NB-v1820 OPTIONAL -- Need OP
]]
}
InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13
+InterFreqCarrierFreqList-NB-v1820 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-v1820
InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE {
dl-CarrierFreq-r13 CarrierFreq-NB-r13,
@@ -1323,6 +1365,10 @@ OPTIONAL, -- Need OP
]]
}
+InterFreqCarrierFreqInfo-NB-v1820 ::= SEQUENCE {
+ satelliteAssistanceInfo-r18 SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18 OPTIONAL -- Need OR
+}
+
InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId
InterFreqNeighCellList-NB-v1530 ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo-NB-v1530
@@ -1607,13 +1653,26 @@ CarrierFreqsGERAN-NB-r16 ::= SEQUENCE {
SystemInformationBlockType31-NB-r17 ::= SEQUENCE {
servingSatelliteInfo-r17 ServingSatelliteInfo-r17,
lateNonCriticalExtension OCTET STRING OPTIONAL,
- ...
+ ...,
+ [[ servingSatelliteInfo-v1820 ServingSatelliteInfo-v1820 OPTIONAL -- Need OR
+ ]]
}
SystemInformationBlockType32-NB-r17 ::= SEQUENCE {
satelliteInfoList-r17 SatelliteInfoList-r17 OPTIONAL, -- Need OR
lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ satelliteInfoList-v1800 SatelliteInfoList-v1800 OPTIONAL -- Need OR
+ ]]
+}
+
+
+SystemInformationBlockType33-NB-r18 ::= SEQUENCE {
+ neighSatelliteInfoList-r18 NeighSatelliteInfoList-r18 OPTIONAL, -- Need OR
+ neighValidityDuration-r18 ENUMERATED {s5, s10, s15, s20, s25, s30, s35, s40,
+ s45, s50, s55, s60, s120, s180, s240, s900}
+ OPTIONAL, -- Need OP lateNonCriticalExtension OCTET STRING OPTIONAL,
...
}
@@ -1872,11 +1931,19 @@ NPDSCH-ConfigDedicated-NB-v1710 ::= SEQUENCE {
npdsch-16QAM-Config-r17 CHOICE {release NULL, setup NPDSCH-16QAM-Config-NB-r17}
}
+NPDSCH-ConfigDedicated-NB-v1800 ::= SEQUENCE {
+ downlinkHARQ-FeedbackDisabledBitmap-NB-r18
+ CHOICE {release NULL, setup DownlinkHARQ-FeedbackDisabledBitmap-NB-r18} OPTIONAL, -- Need ON
+ downlinkHARQ-FeedbackDisabledDCI-NB-r18 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
NPDSCH-16QAM-Config-NB-r17 ::=SEQUENCE{
nrs-PowerRatio-r17 ENUMERATED {dB-6, dB-4dot77, dB-3, dB-1dot77, dB0, dB1, dB2, dB3} OPTIONAL, -- Need OR
nrs-PowerRatioWithCRS-r17 ENUMERATED {dB-6, dB-4dot77, dB-3, dB-1dot77, dB0, dB1, dB2, dB3} OPTIONAL -- Cond InBand
}
+DownlinkHARQ-FeedbackDisabledBitmap-NB-r18 ::= BIT STRING (SIZE(2))
+
NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE {
nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7},
@@ -2110,12 +2177,17 @@ NPUSCH-ConfigDedicated-NB-v1700 ::= SEQUENCE {
npusch-16QAM-Config-r17 ENUMERATED {true} OPTIONAL -- Need OR
}
+NPUSCH-ConfigDedicated-NB-v1800 ::= SEQUENCE {
+ uplinkHARQ-Mode-r18 CHOICE {release NULL, setup UplinkHARQ-Mode-NB-r18}
+}
+
NPUSCH-TxDuration-NB-r17 ::= SEQUENCE {
npusch-TxDuration-r17 ENUMERATED {ms2, ms4, ms8, ms16, ms32, ms64, ms128, ms256}
}
ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128}
+UplinkHARQ-Mode-NB-r18 ::= BIT STRING (SIZE(2))
PDCP-Config-NB-r13 ::= SEQUENCE {
@@ -2178,6 +2250,9 @@ PhysicalConfigDedicated-NB-r13 ::= SEQUENCE {
uplinkSegmentedPrecompensationGap-r17 ENUMERATED {sym1,sl1,sl2} OPTIONAL -- Need OR
]],
[[ npusch-ConfigDedicated-v1740 NPUSCH-ConfigDedicated-NB-v1700 OPTIONAL -- Need ON
+ ]],
+ [[ npdsch-ConfigDedicated-v1800 NPDSCH-ConfigDedicated-NB-v1800 OPTIONAL, -- Need ON
+ npusch-ConfigDedicated-v1800 NPUSCH-ConfigDedicated-NB-v1800 OPTIONAL -- Need ON
]]
}
@@ -2374,6 +2449,12 @@ RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE {
[[ schedulingRequestConfig-r15 SchedulingRequestConfig-NB-r15 OPTIONAL -- Need ON
]],
[[ newUE-Identity-r16 C-RNTI OPTIONAL -- Need OP
+ ]],
+ [[ gnss-AutonomousEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR
+ ul-TransmissionExtensionEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR
+ ul-TransmissionExtensionValue-r18 ENUMERATED {sf500, sf750, sf1280, sf1920,
+ sf2560, sf5120, sf10240, spare1}
+ OPTIONAL -- Need OR
]]
}
@@ -2545,7 +2626,7 @@ SR-NPRACH-Resource-NB-r15 ::= SEQUENCE {
p0-SR-r15 INTEGER (-126..24),
alpha-r15 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}}
-SR-SPS-BSR-Config-NB-r15 ::= CHOICE {
+SR-SPS-BSR-Config-NB-r15 ::= CHOICE {
release NULL,
setup SEQUENCE {
semiPersistSchedC-RNTI-r15 C-RNTI,
@@ -2759,10 +2840,17 @@ UE-Capability-NB-v1610-IEs ::= SEQUENCE {
UE-Capability-NB-v16x0-IEs ::= SEQUENCE {
-- Following field is only to be used for late REL-16 extensions
- lateNonCriticalExtension OCTET STRING OPTIONAL,
+ lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v16f0-IEs) OPTIONAL,
nonCriticalExtension UE-Capability-NB-v1700-IEs OPTIONAL
}
+-- Late non-critical extensions
+UE-EUTRA-Capability-v16f0-IEs ::= SEQUENCE {
+ son-Parameters-v16f0 SON-Parameters-NB-v16f0,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non-critical extensions
UE-Capability-NB-v1700-IEs ::= SEQUENCE {
coverageBasedPaging-r17 ENUMERATED {supported} OPTIONAL,
phyLayerParameters-v1700 PhyLayerParameters-NB-v1700,
@@ -2779,6 +2867,11 @@ UE-Capability-NB-v1710-IEs ::= SEQUENCE {
UE-Capability-NB-v1720-IEs ::= SEQUENCE {
ntn-Parameters-v1720 NTN-Parameters-NB-v1720,
+ nonCriticalExtension UE-Capability-NB-v1800-IEs OPTIONAL
+}
+
+UE-Capability-NB-v1800-IEs ::= SEQUENCE {
+ ntn-Parameters-v1800 NTN-Parameters-NB-v1800 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -2801,7 +2894,7 @@ TDD-UE-Capability-NB-v1710 ::= SEQUENCE {
phyLayerParameters-v1710 PhyLayerParameters-NB-v1700 OPTIONAL
}
-AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, rel15, rel16, rel17, spare3, spare2, spare1, ...}
+AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, rel15, rel16, rel17, rel18, spare2, spare1, ...}
PDCP-Parameters-NB-r13 ::= SEQUENCE {
supportedROHC-Profiles-r13 SEQUENCE {
@@ -2846,6 +2939,25 @@ NTN-Parameters-NB-v1720 ::= SEQUENCE {
ntn-SegmentedPrecompensationGaps-r17 ENUMERATED {sym1,sl1,sl2} OPTIONAL
}
+NTN-Parameters-NB-v1800 ::= SEQUENCE {
+ ntn-LocationBasedMeasTrigger-EFC-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-LocationBasedMeasTrigger-EMC-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-TimeBasedMeasTrigger-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-RRC-HarqDisableSingleTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-OverriddenHarqDisableSingleTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-DCI-HarqDisableSingleTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-RRC-HarqDisableMultiTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-OverriddenHarqDisableMultiTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-DCI-HarqDisableMultiTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-UplinkHarq-ModeB-SingleTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-UplinkHarq-ModeB-MultiTB-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-HarqEnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL,
+ ntn-Triggered-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-Autonomous-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-UplinkTxExtension-r18 ENUMERATED {supported} OPTIONAL,
+ ntn-GNSS-EnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL
+}
+
MeasParameters-NB-r16 ::= SEQUENCE {
dl-ChannelQualityReporting-r16 ENUMERATED {supported} OPTIONAL
}
@@ -2934,6 +3046,10 @@ SON-Parameters-NB-r16 ::= SEQUENCE {
rach-Report-r16 ENUMERATED {supported} OPTIONAL
}
+SON-Parameters-NB-v16f0 ::= SEQUENCE {
+ locationInfo-r16 ENUMERATED {supported} OPTIONAL
+}
+
UE-RadioPagingInfo-NB-r13 ::= SEQUENCE {
ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL,
diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn
index 3c081585..df13009a 100644
--- a/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn
+++ b/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
index d7ea3c18..217cae94 100644
--- a/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.5.0 (2023-06)
+-- 3GPP TS 36.331 V18.2.0 (2024-06)
PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
index ba557c45..96c5ba5e 100644
--- a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
+++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
@@ -1,6 +1,6 @@
# lte-rrc.cnf
# lte-rrc conformation file
-# Copyright 2008 Vincent Helfre, 2009-2023 Pascal Quantin
+# Copyright 2008 Vincent Helfre, 2009-2024 Pascal Quantin
#.OPT
PER
@@ -655,6 +655,7 @@ T-StatusProhibit
WLAN-backhaulRate-r12
#.EXPORTS
+CellIdListNR-r18_PDU
CellsToAddModListNR-r15_PDU
DL-CarrierConfigCommon-NB-r14_PDU
DL-DCCH-Message_PDU
@@ -703,6 +704,7 @@ VisitedCellInfoList-r12_PDU
#.END
#.PDU
+CellIdListNR-r18
CellsToAddModListNR-r15
DL-CarrierConfigCommon-NB-r14
HandoverCommand
@@ -851,9 +853,9 @@ SI-OrPSI-GERAN TYPE_PREFIX
%(DEFAULT_BODY)s
#.FN_BODY RAT-Type VAL_PTR = &rat_type
- guint32 rat_type;
+ uint32_t rat_type;
%(DEFAULT_BODY)s
- private_data_set_rat_type(actx, (guint8)rat_type);
+ private_data_set_rat_type(actx, (uint8_t)rat_type);
#RAT-Type ::= ENUMERATED {
# eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
@@ -888,10 +890,10 @@ SI-OrPSI-GERAN TYPE_PREFIX
#.FN_FTR UE-CapabilityRAT-Container/ueCapabilityRAT-Container
if(ue_cap_tvb){
- guint32 length;
+ uint32_t length;
proto_item *item;
proto_tree *subtree, *subtree2;
- guint8 byte;
+ uint8_t 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:
@@ -907,12 +909,12 @@ if(ue_cap_tvb){
/* 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);
+ byte = tvb_get_uint8(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);
+ byte = tvb_get_uint8(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);
@@ -1100,15 +1102,15 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
%(DEFAULT_BODY)s
#.FN_BODY Handover/targetRAT-Type VAL_PTR = &target_rat_type
- guint32 target_rat_type;
+ uint32_t target_rat_type;
%(DEFAULT_BODY)s
- private_data_set_rat_target_type(actx, (guint8)target_rat_type);
+ private_data_set_rat_target_type(actx, (uint8_t)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;
+ uint8_t 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)){
@@ -1119,7 +1121,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
break;
case T_targetRAT_Type_geran:
/* geran */
- byte = tvb_get_guint8(target_rat_msg_cont_tvb, 0);
+ byte = tvb_get_uint8(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);
@@ -1127,7 +1129,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
} else {
if (gsm_rlcmac_dl_handle) {
tvbuff_t *gsm_rlcmac_dl_tvb = tvb_new_composite();
- guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1);
+ uint8_t *pd = (uint8_t *) wmem_alloc(actx->pinfo->pool, 1);
pd[0] = 0x40;
tvb_composite_append(gsm_rlcmac_dl_tvb, tvb_new_child_real_data(tvb, pd, 1, 1));
tvb_composite_append(gsm_rlcmac_dl_tvb, target_rat_msg_cont_tvb);
@@ -1160,7 +1162,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
#.FN_BODY Handover/nas-SecurityParamFromEUTRA VAL_PTR = &nas_sec_param_from_eutra_tvb
tvbuff_t *nas_sec_param_from_eutra_tvb = NULL;
- guint32 length;
+ uint32_t length;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -1175,7 +1177,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
#.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;
+ uint32_t length;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -1204,15 +1206,15 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
}
#.FN_BODY SI-OrPSI-GERAN/si
- private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_si); /* SI message */
+ private_data_set_si_or_psi_geran(actx, (uint8_t)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 */
+ private_data_set_si_or_psi_geran(actx, (uint8_t)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 */
+ private_data_set_si_or_psi_geran(actx, (uint8_t)SI_OrPSI_GERAN_si); /* SI message */
%(DEFAULT_BODY)s
#.FN_BODY SystemInfoListGERAN/_item VAL_PTR = &sys_info_list_tvb
@@ -1226,7 +1228,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
/* SI message */
if (gsm_a_dtap_handle) {
tvbuff_t *si_tvb = tvb_new_composite();
- guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1);
+ uint8_t *pd = (uint8_t *) wmem_alloc(actx->pinfo->pool, 1);
pd[0] = 0x06;
tvb_composite_append(si_tvb, tvb_new_child_real_data(tvb, pd, 1, 1));
tvb_composite_append(si_tvb, sys_info_list_tvb);
@@ -1239,7 +1241,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
/* PSI message */
if (gsm_rlcmac_dl_handle) {
tvbuff_t *gsm_rlcmac_dl_tvb = tvb_new_composite();
- guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1);
+ uint8_t *pd = (uint8_t *) wmem_alloc(actx->pinfo->pool, 1);
pd[0] = 0x40;
tvb_composite_append(gsm_rlcmac_dl_tvb, tvb_new_child_real_data(tvb, pd, 1, 1));
tvb_composite_append(gsm_rlcmac_dl_tvb, sys_info_list_tvb);
@@ -1259,7 +1261,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
#.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/asynchronousSystemTime
if (async_system_time_tvb) {
- guint64 bits;
+ uint64_t bits;
nstime_t ts;
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo);
@@ -1276,7 +1278,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
#.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/synchronousSystemTime
if (sync_system_time_tvb) {
- guint64 bits;
+ uint64_t bits;
nstime_t ts;
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo);
@@ -1323,7 +1325,7 @@ NeighCellConfig TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_neighCellCon
#.FN_FTR NeighCellConfig
if (neigh_cell_config_tvb) {
- guint bitvalue = tvb_get_bits8(neigh_cell_config_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(neigh_cell_config_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, neigh_cell_config_tvb, 0, 1, bitvalue);
}
@@ -1388,12 +1390,12 @@ NeighCellConfig TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_neighCellCon
%(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);
+ 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);
}
#.TYPE_ATTR
-LocationInfo-r10/gnss-TOD-msec-r10 TYPE=FT_UINT24 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+LocationInfo-r10/gnss-TOD-msec-r10 TYPE=FT_UINT24 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.FN_BODY LocationInfo-r10/eag_1/verticalVelocityInfo-r15/verticalVelocity-r15 VAL_PTR = &vertical_velocity_tvb
tvbuff_t *vertical_velocity_tvb = NULL;
@@ -1419,17 +1421,17 @@ LogMeasResultBT-r15/bt-Addr-r15 TYPE=FT_ETHER DISPLAY=BASE_NONE
actx->created_item = proto_tree_add_item(tree, hf_index, bt_Addr_tvb, 0, 6, ENC_NA);
#.TYPE_ATTR
-LogMeasResultBT-r15/rssi-BT-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+LogMeasResultBT-r15/rssi-BT-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.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;
+ const char *str, *hf_str;
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_absTimeInfo);
- str = tvb_bcd_dig_to_str(actx->pinfo->pool, abs_time_info_tvb, 0, 6, NULL, FALSE);
+ str = tvb_bcd_dig_to_str(actx->pinfo->pool, abs_time_info_tvb, 0, 6, NULL, false);
hf_str = wmem_strdup_printf(actx->pinfo->pool, "%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);
@@ -1514,14 +1516,14 @@ SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|B
}
#.FN_BODY SystemInformationBlockType11/warningMessageSegmentType VAL_PTR=&segment_type
- guint32 segment_type;
+ uint32_t segment_type;
%(DEFAULT_BODY)s
- private_data_set_warning_message_segment_type(actx, (guint8)segment_type);
+ private_data_set_warning_message_segment_type(actx, (uint8_t)segment_type);
#.FN_BODY SystemInformationBlockType11/warningMessageSegmentNumber VAL_PTR=&segment_number
- guint32 segment_number;
+ uint32_t segment_number;
%(DEFAULT_BODY)s
- private_data_set_warning_message_segment_number(actx, (guint8)segment_number);
+ private_data_set_warning_message_segment_number(actx, (uint8_t)segment_number);
#.FN_BODY SystemInformationBlockType11/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb
tvbuff_t *data_coding_scheme_tvb = NULL;
@@ -1530,10 +1532,10 @@ SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|B
#.FN_FTR SystemInformationBlockType11/dataCodingScheme
if (data_coding_scheme_tvb) {
proto_tree *subtree;
- guint32 dataCodingScheme;
+ uint32_t 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);
- wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)),
+ wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)private_data_get_message_identifier(actx)),
GUINT_TO_POINTER(dataCodingScheme));
}
@@ -1545,16 +1547,16 @@ SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|B
if (warning_msg_seg_tvb) {
proto_tree *subtree;
tvbuff_t *frag_tvb;
- gpointer p_dcs;
+ void *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);
+ 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 = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)));
+ p_dcs = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)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));
}
@@ -1589,14 +1591,14 @@ SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE
}
#.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentType-r9 VAL_PTR=&segment_type
- guint32 segment_type;
+ uint32_t segment_type;
%(DEFAULT_BODY)s
- private_data_set_warning_message_segment_type(actx, (guint8)segment_type);
+ private_data_set_warning_message_segment_type(actx, (uint8_t)segment_type);
#.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentNumber-r9 VAL_PTR=&segment_number
- guint32 segment_number;
+ uint32_t segment_number;
%(DEFAULT_BODY)s
- private_data_set_warning_message_segment_number(actx, (guint8)segment_number);
+ private_data_set_warning_message_segment_number(actx, (uint8_t)segment_number);
#.FN_BODY SystemInformationBlockType12-r9/dataCodingScheme-r9 VAL_PTR=&data_coding_scheme_tvb
tvbuff_t *data_coding_scheme_tvb = NULL;
@@ -1605,10 +1607,10 @@ SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE
#.FN_FTR SystemInformationBlockType12-r9/dataCodingScheme-r9
if (data_coding_scheme_tvb) {
proto_tree *subtree;
- guint32 dataCodingScheme;
+ uint32_t 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);
- wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)),
+ wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)private_data_get_message_identifier(actx)),
GUINT_TO_POINTER(dataCodingScheme));
}
@@ -1620,16 +1622,16 @@ SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE
if (warning_msg_seg_tvb) {
proto_tree *subtree;
tvbuff_t *frag_tvb;
- gpointer p_dcs;
+ void *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);
+ 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 = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)));
+ p_dcs = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)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));
}
@@ -1647,21 +1649,21 @@ SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 TYPE=FT_UIN
#.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11
if (daylight_saving_time_tvb) {
- guint bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, daylight_saving_time_tvb, 0, 1, bitvalue);
}
#.TYPE_ATTR
-SystemInformationBlockType16-r11/timeInfo-r11/leapSeconds-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+SystemInformationBlockType16-r11/timeInfo-r11/leapSeconds-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.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;
+ uint64_t timeInfo;
proto_tree *subtree;
nstime_t ts;
- guint32 old_offset = offset;
+ uint32_t old_offset = offset;
%(DEFAULT_BODY)s
#.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11
@@ -1690,19 +1692,19 @@ WLAN-Identifiers-r12/bssid-r12 TYPE=FT_ETHER
WLAN-Identifiers-r12/hessid-r12 TYPE=FT_ETHER
#.TYPE_ATTR
-RRCConnectionReject-r8-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCConnectionReject-r8-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RRCConnectionReject-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCConnectionReject-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RRCConnectionRelease-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCConnectionRelease-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RRCConnectionRelease-v1540-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCConnectionRelease-v1540-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RRCEarlyDataComplete-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCEarlyDataComplete-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
SystemInformationBlockType1/cellSelectionInfo/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
@@ -1711,19 +1713,19 @@ SystemInformationBlockType1/cellSelectionInfo/q-RxLevMinOffset STRINGS=VALS(lte_
CellSelectionInfoCE1-v1360/delta-RxLevMinCE1-v1360 STRINGS=VALS(lte_rrc_delta_RxLevMin_vals)
#.TYPE_ATTR
-CellSelectionInfo-v920/q-QualMinOffset-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+CellSelectionInfo-v920/q-QualMinOffset-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
MobilityControlInfo/eag_4/schedulingInfoSIB1-BR-r14 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_schedulingInfoSIB1_BR_r13_vals_ext
#.TYPE_ATTR
-TrafficPatternInfo-r14/timingOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+TrafficPatternInfo-r14/timingOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.FN_BODY TrafficPatternInfo-r14/messageSize-r14 VAL_PTR = &messageSize_r14_tvb HF_INDEX = -1
tvbuff_t *messageSize_r14_tvb = NULL;
%(DEFAULT_BODY)s
if (messageSize_r14_tvb) {
- guint bitvalue = tvb_get_bits8(messageSize_r14_tvb, 0, 6);
+ unsigned bitvalue = tvb_get_bits8(messageSize_r14_tvb, 0, 6);
actx->created_item = proto_tree_add_uint(tree, hf_index, messageSize_r14_tvb, 0, 1, bitvalue);
}
@@ -1734,7 +1736,7 @@ TrafficPatternInfo-r14/messageSize-r14 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_S
RLF-Report-r9/eag_1/timeConnFailure-r10 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_timeConnFailure_r10_fmt)
#.TYPE_ATTR
-LogMeasInfo-r10/relativeTimeStamp-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+LogMeasInfo-r10/relativeTimeStamp-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY LogMeasInfo-r10/eag_9/uncomBarPreMeasResult-r17 VAL_PTR = &sensor_meas_info_tvb
tvbuff_t *sensor_meas_info_tvb = NULL;
@@ -1754,7 +1756,7 @@ LogMeasInfo-r10/relativeTimeStamp-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=
tvbuff_t *n_r12_tvb = NULL;
%(DEFAULT_BODY)s
if (n_r12_tvb) {
- guint bitvalue = tvb_get_bits8(n_r12_tvb, 0, 3);
+ unsigned bitvalue = tvb_get_bits8(n_r12_tvb, 0, 3);
actx->created_item = proto_tree_add_uint(tree, hf_index, n_r12_tvb, 0, 1, bitvalue);
}
@@ -1775,10 +1777,10 @@ BLER-Result-r12/blocksReceived-r12/m-r12 TYPE=FT_UINT8 DISPLAY=BASE_CUSTOM STRIN
BLER-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_BLER_Range_r12_vals_ext
#.TYPE_ATTR
-TimeSinceFailure-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeSinceFailure-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-TimeUntilReconnection-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeUntilReconnection-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FIELD_ATTR
CarrierFreqUTRA-FDD/q-RxLevMin ABBREV=utra_q_RxLevMin
@@ -1805,22 +1807,22 @@ CarrierFreqUTRA-TDD-r12/q-RxLevMin-r12 ABBREV=utra_q_RxLevMin_r12
CarrierFreqUTRA-TDD-r12/q-RxLevMin-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_utra_q_RxLevMin_vals_ext
#.TYPE_ATTR
-CarrierFreqUTRA-FDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+CarrierFreqUTRA-FDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-CarrierFreqUTRA-FDD-Ext-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+CarrierFreqUTRA-FDD-Ext-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-CarrierFreqUTRA-TDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+CarrierFreqUTRA-TDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-CarrierFreqUTRA-TDD-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+CarrierFreqUTRA-TDD-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-CarrierFreqUTRA-FDD/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+CarrierFreqUTRA-FDD/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-CarrierFreqUTRA-FDD-Ext-r12/q-QualMin-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+CarrierFreqUTRA-FDD-Ext-r12/q-QualMin-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.FIELD_ATTR
CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin ABBREV=geran_q_RxLevMin
@@ -1829,7 +1831,7 @@ CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin ABBREV=geran_q_RxLevMin
CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_geran_q_RxLevMin_vals_ext
#.TYPE_ATTR
-CarrierFreqsInfoGERAN/commonInfo/p-MaxGERAN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+CarrierFreqsInfoGERAN/commonInfo/p-MaxGERAN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
CQI-ReportConfig/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
@@ -1841,16 +1843,16 @@ CQI-ReportConfig-r10/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EP
CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals)
#.TYPE_ATTR
-P-C-AndCBSR-r11/p-C-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+P-C-AndCBSR-r11/p-C-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-P-C-AndCBSR-r13/p-C-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+P-C-AndCBSR-r13/p-C-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-P-C-AndCBSR-r15 /p-C-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+P-C-AndCBSR-r15 /p-C-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-CSI-RS-Config-r10/csi-RS-r10/setup/p-C-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+CSI-RS-Config-r10/csi-RS-r10/setup/p-C-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.FN_BODY IP-Address-r13/ipv4-r13 VAL_PTR=&ipv4_tvb HF_INDEX=-1
tvbuff_t *ipv4_tvb = NULL;
@@ -1892,19 +1894,19 @@ IP-Address-r13/ipv6-r13 TYPE=FT_IPv6 DISPLAY=BASE_NONE
}
/* Clear out state */
- drx_config->configured = FALSE;
+ drx_config->configured = false;
}
#.FN_BODY MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 VAL_PTR=&timer
- guint32 timer;
+ uint32_t timer;
%(DEFAULT_BODY)s
#.TYPE_ATTR
-MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_sr_periods
+MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_sr_periods)
#.TYPE_ATTR
-MAC-MainConfig/eag_9/shortTTI-AndSPT-r15/setup/ssr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_sr_periods
+MAC-MainConfig/eag_9/shortTTI-AndSPT-r15/setup/ssr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_sr_periods)
#.FN_BODY MAC-MainConfig/eag_2/mac-MainConfig-v1020/extendedBSR-Sizes-r10
mac_lte_info* p_mac_lte_info;
@@ -1914,95 +1916,95 @@ MAC-MainConfig/eag_9/shortTTI-AndSPT-r15/setup/ssr-ProhibitTimer-r15 DISPLAY=BAS
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);
+ set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, true, actx->pinfo);
}
#.TYPE_ATTR
-PDSCH-ConfigCommon/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+PDSCH-ConfigCommon/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-P-MaxNR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+P-MaxNR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-SPS-ConfigUL/setup/p0-Persistent/p0-NominalPUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+SPS-ConfigUL/setup/p0-Persistent/p0-NominalPUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-SPS-ConfigUL/setup/p0-Persistent/p0-UE-PUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+SPS-ConfigUL/setup/p0-Persistent/p0-UE-PUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-NominalPUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-NominalPUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-UE-PUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-UE-PUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
UplinkPowerControlCommon/deltaPreambleMsg3 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals)
#.TYPE_ATTR
-UplinkPowerControlCommon/p0-NominalPUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommon/p0-NominalPUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
UplinkPowerControlCommonSCell-v1130/deltaPreambleMsg3-r11 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals)
#.TYPE_ATTR
-UplinkPowerControlCommon/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommon/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlCommon-v1610/p0-NominalSRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommon-v1610/p0-NominalSRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlCommonPSCell-r12/p0-NominalPUCCH-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommonPSCell-r12/p0-NominalPUCCH-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlCommonSCell-v1310/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommonSCell-v1310/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlCommonSCell-r10/p0-NominalPUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommonSCell-r10/p0-NominalPUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlDedicated/p0-UE-PUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlDedicated/p0-UE-PUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPowerControlDedicated/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlDedicated/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-NominalPUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-NominalPUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-UE-PUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-UE-PUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPowerControlDedicated-v1530/p0-UE-PUSCH-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlDedicated-v1530/p0-UE-PUSCH-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPowerControlAddSRS-r16/p0-UE-SRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlAddSRS-r16/p0-UE-SRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-UplinkPowerControlDedicatedSCell-v1310/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlDedicatedSCell-v1310/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
CellSelectionInfoNFreq-r13/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
#.TYPE_ATTR
-Q-QualMin-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+Q-QualMin-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
Q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_q_RxLevMin_vals_ext
@@ -2014,22 +2016,22 @@ CarrierFreqNR-r15/q-RxLevMin-r15 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_r
CarrierFreqNR-r15/q-RxLevMinSUL-r15 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_q_RxLevMin_vals_ext
#.TYPE_ATTR
-CarrierFreqNR-r15/q-QualMin-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+CarrierFreqNR-r15/q-QualMin-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-Q-OffsetRangeInterRAT DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+Q-OffsetRangeInterRAT DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
ReselectionThreshold DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_ReselectionThreshold_vals_ext
#.TYPE_ATTR
-ReselectionThresholdQ-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+ReselectionThresholdQ-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-T-ReselectionEUTRA-CE-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+T-ReselectionEUTRA-CE-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
Hysteresis DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_Hysteresis_vals_ext
@@ -2143,10 +2145,10 @@ MeasResultWLAN-r13/availableAdmissionCapacityWLAN-r13 DISPLAY=BASE_CUSTOM STRING
MeasResultForECID-r9/ue-RxTxTimeDiffResult-r9 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_ue_RxTxTimeDiffResult_fmt)
#.TYPE_ATTR
-MeasResultForRSSI-r13/channelOccupancy-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MeasResultForRSSI-r13/channelOccupancy-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-MeasResultForRSSI-NR-r16/channelOccupancyNR-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MeasResultForRSSI-NR-r16/channelOccupancyNR-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
UL-PDCP-DelayResult-r13/excessDelay-r13 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_excessDelay_r13_vals_ext
@@ -2164,32 +2166,174 @@ MeasResultSSTD-r13/subframeBoundaryOffsetResult-r13 DISPLAY=BASE_CUSTOM STRINGS=
#.TYPE_ATTR
SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
+#.FN_FTR DLDedicatedMessageSegment-r16-IEs
+ if (lte_rrc_reassemble_dcch_segments) {
+ uint32_t ueid, id, count;
+ rlc_lte_info *p_rlc_lte_info;
+ pdcp_lte_info *p_pdcp_lte_info;
+ mac_lte_info *p_mac_lte_info;
+ fragment_head *frag_data;
+ tvbuff_t *frag_tvb, *reassembled_tvb;
+ wmem_tree_key_t key[3];
+
+ if ((p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0)) != NULL) {
+ ueid = p_mac_lte_info->ueid;
+ } else if ((p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0)) != NULL) {
+ ueid = p_rlc_lte_info->ueid;
+ } else if ((p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0)) != NULL) {
+ ueid = p_pdcp_lte_info->ueid;
+ } else {
+ ueid = 0;
+ }
+ key[0].length = 1;
+ key[0].key = &ueid;
+ key[1].length = 1;
+ key[1].key = &actx->pinfo->num;
+ key[2].length = 0;
+ key[2].key = NULL;
+ if (!PINFO_FD_VISITED(actx->pinfo)) {
+ void *value;
+
+ if (wmem_map_lookup_extended(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER((ueid<<16)|(1<<15)), NULL, &value)) {
+ count = GPOINTER_TO_UINT(value);
+ } else {
+ count = 0;
+ }
+ if (private_data_get_dcch_segment_number(actx) == 0) {
+ /* new segmented message */
+ count++;
+ wmem_map_insert(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER((ueid<<16)|(1<<15)), GUINT_TO_POINTER(count));
+ }
+ id = (ueid<<16)|(1<<15)|(count&0x7fff);
+ wmem_tree_insert32_array(lte_rrc_dcch_segment_id_tree, key, GUINT_TO_POINTER(id));
+ } else {
+ id = GPOINTER_TO_UINT(wmem_tree_lookup32_array(lte_rrc_dcch_segment_id_tree, key));
+ }
+ if ((frag_tvb = private_data_get_dcch_segment(actx)) != NULL) {
+ frag_data = fragment_add_seq_check(&lte_rrc_dcch_segment_reassembly_table, frag_tvb, 0, actx->pinfo,
+ id, NULL, private_data_get_dcch_segment_number(actx),
+ tvb_reported_length(frag_tvb),
+ !private_data_get_dcch_segment_last(actx));
+ reassembled_tvb = process_reassembled_data(frag_tvb, 0, actx->pinfo, "Reassembled DL Dedicated Message",
+ frag_data, &lte_rrc_dcch_segment_frag_items, NULL, tree);
+ if (reassembled_tvb) {
+ dissect_lte_rrc_DL_DCCH_Message_PDU(reassembled_tvb, actx->pinfo, tree, NULL);
+ }
+ }
+ }
+
+#.FN_BODY DLDedicatedMessageSegment-r16-IEs/segmentNumber-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ private_data_set_dcch_segment_number(actx, (uint8_t)value);
+
+#.FN_BODY DLDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentContainer-r16 VAL_PTR=&segment
+ tvbuff_t *segment;
+%(DEFAULT_BODY)s
+ private_data_set_dcch_segment(actx, segment);
+
+#.FN_BODY DLDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentType-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ private_data_set_dcch_segment_last(actx, (value > 0) ? true : false);
+
+#.FN_FTR ULDedicatedMessageSegment-r16-IEs
+ if (lte_rrc_reassemble_dcch_segments) {
+ uint32_t ueid, id, count;
+ rlc_lte_info *p_rlc_lte_info;
+ pdcp_lte_info *p_pdcp_lte_info;
+ mac_lte_info *p_mac_lte_info;
+ fragment_head *frag_data;
+ tvbuff_t *frag_tvb, *reassembled_tvb;
+ wmem_tree_key_t key[3];
+
+ if ((p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0)) != NULL) {
+ ueid = p_mac_lte_info->ueid;
+ } else if ((p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0)) != NULL) {
+ ueid = p_rlc_lte_info->ueid;
+ } else if ((p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0)) != NULL) {
+ ueid = p_pdcp_lte_info->ueid;
+ } else {
+ ueid = 0;
+ }
+ key[0].length = 1;
+ key[0].key = &ueid;
+ key[1].length = 1;
+ key[1].key = &actx->pinfo->num;
+ key[2].length = 0;
+ key[2].key = NULL;
+ if (!PINFO_FD_VISITED(actx->pinfo)) {
+ void *value;
+
+ if (wmem_map_lookup_extended(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER(ueid<<16), NULL, &value)) {
+ count = GPOINTER_TO_UINT(value);
+ } else {
+ count = 0;
+ }
+ if (private_data_get_dcch_segment_number(actx) == 0) {
+ /* new segmented message */
+ count++;
+ wmem_map_insert(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER(ueid<<16), GUINT_TO_POINTER(count));
+ }
+ id = (ueid<<16)|(count&0x7fff);
+ wmem_tree_insert32_array(lte_rrc_dcch_segment_id_tree, key, GUINT_TO_POINTER(id));
+ } else {
+ id = GPOINTER_TO_UINT(wmem_tree_lookup32_array(lte_rrc_dcch_segment_id_tree, key));
+ }
+ if ((frag_tvb = private_data_get_dcch_segment(actx)) != NULL) {
+ frag_data = fragment_add_seq_check(&lte_rrc_dcch_segment_reassembly_table, frag_tvb, 0, actx->pinfo,
+ id, NULL, private_data_get_dcch_segment_number(actx),
+ tvb_reported_length(frag_tvb),
+ !private_data_get_dcch_segment_last(actx));
+ reassembled_tvb = process_reassembled_data(frag_tvb, 0, actx->pinfo, "Reassembled UL Dedicated Message",
+ frag_data, &lte_rrc_dcch_segment_frag_items, NULL, tree);
+ if (reassembled_tvb) {
+ dissect_lte_rrc_UL_DCCH_Message_PDU(reassembled_tvb, actx->pinfo, tree, NULL);
+ }
+ }
+ }
+
+#.FN_BODY ULDedicatedMessageSegment-r16-IEs/segmentNumber-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ private_data_set_dcch_segment_number(actx, (uint8_t)value);
+
+#.FN_BODY ULDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentContainer-r16 VAL_PTR=&segment
+ tvbuff_t *segment;
+%(DEFAULT_BODY)s
+ private_data_set_dcch_segment(actx, segment);
+
+#.FN_BODY ULDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentType-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ private_data_set_dcch_segment_last(actx, (value > 0) ? true : false);
+
#.FN_HDR MasterInformationBlock
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MasterInformationBlock");
#.FN_HDR SystemInformation
- if (private_data_get_bcch_dl_sch_msg(actx) == FALSE) {
+ if (private_data_get_bcch_dl_sch_msg(actx) == false) {
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformation [");
}
#.FN_BODY SystemInformation
%(DEFAULT_BODY)s
- if (private_data_get_bcch_dl_sch_msg(actx) == FALSE) {
+ if (private_data_get_bcch_dl_sch_msg(actx) == false) {
col_append_str(actx->pinfo->cinfo, COL_INFO, " ]");
}
#.FN_HDR SystemInformationBlockType1
- if (private_data_get_bcch_dl_sch_msg(actx) == FALSE) {
+ if (private_data_get_bcch_dl_sch_msg(actx) == false) {
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformationBlockType1");
}
#.FN_HDR SystemInformation-BR-r13
- private_data_set_bcch_dl_sch_msg(actx, TRUE);
+ private_data_set_bcch_dl_sch_msg(actx, true);
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformation-BR-r13 [");
#.FN_BODY SystemInformation-BR-r13
@@ -2199,12 +2343,12 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
#.FN_HDR SystemInformationBlockType1-BR-r13
- private_data_set_bcch_dl_sch_msg(actx, TRUE);
+ private_data_set_bcch_dl_sch_msg(actx, true);
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformationBlockType1-BR-r13");
#.FN_HDR SystemInformation-MBMS-r14
- private_data_set_bcch_dl_sch_msg(actx, TRUE);
+ private_data_set_bcch_dl_sch_msg(actx, true);
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformation-MBMS-r14 [");
#.FN_BODY SystemInformation-MBMS-r14
@@ -2336,6 +2480,10 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB32");
+#.FN_HDR SystemInformationBlockType33-r18
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB33");
+
#.FN_HDR SystemInformationBlockPos-r15
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIBPos");
@@ -2430,19 +2578,48 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLDedicatedMessageSegment-r16");
#.FN_HDR RRCConnectionReestablishmentRequest
-
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP. Only SRBs and UM (not AM) DRBs */
+ pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionReestablishmentRequest");
#.FN_HDR RRCConnectionRequest
-
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP */
+ pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionRequest");
#.FN_HDR RRCConnectionResumeRequest-r13
-
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP */
+ /* TODO: more complicated, skip PDCP reset for now */
+ // pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionResumeRequest-r13");
#.FN_HDR RRCEarlyDataRequest-r15
-
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP */
+ pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, false);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCEarlyDataRequest-r15");
#.FN_HDR CSFBParametersRequestCDMA2000
@@ -2598,7 +2775,7 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
#.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;
+ uint16_t number_of_records = ((tvb_get_ntohs(tvb, 0) >> 7) & 0x0f) + 1;
%(DEFAULT_BODY)s
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%u PagingRecord%%s)", number_of_records, plurality(number_of_records, "", "s"));
@@ -2609,14 +2786,14 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
#.FN_BODY MasterInformationBlock/systemFrameNumber VAL_PTR=&value_tvb
tvbuff_t *value_tvb = NULL;
- guint32 sfn;
+ uint32_t sfn;
%(DEFAULT_BODY)s
/* Show SFN in info column */
- sfn = tvb_get_guint8(value_tvb, 0);
+ sfn = tvb_get_uint8(value_tvb, 0);
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (SFN=%%u)", sfn);
#.FN_BODY SystemInformationBlockType1/systemInfoValueTag VAL_PTR=&value
- guint32 value;
+ uint32_t 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
@@ -2627,15 +2804,15 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(&lte_rrc_duration_val)
wmem_map_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_set = true;
system_info_value_current = value;
}
else {
/* Look up indication of changed info value from hash table */
- gpointer p_previous = wmem_map_lookup(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num));
+ void *p_previous = wmem_map_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;
+ uint32_t 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);
}
@@ -2703,29 +2880,29 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
#.FN_BODY DRB-Identity VAL_PTR=&value
- guint32 value;
+ uint32_t value;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
- mapping->drbid = (guint8)value;
+ mapping->drbid = (uint8_t)value;
}
#.FN_BODY RLC-Config VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->rlcMode_present = true;
if (mapping->rlcMode == RLC_AM_MODE) {
mapping->pdcp_sn_size = 12;
- mapping->pdcp_sn_size_present = TRUE;
+ 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;
+ bool ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
@@ -2733,7 +2910,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY RLC-Config-v1250/dl-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field
- gboolean ext_li_field;
+ bool ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
@@ -2741,7 +2918,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY RLC-Config-v1310/ul-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn
- gboolean ext_am_sn;
+ bool ext_am_sn;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
@@ -2749,7 +2926,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY RLC-Config-v1310/dl-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn
- gboolean ext_am_sn;
+ bool ext_am_sn;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
@@ -2757,51 +2934,51 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY DRB-ToAddMod/logicalChannelIdentity VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->lcid = (uint8_t)value;
+ mapping->lcid_present = true;
}
#.FN_BODY DRB-ToAddMod/eag_5/logicalChannelIdentity-r15 VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->lcid = (uint8_t)value;
+ mapping->lcid_present = true;
}
#.FN_BODY SN-FieldLength VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->um_sn_length_present = true;
}
#.FN_BODY LogicalChannelConfig/ul-SpecificParameters/priority VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->ul_priority_present = true;
}
#.TYPE_ATTR
LWA-Config-r13/eag_1/wt-MAC-Address-r14 TYPE=FT_ETHER
#.FN_BODY PDCP-Config/rlc-UM/pdcp-SN-Size VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->pdcp_sn_size_present = true;
}
#.FN_BODY PDCP-Config/eag_2/pdcp-SN-Size-v1130
@@ -2809,7 +2986,7 @@ LWA-Config-r13/eag_1/wt-MAC-Address-r14 TYPE=FT_ETHER
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->pdcp_sn_size = 15;
- mapping->pdcp_sn_size_present = TRUE;
+ mapping->pdcp_sn_size_present = true;
}
#.FN_BODY PDCP-Config/eag_4/pdcp-SN-Size-v1310
@@ -2817,14 +2994,14 @@ LWA-Config-r13/eag_1/wt-MAC-Address-r14 TYPE=FT_ETHER
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->pdcp_sn_size = 18;
- mapping->pdcp_sn_size_present = TRUE;
+ mapping->pdcp_sn_size_present = true;
}
#.TYPE_ATTR
-LBT-Config-r14/maxEnergyDetectionThreshold-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+LBT-Config-r14/maxEnergyDetectionThreshold-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-LBT-Config-r14/energyDetectionThresholdOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+LBT-Config-r14/energyDetectionThresholdOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.FN_BODY NeighCellsInfo-r12/transmissionModeList-r12 VAL_PTR=&tm_list_tvb
tvbuff_t *tm_list_tvb=NULL;
@@ -2850,7 +3027,7 @@ LBT-Config-r14/energyDetectionThresholdOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STR
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);
+ set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, private_data_get_simult_pucch_pusch_cell_type(actx), true, actx->pinfo);
}
#.TYPE_RENAME
@@ -2862,13 +3039,13 @@ PUCCH-ConfigDedicated-r13/pucch-Format-r13/channelSelection-r13/n1PUCCH-AN-CS-r1
private_data_set_ra_preambles(actx, 0);
#.FN_BODY RACH-ConfigCommon/preambleInfo/numberOfRA-Preambles VAL_PTR=&value
- guint value;
+ unsigned 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;
+ unsigned ra_value, value;
%(DEFAULT_BODY)s
/* Retrived stored value for RA (both Group A & Group B) */
ra_value = private_data_get_ra_preambles(actx);
@@ -2886,172 +3063,172 @@ PUCCH-ConfigDedicated-r13/pucch-Format-r13/channelSelection-r13/n1PUCCH-AN-CS-r1
private_data_set_ra_preambles(actx, 0);
#.TYPE_ATTR
-RACH-ConfigCommon-v1250/txFailParams-r12/connEstFailOffset-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+RACH-ConfigCommon-v1250/txFailParams-r12/connEstFailOffset-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.FN_BODY DRX-Config/setup/onDurationTimer VAL_PTR=&value
- guint32 value;
+ uint32_t 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->configured = true;
config->onDurationTimer = drx_lookup_onDurationTimer(value);
#.FN_BODY DRX-Config/setup/drx-InactivityTimer VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t value;
drx_config_t* config = private_data_get_drx_config(actx);
%(DEFAULT_BODY)s
- config->shortCycleConfigured = TRUE;
+ config->shortCycleConfigured = true;
config->shortCycle = drx_lookup_shortCycle(value);
#.FN_BODY DRX-Config/setup/shortDRX/drxShortCycleTimer VAL_PTR=&timer
- guint32 timer;
+ uint32_t timer;
drx_config_t* config = private_data_get_drx_config(actx);
%(DEFAULT_BODY)s
config->shortCycleTimer = timer;
#.TYPE_ATTR
-DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_short_drx_cycles
+DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_short_drx_cycles)
#.FN_BODY DRX-Config-v1130/drx-RetransmissionTimer-v1130 VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t value;
drx_config_t* config = private_data_get_drx_config(actx);
%(DEFAULT_BODY)s
/* Presumably config->shortCycleConfigured will be set... */
@@ -3063,7 +3240,7 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S
config->longCycle = 60;
#.FN_BODY DRX-Config-v1310/longDRX-CycleStartOffset-v1310/sf60-v1310 VAL_PTR=&value
- guint32 value;
+ uint32_t value;
drx_config_t* config = private_data_get_drx_config(actx);
%(DEFAULT_BODY)s
config->cycleOffset = value;
@@ -3087,10 +3264,10 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S
/* 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);
+ 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);
+ 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
@@ -3114,25 +3291,25 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S
}
#.FN_BODY CipheringAlgorithm-r12 VAL_PTR=&value
- guint32 value;
+ uint32_t value;
pdcp_lte_security_info_t *p_security_algorithms;
%(DEFAULT_BODY)s
p_security_algorithms = private_data_pdcp_security_algorithms(actx);
p_security_algorithms->ciphering = (enum lte_security_ciphering_algorithm_e)value;
#.FN_BODY SecurityAlgorithmConfig/integrityProtAlgorithm VAL_PTR=&value
- guint32 value;
+ uint32_t value;
pdcp_lte_security_info_t *p_security_algorithms;
%(DEFAULT_BODY)s
p_security_algorithms = private_data_pdcp_security_algorithms(actx);
p_security_algorithms->integrity = (enum lte_security_integrity_algorithm_e)value;
#.FN_BODY SchedulingRequestConfig/setup/sr-ConfigIndex VAL_PTR=&value
- guint32 value;
- guint16 periodicity, subframe_offset;
+ uint32_t value;
+ uint16_t periodicity, subframe_offset;
proto_item *ti;
proto_tree *subtree;
- gint index_offset = offset;
+ int index_offset = offset;
%(DEFAULT_BODY)s
/* Break config index into its parts */
sr_lookup_configindex(value, &periodicity, &subframe_offset);
@@ -3144,11 +3321,11 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S
proto_item_set_generated(ti);
#.FN_BODY SchedulingRequestConfigSCell-r13/setup/sr-ConfigIndex-r13 VAL_PTR=&value
- guint32 value;
- guint16 periodicity, subframe_offset;
+ uint32_t value;
+ uint16_t periodicity, subframe_offset;
proto_item *ti;
proto_tree *subtree;
- gint index_offset = offset;
+ int index_offset = offset;
%(DEFAULT_BODY)s
/* Break config index into its parts */
sr_lookup_configindex(value, &periodicity, &subframe_offset);
@@ -3160,7 +3337,7 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S
proto_item_set_generated(ti);
#.FN_BODY FreqBandIndicator VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
set_freq_band_indicator(value, actx);
@@ -3173,8 +3350,8 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S
%(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++];
+ uint16_t serving_band = mappings->band_by_item[mappings->number_of_interfreq_serving_read];
+ uint16_t 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++;
@@ -3194,16 +3371,16 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S
mappings->number_of_bands_set = 0;
#.FN_BODY ReleaseCause VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]",
- val_to_str(value, lte_rrc_ReleaseCause_vals, "Unknown"));
+ val_to_str_const(value, lte_rrc_ReleaseCause_vals, "Unknown"));
#.TYPE_ATTR
LWA-Parameters-r13/wlan-MAC-Address-r13 TYPE=FT_ETHER
#.TYPE_ATTR
-VisitedCellInfo-r12/timeSpent-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+VisitedCellInfo-r12/timeSpent-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationLow-r12
%(DEFAULT_BODY)s
@@ -3259,19 +3436,19 @@ SL-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_SL_CBR_r14_fmt)
SL-CommResourcePoolV2X-r14/threshS-RSSI-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_threshS_RSSI_CBR_r14_fmt)
#.TYPE_ATTR
-SL-DiscResourcePool-r12/eag_1/txParamsAddNeighFreq-r13/setup/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+SL-DiscResourcePool-r12/eag_1/txParamsAddNeighFreq-r13/setup/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
SL-DiscSysInfoReport-r13/cellSelectionInfo-r13/q-RxLevMinOffset-r13 STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals)
#.TYPE_ATTR
-SL-DiscSysInfoReport-r13/referenceSignalPower-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+SL-DiscSysInfoReport-r13/referenceSignalPower-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
SL-V2X-InterFreqUE-Config-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_offsetDFN_r14_fmt)
#.TYPE_ATTR
-P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.FN_BODY RRCConnectionReconfiguration-v1510-IEs/nr-Config-r15/setup/nr-SecondaryCellGroupConfig-r15 VAL_PTR = &rrc_reconfiguration_tvb
tvbuff_t *rrc_reconfiguration_tvb = NULL;
@@ -3658,6 +3835,27 @@ P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib1-10-v1700
private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_1_10);
+#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-17a-v1770
+ private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_17a);
+
+#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-18a-v1770
+ private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_18a);
+
+#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-20a-v1770
+ private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_20a);
+
+#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib1-11-v1800
+ private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_1_11);
+
+#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib1-12-v1800
+ private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_1_12);
+
+#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-26-v1800
+ private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_26);
+
+#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-27-v1800
+ private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_27);
+
#.FN_BODY SystemInformationBlockPos-r15/assistanceDataSIB-Element-r15 VAL_PTR = &assist_data_sib_elem_tvb
tvbuff_t *assist_data_sib_elem_tvb = NULL;
@@ -3685,7 +3883,7 @@ P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
}
#.TYPE_ATTR
-TimeOffsetUTC-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeOffsetUTC-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY OverheatingAssistance-v1610/overheatingAssistanceForSCG-r16 VAL_PTR = &overheating_assist_for_scg_tvb
tvbuff_t *overheating_assist_for_scg_tvb = NULL;
@@ -3711,6 +3909,20 @@ TimeOffsetUTC-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
dissect_nr_rrc_CondReconfigExecCondSCG_r17_PDU(cond_reconfig_exec_cond_scg_tvb, actx->pinfo, subtree, NULL);
}
+#.FN_BODY ReferenceLocation-r18 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 RACH-ReportNR-r18 VAL_PTR = &ra_reportlist_tvb
+ tvbuff_t *ra_reportlist_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (ra_reportlist_tvb) {
+ dissect_nr_rrc_RA_ReportList_r16_PDU(ra_reportlist_tvb, actx->pinfo, tree, NULL);
+ }
+
#
# EUTRA-Sidelink-Preconf
#
@@ -3809,15 +4021,48 @@ SL-V2X-PreconfigCommPool-r14/threshS-RSSI-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInformationRequest-NB-r16");
#.FN_HDR RRCConnectionReestablishmentRequest-NB
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP. Only SRBs and UM (not AM) DRBs */
+ pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionReestablishmentRequest-NB");
#.FN_HDR RRCConnectionRequest-NB
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP */
+ pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionRequest-NB");
#.FN_HDR RRCConnectionResumeRequest-NB
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP */
+ /* TODO: more complicated, skip PDCP reset for now */
+ // pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionResumeRequest-NB");
#.FN_HDR RRCEarlyDataRequest-NB-r15
+ /* Inform RLC & PDCP - need UE identifier */
+ mac_lte_info *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) {
+ /* Tell RLC this UE is trying to (re)connect */
+ rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid);
+ /* And PDCP */
+ pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, false);
+ }
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCEarlyDataRequest-NB-r15");
#.FN_HDR SCPTMConfiguration-NB-r14
@@ -3868,6 +4113,9 @@ SL-V2X-PreconfigCommPool-r14/threshS-RSSI-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF
#.FN_HDR SystemInformationBlockType32-NB-r17
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB32");
+#.FN_HDR SystemInformationBlockType33-NB-r18
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB33");
+
#.TYPE_ATTR
MasterInformationBlock-NB/schedulingInfoSIB1-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_schedulingInfoSIB1_NB_r13_vals_ext
@@ -3875,16 +4123,16 @@ MasterInformationBlock-NB/schedulingInfoSIB1-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC
MasterInformationBlock-TDD-NB-r15/schedulingInfoSIB1-r15 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_schedulingInfoSIB1_NB_r13_vals_ext
#.TYPE_ATTR
-RRCConnectionReject-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCConnectionReject-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RRCConnectionRelease-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCConnectionRelease-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RRCConnectionRelease-NB-v1430-IEs/extendedWaitTime-CPdata-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCConnectionRelease-NB-v1430-IEs/extendedWaitTime-CPdata-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RRCEarlyDataComplete-NB-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RRCEarlyDataComplete-NB-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
CellSelectionInfo-NB-v1350/delta-RxLevMin-v1350 STRINGS=VALS(lte_rrc_delta_RxLevMin_vals)
@@ -3905,16 +4153,16 @@ InterFreqCarrierFreqInfo-NB-r13/eag_1/delta-RxLevMin-v1350 STRINGS=VALS(lte_rrc_
AB-Config-NB-r13/ab-Category-r13 STRINGS=VALS(lte_rrc_eab_category_vals)
#.TYPE_ATTR
-NPDSCH-ConfigCommon-NB-r13/nrs-Power-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+NPDSCH-ConfigCommon-NB-r13/nrs-Power-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-RACH-ConfigCommon-NB-r13/connEstFailOffset-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+RACH-ConfigCommon-NB-r13/connEstFailOffset-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-SR-WithoutHARQ-ACK-Config-NB-r15/setup/sr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_sr_periods
+SR-WithoutHARQ-ACK-Config-NB-r15/setup/sr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_sr_periods)
#.TYPE_ATTR
-SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.FN_BODY DRB-ToAddMod-NB-r13
struct mac_lte_info *p_mac_lte_info;
@@ -3957,9 +4205,9 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->rlcMode = RLC_AM_MODE;
- mapping->rlcMode_present = TRUE;
+ mapping->rlcMode_present = true;
mapping->pdcp_sn_size = 7;
- mapping->pdcp_sn_size_present = TRUE;
+ mapping->pdcp_sn_size_present = true;
}
#.FN_BODY RLC-Config-NB-r13/um-Bi-Directional-r15
@@ -3967,11 +4215,11 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->rlcMode = RLC_UM_MODE;
- mapping->rlcMode_present = TRUE;
+ mapping->rlcMode_present = true;
mapping->um_sn_length = 5;
- mapping->um_sn_length_present = TRUE;
+ mapping->um_sn_length_present = true;
mapping->pdcp_sn_size = 7;
- mapping->pdcp_sn_size_present = TRUE;
+ mapping->pdcp_sn_size_present = true;
}
#.FN_BODY RLC-Config-NB-r13/um-Uni-Directional-UL-r15
@@ -3979,11 +4227,11 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->rlcMode = RLC_UM_MODE;
- mapping->rlcMode_present = TRUE;
+ mapping->rlcMode_present = true;
mapping->um_sn_length = 5;
- mapping->um_sn_length_present = TRUE;
+ mapping->um_sn_length_present = true;
mapping->pdcp_sn_size = 7;
- mapping->pdcp_sn_size_present = TRUE;
+ mapping->pdcp_sn_size_present = true;
}
#.FN_BODY RLC-Config-NB-r13/um-Uni-Directional-DL-r15
@@ -3991,39 +4239,39 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
%(DEFAULT_BODY)s
if (mapping != NULL) {
mapping->rlcMode = RLC_UM_MODE;
- mapping->rlcMode_present = TRUE;
+ mapping->rlcMode_present = true;
mapping->um_sn_length = 5;
- mapping->um_sn_length_present = TRUE;
+ mapping->um_sn_length_present = true;
mapping->pdcp_sn_size = 7;
- mapping->pdcp_sn_size_present = TRUE;
+ mapping->pdcp_sn_size_present = true;
}
#.FN_BODY DRB-ToAddMod-NB-r13/logicalChannelIdentity-r13 VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->lcid = (uint8_t)value;
+ mapping->lcid_present = true;
}
#.FN_BODY LogicalChannelConfig-NB-r13/priority-r13 VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ mapping->ul_priority_present = true;
}
#.TYPE_ATTR
-UplinkPowerControlCommon-NB-r13/p0-NominalNPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+UplinkPowerControlCommon-NB-r13/p0-NominalNPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
UplinkPowerControlCommon-NB-r13/deltaPreambleMsg3-r13 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals)
#.TYPE_ATTR
-UplinkPowerControlDedicated-NB-r13/p0-UE-NPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+UplinkPowerControlDedicated-NB-r13/p0-UE-NPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
ReselectionThreshold-NB-v1360 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_ReselectionThreshold_NB_vals_ext
@@ -4035,4 +4283,4 @@ NRSRP-Range-NB-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_NRSRP_Range_NB_r1
NRSRQ-Range-NB-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_NRSRQ_Range_NB_r14_fmt)
#.TYPE_ATTR
-PUR-Config-NB-r16/pur-PhysicalConfig-r16/p0-UE-NPUSCH-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+PUR-Config-NB-r16/pur-PhysicalConfig-r16/p0-UE-NPUSCH-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
index 72d8992e..a391b9cf 100644
--- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
+++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
@@ -1,9 +1,9 @@
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
- * (3GPP TS 36.331 V17.5.0 Release 17) packet dissection
+ * (3GPP TS 36.331 V18.2.0 Release 18) packet dissection
* Copyright 2008, Vincent Helfre
- * Copyright 2009-2023, Pascal Quantin
+ * Copyright 2009-2024, Pascal Quantin
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -25,9 +25,12 @@
#include <epan/exceptions.h>
#include <epan/show_exception.h>
#include <epan/proto_data.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
#include <wsutil/str_util.h>
#include <wsutil/epochs.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-rrc.h"
@@ -48,24 +51,28 @@
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 nas_5gs_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 dissector_handle_t nr_rrc_reconf_handle = NULL;
+static dissector_handle_t nas_eps_handle;
+static dissector_handle_t nas_5gs_handle;
+static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle;
+static dissector_handle_t rrc_sys_info_cont_handle;
+static dissector_handle_t gsm_a_dtap_handle;
+static dissector_handle_t gsm_rlcmac_dl_handle;
+static dissector_handle_t nr_rrc_reconf_handle;
static dissector_handle_t lte_rrc_conn_reconf_handle;
static dissector_handle_t lte_rrc_dl_ccch_handle;
-static wmem_map_t *lte_rrc_etws_cmas_dcs_hash = NULL;
+static wmem_map_t *lte_rrc_etws_cmas_dcs_hash;
/* Keep track of where/how the System Info value has changed */
-static wmem_map_t *lte_rrc_system_info_value_changed_hash = NULL;
-static guint8 system_info_value_current;
-static gboolean system_info_value_current_set;
+static wmem_map_t *lte_rrc_system_info_value_changed_hash;
+static uint8_t system_info_value_current;
+static bool system_info_value_current_set;
-static gboolean lte_rrc_nas_in_root_tree;
+static wmem_map_t *lte_rrc_dcch_segment_ueid_count_hash;
+static wmem_tree_t *lte_rrc_dcch_segment_id_tree;
+
+static bool lte_rrc_nas_in_root_tree;
+static bool lte_rrc_reassemble_dcch_segments;
extern int proto_mac_lte;
extern int proto_rlc_lte;
@@ -76,275 +83,289 @@ extern int proto_pdcp_lte;
#include "packet-lte-rrc-val.h"
/* Initialize the protocol and registered fields */
-static int proto_lte_rrc = -1;
+static int proto_lte_rrc;
#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_aperiodicCSI_Reporting_r13_bit1 = -1;
-static int hf_lte_rrc_aperiodicCSI_Reporting_r13_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;
-static int hf_lte_rrc_measGapPatterns_r15_bit1 = -1;
-static int hf_lte_rrc_measGapPatterns_r15_bit2 = -1;
-static int hf_lte_rrc_measGapPatterns_r15_bit3 = -1;
-static int hf_lte_rrc_measGapPatterns_r15_bit4 = -1;
-static int hf_lte_rrc_measGapPatterns_r15_bit5 = -1;
-static int hf_lte_rrc_measGapPatterns_r15_bit6 = -1;
-static int hf_lte_rrc_measGapPatterns_r15_bit7 = -1;
-static int hf_lte_rrc_measGapPatterns_r15_bit8 = -1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_1;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_2;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_3;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_4;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_5;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_6;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_7;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_8;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_9;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_10;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_11;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_12;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_13;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_14;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_15;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_16;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_17;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_18;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_19;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_20;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_21;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_22;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_23;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_24;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_25;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_26;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_27;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_28;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_29;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_30;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_31;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_32;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_33;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_34;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_35;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_36;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_37;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_38;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_39;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_40;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_41;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_42;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_43;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_44;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_45;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_46;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_47;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_48;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_49;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_50;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_51;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_52;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_53;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_54;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_55;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_56;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_57;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_58;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_59;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_60;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_61;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_62;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_63;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_64;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_101;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_102;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_103;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_104;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_105;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_106;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_107;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_108;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_109;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_110;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_111;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_112;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_113;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_114;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_115;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_116;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_117;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_118;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_119;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_120;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_121;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_122;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_123;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_124;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_125;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_126;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_127;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_128;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_129;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_130;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_131;
+static int hf_lte_rrc_eutra_cap_feat_group_ind_132;
+static int hf_lte_rrc_serialNumber_gs;
+static int hf_lte_rrc_serialNumber_msg_code;
+static int hf_lte_rrc_serialNumber_upd_nb;
+static int hf_lte_rrc_warningType_value;
+static int hf_lte_rrc_warningType_emergency_user_alert;
+static int hf_lte_rrc_warningType_popup;
+static int hf_lte_rrc_warningMessageSegment_nb_pages;
+static int hf_lte_rrc_warningMessageSegment_decoded_page;
+static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1;
+static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2;
+static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1;
+static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2;
+static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1;
+static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2;
+static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit1;
+static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit2;
+static int hf_lte_rrc_sr_config_periodicity;
+static int hf_lte_rrc_sr_config_subframe_offset;
+static int hf_lte_rrc_cdma_time;
+static int hf_lte_rrc_utc_time;
+static int hf_lte_rrc_local_time;
+static int hf_lte_rrc_absolute_time;
+static int hf_lte_rrc_transmissionModeList_r12_tm1;
+static int hf_lte_rrc_transmissionModeList_r12_tm2;
+static int hf_lte_rrc_transmissionModeList_r12_tm3;
+static int hf_lte_rrc_transmissionModeList_r12_tm4;
+static int hf_lte_rrc_transmissionModeList_r12_tm6;
+static int hf_lte_rrc_transmissionModeList_r12_tm8;
+static int hf_lte_rrc_transmissionModeList_r12_tm9;
+static int hf_lte_rrc_transmissionModeList_r12_tm10;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30;
+static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31;
+static int hf_lte_rrc_sib11_fragments;
+static int hf_lte_rrc_sib11_fragment;
+static int hf_lte_rrc_sib11_fragment_overlap;
+static int hf_lte_rrc_sib11_fragment_overlap_conflict;
+static int hf_lte_rrc_sib11_fragment_multiple_tails;
+static int hf_lte_rrc_sib11_fragment_too_long_fragment;
+static int hf_lte_rrc_sib11_fragment_error;
+static int hf_lte_rrc_sib11_fragment_count;
+static int hf_lte_rrc_sib11_reassembled_in;
+static int hf_lte_rrc_sib11_reassembled_length;
+static int hf_lte_rrc_sib11_reassembled_data;
+static int hf_lte_rrc_sib12_fragments;
+static int hf_lte_rrc_sib12_fragment;
+static int hf_lte_rrc_sib12_fragment_overlap;
+static int hf_lte_rrc_sib12_fragment_overlap_conflict;
+static int hf_lte_rrc_sib12_fragment_multiple_tails;
+static int hf_lte_rrc_sib12_fragment_too_long_fragment;
+static int hf_lte_rrc_sib12_fragment_error;
+static int hf_lte_rrc_sib12_fragment_count;
+static int hf_lte_rrc_sib12_reassembled_in;
+static int hf_lte_rrc_sib12_reassembled_length;
+static int hf_lte_rrc_sib12_reassembled_data;
+static int hf_lte_rrc_dcch_segment_fragments;
+static int hf_lte_rrc_dcch_segment_fragment;
+static int hf_lte_rrc_dcch_segment_fragment_overlap;
+static int hf_lte_rrc_dcch_segment_fragment_overlap_conflict;
+static int hf_lte_rrc_dcch_segment_fragment_multiple_tails;
+static int hf_lte_rrc_dcch_segment_fragment_too_long_fragment;
+static int hf_lte_rrc_dcch_segment_fragment_error;
+static int hf_lte_rrc_dcch_segment_fragment_count;
+static int hf_lte_rrc_dcch_segment_reassembled_in;
+static int hf_lte_rrc_dcch_segment_reassembled_length;
+static int hf_lte_rrc_dcch_segment_reassembled_data;
+static int hf_lte_rrc_measGapPatterns_r15_bit1;
+static int hf_lte_rrc_measGapPatterns_r15_bit2;
+static int hf_lte_rrc_measGapPatterns_r15_bit3;
+static int hf_lte_rrc_measGapPatterns_r15_bit4;
+static int hf_lte_rrc_measGapPatterns_r15_bit5;
+static int hf_lte_rrc_measGapPatterns_r15_bit6;
+static int hf_lte_rrc_measGapPatterns_r15_bit7;
+static int hf_lte_rrc_measGapPatterns_r15_bit8;
/* Initialize the subtree pointers */
-static int ett_lte_rrc = -1;
+static int ett_lte_rrc;
#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_aperiodicCSI_Reporting_r13 = -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 gint ett_lte_rrc_nr_SecondaryCellGroupConfig_r15 = -1;
-static gint ett_lte_rrc_nr_RadioBearerConfig_r15 = -1;
-static gint ett_lte_rrc_nr_RadioBearerConfigS_r15 = -1;
-static gint ett_lte_rrc_sl_ConfigDedicatedForNR_r16 = -1;
-static gint ett_lte_rrc_nr_SecondaryCellGroupConfig = -1;
-static gint ett_lte_rrc_scg_ConfigResponseNR_r15 = -1;
-static gint ett_lte_rrc_scg_ConfigResponseNR_r16 = -1;
-static gint ett_lte_rrc_measResultSCG_r15 = -1;
-static gint ett_lte_rrc_measResultSCG_r16 = -1;
-static gint ett_lte_rrc_ul_DCCH_MessageNR_r15 = -1;
-static gint ett_lte_rrc_ul_DCCH_MessageNR_r16 = -1;
-static gint ett_lte_rrc_sourceRB_ConfigNR_r15 = -1;
-static gint ett_lte_rrc_sourceRB_ConfigSN_NR_r15 = -1;
-static gint ett_lte_rrc_sourceOtherConfigSN_NR_r15 = -1;
-static gint ett_lte_rrc_sourceContextEN_DC_r15 = -1;
-static gint ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1;
-static gint ett_lte_rrc_measGapPatterns_r15 = -1;
-static gint ett_lte_rrc_nas_Container_r15 = -1;
-static gint ett_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1;
-static gint ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1;
-static gint ett_lte_rrc_requestedCapabilityCommon_r15 = -1;
-static gint ett_lte_rrc_sidelinkUEInformationNR_r16 = -1;
-static gint ett_lte_rrc_ueAssistanceInformationNR_r16 = -1;
-static gint ett_lte_rrc_sl_ParameterNR_r16 = -1;
-static gint ett_lte_rrc_v2x_BandParametersNR_r16 = -1;
-static gint ett_lte_rrc_ueAssistanceInformationNR_SCG_r16 = -1;
-static gint ett_lte_rrc_assistanceDataSIB_Element_r15 = -1;
-static gint ett_lte_rrc_overheatingAssistanceForSCG_r16 = -1;
-static gint ett_lte_rrc_overheatingAssistanceForSCG_FR2_2_r17 = -1;
-static gint ett_lte_rrc_triggerConditionSN_r17 = -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 int ett_lte_rrc_featureGroupIndicators;
+static int ett_lte_rrc_featureGroupIndRel9Add;
+static int ett_lte_rrc_featureGroupIndRel10;
+static int ett_lte_rrc_absTimeInfo;
+static int ett_lte_rrc_nas_SecurityParam;
+static int ett_lte_rrc_targetRAT_MessageContainer;
+static int ett_lte_rrc_siPsiSibContainer;
+static int ett_lte_rrc_dedicatedInfoNAS;
+static int ett_lte_rrc_timeInfo;
+static int ett_lte_rrc_serialNumber;
+static int ett_lte_rrc_warningType;
+static int ett_lte_rrc_dataCodingScheme;
+static int ett_lte_rrc_warningMessageSegment;
+static int ett_lte_rrc_interBandTDD_CA_WithDifferentConfig;
+static int ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12;
+static int ett_lte_rrc_aperiodicCSI_Reporting_r13;
+static int ett_lte_rrc_codebook_HARQ_ACK_r13;
+static int ett_lte_rrc_sr_ConfigIndex;
+static int ett_lte_rrc_transmissionModeList_r12;
+static int ett_lte_rrc_modifiedMPR_Behavior_r10;
+static int ett_lte_rrc_sib11_fragment;
+static int ett_lte_rrc_sib11_fragments;
+static int ett_lte_rrc_sib12_fragment;
+static int ett_lte_rrc_sib12_fragments;
+static int ett_lte_rrc_dcch_segment_fragment;
+static int ett_lte_rrc_dcch_segment_fragments;
+static int ett_lte_rrc_nr_SecondaryCellGroupConfig_r15;
+static int ett_lte_rrc_nr_RadioBearerConfig_r15;
+static int ett_lte_rrc_nr_RadioBearerConfigS_r15;
+static int ett_lte_rrc_sl_ConfigDedicatedForNR_r16;
+static int ett_lte_rrc_nr_SecondaryCellGroupConfig;
+static int ett_lte_rrc_scg_ConfigResponseNR_r15;
+static int ett_lte_rrc_scg_ConfigResponseNR_r16;
+static int ett_lte_rrc_measResultSCG_r15;
+static int ett_lte_rrc_measResultSCG_r16;
+static int ett_lte_rrc_ul_DCCH_MessageNR_r15;
+static int ett_lte_rrc_ul_DCCH_MessageNR_r16;
+static int ett_lte_rrc_sourceRB_ConfigNR_r15;
+static int ett_lte_rrc_sourceRB_ConfigSN_NR_r15;
+static int ett_lte_rrc_sourceOtherConfigSN_NR_r15;
+static int ett_lte_rrc_sourceContextEN_DC_r15;
+static int ett_lte_rrc_requestedFreqBandsNR_MRDC_r15;
+static int ett_lte_rrc_measGapPatterns_r15;
+static int ett_lte_rrc_nas_Container_r15;
+static int ett_lte_rrc_sourceRB_ConfigIntra5GC_r15;
+static int ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540;
+static int ett_lte_rrc_requestedCapabilityCommon_r15;
+static int ett_lte_rrc_sidelinkUEInformationNR_r16;
+static int ett_lte_rrc_ueAssistanceInformationNR_r16;
+static int ett_lte_rrc_sl_ParameterNR_r16;
+static int ett_lte_rrc_v2x_BandParametersNR_r16;
+static int ett_lte_rrc_ueAssistanceInformationNR_SCG_r16;
+static int ett_lte_rrc_assistanceDataSIB_Element_r15;
+static int ett_lte_rrc_overheatingAssistanceForSCG_r16;
+static int ett_lte_rrc_overheatingAssistanceForSCG_FR2_2_r17;
+static int ett_lte_rrc_triggerConditionSN_r17;
+
+static expert_field ei_lte_rrc_number_pages_le15;
+static expert_field ei_lte_rrc_si_info_value_changed;
+static expert_field ei_lte_rrc_sibs_changing;
+static expert_field ei_lte_rrc_sibs_changing_edrx;
+static expert_field ei_lte_rrc_earthquake_warning_sys;
+static expert_field ei_lte_rrc_commercial_mobile_alert_sys;
+static expert_field ei_lte_rrc_unexpected_type_value;
+static expert_field ei_lte_rrc_unexpected_length_value;
+static expert_field ei_lte_rrc_too_many_group_a_rapids;
+static expert_field ei_lte_rrc_invalid_drx_config;
static const unit_name_string units_sr_periods = { " SR period", " SR periods" };
static const unit_name_string units_short_drx_cycles = { " shortDRX-Cycle", " shortDRX-Cycles" };
static reassembly_table lte_rrc_sib11_reassembly_table;
static reassembly_table lte_rrc_sib12_reassembly_table;
+static reassembly_table lte_rrc_dcch_segment_reassembly_table;
static const fragment_items lte_rrc_sib11_frag_items = {
&ett_lte_rrc_sib11_fragment,
@@ -380,6 +401,23 @@ static const fragment_items lte_rrc_sib12_frag_items = {
"SIB12 warning message segments"
};
+static const fragment_items lte_rrc_dcch_segment_frag_items = {
+ &ett_lte_rrc_dcch_segment_fragment,
+ &ett_lte_rrc_dcch_segment_fragments,
+ &hf_lte_rrc_dcch_segment_fragments,
+ &hf_lte_rrc_dcch_segment_fragment,
+ &hf_lte_rrc_dcch_segment_fragment_overlap,
+ &hf_lte_rrc_dcch_segment_fragment_overlap_conflict,
+ &hf_lte_rrc_dcch_segment_fragment_multiple_tails,
+ &hf_lte_rrc_dcch_segment_fragment_too_long_fragment,
+ &hf_lte_rrc_dcch_segment_fragment_error,
+ &hf_lte_rrc_dcch_segment_fragment_count,
+ &hf_lte_rrc_dcch_segment_reassembled_in,
+ &hf_lte_rrc_dcch_segment_reassembled_length,
+ &hf_lte_rrc_dcch_segment_reassembled_data,
+ "DCCH message segments"
+};
+
/* Forward declarations */
static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_RRCConnectionReconfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@@ -942,7 +980,7 @@ static const value_string lte_rrc_messageSize_r14_vals[] =
static value_string_ext lte_rrc_messageSize_r14_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_messageSize_r14_vals);
static void
-lte_rrc_timeConnFailure_r10_fmt(gchar *s, guint32 v)
+lte_rrc_timeConnFailure_r10_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%ums (%u)", 100*v, v);
}
@@ -960,7 +998,7 @@ static const value_string lte_rrc_n_r12_vals[] = {
};
static void
-lte_rrc_m_r12_fmt(gchar *s, guint32 v)
+lte_rrc_m_r12_fmt(char *s, uint32_t v)
{
if (v == 255) {
snprintf(s, ITEM_LABEL_LENGTH, "255 <= f(Nr) (255)");
@@ -2168,7 +2206,7 @@ static const value_string lte_rrc_RSRP_RangeSL4_vals[] = {
static value_string_ext lte_rrc_RSRP_RangeSL4_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRP_RangeSL4_vals);
static void
-lte_rrc_RSRP_RangeNR_r15_fmt(gchar *s, guint32 v)
+lte_rrc_RSRP_RangeNR_r15_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRP < -156dBm (0)");
@@ -2268,7 +2306,7 @@ static const value_string lte_rrc_RSRQ_Range_vals[] = {
static value_string_ext lte_rrc_RSRQ_Range_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRQ_Range_vals);
static void
-lte_rrc_RSRQ_RangeNR_r15_fmt(gchar *s, guint32 v)
+lte_rrc_RSRQ_RangeNR_r15_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRQ < -43dB (0)");
@@ -2317,13 +2355,13 @@ static const value_string lte_rrc_MBSFN_RSRQ_Range_vals[] = {
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_availableAdmissionCapacityWLAN_fmt(gchar *s, guint32 v)
+lte_rrc_availableAdmissionCapacityWLAN_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%uus/s (%u)", 32*v, v);
}
static void
-lte_rrc_ue_RxTxTimeDiffResult_fmt(gchar *s, guint32 v)
+lte_rrc_ue_RxTxTimeDiffResult_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "T < 2Ts (0)");
@@ -2535,13 +2573,13 @@ static const value_string lte_rrc_excessDelay_r13_vals[] = {
static value_string_ext lte_rrc_excessDelay_r13_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_excessDelay_r13_vals);
static void
-lte_rrc_averageDelay_r16_fmt(gchar *s, guint32 v)
+lte_rrc_averageDelay_r16_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/10, v);
}
static void
-lte_rrc_subframeBoundaryOffsetResult_r13_fmt(gchar *s, guint32 v)
+lte_rrc_subframeBoundaryOffsetResult_r13_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "abs(deltaZ) < 700Ts (0)");
@@ -2553,7 +2591,7 @@ lte_rrc_subframeBoundaryOffsetResult_r13_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_RS_SINR_Range_r13_fmt(gchar *s, guint32 v)
+lte_rrc_RS_SINR_Range_r13_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RS-SINR < -23dB (0)");
@@ -2565,7 +2603,7 @@ lte_rrc_RS_SINR_Range_r13_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_RS_SINR_RangeNR_r15_fmt(gchar *s, guint32 v)
+lte_rrc_RS_SINR_RangeNR_r15_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SS-SINR < -23dB (0)");
@@ -2577,7 +2615,7 @@ lte_rrc_RS_SINR_RangeNR_r15_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_RSSI_Range_r13_fmt(gchar *s, guint32 v)
+lte_rrc_RSSI_Range_r13_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
@@ -2589,13 +2627,13 @@ lte_rrc_RSSI_Range_r13_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_scptm_FreqOffset_r14_fmt(gchar *s, guint32 v)
+lte_rrc_scptm_FreqOffset_r14_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%udB (%u)", 2*v, v);
}
static void
-lte_rrc_offsetDFN_r14_fmt(gchar *s, guint32 v)
+lte_rrc_offsetDFN_r14_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "0ms (0)");
@@ -2607,13 +2645,13 @@ lte_rrc_offsetDFN_r14_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_thresholdWLAN_RSSI_fmt(gchar *s, guint32 v)
+lte_rrc_thresholdWLAN_RSSI_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", -128+v, v);
}
static void
-lte_rrc_cr_Limit_r14_fmt(gchar *s, guint32 v)
+lte_rrc_cr_Limit_r14_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "0 (0)");
@@ -2625,7 +2663,7 @@ lte_rrc_cr_Limit_r14_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_SL_CBR_r14_fmt(gchar *s, guint32 v)
+lte_rrc_SL_CBR_r14_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "0 (0)");
@@ -2637,7 +2675,7 @@ lte_rrc_SL_CBR_r14_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_threshS_RSSI_CBR_r14_fmt(gchar *s, guint32 v)
+lte_rrc_threshS_RSSI_CBR_r14_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", -112+(2*v), v);
}
@@ -2660,7 +2698,7 @@ static const value_string lte_rrc_schedulingInfoSIB1_NB_r13_vals[] = {
static value_string_ext lte_rrc_schedulingInfoSIB1_NB_r13_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_schedulingInfoSIB1_NB_r13_vals);
static void
-lte_rrc_NRSRP_Range_NB_r14_fmt(gchar *s, guint32 v)
+lte_rrc_NRSRP_Range_NB_r14_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "NRSRP < -156dBm (0)");
@@ -2672,9 +2710,9 @@ lte_rrc_NRSRP_Range_NB_r14_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_NRSRQ_Range_NB_r14_fmt(gchar *s, guint32 v)
+lte_rrc_NRSRQ_Range_NB_r14_fmt(char *s, uint32_t v)
{
- gint32 rsrq = (guint32)v;
+ int32_t rsrq = (uint32_t)v;
if (rsrq == -30) {
snprintf(s, ITEM_LABEL_LENGTH, "NRSRQ < -34dB (-30)");
} else if (rsrq < 0) {
@@ -2693,13 +2731,13 @@ lte_rrc_NRSRQ_Range_NB_r14_fmt(gchar *s, guint32 v)
}
static void
-lte_rrc_mbms_MaxBW_r14_fmt(gchar *s, guint32 v)
+lte_rrc_mbms_MaxBW_r14_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%u MHz (%u)", 40*v, v);
}
static void
-lte_rrc_dl_1024QAM_TotalWeightedLayers_r15_fmt(gchar *s, guint32 v)
+lte_rrc_dl_1024QAM_TotalWeightedLayers_r15_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%u (%u)", 10+(2*v), v);
}
@@ -2723,10 +2761,10 @@ lte_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pi
/*****************************************************************************/
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];
+ uint16_t number_of_bands_set;
+ uint16_t number_of_interfreq_serving_read;
+ uint16_t number_of_interfreq_target_read;
+ uint16_t band_by_item[256];
} meas_capabilities_item_band_mappings_t;
@@ -2734,20 +2772,23 @@ typedef struct 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;
+ uint8_t rat_type;
+ uint8_t target_rat_type;
+ uint8_t si_or_psi_geran;
+ uint8_t ra_preambles;
+ uint16_t message_identifier;
+ uint8_t warning_message_segment_type;
+ uint8_t warning_message_segment_number;
drb_mapping_t drb_mapping;
drx_config_t drx_config;
pdcp_lte_security_info_t pdcp_security;
meas_capabilities_item_band_mappings_t meas_capabilities_item_band_mappings;
simult_pucch_pusch_cell_type cell_type;
- gboolean bcch_dl_sch_msg;
+ bool bcch_dl_sch_msg;
lpp_pos_sib_type_t pos_sib_type;
+ uint8_t dcch_segment_number;
+ tvbuff_t *dcch_segment;
+ bool dcch_segment_last;
} lte_rrc_private_data_t;
/* Helper function to get or create a struct that will be actx->private_data */
@@ -2781,13 +2822,13 @@ static drb_mapping_t* private_data_get_drb_mapping(asn1_ctx_t *actx)
/* RAT type */
-static guint8 private_data_get_rat_type(asn1_ctx_t *actx)
+static uint8_t 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)
+static void private_data_set_rat_type(asn1_ctx_t *actx, uint8_t 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;
@@ -2795,13 +2836,13 @@ static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type)
/* Target RAT type */
-static guint8 private_data_get_rat_target_type(asn1_ctx_t *actx)
+static uint8_t 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)
+static void private_data_set_rat_target_type(asn1_ctx_t *actx, uint8_t 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;
@@ -2809,13 +2850,13 @@ static void private_data_set_rat_target_type(asn1_ctx_t *actx, guint8 target_rat
/* si_or_psi_geran */
-static guint8 private_data_get_si_or_psi_geran(asn1_ctx_t *actx)
+static uint8_t 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)
+static void private_data_set_si_or_psi_geran(asn1_ctx_t *actx, uint8_t 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;
@@ -2823,13 +2864,13 @@ static void private_data_set_si_or_psi_geran(asn1_ctx_t *actx, guint8 si_or_psi_
/* Message identifier */
-static guint16 private_data_get_message_identifier(asn1_ctx_t *actx)
+static uint16_t 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)
+static void private_data_set_message_identifier(asn1_ctx_t *actx, uint16_t 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;
@@ -2837,13 +2878,13 @@ static void private_data_set_message_identifier(asn1_ctx_t *actx, guint16 messag
/* Warning message segment type */
-static guint16 private_data_get_warning_message_segment_type(asn1_ctx_t *actx)
+static uint16_t 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)
+static void private_data_set_warning_message_segment_type(asn1_ctx_t *actx, uint8_t 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;
@@ -2851,13 +2892,13 @@ static void private_data_set_warning_message_segment_type(asn1_ctx_t *actx, guin
/* Warning message segment number */
-static guint16 private_data_get_warning_message_segment_number(asn1_ctx_t *actx)
+static uint16_t 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)
+static void private_data_set_warning_message_segment_number(asn1_ctx_t *actx, uint8_t 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;
@@ -2865,13 +2906,13 @@ static void private_data_set_warning_message_segment_number(asn1_ctx_t *actx, gu
/* Number of RA-preambles */
-static guint8 private_data_get_ra_preambles(asn1_ctx_t *actx)
+static uint8_t 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)
+static void private_data_set_ra_preambles(asn1_ctx_t *actx, uint8_t 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;
@@ -2893,12 +2934,12 @@ static meas_capabilities_item_band_mappings_t* private_data_meas_capabilities_it
return &private_data->meas_capabilities_item_band_mappings;
}
-static void set_freq_band_indicator(guint32 value, asn1_ctx_t *actx)
+static void set_freq_band_indicator(uint32_t 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;
+ mappings->band_by_item[mappings->number_of_bands_set++] = (uint16_t)value;
}
}
@@ -2924,13 +2965,13 @@ static void private_data_set_simult_pucch_pusch_cell_type(asn1_ctx_t *actx, simu
}
/* Is top message a BCCH DL-SCH BR/MBMS */
-static gboolean private_data_get_bcch_dl_sch_msg(asn1_ctx_t *actx)
+static bool private_data_get_bcch_dl_sch_msg(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->bcch_dl_sch_msg;
}
-static void private_data_set_bcch_dl_sch_msg(asn1_ctx_t *actx, gboolean is_bcch_dl_sch)
+static void private_data_set_bcch_dl_sch_msg(asn1_ctx_t *actx, bool is_bcch_dl_sch)
{
lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
private_data->bcch_dl_sch_msg = is_bcch_dl_sch;
@@ -2948,13 +2989,49 @@ static void private_data_set_pos_sib_type(asn1_ctx_t *actx, lpp_pos_sib_type_t p
private_data->pos_sib_type = pos_sib_type;
}
+static uint8_t private_data_get_dcch_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->dcch_segment_number;
+}
+
+static void private_data_set_dcch_segment_number(asn1_ctx_t *actx, uint8_t dcch_segment_number)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->dcch_segment_number = dcch_segment_number;
+}
+
+static tvbuff_t *private_data_get_dcch_segment(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->dcch_segment;
+}
+
+static void private_data_set_dcch_segment(asn1_ctx_t *actx, tvbuff_t *dcch_segment)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->dcch_segment = dcch_segment;
+}
+
+static bool private_data_get_dcch_segment_last(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->dcch_segment_last;
+}
+
+static void private_data_set_dcch_segment_last(asn1_ctx_t *actx, bool dcch_segment_last)
+{
+ lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx);
+ private_data->dcch_segment_last = dcch_segment_last;
+}
+
/*****************************************************************************/
static void
-lte_rrc_localTimeOffset_fmt(gchar *s, guint32 v)
+lte_rrc_localTimeOffset_fmt(char *s, uint32_t v)
{
- gint32 time_offset = (gint32) v;
+ int32_t time_offset = (int32_t) v;
snprintf(s, ITEM_LABEL_LENGTH, "UTC time %c %dhr %dmin (%d)",
(time_offset < 0) ? '-':'+', abs(time_offset) >> 2,
@@ -2962,15 +3039,15 @@ lte_rrc_localTimeOffset_fmt(gchar *s, guint32 v)
}
static void
-dissect_lte_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dataCodingScheme)
+dissect_lte_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, uint8_t dataCodingScheme)
{
- guint32 offset;
- guint8 nb_of_pages, length, *str;
+ uint32_t offset;
+ uint8_t 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);
+ nb_of_pages = tvb_get_uint8(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,
@@ -2978,7 +3055,7 @@ dissect_lte_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree
nb_of_pages = 15;
}
for (i = 0, offset = 1; i < nb_of_pages; i++) {
- length = tvb_get_guint8(warning_msg_seg_tvb, offset+82);
+ length = tvb_get_uint8(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) {
@@ -3112,73 +3189,55 @@ dissect_lte_rrc_featureGroupIndRel9Add(tvbuff_t *featureGroupIndRel9Add_tvb, asn
/* 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 uint32_t drx_lookup_onDurationTimer(uint32_t idx)
{
- static const guint32 vals[] = {1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200};
+ static const uint32_t 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);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
-static guint32 drx_lookup_inactivityTimer(guint32 idx)
+static uint32_t drx_lookup_inactivityTimer(uint32_t 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
+ static const uint32_t 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);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
-static guint32 drx_lookup_retransmissionTimer(guint32 idx)
+static uint32_t drx_lookup_retransmissionTimer(uint32_t idx)
{
- static const guint32 vals[] = {1,2,4,6,8,16,24,33};
+ static const uint32_t vals[] = {1,2,4,6,8,16,24,33};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
-static guint32 drx_lookup_longCycle(guint32 idx)
+static uint32_t drx_lookup_longCycle(uint32_t idx)
{
- static const guint32 vals[] = {
+ static const uint32_t 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);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
-static guint32 drx_lookup_longCycle_v1130(guint32 idx)
+static uint32_t drx_lookup_longCycle_v1130(uint32_t idx)
{
- static const guint32 vals[] = {
+ static const uint32_t vals[] = {
60,70
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
-static guint32 drx_lookup_shortCycle(guint32 idx)
+static uint32_t drx_lookup_shortCycle(uint32_t idx)
{
- static const guint32 vals[] = {
+ static const uint32_t 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);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static void drx_check_config_sane(drx_config_t *config, asn1_ctx_t *actx)
@@ -3216,7 +3275,7 @@ static void drx_check_config_sane(drx_config_t *config, asn1_ctx_t *actx)
}
/* 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)
+static void sr_lookup_configindex(uint32_t config_index, uint16_t *periodicity, uint16_t *offset)
{
if (config_index < 5) {
*periodicity = 5;
@@ -3396,13 +3455,13 @@ dissect_lte_rrc_Handover_Preparation_Info(tvbuff_t *tvb, packet_info *pinfo, pro
/* 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, COL_INFO, FALSE);
+ col_set_writable(pinfo->cinfo, COL_INFO, 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, COL_INFO, TRUE);
+ col_set_writable(pinfo->cinfo, COL_INFO, true);
return tvb_captured_length(tvb);
}
@@ -4391,6 +4450,50 @@ void proto_register_lte_rrc(void) {
{ "Reassembled Data", "lte-rrc.warningMessageSegment_r9.reassembled_data",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragments,
+ { "Fragments", "lte-rrc.dedicatedMessageSegment_r16.fragments",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragment,
+ { "Fragment", "lte-rrc.dedicatedMessageSegment_r16.fragment",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragment_overlap,
+ { "Fragment Overlap", "lte-rrc.dedicatedMessageSegment_r16.fragment_overlap",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragment_overlap_conflict,
+ { "Fragment Overlap Conflict", "lte-rrc.dedicatedMessageSegment_r16.fragment_overlap_conflict",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragment_multiple_tails,
+ { "Fragment Multiple Tails", "lte-rrc.dedicatedMessageSegment_r16.fragment_multiple_tails",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragment_too_long_fragment,
+ { "Too Long Fragment", "lte-rrc.dedicatedMessageSegment_r16.fragment_too_long_fragment",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragment_error,
+ { "Fragment Error", "lte-rrc.dedicatedMessageSegment_r16.fragment_error",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_fragment_count,
+ { "Fragment Count", "lte-rrc.dedicatedMessageSegment_r16.fragment_count",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_reassembled_in,
+ { "Reassembled In", "lte-rrc.dedicatedMessageSegment_r16.reassembled_in",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_reassembled_length,
+ { "Reassembled Length", "lte-rrc.dedicatedMessageSegment_r16.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_dcch_segment_reassembled_data,
+ { "Reassembled Data", "lte-rrc.dedicatedMessageSegment_r16.reassembled_data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_lte_rrc_measGapPatterns_r15_bit1,
{ "Gap Pattern 4", "lte-rrc.measGapPatterns_r15.bit1",
FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80,
@@ -4426,7 +4529,7 @@ void proto_register_lte_rrc(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_lte_rrc,
#include "packet-lte-rrc-ettarr.c"
@@ -4454,6 +4557,8 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_sib11_fragments,
&ett_lte_rrc_sib12_fragment,
&ett_lte_rrc_sib12_fragments,
+ &ett_lte_rrc_dcch_segment_fragment,
+ &ett_lte_rrc_dcch_segment_fragments,
&ett_lte_rrc_nr_SecondaryCellGroupConfig_r15,
&ett_lte_rrc_nr_RadioBearerConfig_r15,
&ett_lte_rrc_nr_RadioBearerConfigS_r15,
@@ -4545,11 +4650,15 @@ void proto_register_lte_rrc(void) {
lte_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
lte_rrc_system_info_value_changed_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
+ lte_rrc_dcch_segment_ueid_count_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
+ lte_rrc_dcch_segment_id_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
reassembly_table_register(&lte_rrc_sib11_reassembly_table,
- &addresses_reassembly_table_functions);
+ &addresses_reassembly_table_functions);
reassembly_table_register(&lte_rrc_sib12_reassembly_table,
- &addresses_reassembly_table_functions);
+ &addresses_reassembly_table_functions);
+ reassembly_table_register(&lte_rrc_dcch_segment_reassembly_table,
+ &addresses_reassembly_table_functions);
/* Register configuration preferences */
lte_rrc_module = prefs_register_protocol(proto_lte_rrc, NULL);
@@ -4557,6 +4666,10 @@ void proto_register_lte_rrc(void) {
"Show NAS PDU in root packet details",
"Whether the NAS PDU should be shown in the root packet details tree",
&lte_rrc_nas_in_root_tree);
+ prefs_register_bool_preference(lte_rrc_module, "reassemble_dcch_segments",
+ "Try to reassemble DCCH segmented messages",
+ "Whether the LTE RRC dissector should attempt to reassemble DCCH segmented messages",
+ &lte_rrc_reassemble_dcch_segments);
}
diff --git a/epan/dissectors/asn1/m2ap/m2ap.cnf b/epan/dissectors/asn1/m2ap/m2ap.cnf
index f95a1357..bf9aab69 100644
--- a/epan/dissectors/asn1/m2ap/m2ap.cnf
+++ b/epan/dissectors/asn1/m2ap/m2ap.cnf
@@ -74,7 +74,7 @@ ProtocolIE-Field/value ie_field_value
%(DEFAULT_BODY)s
if (parameter_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_m2ap_PLMN_Identity);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, false);
}
#.END
@@ -87,7 +87,7 @@ ProtocolIE-Field/value ie_field_value
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb) {
- gint tvb_len = tvb_reported_length(parameter_tvb);
+ int tvb_len = tvb_reported_length(parameter_tvb);
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_m2ap_IPAddress);
switch (tvb_len) {
@@ -105,7 +105,7 @@ ProtocolIE-Field/value ie_field_value
#.END
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.FN_HDR SessionStartRequest
col_set_str(actx->pinfo->cinfo, COL_INFO, "MBMS Session Start Request");
diff --git a/epan/dissectors/asn1/m2ap/packet-m2ap-template.c b/epan/dissectors/asn1/m2ap/packet-m2ap-template.c
index b7d9c229..fb3d51d4 100644
--- a/epan/dissectors/asn1/m2ap/packet-m2ap-template.c
+++ b/epan/dissectors/asn1/m2ap/packet-m2ap-template.c
@@ -18,6 +18,8 @@
#include <epan/asn1.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-e212.h"
@@ -35,19 +37,19 @@ void proto_reg_handoff_m2ap(void);
#include "packet-m2ap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_m2ap = -1;
+static int proto_m2ap;
-static int hf_m2ap_IPAddress_v4 = -1;
-static int hf_m2ap_IPAddress_v6 = -1;
+static int hf_m2ap_IPAddress_v4;
+static int hf_m2ap_IPAddress_v6;
#include "packet-m2ap-hf.c"
/* Initialize the subtree pointers */
-static int ett_m2ap = -1;
-static int ett_m2ap_PLMN_Identity = -1;
-static int ett_m2ap_IPAddress = -1;
+static int ett_m2ap;
+static int ett_m2ap_PLMN_Identity;
+static int ett_m2ap_IPAddress;
#include "packet-m2ap-ett.c"
-static expert_field ei_m2ap_invalid_ip_address_len = EI_INIT;
+static expert_field ei_m2ap_invalid_ip_address_len;
struct m2ap_private_data {
e212_number_type_t number_type;
@@ -60,9 +62,9 @@ enum{
};
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-static guint32 message_type;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
+static uint32_t message_type;
static dissector_handle_t m2ap_handle;
/* Dissector tables */
@@ -94,31 +96,31 @@ m2ap_get_private_data(packet_info *pinfo)
static int
dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- return (dissector_try_uint_new(m2ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m2ap_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(m2ap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m2ap_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(m2ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m2ap_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(m2ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m2ap_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(m2ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m2ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
@@ -160,7 +162,7 @@ proto_register_m2ap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_m2ap,
&ett_m2ap_PLMN_Identity,
&ett_m2ap_IPAddress,
diff --git a/epan/dissectors/asn1/m3ap/m3ap.cnf b/epan/dissectors/asn1/m3ap/m3ap.cnf
index 420a6a5e..1d5bcb69 100644
--- a/epan/dissectors/asn1/m3ap/m3ap.cnf
+++ b/epan/dissectors/asn1/m3ap/m3ap.cnf
@@ -116,11 +116,11 @@ ProtocolIE-Field/value ie_field_value
e212_number_type_t number_type = m3ap_data->number_type;
m3ap_data->number_type = E212_NONE;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, &parameter_tvb);
+ 3, 3, false, &parameter_tvb);
if (!parameter_tvb)
return offset;
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, false);
#.END
#.FN_BODY ECGI
@@ -130,7 +130,7 @@ ProtocolIE-Field/value ie_field_value
#.FN_BODY IPAddress VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
- gint tvb_len;
+ int tvb_len;
proto_tree *subtree;
%(DEFAULT_BODY)s
@@ -165,11 +165,11 @@ ProtocolIE-Field/value ie_field_value
#.END
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.FN_BODY MBMS-Service-Area VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
- guint16 tvb_len;
+ uint16_t tvb_len;
%(DEFAULT_BODY)s
@@ -183,10 +183,10 @@ BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
#.FN_BODY MBMS-Session-Duration VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
- guint16 tvb_len;
+ uint16_t tvb_len;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, &parameter_tvb);
+ 3, 3, false, &parameter_tvb);
if (!parameter_tvb)
return offset;
@@ -199,7 +199,7 @@ BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
#.FN_BODY MinimumTimeToMBMSDataTransfer VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
- guint16 tvb_len;
+ uint16_t tvb_len;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/m3ap/packet-m3ap-template.c b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
index d2c2c389..c97064c1 100644
--- a/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
+++ b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
@@ -19,6 +19,8 @@
#include <epan/sctpppids.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
@@ -34,25 +36,25 @@ 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;
+static dissector_handle_t m3ap_handle;
#include "packet-m3ap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_m3ap = -1;
+static int proto_m3ap;
-static int hf_m3ap_Absolute_Time_ofMBMS_Data_value = -1;
-static int hf_m3ap_IPAddress_v4 = -1;
-static int hf_m3ap_IPAddress_v6 = -1;
+static int hf_m3ap_Absolute_Time_ofMBMS_Data_value;
+static int hf_m3ap_IPAddress_v4;
+static int hf_m3ap_IPAddress_v6;
#include "packet-m3ap-hf.c"
/* Initialize the subtree pointers */
-static int ett_m3ap = -1;
-static int ett_m3ap_IPAddress = -1;
+static int ett_m3ap;
+static int ett_m3ap_IPAddress;
#include "packet-m3ap-ett.c"
-static expert_field ei_m3ap_invalid_ip_address_len = EI_INIT;
+static expert_field ei_m3ap_invalid_ip_address_len;
struct m3ap_private_data {
e212_number_type_t number_type;
@@ -65,11 +67,11 @@ enum{
};
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-/*static guint32 ProtocolExtensionID; */
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
+/*static uint32_t ProtocolExtensionID; */
static int global_m3ap_port = M3AP_PORT;
-static guint32 message_type;
+static uint32_t message_type;
/* Dissector tables */
static dissector_table_t m3ap_ies_dissector_table;
@@ -99,27 +101,27 @@ m3ap_get_private_data(packet_info *pinfo)
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- return (dissector_try_uint_new(m3ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m3ap_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(m3ap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m3ap_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(m3ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m3ap_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(m3ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m3ap_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(m3ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(m3ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
@@ -166,7 +168,7 @@ void proto_register_m3ap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_m3ap,
&ett_m3ap_IPAddress,
#include "packet-m3ap-ettarr.c"
@@ -201,12 +203,12 @@ void proto_register_m3ap(void) {
void
proto_reg_handoff_m3ap(void)
{
- static gboolean inited = FALSE;
- static guint SctpPort;
+ static bool inited = false;
+ static unsigned SctpPort;
if( !inited ) {
dissector_add_uint("sctp.ppi", PROTO_3GPP_M3AP_PROTOCOL_ID, m3ap_handle);
- inited = TRUE;
+ inited = true;
#include "packet-m3ap-dis-tab.c"
dissector_add_uint("m3ap.extension", 17, create_dissector_handle(dissect_AllocationAndRetentionPriority_PDU, proto_m3ap));
}
diff --git a/epan/dissectors/asn1/mms/mms.asn b/epan/dissectors/asn1/mms/mms.asn
index 3f72c10f..dd52432c 100644
--- a/epan/dissectors/asn1/mms/mms.asn
+++ b/epan/dissectors/asn1/mms/mms.asn
@@ -25,30 +25,47 @@ IMPORTS
FROM ISO-8650-ACSE-1;
+-- WS additions for IEC 61850
+
+ReportedOptFlds ::= BIT STRING {
+ reserved(0),
+ sequence-number(1),
+ report-time-stamp(2),
+ reason-for-inclusion(3),
+ data-set-name(4),
+ data-reference(5),
+ buffer-overflow(6),
+ entryID(7),
+ conf-revision(8),
+ segmentation(9)
+ }
+
+-- End WS additions for IEC 61850
+
MMSpdu ::= CHOICE
{
- confirmed-RequestPDU [0] IMPLICIT Confirmed-RequestPDU,
- confirmed-ResponsePDU [1] IMPLICIT Confirmed-ResponsePDU,
+ 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,
+ 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-ResponsePDU [9] IMPLICIT Initiate-ResponsePDU,
initiate-ErrorPDU [10] IMPLICIT Initiate-ErrorPDU,
conclude-RequestPDU [11] IMPLICIT Conclude-RequestPDU,
- conclude-ResponsePDU [12] IMPLICIT Conclude-ResponsePDU,
+ conclude-ResponsePDU [12] IMPLICIT Conclude-ResponsePDU,
conclude-ErrorPDU [13] IMPLICIT Conclude-ErrorPDU
}
Confirmed-RequestPDU ::= SEQUENCE
{
- invokeID Unsigned32,
+ invokeID Unsigned32,
listOfModifier SEQUENCE OF Modifier OPTIONAL,
- confirmedServiceRequest ConfirmedServiceRequest,
+ confirmedServiceRequest ConfirmedServiceRequest,
cs-request-detail [79] CS-Request-Detail OPTIONAL
}
@@ -71,8 +88,8 @@ Confirmed-ResponsePDU ::= SEQUENCE
Confirmed-ErrorPDU ::= SEQUENCE
{
invokeID [0] IMPLICIT Unsigned32,
- modifierPosition [1] IMPLICIT Unsigned32 OPTIONAL,
- serviceError [2] IMPLICIT ServiceError
+ modifierPosition [1] IMPLICIT Unsigned32 OPTIONAL,
+ serviceError [2] IMPLICIT ServiceError
}
@@ -88,93 +105,93 @@ UnconfirmedService ::= CHOICE
Modifier ::= CHOICE
{
- attach-To-Event-Condition [0] IMPLICIT AttachToEventCondition,
+ 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,
+ 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,
+ getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Request,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Request,
- defineNamedType [14] IMPLICIT DefineNamedType-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,
+ 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,
+ downloadSegment [27] IMPLICIT DownloadSegment-Request,
terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Request,
initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Request,
- uploadSegment [30] IMPLICIT UploadSegment-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,
+ 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,
+ 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,
+ 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,
+ 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
+ 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
+-- additionalService [78] AdditionalService-Request
}
CS-Request-Detail ::= CHOICE {
@@ -186,86 +203,86 @@ CS-Request-Detail ::= CHOICE {
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,
+ 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,
+ defineNamedVariable [7] IMPLICIT DefineNamedVariable-Response,
defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Response,
- getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Response,
- deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Response,
+ getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Response,
+ deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Response,
defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Response,
- getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Response,
+ getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Response,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Response,
- defineNamedType [14] IMPLICIT DefineNamedType-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,
+ 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,
+ downloadSegment [27] IMPLICIT DownloadSegment-Response,
terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Response,
initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Response,
- uploadSegment [30] IMPLICIT UploadSegment-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,
+ 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,
+ 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,
+ 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,
+ 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,
+ 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
+ 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
+-- additionalService [78] AdditionalService-Response
}
--********************************** COMMON MMS TYPES ***********************************
@@ -291,7 +308,7 @@ Unsigned32 ::= INTEGER
ObjectName ::= CHOICE
{
vmd-specific [0] IMPLICIT Identifier,
- domain-specific [1] IMPLICIT SEQUENCE
+ domain-specific [1] IMPLICIT SEQUENCE
{
domainId Identifier,
itemId Identifier
@@ -302,7 +319,7 @@ ObjectName ::= CHOICE
ApplicationReference ::= SEQUENCE
{
- ap-title [0] AP-title OPTIONAL,
+ 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
@@ -323,11 +340,11 @@ Initiate-ErrorPDU ::= ServiceError
Initiate-RequestPDU ::= SEQUENCE
{
- localDetailCalling [0] IMPLICIT Integer32 OPTIONAL,
+ localDetailCalling [0] IMPLICIT Integer32 OPTIONAL,
proposedMaxServOutstandingCalling [1] IMPLICIT Integer16,
proposedMaxServOutstandingCalled [2] IMPLICIT Integer16,
proposedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL,
- mmsInitRequestDetail [4] IMPLICIT InitRequestDetail
+ mmsInitRequestDetail [4] IMPLICIT InitRequestDetail
}
InitRequestDetail ::= SEQUENCE
@@ -339,7 +356,7 @@ InitRequestDetail ::= SEQUENCE
Initiate-ResponsePDU ::= SEQUENCE
{
- localDetailCalled [0] IMPLICIT Integer32 OPTIONAL,
+ localDetailCalled [0] IMPLICIT Integer32 OPTIONAL,
negociatedMaxServOutstandingCalling [1] IMPLICIT Integer16,
negociatedMaxServOutstandingCalled [2] IMPLICIT Integer16,
negociatedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL,
@@ -370,84 +387,84 @@ ParameterSupportOptions ::= BIT STRING {
ServiceSupportOptions ::= BIT STRING
{
- status (0),
+ 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),
+ 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),
+ 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),
@@ -485,10 +502,10 @@ ServiceError ::= SEQUENCE
{
vmd-state [0] IMPLICIT INTEGER
{
- other (0),
- vmd-state-conflict (1),
+ other (0),
+ vmd-state-conflict (1),
vmd-operational-problem (2),
- domain-transfer-problem (3),
+ domain-transfer-problem (3),
state-machine-id-invalid (4)
},
application-reference [1] IMPLICIT INTEGER
@@ -686,7 +703,7 @@ RejectPDU ::= SEQUENCE
invalid-result (3),
max-recursion-exceeded (5),
value-out-of-range (6)
- },
+ },
confirmed-errorPDU [3] IMPLICIT INTEGER
{
@@ -695,7 +712,7 @@ RejectPDU ::= SEQUENCE
invalid-invokeID (2),
invalid-serviceError (3),
value-out-of-range (4)
- } ,
+ } ,
unconfirmedPDU [4] IMPLICIT INTEGER
{
@@ -717,7 +734,7 @@ RejectPDU ::= SEQUENCE
{
other (0),
invalid-invokeID (1)
- },
+ },
cancel-responsePDU [7] IMPLICIT INTEGER
{
@@ -737,7 +754,7 @@ RejectPDU ::= SEQUENCE
{
other (0),
invalid-argument (1)
- },
+ },
conclude-responsePDU [10] IMPLICIT INTEGER
{
@@ -782,34 +799,38 @@ Status-Response ::= SEQUENCE {
UnsolicitedStatus ::= Status-Response
-- GETNAMELIST
+ObjectClass ::= 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 ::= CHOICE
+ {
+ vmdSpecific [0] IMPLICIT NULL,
+ domainSpecific [1] IMPLICIT Identifier,
+ aaSpecific [2] IMPLICIT NULL
+ }
+
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)
- }
+ objectClass [0] IMPLICIT ObjectClass
},
- objectScope [1] CHOICE
- {
- vmdSpecific [0] IMPLICIT NULL,
- domainSpecific [1] IMPLICIT Identifier,
- aaSpecific [2] IMPLICIT NULL
- },
- continueAfter [2] IMPLICIT Identifier OPTIONAL
+ objectScope [1] ObjectScope,
+ continueAfter [2] IMPLICIT Identifier OPTIONAL
}
GetNameList-Response ::= SEQUENCE
@@ -1112,7 +1133,7 @@ GetProgramInvocationAttributes-Request ::= Identifier -- Program Invocation Name
GetProgramInvocationAttributes-Response ::= SEQUENCE
{
state [0] IMPLICIT ProgramInvocationState,
- listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier,
+ listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier,
mmsDeletable [2] IMPLICIT BOOLEAN,
reusable [3] IMPLICIT BOOLEAN,
monitor [4] IMPLICIT BOOLEAN,
@@ -1465,7 +1486,7 @@ 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,
+ boolean [3] IMPLICIT BOOLEAN,
bit-string [4] IMPLICIT BIT STRING,
integer [5] IMPLICIT INTEGER,
unsigned [6] IMPLICIT INTEGER,
@@ -2295,7 +2316,5 @@ FileAttributes ::= SEQUENCE {
lastModified [1] IMPLICIT GeneralizedTime OPTIONAL
}
-
-
END
diff --git a/epan/dissectors/asn1/mms/mms.cnf b/epan/dissectors/asn1/mms/mms.cnf
index 68190ade..4c8c35d7 100644
--- a/epan/dissectors/asn1/mms/mms.cnf
+++ b/epan/dissectors/asn1/mms/mms.cnf
@@ -14,6 +14,7 @@ MMSpdu
#.NO_EMIT
#.TYPE_RENAME
+ObjectName/domain-specific/itemId ObjectName_domain_specific_itemid
#.TYPE_ATTR
TimeOfDay TYPE = FT_STRING DISPLAY = BASE_NONE
@@ -23,7 +24,7 @@ UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
ConfirmedServiceRequest/deleteEventCondition confirmedServiceRequest_deleteEventCondition
ConfirmedServiceResponse/deleteEventCondition confirmedServiceResponse_deleteEventCondition
ConfirmedServiceRequest/deleteEventAction confirmedServiceRequest_deleteEventAction
-ConfirmedServiceRequest/deleteEventAction confirmedServiceRequest_deleteEventAction
+ConfirmedServiceResponse/deleteEventAction confirmedServiceRequest_deleteEventAction
ConfirmedServiceRequest/deleteEventEnrollment confirmedServiceRequest_deleteEventEnrollment
ConfirmedServiceResponse/deleteEventEnrollment confirmedServiceResponse_deleteEventEnrollment
TypeSpecification/bit-string typeSpecification_bit-string
@@ -43,12 +44,13 @@ GetDomainAttributes-Response/state getDomainAttributes-Response
GetProgramInvocationAttributes-Response/state getProgramInvocationAttributes-Response_state
ReportSemaphoreEntryStatus-Request/state reportSemaphoreEntryStatus-Request_state
AlterEventEnrollment-Response/currentState/state alterEventEnrollment-Response_currentState_state
+ObjectName/domain-specific/itemId objectName-domain-specific-itemId
#.FIELD_ATTR
ConfirmedServiceRequest/deleteEventCondition ABBREV=confirmedServiceRequest.deleteEventCondition
ConfirmedServiceResponse/deleteEventCondition ABBREV=confirmedServiceResponse.deleteEventCondition
ConfirmedServiceRequest/deleteEventAction ABBREV=confirmedServiceRequest.deleteEventAction
-ConfirmedServiceRequest/deleteEventAction ABBREV=confirmedServiceRequest.deleteEventAction
+ConfirmedServiceResponse/deleteEventAction ABBREV=confirmedServiceRequest.deleteEventAction
ConfirmedServiceRequest/deleteEventEnrollment ABBREV=confirmedServiceRequest.deleteEventEnrollment
ConfirmedServiceResponse/deleteEventEnrollment ABBREV=confirmedServiceResponse.deleteEventEnrollment
TypeSpecification/bit-string ABBREV=typeSpecification_bit-string
@@ -71,131 +73,817 @@ AlterEventEnrollment-Response/currentState/state ABBREV=alterEventEnrollment-
#.FN_BODY ApplicationReference/ap-title
- offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_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);
+ 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);
+ 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);
+ 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;
+ int branch_taken;
+ int8_t ber_class;
+ bool pc;
+ int32_t tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->mms_pdu_type = tag;
+ }
+
%(DEFAULT_BODY)s
- if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
- if (mms_has_private_data(actx))
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
- private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
- else
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s",
- mms_MMSpdu_vals[branch_taken].strptr);
- }
+ if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
+ if(mms_priv){
+ switch(mms_priv->mms_pdu_type){
+ case MMS_UNCONFIRMED_PDU:
+ if(mms_priv->vmd_specific==IEC61850_8_1_RPT){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed <RPT>");
+ proto_item_append_text(mms_priv->pdu_item, " [RPT]");
+ }else if((mms_priv->mms_trans_p)&&(mms_priv->mms_trans_p->itemid==IEC61850_ITEM_ID_OPER)){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed-CommandTermination");
+ proto_item_append_text(mms_priv->pdu_item, " [Unconfirmed-CommandTermination]");
+ }
+ break;
+ case MMS_INITIATE_REQUEST_PDU:
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Request");
+ proto_item_append_text(mms_priv->pdu_item, " [Associate Request]");
+ break;
+ case MMS_INITIATE_RESPONSE_PDU:
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Response");
+ proto_item_append_text(mms_priv->pdu_item, " [Associate Response]");
+ break;
+ case MMS_CONFIRMED_REQUEST_PDU:
+ if(mms_priv->mms_trans_p){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryRequest");
+ proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryRequest]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryRequest %%s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryRequest ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryRequest %%s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryRequest]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryRequest%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryRequest]");
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesRequest]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataValueRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataValueRequest]");
+ }
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesRequest]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetDataValueRequest]");
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueRequest]");
+ }
+ }else if (mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }
+ break;
+ case MMS_CONFIRMED_RESPONSE_PDU:
+ if(mms_priv->mms_trans_p){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryResponse %%s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryResponse%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryResponse%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryResponse%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryResponse ]");
+ }else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesResponse");
+ proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesResponse]");
+ }else{
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "GetDataValueResponse");
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataValueResponse ]");
+ }
+ if(mms_priv->success == 1){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " success");
+ }else{
+ col_append_str(actx->pinfo->cinfo, COL_INFO, " failure");
+ }
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesResponse %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesResponse]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueResponse %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetDataValueResponse]");
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueResponse %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueResponse]");
+ }
+ }else if(mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }
+ break;
+ default:
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ break;
+ }
+ }else if (mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }else{
+ col_append_str(actx->pinfo->cinfo, COL_INFO,
+ mms_MMSpdu_vals[branch_taken].strptr);
+ }
+ }
+
+#.FN_BODY Initiate-RequestPDU
-#.FN_BODY TimeOfDay
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
- 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 = signed_time_msecs_to_str(actx->pinfo->pool, 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(actx->pinfo->pool, &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, "????");
- }
-#.FN_BODY UtcTime
+#.FN_BODY Initiate-ResponsePDU
+
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+#.FN_BODY Unconfirmed-PDU
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if (!mms_priv->mms_trans_p) {
+ /* create a "fake" mms_trans structure */
+ mms_priv->mms_trans_p=wmem_new0(actx->pinfo->pool, mms_transaction_t);
+ mms_priv->mms_trans_p->req_time = actx->pinfo->fd->abs_ts;
+
+ }
+
+%(DEFAULT_BODY)s
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+#.FN_BODY Confirmed-RequestPDU
+
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
+#.FN_BODY Confirmed-ResponsePDU
- guint32 len;
- guint32 seconds;
- guint32 fraction;
- guint32 nanoseconds;
- nstime_t ts;
- gchar * ptime;
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
+#.FN_BODY ConfirmedServiceRequest
+ int8_t ber_class;
+ bool pc;
+ int32_t tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->confirmedservice_type = tag;
+ }
+
+%(DEFAULT_BODY)s
+
+ if(mms_priv && mms_priv->mms_trans_p){
+ if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMELIST){
+ if(mms_priv->objectclass == MMS_OBJECTCLASS_DOMAIN){
+ if(mms_priv->objectscope == MMS_OBJECTSCOPE_VMDSPECIFIC){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR;
+ }
+ }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMMEDVARIABLE){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY;
+ }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMEDVARIABLELIST){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
+ }
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_READ){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_READ;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_WRITE){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_WRITE;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY;
+ }
+ }
+
+
+#.FN_BODY ConfirmedServiceResponse
+ int8_t ber_class;
+ bool pc;
+ int32_t tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->confirmedservice_type = tag;
+ }
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY ObjectClass VAL_PTR=&val
+ uint32_t val;
- len = tvb_reported_length_remaining(tvb, offset);
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->objectclass = val;
+ }
- 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;
- }
+#.FN_BODY ObjectScope VAL_PTR=&val
+ int val;
- 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) ) ;
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->objectscope = val;
+ }
- ts.secs = seconds;
- ts.nsecs = nanoseconds;
+#.FN_BODY TimeOfDay
- ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+ uint32_t len;
+ uint32_t milliseconds;
+ uint16_t days;
+ char * ptime;
+ nstime_t ts;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len == 4)
+ {
+ milliseconds = tvb_get_ntohl(tvb, offset);
+ ptime = signed_time_msecs_to_str(actx->pinfo->pool, 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(actx->pinfo->pool, &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, "????");
+ }
+
+#.FN_BODY UtcTime
+
+ uint32_t len;
+ uint32_t seconds;
+ uint32_t fraction;
+ uint32_t nanoseconds;
+ nstime_t ts;
+ char * ptime;
+
+ static int * const TimeQuality_bits[] = {
+ &hf_mms_iec61850_timequality80,
+ &hf_mms_iec61850_timequality40,
+ &hf_mms_iec61850_timequality20,
+ &hf_mms_iec61850_timequality1F,
+ NULL
+ };
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len != 8)
+ {
+ /* The octet format shall be (using ASN.1 bstring notation):
+ * ‘ssssssssssssssssssssssssssssssssffffffffffffffffffffffffqqqqqqqq’B
+ * q stands for TimeQuality, i.e. reserved to represent TimeQuality based upon the referencing standard.
+ */
+ 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 = (uint32_t )( ((uint64_t)fraction * UINT64_C(1000000000)) / UINT64_C(0x100000000) ) ;
+
+ ts.secs = seconds;
+ ts.nsecs = nanoseconds;
+
+ ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, true);
+
+ if(hf_index > 0)
+ {
+ mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 8){
+ hf_index = hf_mms_iec61850_T;
+ }
+ }
+ }
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ proto_tree_add_bitmask_list(tree, tvb, offset+7, 1, TimeQuality_bits, ENC_BIG_ENDIAN);
+ }
- if(hf_index >= 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
- }
#.FN_BODY Unsigned32 VAL_PTR=&val
- guint32 val;
+ uint32_t val;
+ conversation_t *conversation;
+ mms_conv_info_t *mms_info;
+ mms_transaction_t *mms_trans;
+
%(DEFAULT_BODY)s
- if (hf_index == hf_mms_invokeID)
- private_data_add_preCinfo(actx, val);
+ if (hf_index == hf_mms_invokeID){
+ mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
+ if(mms_priv){
+ mms_priv->invokeid=val;
+ private_data_add_preCinfo(actx, val);
+ conversation = find_or_create_conversation(actx->pinfo);
+
+ mms_info = (mms_conv_info_t *)conversation_get_proto_data(conversation, proto_mms);
+ if (!mms_info) {
+ /*
+ * No. Attach that information to the conversation, and add
+ * it to the list of information structures.
+ */
+ mms_info = wmem_new(wmem_file_scope(), mms_conv_info_t);
+ mms_info->pdus=wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+
+ conversation_add_proto_data(conversation, proto_mms, mms_info);
+ }
+ /* Request or response? */
+ bool is_request;
+
+ switch(mms_priv->mms_pdu_type){
+ case 0:
+ /* Confirmed-RequestPDU */
+ is_request = true;
+ break;
+ case 1:
+ /* confirmed-ResponsePDU */
+ is_request = false;
+ break;
+ case 2:
+ /* Confirmed-ErrorPDU */
+ is_request = false;
+ break;
+ default:
+ is_request = false;
+ break;
+ }
+
+ if (!PINFO_FD_VISITED(actx->pinfo)) {
+ if (is_request==true) {
+ /* This is a request */
+ mms_trans=wmem_new0(wmem_file_scope(), mms_transaction_t);
+ mms_trans->req_frame = actx->pinfo->num;
+ mms_trans->req_time = actx->pinfo->fd->abs_ts;
+ wmem_map_insert(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid), (void *)mms_trans);
+ } else {
+ mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
+ if (mms_trans) {
+ mms_trans->rep_frame = actx->pinfo->num;
+ }
+ }
+ } else {
+ mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
+ }
+ if (!mms_trans) {
+ /* create a "fake" mms_trans structure */
+ mms_trans=wmem_new0(actx->pinfo->pool, mms_transaction_t);
+ mms_trans->req_frame = 0;
+ mms_trans->rep_frame = 0;
+ mms_trans->req_time = actx->pinfo->fd->abs_ts;
+ }
+ mms_priv->mms_trans_p = mms_trans;
+
+ /* print state tracking in the tree */
+ if (is_request) {
+ /* This is a request */
+ if (mms_trans->rep_frame) {
+ proto_item *it;
+
+ it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_in, tvb, 0, 0, mms_trans->rep_frame);
+ proto_item_set_generated(it);
+ }
+ } else {
+ /* This is a reply */
+ if (mms_trans->req_frame) {
+ proto_item *it;
+ nstime_t ns;
+
+ it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_to, tvb, 0, 0, mms_trans->req_frame);
+ proto_item_set_generated(it);
+
+ nstime_delta(&ns, &actx->pinfo->fd->abs_ts, &mms_trans->req_time);
+ it = proto_tree_add_time(actx->subtree.top_tree, hf_mms_response_time, tvb, 0, 0, &ns);
+ proto_item_set_generated(it);
+ }
+ }
+ }
+ }
#.FN_BODY FloatingPoint
%(DEFAULT_BODY)s
- private_data_add_moreCinfo_float(actx, tvb);
+ private_data_add_moreCinfo_float(actx, tvb);
-#.FN_BODY Identifier
- int offset_id = offset;
+#.FN_BODY Identifier VAL_PTR= &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ if (hf_index == hf_mms_domainId) {
+ private_data_add_moreCinfo_id(actx,parameter_tvb);
+ }
+ if ((mms_priv) && ((hf_index == hf_mms_objectName_domain_specific_itemId)||
+ (hf_index ==hf_mms_listOfIdentifier_item))) {
+ private_data_add_moreCinfo_id(actx,parameter_tvb);
+ if((mms_priv->mms_trans_p)&&(parameter_tvb)){
+ mms_priv->itemid_str = tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
+ if(g_str_has_suffix(mms_priv->itemid_str,"$ctlModel")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CTLMODEL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$q")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_Q;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$Oper")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OPER;
+ }else if((g_str_has_suffix(mms_priv->itemid_str,"$Oper$Check")) || (g_str_has_suffix(mms_priv->itemid_str,"$SBOw$Check"))){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CHECK;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$orCat")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OR_CAT;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Beh$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_BEH$STVAL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Mod$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_MOD$STVAL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Health$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_HEALTH$STVAL;
+ }else if((g_strrstr(mms_priv->itemid_str,"$BR$") || g_strrstr(mms_priv->itemid_str,"$RP$"))){ //GetBRCBValues,GetURCBValues,)
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$BR$_OR_$RP$;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$SBOw")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$SBOW;
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE;
+ }
+ }
+ }
+
+ if ((mms_priv) && (hf_index == hf_mms_vmd_specific)){
+ const char *vmd_specific_str = tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
+ if (strcmp(vmd_specific_str, "RPT") == 0) {
+ mms_priv->vmd_specific = IEC61850_8_1_RPT;
+ }
+ }
+ }
+
+#.FN_BODY InformationReport/listOfAccessResult
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->listOfAccessResult_cnt = 0;
+ }
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY AccessResult VAL_PTR=&branch_taken
+ int branch_taken;
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ /* If listOfAccessResult_cnt > 2 we are into the optional data.
+ * if data is not present increase count.
+ */
+ bool present;
+ do {
+ mms_priv->listOfAccessResult_cnt+=1;
+ present = true;
+ switch(mms_priv->listOfAccessResult_cnt){
+ case 1: /*RptID*/
+ break;
+ case 2: /* Reported OptFlds */
+ break;
+ case 3: /* SeqNum Shall be present if OptFlds.sequence-number is true */
+ if((mms_priv->reported_optflds & 0x4000) != 0x4000){
+ present = false;
+ }
+ break;
+ case 4: /*TimeOfEntry Shall be present if OptFlds.report-time-stamp is true */
+ if((mms_priv->reported_optflds & 0x2000) != 0x2000){
+ present = false;
+ }
+ break;
+ case 5: /*DatSet Shall be present if OptFlds.data-set-name is true */
+ if((mms_priv->reported_optflds & 0x0800) !=0x0800){
+ present = false;
+ }
+ break;
+ case 6: /*BufOvfl Shall be present if OptFlds.buffer-overflow is true */
+ if((mms_priv->reported_optflds & 0x0200) !=0x0200){
+ present = false;
+ }
+ break;
+ case 7: /*EntryID Shall be present if OptFlds.entryID is true */
+ if((mms_priv->reported_optflds & 0x0100) !=0x0100){
+ present = false;
+ }
+ break;
+ case 8: /*ConfRev Shall be present if OptFlds.conf-rev is true */
+ if((mms_priv->reported_optflds & 0x0080) !=0x0080){
+ present = false;
+ }
+ break;
+ case 9: /*SubSeqNum Shall be present if OptFlds.segmentation is true */
+ if((mms_priv->reported_optflds & 0x0040) !=0x0040){
+ present = false;
+ }
+ break;
+ case 10: /*MoreSegmentsFollow Shall be present if OptFlds.segmentation is true */
+ if((mms_priv->reported_optflds & 0x0040) !=0x0040){
+ present = false;
+ }
+ break;
+ case 11: /*Inclusion-bitstring Shall be present */
+ break;
+ case 12: /*data-reference(s) Shall be present if OptFlds.data-reference is true */
+ if((mms_priv->reported_optflds & 0x0400) !=0x0400){
+ present = false;
+ }
+ break;
+ case 13: /*value(s) See AccessResult for value(s) */
+ break;
+ case 14: /*ReasonCode(s) Shall be present if OptFlds OptFlds.reason-for-inclusion is true */
+ if((mms_priv->reported_optflds & 0x1000) !=0x1000){
+ present = false;
+ }
+ break;
+ default:
+ break;
+ }
+ } while(!present);
+ }
+
+%(DEFAULT_BODY)s
+ if(mms_priv){
+ mms_priv->success = branch_taken;
+ }
+
+#.FN_BODY Write-Request/listOfData
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->data_cnt = 0;
+ }
+%(DEFAULT_BODY)s
+ if(mms_priv){
+ mms_priv->data_cnt = 0;
+ }
+
+#.FN_BODY Data
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->data_cnt += 1;
+ }
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/structure
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 3){
+ /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
+ hf_index = hf_mms_iec61850_origin;
+ mms_priv->data_cnt++;
+ }else if(mms_priv->data_cnt == 4){
+ /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
+ hf_index = hf_mms_iec61850_origin;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/visible-string
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 1){
+ /* IEC 61850-8-1 RptID */
+ hf_index = hf_mms_iec61850_rptid;
+ }else if(mms_priv->listOfAccessResult_cnt == 5){
+ /* IEC 61850-8-1 DatSet */
+ hf_index = hf_mms_iec61850_datset;
+ }
+ }
+ }
%(DEFAULT_BODY)s
- if ((hf_index == hf_mms_domainId) || (hf_index == hf_mms_itemId)) {
- if (tvb_get_guint8(tvb, offset_id) == 0x1a)
- private_data_add_moreCinfo_id(actx,tvb);
- }
+
+#.FN_BODY Data/octet-string
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 6){
+ hf_index = hf_mms_iec61850_origin_orident;
+ }
+ }
+ }
+ %(DEFAULT_BODY)s
+
+#.FN_BODY Data/bit-string VAL_PTR= &parameter_tvb
+
+static int* const quality_field_bits_oct1[] = {
+ &hf_mms_iec61850_QualityC0,
+ &hf_mms_iec61850_Quality20,
+ &hf_mms_iec61850_Quality10,
+ &hf_mms_iec61850_Quality8,
+ &hf_mms_iec61850_Quality4,
+ &hf_mms_iec61850_Quality2,
+ &hf_mms_iec61850_Quality1,
+ NULL
+};
+
+static int* const quality_field_bits_oct2[] = {
+ &hf_mms_iec61850_Quality0080,
+ &hf_mms_iec61850_Quality0040,
+ &hf_mms_iec61850_Quality0020,
+ &hf_mms_iec61850_Quality0010,
+ &hf_mms_iec61850_Quality0008,
+ NULL
+};
+
+static int * const mms_iec61850_chec_bits[] = {
+ &hf_mms_iec61850_check_b1,
+ &hf_mms_iec61850_check_b0,
+ NULL
+};
+ tvbuff_t *parameter_tvb = NULL;
+ proto_tree *sub_tree;
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&&(mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 2){
+ /* IEC 61850-8-1 Reported OptFlds */
+ return dissect_mms_ReportedOptFlds(implicit_tag, tvb, offset, actx, tree, hf_mms_iec61850_reported_optflds);
+ }else{
+ if(mms_priv->listOfAccessResult_cnt == 11){
+ hf_index = hf_mms_iec61850_inclusion_bitstring;
+ }
+ }
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
+ hf_index = hf_mms_iec61850_quality_bitstring;
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
+ hf_index = hf_mms_iec61850_check_bitstring;
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 10){
+ hf_index = hf_mms_iec61850_check_bitstring;
+ }
+ }
+ }
+
+%(DEFAULT_BODY)s
+
+ if((mms_priv)&&(parameter_tvb) && (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_quality_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, quality_field_bits_oct1, ENC_NA);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 1, 1, quality_field_bits_oct2, ENC_NA);
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 10){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
+ }
+ }
+ }
+
+#.FN_BODY ReportedOptFlds VAL_PTR= &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv && parameter_tvb){
+ mms_priv->reported_optflds = tvb_get_ntohs(parameter_tvb,0);
+ }
+
+#.FN_BODY Data/unsigned
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 3){
+ /* IEC 61850-8-1 SeqNum */
+ hf_index = hf_mms_iec61850_seqnum;
+ }else if(mms_priv->listOfAccessResult_cnt == 8){
+ /* IEC 61850-8-1 ConfRev */
+ hf_index = hf_mms_iec61850_confrev;
+ }
+ }
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 7){
+ hf_index = hf_mms_iec61850_ctlNum;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/boolean
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 6){
+ /* IEC 61850-8-1 BufOvfl */
+ hf_index = hf_mms_iec61850_bufovfl;
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 2){
+ /* IEC 61850-8-1 ctlVal */
+ hf_index = hf_mms_iec61850_ctlval;
+ }else if(mms_priv->data_cnt == 9){
+ /* IEC 61850-8-1 Test */
+ hf_index = hf_mms_iec61850_test;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/binary-time
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 4){
+ /* IEC 61850-8-1 TimeOfEntry */
+ hf_index = hf_mms_iec61850_timeofentry;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/integer
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CTLMODEL){
+ hf_index = hf_mms_iec61850_ctlModel;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_OR_CAT){
+ hf_index = hf_mms_iec61850_orcategory;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_BEH$STVAL){
+ hf_index = hf_mms_iec61850_beh$stval;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_MOD$STVAL){
+ hf_index = hf_mms_iec61850_beh$stval;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_HEALTH$STVAL){
+ hf_index = hf_mms_iec61850_health$stval;
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 5){
+ /* IEC 61850-8-1 Origin Catagory */
+ hf_index = hf_mms_iec61850_origin_orcat;
+ }
+ }
+ }
+
+%(DEFAULT_BODY)s
+
diff --git a/epan/dissectors/asn1/mms/packet-mms-template.c b/epan/dissectors/asn1/mms/packet-mms-template.c
index 2706003d..5de53ca9 100644
--- a/epan/dissectors/asn1/mms/packet-mms-template.c
+++ b/epan/dissectors/asn1/mms/packet-mms-template.c
@@ -16,6 +16,8 @@
#include <epan/asn1.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
+#include <epan/conversation.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -28,18 +30,70 @@
void proto_register_mms(void);
void proto_reg_handoff_mms(void);
+static bool use_iec61850_mapping = true;
+
/* Initialize the protocol and registered fields */
-static int proto_mms = -1;
+static int proto_mms;
+
+/* Conversation */
+static int hf_mms_response_in;
+static int hf_mms_response_to;
+static int hf_mms_response_time;
+
+/* IEC 61850-8-1 filters */
+static int hf_mms_iec61850_rptid;
+static int hf_mms_iec61850_reported_optflds;
+static int hf_mms_iec61850_seqnum;
+static int hf_mms_iec61850_timeofentry;
+static int hf_mms_iec61850_datset;
+static int hf_mms_iec61850_bufovfl;
+static int hf_mms_iec61850_confrev;
+static int hf_mms_iec61850_inclusion_bitstring;
+static int hf_mms_iec61850_ctlModel;
+
+static int hf_mms_iec61850_QualityC0;
+static int hf_mms_iec61850_Quality20;
+static int hf_mms_iec61850_Quality10;
+static int hf_mms_iec61850_Quality8;
+static int hf_mms_iec61850_Quality4;
+static int hf_mms_iec61850_Quality2;
+static int hf_mms_iec61850_Quality1;
+static int hf_mms_iec61850_Quality0080;
+static int hf_mms_iec61850_Quality0040;
+static int hf_mms_iec61850_Quality0020;
+static int hf_mms_iec61850_Quality0010;
+static int hf_mms_iec61850_Quality0008;
+static int hf_mms_iec61850_quality_bitstring;
+static int hf_mms_iec61850_timequality80;
+static int hf_mms_iec61850_timequality40;
+static int hf_mms_iec61850_timequality20;
+static int hf_mms_iec61850_timequality1F;
+static int hf_mms_iec61850_check_bitstring;
+static int hf_mms_iec61850_check_b1;
+static int hf_mms_iec61850_check_b0;
+static int hf_mms_iec61850_orcategory;
+static int hf_mms_iec61850_beh$stval;
+static int hf_mms_iec61850_mod$stval;
+static int hf_mms_iec61850_health$stval;
+static int hf_mms_iec61850_ctlval;
+static int hf_mms_iec61850_origin;
+static int hf_mms_iec61850_origin_orcat;
+static int hf_mms_iec61850_origin_orident;
+static int hf_mms_iec61850_ctlNum;
+static int hf_mms_iec61850_T;
+static int hf_mms_iec61850_test;
#include "packet-mms-hf.c"
/* Initialize the subtree pointers */
-static gint ett_mms = -1;
+static int ett_mms;
+static int ett_mms_iec61850_quality_bitstring;
+static int ett_mms_iec61850_check_bitstring;
#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;
+static expert_field ei_mms_mal_timeofday_encoding;
+static expert_field ei_mms_mal_utctime_encoding;
+static expert_field ei_mms_zero_pdu;
/*****************************************************************************/
/* Packet private data */
@@ -50,72 +104,321 @@ static expert_field ei_mms_zero_pdu = EI_INIT;
#define BUFFER_SIZE_PRE 10
#define BUFFER_SIZE_MORE 1024
+typedef enum _iec61850_8_1_vmd_specific {
+ IEC61850_8_1_NOT_SET = 0,
+ IEC61850_8_1_RPT
+} iec61850_8_1_vmd_specific;
+
+typedef enum _itemid_type {
+ IEC61850_ITEM_ID_NOT_SET = 0,
+ IEC61850_ITEM_ID_CTLMODEL,
+ IEC61850_ITEM_ID_Q,
+ IEC61850_ITEM_ID_OPER,
+ IEC61850_ITEM_ID_CHECK,
+ IEC61850_ITEM_ID_OR_CAT,
+ IEC61850_ITEM_ID_BEH$STVAL,
+ IEC61850_ITEM_ID_MOD$STVAL,
+ IEC61850_ITEM_ID_HEALTH$STVAL,
+ IEC61850_ITEM_ID_$BR$_OR_$RP$,
+ IEC61850_ITEM_ID_$SBOW
+} itemid_type;
+
+typedef struct _mms_transaction_t {
+ uint32_t req_frame;
+ uint32_t rep_frame;
+ nstime_t req_time;
+ /* Request info*/
+ itemid_type itemid; /* Numeric representation of ItemId substring */
+ int conf_serv_pdu_type_req;
+} mms_transaction_t;
+
+typedef struct _mms_conv_info_t {
+ wmem_map_t* pdus;
+} mms_conv_info_t;
+
typedef struct mms_private_data_t
{
- char preCinfo[BUFFER_SIZE_PRE];
- char moreCinfo[BUFFER_SIZE_MORE];
+ char preCinfo[BUFFER_SIZE_PRE];
+ char moreCinfo[BUFFER_SIZE_MORE];
} mms_private_data_t;
+#define MMS_CONFIRMED_REQUEST_PDU 0
+#define MMS_CONFIRMED_RESPONSE_PDU 1
+#define MMS_CONFIRMED_ERROR_PDU 2
+#define MMS_UNCONFIRMED_PDU 3
+#define MMS_REJECT_PDU 4
+#define MMS_CANCEL_REQUEST_PDU 5
+#define MMS_CANCEL_RESPONSE_PDU 6
+#define MMS_CANCEL_ERROR_PDU 7
+#define MMS_INITIATE_REQUEST_PDU 8
+#define MMS_INITIATE_RESPONSE_PDU 9
+#define MMS_INITIATE_ERROR_PDU 10
+#define MMS_CONCLUDE_REQUEST_PDU 11
+#define MMS_CONCLUDE_RESPONSE_PDU 12
+#define MMS_CONCLUDE_ERROR_PDU 13
+
+#define MMS_CONFIRMEDSERVICE_STATUS 0
+#define MMS_CONFIRMEDSERVICE_GETNAMELIST 1
+#define MMS_CONFIRMEDSERVICE_IDENTIFY 2
+#define MMS_CONFIRMEDSERVICE_RENAME 3
+#define MMS_CONFIRMEDSERVICE_READ 4
+#define MMS_CONFIRMEDSERVICE_WRITE 5
+#define MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES 6
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLE 7
+#define MMS_CONFIRMEDSERVICE_DEFINESCATTEREDACCESS 8
+#define MMS_CONFIRMEDSERVICE_GETSCATTEREDACCESSATTRIBUTES 9
+#define MMS_CONFIRMEDSERVICE_DELETEVARIABLEACCESS 10
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLELIST 11
+#define MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES 12
+#define MMS_CONFIRMEDSERVICE_DELETENAMEDVARIABLELIST 13
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDTYPE 14
+#define MMS_CONFIRMEDSERVICE_GETNAMEDTYPEATTRIBUTES 15
+#define MMS_CONFIRMEDSERVICE_DELETENAMEDTYPE 16
+#define MMS_CONFIRMEDSERVICE_INPUT 17
+#define MMS_CONFIRMEDSERVICE_OUTPUT 18
+#define MMS_CONFIRMEDSERVICE_TAKECONTROL 19
+#define MMS_CONFIRMEDSERVICE_RELINQUISHCONTROL 20
+#define MMS_CONFIRMEDSERVICE_DEFINESEMAPHORE 21
+#define MMS_CONFIRMEDSERVICE_DELETESEMAPHORE 22
+#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHORESTATUS 23
+#define MMS_CONFIRMEDSERVICE_REPORTPOOLSEMAPHORESTATUS 24
+#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHOREENTRYSTATUS 25
+#define MMS_CONFIRMEDSERVICE_INITIATEDOWNLOADSEQUENCE 26
+#define MMS_CONFIRMEDSERVICE_DOWNLOADSEGMENT 27
+#define MMS_CONFIRMEDSERVICE_TERMINATEDOWNLOADSEQUENCE 28
+#define MMS_CONFIRMEDSERVICE_INITIATEUPLOADSEQUENCE 29
+#define MMS_CONFIRMEDSERVICE_UPLOADSEGMENT 30
+#define MMS_CONFIRMEDSERVICE_TERMINATEUPLOADSEQUENCE 31
+#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINDOWNLOAD 32
+#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINUPLOAD 33
+#define MMS_CONFIRMEDSERVICE_LOADDOMAINCONTENT 34
+#define MMS_CONFIRMEDSERVICE_STOREDOMAINCONTENT 35
+#define MMS_CONFIRMEDSERVICE_DELETEDOMAIN 36
+#define MMS_CONFIRMEDSERVICE_GETDOMAINATTRIBUTES 37
+#define MMS_CONFIRMEDSERVICE_CREATEPROGRAMINVOCATION 38
+#define MMS_CONFIRMEDSERVICE_DELETEPROGRAMINVOCATION 39
+#define MMS_CONFIRMEDSERVICE_START 40
+#define MMS_CONFIRMEDSERVICE_STOP 41
+#define MMS_CONFIRMEDSERVICE_RESUME 42
+#define MMS_CONFIRMEDSERVICE_RESET 43
+#define MMS_CONFIRMEDSERVICE_KILL 44
+#define MMS_CONFIRMEDSERVICE_GETPROGRAMINVOCATIONATTRIBUTES 45
+#define MMS_CONFIRMEDSERVICE_OBTAINFILE 46
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTCONDITION 47
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTCONDITION 48
+#define MMS_CONFIRMEDSERVICE_GETEVENTCONDITIONATTRIBUTES 49
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTCONDITIONSTATUS 50
+#define MMS_CONFIRMEDSERVICE_ALTEREVENTCONDITIONMONITORING 51
+#define MMS_CONFIRMEDSERVICE_TRIGGEREVENT 52
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTACTION 53
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTACTION 54
+#define MMS_CONFIRMEDSERVICE_GETEVENTACTIONATTRIBUTES 55
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTACTIONSTATUS 56
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTENROLLMENT 57
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTENROLLMENT 58
+#define MMS_CONFIRMEDSERVICE_ALTEREVENTENROLLMENT 59
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTENROLLMENTSTATUS 60
+#define MMS_CONFIRMEDSERVICE_GETEVENTENROLLMENTATTRIBUTES 61
+#define MMS_CONFIRMEDSERVICE_ACKNOWLEDGEEVENTNOTIFICATION 62
+#define MMS_CONFIRMEDSERVICE_GETALARMSUMMARY 63
+#define MMS_CONFIRMEDSERVICE_GETALARMENROLLMENTSUMMARY 64
+#define MMS_CONFIRMEDSERVICE_READJOURNAL 65
+#define MMS_CONFIRMEDSERVICE_WRITEJOURNAL 66
+#define MMS_CONFIRMEDSERVICE_INITIALIZEJOURNAL 67
+#define MMS_CONFIRMEDSERVICE_REPORTJOURNALSTATUS 68
+#define MMS_CONFIRMEDSERVICE_CREATEJOURNAL 69
+#define MMS_CONFIRMEDSERVICE_DELETEJOURNAL 70
+#define MMS_CONFIRMEDSERVICE_GETCAPABILITYLIST 71
+#define MMS_CONFIRMEDSERVICE_FILEOPEN 72
+#define MMS_FILEREAD 73
+#define MMS_FILECLOSE 74
+#define MMS_FILERENAME 75
+#define MMS_FILEDELETE 76
+#define MMS_FILEDIRECTORY 77
+
+#define MMS_OBJECTCLASS_NAMMEDVARIABLE 0
+#define MMS_OBJECTCLASS_NAMEDVARIABLELIST 2
+#define MMS_OBJECTCLASS_DOMAIN 9
+
+#define MMS_OBJECTSCOPE_VMDSPECIFIC 0
+#define MMS_OBJECTSCOPE_DOMAINSPECIFIC 1
+
+#define MMS_IEC_61850_CONF_SERV_PDU_NOT_SET 0
+#define MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR 1
+#define MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY 2
+#define MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY 3
+#define MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY 4
+#define MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE 5
+#define MMS_IEC_61850_CONF_SERV_PDU_READ 6
+#define MMS_IEC_61850_CONF_SERV_PDU_WRITE 7
+
+typedef struct mms_actx_private_data_t
+{
+ int mms_pdu_type; /* MMSpdu type taken from MMSpdu CHOICE branch_taken */
+ int invokeid;
+ iec61850_8_1_vmd_specific vmd_specific; /* Numeric representation of decode vmd_specific strings */
+ int listOfAccessResult_cnt; /* Position in the list, 1 count */
+ int data_cnt; /* Number of times data occurred(depth)*/
+ uint16_t reported_optflds; /* Bitmap over included fields */
+ proto_item* pdu_item; /* The item to append PDU info to */
+ int confirmedservice_type; /* Requested service */
+ int objectclass;
+ int objectscope;
+ mms_transaction_t* mms_trans_p; /* Pointer to the transaction record */
+ char* itemid_str;
+ int success; /* If variable access succeeded or not */
+} mms_actx_private_data_t;
+
+
+static const value_string mms_iec6150_cntmodel_vals[] = {
+ {0, "status-only"},
+ {1, "direct-with-normal-security"},
+ {2, "sbo-with-normal-security"},
+ {3, "direct-with-enhanced-security"},
+ {4, "sbo-with-enhanced-security"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_validity_vals[] = {
+ {0, "Good"},
+ {1, "Invalid"},
+ {2, "Reserved"},
+ {3, "Questionable"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_source_vals[] = {
+ {0, "Process"},
+ {1, "Substituted"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_timeaccuracy_vals[] = {
+ {0, "0 bits accuracy"},
+ {1, "1 bits accuracy"},
+ {2, "2 bits accuracy"},
+ {3, "3 bits accuracy"},
+ {4, "4 bits accuracy"},
+ {5, "5 bits accuracy"},
+ {6, "6 bits accuracy"},
+ {7, "7 bits accuracy"},
+ {8, "8 bits accuracy"},
+ {9, "9 bits accuracy"},
+ {10, "10 bits accuracy"},
+ {11, "11 bits accuracy"},
+ {12, "12 bits accuracy"},
+ {13, "13 bits accuracy"},
+ {14, "14 bits accuracy"},
+ {15, "15 bits accuracy"},
+ {16, "16 bits accuracy"},
+ {17, "17 bits accuracy"},
+ {18, "18 bits accuracy"},
+ {19, "19 bits accuracy"},
+ {20, "20 bits accuracy"},
+ {21, "21 bits accuracy"},
+ {22, "22 bits accuracy"},
+ {23, "23 bits accuracy"},
+ {24, "24 bits accuracy"},
+ {25, "25 bits accuracy"},
+ {26, "26 bits accuracy"},
+ {27, "27 bits accuracy"},
+ {28, "28 bits accuracy"},
+ {29, "29 bits accuracy"},
+ {30, "Invalid"},
+ {31, "Unspecified"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_orcategory_vals[] = {
+ {0, "not-supported"},
+ {1, "bay-control"},
+ {2, "station-control"},
+ {3, "remote-control"},
+ {4, "automatic-bay"},
+ {5, "automatic-station"},
+ {6, "automatic-station"},
+ {7, "maintenance"},
+ {8, "process"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_beh_vals[] = {
+ {0,"Uninitialised"},
+ {1, "on"},
+ {2, "blocked"},
+ {3, "test"},
+ {4, "test/blocked"},
+ {5, "off"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_health_vals[] = {
+ {0,"Uninitialised"},
+ {1,"Ok"},
+ {2,"Warning"},
+ {3,"Alarm"},
+ {0, NULL}
+};
/* Helper function to get or create the private data struct */
static
-mms_private_data_t* mms_get_private_data(asn1_ctx_t *actx)
+mms_private_data_t* mms_get_private_data(asn1_ctx_t* actx)
{
- packet_info *pinfo = actx->pinfo;
- mms_private_data_t *private_data = (mms_private_data_t *)p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num);
- if(private_data != NULL )
- return private_data;
- else {
- private_data = wmem_new0(pinfo->pool, mms_private_data_t);
- p_add_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num, private_data);
- return private_data;
- }
+ packet_info* pinfo = actx->pinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num);
+ if (private_data != NULL) {
+ return private_data;
+ } else {
+ private_data = wmem_new0(pinfo->pool, mms_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num, private_data);
+ return private_data;
+ }
}
/* Helper function to test presence of private data struct */
-static gboolean
-mms_has_private_data(asn1_ctx_t *actx)
+static bool
+mms_has_private_data(asn1_ctx_t* actx)
{
- packet_info *pinfo = actx->pinfo;
- return (p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num) != NULL);
+ packet_info* pinfo = actx->pinfo;
+ return (p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num) != NULL);
}
static void
-private_data_add_preCinfo(asn1_ctx_t *actx, guint32 val)
+private_data_add_preCinfo(asn1_ctx_t* actx, uint32_t val)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- snprintf(private_data->preCinfo, BUFFER_SIZE_PRE, "%02d ", val);
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ snprintf(private_data->preCinfo, BUFFER_SIZE_PRE, "%02d ", val);
}
static char*
-private_data_get_preCinfo(asn1_ctx_t *actx)
+private_data_get_preCinfo(asn1_ctx_t* actx)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- return private_data->preCinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ return private_data->preCinfo;
}
static void
-private_data_add_moreCinfo_id(asn1_ctx_t *actx, tvbuff_t *tvb)
+private_data_add_moreCinfo_id(asn1_ctx_t* actx, tvbuff_t* tvb)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- (void) g_strlcat(private_data->moreCinfo, " ", BUFFER_SIZE_MORE);
- (void) g_strlcat(private_data->moreCinfo, tvb_get_string_enc(actx->pinfo->pool,
- tvb, 2, tvb_get_guint8(tvb, 1), ENC_STRING), BUFFER_SIZE_MORE);
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ (void)g_strlcat(private_data->moreCinfo, " ", BUFFER_SIZE_MORE);
+ (void)g_strlcat(private_data->moreCinfo, tvb_get_string_enc(actx->pinfo->pool, tvb,
+ 0, tvb_reported_length(tvb), ENC_ASCII | ENC_NA), BUFFER_SIZE_MORE);
}
static void
-private_data_add_moreCinfo_float(asn1_ctx_t *actx, tvbuff_t *tvb)
+private_data_add_moreCinfo_float(asn1_ctx_t* actx, tvbuff_t* tvb)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- snprintf(private_data->moreCinfo, BUFFER_SIZE_MORE,
- " %f", tvb_get_ieee_float(tvb, 1, ENC_BIG_ENDIAN));
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ snprintf(private_data->moreCinfo, BUFFER_SIZE_MORE,
+ " %f", tvb_get_ieee_float(tvb, 1, ENC_BIG_ENDIAN));
}
static char*
-private_data_get_moreCinfo(asn1_ctx_t *actx)
+private_data_get_moreCinfo(asn1_ctx_t* actx)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- return private_data->moreCinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ return private_data->moreCinfo;
}
/*****************************************************************************/
@@ -127,122 +430,318 @@ private_data_get_moreCinfo(asn1_ctx_t *actx)
* Dissect MMS PDUs inside a PPDU.
*/
static int
-dissect_mms(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+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);
+ 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);
+ asn1_ctx.subtree.top_tree = parent_tree;
+ }
+ if (use_iec61850_mapping) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS/IEC61850");
+ }
+ else {
+ 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;
+ if (use_iec61850_mapping) {
+ asn1_ctx.private_data = (void*)wmem_new0(pinfo->pool, mms_actx_private_data_t);
+ }
+ offset = dissect_mms_MMSpdu(false, tvb, offset, &asn1_ctx, tree, -1);
+ if (asn1_ctx.private_data) {
+ wmem_free(pinfo->pool, asn1_ctx.private_data);
+ }
+ 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[] =
- {
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ { &hf_mms_response_in,
+ { "Response In", "mms.response_in",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0x0,
+ "The response to this mms request is in this frame", HFILL }
+ },
+ { &hf_mms_response_to,
+ { "Request In", "mms.response_to",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0x0,
+ "This is a response to the mms request in this frame", HFILL }
+ },
+ { &hf_mms_response_time,
+ { "Response Time", "mms.response_time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "The time between the Call and the Reply", HFILL }
+ },
+ { &hf_mms_iec61850_rptid,
+ { "RptID", "mms.iec61850.rptid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_reported_optflds,
+ { "Reported OptFlds", "mms.iec61850.reported_optfld",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_seqnum,
+ { "SeqNum", "mms.iec61850.seqnum",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_timeofentry,
+ { "TimeOfEntry", "mms.iec61850.timeofentry",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_datset,
+ { "DatSet", "mms.iec61850.datset",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_bufovfl,
+ { "BufOvfl", "mms.iec61850.bufovfl",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_confrev,
+ { "ConfRev", "mms.iec61850.confrev",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_inclusion_bitstring,
+ { "Inclusion-bitstring", "mms.iec61850.inclusion_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_ctlModel,
+ { "ctlModel", "mms.iec61850.ctlmodel",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_cntmodel_vals), 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_QualityC0,
+ { "Validity", "mms.iec61850.validity",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_validity_vals), 0xC0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality20,
+ { "Overflow", "mms.iec61850.overflow",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality10,
+ { "OutofRange", "mms.iec61850.outofrange",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality8,
+ { "BadReference", "mms.iec61850.badreference",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality4,
+ { "Oscillatory", "mms.iec61850.oscillatory",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality2,
+ { "Failure", "mms.iec61850.failure",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality1,
+ { "OldData", "mms.iec61850.oldData",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0080,
+ { "Inconsistent", "mms.iec61850.inconsistent",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0040,
+ { "Inaccurate", "mms.iec61850.inaccurate",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0020,
+ { "Source", "mms.iec61850.source",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_source_vals), 0x20,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0010,
+ { "Test", "mms.iec61850.test",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0008,
+ { "OperatorBlocked", "mms.iec61850.operatorblocked",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_quality_bitstring,
+ { "Quality", "mms.iec61850.quality_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality80,
+ { "Leap Second Known", "mms.iec61850.leapsecondknown",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality40,
+ { "ClockFailure", "mms.iec61850.clockfailure",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality20,
+ { "Clock not synchronized", "mms.iec61850.clocknotsynchronized",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality1F,
+ { "Time Accuracy", "mms.iec61850.timeaccuracy",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_timeaccuracy_vals), 0x1F,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_bitstring,
+ { "Check", "mms.iec61850.check_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_b1,
+ { "Synchrocheck", "mms.iec61850.synchrocheck",
+ FT_BOOLEAN, 2, NULL, 0x2,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_b0,
+ { "Interlock-check", "mms.iec61850.interlockcheck",
+ FT_BOOLEAN, 2, NULL, 0x1,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_orcategory,
+ { "orCategory", "mms.iec61850.orcategory",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_orcategory_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_beh$stval,
+ { "beh", "mms.iec61850.beh",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_mod$stval,
+ { "mod", "mms.iec61850.mod",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_health$stval,
+ { "health", "mms.iec61850.health",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_health_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_ctlval,
+ { "ctlVal", "mms.iec61850.ctlval",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin,
+ { "Origin", "mms.iec61850.origin",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin_orcat,
+ { "Origin Category", "mms.iec61850.orcat",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin_orident,
+ { "Origin Identifier", "mms.iec61850.orident",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_ctlNum,
+ { "ctlNum", "mms.iec61850.ctlnum",
+ FT_INT8, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_T,
+ { "T(Timestamp)", "mms.iec61850.timestamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_test,
+ { "Test", "mms.iec61850.test",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
#include "packet-mms-hfarr.c"
- };
+ };
- /* List of subtrees */
- static gint *ett[] = {
- &ett_mms,
+ /* List of subtrees */
+ static int* ett[] = {
+ &ett_mms,
+ &ett_mms_iec61850_quality_bitstring,
+ &ett_mms_iec61850_check_bitstring,
#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 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));
+
+ /* Setting to enable/disable the IEC-61850 mapping on MMS */
+ module_t* mms_module = prefs_register_protocol(proto_mms, proto_reg_handoff_mms);
+
+ prefs_register_bool_preference(mms_module, "use_iec61850_mapping",
+ "Dissect MMS as IEC-61850",
+ "Enables or disables dissection as IEC-61850 on top of MMS",
+ &use_iec61850_mapping);
}
-static gboolean
-dissect_mms_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+static bool
+dissect_mms_heur(tvbuff_t* tvb, packet_info* pinfo, proto_tree* parent_tree, void* data)
{
- /* must check that this really is an mms packet */
- int offset = 0;
- guint32 length = 0 ;
- guint32 oct;
- gint idx = 0 ;
-
- gint8 tmp_class;
- bool 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;
+ /* must check that this really is an mms packet */
+ int offset = 0;
+ uint32_t length = 0;
+ uint32_t oct;
+ int idx = 0;
+
+ int8_t tmp_class;
+ bool tmp_pc;
+ int32_t 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_uint8(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);
+ 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/mpeg-audio/packet-mpeg-audio-template.c b/epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c
index 29e42ae2..8b1c0c37 100644
--- a/epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c
+++ b/epan/dissectors/asn1/mpeg-audio/packet-mpeg-audio-template.c
@@ -14,6 +14,7 @@
#include <epan/asn1.h>
#include <wsutil/mpeg-audio.h>
+#include <wsutil/array.h>
#include "packet-per.h"
@@ -26,30 +27,30 @@ void proto_reg_handoff_mpeg_audio(void);
dissector_handle_t mpeg_audio_handle;
-static int proto_mpeg_audio = -1;
+static int proto_mpeg_audio;
static dissector_handle_t id3v2_handle;
-static int hf_mpeg_audio_header = -1;
-static int hf_mpeg_audio_data = -1;
-static int hf_mpeg_audio_padbytes = -1;
-static int hf_id3v1 = -1;
+static int hf_mpeg_audio_header;
+static int hf_mpeg_audio_data;
+static int hf_mpeg_audio_padbytes;
+static int hf_id3v1;
-static int ett_mpeg_audio = -1;
+static int ett_mpeg_audio;
-static gboolean
+static bool
test_mpeg_audio(tvbuff_t *tvb, int offset)
{
- guint32 hdr;
+ uint32_t hdr;
struct mpa mpa;
if (!tvb_bytes_exist(tvb, offset, 4))
- return FALSE;
+ return false;
if (tvb_strneql(tvb, offset, "TAG", 3) == 0)
- return TRUE;
+ return true;
if (tvb_strneql(tvb, offset, "ID3", 3) == 0)
- return TRUE;
+ return true;
- hdr = tvb_get_guint32(tvb, offset, ENC_BIG_ENDIAN);
+ hdr = tvb_get_uint32(tvb, offset, ENC_BIG_ENDIAN);
MPA_UNMARSHAL(&mpa, hdr);
return MPA_VALID(&mpa);
}
@@ -57,20 +58,20 @@ test_mpeg_audio(tvbuff_t *tvb, int offset)
static int
mpeg_resync(tvbuff_t *tvb, int offset)
{
- guint32 hdr;
+ uint32_t hdr;
struct mpa mpa;
/* This only looks to resync on another frame; it doesn't
* look for an ID3 tag.
*/
- offset = tvb_find_guint8(tvb, offset, -1, '\xff');
+ offset = tvb_find_uint8(tvb, offset, -1, '\xff');
while (offset != -1 && tvb_bytes_exist(tvb, offset, 4)) {
- hdr = tvb_get_guint32(tvb, offset, ENC_BIG_ENDIAN);
+ hdr = tvb_get_uint32(tvb, offset, ENC_BIG_ENDIAN);
MPA_UNMARSHAL(&mpa, hdr);
if (MPA_VALID(&mpa)) {
return offset;
}
- offset = tvb_find_guint8(tvb, offset + 1, -1, '\xff');
+ offset = tvb_find_uint8(tvb, offset + 1, -1, '\xff');
}
return tvb_reported_length(tvb);
}
@@ -78,7 +79,7 @@ mpeg_resync(tvbuff_t *tvb, int offset)
static int
dissect_mpeg_audio_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- guint32 h;
+ uint32_t h;
struct mpa mpa;
int data_size = 0;
asn1_ctx_t asn1_ctx;
@@ -106,7 +107,7 @@ dissect_mpeg_audio_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
mpa_frequency(&mpa) / (float)1000);
}
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
offset = dissect_mpeg_audio_Audio(tvb, offset, &asn1_ctx,
tree, hf_mpeg_audio_header);
if (data_size > 0) {
@@ -132,7 +133,7 @@ dissect_id3v1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_set_str(pinfo->cinfo, COL_PROTOCOL, "ID3v1");
col_clear(pinfo->cinfo, COL_INFO);
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
return dissect_mpeg_audio_ID3v1(tvb, 0, &asn1_ctx,
tree, hf_id3v1);
}
@@ -144,7 +145,7 @@ dissect_mpeg_audio(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
proto_tree *mpeg_audio_tree;
int magic, offset = 0;
- guint32 frame_len;
+ uint32_t frame_len;
tvbuff_t *next_tvb;
ti = proto_tree_add_item(tree, proto_mpeg_audio, tvb, offset, -1, ENC_NA);
@@ -170,14 +171,14 @@ dissect_mpeg_audio(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
return tvb_reported_length(tvb);
}
-static gboolean
+static bool
dissect_mpeg_audio_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
if (!test_mpeg_audio(tvb, 0)) {
- return FALSE;
+ return false;
}
dissect_mpeg_audio(tvb, pinfo, tree, data);
- return TRUE;
+ return true;
}
void
@@ -200,7 +201,7 @@ proto_register_mpeg_audio(void)
FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
};
- static gint *ett[] = {
+ static int *ett[] = {
&ett_mpeg_audio,
#include "packet-mpeg-audio-ettarr.c"
};
diff --git a/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
index 680fa910..53a3043c 100644
--- a/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
+++ b/epan/dissectors/asn1/mpeg-pes/packet-mpeg-pes-template.c
@@ -14,6 +14,8 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
+
#include <wiretap/wtap.h>
#include "packet-per.h"
@@ -25,47 +27,47 @@
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;
+static int proto_mpeg;
+static int proto_mpeg_pes;
+
+static int ett_mpeg_pes_pack_header;
+static int ett_mpeg_pes_header_data;
+static int ett_mpeg_pes_trick_mode;
+
+static int hf_mpeg_pes_pack_header;
+static int hf_mpeg_pes_scr;
+static int hf_mpeg_pes_program_mux_rate;
+static int hf_mpeg_pes_stuffing_length;
+static int hf_mpeg_pes_stuffing;
+static int hf_mpeg_pes_extension;
+static int hf_mpeg_pes_header_data;
+static int hf_mpeg_pes_pts;
+static int hf_mpeg_pes_dts;
+static int hf_mpeg_pes_escr;
+static int hf_mpeg_pes_es_rate;
+static int hf_mpeg_pes_dsm_trick_mode;
+static int hf_mpeg_pes_dsm_trick_mode_control;
+static int hf_mpeg_pes_dsm_trick_mode_field_id;
+static int hf_mpeg_pes_dsm_trick_mode_intra_slice_refresh;
+static int hf_mpeg_pes_dsm_trick_mode_frequency_truncation;
+static int hf_mpeg_pes_dsm_trick_mode_rep_cntrl;
+static int hf_mpeg_pes_copy_info;
+static int hf_mpeg_pes_crc;
+static int hf_mpeg_pes_extension_flags;
+static int hf_mpeg_pes_private_data;
+static int hf_mpeg_pes_pack_length;
+static int hf_mpeg_pes_sequence;
+static int hf_mpeg_pes_pstd_buffer;
+static int hf_mpeg_pes_extension2;
+static int hf_mpeg_pes_padding;
+static int hf_mpeg_pes_data;
+
+static int hf_mpeg_video_sequence_header;
+static int hf_mpeg_video_sequence_extension;
+static int hf_mpeg_video_group_of_pictures;
+static int hf_mpeg_video_picture;
+static int hf_mpeg_video_quantization_matrix;
+static int hf_mpeg_video_data;
static dissector_handle_t mpeg_handle;
@@ -191,34 +193,34 @@ static const value_string mpeg_pes_TrickModeFrequencyTruncation_vals[] = {
#define TSHZ 90000
-static guint64 decode_time_stamp(tvbuff_t *tvb, gint offset, nstime_t *nst)
+static uint64_t decode_time_stamp(tvbuff_t *tvb, int offset, nstime_t *nst)
{
- guint64 bytes = tvb_get_ntoh40(tvb, offset);
- guint64 ts =
+ uint64_t bytes = tvb_get_ntoh40(tvb, offset);
+ uint64_t 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);
+ nst->nsecs = (int)(INT64_C(1000000000) * rem / TSHZ);
return ts;
}
#define SCRHZ 27000000
-static guint64 decode_clock_reference(tvbuff_t *tvb, gint offset,
+static uint64_t decode_clock_reference(tvbuff_t *tvb, int offset,
nstime_t *nst)
{
- guint64 bytes = tvb_get_ntoh48(tvb, offset);
- guint64 ts =
+ uint64_t bytes = tvb_get_ntoh48(tvb, offset);
+ uint64_t 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;
+ uint64_t 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);
+ nst->nsecs = (int)(INT64_C(1000000000) * rem / SCRHZ);
return cr;
}
@@ -230,7 +232,7 @@ dissect_mpeg_pes_header_data(tvbuff_t *tvb, packet_info *pinfo _U_,
0, -1, ENC_NA);
proto_tree *tree = proto_item_add_subtree(item, ett_mpeg_pes_header_data);
- gint offset = 0;
+ int offset = 0;
if (flags & PTS_FLAG) {
nstime_t nst;
decode_time_stamp(tvb, offset, &nst);
@@ -260,8 +262,8 @@ dissect_mpeg_pes_header_data(tvbuff_t *tvb, packet_info *pinfo _U_,
}
if (flags & DSM_TRICK_MODE_FLAG)
{
- guint8 value = tvb_get_guint8(tvb, offset);
- guint8 control;
+ uint8_t value = tvb_get_uint8(tvb, offset);
+ uint8_t control;
proto_tree *trick_tree;
proto_item *trick_item;
@@ -326,7 +328,7 @@ dissect_mpeg_pes_header_data(tvbuff_t *tvb, packet_info *pinfo _U_,
}
if (flags & EXTENSION_FLAG) {
- int flags2 = tvb_get_guint8(tvb, offset);
+ int flags2 = tvb_get_uint8(tvb, offset);
proto_tree_add_item(tree, hf_mpeg_pes_extension_flags, tvb,
offset, 1, ENC_BIG_ENDIAN);
offset++;
@@ -361,8 +363,8 @@ dissect_mpeg_pes_header_data(tvbuff_t *tvb, packet_info *pinfo _U_,
return offset;
}
-static gint
-dissect_mpeg_pes_pack_header(tvbuff_t *tvb, gint offset,
+static int
+dissect_mpeg_pes_pack_header(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *root)
{
unsigned int program_mux_rate, stuffing_length;
@@ -381,7 +383,7 @@ dissect_mpeg_pes_pack_header(tvbuff_t *tvb, gint offset,
program_mux_rate);
offset += 3 * 8;
- stuffing_length = tvb_get_guint8(tvb, offset / 8) & 0x07;
+ stuffing_length = tvb_get_uint8(tvb, offset / 8) & 0x07;
proto_tree_add_item(tree, hf_mpeg_pes_stuffing_length, tvb,
offset / 8, 1, ENC_BIG_ENDIAN);
offset += 1 * 8;
@@ -398,26 +400,26 @@ dissect_mpeg_pes_pack_header(tvbuff_t *tvb, gint offset,
static int
dissect_mpeg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
-static gboolean
+static int
// NOLINTNEXTLINE(misc-no-recursion)
dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
int prefix;
int stream;
asn1_ctx_t asn1_ctx;
- gint offset = 0;
- guint8 stream_type;
+ int offset = 0;
+ uint8_t stream_type;
if (!tvb_bytes_exist(tvb, 0, 3))
- return FALSE; /* not enough bytes for a PES prefix */
+ return 0; /* not enough bytes for a PES prefix */
prefix = tvb_get_ntoh24(tvb, 0);
if (prefix != PES_PREFIX)
- return FALSE;
+ return 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MPEG PES");
col_clear(pinfo->cinfo, COL_INFO);
- stream = tvb_get_guint8(tvb, 3);
+ stream = tvb_get_uint8(tvb, 3);
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(stream, mpeg_pes_T_stream_vals, "Unknown stream: %d"));
/* Were we called from MP2T providing a stream type from a PMT? */
@@ -427,11 +429,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
* to PMT but maps stream_ids to stream_types instead of PIDs.)
*/
-#if 0
- if (tree == NULL)
- return TRUE;
-#endif
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
offset = dissect_mpeg_pes_PES(tvb, offset, &asn1_ctx,
tree, proto_mpeg_pes);
@@ -439,7 +437,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
if (stream == STREAM_PICTURE) {
int frame_type;
- frame_type = tvb_get_guint8(tvb, 5) >> 3 & 0x07;
+ frame_type = tvb_get_uint8(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,
@@ -475,7 +473,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
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) {
+ if (tvb_get_uint8(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,
@@ -501,7 +499,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
|| stream >= STREAM_AUDIO) {
int length = tvb_get_ntohs(tvb, 4);
- if ((tvb_get_guint8(tvb, 6) & 0xc0) == 0x80) {
+ if ((tvb_get_uint8(tvb, 6) & 0xc0) == 0x80) {
int header_length;
tvbuff_t *es;
int save_offset = offset;
@@ -556,9 +554,9 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
length -= ((offset - save_offset) / 8) - 2;
}
- header_length = tvb_get_guint8(tvb, 8);
+ header_length = tvb_get_uint8(tvb, 8);
if (header_length > 0) {
- int flags = tvb_get_guint8(tvb, 7);
+ int flags = tvb_get_uint8(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);
@@ -575,13 +573,13 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
} else {
es = tvb_new_subset_length_caplen(tvb, offset / 8, -1, length);
}
- if (!dissector_try_uint_new(stream_type_table, stream_type, es, pinfo, tree, TRUE, NULL)) {
+ if (!dissector_try_uint_new(stream_type_table, stream_type, es, pinfo, tree, true, NULL)) {
/* If we didn't get a stream type, then assume
* MPEG-1/2 Audio or Video.
*/
if (tvb_get_ntoh24(es, 0) == PES_PREFIX)
dissect_mpeg_pes(es, pinfo, tree, NULL);
- else if (tvb_get_guint8(es, 0) == 0xff)
+ else if (tvb_get_uint8(es, 0) == 0xff)
dissect_mpeg(es, pinfo, tree, NULL);
else
proto_tree_add_item(tree, hf_mpeg_pes_data, es,
@@ -601,7 +599,7 @@ dissect_mpeg_pes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
offset / 8, -1, ENC_NA);
}
decrement_dissection_depth(pinfo);
- return TRUE;
+ return tvb_reported_length(tvb);
}
static heur_dissector_list_t heur_subdissector_list;
@@ -620,6 +618,11 @@ dissect_mpeg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
return tvb_captured_length(tvb);
}
+static bool
+dissect_mpeg_pes_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
+ return dissect_mpeg_pes(tvb, pinfo, tree, data) > 0;
+}
+
void
proto_register_mpeg_pes(void)
{
@@ -730,7 +733,7 @@ proto_register_mpeg_pes(void)
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
};
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-mpeg-pes-ettarr.c"
&ett_mpeg_pes_pack_header,
&ett_mpeg_pes_header_data,
@@ -739,7 +742,7 @@ proto_register_mpeg_pes(void)
proto_mpeg = proto_register_protocol("Moving Picture Experts Group", "MPEG", "mpeg");
mpeg_handle = register_dissector("mpeg", dissect_mpeg, proto_mpeg);
- heur_subdissector_list = register_heur_dissector_list("mpeg", proto_mpeg);
+ heur_subdissector_list = register_heur_dissector_list_with_description("mpeg", "MPEG payload", proto_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));
@@ -753,7 +756,7 @@ void
proto_reg_handoff_mpeg_pes(void)
{
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);
+ heur_dissector_add("mpeg", dissect_mpeg_pes_heur, "MPEG PES", "mpeg_pes", proto_mpeg_pes, HEURISTIC_ENABLE);
dissector_add_uint("mpeg-pes.stream", 0x1B, find_dissector_add_dependency("h264_bytestream", proto_mpeg_pes));
dissector_add_uint("mpeg-pes.stream", 0x24, find_dissector_add_dependency("h265_bytestream", proto_mpeg_pes));
diff --git a/epan/dissectors/asn1/mudurl/packet-mudurl-template.c b/epan/dissectors/asn1/mudurl/packet-mudurl-template.c
index 1861a39c..aeae38fe 100644
--- a/epan/dissectors/asn1/mudurl/packet-mudurl-template.c
+++ b/epan/dissectors/asn1/mudurl/packet-mudurl-template.c
@@ -13,6 +13,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
/* #include "packet-mudurl.h" */ // At the moment we are not exporting.
@@ -27,7 +28,7 @@ void proto_reg_handoff_mudurl(void);
/* Initialize the protocol and registered fields */
-static int proto_mudurl = -1;
+static int proto_mudurl;
#include "packet-mudurl-hf.c"
/* Initialize the subtree pointers */
@@ -47,7 +48,7 @@ void proto_register_mudurl(void) {
};
/* List of subtrees */
- /* static gint *ett[] = {
+ /* static int *ett[] = {
#include "packet-mudurl-ettarr.c"
}; */
diff --git a/epan/dissectors/asn1/nbap/nbap.cnf b/epan/dissectors/asn1/nbap/nbap.cnf
index c4f4dcbc..428c94b5 100644
--- a/epan/dissectors/asn1/nbap/nbap.cnf
+++ b/epan/dissectors/asn1/nbap/nbap.cnf
@@ -81,11 +81,12 @@ ProtocolIE-ContainerPairList
#.END
#.FN_BODY ProtocolIE-ID VAL_PTR = &protocol_ie_id
- guint32 protocol_ie_id;
+ uint32_t protocol_ie_id;
%(DEFAULT_BODY)s
nbap_get_private_data(actx->pinfo)->protocol_ie_id = protocol_ie_id; /* To carry around the packet */
if (tree) {
- proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %%s", val_to_str_ext(protocol_ie_id, &nbap_ProtocolIE_ID_vals_ext, "unknown (%%d)"));
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %%s",
+ val_to_str_ext(protocol_ie_id, &nbap_ProtocolIE_ID_vals_ext, "unknown (%%d)"));
}
#.END
@@ -94,12 +95,12 @@ ProtocolIE-ContainerPairList
#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
#.FN_BODY ProcedureCode VAL_PTR = &procedure_code
- guint32 procedure_code;
+ uint32_t procedure_code;
%(DEFAULT_BODY)s
nbap_get_private_data(actx->pinfo)->procedure_code = procedure_code;
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ",
- val_to_str(procedure_code, nbap_ProcedureCode_vals,
- "unknown message"));
+ val_to_str_const(procedure_code, nbap_ProcedureCode_vals,
+ "unknown message"));
#.FN_PARS ProcedureID/ddMode VAL_PTR = &nbap_get_private_data(actx->pinfo)->dd_mode
@@ -110,7 +111,7 @@ ProtocolIE-ContainerPairList
ProcedureID = wmem_strdup_printf(actx->pinfo->pool, "%%s/%%s",
val_to_str(nbap_private_data->procedure_code, VALS(nbap_ProcedureCode_vals), "unknown(%%u)"),
val_to_str(nbap_private_data->dd_mode, VALS(nbap_DdMode_vals), "unknown(%%u)"));
- nbap_private_data->crnc_context_present = FALSE; /*Reset CRNC Com context present flag.*/
+ nbap_private_data->crnc_context_present = false; /*Reset CRNC Com context present flag.*/
#.FN_PARS TransactionID/shortTransActionId VAL_PTR = &nbap_get_private_data(actx->pinfo)->transaction_id
@@ -178,8 +179,8 @@ actx->pinfo->link_dir=P2P_DIR_UL;
address dst_addr;
nbap_setup_conv_t *request_conv;
conversation_t *conv;
-guint32 transportLayerAddress_ipv4;
-guint16 bindingID;
+uint32_t transportLayerAddress_ipv4;
+uint16_t bindingID;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_debug("Frame %%u CommonTransportChannel-InformationResponse Start", actx->pinfo->num);
@@ -581,25 +582,25 @@ actx->pinfo->link_dir=P2P_DIR_UL;
tvbuff_t *final_tvb=NULL;
proto_item *ti;
proto_tree *subtree;
- guint32 segment_type;
+ uint32_t segment_type;
/* reassembly variables */
- gboolean is_short = FALSE;
- guint32 total_bit_size = 0;
- guint32 total_byte_size = 0;
+ bool is_short = false;
+ uint32_t total_bit_size = 0;
+ uint32_t total_byte_size = 0;
nbap_ib_segment_t* nbap_ib_segment;
wmem_list_t *list = NULL;
wmem_list_frame_t *curr_frame;
- guint8 *final_arr;
- guint8 final_byte_off = 0;
- guint8 final_bit_off = 0x80;
- guint8 *source;
- guint32 bit_length;
- guint32 byte_off = 0;
- guint32 bit_off = 0x80;
- guint32 sources_count;
- guint8* data;
- guint32 per_length;
- guint32 first_off;
+ uint8_t *final_arr;
+ uint8_t final_byte_off = 0;
+ uint8_t final_bit_off = 0x80;
+ uint8_t *source;
+ uint32_t bit_length;
+ uint32_t byte_off = 0;
+ uint32_t bit_off = 0x80;
+ uint32_t sources_count;
+ uint8_t* data;
+ uint32_t per_length;
+ uint32_t first_off;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
/* compute aligned PER length*/
@@ -648,7 +649,7 @@ actx->pinfo->link_dir=P2P_DIR_UL;
}
else { /* This is IB_SG_DATA_ENC_VAR_2 */
/* Using the per encoded length */
- data = (guint8*)tvb_memdup(actx->pinfo->pool, parameter_tvb, 0, (per_length + 7)/8);
+ data = (uint8_t*)tvb_memdup(actx->pinfo->pool, parameter_tvb, 0, (per_length + 7)/8);
nbap_ib_segment = wmem_new(actx->pinfo->pool, nbap_ib_segment_t);
nbap_ib_segment->bit_length = per_length;
nbap_ib_segment->data = data;
@@ -675,7 +676,7 @@ actx->pinfo->link_dir=P2P_DIR_UL;
/* Sum all length of all segments */
sources_count = wmem_list_count(list);
curr_frame = wmem_list_head(list);
- for (guint32 src_indx = 0; src_indx < sources_count; src_indx++) {
+ for (uint32_t src_indx = 0; src_indx < sources_count; src_indx++) {
nbap_ib_segment = (nbap_ib_segment_t*)(wmem_list_frame_data(curr_frame));
total_bit_size += nbap_ib_segment->bit_length;
curr_frame = wmem_list_frame_next(curr_frame);
@@ -683,17 +684,17 @@ actx->pinfo->link_dir=P2P_DIR_UL;
/* Create an array large enough for all segments */
total_byte_size = (total_bit_size+7)/8;
- final_arr = wmem_alloc0_array(actx->pinfo->pool,guint8,total_byte_size);
+ final_arr = wmem_alloc0_array(actx->pinfo->pool,uint8_t,total_byte_size);
/* Reassemble all segment into the final array */
curr_frame = wmem_list_head(list);
- for (guint32 src_indx = 0; src_indx < sources_count; src_indx++) {
+ for (uint32_t src_indx = 0; src_indx < sources_count; src_indx++) {
nbap_ib_segment = (nbap_ib_segment_t*)(wmem_list_frame_data(curr_frame));
source = nbap_ib_segment->data;
bit_length = nbap_ib_segment->bit_length;
byte_off = 0;
bit_off = 0x80;
- for (guint32 i=0;i<bit_length;i++) {
+ for (uint32_t i=0;i<bit_length;i++) {
if (((*(source+byte_off)) & bit_off) == bit_off) {
final_arr[final_byte_off] |= final_bit_off;
}
@@ -847,9 +848,9 @@ actx->pinfo->link_dir=P2P_DIR_UL;
tvbuff_t *parameter_tvb=NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
- guint8 *padded_nsap_bytes;
+ uint8_t *padded_nsap_bytes;
tvbuff_t *nsap_tvb;
- gint tvb_len;
+ int tvb_len;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
@@ -874,7 +875,7 @@ actx->pinfo->link_dir=P2P_DIR_UL;
if (tvb_len == 7){
/* Unpadded IPv4 NSAP */
/* Creating a new TVB with padding */
- padded_nsap_bytes = (guint8*) wmem_alloc0(actx->pinfo->pool, 20);
+ padded_nsap_bytes = (uint8_t*) wmem_alloc0(actx->pinfo->pool, 20);
tvb_memcpy(parameter_tvb, padded_nsap_bytes, 0, tvb_len);
nsap_tvb = tvb_new_child_real_data(tvb, padded_nsap_bytes, 20, 20);
add_new_data_source(actx->pinfo, nsap_tvb, "Padded NSAP Data");
@@ -892,31 +893,31 @@ actx->pinfo->link_dir=P2P_DIR_UL;
}
#.FN_BODY PayloadCRC-PresenceIndicator VAL_PTR = &payload_crc_value
-guint32 payload_crc_value;
+uint32_t payload_crc_value;
%(DEFAULT_BODY)s
if(payload_crc_value == 0){
- nbap_get_private_data(actx->pinfo)->dch_crc_present = TRUE;
+ nbap_get_private_data(actx->pinfo)->dch_crc_present = true;
}else{
- nbap_get_private_data(actx->pinfo)->dch_crc_present = FALSE;
+ nbap_get_private_data(actx->pinfo)->dch_crc_present = false;
}
#.FN_PARS DCH-ID VAL_PTR = &nbap_get_private_data(actx->pinfo)->t_dch_id
#.FN_BODY DCH-Specific-FDD-Item/dCH-ID
- guint32 dch_id;
- gint num_dch_in_flow;
+ uint32_t dch_id;
+ int num_dch_in_flow;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 255U, &dch_id, FALSE);
+ 0U, 255U, &dch_id, false);
num_dch_in_flow = nbap_private_data->num_dch_in_flow;
nbap_private_data->dch_id = dch_id;
if(num_dch_in_flow>0){
- guint32 prev_dch_id = nbap_private_data->prev_dch_id;
+ uint32_t prev_dch_id = nbap_private_data->prev_dch_id;
nbap_dch_chnl_info[dch_id].next_dch = 0;
if(prev_dch_id != 0 && prev_dch_id != 0xffffffff && prev_dch_id != dch_id){
nbap_dch_chnl_info[prev_dch_id].next_dch = dch_id;
@@ -927,7 +928,7 @@ guint32 payload_crc_value;
nbap_get_private_data(actx->pinfo)->dch_id = nbap_get_private_data(actx->pinfo)->t_dch_id;
#.FN_BODY CommonPhysicalChannelID VAL_PTR = &commonphysicalchannelid
- guint32 commonphysicalchannelid;
+ uint32_t commonphysicalchannelid;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -937,7 +938,7 @@ guint32 payload_crc_value;
nbap_dch_chnl_info[commonphysicalchannelid].next_dch = 0;
#.FN_BODY CommonTransportChannelID VAL_PTR = &commontransportchannelid
- guint32 commontransportchannelid;
+ uint32_t commontransportchannelid;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -949,9 +950,9 @@ guint32 payload_crc_value;
#.FN_PARS E-DCH-MACdFlow-ID VAL_PTR = &nbap_get_private_data(actx->pinfo)->e_dch_macdflow_id
#.FN_BODY HSDSCH-MACdFlow-ID VAL_PTR = &hsdsch_macdflow_id
- guint32 hsdsch_macdflow_id;
- guint num_items;
- gint* hsdsch_macdflow_ids;
+ uint32_t hsdsch_macdflow_id;
+ unsigned num_items;
+ int* hsdsch_macdflow_ids;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
nbap_private_data->hsdsch_macdflow_id = hsdsch_macdflow_id;
@@ -965,7 +966,7 @@ hsdsch_macdflow_ids[num_items-1] = hsdsch_macdflow_id;
#.FN_BODY BindingID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
- guint16 binding_id_port;
+ uint16_t binding_id_port;
%(DEFAULT_BODY)s
@@ -982,8 +983,8 @@ hsdsch_macdflow_ids[num_items-1] = hsdsch_macdflow_id;
}
#.FN_BODY UL-ScramblingCodeNumber VAL_PTR = &ul_scrambling_code
- guint32 ul_scrambling_code;
- guint32 com_context_id;
+ uint32_t ul_scrambling_code;
+ uint32_t com_context_id;
%(DEFAULT_BODY)s
nbap_get_private_data(actx->pinfo)->ul_scrambling_code = ul_scrambling_code;
com_context_id = nbap_get_private_data(actx->pinfo)->com_context_id;
@@ -997,9 +998,9 @@ conversation_t *conversation;
fp_rach_channel_info_t* fp_rach_channel_info;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int j, num_tf;
-guint32 transportLayerAddress_ipv4;
-guint16 bindingID;
-guint32 common_physical_channel_id;
+uint32_t transportLayerAddress_ipv4;
+uint16_t bindingID;
+uint32_t common_physical_channel_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -1069,7 +1070,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH;
}
#.FN_BODY PICH-Mode VAL_PTR = &PICH_Mode
-guint32 PICH_Mode = 0;
+uint32_t PICH_Mode = 0;
%(DEFAULT_BODY)s
switch(PICH_Mode){
@@ -1095,9 +1096,9 @@ conversation_t *conversation;
fp_pch_channel_info_t *fp_pch_channel_info;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int i, j, num_tf;
-guint32 transportLayerAddress_ipv4;
-guint16 bindingID;
-guint32 common_transport_channel_id;
+uint32_t transportLayerAddress_ipv4;
+uint16_t bindingID;
+uint32_t common_transport_channel_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -1206,9 +1207,9 @@ conversation_t *conversation;
fp_fach_channel_info_t* fp_fach_channel_info;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int i, j, num_tf;
-guint32 transportLayerAddress_ipv4;
-guint16 bindingID;
-guint32 common_physical_channel_id;
+uint32_t transportLayerAddress_ipv4;
+uint16_t bindingID;
+uint32_t common_physical_channel_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -1311,7 +1312,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH;
#.FN_HDR DCH-Specific-FDD-Item/ul-TransportFormatSet
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
- guint32 dch_id = nbap_private_data->dch_id;
+ uint32_t dch_id = nbap_private_data->dch_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
nbap_private_data->transport_format_set_type = NBAP_DCH_UL;
@@ -1321,7 +1322,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH;
#.FN_HDR DCH-Specific-FDD-Item/dl-TransportFormatSet
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
- guint32 dch_id = nbap_private_data->dch_id;
+ uint32_t dch_id = nbap_private_data->dch_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
nbap_private_data->transport_format_set_type = NBAP_DCH_DL;
@@ -1331,7 +1332,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH;
#.FN_HDR DCH-ModifySpecificItem-FDD/ul-TransportFormatSet
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
- guint32 dch_id = nbap_private_data->dch_id;
+ uint32_t dch_id = nbap_private_data->dch_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
nbap_private_data->transport_format_set_type = NBAP_DCH_UL;
@@ -1341,7 +1342,7 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH;
#.FN_HDR DCH-ModifySpecificItem-FDD/dl-TransportFormatSet
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
- guint32 dch_id = nbap_private_data->dch_id;
+ uint32_t dch_id = nbap_private_data->dch_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
nbap_private_data->transport_format_set_type = NBAP_DCH_DL;
@@ -1364,11 +1365,11 @@ nbap_private_data->transport_format_set_type = NBAP_CPCH;
nbap_get_private_data(actx->pinfo)->num_items++;
#.FN_BODY TransportFormatSet-NrOfTransportBlocks VAL_PTR = &NrOfTransportBlocks
-guint32 NrOfTransportBlocks;
-guint num_items;
-guint32 dch_id;
-guint32 common_physical_channel_id;
-guint32 common_transport_channel_id;
+uint32_t NrOfTransportBlocks;
+unsigned num_items;
+uint32_t dch_id;
+uint32_t common_physical_channel_id;
+uint32_t common_transport_channel_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -1409,11 +1410,11 @@ nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
}
#.FN_BODY TransportFormatSet-TransportBlockSize VAL_PTR = &TransportBlockSize
-guint32 TransportBlockSize;
-guint num_items;
-guint32 dch_id;
-guint32 common_physical_channel_id;
-guint32 common_transport_channel_id;
+uint32_t TransportBlockSize;
+unsigned num_items;
+uint32_t dch_id;
+uint32_t common_physical_channel_id;
+uint32_t common_transport_channel_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -1455,9 +1456,9 @@ address dst_addr, null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int i, j, num_tf;
-guint32 transportLayerAddress_ipv4;
-guint16 bindingID;
-guint32 dch_id;
+uint32_t transportLayerAddress_ipv4;
+uint16_t bindingID;
+uint32_t dch_id;
nbap_dch_channel_info_t* nbap_dch_chnl_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_dch_chnl_info = nbap_private_data->nbap_dch_chnl_info;
@@ -1571,9 +1572,9 @@ conversation_t *conversation;
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
fp_edch_channel_info_t* fp_edch_channel_info;
nbap_edch_port_info_t *old_info = NULL;
-guint32 transportLayerAddress_ipv4;
-guint16 bindingID;
-guint32 e_dch_macdflow_id;
+uint32_t transportLayerAddress_ipv4;
+uint16_t bindingID;
+uint32_t e_dch_macdflow_id;
nbap_edch_channel_info_t* nbap_edch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
@@ -1632,7 +1633,7 @@ nbap_private_data->binding_id_port = 0;
expert_add_info(actx->pinfo, NULL, &ei_nbap_no_set_comm_context_id);
}
- /* Check if we allready have this context */
+ /* Check if we already have this context */
e_dch_macdflow_id = nbap_private_data->e_dch_macdflow_id;
if( (old_info = (nbap_edch_port_info_t *)wmem_tree_lookup32(edch_flow_port_map,nbap_private_data->com_context_id)) == NULL ){
nbap_edch_port_info_t * nbap_edch_port_info;
@@ -1676,14 +1677,14 @@ umts_fp_conversation_info_t *p_conv_data = NULL;
fp_edch_channel_info_t* fp_edch_channel_info = NULL;
address null_addr;
conversation_t *p_conv;
-guint32 no_ddi_entries, i;
-guint32 e_dch_macdflow_id;
+uint32_t no_ddi_entries, i;
+uint32_t e_dch_macdflow_id;
nbap_edch_channel_info_t* nbap_edch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
/* Resetting entity recognition flag to check if it's set in this InfoItem */
- nbap_private_data->max_mac_d_pdu_size_ext_ie_present = FALSE;
+ nbap_private_data->max_mac_d_pdu_size_ext_ie_present = false;
%(DEFAULT_BODY)s
if (PINFO_FD_VISITED(actx->pinfo)) {
return offset;
@@ -1722,7 +1723,7 @@ nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
* MAC-i/is => Type 2
* The specifications isn't very clear about the indicator for what entity
* should be used. For now, it seems like the presence of the "Maximum MAC-d PDU Size Extended IE"
- * indicates MAC-i/is and it's absense means MAC-e/es
+ * indicates MAC-i/is and it's absence means MAC-e/es
*/
if(nbap_private_data->max_mac_d_pdu_size_ext_ie_present){
fp_edch_channel_info->edch_type = 1; /* 1 means Type 2 */
@@ -1741,9 +1742,9 @@ conversation_t *conversation,*old_conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info _U_;
fp_edch_channel_info_t* fp_edch_channel_info;
void *conv_proto_data = NULL;
-guint32 transportLayerAddress_ipv4;
-guint16 bindingID;
-guint32 e_dch_macdflow_id;
+uint32_t transportLayerAddress_ipv4;
+uint16_t bindingID;
+uint32_t e_dch_macdflow_id;
nbap_edch_channel_info_t* nbap_edch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
@@ -1820,19 +1821,19 @@ nbap_private_data->binding_id_port = 0;
nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = bindingID;
/*Indicate that the frag table has to be reset*/
- umts_fp_conversation_info->reset_frag = TRUE;
+ 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;
+uint32_t no_ddi_entries, i;
address null_addr;
nbap_edch_port_info_t *old_info;
umts_fp_conversation_info_t *p_conv_data = NULL;
fp_edch_channel_info_t* fp_edch_channel_info;
conversation_t *p_conv;
-guint32 e_dch_macdflow_id;
+uint32_t e_dch_macdflow_id;
nbap_edch_channel_info_t* nbap_edch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
@@ -1905,7 +1906,7 @@ nbap_private_data->num_items = 1;
* MAC-i/is => Type 2
* The specifications isn't very clear about the indicator for what entity
* should be used. For now, it seems like the presence of the "Maximum MAC-d PDU Size Extended IE"
- * indicates MAC-i/is and it's absense means MAC-e/es
+ * indicates MAC-i/is and it's absence means MAC-e/es
*/
if(nbap_private_data->max_mac_d_pdu_size_ext_ie_present){
fp_edch_channel_info->edch_type = 1; /* 1 means Type 2 */
@@ -1933,8 +1934,8 @@ nbap_edch_channel_info[nbap_private_data->e_dch_macdflow_id].no_ddi_entries = nb
nbap_get_private_data(actx->pinfo)->num_items++;
#.FN_BODY E-DCH-DDI-Value VAL_PTR = &e_dch_ddi_value
- guint32 e_dch_ddi_value;
- guint num_items;
+ uint32_t e_dch_ddi_value;
+ unsigned num_items;
nbap_edch_channel_info_t* nbap_edch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
@@ -1950,8 +1951,8 @@ nbap_edch_channel_info[nbap_private_data->e_dch_macdflow_id].no_ddi_entries = nb
nbap_edch_channel_info[nbap_private_data->e_dch_macdflow_id].edch_ddi[num_items-1] = nbap_private_data->e_dch_ddi_value;
#.FN_BODY MACdPDU-Size VAL_PTR = &mac_d_pdu_size
-guint32 mac_d_pdu_size;
-guint num_items;
+uint32_t mac_d_pdu_size;
+unsigned num_items;
nbap_edch_channel_info_t* nbap_edch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
@@ -1967,8 +1968,8 @@ nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
nbap_edch_channel_info[nbap_private_data->e_dch_macdflow_id].edch_macd_pdu_size[num_items-1] = nbap_private_data->mac_d_pdu_size;
#.FN_BODY LogicalChannelID VAL_PTR = &logical_channel_id
- guint32 logical_channel_id;
- guint num_items;
+ uint32_t logical_channel_id;
+ unsigned num_items;
nbap_edch_channel_info_t* nbap_edch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
@@ -1981,7 +1982,7 @@ nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
nbap_edch_channel_info[nbap_private_data->e_dch_macdflow_id].lchId[num_items-1] = nbap_private_data->logical_channel_id;
#.FN_BODY RLC-Mode VAL_PTR = &rlc_mode
- guint32 rlc_mode;
+ uint32_t rlc_mode;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_hsdsch_channel_info = nbap_private_data->nbap_hsdsch_channel_info;
@@ -2000,7 +2001,7 @@ nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
}
#.FN_BODY UE-Capability-Information/hSDSCH-Physical-Layer-Category VAL_PTR = &hsdsch_physical_layer_category
- guint32 hsdsch_physical_layer_category;
+ uint32_t hsdsch_physical_layer_category;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_hsdsch_channel_info = nbap_private_data->nbap_hsdsch_channel_info;
@@ -2011,7 +2012,7 @@ nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
#.FN_BODY HSDSCH-MACdFlows-Information
int protocol_ie_id;
- guint32 i;
+ uint32_t i;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_private_data->num_items = 0;
protocol_ie_id = nbap_private_data->protocol_ie_id;
@@ -2060,9 +2061,9 @@ nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
#.FN_BODY HSDSCH-MACdFlow-Specific-InfoItem
address dst_addr;
- guint32 transportLayerAddress_ipv4;
- guint16 bindingID;
- guint32 hsdsch_macdflow_id;
+ uint32_t transportLayerAddress_ipv4;
+ uint16_t bindingID;
+ uint32_t hsdsch_macdflow_id;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
nbap_hsdsch_channel_info = nbap_private_data->nbap_hsdsch_channel_info;
@@ -2086,11 +2087,11 @@ nbap_edch_channel_info = nbap_private_data->nbap_edch_channel_info;
nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = bindingID;
#.FN_BODY MAC-PDU-SizeExtended
-guint32 hsdsch_macdflow_id;
+uint32_t hsdsch_macdflow_id;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_channel_info;
%(DEFAULT_BODY)s
- nbap_get_private_data(actx->pinfo)->max_mac_d_pdu_size_ext_ie_present = TRUE;
+ nbap_get_private_data(actx->pinfo)->max_mac_d_pdu_size_ext_ie_present = true;
hsdsch_macdflow_id = nbap_get_private_data(actx->pinfo)->hsdsch_macdflow_id;
if(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port != 0){
nbap_hsdsch_channel_info[hsdsch_macdflow_id].entity = ehs;
@@ -2104,7 +2105,7 @@ nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_chann
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
- guint32 i;
+ uint32_t i;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_channel_info;
@@ -2194,8 +2195,8 @@ nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_chann
#.FN_BODY HSDSCH-MACdFlow-Specific-InfoItem-to-Modify
address dst_addr;
- guint32 transportLayerAddress_ipv4;
- guint16 bindingID;
+ uint32_t transportLayerAddress_ipv4;
+ uint16_t bindingID;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_private_data->transportLayerAddress_ipv4 = 0;
nbap_private_data->binding_id_port = 0;
@@ -2226,7 +2227,7 @@ nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_chann
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
- guint32 i;
+ uint32_t i;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_channel_info;
@@ -2315,7 +2316,7 @@ nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_chann
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;
+ umts_fp_conversation_info->reset_frag = true;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -2332,9 +2333,9 @@ nbap_hsdsch_channel_info = nbap_get_private_data(actx->pinfo)->nbap_hsdsch_chann
/*THIS STUFF IST NOT DONE YET!*/
#.FN_BODY CommonMACFlow-Specific-InfoItem
address dst_addr;
- guint32 transportLayerAddress_ipv4;
- guint16 bindingID;
- guint32 common_macdflow_id;
+ uint32_t transportLayerAddress_ipv4;
+ uint16_t bindingID;
+ uint32_t common_macdflow_id;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
nbap_private_data->transportLayerAddress_ipv4 = 0;
nbap_private_data->binding_id_port = 0;
@@ -2444,14 +2445,14 @@ int i;
#
#.FN_BODY CRNC-CommunicationContextID VAL_PTR = &com_context_id
-guint32 com_context_id;
+uint32_t com_context_id;
%(DEFAULT_BODY)s
nbap_get_private_data(actx->pinfo)->com_context_id = com_context_id;
-nbap_get_private_data(actx->pinfo)->crnc_context_present = TRUE;
+nbap_get_private_data(actx->pinfo)->crnc_context_present = true;
#.FN_BODY NodeB-CommunicationContextID VAL_PTR = &node_b_com_context_id
- gboolean crnc_context_present;
- guint node_b_com_context_id;
+ bool crnc_context_present;
+ unsigned node_b_com_context_id;
nbap_com_context_id_t *cur_val;
nbap_private_data_t* nbap_private_data = nbap_get_private_data(actx->pinfo);
@@ -2480,12 +2481,12 @@ nbap_get_private_data(actx->pinfo)->crnc_context_present = TRUE;
if(cur_val != NULL){
/* A mapping was found. Adding to prvivate data. */
nbap_private_data->com_context_id = cur_val->crnc_context;
- nbap_private_data->crnc_context_present = TRUE;
+ nbap_private_data->crnc_context_present = true;
}
}
#.FN_BODY HSDSCH-RNTI VAL_PTR = &hrnti
- gint hrnti;
+ int hrnti;
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
address null_addr;
@@ -2502,7 +2503,7 @@ nbap_hsdsch_channel_info = nbap_private_data->nbap_hsdsch_channel_info;
return offset;
}
- /*Find the conversations assoicated with the HS-DSCH flows in this packet and set proper H-RNTI*/
+ /*Find the conversations associated 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){
diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.c b/epan/dissectors/asn1/nbap/packet-nbap-template.c
index 4e62365f..4c8513c0 100644
--- a/epan/dissectors/asn1/nbap/packet-nbap-template.c
+++ b/epan/dissectors/asn1/nbap/packet-nbap-template.c
@@ -21,6 +21,7 @@
#include <epan/prefs.h>
#include <epan/proto_data.h>
#include <epan/uat.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-isup.h"
@@ -60,25 +61,25 @@ static dissector_handle_t fp_handle;
#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;
-static int hf_nbap_reassembled_information_block = -1;
+static int proto_nbap;
+static int hf_nbap_transportLayerAddress_ipv4;
+static int hf_nbap_transportLayerAddress_ipv6;
+static int hf_nbap_transportLayerAddress_nsap;
+static int hf_nbap_reassembled_information_block;
#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;
+static int ett_nbap;
+static int ett_nbap_TransportLayerAddress;
+static int ett_nbap_TransportLayerAddress_nsap;
+static int ett_nbap_ib_sg_data;
#include "packet-nbap-ett.c"
-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;
+static expert_field ei_nbap_no_find_port_info;
+static expert_field ei_nbap_no_set_comm_context_id;
+static expert_field ei_nbap_hsdsch_entity_not_specified;
extern int proto_fp;
@@ -92,12 +93,12 @@ static dissector_handle_t nbap_handle;
*/
typedef struct nbap_setup_conv
{
- guint32 transaction_id;
- guint32 dd_mode;
- guint32 channel_id;
- guint32 request_frame_number;
+ uint32_t transaction_id;
+ uint32_t dd_mode;
+ uint32_t channel_id;
+ uint32_t request_frame_number;
address addr;
- guint32 port;
+ uint32_t port;
umts_fp_conversation_info_t *umts_fp_conversation_info;
conversation_t *conv;
}nbap_setup_conv_t;
@@ -110,14 +111,14 @@ static wmem_map_t *nbap_setup_conv_table;
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];
+ int num_dch_in_flow;
+ int next_dch;
+ int num_ul_chans;
+ int ul_chan_tf_size[MAX_FP_CHANS];
+ int ul_chan_num_tbs[MAX_FP_CHANS];
+ int num_dl_chans;
+ int dl_chan_tf_size[MAX_FP_CHANS];
+ int dl_chan_num_tbs[MAX_FP_CHANS];
}nbap_dch_channel_info_t;
/* Struct to collect E-DCH data in a packet
@@ -128,42 +129,42 @@ typedef struct
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.*/
+ uint16_t crnc_port;
+ int no_ddi_entries;
+ uint8_t edch_ddi[MAX_EDCH_DDIS];
+ unsigned edch_macd_pdu_size[MAX_EDCH_DDIS];
+ uint8_t edch_type; /* 1 means T2 */
+ uint8_t lchId[MAX_EDCH_DDIS]; /*Logical channel ids.*/
} nbap_edch_channel_info_t;
typedef struct
{
- guint32 crnc_address;
- guint16 crnc_port[maxNrOfEDCHMACdFlows];
+ uint32_t crnc_address;
+ uint16_t crnc_port[maxNrOfEDCHMACdFlows];
} nbap_edch_port_info_t;
typedef struct
{
address crnc_address;
- guint16 crnc_port;
+ uint16_t 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 == ?*/
+ uint32_t hsdsch_physical_layer_category;
+ uint8_t entity; /* "ns" means type 1 and "ehs" means type 2, type 3 == ?*/
} nbap_hsdsch_channel_info_t;
typedef struct
{
address crnc_address;
- guint16 crnc_port;
+ uint16_t crnc_port;
enum fp_rlc_mode rlc_mode;
} nbap_common_channel_info_t;
-/*Stuff for mapping NodeB-Comuncation Context ID to CRNC Communication Context ID*/
+/*Stuff for mapping NodeB-Communication Context ID to CRNC Communication Context ID*/
typedef struct com_ctxt_{
- /*guint nodeb_context;*/
- guint crnc_context;
- guint frame_num;
+ /*unsigned nodeb_context;*/
+ unsigned crnc_context;
+ unsigned frame_num;
}nbap_com_context_id_t;
enum TransportFormatSet_type_enum
@@ -178,25 +179,25 @@ enum TransportFormatSet_type_enum
#define NBAP_MAX_IB_SEGMENT_LENGTH 222
typedef struct nbap_ib_segment_t {
- guint32 bit_length;
- guint8* data;
+ uint32_t bit_length;
+ uint8_t* data;
} nbap_ib_segment_t;
-static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(packet_info *pinfo, tvbuff_t *tvb,gboolean is_short)
+static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(packet_info *pinfo, tvbuff_t *tvb,bool is_short)
{
- guint8 bit_length;
- guint8* data;
+ uint8_t bit_length;
+ uint8_t* data;
nbap_ib_segment_t* output;
if ( tvb_captured_length(tvb) < 2 ) {
return NULL;
}
if (is_short) {
- bit_length = tvb_get_guint8(tvb,0) + 1;
- data = (guint8*)tvb_memdup(pinfo->pool,tvb,1,(bit_length+7)/8);
+ bit_length = tvb_get_uint8(tvb,0) + 1;
+ data = (uint8_t*)tvb_memdup(pinfo->pool,tvb,1,(bit_length+7)/8);
}
else {
bit_length = NBAP_MAX_IB_SEGMENT_LENGTH;
- data = (guint8*)tvb_memdup(pinfo->pool,tvb,0,(bit_length+7)/8);
+ data = (uint8_t*)tvb_memdup(pinfo->pool,tvb,0,(bit_length+7)/8);
}
output = wmem_new(pinfo->pool, nbap_ib_segment_t);
output->bit_length = bit_length;
@@ -213,39 +214,39 @@ static nbap_ib_segment_t* nbap_parse_ib_sg_data_var1(packet_info *pinfo, tvbuff_
typedef struct nbap_private_data_t
{
- guint32 transportLayerAddress_ipv4;
- guint16 binding_id_port;
+ uint32_t transportLayerAddress_ipv4;
+ uint16_t binding_id_port;
enum TransportFormatSet_type_enum transport_format_set_type;
- guint32 procedure_code;
- guint num_items;
- guint32 ul_scrambling_code;
- guint32 com_context_id;
- gint num_dch_in_flow;
- gint hrnti;
- guint32 protocol_ie_id;
- guint32 dd_mode;
- guint32 transaction_id;
- guint32 t_dch_id;
- guint32 dch_id;
- guint32 prev_dch_id;
- guint32 common_physical_channel_id;
- guint32 e_dch_macdflow_id;
- guint32 hsdsch_macdflow_id;
- gboolean max_mac_d_pdu_size_ext_ie_present;
- guint32 e_dch_ddi_value;
- guint32 logical_channel_id;
- guint32 common_macdflow_id;
- guint32 mac_d_pdu_size;
- guint32 common_transport_channel_id;
- gint paging_indications;
- guint32 ib_type;
- guint32 segment_type;
- gboolean crnc_context_present; /* Whether 'com_context_id' is set */
- guint8 dch_crc_present;
+ uint32_t procedure_code;
+ unsigned num_items;
+ uint32_t ul_scrambling_code;
+ uint32_t com_context_id;
+ int num_dch_in_flow;
+ int hrnti;
+ uint32_t protocol_ie_id;
+ uint32_t dd_mode;
+ uint32_t transaction_id;
+ uint32_t t_dch_id;
+ uint32_t dch_id;
+ uint32_t prev_dch_id;
+ uint32_t common_physical_channel_id;
+ uint32_t e_dch_macdflow_id;
+ uint32_t hsdsch_macdflow_id;
+ bool max_mac_d_pdu_size_ext_ie_present;
+ uint32_t e_dch_ddi_value;
+ uint32_t logical_channel_id;
+ uint32_t common_macdflow_id;
+ uint32_t mac_d_pdu_size;
+ uint32_t common_transport_channel_id;
+ int paging_indications;
+ uint32_t ib_type;
+ uint32_t segment_type;
+ bool crnc_context_present; /* Whether 'com_context_id' is set */
+ uint8_t dch_crc_present;
/* Arrays */
nbap_dch_channel_info_t nbap_dch_chnl_info[256];
nbap_edch_channel_info_t nbap_edch_channel_info[maxNrOfEDCHMACdFlows];
- gint hsdsch_macdflow_ids[maxNrOfMACdFlows];
+ int hsdsch_macdflow_ids[maxNrOfMACdFlows];
nbap_hsdsch_channel_info_t nbap_hsdsch_channel_info[maxNrOfMACdFlows];
nbap_common_channel_info_t nbap_common_channel_info[maxNrOfMACdFlows]; /*TODO: Fix this!*/
wmem_list_t* ib_segments; /* Information block segments */
@@ -255,7 +256,7 @@ typedef struct nbap_private_data_t
/* Helper function to get or create a private_data struct */
static nbap_private_data_t* nbap_get_private_data(packet_info *pinfo)
{
- guint8 i;
+ uint8_t i;
/* NOTE: Unlike other ASN.1 dissectors which store information in
* actx->private_data the NBAP dissector can't do so because some fields
* are defined as their own 'PDU' (Like BindingID and TransportLayerAddress)
@@ -269,7 +270,7 @@ static nbap_private_data_t* nbap_get_private_data(packet_info *pinfo)
p_add_proto_data(pinfo->pool, pinfo, proto_nbap, 0, private_data);
/* Setting default values */
private_data->hsdsch_macdflow_id = 3;
- private_data->crnc_context_present = FALSE;
+ private_data->crnc_context_present = false;
private_data->procedure_code = 0xFFFF;
private_data->dd_mode = 0xFFFF;
private_data->dch_crc_present = 2; /* Unknown */
@@ -292,16 +293,16 @@ static void nbap_reset_private_data(packet_info *pinfo)
/* Global Variables */
/* Variables for sub elements dissection */
-static const gchar *ProcedureID;
+static const char *ProcedureID;
/* Trees */
-static wmem_tree_t* edch_flow_port_map = NULL;
-wmem_tree_t *nbap_scrambling_code_crncc_map = NULL;
-wmem_tree_t *nbap_crncc_urnti_map = NULL;
+static wmem_tree_t* edch_flow_port_map;
+wmem_tree_t *nbap_scrambling_code_crncc_map;
+wmem_tree_t *nbap_crncc_urnti_map;
static wmem_tree_t* com_context_map;
/* This table is used externally from FP, MAC and such, TODO: merge this with
* lch_contents[] */
-guint8 lchId_type_table[]= {
+uint8_t lchId_type_table[]= {
MAC_CONTENT_UNKNOWN, /* Shouldn't happen*/
MAC_CONTENT_DCCH, /* 1 to 4 SRB => DCCH*/
MAC_CONTENT_DCCH,
@@ -321,7 +322,7 @@ guint8 lchId_type_table[]= {
};
/* Mapping logicalchannel id to RLC_MODE */
-guint8 lchId_rlc_map[] = {
+uint8_t lchId_rlc_map[] = {
0,
RLC_UM, /* Logical channel id = 1 is SRB1 which uses RLC_UM*/
RLC_AM,
@@ -408,7 +409,7 @@ static const enum_val_t ib_sg_enc_vals[] = {
{NULL, NULL, -1}
};
-static gint preferences_ib_sg_data_encoding = IB_SG_DATA_ENC_VAR_1;
+static int preferences_ib_sg_data_encoding = IB_SG_DATA_ENC_VAR_1;
/* Dissector tables */
static dissector_table_t nbap_ies_dissector_table;
@@ -423,10 +424,10 @@ static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, pro
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 guint32 calculate_setup_conv_key(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id);
-static void add_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number,
- const address *addr, const guint32 port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv);
-static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id);
+static uint32_t calculate_setup_conv_key(const uint32_t transaction_id, const uint32_t dd_mode, const uint32_t channel_id);
+static void add_setup_conv(const packet_info *pinfo _U_, const uint32_t transaction_id, const uint32_t dd_mode, const uint32_t channel_id, const uint32_t req_frame_number,
+ const address *addr, const uint32_t port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv);
+static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const uint32_t transaction_id, const uint32_t dd_mode, const uint32_t channel_id);
static void delete_setup_conv(nbap_setup_conv_t *conv);
/*Easy way to add hsdhsch binds for corner cases*/
@@ -436,16 +437,16 @@ static void add_hsdsch_bind(packet_info * pinfo);
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- guint32 protocol_ie_id;
+ uint32_t protocol_ie_id;
protocol_ie_id = nbap_get_private_data(pinfo)->protocol_ie_id;
- return (dissector_try_uint_new(nbap_ies_dissector_table, protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(nbap_ies_dissector_table, protocol_ie_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_)
{
- guint32 protocol_ie_id;
+ uint32_t protocol_ie_id;
protocol_ie_id = nbap_get_private_data(pinfo)->protocol_ie_id;
- return (dissector_try_uint_new(nbap_extension_dissector_table, protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(nbap_extension_dissector_table, protocol_ie_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_)
@@ -470,7 +471,7 @@ static void add_hsdsch_bind(packet_info *pinfo){
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
- guint32 i;
+ uint32_t i;
nbap_private_data_t* nbap_private_data;
nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
@@ -541,14 +542,14 @@ static void add_hsdsch_bind(packet_info *pinfo){
/*
* Function used to manage conversation declared in Setup Request/Response message
*/
-static guint32 calculate_setup_conv_key(const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id)
+static uint32_t calculate_setup_conv_key(const uint32_t transaction_id, const uint32_t dd_mode, const uint32_t channel_id)
{
/* We need to pack 3 values on 32 bits:
* 31-16 transaction_id
* 15-14 dd_mode
* 13-0 channel_id
*/
- guint32 key;
+ uint32_t key;
key = transaction_id << 16;
key |= (dd_mode & 0x03) << 14;
key |= (channel_id & 0x3fff);
@@ -556,11 +557,11 @@ static guint32 calculate_setup_conv_key(const guint32 transaction_id, const guin
return key;
}
-static void add_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id, const guint32 req_frame_number,
- const address *addr, const guint32 port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv)
+static void add_setup_conv(const packet_info *pinfo _U_, const uint32_t transaction_id, const uint32_t dd_mode, const uint32_t channel_id, const uint32_t req_frame_number,
+ const address *addr, const uint32_t port, umts_fp_conversation_info_t * umts_fp_conversation_info, conversation_t *conv)
{
nbap_setup_conv_t *new_conv = NULL;
- guint32 key;
+ uint32_t key;
nbap_debug("Creating new setup conv\t TransactionID: %u\tddMode: %u\tChannelID: %u\t %s:%u",
transaction_id, dd_mode, channel_id, address_to_str(pinfo->pool, addr), port);
@@ -582,10 +583,10 @@ static void add_setup_conv(const packet_info *pinfo _U_, const guint32 transacti
wmem_map_insert(nbap_setup_conv_table, GUINT_TO_POINTER(key), new_conv);
}
-static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const guint32 transaction_id, const guint32 dd_mode, const guint32 channel_id)
+static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const uint32_t transaction_id, const uint32_t dd_mode, const uint32_t channel_id)
{
nbap_setup_conv_t *conv;
- guint32 key;
+ uint32_t key;
nbap_debug("Looking for Setup Conversation match\t TransactionID: %u\t ddMode: %u\t ChannelID: %u", transaction_id, dd_mode, channel_id);
key = calculate_setup_conv_key(transaction_id, dd_mode, channel_id);
@@ -604,7 +605,7 @@ static nbap_setup_conv_t* find_setup_conv(const packet_info *pinfo _U_, const gu
static void delete_setup_conv(nbap_setup_conv_t *conv)
{
- guint32 key;
+ uint32_t key;
/* check if conversation exist */
if(conv == NULL){
@@ -616,18 +617,10 @@ static void delete_setup_conv(nbap_setup_conv_t *conv)
}
static void nbap_init(void){
- guint8 i;
- /*Initialize*/
- com_context_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
-
- /*Initialize structure for muxed flow indication*/
- edch_flow_port_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+ uint8_t i;
/*Initialize Setup Conversation hash table*/
nbap_setup_conv_table = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
- /*Initializing Scrambling Code to C-RNC Context & C-RNC Context to U-RNTI maps*/
- nbap_scrambling_code_crncc_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
- nbap_crncc_urnti_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
for (i = 0; i < 15; i++) {
lchId_type_table[i+1] = lch_contents[i];
@@ -655,50 +648,50 @@ dissect_nbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
/* Highest ProcedureCode value, used in heuristics */
#define NBAP_MAX_PC 56 /* id-secondaryULFrequencyUpdate = 56*/
#define NBAP_MSG_MIN_LENGTH 7
-static gboolean
+static bool
dissect_nbap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
- guint8 pdu_type;
- guint8 procedure_id;
- guint8 dd_mode;
- guint8 criticality;
- guint8 transaction_id_type;
- guint length;
+ uint8_t pdu_type;
+ uint8_t procedure_id;
+ uint8_t dd_mode;
+ uint8_t criticality;
+ uint8_t transaction_id_type;
+ unsigned length;
int length_field_offset;
#define PDU_TYPE_OFFSET 0
#define PROC_CODE_OFFSET 1
#define DD_CRIT_OFFSET 2
if (tvb_captured_length(tvb) < NBAP_MSG_MIN_LENGTH) {
- return FALSE;
+ return false;
}
- pdu_type = tvb_get_guint8(tvb, PDU_TYPE_OFFSET);
+ pdu_type = tvb_get_uint8(tvb, PDU_TYPE_OFFSET);
if (pdu_type & 0x1f) {
/* pdu_type is not 0x00 (initiatingMessage), 0x20 (succesfulOutcome),
0x40 (unsuccesfulOutcome) or 0x60 (outcome), ignore extension bit (0x80) */
- return FALSE;
+ return false;
}
- procedure_id = tvb_get_guint8(tvb, PROC_CODE_OFFSET);
+ procedure_id = tvb_get_uint8(tvb, PROC_CODE_OFFSET);
if (procedure_id > NBAP_MAX_PC) {
- return FALSE;
+ return false;
}
- dd_mode = tvb_get_guint8(tvb, DD_CRIT_OFFSET) >> 5;
+ dd_mode = tvb_get_uint8(tvb, DD_CRIT_OFFSET) >> 5;
if (dd_mode >= 0x03) {
/* dd_mode is not 0x00 (tdd), 0x01 (fdd) or 0x02 (common) */
- return FALSE;
+ return false;
}
- criticality = (tvb_get_guint8(tvb, DD_CRIT_OFFSET) & 0x18) >> 3;
+ criticality = (tvb_get_uint8(tvb, DD_CRIT_OFFSET) & 0x18) >> 3;
if (criticality == 0x03) {
/* criticality is not 0x00 (reject), 0x01 (ignore) or 0x02 (notify) */
- return FALSE;
+ return false;
}
/* Finding the offset for the length field - depends on wether the transaction id is long or short */
- transaction_id_type = (tvb_get_guint8(tvb, DD_CRIT_OFFSET) & 0x02) >> 1;
+ transaction_id_type = (tvb_get_uint8(tvb, DD_CRIT_OFFSET) & 0x02) >> 1;
if(transaction_id_type == 0x00) { /* Short transaction id - 1 byte*/
length_field_offset = 4;
}
@@ -708,32 +701,32 @@ dissect_nbap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
/* compute aligned PER length determinant without calling dissect_per_length_determinant()
to avoid exceptions and info added to tree, info column and expert info */
- length = tvb_get_guint8(tvb, length_field_offset);
+ length = tvb_get_uint8(tvb, length_field_offset);
length_field_offset += 1;
if (length & 0x80) {
if ((length & 0xc0) == 0x80) {
length &= 0x3f;
length <<= 8;
- length += tvb_get_guint8(tvb, length_field_offset);
+ length += tvb_get_uint8(tvb, length_field_offset);
length_field_offset += 1;
} else {
length = 0;
}
}
if (length!= (tvb_reported_length(tvb) - length_field_offset)){
- return FALSE;
+ return false;
}
dissect_nbap(tvb, pinfo, tree, data);
- return TRUE;
+ return true;
}
/*--- proto_register_nbap -------------------------------------------*/
void proto_register_nbap(void)
{
module_t *nbap_module;
- guint8 i;
+ uint8_t i;
/* List of fields */
static hf_register_info hf[] = {
@@ -757,7 +750,7 @@ void proto_register_nbap(void)
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_nbap,
&ett_nbap_TransportLayerAddress,
&ett_nbap_TransportLayerAddress_nsap,
@@ -788,12 +781,12 @@ void proto_register_nbap(void)
/* 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);
+ prefs_register_enum_preference(nbap_module, ch_strings[i].name, ch_strings[i].title, ch_strings[i].description, &lch_contents[i], content_types, false);
}
prefs_register_enum_preference(nbap_module, "ib_sg_data_encoding",
"IB_SG_DATA encoding",
"Encoding used for the IB-SG-DATA element carrying segments of information blocks",
- &preferences_ib_sg_data_encoding, ib_sg_enc_vals, FALSE);
+ &preferences_ib_sg_data_encoding, ib_sg_enc_vals, false);
/* Register dissector tables */
nbap_ies_dissector_table = register_dissector_table("nbap.ies", "NBAP-PROTOCOL-IES", proto_nbap, FT_UINT32, BASE_DEC);
@@ -803,6 +796,15 @@ void proto_register_nbap(void)
nbap_proc_uout_dissector_table = register_dissector_table("nbap.proc.uout", "NBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_nbap, FT_STRING, STRING_CASE_SENSITIVE);
register_init_routine(nbap_init);
+
+ com_context_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+
+ /*Initialize structure for muxed flow indication*/
+ edch_flow_port_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+
+ /*Initializing Scrambling Code to C-RNC Context & C-RNC Context to U-RNTI maps*/
+ nbap_scrambling_code_crncc_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+ nbap_crncc_urnti_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
}
/*
diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.h b/epan/dissectors/asn1/nbap/packet-nbap-template.h
index a19d11af..f3170080 100644
--- a/epan/dissectors/asn1/nbap/packet-nbap-template.h
+++ b/epan/dissectors/asn1/nbap/packet-nbap-template.h
@@ -20,10 +20,10 @@
/*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[];
+extern uint8_t lchId_type_table[];
/* Mapping logicalchannel id to RLC_MODE */
-extern guint8 lchId_rlc_map[];
+extern uint8_t lchId_rlc_map[];
/* Mapping Scrambling Codes to C-RNC Contexts */
extern wmem_tree_t *nbap_scrambling_code_crncc_map;
diff --git a/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn b/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn
index e739dd03..838e7869 100644
--- a/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.5.0 (2023-06)
+-- 3GPP TS 38.413 V18.2.0 (2024-06)
-- 9.4.6 Common Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/ngap/NGAP-Constants.asn b/epan/dissectors/asn1/ngap/NGAP-Constants.asn
index 70f31a86..2988c96f 100644
--- a/epan/dissectors/asn1/ngap/NGAP-Constants.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.5.0 (2023-06)
+-- 3GPP TS 38.413 V18.2.0 (2024-06)
-- 9.4.7 Constant Definitions
-- **************************************************************
--
@@ -109,6 +109,13 @@ id-MulticastSessionDeactivation ProcedureCode ::= 72
id-MulticastSessionUpdate ProcedureCode ::= 73
id-MulticastGroupPaging ProcedureCode ::= 74
id-BroadcastSessionReleaseRequired ProcedureCode ::= 75
+id-TimingSynchronisationStatus ProcedureCode ::= 76
+id-TimingSynchronisationStatusReport ProcedureCode ::= 77
+id-MTCommunicationHandling ProcedureCode ::= 78
+id-RANPagingRequest ProcedureCode ::= 79
+id-BroadcastSessionTransport ProcedureCode ::= 80
+
+
-- **************************************************************
--
@@ -179,6 +186,7 @@ maxProtocolIEs INTEGER ::= 65535
maxnoofRecommendedCells INTEGER ::= 16
maxnoofRecommendedRANNodes INTEGER ::= 16
maxnoofAoI INTEGER ::= 64
+ maxnoofAoIMinusOne INTEGER ::= 63
maxnoofReportedCells INTEGER ::= 256
maxnoofSensorName INTEGER ::= 3
maxnoofServedGUAMIs INTEGER ::= 256
@@ -196,6 +204,7 @@ maxProtocolIEs INTEGER ::= 65535
maxnoofTimePeriods INTEGER ::= 2
maxnoofTNLAssociations INTEGER ::= 32
maxnoofUEsforPaging INTEGER ::= 4096
+ maxnoofUETypes INTEGER ::= 8
maxnoofWLANName INTEGER ::= 4
maxnoofXnExtTLAs INTEGER ::= 16
maxnoofXnGTP-TLAs INTEGER ::= 16
@@ -209,6 +218,17 @@ maxProtocolIEs INTEGER ::= 65535
maxnoofSNSSAIforQMC INTEGER ::= 16
maxnoofTAforQMC INTEGER ::= 8
maxnoofThresholdsForExcessPacketDelay INTEGER ::= 255
+ maxnoofESNPNs INTEGER ::= 15
+ maxnoofCandidateRelayUEs INTEGER ::= 32
+ maxnoofSuccessfulPSCellChangeReports INTEGER ::= 64
+ maxnoofCellsTSS INTEGER ::= 16384
+ maxnoofPeriodicities INTEGER ::= 8
+ maxnoofCAGforMDT INTEGER ::= 256
+ maxnoofMDTSNPNs INTEGER ::= 16
+ maxnoofPartiallyAllowedS-NSSAIs INTEGER ::= 8
+ maxnoofRSPPQoSFlows INTEGER ::= 2048
+
+
-- **************************************************************
--
@@ -561,7 +581,7 @@ maxProtocolIEs INTEGER ::= 65535
id-M6ReportAmount ProtocolIE-ID ::= 338
id-M7ReportAmount ProtocolIE-ID ::= 339
id-IncludeBeamMeasurementsIndication ProtocolIE-ID ::= 340
- id-ExcessPacketDelayThresholdConfiguration ProtocolIE-ID ::= 341
+ id-ExcessPacketDelayThresholdConfiguration ProtocolIE-ID ::= 341
id-PagingCause ProtocolIE-ID ::= 342
id-PagingCauseIndicationForVoiceService ProtocolIE-ID ::= 343
id-PEIPSassistanceInformation ProtocolIE-ID ::= 344
@@ -586,6 +606,81 @@ maxProtocolIEs INTEGER ::= 65535
id-GlobalCable-ID-new ProtocolIE-ID ::= 363
id-TargetHomeENB-ID ProtocolIE-ID ::= 364
id-HashedUEIdentityIndexValue ProtocolIE-ID ::= 365
+ id-ExtendedMobilityInformation ProtocolIE-ID ::= 366
+ id-NetworkControlledRepeaterAuthorized ProtocolIE-ID ::= 367
+ id-AdditionalCancelledlocationReportingReferenceIDList ProtocolIE-ID ::= 368
+ id-Selected-Target-SNPN-Identity ProtocolIE-ID ::= 369
+ id-EquivalentSNPNsList ProtocolIE-ID ::= 370
+ id-SelectedNID ProtocolIE-ID ::= 371
+ id-SupportedUETypeList ProtocolIE-ID ::= 372
+ id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 373
+ id-NR-A2X-ServicesAuthorized ProtocolIE-ID ::= 374
+ id-LTE-A2X-ServicesAuthorized ProtocolIE-ID ::= 375
+ id-NR-A2X-UE-PC5-AggregateMaximumBitRate ProtocolIE-ID ::= 376
+ id-LTE-A2X-UE-PC5-AggregateMaximumBitRate ProtocolIE-ID ::= 377
+ id-A2X-PC5-QoS-Parameters ProtocolIE-ID ::= 378
+ id-FiveGProSeLayer2Multipath ProtocolIE-ID ::= 379
+ id-FiveGProSeLayer2UEtoUERelay ProtocolIE-ID ::= 380
+ id-FiveGProSeLayer2UEtoUERemote ProtocolIE-ID ::= 381
+ id-CandidateRelayUEInformationList ProtocolIE-ID ::= 382
+ id-SuccessfulPSCellChangeReportList ProtocolIE-ID ::= 383
+ id-IntersystemMobilityFailureforVoiceFallback ProtocolIE-ID ::= 384
+ id-TargetCellCRNTI ProtocolIE-ID ::= 385
+ id-TimeSinceFailure ProtocolIE-ID ::= 386
+ id-RANTimingSynchronisationStatusInfo ProtocolIE-ID ::= 387
+ id-RAN-TSSRequestType ProtocolIE-ID ::= 388
+ id-RAN-TSSScope ProtocolIE-ID ::= 389
+ id-ClockQualityReportingControlInfo ProtocolIE-ID ::= 390
+ id-RANfeedbacktype ProtocolIE-ID ::= 391
+ id-QoSFlowTSCList ProtocolIE-ID ::= 392
+ id-TSCTrafficCharacteristicsFeedback ProtocolIE-ID ::= 393
+ id-DownlinkTLContainer ProtocolIE-ID ::= 394
+ id-UplinkTLContainer ProtocolIE-ID ::= 395
+ id-ANPacketDelayBudgetUL ProtocolIE-ID ::= 396
+ id-QosFlowAdditionalInfoList ProtocolIE-ID ::= 397
+ id-AssistanceInformationQoE-Meas ProtocolIE-ID ::= 398
+ id-MBSCommServiceType ProtocolIE-ID ::= 399
+ id-MobileIAB-Authorized ProtocolIE-ID ::= 400
+ id-MobileIAB-MTUserLocationInformation ProtocolIE-ID ::= 401
+ id-MobileIABNodeIndication ProtocolIE-ID ::= 402
+ id-NoPDUSessionIndication ProtocolIE-ID ::= 403
+ id-MobileIAB-Supported ProtocolIE-ID ::= 404
+ id-CN-MT-CommunicationHandling ProtocolIE-ID ::= 405
+ id-FiveGCAction ProtocolIE-ID ::= 406
+ id-PagingPolicyDifferentiation ProtocolIE-ID ::= 407
+ id-DL-Signalling ProtocolIE-ID ::= 408
+ id-PNI-NPN-AreaScopeofMDT ProtocolIE-ID ::= 409
+ id-PNI-NPNBasedMDT ProtocolIE-ID ::= 410
+ id-SNPN-CellBasedMDT ProtocolIE-ID ::= 411
+ id-SNPN-TAIBasedMDT ProtocolIE-ID ::= 412
+ id-SNPN-BasedMDT ProtocolIE-ID ::= 413
+ id-Partially-Allowed-NSSAI ProtocolIE-ID ::= 414
+ id-AssociatedSessionID ProtocolIE-ID ::= 415
+ id-MBS-AssistanceInformation ProtocolIE-ID ::= 416
+ id-BroadcastTransportFailureTransfer ProtocolIE-ID ::= 417
+ id-BroadcastTransportRequestTransfer ProtocolIE-ID ::= 418
+ id-BroadcastTransportResponseTransfer ProtocolIE-ID ::= 419
+ id-TimeBasedHandoverInformation ProtocolIE-ID ::= 420
+ id-DLDiscarding ProtocolIE-ID ::= 421
+ id-PDUsetQoSParameters ProtocolIE-ID ::= 422
+ id-PDUSetbasedHandlingIndicator ProtocolIE-ID ::= 423
+ id-N6JitterInformation ProtocolIE-ID ::= 424
+ id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID ::= 425
+ id-ECNMarkingorCongestionInformationReportingStatus ProtocolIE-ID ::= 426
+ id-ERedCapIndication ProtocolIE-ID ::= 427
+ id-XrDeviceWith2Rx ProtocolIE-ID ::= 428
+ id-UserPlaneErrorIndicator ProtocolIE-ID ::= 429
+ id-SLPositioningRangingServiceInfo ProtocolIE-ID ::= 430
+ id-PDUSessionListMTCommHReq ProtocolIE-ID ::= 431
+ id-MaximumDataBurstVolume ProtocolIE-ID ::= 432
+ id-MN-only-MDT-collection ProtocolIE-ID ::= 433
+ id-MBS-NGUFailureIndication ProtocolIE-ID ::= 434
+ id-UserPlaneFailureIndication ProtocolIE-ID ::= 435
+ id-UserPlaneFailureIndicationReport ProtocolIE-ID ::= 436
+ id-SourceSN-to-TargetSN-QMCInfo ProtocolIE-ID ::= 437
+ id-QoERVQoEReportingPaths ProtocolIE-ID ::= 438
+
+
END
diff --git a/epan/dissectors/asn1/ngap/NGAP-Containers.asn b/epan/dissectors/asn1/ngap/NGAP-Containers.asn
index fdf612be..2442fec3 100644
--- a/epan/dissectors/asn1/ngap/NGAP-Containers.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.5.0 (2023-06)
+-- 3GPP TS 38.413 V18.2.0 (2024-06)
-- 9.4.8 Container Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/ngap/NGAP-IEs.asn b/epan/dissectors/asn1/ngap/NGAP-IEs.asn
index d0af0092..0df02c2a 100644
--- a/epan/dissectors/asn1/ngap/NGAP-IEs.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.5.0 (2023-06)
+-- 3GPP TS 38.413 V18.2.0 (2024-06)
-- 9.4.5 Information Element Definitions
-- **************************************************************
--
@@ -27,6 +27,8 @@ IMPORTS
id-AdditionalRedundantUL-NGU-UP-TNLInformation,
id-AdditionalUL-NGU-UP-TNLInformation,
id-AlternativeQoSParaSetList,
+ id-AssistanceInformationQoE-Meas,
+ id-AdditionalCancelledlocationReportingReferenceIDList,
id-BurstArrivalTimeDownlink,
id-Cause,
id-CNPacketDelayBudgetDL,
@@ -35,6 +37,7 @@ IMPORTS
id-CNTypeRestrictionsForServing,
id-CommonNetworkInstance,
id-ConfiguredTACIndication,
+ id-CN-MT-CommunicationHandling,
id-CurrentQoSParaSetIndex,
id-DAPSRequestInfo,
id-DAPSResponseInfoList,
@@ -42,8 +45,10 @@ IMPORTS
id-DataForwardingResponseERABList,
id-DirectForwardingPathAvailability,
id-DL-NGU-UP-TNLInformation,
+ id-DownlinkTLContainer,
id-EndpointIPAddressAndPort,
id-EnergySavingIndication,
+ id-ExtendedMobilityInformation,
id-ExtendedPacketDelayBudget,
id-ExtendedRATRestrictionInformation,
id-ExtendedReportIntervalMDT,
@@ -51,17 +56,19 @@ IMPORTS
id-ExtendedTAISliceSupportList,
id-ExtendedUEIdentityIndexValue,
id-EUTRA-PagingeDRXInformation,
+ id-EquivalentSNPNsList,
id-GlobalCable-ID,
id-GlobalRANNodeID,
id-GlobalTNGF-ID,
id-GlobalTWIF-ID,
id-GlobalW-AGF-ID,
id-GUAMIType,
-id-HashedUEIdentityIndexValue,
+ id-HashedUEIdentityIndexValue,
id-IncludeBeamMeasurementsIndication,
id-IntersystemSONInformationRequest,
id-IntersystemSONInformationReply,
id-IntersystemResourceStatusUpdate,
+ id-IntersystemMobilityFailureforVoiceFallback,
id-LastEUTRAN-PLMNIdentity,
id-LastVisitedPSCellList,
id-LocationReportingAdditionalInfo,
@@ -80,6 +87,7 @@ id-HashedUEIdentityIndexValue,
id-MBS-SessionID,
id-MBS-ActiveSessionInformation-SourcetoTargetList,
id-MBS-ActiveSessionInformation-TargettoSourceList,
+ id-MBS-AssistanceInformation,
id-MBS-SessionTNLInfo5GC,
id-MBS-SupportIndicator,
id-MBSSessionFailedtoSetupList,
@@ -113,7 +121,10 @@ id-HashedUEIdentityIndexValue,
id-PDUSessionType,
id-PEIPSassistanceInformation,
id-PSCellInformation,
+ id-PNI-NPNBasedMDT,
+ id-PNI-NPN-AreaScopeofMDT,
id-QMCConfigInfo,
+ id-QosFlowAdditionalInfoList,
id-QosFlowAddOrModifyRequestList,
id-QosFlowFailedToSetupList,
id-QosFlowFeedbackList,
@@ -122,7 +133,11 @@ id-HashedUEIdentityIndexValue,
id-QosFlowToReleaseList,
id-QosMonitoringRequest,
id-QosMonitoringReportingFrequency,
+ id-SNPN-CellBasedMDT,
+ id-SNPN-TAIBasedMDT,
+ id-SNPN-BasedMDT,
id-SuccessfulHandoverReportList,
+ id-SupportedUETypeList,
id-UEContextReferenceAtSource,
id-RAT-Information,
id-RedundantCommonNetworkInstance,
@@ -141,12 +156,15 @@ id-HashedUEIdentityIndexValue,
id-SONInformationReport,
id-SourceNodeID,
id-SourceNodeTNLAddrInfo,
+ id-SourceSN-to-TargetSN-QMCInfo,
id-SourceTNLAddrInfo,
id-SurvivalTime,
+ id-Selected-Target-SNPN-Identity,
id-TNLAssociationTransportLayerAddressNGRAN,
id-TAINSAGSupportList,
id-TargetHomeENB-ID,
id-TargetRNC-ID,
+ id-TimeBasedHandoverInformation,
id-TraceCollectionEntityURI,
id-TSCTrafficCharacteristics,
id-UEHistoryInformationFromTheUE,
@@ -156,20 +174,51 @@ id-HashedUEIdentityIndexValue,
id-UL-NGU-UP-TNLModifyList,
id-ULForwarding,
id-ULForwardingUP-TNLInformation,
+ id-UplinkTLContainer,
id-UsedRSNInformation,
id-UserLocationInformationTNGF,
id-UserLocationInformationTWIF,
id-UserLocationInformationW-AGF,
+ id-UserPlaneErrorIndicator,
id-EarlyMeasurement,
id-BeamMeasurementsReportConfiguration,
+ id-DLDiscarding,
id-TAI,
id-HFCNode-ID-new,
id-GlobalCable-ID-new,
+ id-FiveGProSeLayer2Multipath,
+ id-CandidateRelayUEInformationList,
+ id-FiveGProSeLayer2UEtoUERelay,
+ id-FiveGProSeLayer2UEtoUERemote,
+ id-SuccessfulPSCellChangeReportList,
+ id-TargetCellCRNTI,
+ id-TimeSinceFailure,
+ id-ClockQualityReportingControlInfo,
+ id-RANfeedbacktype,
+ id-QoSFlowTSCList,
+ id-TSCTrafficCharacteristicsFeedback,
+ id-ANPacketDelayBudgetUL,
+ id-MBSCommServiceType,
+ id-MobileIAB-MTUserLocationInformation,
+ id-PDUsetQoSParameters,
+ id-PDUSetbasedHandlingIndicator,
+ id-N6JitterInformation,
+ id-ECNMarkingorCongestionInformationReportingRequest,
+ id-ECNMarkingorCongestionInformationReportingStatus,
+ id-MN-only-MDT-collection,
+ id-XrDeviceWith2Rx,
+ id-MaximumDataBurstVolume,
+ id-MBS-NGUFailureIndication,
+ id-UserPlaneFailureIndication,
+ id-UserPlaneFailureIndicationReport,
+ id-QoERVQoEReportingPaths,
maxnoofAllowedAreas,
maxnoofAllowedCAGsperPLMN,
maxnoofAllowedS-NSSAIs,
+ maxnoofAoIMinusOne,
maxnoofBluetoothName,
maxnoofBPLMNs,
+ maxnoofCAGforMDT,
maxnoofCAGSperCell,
maxnoofCandidateCells,
maxnoofCellIDforMDT,
@@ -192,6 +241,7 @@ id-HashedUEIdentityIndexValue,
maxnoofE-RABs,
maxnoofErrors,
maxnoofExtSliceItems,
+ maxnoofESNPNs,
maxnoofForbTACs,
maxnoofFreqforMDT,
maxnoofMBSFSAs,
@@ -226,6 +276,7 @@ id-HashedUEIdentityIndexValue,
maxnoofSensorName,
maxnoofServedGUAMIs,
maxnoofSliceItems,
+ maxnoofMDTSNPNs,
maxnoofSNSSAIforQMC,
maxnoofSuccessfulHOReports,
maxnoofTACs,
@@ -243,11 +294,19 @@ id-HashedUEIdentityIndexValue,
maxnoofTNLAssociations,
maxnoofUEAppLayerMeas,
maxnoofUEsforPaging,
+ maxnoofUETypes,
maxnoofWLANName,
maxnoofXnExtTLAs,
maxnoofXnGTP-TLAs,
maxnoofXnTLAs,
- maxnoofThresholdsForExcessPacketDelay
+ maxnoofThresholdsForExcessPacketDelay,
+ maxnoofCandidateRelayUEs,
+ maxnoofSuccessfulPSCellChangeReports,
+ maxnoofCellsTSS,
+ maxnoofPeriodicities,
+ maxnoofPartiallyAllowedS-NSSAIs,
+ maxnoofRSPPQoSFlows
+
FROM NGAP-Constants
@@ -286,6 +345,62 @@ AdditionalQosFlowInformation ::= ENUMERATED {
...
}
+AerialUEsubscriptionInformation ::= ENUMERATED {
+ allowed,
+ not-allowed,
+ ...
+}
+
+A2X-PC5-FlowBitRates ::= SEQUENCE {
+ a2X-GuaranteedFlowBitRate BitRate,
+ a2X-MaximumFlowBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { {A2X-PC5-FlowBitRates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+A2X-PC5-FlowBitRates-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+A2X-PC5-QoS-Flow-List ::= SEQUENCE (SIZE(1..maxnoofPC5QoSFlows)) OF A2X-PC5-QoS-Flow-Item
+
+A2X-PC5-QoS-Flow-Item ::= SEQUENCE {
+ a2X-PQI INTEGER (0..255, ...),
+ a2X-PC5-FlowBitRates A2X-PC5-FlowBitRates OPTIONAL,
+ a2X-Range ENUMERATED {m50, m80, m180, m200,
+ m350, m400, m500, m700,
+ m1000, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {A2X-PC5-QoS-Flow-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+A2X-PC5-QoS-Flow-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+A2X-PC5-QoS-Parameters ::= SEQUENCE {
+ a2X-PC5-QoS-Flow-List A2X-PC5-QoS-Flow-List,
+ a2X-PC5-LinkAggregateBitRates BitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {A2X-PC5-QoS-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+A2X-PC5-QoS-Parameters-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AdditionalCancelledlocationReportingReferenceIDList ::= SEQUENCE (SIZE(1.. maxnoofAoIMinusOne)) OF AdditionalCancelledlocationReportingReferenceIDItem
+
+AdditionalCancelledlocationReportingReferenceIDItem ::= SEQUENCE {
+ locationReportingReferenceIDToBeCancelled LocationReportingReferenceID,
+ iE-Extensions ProtocolExtensionContainer { { AdditionalCancelledlocationReportingReferenceIDItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AdditionalCancelledlocationReportingReferenceIDItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
AllocationAndRetentionPriority ::= SEQUENCE {
priorityLevelARP PriorityLevelARP,
pre-emptionCapability Pre-emptionCapability,
@@ -345,9 +460,12 @@ AlternativeQoSParaSetItem ::= SEQUENCE {
}
AlternativeQoSParaSetItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MaximumDataBurstVolume CRITICALITY ignore EXTENSION MaximumDataBurstVolume PRESENCE optional },
...
}
+AssistanceInformationQoE-Meas ::= INTEGER (1..16, ...)
+
AMFName ::= PrintableString (SIZE(1..150, ...))
AMFNameVisibleString ::= VisibleString (SIZE(1..150, ...))
@@ -549,6 +667,8 @@ AssociatedQosFlowItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+AssociatedSessionID ::= OCTET STRING
+
AuthenticatedIndication ::= ENUMERATED {true, ...}
AveragingWindow ::= INTEGER (0..4095, ...)
@@ -562,6 +682,10 @@ AreaScopeOfMDT-NR ::= CHOICE {
}
AreaScopeOfMDT-NR-ExtIEs NGAP-PROTOCOL-IES ::= {
+{ ID id-PNI-NPNBasedMDT CRITICALITY ignore TYPE PNI-NPNBasedMDT PRESENCE mandatory }|
+{ ID id-SNPN-CellBasedMDT CRITICALITY ignore TYPE SNPN-CellBasedMDT PRESENCE mandatory }|
+{ ID id-SNPN-TAIBasedMDT CRITICALITY ignore TYPE SNPN-TAIBasedMDT PRESENCE mandatory }|
+{ ID id-SNPN-BasedMDT CRITICALITY ignore TYPE SNPN-BasedMDT PRESENCE mandatory },
...
}
@@ -684,6 +808,39 @@ BroadcastPLMNItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+BroadcastTransportFailureTransfer ::= SEQUENCE {
+ mBS-SessionID MBS-SessionID,
+ cause Cause,
+ criticalityDiagnostics CriticalityDiagnostics OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { BroadcastTransportFailureTransfer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BroadcastTransportFailureTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BroadcastTransportRequestTransfer ::= SEQUENCE {
+ mBS-SessionID MBS-SessionID,
+ mBS-SessionTNLInfoNGRAN MBS-SessionTNLInfoNGRAN,
+ iE-Extensions ProtocolExtensionContainer { {BroadcastTransportRequestTransfer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BroadcastTransportRequestTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BroadcastTransportResponseTransfer ::= SEQUENCE {
+ mBS-SessionID MBS-SessionID,
+ iE-Extensions ProtocolExtensionContainer { {BroadcastTransportResponseTransfer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BroadcastTransportResponseTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
BluetoothMeasurementConfiguration ::= SEQUENCE {
bluetoothMeasConfig BluetoothMeasConfig,
bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL,
@@ -714,10 +871,35 @@ BluetoothName ::= OCTET STRING (SIZE (1..248))
BurstArrivalTime ::= OCTET STRING
+BurstArrivalTimeWindow ::= SEQUENCE {
+ burstArrivalTimeWindowStart INTEGER (0..640000, ...),
+ burstArrivalTimeWindowEnd INTEGER (0..640000, ...),
+ iE-Extension ProtocolExtensionContainer { {BurstArrivalTimeWindow-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BurstArrivalTimeWindow-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- C
CAG-ID ::= BIT STRING (SIZE(32))
+CandidateRelayUEInformationList ::= SEQUENCE (SIZE(1.. maxnoofCandidateRelayUEs)) OF CandidateRelayUEInformationItem
+
+CandidateRelayUEInformationItem ::= SEQUENCE {
+ candidateRelayUE-Id CandidateRelayUE-ID,
+ iE-Extensions ProtocolExtensionContainer { { CandidateRelayUEInformationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CandidateRelayUEInformationItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CandidateRelayUE-ID ::= BIT STRING (SIZE(24))
+
CancelAllWarningMessages ::= ENUMERATED {
true,
...
@@ -848,7 +1030,9 @@ CauseNas ::= ENUMERATED {
deregister,
unspecified,
...,
- uE-not-in-PLMN-serving-area
+ uE-not-in-PLMN-serving-area,
+ mobile-IAB-not-authorized,
+ iAB-not-authorized
}
CauseProtocol ::= ENUMERATED {
@@ -920,7 +1104,9 @@ CauseRadioNetwork ::= ENUMERATED {
unknown-MBS-Session-ID,
indicated-MBS-session-area-information-not-served-by-the-gNB,
inconsistent-slice-info-for-the-session,
- misaligned-association-for-multicast-unicast
+ misaligned-association-for-multicast-unicast,
+ eredcap-ue-not-supported,
+ two-rx-xr-ue-not-supported
}
CauseTransport ::= ENUMERATED {
@@ -1025,6 +1211,61 @@ CEmodeBrestricted ::= ENUMERATED {
...
}
+ClockAccuracy ::= CHOICE {
+ clockAccuracyValue INTEGER (1..40000000, ...),
+ clockAccuracyIndex INTEGER (32..47, ...),
+ choice-Extensions ProtocolIE-SingleContainer { { ClockAccuracy-ExtIEs} }
+}
+
+ClockAccuracy-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
+ClockQualityAcceptanceIndication ::= SEQUENCE {
+ clockQualityAcceptanceCriteria ClockQualityAcceptanceCriteria,
+ iE-Extensions ProtocolExtensionContainer { {ClockQualityAcceptanceIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ClockQualityAcceptanceIndication-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ClockQualityAcceptanceCriteria ::= SEQUENCE {
+ synchronisationState BIT STRING (SIZE(8, ...)) OPTIONAL,
+ traceabletoUTC ENUMERATED {true, ...} OPTIONAL,
+ traceabletoGNSS ENUMERATED {true, ...} OPTIONAL,
+ clockFrequencyStability BIT STRING (SIZE(16)) OPTIONAL,
+ clockAccuracy INTEGER (1..40000000, ...) OPTIONAL,
+ parentTImeSource BIT STRING (SIZE(16, ...)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ClockQualityAcceptanceCriteria-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ClockQualityAcceptanceCriteria-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ClockQualityReportingControlInfo ::= SEQUENCE {
+ clockQualityDetailLevel ClockQualityDetailLevel,
+ iE-Extensions ProtocolExtensionContainer { {ClockQualityReportingControlInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ClockQualityReportingControlInfo-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ClockQualityDetailLevel ::= CHOICE {
+ clockQualityMetrics NULL,
+ clockQualityAcceptanceIndication ClockQualityAcceptanceIndication,
+ choice-extensions ProtocolIE-SingleContainer { {ClockQualityDetailLevel-ExtIEs} }
+}
+
+ClockQualityDetailLevel-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
CNAssistedRANTuning ::= SEQUENCE {
expectedUEBehaviour ExpectedUEBehaviour OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {CNAssistedRANTuning-ExtIEs} } OPTIONAL,
@@ -1147,10 +1388,13 @@ CoreNetworkAssistanceInformationForInactive-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
{ ID id-NR-PagingeDRXInformation CRITICALITY ignore EXTENSION NR-PagingeDRXInformation PRESENCE optional }|
{ ID id-PagingCauseIndicationForVoiceService CRITICALITY ignore EXTENSION PagingCauseIndicationForVoiceService PRESENCE optional }|
{ ID id-PEIPSassistanceInformation CRITICALITY ignore EXTENSION PEIPSassistanceInformation PRESENCE optional }|
- { ID id-HashedUEIdentityIndexValue CRITICALITY ignore EXTENSION HashedUEIdentityIndexValue PRESENCE optional },
+ { ID id-HashedUEIdentityIndexValue CRITICALITY ignore EXTENSION HashedUEIdentityIndexValue PRESENCE optional }|
+ { ID id-CN-MT-CommunicationHandling CRITICALITY ignore EXTENSION CN-MT-CommunicationHandling PRESENCE optional },
...
}
+CN-MT-CommunicationHandling ::= ENUMERATED {supported, ...}
+
COUNTValueForPDCP-SN12 ::= SEQUENCE {
pDCP-SN12 INTEGER (0..4095),
hFN-PDCP-SN12 INTEGER (0..1048575),
@@ -1212,6 +1456,8 @@ CriticalityDiagnostics-IE-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+C-RNTI ::= BIT STRING (SIZE(16))
+
CellBasedMDT-NR::= SEQUENCE {
cellIdListforMDT CellIdListforMDT-NR,
iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-NR-ExtIEs} } OPTIONAL,
@@ -1249,6 +1495,19 @@ CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF NGRAN-CGI
CellIdListforMDT-EUTRA ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRA-CGI
+CAGListforMDT ::= SEQUENCE (SIZE(1.. maxnoofCAGforMDT)) OF CAGListforMDTItem
+
+CAGListforMDTItem ::= SEQUENCE {
+ plmnID PLMNIdentity,
+ cAGID CAG-ID,
+ iE-Extensions ProtocolExtensionContainer { {CAGListforMDTItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CAGListforMDTItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
-- D
@@ -1341,6 +1600,9 @@ DL-CP-SecurityInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+DL-Signalling ::= ENUMERATED {true, ...}
+
+
DL-NAS-MAC ::= BIT STRING (SIZE (16))
DLForwarding ::= ENUMERATED {
@@ -1492,6 +1754,40 @@ ProcedureStageChoice ::= CHOICE {
}
ProcedureStageChoice-ExtIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-DLDiscarding CRITICALITY ignore TYPE DLDiscarding PRESENCE mandatory },
+ ...
+}
+
+DLDiscarding ::= SEQUENCE {
+ dRBsSubjectToDLDiscarding DRBsSubjectToDLDiscarding-List,
+ iE-Extension ProtocolExtensionContainer { {DLDiscarding-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DLDiscarding-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DRBsSubjectToDLDiscarding-List ::= SEQUENCE (SIZE (1..maxnoofDRBs)) OF DRBsSubjectToDLDiscarding-Item
+
+DRBsSubjectToDLDiscarding-Item ::= SEQUENCE {
+ drbID DRB-ID,
+ dlCount DLCountChoice,
+ iE-Extension ProtocolExtensionContainer { { DRBsSubjectToDLDiscarding-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DRBsSubjectToDLDiscarding-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DLCountChoice ::= CHOICE {
+ count12bits COUNTValueForPDCP-SN12,
+ count18bits COUNTValueForPDCP-SN18,
+ choice-extension ProtocolIE-SingleContainer { {DLCountChoice-ExtIEs} }
+}
+
+DLCountChoice-ExtIEs NGAP-PROTOCOL-IES ::= {
...
}
@@ -1518,6 +1814,41 @@ DRBsSubjectToEarlyStatusTransfer-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+ECNMarkingorCongestionInformationReportingRequest ::= CHOICE {
+ eCNMarkingAtRANRequest ECNMarkingAtRANRequest,
+ eCNMarkingAtUPFRequest ECNMarkingAtUPFRequest,
+ congestionInformationRequest CongestionInformationRequest,
+ choice-Extensions ProtocolIE-SingleContainer { {ECNMarkingorCongestionInformationReportingRequest-ExtIEs} }
+}
+
+ECNMarkingorCongestionInformationReportingRequest-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
+ECNMarkingAtRANRequest ::= ENUMERATED {ul, dl, both, stop, ...}
+
+ECNMarkingAtUPFRequest ::= ENUMERATED {ul, dl, both, stop, ...}
+
+CongestionInformationRequest ::= ENUMERATED {ul, dl, both, stop, ...}
+
+ECNMarkingorCongestionInformationReportingStatus ::= SEQUENCE (SIZE (1..maxnoofQosFlows)) OF ECNMarkingorCongestionInformationReportingStatus-Item
+
+ECNMarkingorCongestionInformationReportingStatus-Item ::= SEQUENCE {
+ qosFlowIdentifier QosFlowIdentifier,
+ activationStatus ActivationStatus,
+ iE-Extension ProtocolExtensionContainer { { ECNMarkingorCongestionInformationReportingStatus-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ECNMarkingorCongestionInformationReportingStatus-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ActivationStatus ::= ENUMERATED {
+ active,
+ not-active,
+ ...
+}
EDT-Session ::= ENUMERATED {
true,
@@ -1672,6 +2003,11 @@ E-RABInformationItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+ERedCapIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
EUTRACellIdentity ::= BIT STRING (SIZE(28))
EUTRA-CGI ::= SEQUENCE {
@@ -1725,7 +2061,8 @@ EventType ::= ENUMERATED {
stop-change-of-serve-cell,
stop-ue-presence-in-area-of-interest,
cancel-location-reporting-for-the-ue,
- ...
+ ...,
+ change-of-serving-cell-and-UE-presence-in-the-Area-of-Interest
}
ExcessPacketDelayThresholdConfiguration ::= SEQUENCE (SIZE(1..maxnoofThresholdsForExcessPacketDelay)) OF ExcessPacketDelayThresholdItem
@@ -1816,7 +2153,8 @@ ExtendedPacketDelayBudget ::= INTEGER (1..65535, ..., 65536..109999)
Extended-RANNodeName ::= SEQUENCE {
rANNodeNameVisibleString RANNodeNameVisibleString OPTIONAL,
rANNodeNameUTF8String RANNodeNameUTF8String OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { { Extended-RANNodeName-ExtIEs } } OPTIONAL, ...
+ iE-Extensions ProtocolExtensionContainer { { Extended-RANNodeName-ExtIEs } } OPTIONAL,
+ ...
}
Extended-RANNodeName-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
@@ -1824,7 +2162,7 @@ Extended-RANNodeName-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
}
ExtendedRATRestrictionInformation ::= SEQUENCE {
- primaryRATRestriction BIT STRING (SIZE(8, ...)),
+ primaryRATRestriction BIT STRING (SIZE(8, ..., 16)),
secondaryRATRestriction BIT STRING (SIZE(8, ...)),
iE-Extensions ProtocolExtensionContainer { {ExtendedRATRestrictionInformation-ExtIEs} } OPTIONAL,
...
@@ -1872,6 +2210,19 @@ MeasurementThresholdL1LoggedMDT-ExtIEs NGAP-PROTOCOL-IES ::= {
...
}
+EquivalentSNPNsList ::= SEQUENCE (SIZE(1..maxnoofESNPNs)) OF EquivalentSNPNsItem
+
+EquivalentSNPNsItem ::= SEQUENCE {
+ plmnIdentity PLMNIdentity,
+ nID NID,
+ iE-Extensions ProtocolExtensionContainer { {EquivalentSNPNsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EquivalentSNPNsItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
-- F
FailureIndication ::= SEQUENCE {
@@ -1884,17 +2235,30 @@ FailureIndication-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+FiveGCAction ::= CHOICE {
+ hLComActivate HLComActivate,
+ hLComDeactivate HLComDeactivate,
+ choice-Extensions ProtocolIE-SingleContainer { {FiveGCAction-ExtIEs} }
+}
+
+FiveGCAction-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
FiveG-ProSeAuthorized ::= SEQUENCE {
fiveGProSeDirectDiscovery FiveGProSeDirectDiscovery OPTIONAL,
fiveGProSeDirectCommunication FiveGProSeDirectCommunication OPTIONAL,
- fiveGProSeLayer2UEtoNetworkRelay FiveGProSeLayer2UEtoNetworkRelay OPTIONAL,
- fiveGProSeLayer3UEtoNetworkRelay FiveGProSeLayer3UEtoNetworkRelay OPTIONAL,
- fiveGProSeLayer2RemoteUE FiveGProSeLayer2RemoteUE OPTIONAL,
+ fiveGProSeLayer2UEtoNetworkRelay FiveGProSeLayer2UEtoNetworkRelay OPTIONAL,
+ fiveGProSeLayer3UEtoNetworkRelay FiveGProSeLayer3UEtoNetworkRelay OPTIONAL,
+ fiveGProSeLayer2RemoteUE FiveGProSeLayer2RemoteUE OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {FiveG-ProSeAuthorized-ExtIEs} } OPTIONAL,
...
}
FiveG-ProSeAuthorized-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FiveGProSeLayer2Multipath CRITICALITY ignore EXTENSION FiveGProSeLayer2Multipath PRESENCE optional }|
+ { ID id-FiveGProSeLayer2UEtoUERelay CRITICALITY ignore EXTENSION FiveGProSeLayer2UEtoUERelay PRESENCE optional }|
+ { ID id-FiveGProSeLayer2UEtoUERemote CRITICALITY ignore EXTENSION FiveGProSeLayer2UEtoUERemote PRESENCE optional },
...
}
@@ -1928,7 +2292,23 @@ FiveGProSeLayer2RemoteUE ::= ENUMERATED {
...
}
+FiveGProSeLayer2Multipath ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+FiveGProSeLayer2UEtoUERelay ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+FiveGProSeLayer2UEtoUERemote ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
FiveG-ProSePC5QoSParameters ::= SEQUENCE {
fiveGProSepc5QoSFlowList FiveGProSePC5QoSFlowList,
@@ -2117,7 +2497,7 @@ GlobalRANNodeID ::= CHOICE {
}
GlobalRANNodeID-ExtIEs NGAP-PROTOCOL-IES ::= {
- { ID id-GlobalTNGF-ID CRITICALITY reject TYPE GlobalTNGF-ID PRESENCE mandatory }|
+ { ID id-GlobalTNGF-ID CRITICALITY reject TYPE GlobalTNGF-ID PRESENCE mandatory }|
{ ID id-GlobalTWIF-ID CRITICALITY reject TYPE GlobalTWIF-ID PRESENCE mandatory }|
{ ID id-GlobalW-AGF-ID CRITICALITY reject TYPE GlobalW-AGF-ID PRESENCE mandatory },
...
@@ -2247,8 +2627,10 @@ HandoverRequestAcknowledgeTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
{ ID id-DataForwardingResponseERABList CRITICALITY ignore EXTENSION DataForwardingResponseERABList PRESENCE optional }|
{ ID id-RedundantDL-NGU-UP-TNLInformation CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional }|
{ ID id-UsedRSNInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional }|
- { ID id-GlobalRANNodeID CRITICALITY ignore EXTENSION GlobalRANNodeID PRESENCE optional }|
- { ID id-MBS-SupportIndicator CRITICALITY ignore EXTENSION MBS-SupportIndicator PRESENCE optional },
+ { ID id-GlobalRANNodeID CRITICALITY ignore EXTENSION GlobalRANNodeID PRESENCE optional }|
+ { ID id-MBS-SupportIndicator CRITICALITY ignore EXTENSION MBS-SupportIndicator PRESENCE optional }|
+ { ID id-PDUSetbasedHandlingIndicator CRITICALITY ignore EXTENSION PDUSetbasedHandlingIndicator PRESENCE optional }|
+ { ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional },
...
}
@@ -2294,6 +2676,27 @@ HFCNode-ID-new ::= SEQUENCE {
}
HFCNode-ID-new-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-GlobalCable-ID CRITICALITY ignore EXTENSION GlobalCable-ID PRESENCE optional },
+ ...
+}
+
+HLComActivate ::= SEQUENCE {
+ nR-Paging-Long-eDRX-Information-for-RRC-INACTIVE NR-Paging-Long-eDRX-Information-for-RRC-INACTIVE,
+ iE-Extensions ProtocolExtensionContainer { { HLComActivate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HLComActivate-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HLComDeactivate ::= SEQUENCE {
+ uEReachabilityIndication ENUMERATED {true, ...},
+ iE-Extensions ProtocolExtensionContainer { { HLComDeactivate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HLComDeactivate-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
@@ -2303,10 +2706,10 @@ HOReport::= SEQUENCE {
sourcecellCGI NGRAN-CGI,
targetcellCGI NGRAN-CGI,
reestablishmentcellCGI NGRAN-CGI OPTIONAL,
- -- The above IE shall be present if the Handover Report Type IE is set to the value "HO to wrong cell" --
+-- The above IE shall be present if the Handover Report Type IE is set to the value “HO to wrong cellâ€
sourcecellC-RNTI BIT STRING (SIZE(16)) OPTIONAL,
targetcellinE-UTRAN EUTRA-CGI OPTIONAL,
- -- The above IE shall be present if the Handover Report Type IE is set to the value "Inter System ping-pong" --
+-- The above IE shall be present if the Handover Report Type IE is set to the value “Inter System ping-pongâ€
mobilityInformation MobilityInformation OPTIONAL,
uERLFReportContainer UERLFReportContainer OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { HOReport-ExtIEs} } OPTIONAL,
@@ -2314,6 +2717,9 @@ HOReport::= SEQUENCE {
}
HOReport-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ExtendedMobilityInformation CRITICALITY ignore EXTENSION ExtendedMobilityInformation PRESENCE optional }|
+ { ID id-TargetCellCRNTI CRITICALITY ignore EXTENSION C-RNTI PRESENCE optional }|
+ { ID id-TimeSinceFailure CRITICALITY ignore EXTENSION TimeSinceFailure PRESENCE optional },
...
}
@@ -2328,6 +2734,17 @@ IAB-Authorized ::= ENUMERATED {
...
}
+MobileIAB-MTUserLocationInformation ::= SEQUENCE {
+ nRCGI NR-CGI,
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { { MobileIAB-MTUserLocationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MobileIAB-MTUserLocationInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
IAB-Supported ::= ENUMERATED {
true,
...
@@ -2425,6 +2842,7 @@ IntersystemSONTransferType ::= CHOICE {
fromNGRANtoEUTRAN FromNGRANtoEUTRAN,
choice-Extensions ProtocolIE-SingleContainer { { IntersystemSONTransferType-ExtIEs} }
}
+
IntersystemSONTransferType-ExtIEs NGAP-PROTOCOL-IES ::= {
...
}
@@ -2581,13 +2999,14 @@ EventBasedReportingIEs ::= SEQUENCE {
iE-Extensions ProtocolExtensionContainer { {EventBasedReportingIEs-ExtIEs} } OPTIONAL,
...
}
+
EventBasedReportingIEs-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
IntersystemResourceThreshold ::= INTEGER(0..100)
-NumberOfMeasurementReportingLevels ::= ENUMERATED {n2, n3, n4, n5, n10, ...}
+NumberOfMeasurementReportingLevels ::= ENUMERATED {n2, n3, n4, n5, n10, ..., n0}
PeriodicReportingIEs ::= SEQUENCE {
reportingPeriodicity ReportingPeriodicity,
@@ -2847,6 +3266,20 @@ InterSystemHandoverReportType ::= CHOICE {
}
InterSystemHandoverReportType-ExtIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-IntersystemMobilityFailureforVoiceFallback CRITICALITY ignore TYPE IntersystemMobilityFailureforVoiceFallback PRESENCE mandatory },
+ ...
+}
+
+IntersystemMobilityFailureforVoiceFallback ::= SEQUENCE {
+ sourcecellID NGRAN-CGI,
+ targetcellID EUTRA-CGI,
+ reconnectCellID EUTRA-CGI OPTIONAL,
+ uERLFReportContainer UERLFReportContainer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { IntersystemMobilityFailureforVoiceFallback-ExtIEs} } OPTIONAL,
+ ...
+}
+
+IntersystemMobilityFailureforVoiceFallback-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
@@ -2955,20 +3388,21 @@ LocationReportingRequestType ::= SEQUENCE {
reportArea ReportArea,
areaOfInterestList AreaOfInterestList OPTIONAL,
locationReportingReferenceIDToBeCancelled LocationReportingReferenceID OPTIONAL,
--- The above IE shall be present if the event type is set to “stop reporting UE presence in the area of interestâ€
+-- The above IE shall be present if the Event Type IE is set to the value “stop UE presence in the area of interestâ€
iE-Extensions ProtocolExtensionContainer { {LocationReportingRequestType-ExtIEs} } OPTIONAL,
...
}
LocationReportingRequestType-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- { ID id-LocationReportingAdditionalInfo CRITICALITY ignore EXTENSION LocationReportingAdditionalInfo PRESENCE optional },
+ { ID id-LocationReportingAdditionalInfo CRITICALITY ignore EXTENSION LocationReportingAdditionalInfo PRESENCE optional }|
+ { ID id-AdditionalCancelledlocationReportingReferenceIDList CRITICALITY reject EXTENSION AdditionalCancelledlocationReportingReferenceIDList PRESENCE optional },
...
}
LoggedMDTNr ::= SEQUENCE {
loggingInterval LoggingInterval,
loggingDuration LoggingDuration,
- loggedMDTTrigger LoggedMDTTrigger,
+ loggedMDTTrigger LoggedMDTTrigger,
bluetoothMeasurementConfiguration BluetoothMeasurementConfiguration OPTIONAL,
wLANMeasurementConfiguration WLANMeasurementConfiguration OPTIONAL,
sensorMeasurementConfiguration SensorMeasurementConfiguration OPTIONAL,
@@ -3032,6 +3466,17 @@ LTEUE-Sidelink-Aggregate-MaximumBitrates-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+LTE-A2X-ServicesAuthorized ::= SEQUENCE {
+ aerialUE ENUMERATED {authorized, not-authorized, ...} OPTIONAL,
+ aerialControllerUE ENUMERATED {authorized, not-authorized, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {LTE-A2X-ServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTE-A2X-ServicesAuthorized-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- M
MaskedIMEISV ::= BIT STRING (SIZE(64))
@@ -3049,6 +3494,8 @@ MaximumIntegrityProtectedDataRate ::= ENUMERATED {
MBS-AreaSessionID ::= INTEGER (0..65535, ...)
+MBSCommServiceType ::= ENUMERATED {broadcast, multicast, ...}
+
MBS-DataForwardingResponseMRBList ::= SEQUENCE (SIZE(1..maxnoofMRBs)) OF MBS-DataForwardingResponseMRBItem
MBS-DataForwardingResponseMRBItem ::= SEQUENCE {
@@ -3196,6 +3643,8 @@ MBS-ActiveSessionInformation-TargettoSourceItem-ExtIEs NGAP-PROTOCOL-EXTENSION :
...
}
+MBS-AssistanceInformation ::= ENUMERATED {true, ...}
+
MBSSessionSetupOrModFailureTransfer ::= SEQUENCE {
cause Cause,
criticalityDiagnostics CriticalityDiagnostics OPTIONAL,
@@ -3228,9 +3677,14 @@ MBSSessionSetupOrModRequestTransfer ::= SEQUENCE {
MBSSessionSetupOrModRequestTransferIEs NGAP-PROTOCOL-IES ::= {
{ ID id-MBS-SessionTNLInfo5GC CRITICALITY reject TYPE MBS-SessionTNLInfo5GC PRESENCE optional }|
{ ID id-MBS-QoSFlowsToBeSetupModList CRITICALITY reject TYPE MBS-QoSFlowsToBeSetupList PRESENCE mandatory }|
- { ID id-MBS-SessionFSAIDList CRITICALITY ignore TYPE MBS-SessionFSAIDList PRESENCE optional },
+ { ID id-MBS-SessionFSAIDList CRITICALITY ignore TYPE MBS-SessionFSAIDList PRESENCE optional }|
+ { ID id-SupportedUETypeList CRITICALITY ignore TYPE SupportedUETypeList PRESENCE optional }|
+ { ID id-MBS-NGUFailureIndication CRITICALITY reject TYPE MBS-NGUFailureIndication PRESENCE optional },
...
}
+SupportedUETypeList ::= SEQUENCE (SIZE(1.. maxnoofUETypes)) OF SupportedUEType
+
+SupportedUEType ::= ENUMERATED {non-RedCap-UE, redCap-UE, ...}
MBS-SessionFSAIDList ::= SEQUENCE (SIZE(1.. maxnoofMBSFSAs)) OF MBS-SessionFSAID
@@ -3257,8 +3711,9 @@ MBSSessionSetupOrModResponseTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
}
MBS-SupportIndicator ::= ENUMERATED {
- true,
- ...
+ multicast-supported,
+ ...,
+ multicast-supported-with-reception-in-RRC-inactive
}
MBS-SessionTNLInfo5GC ::= CHOICE {
@@ -3334,11 +3789,11 @@ MBS-DistributionSetupRequestTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
MBS-DistributionSetupResponseTransfer ::= SEQUENCE {
mBS-SessionID MBS-SessionID,
- mBS-AreaSessionID MBS-AreaSessionID OPTIONAL,
- sharedNGU-MulticastTNLInformation MBS-SessionTNLInfo5GCItem OPTIONAL,
+ mBS-AreaSessionID MBS-AreaSessionID OPTIONAL,
+ sharedNGU-MulticastTNLInformation SharedNGU-MulticastTNLInformation OPTIONAL,
mBS-QoSFlowsToBeSetupList MBS-QoSFlowsToBeSetupList,
mBSSessionStatus MBSSessionStatus,
- mBS-ServiceArea MBS-ServiceArea OPTIONAL,
+ mBS-ServiceArea MBS-ServiceArea OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {MBS-DistributionSetupResponseTransfer-ExtIEs} } OPTIONAL,
...
}
@@ -3361,6 +3816,31 @@ MBS-DistributionSetupUnsuccessfulTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+MBS-NGUFailureIndication ::= CHOICE {
+ locationindependent MBS-UP-FailureIndication,
+ locationdependent MBS-UP-FailureIndicationList,
+ choice-Extensions ProtocolIE-SingleContainer { {MBS-NGUFailureIndication-ExtIEs} }
+}
+
+MBS-NGUFailureIndication-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
+MBS-UP-FailureIndicationList ::= SEQUENCE (SIZE(1..maxnoofMBSServiceAreaInformation)) OF MBS-UP-FailureIndicationItem
+
+MBS-UP-FailureIndicationItem ::= SEQUENCE {
+ mBS-AreaSessionID MBS-AreaSessionID,
+ mBS-UP-FailureIndication MBS-UP-FailureIndication,
+ iE-Extensions ProtocolExtensionContainer { {MBS-UP-FailureIndicationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBS-UP-FailureIndicationItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MBS-UP-FailureIndication ::= ENUMERATED {ng-u-path-failure-detected, ...}
+
MBSSessionSetupRequestList ::= SEQUENCE (SIZE(1..maxnoofMBSSessions)) OF MBSSessionSetupRequestItem
MBSSessionSetupRequestItem ::= SEQUENCE {
@@ -3372,6 +3852,7 @@ MBSSessionSetupRequestItem ::= SEQUENCE {
}
MBSSessionSetupRequestItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MBS-AssistanceInformation CRITICALITY ignore EXTENSION MBS-AssistanceInformation PRESENCE optional },
...
}
@@ -3387,6 +3868,7 @@ MBSSessionSetuporModifyRequestItem ::= SEQUENCE {
}
MBSSessionSetuporModifyRequestItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MBS-AssistanceInformation CRITICALITY ignore EXTENSION MBS-AssistanceInformation PRESENCE optional },
...
}
@@ -3423,6 +3905,8 @@ MICOModeIndication ::= ENUMERATED {
MobilityInformation ::= BIT STRING (SIZE(16))
+ExtendedMobilityInformation ::= BIT STRING (SIZE(32))
+
MobilityRestrictionList ::= SEQUENCE {
servingPLMN PLMNIdentity,
equivalentPLMNs EquivalentPLMNs OPTIONAL,
@@ -3462,9 +3946,12 @@ MDT-Configuration ::= SEQUENCE {
}
MDT-Configuration-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MN-only-MDT-collection CRITICALITY ignore EXTENSION MN-only-MDT-collection PRESENCE optional },
...
}
+MN-only-MDT-collection ::= ENUMERATED {mn-only, ...}
+
MDT-Configuration-NR ::= SEQUENCE {
mdt-Activation MDT-Activation,
areaScopeOfMDT AreaScopeOfMDT-NR,
@@ -3475,6 +3962,7 @@ MDT-Configuration-NR ::= SEQUENCE {
}
MDT-Configuration-NR-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PNI-NPN-AreaScopeofMDT CRITICALITY ignore EXTENSION PNI-NPN-AreaScopeofMDT PRESENCE optional },
...
}
@@ -3512,6 +4000,22 @@ MDTModeEutra ::= OCTET STRING
MeasurementsToActivate ::= BIT STRING(SIZE(8))
+MobileIAB-Authorized ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+MobileIABNodeIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+MobileIAB-Supported ::= ENUMERATED {
+ true,
+ ...
+}
+
MRB-ID ::= INTEGER (1..512, ...)
MulticastSessionActivationRequestTransfer ::= SEQUENCE {
@@ -3590,9 +4094,9 @@ UE-PagingItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
M1Configuration ::= SEQUENCE {
m1reportingTrigger M1ReportingTrigger,
m1thresholdEventA2 M1ThresholdEventA2 OPTIONAL,
--- The above IE shall be present if the M1 Reporting Trigger IE is set to “A2event-triggered†or “A2event-triggered periodicâ€
+-- The above IE shall be present if the M1 Reporting Trigger IE is set to the value “A2event-triggered†or “A2event-triggered periodicâ€
m1periodicReporting M1PeriodicReporting OPTIONAL,
--- The above IE shall be present if the M1 Reporting Trigger IE is set to “periodic†or “A2event-triggered periodicâ€
+-- The above IE shall be present if the M1 Reporting Trigger IE is set to the value “periodic†or “A2event-triggered periodicâ€
iE-Extensions ProtocolExtensionContainer { { M1Configuration-ExtIEs} } OPTIONAL,
...
}
@@ -3600,7 +4104,7 @@ M1Configuration ::= SEQUENCE {
M1Configuration-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
{ ID id-IncludeBeamMeasurementsIndication CRITICALITY ignore EXTENSION IncludeBeamMeasurementsIndication PRESENCE optional }|
{ ID id-BeamMeasurementsReportConfiguration CRITICALITY ignore EXTENSION BeamMeasurementsReportConfiguration PRESENCE conditional },
--- The above IE shall be present if the IncludeBeamMeasurementsIndication IE is set to “trueâ€
+-- The above IE shall be present if the Include Beam Measurements Indication IE is set to the value “trueâ€
...
}
@@ -3745,6 +4249,17 @@ N3IWF-ID-ExtIEs NGAP-PROTOCOL-IES ::= {
...
}
+N6JitterInformation ::= SEQUENCE {
+ n6JitterLowerBound INTEGER (-127..127),
+ n6JitterUpperBound INTEGER (-127..127),
+ iE-Extensions ProtocolExtensionContainer { { N6JitterInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+N6JitterInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
NAS-PDU ::= OCTET STRING
NASSecurityParametersFromNGRAN ::= OCTET STRING
@@ -3782,6 +4297,8 @@ NB-IoT-Paging-eDRXInfo-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
NB-IoT-UEPriority ::= INTEGER (0..255, ...)
+NetworkControlledRepeaterAuthorized ::= ENUMERATED {authorized, not-authorized, ...}
+
NetworkInstance ::= INTEGER (1..256, ...)
NewSecurityContextInd ::= ENUMERATED {
@@ -3870,7 +4387,7 @@ NonDynamic5QIDescriptor ::= SEQUENCE {
priorityLevelQos PriorityLevelQos OPTIONAL,
averagingWindow AveragingWindow OPTIONAL,
maximumDataBurstVolume MaximumDataBurstVolume OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { {NonDynamic5QIDescriptor-ExtIEs} } OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {NonDynamic5QIDescriptor-ExtIEs} } OPTIONAL,
...
}
@@ -3880,6 +4397,8 @@ NonDynamic5QIDescriptor-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+NoPDUSessionIndication ::= ENUMERATED {true, ...}
+
NotAllowedTACs ::= SEQUENCE (SIZE(1..maxnoofAllowedAreas)) OF TAC
NotificationCause ::= ENUMERATED {
@@ -3965,6 +4484,23 @@ NR-Paging-eDRX-Cycle ::= ENUMERATED {
...
}
+NR-Paging-Long-eDRX-Information-for-RRC-INACTIVE ::= SEQUENCE {
+ nR-paging-Long-eDRX-Cycle-for-RRC-INACTIVE NR-Paging-Long-eDRX-Cycle-for-RRC-INACTIVE,
+ nR-paging-Time-Window-for-RRC-INACTIVE NR-Paging-Time-Window-for-RRC-INACTIVE,
+ iE-Extensions ProtocolExtensionContainer { {NR-Paging-Long-eDRX-Information-for-RRC-INACTIVE-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NR-Paging-Long-eDRX-Information-for-RRC-INACTIVE-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NR-Paging-Long-eDRX-Cycle-for-RRC-INACTIVE ::= ENUMERATED {
+ hf2, hf4, hf8, hf16,
+ hf32, hf64, hf128, hf256, hf512, hf1024,
+ ...
+}
+
NR-Paging-Time-Window ::= ENUMERATED {
s1, s2, s3, s4, s5,
s6, s7, s8, s9, s10,
@@ -3974,6 +4510,15 @@ NR-Paging-Time-Window ::= ENUMERATED {
s25, s26, s27, s28, s29, s30, s31, s32
}
+NR-Paging-Time-Window-for-RRC-INACTIVE ::= ENUMERATED {
+ s1, s2, s3, s4, s5,
+ s6, s7, s8, s9, s10,
+ s11, s12, s13, s14, s15, s16,
+ s17, s18, s19, s20, s21, s22, s23, s24,
+ s25, s26, s27, s28, s29, s30, s31, s32,
+ ...
+}
+
NRencryptionAlgorithms ::= BIT STRING (SIZE(16, ...))
NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE(16, ...))
@@ -4065,6 +4610,17 @@ NRUESidelinkAggregateMaximumBitrate-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
NSAG-ID ::= INTEGER (0..255, ...)
+NR-A2X-ServicesAuthorized ::= SEQUENCE {
+ aerialUE ENUMERATED {authorized, not-authorized, ...} OPTIONAL,
+ aerialControllerUE ENUMERATED {authorized, not-authorized, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {NR-A2X-ServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NR-A2X-ServicesAuthorized-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- O
OnboardingSupport ::= ENUMERATED {
@@ -4093,7 +4649,7 @@ OverloadStartNSSAIList ::= SEQUENCE (SIZE (1..maxnoofSliceItems)) OF OverloadSta
OverloadStartNSSAIItem ::= SEQUENCE {
sliceOverloadList SliceOverloadList,
- sliceOverloadResponse OverloadResponse OPTIONAL,
+ sliceOverloadResponse OverloadResponse OPTIONAL,
sliceTrafficLoadReductionIndication TrafficLoadReductionIndication OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {OverloadStartNSSAIItem-ExtIEs} } OPTIONAL,
...
@@ -4168,6 +4724,48 @@ PagingOrigin ::= ENUMERATED {
...
}
+
+PagingPolicyDifferentiation ::= SEQUENCE {
+ pDUSessionForPagingList PDUSessionForPagingList,
+ iE-Extensions ProtocolExtensionContainer { { PagingPolicyDifferentiation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PagingPolicyDifferentiation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDUSessionForPagingList ::= SEQUENCE (SIZE(1..maxnoofPDUSessions)) OF PDUSessionForPagingItem
+
+PDUSessionForPagingItem ::= SEQUENCE {
+ pDUSessionID PDUSessionID,
+ pagingPolicyDifferentiationList PagingPolicyDifferentiationList,
+ iE-Extensions ProtocolExtensionContainer { { PDUSessionForPagingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDUSessionForPagingItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PagingPolicyDifferentiationList ::= SEQUENCE (SIZE(1..maxnoofQosFlows)) OF PagingPolicyDifferentiationItem
+
+PagingPolicyDifferentiationItem ::= SEQUENCE {
+ qosFlowIdentifier QosFlowIdentifier OPTIONAL,
+ pagingPolicyIndicator PagingPolicyIndicator OPTIONAL,
+ allocationAndRetentionPriority AllocationAndRetentionPriority OPTIONAL,
+ fiveQI FiveQI OPTIONAL,
+ dl-DataSize INTEGER (0..96000, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PagingPolicyDifferentiationItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PagingPolicyDifferentiationItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PagingPolicyIndicator ::= INTEGER (0..7, ...)
+
PagingPriority ::= ENUMERATED {
priolevel1,
priolevel2,
@@ -4185,6 +4783,20 @@ PagingProbabilityInformation ::= ENUMERATED {
...
}
+ParentTImeSource ::= ENUMERATED {synce, ptp, gnss, atomicclock, terrestrialradio, serialtimecode, ntp, handset, other, ...}
+
+Partially-Allowed-NSSAI ::= SEQUENCE (SIZE(1.. maxnoofPartiallyAllowedS-NSSAIs)) OF PartiallyAllowedNSSAI-Item
+
+PartiallyAllowedNSSAI-Item ::= SEQUENCE {
+ s-NSSAI S-NSSAI,
+ iE-Extensions ProtocolExtensionContainer { {PartiallyAllowedNSSAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PartiallyAllowedNSSAI-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
PathSwitchRequestAcknowledgeTransfer ::= SEQUENCE {
uL-NGU-UP-TNLInformation UPTransportLayerInformation OPTIONAL,
securityIndication SecurityIndication OPTIONAL,
@@ -4225,8 +4837,10 @@ PathSwitchRequestTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
{ ID id-RedundantDL-NGU-TNLInformationReused CRITICALITY ignore EXTENSION DL-NGU-TNLInformationReused PRESENCE optional }|
{ ID id-AdditionalRedundantDLQosFlowPerTNLInformation CRITICALITY ignore EXTENSION QosFlowPerTNLInformationList PRESENCE optional }|
{ ID id-UsedRSNInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional }|
- { ID id-GlobalRANNodeID CRITICALITY ignore EXTENSION GlobalRANNodeID PRESENCE optional }|
- { ID id-MBS-SupportIndicator CRITICALITY ignore EXTENSION MBS-SupportIndicator PRESENCE optional },
+ { ID id-GlobalRANNodeID CRITICALITY ignore EXTENSION GlobalRANNodeID PRESENCE optional }|
+ { ID id-MBS-SupportIndicator CRITICALITY ignore EXTENSION MBS-SupportIndicator PRESENCE optional }|
+ { ID id-PDUSetbasedHandlingIndicator CRITICALITY ignore EXTENSION PDUSetbasedHandlingIndicator PRESENCE optional }|
+ { ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional },
...
}
@@ -4248,7 +4862,7 @@ PC5QoSParameters ::= SEQUENCE {
}
PC5QoSParameters-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- ...
+ ...
}
PC5QoSFlowList ::= SEQUENCE (SIZE(1..maxnoofPC5QoSFlows)) OF PC5QoSFlowItem
@@ -4262,7 +4876,7 @@ PC5QoSFlowItem::= SEQUENCE {
}
PC5QoSFlowItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- ...
+ ...
}
PC5FlowBitRates ::= SEQUENCE {
@@ -4501,6 +5115,18 @@ PDUSessionResourceItemHORqd-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+PDUSessionListMTCommHReq ::= SEQUENCE (SIZE(1..maxnoofPDUSessions)) OF PDUSessionListMTCommHReq-Item
+
+PDUSessionListMTCommHReq-Item ::= SEQUENCE {
+ pDUSessionID PDUSessionID,
+ iE-Extensions ProtocolExtensionContainer { { PDUSessionListMTCommHReq-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDUSessionListMTCommHReq-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
PDUSessionResourceModifyConfirmTransfer ::= SEQUENCE {
qosFlowModifyConfirmList QosFlowModifyConfirmList,
uLNGU-UP-TNLInformation UPTransportLayerInformation,
@@ -4544,7 +5170,8 @@ PDUSessionResourceModifyRequestTransferIEs NGAP-PROTOCOL-IES ::= {
{ ID id-RedundantUL-NGU-UP-TNLInformation CRITICALITY ignore TYPE UPTransportLayerInformation PRESENCE optional }|
{ ID id-SecurityIndication CRITICALITY ignore TYPE SecurityIndication PRESENCE optional }|
{ ID id-MBSSessionSetuporModifyRequestList CRITICALITY ignore TYPE MBSSessionSetuporModifyRequestList PRESENCE optional }|
- { ID id-MBSSessionToReleaseList CRITICALITY ignore TYPE MBSSessionToReleaseList PRESENCE optional },
+ { ID id-MBSSessionToReleaseList CRITICALITY ignore TYPE MBSSessionToReleaseList PRESENCE optional }|
+ { ID id-UserPlaneFailureIndication CRITICALITY ignore TYPE UserPlaneFailureIndication PRESENCE optional },
...
}
@@ -4567,7 +5194,10 @@ PDUSessionResourceModifyResponseTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
{ ID id-SecondaryRATUsageInformation CRITICALITY ignore EXTENSION SecondaryRATUsageInformation PRESENCE optional }|
{ ID id-MBS-SupportIndicator CRITICALITY ignore EXTENSION MBS-SupportIndicator PRESENCE optional }|
{ ID id-MBSSessionSetuporModifyResponseList CRITICALITY ignore EXTENSION MBSSessionSetupResponseList PRESENCE optional }|
- { ID id-MBSSessionFailedtoSetuporModifyList CRITICALITY ignore EXTENSION MBSSessionFailedtoSetupList PRESENCE optional },
+ { ID id-MBSSessionFailedtoSetuporModifyList CRITICALITY ignore EXTENSION MBSSessionFailedtoSetupList PRESENCE optional }|
+ { ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional }|
+ { ID id-PDUSetbasedHandlingIndicator CRITICALITY ignore EXTENSION PDUSetbasedHandlingIndicator PRESENCE optional }|
+ { ID id-UserPlaneFailureIndicationReport CRITICALITY ignore EXTENSION UserPlaneFailureIndicationReport PRESENCE optional },
...
}
@@ -4673,7 +5303,13 @@ PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE {
}
PDUSessionResourceNotifyReleasedTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- { ID id-SecondaryRATUsageInformation CRITICALITY ignore EXTENSION SecondaryRATUsageInformation PRESENCE optional },
+ { ID id-SecondaryRATUsageInformation CRITICALITY ignore EXTENSION SecondaryRATUsageInformation PRESENCE optional }|
+ { ID id-UserPlaneErrorIndicator CRITICALITY ignore EXTENSION UserPlaneErrorIndicator PRESENCE optional },
+ ...
+}
+
+UserPlaneErrorIndicator ::= ENUMERATED {
+ gTP-U-error-indication-received,
...
}
@@ -4697,6 +5333,7 @@ PDUSessionResourceReleaseCommandTransfer ::= SEQUENCE {
}
PDUSessionResourceReleaseCommandTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-QosFlowAdditionalInfoList CRITICALITY ignore EXTENSION QosFlowAdditionalInfoListRelCom PRESENCE optional },
...
}
@@ -4758,7 +5395,8 @@ PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE {
}
PDUSessionResourceReleaseResponseTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- { ID id-SecondaryRATUsageInformation CRITICALITY ignore EXTENSION SecondaryRATUsageInformation PRESENCE optional },
+ { ID id-SecondaryRATUsageInformation CRITICALITY ignore EXTENSION SecondaryRATUsageInformation PRESENCE optional }|
+ { ID id-QosFlowAdditionalInfoList CRITICALITY ignore EXTENSION QosFlowAdditionalInfoListRelRes PRESENCE optional },
...
}
@@ -4894,7 +5532,8 @@ PDUSessionResourceSetupRequestTransferIEs NGAP-PROTOCOL-IES ::= {
{ ID id-AdditionalRedundantUL-NGU-UP-TNLInformation CRITICALITY ignore TYPE UPTransportLayerInformationList PRESENCE optional }|
{ ID id-RedundantCommonNetworkInstance CRITICALITY ignore TYPE CommonNetworkInstance PRESENCE optional }|
{ ID id-RedundantPDUSessionInformation CRITICALITY ignore TYPE RedundantPDUSessionInformation PRESENCE optional }|
- { ID id-MBSSessionSetupRequestList CRITICALITY ignore TYPE MBSSessionSetupRequestList PRESENCE optional },
+ { ID id-MBSSessionSetupRequestList CRITICALITY ignore TYPE MBSSessionSetupRequestList PRESENCE optional }|
+ { ID id-DownlinkTLContainer CRITICALITY ignore TYPE TLContainer PRESENCE optional },
...
}
@@ -4911,10 +5550,14 @@ PDUSessionResourceSetupResponseTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
{ ID id-RedundantDLQosFlowPerTNLInformation CRITICALITY ignore EXTENSION QosFlowPerTNLInformation PRESENCE optional }|
{ ID id-AdditionalRedundantDLQosFlowPerTNLInformation CRITICALITY ignore EXTENSION QosFlowPerTNLInformationList PRESENCE optional }|
{ ID id-UsedRSNInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional }|
- { ID id-GlobalRANNodeID CRITICALITY ignore EXTENSION GlobalRANNodeID PRESENCE optional }|
+ { ID id-GlobalRANNodeID CRITICALITY ignore EXTENSION GlobalRANNodeID PRESENCE optional }|
{ ID id-MBS-SupportIndicator CRITICALITY ignore EXTENSION MBS-SupportIndicator PRESENCE optional }|
{ ID id-MBSSessionSetupResponseList CRITICALITY ignore EXTENSION MBSSessionSetupResponseList PRESENCE optional }|
- { ID id-MBSSessionFailedtoSetupList CRITICALITY ignore EXTENSION MBSSessionFailedtoSetupList PRESENCE optional },
+ { ID id-MBSSessionFailedtoSetupList CRITICALITY ignore EXTENSION MBSSessionFailedtoSetupList PRESENCE optional }|
+ { ID id-QoSFlowTSCList CRITICALITY ignore EXTENSION QoSFlowTSCList PRESENCE optional }|
+ { ID id-UplinkTLContainer CRITICALITY ignore EXTENSION TLContainer PRESENCE optional }|
+ { ID id-ECNMarkingorCongestionInformationReportingStatus CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingStatus PRESENCE optional }|
+ { ID id-PDUSetbasedHandlingIndicator CRITICALITY ignore EXTENSION PDUSetbasedHandlingIndicator PRESENCE optional },
...
}
@@ -4994,6 +5637,7 @@ PDUSessionResourceToReleaseItemRelCmd ::= SEQUENCE {
PDUSessionResourceToReleaseItemRelCmd-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+
PDUSessionType ::= ENUMERATED {
ipv4,
ipv6,
@@ -5014,6 +5658,31 @@ PDUSessionUsageReport-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+PDUsetQoSParameters ::= SEQUENCE {
+ ulPDUSetQoSInformation PDUsetQoSInformation OPTIONAL,
+ dlPDUSetQoSInformation PDUsetQoSInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUsetQoSParameters-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDUsetQoSParameters-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDUsetQoSInformation ::= SEQUENCE {
+ pduSetDelayBudget ExtendedPacketDelayBudget OPTIONAL,
+ pduSetErrorRate PacketErrorRate OPTIONAL,
+ pduSetIntegratedHandlingInformation ENUMERATED {true, false, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUsetQoSInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+PDUsetQoSInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDUSetbasedHandlingIndicator ::= ENUMERATED {supported, ...}
+
PEIPSassistanceInformation ::= SEQUENCE {
cNsubgroupID CNsubgroupID,
iE-Extensions ProtocolExtensionContainer { {PEIPSassistanceInformation-ExtIEs} } OPTIONAL,
@@ -5026,6 +5695,39 @@ PEIPSassistanceInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
Periodicity ::= INTEGER (0..640000, ...)
+PeriodicityBound ::= SEQUENCE {
+ periodicityLowerBound Periodicity,
+ periodicityUpperBound Periodicity,
+ iE-Extensions ProtocolExtensionContainer { {PeriodicityBound-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PeriodicityBound-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PeriodicityList ::= SEQUENCE {
+ allowedPeriodicityList AllowedPeriodicityList,
+ iE-Extensions ProtocolExtensionContainer { {PeriodicityList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PeriodicityList-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AllowedPeriodicityList ::= SEQUENCE (SIZE(1..maxnoofPeriodicities)) OF Periodicity
+
+PeriodicityRange ::= CHOICE {
+ periodicityBound PeriodicityBound,
+ periodicityList AllowedPeriodicityList,
+ choice-extensions ProtocolIE-SingleContainer { {PeriodicityRange-ExtIEs} }
+}
+
+PeriodicityRange-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
PeriodicRegistrationUpdateTimer ::= BIT STRING (SIZE(8))
PLMNIdentity ::= OCTET STRING (SIZE(3))
@@ -5096,6 +5798,26 @@ PWSFailedCellIDList-ExtIEs NGAP-PROTOCOL-IES ::= {
...
}
+PNI-NPN-AreaScopeofMDT ::= SEQUENCE {
+ cAGListforMDT CAGListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {PNI-NPN-AreaScopeofMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PNI-NPN-AreaScopeofMDT-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PNI-NPNBasedMDT::= SEQUENCE {
+ cAGListforMDT CAGListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {PNI-NPNBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PNI-NPNBasedMDT-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- Q
QMCConfigInfo ::= SEQUENCE {
@@ -5122,6 +5844,18 @@ QoEReferenceList ::= SEQUENCE (SIZE(1..maxnoofUEAppLayerMeas)) OF QoEReference
QoEReference ::= OCTET STRING (SIZE(6))
+QoERVQoEReportingPaths ::= SEQUENCE {
+ qoEReportingPath ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ rVQoEReportingPath ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QoERVQoEReportingPaths-ExtIEs} },
+ ...
+}
+
+QoERVQoEReportingPaths-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
QosCharacteristics ::= CHOICE {
nonDynamic5QI NonDynamic5QIDescriptor,
dynamic5QI Dynamic5QIDescriptor,
@@ -5145,6 +5879,33 @@ QosFlowAcceptedItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+QosFlowAdditionalInfoListRelCom ::= SEQUENCE (SIZE(1..maxnoofQosFlows)) OF QosFlowAdditionalInfoItemRelCom
+
+QosFlowAdditionalInfoItemRelCom ::= SEQUENCE {
+ qosFlowIdentifier QosFlowIdentifier,
+ downlinkTLContainer TLContainer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QosFlowAdditionalInfoItemRelCom-ExtIEs} } OPTIONAL,
+ ...
+}
+
+QosFlowAdditionalInfoItemRelCom-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+QosFlowAdditionalInfoListRelRes ::= SEQUENCE (SIZE(1..maxnoofQosFlows)) OF QosFlowAdditionalInfoItemRelRes
+
+QosFlowAdditionalInfoItemRelRes ::= SEQUENCE {
+ qosFlowIdentifier QosFlowIdentifier,
+ uplinkTLContainer TLContainer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QosFlowAdditionalInfoItemRelRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+QosFlowAdditionalInfoItemRelRes-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
QosFlowAddOrModifyRequestList ::= SEQUENCE (SIZE(1..maxnoofQosFlows)) OF QosFlowAddOrModifyRequestItem
QosFlowAddOrModifyRequestItem ::= SEQUENCE {
@@ -5156,8 +5917,11 @@ QosFlowAddOrModifyRequestItem ::= SEQUENCE {
}
QosFlowAddOrModifyRequestItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- {ID id-TSCTrafficCharacteristics CRITICALITY ignore EXTENSION TSCTrafficCharacteristics PRESENCE optional }|
- {ID id-RedundantQosFlowIndicator CRITICALITY ignore EXTENSION RedundantQosFlowIndicator PRESENCE optional },
+ {ID id-TSCTrafficCharacteristics CRITICALITY ignore EXTENSION TSCTrafficCharacteristics PRESENCE optional }|
+ {ID id-RedundantQosFlowIndicator CRITICALITY ignore EXTENSION RedundantQosFlowIndicator PRESENCE optional }|
+ {ID id-UL-NGU-UP-TNLInformation CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional }|
+ {ID id-DownlinkTLContainer CRITICALITY ignore EXTENSION TLContainer PRESENCE optional }|
+ {ID id-ECNMarkingorCongestionInformationReportingRequest CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingRequest PRESENCE optional },
...
}
@@ -5170,7 +5934,11 @@ QosFlowAddOrModifyResponseItem ::= SEQUENCE {
}
QosFlowAddOrModifyResponseItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION AlternativeQoSParaSetIndex PRESENCE optional },
+ { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION AlternativeQoSParaSetIndex PRESENCE optional }|
+ { ID id-TSCTrafficCharacteristicsFeedback CRITICALITY ignore EXTENSION TSCTrafficCharacteristicsFeedback PRESENCE optional }|
+ { ID id-UplinkTLContainer CRITICALITY ignore EXTENSION TLContainer PRESENCE optional }|
+ { ID id-DL-NGU-UP-TNLInformation CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional }|
+ { ID id-ANPacketDelayBudgetUL CRITICALITY ignore EXTENSION ExtendedPacketDelayBudget PRESENCE optional },
...
}
@@ -5218,8 +5986,9 @@ QosFlowLevelQosParameters ::= SEQUENCE {
}
QosFlowLevelQosParameters-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- {ID id-QosMonitoringRequest CRITICALITY ignore EXTENSION QosMonitoringRequest PRESENCE optional}|
- {ID id-QosMonitoringReportingFrequency CRITICALITY ignore EXTENSION QosMonitoringReportingFrequency PRESENCE optional},
+ {ID id-QosMonitoringRequest CRITICALITY ignore EXTENSION QosMonitoringRequest PRESENCE optional}|
+ {ID id-QosMonitoringReportingFrequency CRITICALITY ignore EXTENSION QosMonitoringReportingFrequency PRESENCE optional}|
+ {ID id-PDUsetQoSParameters CRITICALITY ignore EXTENSION PDUsetQoSParameters PRESENCE optional},
...
}
@@ -5265,7 +6034,8 @@ QosFlowNotifyItem ::= SEQUENCE {
}
QosFlowNotifyItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION AlternativeQoSParaSetNotifyIndex PRESENCE optional },
+ { ID id-CurrentQoSParaSetIndex CRITICALITY ignore EXTENSION AlternativeQoSParaSetNotifyIndex PRESENCE optional }|
+ { ID id-TSCTrafficCharacteristicsFeedback CRITICALITY ignore EXTENSION TSCTrafficCharacteristicsFeedback PRESENCE optional },
...
}
QosFlowParametersList ::= SEQUENCE (SIZE(1..maxnoofQosFlows)) OF QosFlowParametersItem
@@ -5319,7 +6089,8 @@ QosFlowSetupRequestItem ::= SEQUENCE {
QosFlowSetupRequestItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
{ID id-TSCTrafficCharacteristics CRITICALITY ignore EXTENSION TSCTrafficCharacteristics PRESENCE optional }|
- {ID id-RedundantQosFlowIndicator CRITICALITY ignore EXTENSION RedundantQosFlowIndicator PRESENCE optional },
+ {ID id-RedundantQosFlowIndicator CRITICALITY ignore EXTENSION RedundantQosFlowIndicator PRESENCE optional }|
+ {ID id-ECNMarkingorCongestionInformationReportingRequest CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingRequest PRESENCE optional },
...
}
@@ -5349,6 +6120,20 @@ QosFlowToBeForwardedItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+QoSFlowTSCList ::= SEQUENCE (SIZE(1..maxnoofQosFlows)) OF QoSFlowTSCItem
+
+QoSFlowTSCItem ::= SEQUENCE {
+ qosFlowIdentifier QosFlowIdentifier,
+ tSCTrafficCharacteristicsFeedback TSCTrafficCharacteristicsFeedback OPTIONAL,
+ aNPacketDelayBudgetUL ExtendedPacketDelayBudget OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QoSFlowTSCItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+QoSFlowTSCItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
QoSFlowsUsageReportList ::= SEQUENCE (SIZE(1..maxnoofQosFlows)) OF QoSFlowsUsageReport-Item
QoSFlowsUsageReport-Item ::= SEQUENCE {
@@ -5365,6 +6150,37 @@ QoSFlowsUsageReport-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
-- R
+RANfeedbacktype ::= CHOICE {
+ proactive RANfeedbacktype-proactive,
+ reactive RANfeedbacktype-reactive,
+ choice-extensions ProtocolIE-SingleContainer { {RANfeedbacktype-ExtIEs} }
+}
+
+RANfeedbacktype-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RANfeedbacktype-proactive ::= SEQUENCE {
+ burstArrivalTimeWindow BurstArrivalTimeWindow,
+ periodicityRange PeriodicityRange OPTIONAL,
+ iE-Extension ProtocolExtensionContainer { {RANfeedbacktype-proactive-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RANfeedbacktype-proactive-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RANfeedbacktype-reactive ::= SEQUENCE {
+ capabilityForBATAdaptation ENUMERATED {true, ...},
+ iE-Extension ProtocolExtensionContainer { {RANfeedbacktype-reactive-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RANfeedbacktype-reactive-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
Range ::= ENUMERATED {m50, m80, m180, m200, m350, m400, m500, m700, m1000, ...}
RANNodeName ::= PrintableString (SIZE(1..150, ...))
@@ -5385,6 +6201,46 @@ RANStatusTransfer-TransparentContainer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+RANTimingSynchronisationStatusInfo ::= SEQUENCE {
+ synchronisationState ENUMERATED {locked, holdover, freerun, ...} OPTIONAL,
+ traceabletoUTC ENUMERATED {true, false, ...} OPTIONAL,
+ traceabletoGNSS ENUMERATED {true, false, ...} OPTIONAL,
+ clockFrequencyStability BIT STRING (SIZE(16)) OPTIONAL,
+ clockAccuracy ClockAccuracy OPTIONAL,
+ parentTImeSource ParentTImeSource OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RANTimingSynchronisationStatusInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RANTimingSynchronisationStatusInfo-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RAN-TSSRequestType ::= ENUMERATED {start, stop, ...}
+
+
+RAN-TSSScope ::= CHOICE {
+ rANNodeLevel GlobalGNB-ID,
+ cellListLevel RANTSSCellList,
+ choice-Extensions ProtocolIE-SingleContainer { { RAN-TSSScope-ExtIEs} }
+}
+
+RAN-TSSScope-ExtIEs NGAP-PROTOCOL-IES ::= {
+ ...
+}
+
+RANTSSCellList ::= SEQUENCE (SIZE(1..maxnoofCellsTSS)) OF RANTSSCellItem
+
+RANTSSCellItem ::= SEQUENCE {
+ nRCGI NR-CGI,
+ iE-Extensions ProtocolExtensionContainer { {RANTSSCellItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RANTSSCellItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
RAN-UE-NGAP-ID ::= INTEGER (0..4294967295)
RAT-Information ::= ENUMERATED {
@@ -5588,6 +6444,32 @@ RIMInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
GNBSetID ::= BIT STRING (SIZE(22))
+RSPPQoSFlowList ::= SEQUENCE (SIZE(1..maxnoofRSPPQoSFlows)) OF RSPPQoSFlowItem
+
+RSPPQoSFlowItem ::= SEQUENCE {
+ pQI FiveQI,
+ rSPPFlowBitRates RSPPFlowBitRates OPTIONAL,
+ range Range OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RSPPQoSFlowItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPPQoSFlowItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RSPPFlowBitRates ::= SEQUENCE {
+ guaranteedFlowBitRate BitRate,
+ maximumFlowBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { { RSPPFlowBitRates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPPFlowBitRates-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- S
ScheduledCommunicationTime ::= SEQUENCE {
@@ -5641,8 +6523,8 @@ SecurityContext-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
SecurityIndication ::= SEQUENCE {
integrityProtectionIndication IntegrityProtectionIndication,
confidentialityProtectionIndication ConfidentialityProtectionIndication,
- maximumIntegrityProtectedDataRate-UL MaximumIntegrityProtectedDataRate OPTIONAL,
--- The above IE shall be present if integrity protection is required or preferred
+ maximumIntegrityProtectedDataRate-UL MaximumIntegrityProtectedDataRate OPTIONAL,
+-- The above IE shall be present if the Integrity Protection Indication IE is set to the value “required†or “preferredâ€
iE-Extensions ProtocolExtensionContainer { {SecurityIndication-ExtIEs} } OPTIONAL,
...
}
@@ -5667,7 +6549,7 @@ SecurityResult-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
SensorMeasurementConfiguration ::= SEQUENCE {
sensorMeasConfig SensorMeasConfig,
- sensorMeasConfigNameList SensorMeasConfigNameList OPTIONAL,
+ sensorMeasConfigNameList SensorMeasConfigNameList OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {SensorMeasurementConfiguration-ExtIEs} } OPTIONAL,
...
}
@@ -5790,6 +6672,7 @@ SNPN-MobilityInformation ::= SEQUENCE {
}
SNPN-MobilityInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ {ID id-EquivalentSNPNsList CRITICALITY reject EXTENSION EquivalentSNPNsList PRESENCE optional},
...
}
@@ -5809,7 +6692,7 @@ SONConfigurationTransfer ::= SEQUENCE {
sourceRANNodeID SourceRANNodeID,
sONInformation SONInformation,
xnTNLConfigurationInfo XnTNLConfigurationInfo OPTIONAL,
--- The above IE shall be present if the SON Information IE contains the SON Information Request IE set to “Xn TNL Configuration Infoâ€
+-- The above IE shall be present if the SON Information IE contains the SON Information Request IE set to the value “Xn TNL Configuration Infoâ€
iE-Extensions ProtocolExtensionContainer { {SONConfigurationTransfer-ExtIEs} } OPTIONAL,
...
}
@@ -5846,7 +6729,78 @@ SONInformationReport::= CHOICE {
}
SONInformationReport-ExtIEs NGAP-PROTOCOL-IES ::= {
- { ID id-SuccessfulHandoverReportList CRITICALITY ignore TYPE SuccessfulHandoverReportList PRESENCE mandatory },
+ { ID id-SuccessfulHandoverReportList CRITICALITY ignore TYPE SuccessfulHandoverReportList PRESENCE mandatory }|
+ { ID id-SuccessfulPSCellChangeReportList CRITICALITY ignore TYPE SuccessfulPSCellChangeReportList PRESENCE mandatory },
+ ...
+}
+
+SNPN-CellBasedMDT::= SEQUENCE {
+ sNPNcellIdListforMDT SNPNCellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-CellBasedMDT-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNPNCellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF SNPNCellIdListforMDTItem
+
+SNPNCellIdListforMDTItem ::= SEQUENCE {
+ nR-CGI NR-CGI,
+ nID NID,
+ iE-Extensions ProtocolExtensionContainer {{ SNPNCellIdListforMDTItem-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SNPNCellIdListforMDTItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SNPN-TAIBasedMDT::= SEQUENCE {
+ sNPNTAIListforMDT SNPNTAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-TAIBasedMDT-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNPNTAIListforMDT ::= SEQUENCE (SIZE(1.. maxnoofTAforMDT)) OF SNPNTAIListforMDTItem
+
+SNPNTAIListforMDTItem ::= SEQUENCE {
+ tAI TAI,
+ nID NID,
+ iE-Extensions ProtocolExtensionContainer {{ SNPNTAIListforMDTItem-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SNPNTAIListforMDTItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNPN-BasedMDT::= SEQUENCE {
+ sNPNListforMDT SNPNListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-BasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-BasedMDT-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNPNListforMDT ::= SEQUENCE (SIZE(1.. maxnoofMDTSNPNs)) OF SNPNListforMDTItem
+
+SNPNListforMDTItem ::= SEQUENCE {
+ pLMNIdentity PLMNIdentity,
+ nID NID,
+ iE-Extensions ProtocolExtensionContainer {{ SNPNListforMDTItem-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SNPNListforMDTItem-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
@@ -5866,6 +6820,18 @@ SuccessfulHandoverReport-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+SuccessfulPSCellChangeReportList ::= SEQUENCE (SIZE(1..maxnoofSuccessfulPSCellChangeReports)) OF SuccessfulPSCellChangeReport-Item
+
+SuccessfulPSCellChangeReport-Item ::= SEQUENCE {
+ successfulPSCellChangeReportContainer OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer { { SuccessfulPSCellChangeReport-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SuccessfulPSCellChangeReport-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
SONInformationRequest ::= ENUMERATED {
xn-TNL-configuration-info,
...
@@ -5889,7 +6855,10 @@ SourceNGRANNode-ToTargetNGRANNode-TransparentContainer-ExtIEs NGAP-PROTOCOL-EXTE
{ ID id-UEContextReferenceAtSource CRITICALITY ignore EXTENSION RAN-UE-NGAP-ID PRESENCE optional }|
{ ID id-MBS-ActiveSessionInformation-SourcetoTargetList CRITICALITY ignore EXTENSION MBS-ActiveSessionInformation-SourcetoTargetList PRESENCE optional }|
{ ID id-QMCConfigInfo CRITICALITY ignore EXTENSION QMCConfigInfo PRESENCE optional }|
- { ID id-NGAPIESupportInformationRequestList CRITICALITY ignore EXTENSION NGAPIESupportInformationRequestList PRESENCE optional },
+ { ID id-NGAPIESupportInformationRequestList CRITICALITY ignore EXTENSION NGAPIESupportInformationRequestList PRESENCE optional }|
+ { ID id-CandidateRelayUEInformationList CRITICALITY reject EXTENSION CandidateRelayUEInformationList PRESENCE optional }|
+ { ID id-TimeBasedHandoverInformation CRITICALITY ignore EXTENSION TimeBasedHandoverInformation PRESENCE optional }|
+ { ID id-SourceSN-to-TargetSN-QMCInfo CRITICALITY ignore EXTENSION QMCConfigInfo PRESENCE optional },
...
}
@@ -5984,6 +6953,35 @@ Suspend-Response-Indication ::= ENUMERATED {
SurvivalTime ::= INTEGER (0..1920000, ...)
+SLPositioningRangingServiceInfo ::= SEQUENCE{
+ sLPositioningRangingAuthorized SLPositioningRangingAuthorized,
+ sLPositioningRangingQoSParameters SLPositioningRangingQoSParameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SLPositioningRangingServiceInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SLPositioningRangingServiceInfo-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SLPositioningRangingAuthorized ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+SLPositioningRangingQoSParameters ::= SEQUENCE {
+ rSPPQoSFlowList RSPPQoSFlowList,
+ rSPPLinkAggregateBitRates BitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SLPositioningRangingQoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SLPositioningRangingQoSParameters-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- T
@@ -6169,7 +7167,7 @@ TargetNSSAI-Item-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
TargetNSSAIInformation ::= SEQUENCE {
targetNSSAI TargetNSSAI,
- indexToRFSP IndexToRFSP,
+ indexToRFSP IndexToRFSP,
iE-Extensions ProtocolExtensionContainer { {TargetNSSAIInformation-Item-ExtIEs} } OPTIONAL,
...
}
@@ -6186,6 +7184,7 @@ TargetRANNodeID ::= SEQUENCE {
}
TargetRANNodeID-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ {ID id-Selected-Target-SNPN-Identity CRITICALITY reject EXTENSION NID PRESENCE optional },
...
}
@@ -6232,22 +7231,40 @@ TargettoSource-Failure-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 encoded according to the specifications of the target system (if applicable).
+TimeBasedHandoverInformation ::= SEQUENCE {
+ hOWindowStart HandoverWindowStart,
+ hOWindowDuration HandoverWindowDuration,
+ iE-Extensions ProtocolExtensionContainer { {TimeBasedHandoverInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeBasedHandoverInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HandoverWindowStart ::= INTEGER (0..549755813887)
+
+HandoverWindowDuration ::= INTEGER (1..6000)
+
TimerApproachForGUAMIRemoval ::= ENUMERATED {
apply-timer,
...
}
+TimeSinceFailure ::= INTEGER (0..172800, ...)
+
TimeStamp ::= OCTET STRING (SIZE(4))
TimeSyncAssistanceInfo ::= SEQUENCE {
timeDistributionIndication ENUMERATED {enabled, disabled, ...},
uUTimeSyncErrorBudget INTEGER (1..1000000, ...) OPTIONAL,
- -- The above IE shall be present if the Time Distribution Indication IE is set to the value “enabledâ€
+-- The above IE shall be present if the Time Distribution Indication IE is set to the value “enabledâ€
iE-Extensions ProtocolExtensionContainer { {TimeSyncAssistanceInfo-ExtIEs} } OPTIONAL,
...
}
TimeSyncAssistanceInfo-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ClockQualityReportingControlInfo CRITICALITY ignore EXTENSION ClockQualityReportingControlInfo PRESENCE optional},
...
}
@@ -6307,8 +7324,8 @@ TooearlyIntersystemHO-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
TraceActivation ::= SEQUENCE {
nGRANTraceID NGRANTraceID,
interfacesToTrace InterfacesToTrace,
-traceDepth TraceDepth,
-traceCollectionEntityIPAddress TransportLayerAddress,
+ traceDepth TraceDepth,
+ traceCollectionEntityIPAddress TransportLayerAddress,
iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
...
}
@@ -6396,6 +7413,8 @@ Threshold-SINR ::= INTEGER(0..127)
TimeToTrigger ::= ENUMERATED {ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, ms5120}
+TLContainer ::= OCTET STRING
+
TWAP-ID ::= OCTET STRING
@@ -6416,7 +7435,9 @@ TSCAssistanceInformation ::= SEQUENCE {
}
TSCAssistanceInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- { ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional},
+ { ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional}|
+ { ID id-RANfeedbacktype CRITICALITY ignore EXTENSION RANfeedbacktype PRESENCE optional}|
+ { ID id-N6JitterInformation CRITICALITY ignore EXTENSION N6JitterInformation PRESENCE optional},
...
}
@@ -6431,6 +7452,28 @@ TSCTrafficCharacteristics-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+TSCTrafficCharacteristicsFeedback ::= SEQUENCE {
+ tSCFeedbackInformationDL TSCFeedbackInformation OPTIONAL,
+ tSCFeedbackInformationUL TSCFeedbackInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TSCTrafficCharacteristicsFeedback-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TSCTrafficCharacteristicsFeedback-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TSCFeedbackInformation ::= SEQUENCE {
+ burstArrivalTimeOffset INTEGER (-640000..640000, ...),
+ adjustedPeriodicity Periodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { TSCFeedbackInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TSCFeedbackInformation-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- U
UEAggregateMaximumBitRate ::= SEQUENCE {
@@ -6459,19 +7502,22 @@ UEAppLayerMeasInfoItem-ExtIEs NGAP-PROTOCOL-EXTENSION::= {
UEAppLayerMeasConfigInfo ::= SEQUENCE {
qoEReference QoEReference,
serviceType ServiceType,
- areaScopeOfQMC AreaScopeOfQMC OPTIONAL,
+ areaScopeOfQMC AreaScopeOfQMC OPTIONAL,
measCollEntityIPAddress TransportLayerAddress,
- qoEMeasurementStatus ENUMERATED {ongoing,...} OPTIONAL,
+ qoEMeasurementStatus ENUMERATED {ongoing,...} OPTIONAL,
containerForAppLayerMeasConfig OCTET STRING (SIZE(1..8000)) OPTIONAL,
- measConfigAppLayerID INTEGER (0..15, ...) OPTIONAL,
+ measConfigAppLayerID INTEGER (0..15, ...) OPTIONAL,
sliceSupportListQMC SliceSupportListQMC OPTIONAL,
- mDT-AlignmentInfo MDT-AlignmentInfo OPTIONAL,
- availableRANVisibleQoEMetrics AvailableRANVisibleQoEMetrics OPTIONAL,
+ mDT-AlignmentInfo MDT-AlignmentInfo OPTIONAL,
+ availableRANVisibleQoEMetrics AvailableRANVisibleQoEMetrics OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { UEAppLayerMeasConfigInfo-ExtIEs} } OPTIONAL,
...
}
UEAppLayerMeasConfigInfo-ExtIEs NGAP-PROTOCOL-EXTENSION::= {
+ { ID id-AssistanceInformationQoE-Meas CRITICALITY ignore EXTENSION AssistanceInformationQoE-Meas PRESENCE optional }|
+ { ID id-MBSCommServiceType CRITICALITY ignore EXTENSION MBSCommServiceType PRESENCE optional }|
+ { ID id-QoERVQoEReportingPaths CRITICALITY ignore EXTENSION QoERVQoEReportingPaths PRESENCE optional },
...
}
@@ -6527,10 +7573,10 @@ UEContextSuspendRequestTransfer-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
}
UE-DifferentiationInfo ::= SEQUENCE {
- periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ... } OPTIONAL,
- periodicTime INTEGER (1..3600, ...) OPTIONAL,
- scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL,
- stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL,
+ periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ... } OPTIONAL,
+ periodicTime INTEGER (1..3600, ...) OPTIONAL,
+ scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL,
+ stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL,
trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL,
batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { UE-DifferentiationInfo-ExtIEs} } OPTIONAL,
@@ -6849,9 +7895,36 @@ UserLocationInformationNR ::= SEQUENCE {
}
UserLocationInformationNR-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
- { ID id-PSCellInformation CRITICALITY ignore EXTENSION NGRAN-CGI PRESENCE optional }|
- { ID id-NID CRITICALITY reject EXTENSION NID PRESENCE optional }|
- { ID id-NRNTNTAIInformation CRITICALITY ignore EXTENSION NRNTNTAIInformation PRESENCE optional },
+ { ID id-PSCellInformation CRITICALITY ignore EXTENSION NGRAN-CGI PRESENCE optional }|
+ { ID id-NID CRITICALITY reject EXTENSION NID PRESENCE optional }|
+ { ID id-NRNTNTAIInformation CRITICALITY ignore EXTENSION NRNTNTAIInformation PRESENCE optional }|
+ { ID id-MobileIAB-MTUserLocationInformation CRITICALITY ignore EXTENSION MobileIAB-MTUserLocationInformation PRESENCE optional },
+ ...
+}
+
+UserPlaneFailureIndication ::= SEQUENCE {
+ userPlaneFailureType UserPlaneFailureType,
+ uL-NGU-UP-TNLInformation UPTransportLayerInformation,
+ dL-NGU-UP-TNLInformation UPTransportLayerInformation,
+ iE-Extensions ProtocolExtensionContainer { { UserPlaneFailureIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneFailureIndication-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserPlaneFailureIndicationReport ::= ENUMERATED {
+ tunnel-to-be-released,
+ qoS-flows-to-be-moved,
+ new-transport-address-allocated,
+ ...
+}
+
+
+UserPlaneFailureType ::= ENUMERATED {
+ gtp-u-error-indication-received,
+ up-path-failure,
...
}
@@ -6984,6 +8057,8 @@ XnTNLConfigurationInfo-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
...
}
+XrDeviceWith2Rx ::= ENUMERATED {true, ...}
+
-- Y
-- Z
diff --git a/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn b/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn
index 453c9239..1b04850a 100644
--- a/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.5.0 (2023-06)
+-- 3GPP TS 38.413 V18.2.0 (2024-06)
-- 9.4.4 PDU Definitions
-- **************************************************************
--
@@ -22,6 +22,8 @@ BEGIN
IMPORTS
+ A2X-PC5-QoS-Parameters,
+ AerialUEsubscriptionInformation,
AllowedNSSAI,
AMFName,
AMFSetID,
@@ -31,9 +33,13 @@ IMPORTS
AMF-TNLAssociationToUpdateList,
AMF-UE-NGAP-ID,
AssistanceDataForPaging,
+ AssociatedSessionID,
AuthenticatedIndication,
BroadcastCancelledAreaList,
BroadcastCompletedAreaList,
+ BroadcastTransportFailureTransfer,
+ BroadcastTransportRequestTransfer,
+ BroadcastTransportResponseTransfer,
CancelAllWarningMessages,
Cause,
CellIDListForRestart,
@@ -45,8 +51,9 @@ IMPORTS
CPTransportLayerInformation,
CriticalityDiagnostics,
DataCodingScheme,
- DL-CP-SecurityInformation,
DirectForwardingPathAvailability,
+ DL-CP-SecurityInformation,
+ DL-Signalling,
EarlyStatusTransfer-TransparentContainer,
EDT-Session,
EmergencyAreaIDListForRestart,
@@ -54,11 +61,13 @@ IMPORTS
EN-DCSONConfigurationTransfer,
EndIndication,
Enhanced-CoverageRestriction,
+ ERedCapIndication,
EUTRA-CGI,
EUTRA-PagingeDRXInformation,
Extended-AMFName,
Extended-ConnectedTime,
Extended-RANNodeName,
+ FiveGCAction,
FiveG-ProSeAuthorized,
FiveG-ProSePC5QoSParameters,
FiveG-S-TMSI,
@@ -67,63 +76,75 @@ IMPORTS
HandoverFlag,
HandoverType,
IAB-Authorized,
- IAB-Supported,
IABNodeIndication,
+ IAB-Supported,
IMSVoiceSupportIndicator,
IndexToRFSP,
InfoOnRecommendedCellsAndRANNodesForPaging,
IntersystemSONConfigurationTransfer,
LAI,
- LTEM-Indication,
LocationReportingRequestType,
+ LTE-A2X-ServicesAuthorized,
+ LTEM-Indication,
LTEUESidelinkAggregateMaximumBitrate,
LTEV2XServicesAuthorized,
MaskedIMEISV,
MBS-AreaSessionID,
- MBS-ServiceArea,
- MBS-SessionID,
MBS-DistributionReleaseRequestTransfer,
MBS-DistributionSetupRequestTransfer,
MBS-DistributionSetupResponseTransfer,
MBS-DistributionSetupUnsuccessfulTransfer,
+ MBS-ServiceArea,
+ MBS-SessionID,
MBSSessionReleaseResponseTransfer,
MBSSessionSetupOrModFailureTransfer,
MBSSessionSetupOrModRequestTransfer,
MBSSessionSetupOrModResponseTransfer,
- MessageIdentifier,
MDTPLMNList,
MDTPLMNModificationList,
+ MessageIdentifier,
+ MobileIAB-Authorized,
+ MobileIABNodeIndication,
+ MobileIAB-Supported,
MobilityRestrictionList,
+ MulticastGroupPagingAreaList,
MulticastSessionActivationRequestTransfer,
MulticastSessionDeactivationRequestTransfer,
MulticastSessionUpdateRequestTransfer,
- MulticastGroupPagingAreaList,
NAS-PDU,
NASSecurityParametersFromNGRAN,
NB-IoT-DefaultPagingDRX,
NB-IoT-PagingDRX,
NB-IoT-Paging-eDRXInfo,
NB-IoT-UEPriority,
+ NetworkControlledRepeaterAuthorized,
NewSecurityContextInd,
NGRAN-CGI,
NGRAN-TNLAssociationToRemoveList,
NGRANTraceID,
+ NID,
+ NoPDUSessionIndication,
NotifySourceNGRANNode,
NPN-AccessInformation,
+ NR-A2X-ServicesAuthorized,
NR-CGI,
NR-PagingeDRXInformation,
NRPPa-PDU,
- NumberOfBroadcastsRequested,
NRUESidelinkAggregateMaximumBitrate,
NRV2XServicesAuthorized,
+ NumberOfBroadcastsRequested,
OverloadResponse,
OverloadStartNSSAIList,
PagingAssisDataforCEcapabUE,
PagingCause,
PagingDRX,
PagingOrigin,
+ PagingPolicyDifferentiation,
PagingPriority,
+ Partially-Allowed-NSSAI,
+ PC5QoSParameters,
PDUSessionAggregateMaximumBitRate,
+ PDUSessionListMTCommHReq,
PDUSessionResourceAdmittedList,
PDUSessionResourceFailedToModifyListModCfm,
PDUSessionResourceFailedToModifyListModRes,
@@ -165,12 +186,14 @@ IMPORTS
PLMNSupportList,
PrivacyIndicator,
PWSFailedCellIDList,
- PC5QoSParameters,
QMCConfigInfo,
QMCDeactivation,
RANNodeName,
RANPagingPriority,
RANStatusTransfer-TransparentContainer,
+ RANTimingSynchronisationStatusInfo,
+ RAN-TSSRequestType,
+ RAN-TSSScope,
RAN-UE-NGAP-ID,
RedCapIndication,
RedirectionVoiceFallback,
@@ -178,6 +201,7 @@ IMPORTS
RepetitionPeriod,
ResetType,
RGLevelWirelineAccessCharacteristics,
+ RIMInformationTransfer,
RoutingID,
RRCEstablishmentCause,
RRCInactiveTransitionReportRequest,
@@ -187,10 +211,11 @@ IMPORTS
SerialNumber,
ServedGUAMIList,
SliceSupportList,
+ SLPositioningRangingServiceInfo,
S-NSSAI,
SONConfigurationTransfer,
- SourceToTarget-TransparentContainer,
SourceToTarget-AMFInformationReroute,
+ SourceToTarget-TransparentContainer,
SRVCCOperationPossible,
SupportedTAList,
Suspend-Request-Indication,
@@ -200,8 +225,8 @@ IMPORTS
TAIListForRestart,
TargetID,
TargetNSSAIInformation,
- TargetToSource-TransparentContainer,
TargettoSource-Failure-TransparentContainer,
+ TargetToSource-TransparentContainer,
TimeSyncAssistanceInfo,
TimeToWait,
TNLAssociationList,
@@ -233,7 +258,7 @@ IMPORTS
WarningSecurityInfo,
WarningType,
WUS-Assistance-Information,
- RIMInformationTransfer
+ XrDeviceWith2Rx
FROM NGAP-IEs
@@ -247,8 +272,11 @@ FROM NGAP-IEs
NGAP-PROTOCOL-EXTENSION,
NGAP-PROTOCOL-IES,
NGAP-PROTOCOL-IES-PAIR
+
FROM NGAP-Containers
+ id-A2X-PC5-QoS-Parameters,
+ id-AerialUEsubscriptionInformation,
id-AllowedNSSAI,
id-AMFName,
id-AMFOverloadResponse,
@@ -261,9 +289,13 @@ FROM NGAP-Containers
id-AMFTrafficLoadReductionIndication,
id-AMF-UE-NGAP-ID,
id-AssistanceDataForPaging,
+ id-AssociatedSessionID,
id-AuthenticatedIndication,
id-BroadcastCancelledAreaList,
id-BroadcastCompletedAreaList,
+ id-BroadcastTransportFailureTransfer,
+ id-BroadcastTransportRequestTransfer,
+ id-BroadcastTransportResponseTransfer,
id-CancelAllWarningMessages,
id-Cause,
id-CellIDListForRestart,
@@ -277,6 +309,7 @@ FROM NGAP-Containers
id-DefaultPagingDRX,
id-DirectForwardingPathAvailability,
id-DL-CP-SecurityInformation,
+ id-DL-Signalling,
id-EarlyStatusTransfer-TransparentContainer,
id-EDT-Session,
id-EmergencyAreaIDListForRestart,
@@ -285,41 +318,45 @@ FROM NGAP-Containers
id-ENDC-SONConfigurationTransferUL,
id-EndIndication,
id-Enhanced-CoverageRestriction,
+ id-ERedCapIndication,
id-EUTRA-CGI,
id-EUTRA-PagingeDRXInformation,
id-Extended-AMFName,
id-Extended-ConnectedTime,
id-Extended-RANNodeName,
+ id-FiveGCAction,
id-FiveG-ProSeAuthorized,
- id-FiveG-ProSeUEPC5AggregateMaximumBitRate,
id-FiveG-ProSePC5QoSParameters,
+ id-FiveG-ProSeUEPC5AggregateMaximumBitRate,
id-FiveG-S-TMSI,
id-GlobalRANNodeID,
id-GUAMI,
id-HandoverFlag,
id-HandoverType,
id-IAB-Authorized,
- id-IAB-Supported,
id-IABNodeIndication,
+ id-IAB-Supported,
id-IMSVoiceSupportIndicator,
id-IndexToRFSP,
id-InfoOnRecommendedCellsAndRANNodesForPaging,
id-IntersystemSONConfigurationTransferDL,
id-IntersystemSONConfigurationTransferUL,
id-LocationReportingRequestType,
+ id-LTE-A2X-ServicesAuthorized,
+ id-LTE-A2X-UE-PC5-AggregateMaximumBitRate,
id-LTEM-Indication,
- id-LTEV2XServicesAuthorized,
id-LTEUESidelinkAggregateMaximumBitrate,
+ id-LTEV2XServicesAuthorized,
id-ManagementBasedMDTPLMNList,
id-ManagementBasedMDTPLMNModificationList,
id-MaskedIMEISV,
id-MBS-AreaSessionID,
- id-MBS-ServiceArea,
- id-MBS-SessionID,
id-MBS-DistributionReleaseRequestTransfer,
id-MBS-DistributionSetupRequestTransfer,
id-MBS-DistributionSetupResponseTransfer,
id-MBS-DistributionSetupUnsuccessfulTransfer,
+ id-MBS-ServiceArea,
+ id-MBS-SessionID,
id-MBSSessionModificationFailureTransfer,
id-MBSSessionModificationRequestTransfer,
id-MBSSessionModificationResponseTransfer,
@@ -328,18 +365,22 @@ FROM NGAP-Containers
id-MBSSessionSetupRequestTransfer,
id-MBSSessionSetupResponseTransfer,
id-MessageIdentifier,
+ id-MobileIAB-Authorized,
+ id-MobileIABNodeIndication,
+ id-MobileIAB-Supported,
id-MobilityRestrictionList,
+ id-MulticastGroupPagingAreaList,
id-MulticastSessionActivationRequestTransfer,
id-MulticastSessionDeactivationRequestTransfer,
id-MulticastSessionUpdateRequestTransfer,
- id-MulticastGroupPagingAreaList,
- id-NAS-PDU,
id-NASC,
+ id-NAS-PDU,
id-NASSecurityParametersFromNGRAN,
id-NB-IoT-DefaultPagingDRX,
id-NB-IoT-PagingDRX,
id-NB-IoT-Paging-eDRXInfo,
id-NB-IoT-UEPriority,
+ id-NetworkControlledRepeaterAuthorized,
id-NewAMF-UE-NGAP-ID,
id-NewGUAMI,
id-NewSecurityContextInd,
@@ -347,12 +388,15 @@ FROM NGAP-Containers
id-NGRAN-CGI,
id-NGRAN-TNLAssociationToRemoveList,
id-NGRANTraceID,
+ id-NoPDUSessionIndication,
id-NotifySourceNGRANNode,
id-NPN-AccessInformation,
+ id-NR-A2X-ServicesAuthorized,
+ id-NR-A2X-UE-PC5-AggregateMaximumBitRate,
id-NR-PagingeDRXInformation,
id-NRPPa-PDU,
- id-NRV2XServicesAuthorized,
id-NRUESidelinkAggregateMaximumBitrate,
+ id-NRV2XServicesAuthorized,
id-NumberOfBroadcastsRequested,
id-OldAMF,
id-OverloadStartNSSAIList,
@@ -360,7 +404,11 @@ FROM NGAP-Containers
id-PagingCause,
id-PagingDRX,
id-PagingOrigin,
+ id-PagingPolicyDifferentiation,
id-PagingPriority,
+ id-Partially-Allowed-NSSAI,
+ id-PC5QoSParameters,
+ id-PDUSessionListMTCommHReq,
id-PDUSessionResourceAdmittedList,
id-PDUSessionResourceFailedToModifyListModCfm,
id-PDUSessionResourceFailedToModifyListModRes,
@@ -401,12 +449,14 @@ FROM NGAP-Containers
id-PLMNSupportList,
id-PrivacyIndicator,
id-PWSFailedCellIDList,
- id-PC5QoSParameters,
id-QMCConfigInfo,
id-QMCDeactivation,
id-RANNodeName,
id-RANPagingPriority,
id-RANStatusTransfer-TransparentContainer,
+ id-RANTimingSynchronisationStatusInfo,
+ id-RAN-TSSRequestType,
+ id-RAN-TSSScope,
id-RAN-UE-NGAP-ID,
id-RedCapIndication,
id-RedirectionVoiceFallback,
@@ -414,6 +464,7 @@ FROM NGAP-Containers
id-RepetitionPeriod,
id-ResetType,
id-RGLevelWirelineAccessCharacteristics,
+ id-RIMInformationTransfer,
id-RoutingID,
id-RRCEstablishmentCause,
id-RRCInactiveTransitionReportRequest,
@@ -421,6 +472,7 @@ FROM NGAP-Containers
id-RRCState,
id-SecurityContext,
id-SecurityKey,
+ id-SelectedNID,
id-SelectedPLMNIdentity,
id-SerialNumber,
id-ServedGUAMIList,
@@ -429,8 +481,8 @@ FROM NGAP-Containers
id-SONConfigurationTransferDL,
id-SONConfigurationTransferUL,
id-SourceAMF-UE-NGAP-ID,
- id-SourceToTarget-TransparentContainer,
id-SourceToTarget-AMFInformationReroute,
+ id-SourceToTarget-TransparentContainer,
id-SRVCCOperationPossible,
id-SupportedTAList,
id-Suspend-Request-Indication,
@@ -440,8 +492,8 @@ FROM NGAP-Containers
id-TAIListForRestart,
id-TargetID,
id-TargetNSSAIInformation,
- id-TargetToSource-TransparentContainer,
id-TargettoSource-Failure-TransparentContainer,
+ id-TargetToSource-TransparentContainer,
id-TimeSyncAssistanceInfo,
id-TimeToWait,
id-TNGFIdentityInformation,
@@ -458,9 +510,9 @@ FROM NGAP-Containers
id-UEPagingIdentity,
id-UEPresenceInAreaOfInterestList,
id-UERadioCapability,
+ id-UERadioCapability-EUTRA-Format,
id-UERadioCapabilityForPaging,
id-UERadioCapabilityID,
- id-UERadioCapability-EUTRA-Format,
id-UERetentionInformation,
id-UESecurityCapabilities,
id-UESliceMaximumBitRateList,
@@ -475,7 +527,9 @@ FROM NGAP-Containers
id-WarningSecurityInfo,
id-WarningType,
id-WUS-Assistance-Information,
- id-RIMInformationTransfer
+ id-XrDeviceWith2Rx,
+ id-SLPositioningRangingServiceInfo
+
FROM NGAP-Constants;
@@ -728,6 +782,7 @@ InitialContextSetupRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
{ ID id-OldAMF CRITICALITY reject TYPE AMFName PRESENCE optional }|
{ ID id-UEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE conditional }|
+-- The above IE shall be present if the PDU Session Resource Setup List IE is present
{ ID id-CoreNetworkAssistanceInformationForInactive CRITICALITY ignore TYPE CoreNetworkAssistanceInformationForInactive PRESENCE optional }|
{ ID id-GUAMI CRITICALITY reject TYPE GUAMI PRESENCE mandatory }|
{ ID id-PDUSessionResourceSetupListCxtReq CRITICALITY reject TYPE PDUSessionResourceSetupListCxtReq PRESENCE optional }|
@@ -751,10 +806,10 @@ InitialContextSetupRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-Enhanced-CoverageRestriction CRITICALITY ignore TYPE Enhanced-CoverageRestriction PRESENCE optional }|
{ ID id-Extended-ConnectedTime CRITICALITY ignore TYPE Extended-ConnectedTime PRESENCE optional }|
{ ID id-UE-DifferentiationInfo CRITICALITY ignore TYPE UE-DifferentiationInfo PRESENCE optional }|
-{ ID id-NRV2XServicesAuthorized CRITICALITY ignore TYPE NRV2XServicesAuthorized PRESENCE optional }|
-{ ID id-LTEV2XServicesAuthorized CRITICALITY ignore TYPE LTEV2XServicesAuthorized PRESENCE optional }|
-{ ID id-NRUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
-{ ID id-LTEUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-NRV2XServicesAuthorized CRITICALITY ignore TYPE NRV2XServicesAuthorized PRESENCE optional }|
+ { ID id-LTEV2XServicesAuthorized CRITICALITY ignore TYPE LTEV2XServicesAuthorized PRESENCE optional }|
+ { ID id-NRUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-LTEUESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
{ ID id-PC5QoSParameters CRITICALITY ignore TYPE PC5QoSParameters PRESENCE optional }|
{ ID id-CEmodeBrestricted CRITICALITY ignore TYPE CEmodeBrestricted PRESENCE optional }|
{ ID id-UE-UP-CIoT-Support CRITICALITY ignore TYPE UE-UP-CIoT-Support PRESENCE optional }|
@@ -767,7 +822,17 @@ InitialContextSetupRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-UESliceMaximumBitRateList CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
{ ID id-FiveG-ProSeAuthorized CRITICALITY ignore TYPE FiveG-ProSeAuthorized PRESENCE optional }|
{ ID id-FiveG-ProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
- { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional },
+ { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional }|
+ { ID id-NetworkControlledRepeaterAuthorized CRITICALITY ignore TYPE NetworkControlledRepeaterAuthorized PRESENCE optional }|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional }|
+ { ID id-NR-A2X-ServicesAuthorized CRITICALITY ignore TYPE NR-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-LTE-A2X-ServicesAuthorized CRITICALITY ignore TYPE LTE-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-NR-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-LTE-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-A2X-PC5-QoS-Parameters CRITICALITY ignore TYPE A2X-PC5-QoS-Parameters PRESENCE optional }|
+ { ID id-MobileIAB-Authorized CRITICALITY ignore TYPE MobileIAB-Authorized PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional }|
+ { ID id-SLPositioningRangingServiceInfo CRITICALITY ignore TYPE SLPositioningRangingServiceInfo PRESENCE optional },
...
}
@@ -907,7 +972,7 @@ UEContextResumeRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-PDUSessionResourceFailedToResumeListRESReq CRITICALITY reject TYPE PDUSessionResourceFailedToResumeListRESReq PRESENCE optional }|
{ ID id-Suspend-Request-Indication CRITICALITY ignore TYPE Suspend-Request-Indication PRESENCE optional }|
{ ID id-InfoOnRecommendedCellsAndRANNodesForPaging CRITICALITY ignore TYPE InfoOnRecommendedCellsAndRANNodesForPaging PRESENCE optional }|
- { ID id-PagingAssisDataforCEcapabUE CRITICALITY ignore TYPE PagingAssisDataforCEcapabUE PRESENCE optional },
+ { ID id-PagingAssisDataforCEcapabUE CRITICALITY ignore TYPE PagingAssisDataforCEcapabUE PRESENCE optional },
...
}
@@ -1059,12 +1124,21 @@ UEContextModificationRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-RGLevelWirelineAccessCharacteristics CRITICALITY ignore TYPE RGLevelWirelineAccessCharacteristics PRESENCE optional }|
{ ID id-TimeSyncAssistanceInfo CRITICALITY ignore TYPE TimeSyncAssistanceInfo PRESENCE optional }|
{ ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
- { ID id-QMCDeactivation CRITICALITY ignore TYPE QMCDeactivation PRESENCE optional }|
+ { ID id-QMCDeactivation CRITICALITY ignore TYPE QMCDeactivation PRESENCE optional }|
{ ID id-UESliceMaximumBitRateList CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
{ ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional }|
{ ID id-FiveG-ProSeAuthorized CRITICALITY ignore TYPE FiveG-ProSeAuthorized PRESENCE optional }|
{ ID id-FiveG-ProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
- { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional },
+ { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional }|
+ { ID id-NetworkControlledRepeaterAuthorized CRITICALITY ignore TYPE NetworkControlledRepeaterAuthorized PRESENCE optional }|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional }|
+ { ID id-NR-A2X-ServicesAuthorized CRITICALITY ignore TYPE NR-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-LTE-A2X-ServicesAuthorized CRITICALITY ignore TYPE LTE-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-NR-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-LTE-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-A2X-PC5-QoS-Parameters CRITICALITY ignore TYPE A2X-PC5-QoS-Parameters PRESENCE optional }|
+ { ID id-MobileIAB-Authorized CRITICALITY ignore TYPE MobileIAB-Authorized PRESENCE optional }|
+ { ID id-SLPositioningRangingServiceInfo CRITICALITY ignore TYPE SLPositioningRangingServiceInfo PRESENCE optional },
...
}
@@ -1138,7 +1212,7 @@ RetrieveUEInformation ::= SEQUENCE {
}
RetrieveUEInformationIEs NGAP-PROTOCOL-IES ::= {
- { ID id-FiveG-S-TMSI CRITICALITY reject TYPE FiveG-S-TMSI PRESENCE mandatory },
+ { ID id-FiveG-S-TMSI CRITICALITY reject TYPE FiveG-S-TMSI PRESENCE mandatory },
...
}
@@ -1161,7 +1235,8 @@ UEInformationTransferIEs NGAP-PROTOCOL-IES ::= {
{ ID id-S-NSSAI CRITICALITY ignore TYPE S-NSSAI PRESENCE optional }|
{ ID id-AllowedNSSAI CRITICALITY ignore TYPE AllowedNSSAI PRESENCE optional }|
{ ID id-UE-DifferentiationInfo CRITICALITY ignore TYPE UE-DifferentiationInfo PRESENCE optional }|
- { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional },
+ { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional },
...
}
@@ -1236,7 +1311,7 @@ HandoverCommandIEs NGAP-PROTOCOL-IES ::= {
{ ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
{ ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory }|
{ ID id-NASSecurityParametersFromNGRAN CRITICALITY reject TYPE NASSecurityParametersFromNGRAN PRESENCE conditional }|
- -- This IE shall be present if HandoverType IE is set to value "5GStoEPPS" or “5GStoUTRAN†--
+-- The above IE shall be present if the HandoverType IE is set to the value “5GStoEPPS†or “5GStoUTRANâ€
{ ID id-PDUSessionResourceHandoverList CRITICALITY ignore TYPE PDUSessionResourceHandoverList PRESENCE optional }|
{ ID id-PDUSessionResourceToReleaseListHOCmd CRITICALITY ignore TYPE PDUSessionResourceToReleaseListHOCmd PRESENCE optional }|
{ ID id-TargetToSource-TransparentContainer CRITICALITY reject TYPE TargetToSource-TransparentContainer PRESENCE mandatory }|
@@ -1321,7 +1396,17 @@ HandoverRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-UESliceMaximumBitRateList CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
{ ID id-FiveG-ProSeAuthorized CRITICALITY ignore TYPE FiveG-ProSeAuthorized PRESENCE optional }|
{ ID id-FiveG-ProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
- { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional },
+ { ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional }|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional }|
+ { ID id-NR-A2X-ServicesAuthorized CRITICALITY ignore TYPE NR-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-LTE-A2X-ServicesAuthorized CRITICALITY ignore TYPE LTE-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-NR-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-LTE-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-A2X-PC5-QoS-Parameters CRITICALITY ignore TYPE A2X-PC5-QoS-Parameters PRESENCE optional }|
+ { ID id-MobileIAB-Authorized CRITICALITY ignore TYPE MobileIAB-Authorized PRESENCE optional }|
+ { ID id-NoPDUSessionIndication CRITICALITY ignore TYPE NoPDUSessionIndication PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional }|
+ { ID id-SLPositioningRangingServiceInfo CRITICALITY ignore TYPE SLPositioningRangingServiceInfo PRESENCE optional },
...
}
@@ -1344,7 +1429,8 @@ HandoverRequestAcknowledgeIEs NGAP-PROTOCOL-IES ::= {
{ ID id-TargetToSource-TransparentContainer CRITICALITY reject TYPE TargetToSource-TransparentContainer PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
{ ID id-NPN-AccessInformation CRITICALITY reject TYPE NPN-AccessInformation PRESENCE optional }|
- { ID id-RedCapIndication CRITICALITY ignore TYPE RedCapIndication PRESENCE optional },
+ { ID id-RedCapIndication CRITICALITY ignore TYPE RedCapIndication PRESENCE optional }|
+ { ID id-ERedCapIndication CRITICALITY ignore TYPE ERedCapIndication PRESENCE optional },
...
}
@@ -1418,7 +1504,8 @@ PathSwitchRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-PDUSessionResourceToBeSwitchedDLList CRITICALITY reject TYPE PDUSessionResourceToBeSwitchedDLList PRESENCE mandatory }|
{ ID id-PDUSessionResourceFailedToSetupListPSReq CRITICALITY ignore TYPE PDUSessionResourceFailedToSetupListPSReq PRESENCE optional }|
{ ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRCEstablishmentCause PRESENCE optional }|
- { ID id-RedCapIndication CRITICALITY ignore TYPE RedCapIndication PRESENCE optional },
+ { ID id-RedCapIndication CRITICALITY ignore TYPE RedCapIndication PRESENCE optional }|
+ { ID id-ERedCapIndication CRITICALITY ignore TYPE ERedCapIndication PRESENCE optional },
...
}
@@ -1465,7 +1552,17 @@ PathSwitchRequestAcknowledgeIEs NGAP-PROTOCOL-IES ::= {
{ ID id-FiveG-ProSeAuthorized CRITICALITY ignore TYPE FiveG-ProSeAuthorized PRESENCE optional }|
{ ID id-FiveG-ProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
{ ID id-FiveG-ProSePC5QoSParameters CRITICALITY ignore TYPE FiveG-ProSePC5QoSParameters PRESENCE optional }|
- { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional },
+ { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional }|
+ { ID id-IAB-Authorized CRITICALITY ignore TYPE IAB-Authorized PRESENCE optional }|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional }|
+ { ID id-NR-A2X-ServicesAuthorized CRITICALITY ignore TYPE NR-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-LTE-A2X-ServicesAuthorized CRITICALITY ignore TYPE LTE-A2X-ServicesAuthorized PRESENCE optional }|
+ { ID id-NR-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE NRUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-LTE-A2X-UE-PC5-AggregateMaximumBitRate CRITICALITY ignore TYPE LTEUESidelinkAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-A2X-PC5-QoS-Parameters CRITICALITY ignore TYPE A2X-PC5-QoS-Parameters PRESENCE optional }|
+ { ID id-MobileIAB-Authorized CRITICALITY ignore TYPE MobileIAB-Authorized PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional }|
+ { ID id-SLPositioningRangingServiceInfo CRITICALITY ignore TYPE SLPositioningRangingServiceInfo PRESENCE optional },
...
}
@@ -1572,9 +1669,9 @@ UplinkRANEarlyStatusTransfer ::= SEQUENCE {
}
UplinkRANEarlyStatusTransferIEs NGAP-PROTOCOL-IES ::= {
- { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory}|
- { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory}|
- { ID id-EarlyStatusTransfer-TransparentContainer CRITICALITY reject TYPE EarlyStatusTransfer-TransparentContainer PRESENCE mandatory},
+ { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-EarlyStatusTransfer-TransparentContainer CRITICALITY reject TYPE EarlyStatusTransfer-TransparentContainer PRESENCE mandatory },
...
}
@@ -1596,9 +1693,9 @@ DownlinkRANEarlyStatusTransfer ::= SEQUENCE {
}
DownlinkRANEarlyStatusTransferIEs NGAP-PROTOCOL-IES ::= {
- { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory}|
- { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory}|
- { ID id-EarlyStatusTransfer-TransparentContainer CRITICALITY reject TYPE EarlyStatusTransfer-TransparentContainer PRESENCE mandatory},
+ { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-EarlyStatusTransfer-TransparentContainer CRITICALITY reject TYPE EarlyStatusTransfer-TransparentContainer PRESENCE mandatory },
...
}
@@ -1621,8 +1718,8 @@ UplinkRANStatusTransfer ::= SEQUENCE {
}
UplinkRANStatusTransferIEs NGAP-PROTOCOL-IES ::= {
- { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
- { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
{ ID id-RANStatusTransfer-TransparentContainer CRITICALITY reject TYPE RANStatusTransfer-TransparentContainer PRESENCE mandatory },
...
}
@@ -1645,8 +1742,8 @@ DownlinkRANStatusTransfer ::= SEQUENCE {
}
DownlinkRANStatusTransferIEs NGAP-PROTOCOL-IES ::= {
- { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
- { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
{ ID id-RANStatusTransfer-TransparentContainer CRITICALITY reject TYPE RANStatusTransfer-TransparentContainer PRESENCE mandatory },
...
}
@@ -1669,22 +1766,22 @@ Paging ::= SEQUENCE {
}
PagingIEs NGAP-PROTOCOL-IES ::= {
- { ID id-UEPagingIdentity CRITICALITY ignore TYPE UEPagingIdentity PRESENCE mandatory }|
- { ID id-PagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }|
- { ID id-TAIListForPaging CRITICALITY ignore TYPE TAIListForPaging PRESENCE mandatory }|
- { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional }|
- { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional }|
- { ID id-PagingOrigin CRITICALITY ignore TYPE PagingOrigin PRESENCE optional }|
- { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional }|
- { ID id-NB-IoT-Paging-eDRXInfo CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInfo PRESENCE optional }|
- { ID id-NB-IoT-PagingDRX CRITICALITY ignore TYPE NB-IoT-PagingDRX PRESENCE optional }|
- { ID id-Enhanced-CoverageRestriction CRITICALITY ignore TYPE Enhanced-CoverageRestriction PRESENCE optional }|
- { ID id-WUS-Assistance-Information CRITICALITY ignore TYPE WUS-Assistance-Information PRESENCE optional }|
- { ID id-EUTRA-PagingeDRXInformation CRITICALITY ignore TYPE EUTRA-PagingeDRXInformation PRESENCE optional }|
- { ID id-CEmodeBrestricted CRITICALITY ignore TYPE CEmodeBrestricted PRESENCE optional }|
- { ID id-NR-PagingeDRXInformation CRITICALITY ignore TYPE NR-PagingeDRXInformation PRESENCE optional }|
- { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional }|
- { ID id-PEIPSassistanceInformation CRITICALITY ignore TYPE PEIPSassistanceInformation PRESENCE optional },
+ { ID id-UEPagingIdentity CRITICALITY ignore TYPE UEPagingIdentity PRESENCE mandatory }|
+ { ID id-PagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }|
+ { ID id-TAIListForPaging CRITICALITY ignore TYPE TAIListForPaging PRESENCE mandatory }|
+ { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional }|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional }|
+ { ID id-PagingOrigin CRITICALITY ignore TYPE PagingOrigin PRESENCE optional }|
+ { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional }|
+ { ID id-NB-IoT-Paging-eDRXInfo CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInfo PRESENCE optional }|
+ { ID id-NB-IoT-PagingDRX CRITICALITY ignore TYPE NB-IoT-PagingDRX PRESENCE optional }|
+ { ID id-Enhanced-CoverageRestriction CRITICALITY ignore TYPE Enhanced-CoverageRestriction PRESENCE optional }|
+ { ID id-WUS-Assistance-Information CRITICALITY ignore TYPE WUS-Assistance-Information PRESENCE optional }|
+ { ID id-EUTRA-PagingeDRXInformation CRITICALITY ignore TYPE EUTRA-PagingeDRXInformation PRESENCE optional }|
+ { ID id-CEmodeBrestricted CRITICALITY ignore TYPE CEmodeBrestricted PRESENCE optional }|
+ { ID id-NR-PagingeDRXInformation CRITICALITY ignore TYPE NR-PagingeDRXInformation PRESENCE optional }|
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional }|
+ { ID id-PEIPSassistanceInformation CRITICALITY ignore TYPE PEIPSassistanceInformation PRESENCE optional },
...
}
@@ -1722,7 +1819,11 @@ InitialUEMessage-IEs NGAP-PROTOCOL-IES ::= {
{ ID id-EDT-Session CRITICALITY ignore TYPE EDT-Session PRESENCE optional }|
{ ID id-AuthenticatedIndication CRITICALITY ignore TYPE AuthenticatedIndication PRESENCE optional }|
{ ID id-NPN-AccessInformation CRITICALITY reject TYPE NPN-AccessInformation PRESENCE optional }|
- { ID id-RedCapIndication CRITICALITY ignore TYPE RedCapIndication PRESENCE optional },
+ { ID id-RedCapIndication CRITICALITY ignore TYPE RedCapIndication PRESENCE optional }|
+ { ID id-SelectedNID CRITICALITY ignore TYPE NID PRESENCE optional }|
+ { ID id-MobileIABNodeIndication CRITICALITY reject TYPE MobileIABNodeIndication PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional }|
+ { ID id-ERedCapIndication CRITICALITY ignore TYPE ERedCapIndication PRESENCE optional },
...
}
@@ -1757,7 +1858,9 @@ DownlinkNASTransport-IEs NGAP-PROTOCOL-IES ::= {
{ ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional }|
{ ID id-UERadioCapabilityID CRITICALITY reject TYPE UERadioCapabilityID PRESENCE optional }|
{ ID id-TargetNSSAIInformation CRITICALITY ignore TYPE TargetNSSAIInformation PRESENCE optional }|
- { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional },
+ { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional }|
+ { ID id-MobileIAB-Authorized CRITICALITY ignore TYPE MobileIAB-Authorized PRESENCE optional },
...
}
@@ -1833,7 +1936,8 @@ RerouteNASRequest-IEs NGAP-PROTOCOL-IES ::= {
{ ID id-NGAP-Message CRITICALITY reject TYPE NGAP-Message PRESENCE mandatory }|
{ ID id-AMFSetID CRITICALITY reject TYPE AMFSetID PRESENCE mandatory }|
{ ID id-AllowedNSSAI CRITICALITY reject TYPE AllowedNSSAI PRESENCE optional }|
- { ID id-SourceToTarget-AMFInformationReroute CRITICALITY ignore TYPE SourceToTarget-AMFInformationReroute PRESENCE optional },
+ { ID id-SourceToTarget-AMFInformationReroute CRITICALITY ignore TYPE SourceToTarget-AMFInformationReroute PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional },
...
}
@@ -1890,7 +1994,8 @@ NGSetupResponseIEs NGAP-PROTOCOL-IES ::= {
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
{ ID id-UERetentionInformation CRITICALITY ignore TYPE UERetentionInformation PRESENCE optional }|
{ ID id-IAB-Supported CRITICALITY ignore TYPE IAB-Supported PRESENCE optional }|
- { ID id-Extended-AMFName CRITICALITY ignore TYPE Extended-AMFName PRESENCE optional },
+ { ID id-Extended-AMFName CRITICALITY ignore TYPE Extended-AMFName PRESENCE optional }|
+ { ID id-MobileIAB-Supported CRITICALITY ignore TYPE MobileIAB-Supported PRESENCE optional },
...
}
@@ -2619,7 +2724,8 @@ UERadioCapabilityInfoIndicationIEs NGAP-PROTOCOL-IES ::= {
{ ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
{ ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory }|
{ ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional }|
- { ID id-UERadioCapability-EUTRA-Format CRITICALITY ignore TYPE UERadioCapability PRESENCE optional },
+ { ID id-UERadioCapability-EUTRA-Format CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }|
+ { ID id-XrDeviceWith2Rx CRITICALITY ignore TYPE XrDeviceWith2Rx PRESENCE optional },
...
}
@@ -2736,6 +2842,7 @@ UplinkRIMInformationTransferIEs NGAP-PROTOCOL-IES ::= {
{ ID id-RIMInformationTransfer CRITICALITY ignore TYPE RIMInformationTransfer PRESENCE optional },
...
}
+
-- **************************************************************
--
-- DOWNLINK RIM INFORMATION TRANSFER
@@ -2749,7 +2856,6 @@ DownlinkRIMInformationTransfer ::= SEQUENCE {
DownlinkRIMInformationTransferIEs NGAP-PROTOCOL-IES ::= {
{ ID id-RIMInformationTransfer CRITICALITY ignore TYPE RIMInformationTransfer PRESENCE optional },
-
...
}
@@ -2778,7 +2884,8 @@ ConnectionEstablishmentIndicationIEs NGAP-PROTOCOL-IES ::= {
{ ID id-CEmodeBrestricted CRITICALITY ignore TYPE CEmodeBrestricted PRESENCE optional }|
{ ID id-UERadioCapabilityID CRITICALITY reject TYPE UERadioCapabilityID PRESENCE optional }|
{ ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }|
- { ID id-OldAMF CRITICALITY reject TYPE AMFName PRESENCE optional },
+ { ID id-OldAMF CRITICALITY reject TYPE AMFName PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional },
...
}
@@ -2838,7 +2945,8 @@ AMFCPRelocationIndicationIEs NGAP-PROTOCOL-IES ::= {
{ ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
{ ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
{ ID id-S-NSSAI CRITICALITY ignore TYPE S-NSSAI PRESENCE optional }|
- { ID id-AllowedNSSAI CRITICALITY ignore TYPE AllowedNSSAI PRESENCE optional },
+ { ID id-AllowedNSSAI CRITICALITY ignore TYPE AllowedNSSAI PRESENCE optional }|
+ { ID id-Partially-Allowed-NSSAI CRITICALITY ignore TYPE Partially-Allowed-NSSAI PRESENCE optional },
...
}
@@ -2868,12 +2976,13 @@ BroadcastSessionSetupRequest ::= SEQUENCE {
MBSSessionSetupOrModRequestTransfer-OCTET-STRING ::= OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer)
BroadcastSessionSetupRequestIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
- { ID id-S-NSSAI CRITICALITY reject TYPE S-NSSAI PRESENCE mandatory }|
- { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE mandatory }|
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-S-NSSAI CRITICALITY reject TYPE S-NSSAI PRESENCE mandatory }|
+ { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE mandatory }|
-- WS modification: define a dedicated type
--- { ID id-MBSSessionSetupRequestTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer) PRESENCE mandatory },
- { ID id-MBSSessionSetupRequestTransfer CRITICALITY reject TYPE MBSSessionSetupOrModRequestTransfer-OCTET-STRING PRESENCE mandatory },
+-- { ID id-MBSSessionSetupRequestTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer) PRESENCE mandatory }|
+ { ID id-MBSSessionSetupRequestTransfer CRITICALITY reject TYPE MBSSessionSetupOrModRequestTransfer-OCTET-STRING PRESENCE mandatory }|
+ { ID id-AssociatedSessionID CRITICALITY ignore TYPE AssociatedSessionID PRESENCE optional },
...
}
@@ -2892,11 +3001,11 @@ BroadcastSessionSetupResponse ::= SEQUENCE {
MBSSessionSetupOrModResponseTransfer-OCTET-STRING ::= OCTET STRING (CONTAINING MBSSessionSetupOrModResponseTransfer)
BroadcastSessionSetupResponseIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
-- WS modification: define a dedicated type
-- { ID id-MBSSessionSetupResponseTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModResponseTransfer) PRESENCE optional }|
{ ID id-MBSSessionSetupResponseTransfer CRITICALITY reject TYPE MBSSessionSetupOrModResponseTransfer-OCTET-STRING PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
@@ -2915,12 +3024,12 @@ BroadcastSessionSetupFailure ::= SEQUENCE {
MBSSessionSetupOrModFailureTransfer-OCTET-STRING ::= OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer)
BroadcastSessionSetupFailureIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
-- WS modification: define a dedicated type
--- { ID id-MBSSessionSetupFailureTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer ) PRESENCE optional }|
- { ID id-MBSSessionSetupFailureTransfer CRITICALITY reject TYPE MBSSessionSetupOrModFailureTransfer-OCTET-STRING PRESENCE optional }|
- { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+-- { ID id-MBSSessionSetupFailureTransfer CRITICALITY ignore TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer ) PRESENCE optional }|
+ { ID id-MBSSessionSetupFailureTransfer CRITICALITY ignore TYPE MBSSessionSetupOrModFailureTransfer-OCTET-STRING PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
@@ -2942,8 +3051,8 @@ BroadcastSessionModificationRequest ::= SEQUENCE {
}
BroadcastSessionModificationRequestIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
- { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-MBS-ServiceArea CRITICALITY reject TYPE MBS-ServiceArea PRESENCE optional }|
-- WS modification: define a dedicated type
-- { ID id-MBSSessionModificationRequestTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer) PRESENCE optional },
{ ID id-MBSSessionModificationRequestTransfer CRITICALITY reject TYPE MBSSessionSetupOrModRequestTransfer-OCTET-STRING PRESENCE optional }, ...
@@ -2961,11 +3070,11 @@ BroadcastSessionModificationResponse ::= SEQUENCE {
}
BroadcastSessionModificationResponseIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
-- WS modification: define a dedicated type
-- { ID id-MBSSessionModificationResponseTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModResponseTransfer) PRESENCE optional }|
{ ID id-MBSSessionModificationResponseTransfer CRITICALITY reject TYPE MBSSessionSetupOrModResponseTransfer-OCTET-STRING PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
@@ -2981,12 +3090,12 @@ BroadcastSessionModificationFailure ::= SEQUENCE {
}
BroadcastSessionModificationFailureIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
-- WS modification: define a dedicated type
--- { ID id-MBSSessionModificationFailureTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer) PRESENCE optional }|
- { ID id-MBSSessionModificationFailureTransfer CRITICALITY reject TYPE MBSSessionSetupOrModFailureTransfer-OCTET-STRING PRESENCE optional }|
- { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+-- { ID id-MBSSessionModificationFailureTransfer CRITICALITY ignore TYPE OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer) PRESENCE optional }|
+ { ID id-MBSSessionModificationFailureTransfer CRITICALITY ignore TYPE MBSSessionSetupOrModFailureTransfer-OCTET-STRING PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
@@ -3008,8 +3117,8 @@ BroadcastSessionReleaseRequest ::= SEQUENCE {
}
BroadcastSessionReleaseRequestIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
- { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
...
}
@@ -3031,8 +3140,8 @@ BroadcastSessionReleaseRequired ::= SEQUENCE {
}
BroadcastSessionReleaseRequiredIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
- { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
...
}
@@ -3047,11 +3156,11 @@ BroadcastSessionReleaseResponse ::= SEQUENCE {
...
}
--- WS modification: defien a dedicated type
+-- WS modification: define a dedicated type
MBSSessionReleaseResponseTransfer-OCTET-STRING ::= OCTET STRING (CONTAINING MBSSessionReleaseResponseTransfer)
BroadcastSessionReleaseResponseIEs NGAP-PROTOCOL-IES ::= {
- { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
-- WS modification: define a dedicated type
-- { ID id-MBSSessionReleaseResponseTransfer CRITICALITY ignore TYPE OCTET STRING (CONTAINING MBSSessionReleaseResponseTransfer) PRESENCE optional }|
{ ID id-MBSSessionReleaseResponseTransfer CRITICALITY ignore TYPE MBSSessionReleaseResponseTransfer-OCTET-STRING PRESENCE optional }|
@@ -3062,6 +3171,83 @@ BroadcastSessionReleaseResponseIEs NGAP-PROTOCOL-IES ::= {
-- **************************************************************
--
+-- Broadcast Session Transport Elementary Procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- BROADCAST SESSION TRANSPORT REQUEST
+--
+-- **************************************************************
+
+BroadcastSessionTransportRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {BroadcastSessionTransportRequestIEs} },
+ ...
+}
+
+-- WS modification: define a dedicated type
+BroadcastTransportRequestTransfer-OCTET-STRING ::= OCTET STRING (CONTAINING BroadcastTransportRequestTransfer)
+
+BroadcastSessionTransportRequestIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+-- WS modification: define a dedicated type
+-- { ID id-BroadcastTransportRequestTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING BroadcastTransportRequestTransfer) PRESENCE mandatory },
+ { ID id-BroadcastTransportRequestTransfer CRITICALITY reject TYPE BroadcastTransportRequestTransfer-OCTET-STRING PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- BROADCAST SESSION TRANSPORT RESPONSE
+--
+-- **************************************************************
+
+BroadcastSessionTransportResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {BroadcastSessionTransportResponseIEs} },
+ ...
+}
+
+-- WS modification: define a dedicated type
+BroadcastTransportResponseTransfer-OCTET-STRING ::= OCTET STRING (CONTAINING BroadcastTransportResponseTransfer)
+
+BroadcastSessionTransportResponseIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+-- WS modification: define a dedicated type
+-- { ID id-BroadcastTransportResponseTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING BroadcastTransportResponseTransfer) PRESENCE mandatory }|
+ { ID id-BroadcastTransportResponseTransfer CRITICALITY reject TYPE BroadcastTransportResponseTransfer-OCTET-STRING PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- BROADCAST SESSION TRANSPORT FAILURE
+--
+-- **************************************************************
+
+BroadcastSessionTransportFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {BroadcastSessionTransportFailureIEs} },
+ ...
+}
+
+-- WS modification: define a dedicated type
+BroadcastTransportFailureTransfer-OCTET-STRING ::= OCTET STRING (CONTAINING BroadcastTransportFailureTransfer)
+
+BroadcastSessionTransportFailureIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
+-- WS modification: define a dedicated type
+-- { ID id-BroadcastTransportFailureTransfer CRITICALITY ignore TYPE OCTET STRING (CONTAINING BroadcastTransportFailureTransfer) PRESENCE mandatory }|
+ { ID id-BroadcastTransportFailureTransfer CRITICALITY ignore TYPE BroadcastTransportFailureTransfer-OCTET-STRING PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+
+-- **************************************************************
+--
-- Distribution Setup Elementary Procedure
--
-- **************************************************************
@@ -3084,8 +3270,8 @@ DistributionSetupRequestIEs NGAP-PROTOCOL-IES ::= {
{ ID id-MBS-SessionID CRITICALITY reject TYPE MBS-SessionID PRESENCE mandatory }|
{ ID id-MBS-AreaSessionID CRITICALITY reject TYPE MBS-AreaSessionID PRESENCE optional }|
-- WS modification: define a dedicated type
--- { ID id-MBS-DistributionSetupRequestTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBS-DistributionSetupRequestTransfer) PRESENCE mandatory },
- { ID id-MBS-DistributionSetupRequestTransfer CRITICALITY reject TYPE MBS-DistributionSetupRequestTransfer-OCTET-STRING PRESENCE mandatory },
+-- { ID id-MBS-DistributionSetupRequestTransfer CRITICALITY reject TYPE OCTET STRING (CONTAINING MBS-DistributionSetupRequestTransfer) PRESENCE mandatory },
+ { ID id-MBS-DistributionSetupRequestTransfer CRITICALITY reject TYPE MBS-DistributionSetupRequestTransfer-OCTET-STRING PRESENCE mandatory },
...
}
@@ -3379,10 +3565,187 @@ MulticastGroupPaging ::= SEQUENCE {
MulticastGroupPagingIEs NGAP-PROTOCOL-IES ::= {
{ ID id-MBS-SessionID CRITICALITY ignore TYPE MBS-SessionID PRESENCE mandatory }|
- { ID id-MBS-ServiceArea CRITICALITY ignore TYPE MBS-ServiceArea PRESENCE optional }|
+ { ID id-MBS-ServiceArea CRITICALITY ignore TYPE MBS-ServiceArea PRESENCE optional }|
{ ID id-MulticastGroupPagingAreaList CRITICALITY ignore TYPE MulticastGroupPagingAreaList PRESENCE mandatory },
...
}
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS REPORTING ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Timing Synchronisation Status Elementary Procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS REQUEST
+--
+-- **************************************************************
+
+TimingSynchronisationStatusRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TimingSynchronisationStatusRequestIEs} },
+ ...
+}
+
+TimingSynchronisationStatusRequestIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-RoutingID CRITICALITY reject TYPE RoutingID PRESENCE mandatory }|
+ { ID id-RAN-TSSRequestType CRITICALITY reject TYPE RAN-TSSRequestType PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS RESPONSE
+--
+-- **************************************************************
+
+TimingSynchronisationStatusResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TimingSynchronisationStatusResponseIEs} },
+ ...
+}
+
+TimingSynchronisationStatusResponseIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-RoutingID CRITICALITY ignore TYPE RoutingID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS FAILURE
+--
+-- **************************************************************
+
+TimingSynchronisationStatusFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { TimingSynchronisationStatusFailureIEs} },
+ ...
+}
+
+TimingSynchronisationStatusFailureIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-RoutingID CRITICALITY ignore TYPE RoutingID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Timing Synchronisation Status Reporting Elementary Procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- TIMING SYNCHRONISATION STATUS REPORT
+--
+-- **************************************************************
+
+TimingSynchronisationStatusReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TimingSynchronisationStatusReportIEs} },
+ ...
+}
+
+TimingSynchronisationStatusReportIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-RoutingID CRITICALITY ignore TYPE RoutingID PRESENCE mandatory }|
+ { ID id-RANTimingSynchronisationStatusInfo CRITICALITY ignore TYPE RANTimingSynchronisationStatusInfo PRESENCE mandatory }|
+ { ID id-RAN-TSSScope CRITICALITY ignore TYPE RAN-TSSScope PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MT Communication Handling Elementary Procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MT COMMUNICATION HANDLING REQUEST
+--
+-- **************************************************************
+
+MTCommunicationHandlingRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MTCommunicationHandlingRequestIEs} },
+ ...
+}
+
+MTCommunicationHandlingRequestIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-FiveGCAction CRITICALITY reject TYPE FiveGCAction PRESENCE mandatory }|
+ { ID id-PDUSessionListMTCommHReq CRITICALITY reject TYPE PDUSessionListMTCommHReq PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- MT COMMUNICATION HANDLING RESPONSE
+--
+-- **************************************************************
+
+MTCommunicationHandlingResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MTCommunicationHandlingResponseIEs} },
+ ...
+}
+
+MTCommunicationHandlingResponseIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MT COMMUNICATION HANDLING FAILURE
+--
+-- **************************************************************
+
+MTCommunicationHandlingFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MTCommunicationHandlingFailureIEs} },
+ ...
+}
+
+MTCommunicationHandlingFailureIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-AMF-UE-NGAP-ID CRITICALITY reject TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY reject TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+
+-- RAN Paging Request procedure
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- RAN PAGING REQUEST
+--
+-- **************************************************************
+
+RANPagingRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { RANPagingRequestIEs} },
+ ...
+}
+
+RANPagingRequestIEs NGAP-PROTOCOL-IES ::= {
+ { ID id-AMF-UE-NGAP-ID CRITICALITY ignore TYPE AMF-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-RAN-UE-NGAP-ID CRITICALITY ignore TYPE RAN-UE-NGAP-ID PRESENCE mandatory }|
+ { ID id-PagingPolicyDifferentiation CRITICALITY ignore TYPE PagingPolicyDifferentiation PRESENCE optional }|
+ { ID id-DL-Signalling CRITICALITY ignore TYPE DL-Signalling PRESENCE optional },
+ ...
+}
+
END
diff --git a/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn b/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn
index dcf47048..4c08a4bc 100644
--- a/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.5.0 (2023-06)
+-- 3GPP TS 38.413 V18.2.0 (2024-06)
-- 9.4.3 Elementary Procedure Definitions
-- **************************************************************
--
@@ -40,6 +40,9 @@ FROM NGAP-CommonDataTypes
BroadcastSessionSetupFailure,
BroadcastSessionSetupRequest,
BroadcastSessionSetupResponse,
+ BroadcastSessionTransportFailure,
+ BroadcastSessionTransportRequest,
+ BroadcastSessionTransportResponse,
CellTrafficTrace,
ConnectionEstablishmentIndication,
DeactivateTrace,
@@ -72,6 +75,9 @@ FROM NGAP-CommonDataTypes
LocationReport,
LocationReportingControl,
LocationReportingFailureIndication,
+ MTCommunicationHandlingRequest,
+ MTCommunicationHandlingResponse,
+ MTCommunicationHandlingFailure,
MulticastSessionActivationFailure,
MulticastSessionActivationRequest,
MulticastSessionActivationResponse,
@@ -111,10 +117,15 @@ FROM NGAP-CommonDataTypes
RANConfigurationUpdateAcknowledge,
RANConfigurationUpdateFailure,
RANCPRelocationIndication,
+ RANPagingRequest,
RerouteNASRequest,
RetrieveUEInformation,
RRCInactiveTransitionReport,
SecondaryRATDataUsageReport,
+ TimingSynchronisationStatusRequest,
+ TimingSynchronisationStatusResponse,
+ TimingSynchronisationStatusFailure,
+ TimingSynchronisationStatusReport,
TraceFailureIndication,
TraceStart,
UEContextModificationFailure,
@@ -147,6 +158,7 @@ FROM NGAP-CommonDataTypes
UplinkRIMInformationTransfer,
DownlinkRIMInformationTransfer
+
FROM NGAP-PDU-Contents
id-AMFConfigurationUpdate,
@@ -156,16 +168,18 @@ FROM NGAP-PDU-Contents
id-BroadcastSessionRelease,
id-BroadcastSessionReleaseRequired,
id-BroadcastSessionSetup,
+ id-BroadcastSessionTransport,
id-CellTrafficTrace,
id-ConnectionEstablishmentIndication,
id-DeactivateTrace,
- id-DistributionSetup,
id-DistributionRelease,
+ id-DistributionSetup,
id-DownlinkNASTransport,
id-DownlinkNonUEAssociatedNRPPaTransport,
id-DownlinkRANConfigurationTransfer,
id-DownlinkRANEarlyStatusTransfer,
id-DownlinkRANStatusTransfer,
+ id-DownlinkRIMInformationTransfer,
id-DownlinkUEAssociatedNRPPaTransport,
id-ErrorIndication,
id-HandoverCancel,
@@ -178,10 +192,11 @@ FROM NGAP-PDU-Contents
id-LocationReport,
id-LocationReportingControl,
id-LocationReportingFailureIndication,
+ id-MTCommunicationHandling,
+ id-MulticastGroupPaging,
id-MulticastSessionActivation,
id-MulticastSessionDeactivation,
id-MulticastSessionUpdate,
- id-MulticastGroupPaging,
id-NASNonDeliveryIndication,
id-NGReset,
id-NGSetup,
@@ -200,10 +215,13 @@ FROM NGAP-PDU-Contents
id-PWSRestartIndication,
id-RANConfigurationUpdate,
id-RANCPRelocationIndication,
+ id-RANPagingRequest,
id-RerouteNASRequest,
id-RetrieveUEInformation,
id-RRCInactiveTransitionReport,
id-SecondaryRATDataUsageReport,
+ id-TimingSynchronisationStatus,
+ id-TimingSynchronisationStatusReport,
id-TraceFailureIndication,
id-TraceStart,
id-UEContextModification,
@@ -221,10 +239,10 @@ FROM NGAP-PDU-Contents
id-UplinkRANConfigurationTransfer,
id-UplinkRANEarlyStatusTransfer,
id-UplinkRANStatusTransfer,
- id-UplinkUEAssociatedNRPPaTransport,
- id-WriteReplaceWarning,
id-UplinkRIMInformationTransfer,
- id-DownlinkRIMInformationTransfer
+ id-UplinkUEAssociatedNRPPaTransport,
+ id-WriteReplaceWarning
+
FROM NGAP-Constants;
@@ -298,12 +316,14 @@ NGAP-ELEMENTARY-PROCEDURES-CLASS-1 NGAP-ELEMENTARY-PROCEDURE ::= {
broadcastSessionModification |
broadcastSessionRelease |
broadcastSessionSetup |
+ broadcastSessionTransport |
distributionSetup |
distributionRelease |
handoverCancel |
handoverPreparation |
handoverResourceAllocation |
initialContextSetup |
+ mTCommunicationHandling |
multicastSessionActivation |
multicastSessionDeactivation |
multicastSessionUpdate |
@@ -316,13 +336,14 @@ NGAP-ELEMENTARY-PROCEDURES-CLASS-1 NGAP-ELEMENTARY-PROCEDURE ::= {
pDUSessionResourceSetup |
pWSCancel |
rANConfigurationUpdate |
+ timingSynchronisationStatus |
uEContextModification |
uEContextRelease |
uEContextResume |
uEContextSuspend |
uERadioCapabilityCheck |
uERadioCapabilityIDMapping |
- writeReplaceWarning,
+ writeReplaceWarning ,
...
}
@@ -333,17 +354,17 @@ NGAP-ELEMENTARY-PROCEDURES-CLASS-2 NGAP-ELEMENTARY-PROCEDURE ::= {
cellTrafficTrace |
connectionEstablishmentIndication |
deactivateTrace |
- downlinkNASTransport |
- downlinkNonUEAssociatedNRPPaTransport |
+ downlinkNASTransport |
+ downlinkNonUEAssociatedNRPPaTransport |
downlinkRANConfigurationTransfer |
downlinkRANEarlyStatusTransfer |
downlinkRANStatusTransfer |
- downlinkRIMInformationTransfer |
- downlinkUEAssociatedNRPPaTransport |
+ downlinkRIMInformationTransfer |
+ downlinkUEAssociatedNRPPaTransport |
errorIndication |
handoverNotification |
handoverSuccess |
- initialUEMessage |
+ initialUEMessage |
locationReport |
locationReportingControl |
locationReportingFailureIndication |
@@ -351,16 +372,18 @@ NGAP-ELEMENTARY-PROCEDURES-CLASS-2 NGAP-ELEMENTARY-PROCEDURE ::= {
nASNonDeliveryIndication |
overloadStart |
overloadStop |
- paging |
+ paging |
pDUSessionResourceNotify |
privateMessage |
pWSFailureIndication |
pWSRestartIndication |
rANCPRelocationIndication |
+ rANPagingRequest |
rerouteNASRequest |
retrieveUEInformation |
rRCInactiveTransitionReport |
secondaryRATDataUsageReport |
+ timingSynchronisationStatusReport |
traceFailureIndication |
traceStart |
uEContextReleaseRequest |
@@ -373,7 +396,7 @@ NGAP-ELEMENTARY-PROCEDURES-CLASS-2 NGAP-ELEMENTARY-PROCEDURE ::= {
uplinkRANEarlyStatusTransfer |
uplinkRANStatusTransfer |
uplinkRIMInformationTransfer |
- uplinkUEAssociatedNRPPaTransport,
+ uplinkUEAssociatedNRPPaTransport ,
...
}
@@ -433,6 +456,14 @@ broadcastSessionSetup NGAP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY reject
}
+broadcastSessionTransport NGAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE BroadcastSessionTransportRequest
+ SUCCESSFUL OUTCOME BroadcastSessionTransportResponse
+ UNSUCCESSFUL OUTCOME BroadcastSessionTransportFailure
+ PROCEDURE CODE id-BroadcastSessionTransport
+ CRITICALITY reject
+}
+
cellTrafficTrace NGAP-ELEMENTARY-PROCEDURE ::={
INITIATING MESSAGE CellTrafficTrace
PROCEDURE CODE id-CellTrafficTrace
@@ -575,6 +606,14 @@ locationReportingFailureIndication NGAP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY ignore
}
+mTCommunicationHandling NGAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MTCommunicationHandlingRequest
+ SUCCESSFUL OUTCOME MTCommunicationHandlingResponse
+ UNSUCCESSFUL OUTCOME MTCommunicationHandlingFailure
+ PROCEDURE CODE id-MTCommunicationHandling
+ CRITICALITY reject
+}
+
multicastSessionActivation NGAP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MulticastSessionActivationRequest
SUCCESSFUL OUTCOME MulticastSessionActivationResponse
@@ -724,13 +763,18 @@ rANCPRelocationIndication NGAP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY reject
}
+rANPagingRequest NGAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RANPagingRequest
+ PROCEDURE CODE id-RANPagingRequest
+ CRITICALITY ignore
+}
+
rerouteNASRequest NGAP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE RerouteNASRequest
PROCEDURE CODE id-RerouteNASRequest
CRITICALITY reject
}
-
retrieveUEInformation NGAP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE RetrieveUEInformation
PROCEDURE CODE id-RetrieveUEInformation
@@ -749,6 +793,20 @@ secondaryRATDataUsageReport NGAP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY ignore
}
+timingSynchronisationStatus NGAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TimingSynchronisationStatusRequest
+ SUCCESSFUL OUTCOME TimingSynchronisationStatusResponse
+ UNSUCCESSFUL OUTCOME TimingSynchronisationStatusFailure
+ PROCEDURE CODE id-TimingSynchronisationStatus
+ CRITICALITY reject
+}
+
+timingSynchronisationStatusReport NGAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TimingSynchronisationStatusReport
+ PROCEDURE CODE id-TimingSynchronisationStatusReport
+ CRITICALITY ignore
+}
+
traceFailureIndication NGAP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE TraceFailureIndication
PROCEDURE CODE id-TraceFailureIndication
@@ -885,4 +943,5 @@ downlinkRIMInformationTransfer NGAP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY ignore
}
+
END
diff --git a/epan/dissectors/asn1/ngap/ngap.cnf b/epan/dissectors/asn1/ngap/ngap.cnf
index ea0627b3..b2751ea1 100644
--- a/epan/dissectors/asn1/ngap/ngap.cnf
+++ b/epan/dissectors/asn1/ngap/ngap.cnf
@@ -42,6 +42,8 @@ PDUSessionResourceReleaseCommandTransfer
PDUSessionResourceSetupRequestTransfer
PDUSessionResourceSetupResponseTransfer
PDUSessionResourceSetupUnsuccessfulTransfer
+QosFlowAdditionalInfoListRelCom
+QosFlowAdditionalInfoListRelRes
SONConfigurationTransfer
SourceNGRANNode-ToTargetNGRANNode-TransparentContainer
TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer
@@ -62,6 +64,7 @@ ProtocolIE-FieldPair
ProtocolIE-ContainerList
ProtocolIE-ContainerPair
ProtocolIE-ContainerPairList
+PeriodicityList
Presence
QoSFlowList
#.END
@@ -228,9 +231,9 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
#.FN_HDR QosFlowNotifyItem
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
- ngap_data->is_qos_flow_notify = TRUE;
+ ngap_data->is_qos_flow_notify = true;
#.FN_FTR QosFlowNotifyItem
- ngap_data->is_qos_flow_notify = FALSE;
+ ngap_data->is_qos_flow_notify = false;
#.FN_HDR AlternativeQoSParaSetIndex
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
@@ -239,7 +242,7 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
}
#.FN_BODY RAN-UE-NGAP-ID VAL_PTR = &ran_ue_ngap_id
- guint32 ran_ue_ngap_id;
+ uint32_t ran_ue_ngap_id;
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
ngap_data->ran_ue_ngap_id = ran_ue_ngap_id;
@@ -247,7 +250,7 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
#.FN_BODY NAS-PDU VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
- guint tvb_len;
+ unsigned tvb_len;
%(DEFAULT_BODY)s
@@ -298,15 +301,57 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
+# Whenever a Cause appears, look up the reason and show it in the Info column
+
+#.FN_BODY CauseRadioNetwork VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Cause: RadioNetwork=%%s]", val_to_str_const(value, ngap_CauseRadioNetwork_vals, "Unknown"));
+
+#.FN_BODY CauseTransport VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Cause: Transport=%%s]", val_to_str_const(value, ngap_CauseTransport_vals, "Unknown"));
+
+#.FN_BODY CauseNas VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Cause: Nas=%%s]", val_to_str_const(value, ngap_CauseNas_vals, "Unknown"));
+
+#.FN_BODY CauseProtocol VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Cause: Protocol=%%s]", val_to_str_const(value, ngap_CauseProtocol_vals, "Unknown"));
+
+#.FN_BODY CauseMisc VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Cause: Misc=%%s]", val_to_str_const(value, ngap_CauseMisc_vals, "Unknown"));
+
+#.FN_BODY RRCEstablishmentCause VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [RRCEstablishmentCause=%%s]", val_to_str_const(value, ngap_RRCEstablishmentCause_vals, "Unknown"));
+
+#.FN_BODY PagingCause VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [PagingCause=%%s]", val_to_str_const(value, ngap_PagingCause_vals, "Unknown"));
+
+#.FN_BODY PagingCauseIndicationForVoiceService VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [PagingCauseIndicationForVoiceService=%%s]", val_to_str_const(value, ngap_PagingCauseIndicationForVoiceService_vals, "Unknown"));
+
#.FN_BODY SourceToTarget-TransparentContainer VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
proto_tree *subtree;
%(DEFAULT_BODY)s
if (ngap_dissect_container && parameter_tvb &&
tvb_reported_length(parameter_tvb) > 0) {
- guint32 handover_type = ngap_get_private_data(actx->pinfo)->handover_type_value;
+ uint32_t handover_type = ngap_get_private_data(actx->pinfo)->handover_type_value;
/* Don't want elements inside container to write to info column */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_SourceToTarget_TransparentContainer);
TRY {
switch(handover_type) {
@@ -330,7 +375,7 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
ENDTRY;
/* Enable writing of the column again */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, TRUE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
}
#.FN_BODY TargetToSource-TransparentContainer VAL_PTR = &parameter_tvb
@@ -341,7 +386,7 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
tvb_reported_length(parameter_tvb) > 0) {
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
/* Don't want elements inside container to write to info column */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_TargetToSource_TransparentContainer);
if (ngap_data->procedure_code == id_HandoverPreparation) {
switch(ngap_data->handover_type_value) {
@@ -362,7 +407,7 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
dissect_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
/* Enable writing of the column again */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, TRUE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
}
#.FN_BODY TargettoSource-Failure-TransparentContainer VAL_PTR = &parameter_tvb
@@ -373,7 +418,7 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
tvb_reported_length(parameter_tvb) > 0) {
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
/* Don't want elements inside container to write to info column */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_TargettoSource_Failure_TransparentContainer);
switch(ngap_data->handover_type_value) {
case intra5gs:
@@ -383,14 +428,14 @@ UE-NGAP-IDs/aMF-UE-NGAP-ID ABBREV=AMF_UE_NGAP_ID
break;
}
/* Enable writing of the column again */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, TRUE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
}
#.TYPE_ATTR
ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &ngap_ProtocolIE_ID_vals_ext
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.TYPE_ATTR
MessageIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &lte_rrc_messageIdentifier_vals_ext
@@ -421,7 +466,7 @@ MessageIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
}
#.TYPE_ATTR
-RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY WarningType VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -476,11 +521,11 @@ EPS-TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
if (!PINFO_FD_VISITED(actx->pinfo) && ngap_data->ngap_conv &&
(ngap_data->message_type == INITIATING_MESSAGE) &&
(ngap_data->procedure_code == id_InitialUEMessage)) {
- guint64 key = (ngap_data->tai->plmn << 24) | ngap_data->tai->tac;
+ uint64_t key = (ngap_data->tai->plmn << 24) | ngap_data->tai->tac;
if (wmem_map_lookup(ngap_data->ngap_conv->nbiot_ta, &key)) {
wmem_tree_key_t tree_key[3];
- guint32 *id = wmem_new(wmem_file_scope(), guint32);
+ uint32_t *id = wmem_new(wmem_file_scope(), uint32_t);
*id = ngap_data->ran_ue_ngap_id;
tree_key[0].length = 1;
@@ -497,7 +542,7 @@ EPS-TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
CommonNetworkInstance TYPE=FT_BYTES DISPLAY = BASE_SHOW_UTF_8_PRINTABLE
#.TYPE_ATTR
-SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
#.TYPE_ATTR
TAC TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX
@@ -515,7 +560,7 @@ TAC TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX
}
#.TYPE_ATTR
-TimeSynchronizationAssistanceInformation/uuTimeSynchronizationErrorBudget DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_nanoseconds
+TimeSynchronizationAssistanceInformation/uuTimeSynchronizationErrorBudget DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_nanoseconds)
#.FN_BODY PLMNIdentity VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -526,9 +571,9 @@ TimeSynchronizationAssistanceInformation/uuTimeSynchronizationErrorBudget DISPLA
%(DEFAULT_BODY)s
if (parameter_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_PLMNIdentity);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, false);
if (ngap_data->supported_ta) {
- guint32 plmn = tvb_get_ntoh24(parameter_tvb, 0);
+ uint32_t plmn = tvb_get_ntoh24(parameter_tvb, 0);
wmem_array_append_one(ngap_data->supported_ta->plmn, plmn);
} else if (ngap_data->tai) {
ngap_data->tai->plmn = tvb_get_ntoh24(parameter_tvb, 0);
@@ -548,23 +593,23 @@ TimeSynchronizationAssistanceInformation/uuTimeSynchronizationErrorBudget DISPLA
((ngap_data->procedure_code == id_NGSetup) ||
(ngap_data->procedure_code == id_RANConfigurationUpdate))) {
ngap_data->supported_ta = wmem_new0(actx->pinfo->pool, struct ngap_supported_ta);
- ngap_data->supported_ta->plmn = wmem_array_new(actx->pinfo->pool, sizeof(guint32));
+ ngap_data->supported_ta->plmn = wmem_array_new(actx->pinfo->pool, sizeof(uint32_t));
}
#.FN_FTR SupportedTAItem
ngap_data->supported_ta = NULL;
#.FN_BODY RAT-Information VAL_PTR = &rat_info
- guint32 rat_info = 0xffffffff;
+ uint32_t rat_info = 0xffffffff;
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
if (ngap_data->ngap_conv && ngap_data->supported_ta && (rat_info == nb_IoT)) {
- guint64 *key;
- guint i;
+ uint64_t *key;
+ unsigned i;
for (i = 0; i < wmem_array_get_count(ngap_data->supported_ta->plmn); i++) {
- key = wmem_new(wmem_file_scope(), guint64);
- *key = ((*(guint32*)wmem_array_index(ngap_data->supported_ta->plmn, i)) << 24) | ngap_data->supported_ta->tac;
+ key = wmem_new(wmem_file_scope(), uint64_t);
+ *key = ((*(uint32_t*)wmem_array_index(ngap_data->supported_ta->plmn, i)) << 24) | ngap_data->supported_ta->tac;
wmem_map_insert(ngap_data->ngap_conv->nbiot_ta, key, GUINT_TO_POINTER(1));
}
}
@@ -600,7 +645,6 @@ TimeSynchronizationAssistanceInformation/uuTimeSynchronizationErrorBudget DISPLA
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_NGAP_Message);
- col_set_fence(actx->pinfo->cinfo, COL_INFO);
call_dissector(ngap_handle, parameter_tvb, actx->pinfo, subtree);
#.FN_BODY NGRANTraceID VAL_PTR = &parameter_tvb
@@ -610,7 +654,7 @@ TimeSynchronizationAssistanceInformation/uuTimeSynchronizationErrorBudget DISPLA
if (!parameter_tvb)
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_ngap_NGRANTraceID);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, false);
proto_tree_add_item(subtree, hf_ngap_NGRANTraceID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_ngap_NGRANTraceID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN);
@@ -651,10 +695,10 @@ PacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(ngap_PacketLossRate_fmt)
PacketDelayBudget DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(ngap_PacketDelayBudget_fmt)
#.TYPE_ATTR
-AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_bytes
+MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
#.FN_BODY InterfacesToTrace VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -684,7 +728,7 @@ PortNumber TYPE = FT_UINT16 DISPLAY = BASE_DEC
}
#.FN_BODY GlobalRANNodeID VAL_PTR = &value
- gint value;
+ int value;
struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
@@ -781,7 +825,7 @@ PortNumber TYPE = FT_UINT16 DISPLAY = BASE_DEC
}
#.TYPE_ATTR
-RecommendedCellItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RecommendedCellItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY UERadioCapability VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -821,7 +865,7 @@ RecommendedCellItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&
}
#.TYPE_ATTR
-TimeSyncAssistanceInfo/uUTimeSyncErrorBudget DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_nanoseconds
+TimeSyncAssistanceInfo/uUTimeSyncErrorBudget DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_nanoseconds)
#.FN_BODY RATRestrictionInformation VAL_PTR=&parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -900,7 +944,7 @@ TimeSyncAssistanceInfo/uUTimeSyncErrorBudget DISPLAY=BASE_DEC|BASE_UNIT_STRING S
}
#.TYPE_ATTR
-ExpectedUEMovingTrajectoryItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedUEMovingTrajectoryItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY LastVisitedEUTRANCellInformation VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -930,25 +974,25 @@ ExpectedUEMovingTrajectoryItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRIN
}
#.TYPE_ATTR
-ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-TimeUEStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeUEStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
TimeUEStayedInCellEnhancedGranularity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_TimeUEStayedInCellEnhancedGranularity_fmt)
#.TYPE_ATTR
-TrafficLoadReductionIndication DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+TrafficLoadReductionIndication DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.FN_BODY PeriodicRegistrationUpdateTimer VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb = NULL;
%(DEFAULT_BODY)s
if (val_tvb) {
- guint32 val = tvb_get_guint8(val_tvb, 0);
+ uint32_t val = tvb_get_uint8(val_tvb, 0);
actx->created_item = proto_tree_add_uint(tree, hf_index, val_tvb, 0, 1, val);
}
@@ -1003,10 +1047,10 @@ PeriodicRegistrationUpdateTimer TYPE=FT_UINT8 DISPLAY=BASE_CUSTOM STRINGS=CF_FUN
call_dissector(nrppa_handle, parameter_tvb, %(ACTX)s->pinfo, tree);
#.TYPE_ATTR
-VolumeTimedReport-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+VolumeTimedReport-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
-VolumeTimedReport-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+VolumeTimedReport-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
BluetoothName TYPE=FT_STRING DISPLAY = BASE_NONE
@@ -1053,7 +1097,7 @@ BluetoothName TYPE=FT_STRING DISPLAY = BASE_NONE
}
#.TYPE_ATTR
-Extended-ConnectedTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Extended-ConnectedTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
ExtendedPacketDelayBudget DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_ExtendedPacketDelayBudget_fmt)
@@ -1070,11 +1114,20 @@ ExtendedPacketDelayBudget DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_ExtendedPacke
&hf_ngap_primaryRATRestriction_nR_MEO,
&hf_ngap_primaryRATRestriction_nR_GEO,
&hf_ngap_primaryRATRestriction_nR_OTHERSAT,
+ &hf_ngap_primaryRATRestriction_e_UTRA_LEO,
+ NULL
+ };
+ static int * const fields2[] = {
+ &hf_ngap_primaryRATRestriction_e_UTRA_MEO,
+ &hf_ngap_primaryRATRestriction_e_UTRA_GEO,
+ &hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT,
&hf_ngap_primaryRATRestriction_reserved,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ngap_primaryRATRestriction);
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ if (tvb_reported_length(parameter_tvb) >= 2)
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN);
}
#.FN_BODY ExtendedRATRestrictionInformation/secondaryRATRestriction VAL_PTR=&parameter_tvb
@@ -1172,7 +1225,7 @@ LAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
}
#.TYPE_ATTR
-Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+Periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
#.TYPE_ATTR
Threshold-RSRP DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_Threshold_RSRP_fmt)
@@ -1212,7 +1265,7 @@ FiveG-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX
}
#.TYPE_ATTR
-QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY UpdateFeedback VAL_PTR=&parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -1229,7 +1282,7 @@ QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units
}
#.FN_BODY PDUSessionResourceSetupRequestTransfer
- volatile guint32 _offset;
+ volatile uint32_t _offset;
_offset = offset;
TRY {
@@ -1243,6 +1296,45 @@ QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units
ENDTRY;
offset = _offset;
+#.TYPE_ATTR
+BurstArrivalTimeWindow/burstArrivalTimeWindowStart DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
+
+#.TYPE_ATTR
+BurstArrivalTimeWindow/burstArrivalTimeWindowEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterLowerBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_N6Jitter_fmt)
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterUpperBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_N6Jitter_fmt)
+
+#.TYPE_ATTR
+PagingPolicyDifferentiationItem/dl-DataSize DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
+
+#.TYPE_ATTR
+TimeSinceFailure DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.TYPE_ATTR
+TSCFeedbackInformation/burstArrivalburstArrivalTimeOffsetTimeWindowEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
+
+#.FN_BODY PDUSessionResourceReleaseCommandTransfer
+ ngap_get_private_data(actx->pinfo)->qos_flow_add_info_rel_type = 0;
+%(DEFAULT_BODY)s
+ ngap_get_private_data(actx->pinfo)->qos_flow_add_info_rel_type = -1;
+
+#.FN_BODY PDUSessionResourceReleaseResponseTransfer
+ ngap_get_private_data(actx->pinfo)->qos_flow_add_info_rel_type = 1;
+%(DEFAULT_BODY)s
+ ngap_get_private_data(actx->pinfo)->qos_flow_add_info_rel_type = -1;
+
+#.FN_BODY SuccessfulPSCellChangeReport-Item/successfulPSCellChangeReportContainer VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ngap_successfulPSCellChangeReportContainer);
+ dissect_nr_rrc_SuccessPSCell_Report_r18_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
#.ASSIGN_VALUE_TO_TYPE # NGAP does not have constants assigned to types, they are pure INTEGER
# ProcedureCode
@@ -1322,369 +1414,446 @@ id-MulticastSessionDeactivation ProcedureCode
id-MulticastSessionUpdate ProcedureCode
id-MulticastGroupPaging ProcedureCode
id-BroadcastSessionReleaseRequired ProcedureCode
-
+id-TimingSynchronisationStatus ProcedureCode
+id-TimingSynchronisationStatusReport ProcedureCode
+id-MTCommunicationHandling ProcedureCode
+id-RANPagingRequest ProcedureCode
+id-BroadcastSessionTransport ProcedureCode
# ProtocolIE-ID
-id-AllowedNSSAI ProtocolIE-ID
-id-AMFName ProtocolIE-ID
-id-AMFOverloadResponse ProtocolIE-ID
-id-AMFSetID ProtocolIE-ID
-id-AMF-TNLAssociationFailedToSetupList ProtocolIE-ID
-id-AMF-TNLAssociationSetupList ProtocolIE-ID
-id-AMF-TNLAssociationToAddList ProtocolIE-ID
-id-AMF-TNLAssociationToRemoveList ProtocolIE-ID
-id-AMF-TNLAssociationToUpdateList ProtocolIE-ID
-id-AMFTrafficLoadReductionIndication ProtocolIE-ID
-id-AMF-UE-NGAP-ID ProtocolIE-ID
-id-AssistanceDataForPaging ProtocolIE-ID
-id-BroadcastCancelledAreaList ProtocolIE-ID
-id-BroadcastCompletedAreaList ProtocolIE-ID
-id-CancelAllWarningMessages ProtocolIE-ID
-id-Cause ProtocolIE-ID
-id-CellIDListForRestart ProtocolIE-ID
-id-ConcurrentWarningMessageInd ProtocolIE-ID
-id-CoreNetworkAssistanceInformationForInactive ProtocolIE-ID
-id-CriticalityDiagnostics ProtocolIE-ID
-id-DataCodingScheme ProtocolIE-ID
-id-DefaultPagingDRX ProtocolIE-ID
-id-DirectForwardingPathAvailability ProtocolIE-ID
-id-EmergencyAreaIDListForRestart ProtocolIE-ID
-id-EmergencyFallbackIndicator ProtocolIE-ID
-id-EUTRA-CGI ProtocolIE-ID
-id-FiveG-S-TMSI ProtocolIE-ID
-id-GlobalRANNodeID ProtocolIE-ID
-id-GUAMI ProtocolIE-ID
-id-HandoverType ProtocolIE-ID
-id-IMSVoiceSupportIndicator ProtocolIE-ID
-id-IndexToRFSP ProtocolIE-ID
-id-InfoOnRecommendedCellsAndRANNodesForPaging ProtocolIE-ID
-id-LocationReportingRequestType ProtocolIE-ID
-id-MaskedIMEISV ProtocolIE-ID
-id-MessageIdentifier ProtocolIE-ID
-id-MobilityRestrictionList ProtocolIE-ID
-id-NASC ProtocolIE-ID
-id-NAS-PDU ProtocolIE-ID
-id-NASSecurityParametersFromNGRAN ProtocolIE-ID
-id-NewAMF-UE-NGAP-ID ProtocolIE-ID
-id-NewSecurityContextInd ProtocolIE-ID
-id-NGAP-Message ProtocolIE-ID
-id-NGRAN-CGI ProtocolIE-ID
-id-NGRANTraceID ProtocolIE-ID
-id-NR-CGI ProtocolIE-ID
-id-NRPPa-PDU ProtocolIE-ID
-id-NumberOfBroadcastsRequested ProtocolIE-ID
-id-OldAMF ProtocolIE-ID
-id-OverloadStartNSSAIList ProtocolIE-ID
-id-PagingDRX ProtocolIE-ID
-id-PagingOrigin ProtocolIE-ID
-id-PagingPriority ProtocolIE-ID
-id-PDUSessionResourceAdmittedList ProtocolIE-ID
-id-PDUSessionResourceFailedToModifyListModRes ProtocolIE-ID
-id-PDUSessionResourceFailedToSetupListCxtRes ProtocolIE-ID
-id-PDUSessionResourceFailedToSetupListHOAck ProtocolIE-ID
-id-PDUSessionResourceFailedToSetupListPSReq ProtocolIE-ID
-id-PDUSessionResourceFailedToSetupListSURes ProtocolIE-ID
-id-PDUSessionResourceHandoverList ProtocolIE-ID
-id-PDUSessionResourceListCxtRelCpl ProtocolIE-ID
-id-PDUSessionResourceListHORqd ProtocolIE-ID
-id-PDUSessionResourceModifyListModCfm ProtocolIE-ID
-id-PDUSessionResourceModifyListModInd ProtocolIE-ID
-id-PDUSessionResourceModifyListModReq ProtocolIE-ID
-id-PDUSessionResourceModifyListModRes ProtocolIE-ID
-id-PDUSessionResourceNotifyList ProtocolIE-ID
-id-PDUSessionResourceReleasedListNot ProtocolIE-ID
-id-PDUSessionResourceReleasedListPSAck ProtocolIE-ID
-id-PDUSessionResourceReleasedListPSFail ProtocolIE-ID
-id-PDUSessionResourceReleasedListRelRes ProtocolIE-ID
-id-PDUSessionResourceSetupListCxtReq ProtocolIE-ID
-id-PDUSessionResourceSetupListCxtRes ProtocolIE-ID
-id-PDUSessionResourceSetupListHOReq ProtocolIE-ID
-id-PDUSessionResourceSetupListSUReq ProtocolIE-ID
-id-PDUSessionResourceSetupListSURes ProtocolIE-ID
-id-PDUSessionResourceToBeSwitchedDLList ProtocolIE-ID
-id-PDUSessionResourceSwitchedList ProtocolIE-ID
-id-PDUSessionResourceToReleaseListHOCmd ProtocolIE-ID
-id-PDUSessionResourceToReleaseListRelCmd ProtocolIE-ID
-id-PLMNSupportList ProtocolIE-ID
-id-PWSFailedCellIDList ProtocolIE-ID
-id-RANNodeName ProtocolIE-ID
-id-RANPagingPriority ProtocolIE-ID
-id-RANStatusTransfer-TransparentContainer ProtocolIE-ID
-id-RAN-UE-NGAP-ID ProtocolIE-ID
-id-RelativeAMFCapacity ProtocolIE-ID
-id-RepetitionPeriod ProtocolIE-ID
-id-ResetType ProtocolIE-ID
-id-RoutingID ProtocolIE-ID
-id-RRCEstablishmentCause ProtocolIE-ID
-id-RRCInactiveTransitionReportRequest ProtocolIE-ID
-id-RRCState ProtocolIE-ID
-id-SecurityContext ProtocolIE-ID
-id-SecurityKey ProtocolIE-ID
-id-SerialNumber ProtocolIE-ID
-id-ServedGUAMIList ProtocolIE-ID
-id-SliceSupportList ProtocolIE-ID
-id-SONConfigurationTransferDL ProtocolIE-ID
-id-SONConfigurationTransferUL ProtocolIE-ID
-id-SourceAMF-UE-NGAP-ID ProtocolIE-ID
-id-SourceToTarget-TransparentContainer ProtocolIE-ID
-id-SupportedTAList ProtocolIE-ID
-id-TAIListForPaging ProtocolIE-ID
-id-TAIListForRestart ProtocolIE-ID
-id-TargetID ProtocolIE-ID
-id-TargetToSource-TransparentContainer ProtocolIE-ID
-id-TimeToWait ProtocolIE-ID
-id-TraceActivation ProtocolIE-ID
-id-TraceCollectionEntityIPAddress ProtocolIE-ID
-id-UEAggregateMaximumBitRate ProtocolIE-ID
-id-UE-associatedLogicalNG-connectionList ProtocolIE-ID
-id-UEContextRequest ProtocolIE-ID
-id-UE-NGAP-IDs ProtocolIE-ID
-id-UEPagingIdentity ProtocolIE-ID
-id-UEPresenceInAreaOfInterestList ProtocolIE-ID
-id-UERadioCapability ProtocolIE-ID
-id-UERadioCapabilityForPaging ProtocolIE-ID
-id-UESecurityCapabilities ProtocolIE-ID
-id-UnavailableGUAMIList ProtocolIE-ID
-id-UserLocationInformation ProtocolIE-ID
-id-WarningAreaList ProtocolIE-ID
-id-WarningMessageContents ProtocolIE-ID
-id-WarningSecurityInfo ProtocolIE-ID
-id-WarningType ProtocolIE-ID
-id-AdditionalUL-NGU-UP-TNLInformation ProtocolIE-ID
-id-DataForwardingNotPossible ProtocolIE-ID
-id-DL-NGU-UP-TNLInformation ProtocolIE-ID
-id-NetworkInstance ProtocolIE-ID
-id-PDUSessionAggregateMaximumBitRate ProtocolIE-ID
-id-PDUSessionResourceFailedToModifyListModCfm ProtocolIE-ID
-id-PDUSessionResourceFailedToSetupListCxtFail ProtocolIE-ID
-id-PDUSessionResourceListCxtRelReq ProtocolIE-ID
-id-PDUSessionType ProtocolIE-ID
-id-QosFlowAddOrModifyRequestList ProtocolIE-ID
-id-QosFlowSetupRequestList ProtocolIE-ID
-id-QosFlowToReleaseList ProtocolIE-ID
-id-SecurityIndication ProtocolIE-ID
-id-UL-NGU-UP-TNLInformation ProtocolIE-ID
-id-UL-NGU-UP-TNLModifyList ProtocolIE-ID
-id-WarningAreaCoordinates ProtocolIE-ID
-id-PDUSessionResourceSecondaryRATUsageList ProtocolIE-ID
-id-HandoverFlag ProtocolIE-ID
-id-SecondaryRATUsageInformation ProtocolIE-ID
-id-PDUSessionResourceReleaseResponseTransfer ProtocolIE-ID
-id-RedirectionVoiceFallback ProtocolIE-ID
-id-UERetentionInformation ProtocolIE-ID
-id-S-NSSAI ProtocolIE-ID
-id-PSCellInformation ProtocolIE-ID
-id-LastEUTRAN-PLMNIdentity ProtocolIE-ID
-id-MaximumIntegrityProtectedDataRate-DL ProtocolIE-ID
-id-AdditionalDLForwardingUPTNLInformation ProtocolIE-ID
-id-AdditionalDLUPTNLInformationForHOList ProtocolIE-ID
-id-AdditionalNGU-UP-TNLInformation ProtocolIE-ID
-id-AdditionalDLQosFlowPerTNLInformation ProtocolIE-ID
-id-SecurityResult ProtocolIE-ID
-id-ENDC-SONConfigurationTransferDL ProtocolIE-ID
-id-ENDC-SONConfigurationTransferUL ProtocolIE-ID
-id-OldAssociatedQosFlowList-ULendmarkerexpected ProtocolIE-ID
-id-CNTypeRestrictionsForEquivalent ProtocolIE-ID
-id-CNTypeRestrictionsForServing ProtocolIE-ID
-id-NewGUAMI ProtocolIE-ID
-id-ULForwarding ProtocolIE-ID
-id-ULForwardingUP-TNLInformation ProtocolIE-ID
-id-CNAssistedRANTuning ProtocolIE-ID
-id-CommonNetworkInstance ProtocolIE-ID
-id-NGRAN-TNLAssociationToRemoveList ProtocolIE-ID
-id-TNLAssociationTransportLayerAddressNGRAN ProtocolIE-ID
-id-EndpointIPAddressAndPort ProtocolIE-ID
-id-LocationReportingAdditionalInfo ProtocolIE-ID
-id-SourceToTarget-AMFInformationReroute ProtocolIE-ID
-id-AdditionalULForwardingUPTNLInformation ProtocolIE-ID
-id-SCTP-TLAs ProtocolIE-ID
-id-SelectedPLMNIdentity ProtocolIE-ID
-id-RIMInformationTransfer ProtocolIE-ID
-id-GUAMIType ProtocolIE-ID
-id-SRVCCOperationPossible ProtocolIE-ID
-id-TargetRNC-ID ProtocolIE-ID
-id-RAT-Information ProtocolIE-ID
-id-ExtendedRATRestrictionInformation ProtocolIE-ID
-id-QosMonitoringRequest ProtocolIE-ID
-id-SgNB-UE-X2AP-ID ProtocolIE-ID
-id-AdditionalRedundantDL-NGU-UP-TNLInformation ProtocolIE-ID
-id-AdditionalRedundantDLQosFlowPerTNLInformation ProtocolIE-ID
-id-AdditionalRedundantNGU-UP-TNLInformation ProtocolIE-ID
-id-AdditionalRedundantUL-NGU-UP-TNLInformation ProtocolIE-ID
-id-CNPacketDelayBudgetDL ProtocolIE-ID
-id-CNPacketDelayBudgetUL ProtocolIE-ID
-id-ExtendedPacketDelayBudget ProtocolIE-ID
-id-RedundantCommonNetworkInstance ProtocolIE-ID
-id-RedundantDL-NGU-TNLInformationReused ProtocolIE-ID
-id-RedundantDL-NGU-UP-TNLInformation ProtocolIE-ID
-id-RedundantDLQosFlowPerTNLInformation ProtocolIE-ID
-id-RedundantQosFlowIndicator ProtocolIE-ID
-id-RedundantUL-NGU-UP-TNLInformation ProtocolIE-ID
-id-TSCTrafficCharacteristics ProtocolIE-ID
-id-RedundantPDUSessionInformation ProtocolIE-ID
-id-UsedRSNInformation ProtocolIE-ID
-id-IAB-Authorized ProtocolIE-ID
-id-IAB-Supported ProtocolIE-ID
-id-IABNodeIndication ProtocolIE-ID
-id-NB-IoT-PagingDRX ProtocolIE-ID
-id-NB-IoT-Paging-eDRXInfo ProtocolIE-ID
-id-NB-IoT-DefaultPagingDRX ProtocolIE-ID
-id-Enhanced-CoverageRestriction ProtocolIE-ID
-id-Extended-ConnectedTime ProtocolIE-ID
-id-PagingAssisDataforCEcapabUE ProtocolIE-ID
-id-WUS-Assistance-Information ProtocolIE-ID
-id-UE-DifferentiationInfo ProtocolIE-ID
-id-NB-IoT-UEPriority ProtocolIE-ID
-id-UL-CP-SecurityInformation ProtocolIE-ID
-id-DL-CP-SecurityInformation ProtocolIE-ID
-id-TAI ProtocolIE-ID
-id-UERadioCapabilityForPagingOfNB-IoT ProtocolIE-ID
-id-LTEV2XServicesAuthorized ProtocolIE-ID
-id-NRV2XServicesAuthorized ProtocolIE-ID
-id-LTEUESidelinkAggregateMaximumBitrate ProtocolIE-ID
-id-NRUESidelinkAggregateMaximumBitrate ProtocolIE-ID
-id-PC5QoSParameters ProtocolIE-ID
-id-AlternativeQoSParaSetList ProtocolIE-ID
-id-CurrentQoSParaSetIndex ProtocolIE-ID
-id-CEmodeBrestricted ProtocolIE-ID
-id-EUTRA-PagingeDRXInformation ProtocolIE-ID
-id-CEmodeBSupport-Indicator ProtocolIE-ID
-id-LTEM-Indication ProtocolIE-ID
-id-EndIndication ProtocolIE-ID
-id-EDT-Session ProtocolIE-ID
-id-UECapabilityInfoRequest ProtocolIE-ID
-id-PDUSessionResourceFailedToResumeListRESReq ProtocolIE-ID
-id-PDUSessionResourceFailedToResumeListRESRes ProtocolIE-ID
-id-PDUSessionResourceSuspendListSUSReq ProtocolIE-ID
-id-PDUSessionResourceResumeListRESReq ProtocolIE-ID
-id-PDUSessionResourceResumeListRESRes ProtocolIE-ID
-id-UE-UP-CIoT-Support ProtocolIE-ID
-id-Suspend-Request-Indication ProtocolIE-ID
-id-Suspend-Response-Indication ProtocolIE-ID
-id-RRC-Resume-Cause ProtocolIE-ID
-id-RGLevelWirelineAccessCharacteristics ProtocolIE-ID
-id-W-AGFIdentityInformation ProtocolIE-ID
-id-GlobalTNGF-ID ProtocolIE-ID
-id-GlobalTWIF-ID ProtocolIE-ID
-id-GlobalW-AGF-ID ProtocolIE-ID
-id-UserLocationInformationW-AGF ProtocolIE-ID
-id-UserLocationInformationTNGF ProtocolIE-ID
-id-AuthenticatedIndication ProtocolIE-ID
-id-TNGFIdentityInformation ProtocolIE-ID
-id-TWIFIdentityInformation ProtocolIE-ID
-id-UserLocationInformationTWIF ProtocolIE-ID
-id-DataForwardingResponseERABList ProtocolIE-ID
-id-IntersystemSONConfigurationTransferDL ProtocolIE-ID
-id-IntersystemSONConfigurationTransferUL ProtocolIE-ID
-id-SONInformationReport ProtocolIE-ID
-id-UEHistoryInformationFromTheUE ProtocolIE-ID
-id-ManagementBasedMDTPLMNList ProtocolIE-ID
-id-MDTConfiguration ProtocolIE-ID
-id-PrivacyIndicator ProtocolIE-ID
-id-TraceCollectionEntityURI ProtocolIE-ID
-id-NPN-Support ProtocolIE-ID
-id-NPN-AccessInformation ProtocolIE-ID
-id-NPN-PagingAssistanceInformation ProtocolIE-ID
-id-NPN-MobilityInformation ProtocolIE-ID
-id-TargettoSource-Failure-TransparentContainer ProtocolIE-ID
-id-NID ProtocolIE-ID
-id-UERadioCapabilityID ProtocolIE-ID
-id-UERadioCapability-EUTRA-Format ProtocolIE-ID
-id-DAPSRequestInfo ProtocolIE-ID
-id-DAPSResponseInfoList ProtocolIE-ID
-id-EarlyStatusTransfer-TransparentContainer ProtocolIE-ID
-id-NotifySourceNGRANNode ProtocolIE-ID
-id-ExtendedSliceSupportList ProtocolIE-ID
-id-ExtendedTAISliceSupportList ProtocolIE-ID
-id-ConfiguredTACIndication ProtocolIE-ID
-id-Extended-RANNodeName ProtocolIE-ID
-id-Extended-AMFName ProtocolIE-ID
-id-GlobalCable-ID ProtocolIE-ID
-id-QosMonitoringReportingFrequency ProtocolIE-ID
-id-QosFlowParametersList ProtocolIE-ID
-id-QosFlowFeedbackList ProtocolIE-ID
-id-BurstArrivalTimeDownlink ProtocolIE-ID
-id-ExtendedUEIdentityIndexValue ProtocolIE-ID
-id-PduSessionExpectedUEActivityBehaviour ProtocolIE-ID
-id-MicoAllPLMN ProtocolIE-ID
-id-QosFlowFailedToSetupList ProtocolIE-ID
-id-SourceTNLAddrInfo ProtocolIE-ID
-id-ExtendedReportIntervalMDT ProtocolIE-ID
-id-SourceNodeID ProtocolIE-ID
-id-NRNTNTAIInformation ProtocolIE-ID
-id-UEContextReferenceAtSource ProtocolIE-ID
-id-LastVisitedPSCellList ProtocolIE-ID
-id-IntersystemSONInformationRequest ProtocolIE-ID
-id-IntersystemSONInformationReply ProtocolIE-ID
-id-EnergySavingIndication ProtocolIE-ID
-id-IntersystemResourceStatusUpdate ProtocolIE-ID
-id-SuccessfulHandoverReportList ProtocolIE-ID
-id-MBS-AreaSessionID ProtocolIE-ID
-id-MBS-QoSFlowsToBeSetupList ProtocolIE-ID
-id-MBS-QoSFlowsToBeSetupModList ProtocolIE-ID
-id-MBS-ServiceArea ProtocolIE-ID
-id-MBS-SessionID ProtocolIE-ID
-id-MBS-DistributionReleaseRequestTransfer ProtocolIE-ID
-id-MBS-DistributionSetupRequestTransfer ProtocolIE-ID
-id-MBS-DistributionSetupResponseTransfer ProtocolIE-ID
-id-MBS-DistributionSetupUnsuccessfulTransfer ProtocolIE-ID
-id-MulticastSessionActivationRequestTransfer ProtocolIE-ID
-id-MulticastSessionDeactivationRequestTransfer ProtocolIE-ID
-id-MulticastSessionUpdateRequestTransfer ProtocolIE-ID
-id-MulticastGroupPagingAreaList ProtocolIE-ID
-id-MBS-SupportIndicator ProtocolIE-ID
-id-MBSSessionFailedtoSetupList ProtocolIE-ID
-id-MBSSessionFailedtoSetuporModifyList ProtocolIE-ID
-id-MBSSessionSetupResponseList ProtocolIE-ID
-id-MBSSessionSetuporModifyResponseList ProtocolIE-ID
-id-MBSSessionSetupFailureTransfer ProtocolIE-ID
-id-MBSSessionSetupRequestTransfer ProtocolIE-ID
-id-MBSSessionSetupResponseTransfer ProtocolIE-ID
-id-MBSSessionToReleaseList ProtocolIE-ID
-id-MBSSessionSetupRequestList ProtocolIE-ID
-id-MBSSessionSetuporModifyRequestList ProtocolIE-ID
-id-MBS-ActiveSessionInformation-SourcetoTargetList ProtocolIE-ID
-id-MBS-ActiveSessionInformation-TargettoSourceList ProtocolIE-ID
-id-OnboardingSupport ProtocolIE-ID
-id-TimeSyncAssistanceInfo ProtocolIE-ID
-id-SurvivalTime ProtocolIE-ID
-id-QMCConfigInfo ProtocolIE-ID
-id-QMCDeactivation ProtocolIE-ID
-id-PDUSessionPairID ProtocolIE-ID
-id-NR-PagingeDRXInformation ProtocolIE-ID
-id-RedCapIndication ProtocolIE-ID
-id-TargetNSSAIInformation ProtocolIE-ID
-id-UESliceMaximumBitRateList ProtocolIE-ID
-id-M4ReportAmount ProtocolIE-ID
-id-M5ReportAmount ProtocolIE-ID
-id-M6ReportAmount ProtocolIE-ID
-id-M7ReportAmount ProtocolIE-ID
-id-IncludeBeamMeasurementsIndication ProtocolIE-ID
-id-ExcessPacketDelayThresholdConfiguration ProtocolIE-ID
-id-PagingCause ProtocolIE-ID
-id-PagingCauseIndicationForVoiceService ProtocolIE-ID
-id-PEIPSassistanceInformation ProtocolIE-ID
-id-FiveG-ProSeAuthorized ProtocolIE-ID
-id-FiveG-ProSeUEPC5AggregateMaximumBitRate ProtocolIE-ID
-id-FiveG-ProSePC5QoSParameters ProtocolIE-ID
-id-MBSSessionModificationFailureTransfer ProtocolIE-ID
-id-MBSSessionModificationRequestTransfer ProtocolIE-ID
-id-MBSSessionModificationResponseTransfer ProtocolIE-ID
-id-MBS-QoSFlowToReleaseList ProtocolIE-ID
-id-MBS-SessionTNLInfo5GC ProtocolIE-ID
-id-TAINSAGSupportList ProtocolIE-ID
-id-SourceNodeTNLAddrInfo ProtocolIE-ID
-id-NGAPIESupportInformationRequestList ProtocolIE-ID
-id-NGAPIESupportInformationResponseList ProtocolIE-ID
-id-MBS-SessionFSAIDList ProtocolIE-ID
-id-MBSSessionReleaseResponseTransfer ProtocolIE-ID
-id-ManagementBasedMDTPLMNModificationList ProtocolIE-ID
-id-EarlyMeasurement ProtocolIE-ID
-id-BeamMeasurementsReportConfiguration ProtocolIE-ID
-id-HFCNode-ID-new ProtocolIE-ID
-id-GlobalCable-ID-new ProtocolIE-ID
-id-TargetHomeENB-ID ProtocolIE-ID
-id-HashedUEIdentityIndexValue ProtocolIE-ID
+id-AllowedNSSAI ProtocolIE-ID
+id-AMFName ProtocolIE-ID
+id-AMFOverloadResponse ProtocolIE-ID
+id-AMFSetID ProtocolIE-ID
+id-AMF-TNLAssociationFailedToSetupList ProtocolIE-ID
+id-AMF-TNLAssociationSetupList ProtocolIE-ID
+id-AMF-TNLAssociationToAddList ProtocolIE-ID
+id-AMF-TNLAssociationToRemoveList ProtocolIE-ID
+id-AMF-TNLAssociationToUpdateList ProtocolIE-ID
+id-AMFTrafficLoadReductionIndication ProtocolIE-ID
+id-AMF-UE-NGAP-ID ProtocolIE-ID
+id-AssistanceDataForPaging ProtocolIE-ID
+id-BroadcastCancelledAreaList ProtocolIE-ID
+id-BroadcastCompletedAreaList ProtocolIE-ID
+id-CancelAllWarningMessages ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CellIDListForRestart ProtocolIE-ID
+id-ConcurrentWarningMessageInd ProtocolIE-ID
+id-CoreNetworkAssistanceInformationForInactive ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-DataCodingScheme ProtocolIE-ID
+id-DefaultPagingDRX ProtocolIE-ID
+id-DirectForwardingPathAvailability ProtocolIE-ID
+id-EmergencyAreaIDListForRestart ProtocolIE-ID
+id-EmergencyFallbackIndicator ProtocolIE-ID
+id-EUTRA-CGI ProtocolIE-ID
+id-FiveG-S-TMSI ProtocolIE-ID
+id-GlobalRANNodeID ProtocolIE-ID
+id-GUAMI ProtocolIE-ID
+id-HandoverType ProtocolIE-ID
+id-IMSVoiceSupportIndicator ProtocolIE-ID
+id-IndexToRFSP ProtocolIE-ID
+id-InfoOnRecommendedCellsAndRANNodesForPaging ProtocolIE-ID
+id-LocationReportingRequestType ProtocolIE-ID
+id-MaskedIMEISV ProtocolIE-ID
+id-MessageIdentifier ProtocolIE-ID
+id-MobilityRestrictionList ProtocolIE-ID
+id-NASC ProtocolIE-ID
+id-NAS-PDU ProtocolIE-ID
+id-NASSecurityParametersFromNGRAN ProtocolIE-ID
+id-NewAMF-UE-NGAP-ID ProtocolIE-ID
+id-NewSecurityContextInd ProtocolIE-ID
+id-NGAP-Message ProtocolIE-ID
+id-NGRAN-CGI ProtocolIE-ID
+id-NGRANTraceID ProtocolIE-ID
+id-NR-CGI ProtocolIE-ID
+id-NRPPa-PDU ProtocolIE-ID
+id-NumberOfBroadcastsRequested ProtocolIE-ID
+id-OldAMF ProtocolIE-ID
+id-OverloadStartNSSAIList ProtocolIE-ID
+id-PagingDRX ProtocolIE-ID
+id-PagingOrigin ProtocolIE-ID
+id-PagingPriority ProtocolIE-ID
+id-PDUSessionResourceAdmittedList ProtocolIE-ID
+id-PDUSessionResourceFailedToModifyListModRes ProtocolIE-ID
+id-PDUSessionResourceFailedToSetupListCxtRes ProtocolIE-ID
+id-PDUSessionResourceFailedToSetupListHOAck ProtocolIE-ID
+id-PDUSessionResourceFailedToSetupListPSReq ProtocolIE-ID
+id-PDUSessionResourceFailedToSetupListSURes ProtocolIE-ID
+id-PDUSessionResourceHandoverList ProtocolIE-ID
+id-PDUSessionResourceListCxtRelCpl ProtocolIE-ID
+id-PDUSessionResourceListHORqd ProtocolIE-ID
+id-PDUSessionResourceModifyListModCfm ProtocolIE-ID
+id-PDUSessionResourceModifyListModInd ProtocolIE-ID
+id-PDUSessionResourceModifyListModReq ProtocolIE-ID
+id-PDUSessionResourceModifyListModRes ProtocolIE-ID
+id-PDUSessionResourceNotifyList ProtocolIE-ID
+id-PDUSessionResourceReleasedListNot ProtocolIE-ID
+id-PDUSessionResourceReleasedListPSAck ProtocolIE-ID
+id-PDUSessionResourceReleasedListPSFail ProtocolIE-ID
+id-PDUSessionResourceReleasedListRelRes ProtocolIE-ID
+id-PDUSessionResourceSetupListCxtReq ProtocolIE-ID
+id-PDUSessionResourceSetupListCxtRes ProtocolIE-ID
+id-PDUSessionResourceSetupListHOReq ProtocolIE-ID
+id-PDUSessionResourceSetupListSUReq ProtocolIE-ID
+id-PDUSessionResourceSetupListSURes ProtocolIE-ID
+id-PDUSessionResourceToBeSwitchedDLList ProtocolIE-ID
+id-PDUSessionResourceSwitchedList ProtocolIE-ID
+id-PDUSessionResourceToReleaseListHOCmd ProtocolIE-ID
+id-PDUSessionResourceToReleaseListRelCmd ProtocolIE-ID
+id-PLMNSupportList ProtocolIE-ID
+id-PWSFailedCellIDList ProtocolIE-ID
+id-RANNodeName ProtocolIE-ID
+id-RANPagingPriority ProtocolIE-ID
+id-RANStatusTransfer-TransparentContainer ProtocolIE-ID
+id-RAN-UE-NGAP-ID ProtocolIE-ID
+id-RelativeAMFCapacity ProtocolIE-ID
+id-RepetitionPeriod ProtocolIE-ID
+id-ResetType ProtocolIE-ID
+id-RoutingID ProtocolIE-ID
+id-RRCEstablishmentCause ProtocolIE-ID
+id-RRCInactiveTransitionReportRequest ProtocolIE-ID
+id-RRCState ProtocolIE-ID
+id-SecurityContext ProtocolIE-ID
+id-SecurityKey ProtocolIE-ID
+id-SerialNumber ProtocolIE-ID
+id-ServedGUAMIList ProtocolIE-ID
+id-SliceSupportList ProtocolIE-ID
+id-SONConfigurationTransferDL ProtocolIE-ID
+id-SONConfigurationTransferUL ProtocolIE-ID
+id-SourceAMF-UE-NGAP-ID ProtocolIE-ID
+id-SourceToTarget-TransparentContainer ProtocolIE-ID
+id-SupportedTAList ProtocolIE-ID
+id-TAIListForPaging ProtocolIE-ID
+id-TAIListForRestart ProtocolIE-ID
+id-TargetID ProtocolIE-ID
+id-TargetToSource-TransparentContainer ProtocolIE-ID
+id-TimeToWait ProtocolIE-ID
+id-TraceActivation ProtocolIE-ID
+id-TraceCollectionEntityIPAddress ProtocolIE-ID
+id-UEAggregateMaximumBitRate ProtocolIE-ID
+id-UE-associatedLogicalNG-connectionList ProtocolIE-ID
+id-UEContextRequest ProtocolIE-ID
+id-UE-NGAP-IDs ProtocolIE-ID
+id-UEPagingIdentity ProtocolIE-ID
+id-UEPresenceInAreaOfInterestList ProtocolIE-ID
+id-UERadioCapability ProtocolIE-ID
+id-UERadioCapabilityForPaging ProtocolIE-ID
+id-UESecurityCapabilities ProtocolIE-ID
+id-UnavailableGUAMIList ProtocolIE-ID
+id-UserLocationInformation ProtocolIE-ID
+id-WarningAreaList ProtocolIE-ID
+id-WarningMessageContents ProtocolIE-ID
+id-WarningSecurityInfo ProtocolIE-ID
+id-WarningType ProtocolIE-ID
+id-AdditionalUL-NGU-UP-TNLInformation ProtocolIE-ID
+id-DataForwardingNotPossible ProtocolIE-ID
+id-DL-NGU-UP-TNLInformation ProtocolIE-ID
+id-NetworkInstance ProtocolIE-ID
+id-PDUSessionAggregateMaximumBitRate ProtocolIE-ID
+id-PDUSessionResourceFailedToModifyListModCfm ProtocolIE-ID
+id-PDUSessionResourceFailedToSetupListCxtFail ProtocolIE-ID
+id-PDUSessionResourceListCxtRelReq ProtocolIE-ID
+id-PDUSessionType ProtocolIE-ID
+id-QosFlowAddOrModifyRequestList ProtocolIE-ID
+id-QosFlowSetupRequestList ProtocolIE-ID
+id-QosFlowToReleaseList ProtocolIE-ID
+id-SecurityIndication ProtocolIE-ID
+id-UL-NGU-UP-TNLInformation ProtocolIE-ID
+id-UL-NGU-UP-TNLModifyList ProtocolIE-ID
+id-WarningAreaCoordinates ProtocolIE-ID
+id-PDUSessionResourceSecondaryRATUsageList ProtocolIE-ID
+id-HandoverFlag ProtocolIE-ID
+id-SecondaryRATUsageInformation ProtocolIE-ID
+id-PDUSessionResourceReleaseResponseTransfer ProtocolIE-ID
+id-RedirectionVoiceFallback ProtocolIE-ID
+id-UERetentionInformation ProtocolIE-ID
+id-S-NSSAI ProtocolIE-ID
+id-PSCellInformation ProtocolIE-ID
+id-LastEUTRAN-PLMNIdentity ProtocolIE-ID
+id-MaximumIntegrityProtectedDataRate-DL ProtocolIE-ID
+id-AdditionalDLForwardingUPTNLInformation ProtocolIE-ID
+id-AdditionalDLUPTNLInformationForHOList ProtocolIE-ID
+id-AdditionalNGU-UP-TNLInformation ProtocolIE-ID
+id-AdditionalDLQosFlowPerTNLInformation ProtocolIE-ID
+id-SecurityResult ProtocolIE-ID
+id-ENDC-SONConfigurationTransferDL ProtocolIE-ID
+id-ENDC-SONConfigurationTransferUL ProtocolIE-ID
+id-OldAssociatedQosFlowList-ULendmarkerexpected ProtocolIE-ID
+id-CNTypeRestrictionsForEquivalent ProtocolIE-ID
+id-CNTypeRestrictionsForServing ProtocolIE-ID
+id-NewGUAMI ProtocolIE-ID
+id-ULForwarding ProtocolIE-ID
+id-ULForwardingUP-TNLInformation ProtocolIE-ID
+id-CNAssistedRANTuning ProtocolIE-ID
+id-CommonNetworkInstance ProtocolIE-ID
+id-NGRAN-TNLAssociationToRemoveList ProtocolIE-ID
+id-TNLAssociationTransportLayerAddressNGRAN ProtocolIE-ID
+id-EndpointIPAddressAndPort ProtocolIE-ID
+id-LocationReportingAdditionalInfo ProtocolIE-ID
+id-SourceToTarget-AMFInformationReroute ProtocolIE-ID
+id-AdditionalULForwardingUPTNLInformation ProtocolIE-ID
+id-SCTP-TLAs ProtocolIE-ID
+id-SelectedPLMNIdentity ProtocolIE-ID
+id-RIMInformationTransfer ProtocolIE-ID
+id-GUAMIType ProtocolIE-ID
+id-SRVCCOperationPossible ProtocolIE-ID
+id-TargetRNC-ID ProtocolIE-ID
+id-RAT-Information ProtocolIE-ID
+id-ExtendedRATRestrictionInformation ProtocolIE-ID
+id-QosMonitoringRequest ProtocolIE-ID
+id-SgNB-UE-X2AP-ID ProtocolIE-ID
+id-AdditionalRedundantDL-NGU-UP-TNLInformation ProtocolIE-ID
+id-AdditionalRedundantDLQosFlowPerTNLInformation ProtocolIE-ID
+id-AdditionalRedundantNGU-UP-TNLInformation ProtocolIE-ID
+id-AdditionalRedundantUL-NGU-UP-TNLInformation ProtocolIE-ID
+id-CNPacketDelayBudgetDL ProtocolIE-ID
+id-CNPacketDelayBudgetUL ProtocolIE-ID
+id-ExtendedPacketDelayBudget ProtocolIE-ID
+id-RedundantCommonNetworkInstance ProtocolIE-ID
+id-RedundantDL-NGU-TNLInformationReused ProtocolIE-ID
+id-RedundantDL-NGU-UP-TNLInformation ProtocolIE-ID
+id-RedundantDLQosFlowPerTNLInformation ProtocolIE-ID
+id-RedundantQosFlowIndicator ProtocolIE-ID
+id-RedundantUL-NGU-UP-TNLInformation ProtocolIE-ID
+id-TSCTrafficCharacteristics ProtocolIE-ID
+id-RedundantPDUSessionInformation ProtocolIE-ID
+id-UsedRSNInformation ProtocolIE-ID
+id-IAB-Authorized ProtocolIE-ID
+id-IAB-Supported ProtocolIE-ID
+id-IABNodeIndication ProtocolIE-ID
+id-NB-IoT-PagingDRX ProtocolIE-ID
+id-NB-IoT-Paging-eDRXInfo ProtocolIE-ID
+id-NB-IoT-DefaultPagingDRX ProtocolIE-ID
+id-Enhanced-CoverageRestriction ProtocolIE-ID
+id-Extended-ConnectedTime ProtocolIE-ID
+id-PagingAssisDataforCEcapabUE ProtocolIE-ID
+id-WUS-Assistance-Information ProtocolIE-ID
+id-UE-DifferentiationInfo ProtocolIE-ID
+id-NB-IoT-UEPriority ProtocolIE-ID
+id-UL-CP-SecurityInformation ProtocolIE-ID
+id-DL-CP-SecurityInformation ProtocolIE-ID
+id-TAI ProtocolIE-ID
+id-UERadioCapabilityForPagingOfNB-IoT ProtocolIE-ID
+id-LTEV2XServicesAuthorized ProtocolIE-ID
+id-NRV2XServicesAuthorized ProtocolIE-ID
+id-LTEUESidelinkAggregateMaximumBitrate ProtocolIE-ID
+id-NRUESidelinkAggregateMaximumBitrate ProtocolIE-ID
+id-PC5QoSParameters ProtocolIE-ID
+id-AlternativeQoSParaSetList ProtocolIE-ID
+id-CurrentQoSParaSetIndex ProtocolIE-ID
+id-CEmodeBrestricted ProtocolIE-ID
+id-EUTRA-PagingeDRXInformation ProtocolIE-ID
+id-CEmodeBSupport-Indicator ProtocolIE-ID
+id-LTEM-Indication ProtocolIE-ID
+id-EndIndication ProtocolIE-ID
+id-EDT-Session ProtocolIE-ID
+id-UECapabilityInfoRequest ProtocolIE-ID
+id-PDUSessionResourceFailedToResumeListRESReq ProtocolIE-ID
+id-PDUSessionResourceFailedToResumeListRESRes ProtocolIE-ID
+id-PDUSessionResourceSuspendListSUSReq ProtocolIE-ID
+id-PDUSessionResourceResumeListRESReq ProtocolIE-ID
+id-PDUSessionResourceResumeListRESRes ProtocolIE-ID
+id-UE-UP-CIoT-Support ProtocolIE-ID
+id-Suspend-Request-Indication ProtocolIE-ID
+id-Suspend-Response-Indication ProtocolIE-ID
+id-RRC-Resume-Cause ProtocolIE-ID
+id-RGLevelWirelineAccessCharacteristics ProtocolIE-ID
+id-W-AGFIdentityInformation ProtocolIE-ID
+id-GlobalTNGF-ID ProtocolIE-ID
+id-GlobalTWIF-ID ProtocolIE-ID
+id-GlobalW-AGF-ID ProtocolIE-ID
+id-UserLocationInformationW-AGF ProtocolIE-ID
+id-UserLocationInformationTNGF ProtocolIE-ID
+id-AuthenticatedIndication ProtocolIE-ID
+id-TNGFIdentityInformation ProtocolIE-ID
+id-TWIFIdentityInformation ProtocolIE-ID
+id-UserLocationInformationTWIF ProtocolIE-ID
+id-DataForwardingResponseERABList ProtocolIE-ID
+id-IntersystemSONConfigurationTransferDL ProtocolIE-ID
+id-IntersystemSONConfigurationTransferUL ProtocolIE-ID
+id-SONInformationReport ProtocolIE-ID
+id-UEHistoryInformationFromTheUE ProtocolIE-ID
+id-ManagementBasedMDTPLMNList ProtocolIE-ID
+id-MDTConfiguration ProtocolIE-ID
+id-PrivacyIndicator ProtocolIE-ID
+id-TraceCollectionEntityURI ProtocolIE-ID
+id-NPN-Support ProtocolIE-ID
+id-NPN-AccessInformation ProtocolIE-ID
+id-NPN-PagingAssistanceInformation ProtocolIE-ID
+id-NPN-MobilityInformation ProtocolIE-ID
+id-TargettoSource-Failure-TransparentContainer ProtocolIE-ID
+id-NID ProtocolIE-ID
+id-UERadioCapabilityID ProtocolIE-ID
+id-UERadioCapability-EUTRA-Format ProtocolIE-ID
+id-DAPSRequestInfo ProtocolIE-ID
+id-DAPSResponseInfoList ProtocolIE-ID
+id-EarlyStatusTransfer-TransparentContainer ProtocolIE-ID
+id-NotifySourceNGRANNode ProtocolIE-ID
+id-ExtendedSliceSupportList ProtocolIE-ID
+id-ExtendedTAISliceSupportList ProtocolIE-ID
+id-ConfiguredTACIndication ProtocolIE-ID
+id-Extended-RANNodeName ProtocolIE-ID
+id-Extended-AMFName ProtocolIE-ID
+id-GlobalCable-ID ProtocolIE-ID
+id-QosMonitoringReportingFrequency ProtocolIE-ID
+id-QosFlowParametersList ProtocolIE-ID
+id-QosFlowFeedbackList ProtocolIE-ID
+id-BurstArrivalTimeDownlink ProtocolIE-ID
+id-ExtendedUEIdentityIndexValue ProtocolIE-ID
+id-PduSessionExpectedUEActivityBehaviour ProtocolIE-ID
+id-MicoAllPLMN ProtocolIE-ID
+id-QosFlowFailedToSetupList ProtocolIE-ID
+id-SourceTNLAddrInfo ProtocolIE-ID
+id-ExtendedReportIntervalMDT ProtocolIE-ID
+id-SourceNodeID ProtocolIE-ID
+id-NRNTNTAIInformation ProtocolIE-ID
+id-UEContextReferenceAtSource ProtocolIE-ID
+id-LastVisitedPSCellList ProtocolIE-ID
+id-IntersystemSONInformationRequest ProtocolIE-ID
+id-IntersystemSONInformationReply ProtocolIE-ID
+id-EnergySavingIndication ProtocolIE-ID
+id-IntersystemResourceStatusUpdate ProtocolIE-ID
+id-SuccessfulHandoverReportList ProtocolIE-ID
+id-MBS-AreaSessionID ProtocolIE-ID
+id-MBS-QoSFlowsToBeSetupList ProtocolIE-ID
+id-MBS-QoSFlowsToBeSetupModList ProtocolIE-ID
+id-MBS-ServiceArea ProtocolIE-ID
+id-MBS-SessionID ProtocolIE-ID
+id-MBS-DistributionReleaseRequestTransfer ProtocolIE-ID
+id-MBS-DistributionSetupRequestTransfer ProtocolIE-ID
+id-MBS-DistributionSetupResponseTransfer ProtocolIE-ID
+id-MBS-DistributionSetupUnsuccessfulTransfer ProtocolIE-ID
+id-MulticastSessionActivationRequestTransfer ProtocolIE-ID
+id-MulticastSessionDeactivationRequestTransfer ProtocolIE-ID
+id-MulticastSessionUpdateRequestTransfer ProtocolIE-ID
+id-MulticastGroupPagingAreaList ProtocolIE-ID
+id-MBS-SupportIndicator ProtocolIE-ID
+id-MBSSessionFailedtoSetupList ProtocolIE-ID
+id-MBSSessionFailedtoSetuporModifyList ProtocolIE-ID
+id-MBSSessionSetupResponseList ProtocolIE-ID
+id-MBSSessionSetuporModifyResponseList ProtocolIE-ID
+id-MBSSessionSetupFailureTransfer ProtocolIE-ID
+id-MBSSessionSetupRequestTransfer ProtocolIE-ID
+id-MBSSessionSetupResponseTransfer ProtocolIE-ID
+id-MBSSessionToReleaseList ProtocolIE-ID
+id-MBSSessionSetupRequestList ProtocolIE-ID
+id-MBSSessionSetuporModifyRequestList ProtocolIE-ID
+id-MBS-ActiveSessionInformation-SourcetoTargetList ProtocolIE-ID
+id-MBS-ActiveSessionInformation-TargettoSourceList ProtocolIE-ID
+id-OnboardingSupport ProtocolIE-ID
+id-TimeSyncAssistanceInfo ProtocolIE-ID
+id-SurvivalTime ProtocolIE-ID
+id-QMCConfigInfo ProtocolIE-ID
+id-QMCDeactivation ProtocolIE-ID
+id-PDUSessionPairID ProtocolIE-ID
+id-NR-PagingeDRXInformation ProtocolIE-ID
+id-RedCapIndication ProtocolIE-ID
+id-TargetNSSAIInformation ProtocolIE-ID
+id-UESliceMaximumBitRateList ProtocolIE-ID
+id-M4ReportAmount ProtocolIE-ID
+id-M5ReportAmount ProtocolIE-ID
+id-M6ReportAmount ProtocolIE-ID
+id-M7ReportAmount ProtocolIE-ID
+id-IncludeBeamMeasurementsIndication ProtocolIE-ID
+id-ExcessPacketDelayThresholdConfiguration ProtocolIE-ID
+id-PagingCause ProtocolIE-ID
+id-PagingCauseIndicationForVoiceService ProtocolIE-ID
+id-PEIPSassistanceInformation ProtocolIE-ID
+id-FiveG-ProSeAuthorized ProtocolIE-ID
+id-FiveG-ProSeUEPC5AggregateMaximumBitRate ProtocolIE-ID
+id-FiveG-ProSePC5QoSParameters ProtocolIE-ID
+id-MBSSessionModificationFailureTransfer ProtocolIE-ID
+id-MBSSessionModificationRequestTransfer ProtocolIE-ID
+id-MBSSessionModificationResponseTransfer ProtocolIE-ID
+id-MBS-QoSFlowToReleaseList ProtocolIE-ID
+id-MBS-SessionTNLInfo5GC ProtocolIE-ID
+id-TAINSAGSupportList ProtocolIE-ID
+id-SourceNodeTNLAddrInfo ProtocolIE-ID
+id-NGAPIESupportInformationRequestList ProtocolIE-ID
+id-NGAPIESupportInformationResponseList ProtocolIE-ID
+id-MBS-SessionFSAIDList ProtocolIE-ID
+id-MBSSessionReleaseResponseTransfer ProtocolIE-ID
+id-ManagementBasedMDTPLMNModificationList ProtocolIE-ID
+id-EarlyMeasurement ProtocolIE-ID
+id-BeamMeasurementsReportConfiguration ProtocolIE-ID
+id-HFCNode-ID-new ProtocolIE-ID
+id-GlobalCable-ID-new ProtocolIE-ID
+id-TargetHomeENB-ID ProtocolIE-ID
+id-HashedUEIdentityIndexValue ProtocolIE-ID
+id-ExtendedMobilityInformation ProtocolIE-ID
+id-NetworkControlledRepeaterAuthorized ProtocolIE-ID
+id-AdditionalCancelledlocationReportingReferenceIDList ProtocolIE-ID
+id-Selected-Target-SNPN-Identity ProtocolIE-ID
+id-EquivalentSNPNsList ProtocolIE-ID
+id-SelectedNID ProtocolIE-ID
+id-SupportedUETypeList ProtocolIE-ID
+id-AerialUEsubscriptionInformation ProtocolIE-ID
+id-NR-A2X-ServicesAuthorized ProtocolIE-ID
+id-LTE-A2X-ServicesAuthorized ProtocolIE-ID
+id-NR-A2X-UE-PC5-AggregateMaximumBitRate ProtocolIE-ID
+id-LTE-A2X-UE-PC5-AggregateMaximumBitRate ProtocolIE-ID
+id-A2X-PC5-QoS-Parameters ProtocolIE-ID
+id-FiveGProSeLayer2Multipath ProtocolIE-ID
+id-FiveGProSeLayer2UEtoUERelay ProtocolIE-ID
+id-FiveGProSeLayer2UEtoUERemote ProtocolIE-ID
+id-CandidateRelayUEInformationList ProtocolIE-ID
+id-SuccessfulPSCellChangeReportList ProtocolIE-ID
+id-IntersystemMobilityFailureforVoiceFallback ProtocolIE-ID
+id-TargetCellCRNTI ProtocolIE-ID
+id-TimeSinceFailure ProtocolIE-ID
+id-RANTimingSynchronisationStatusInfo ProtocolIE-ID
+id-RAN-TSSRequestType ProtocolIE-ID
+id-RAN-TSSScope ProtocolIE-ID
+id-ClockQualityReportingControlInfo ProtocolIE-ID
+id-RANfeedbacktype ProtocolIE-ID
+id-QoSFlowTSCList ProtocolIE-ID
+id-TSCTrafficCharacteristicsFeedback ProtocolIE-ID
+id-DownlinkTLContainer ProtocolIE-ID
+id-UplinkTLContainer ProtocolIE-ID
+id-ANPacketDelayBudgetUL ProtocolIE-ID
+id-QosFlowAdditionalInfoList ProtocolIE-ID
+id-AssistanceInformationQoE-Meas ProtocolIE-ID
+id-MBSCommServiceType ProtocolIE-ID
+id-MobileIAB-Authorized ProtocolIE-ID
+id-MobileIAB-MTUserLocationInformation ProtocolIE-ID
+id-MobileIABNodeIndication ProtocolIE-ID
+id-NoPDUSessionIndication ProtocolIE-ID
+id-MobileIAB-Supported ProtocolIE-ID
+id-CN-MT-CommunicationHandling ProtocolIE-ID
+id-FiveGCAction ProtocolIE-ID
+id-PagingPolicyDifferentiation ProtocolIE-ID
+id-DL-Signalling ProtocolIE-ID
+id-PNI-NPN-AreaScopeofMDT ProtocolIE-ID
+id-PNI-NPNBasedMDT ProtocolIE-ID
+id-SNPN-CellBasedMDT ProtocolIE-ID
+id-SNPN-TAIBasedMDT ProtocolIE-ID
+id-SNPN-BasedMDT ProtocolIE-ID
+id-Partially-Allowed-NSSAI ProtocolIE-ID
+id-AssociatedSessionID ProtocolIE-ID
+id-MBS-AssistanceInformation ProtocolIE-ID
+id-BroadcastTransportFailureTransfer ProtocolIE-ID
+id-BroadcastTransportRequestTransfer ProtocolIE-ID
+id-BroadcastTransportResponseTransfer ProtocolIE-ID
+id-TimeBasedHandoverInformation ProtocolIE-ID
+id-DLDiscarding ProtocolIE-ID
+id-PDUsetQoSParameters ProtocolIE-ID
+id-PDUSetbasedHandlingIndicator ProtocolIE-ID
+id-N6JitterInformation ProtocolIE-ID
+id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID
+id-ECNMarkingorCongestionInformationReportingStatus ProtocolIE-ID
+id-ERedCapIndication ProtocolIE-ID
+id-XrDeviceWith2Rx ProtocolIE-ID
+id-UserPlaneErrorIndicator ProtocolIE-ID
+id-SLPositioningRangingServiceInfo ProtocolIE-ID
+id-PDUSessionListMTCommHReq ProtocolIE-ID
+id-MaximumDataBurstVolume ProtocolIE-ID
+id-MN-only-MDT-collection ProtocolIE-ID
+id-MBS-NGUFailureIndication ProtocolIE-ID
+id-UserPlaneFailureIndication ProtocolIE-ID
+id-UserPlaneFailureIndicationReport ProtocolIE-ID
+id-SourceSN-to-TargetSN-QMCInfo ProtocolIE-ID
+id-QoERVQoEReportingPaths ProtocolIE-ID
#.END
@@ -1962,6 +2131,44 @@ MDTPLMNModificationList N ngap.ies id-Managemen
HFCNode-ID-new N ngap.ies id-HFCNode-ID-new
GlobalCable-ID-new N ngap.ies id-GlobalCable-ID-new
TargetHomeENB-ID N ngap.ies id-TargetHomeENB-ID
+NetworkControlledRepeaterAuthorized N ngap.ies id-NetworkControlledRepeaterAuthorized
+NID N ngap.ies id-SelectedNID
+SupportedUETypeList N ngap.ies id-SupportedUETypeList
+AerialUEsubscriptionInformation N ngap.ies id-AerialUEsubscriptionInformation
+NR-A2X-ServicesAuthorized N ngap.ies id-NR-A2X-ServicesAuthorized
+LTE-A2X-ServicesAuthorized N ngap.ies id-LTE-A2X-ServicesAuthorized
+NRUESidelinkAggregateMaximumBitrate N ngap.ies id-NR-A2X-UE-PC5-AggregateMaximumBitRate
+LTEUESidelinkAggregateMaximumBitrate N ngap.ies id-LTE-A2X-UE-PC5-AggregateMaximumBitRate
+A2X-PC5-QoS-Parameters N ngap.ies id-A2X-PC5-QoS-Parameters
+SuccessfulPSCellChangeReportList N ngap.ies id-SuccessfulPSCellChangeReportList
+IntersystemMobilityFailureforVoiceFallback N ngap.ies id-IntersystemMobilityFailureforVoiceFallback
+RANTimingSynchronisationStatusInfo N ngap.ies id-RANTimingSynchronisationStatusInfo
+RAN-TSSRequestType N ngap.ies id-RAN-TSSRequestType
+RAN-TSSScope N ngap.ies id-RAN-TSSScope
+TLContainer N ngap.ies id-DownlinkTLContainer
+MobileIAB-Authorized N ngap.ies id-MobileIAB-Authorized
+MobileIABNodeIndication N ngap.ies id-MobileIABNodeIndication
+NoPDUSessionIndication N ngap.ies id-NoPDUSessionIndication
+MobileIAB-Supported N ngap.ies id-MobileIAB-Supported
+FiveGCAction N ngap.ies id-FiveGCAction
+PagingPolicyDifferentiation N ngap.ies id-PagingPolicyDifferentiation
+DL-Signalling N ngap.ies id-DL-Signalling
+PNI-NPNBasedMDT N ngap.ies id-PNI-NPNBasedMDT
+SNPN-CellBasedMDT N ngap.ies id-SNPN-CellBasedMDT
+SNPN-TAIBasedMDT N ngap.ies id-SNPN-TAIBasedMDT
+SNPN-BasedMDT N ngap.ies id-SNPN-BasedMDT
+Partially-Allowed-NSSAI N ngap.ies id-Partially-Allowed-NSSAI
+AssociatedSessionID N ngap.ies id-AssociatedSessionID
+BroadcastTransportFailureTransfer-OCTET-STRING N ngap.ies id-BroadcastTransportFailureTransfer
+BroadcastTransportRequestTransfer-OCTET-STRING N ngap.ies id-BroadcastTransportRequestTransfer
+BroadcastTransportResponseTransfer-OCTET-STRING N ngap.ies id-BroadcastTransportResponseTransfer
+DLDiscarding N ngap.ies id-DLDiscarding
+ERedCapIndication N ngap.ies id-ERedCapIndication
+XrDeviceWith2Rx N ngap.ies id-XrDeviceWith2Rx
+SLPositioningRangingServiceInfo N ngap.ies id-SLPositioningRangingServiceInfo
+PDUSessionListMTCommHReq N ngap.ies id-PDUSessionListMTCommHReq
+MBS-NGUFailureIndication N ngap.ies id-MBS-NGUFailureIndication
+UserPlaneFailureIndication N ngap.ies id-UserPlaneFailureIndication
#NGAP-PROTOCOL-EXTENSION
@@ -2064,6 +2271,42 @@ BeamMeasurementsReportConfiguration N ngap.extension id-BeamM
TAI N ngap.extension id-TAI
NR-CGI N ngap.extension id-NR-CGI
HashedUEIdentityIndexValue N ngap.extension id-HashedUEIdentityIndexValue
+ExtendedMobilityInformation N ngap.extension id-ExtendedMobilityInformation
+AdditionalCancelledlocationReportingReferenceIDList N ngap.extension id-AdditionalCancelledlocationReportingReferenceIDList
+NID N ngap.extension id-Selected-Target-SNPN-Identity
+EquivalentSNPNsList N ngap.extension id-EquivalentSNPNsList
+FiveGProSeLayer2Multipath N ngap.extension id-FiveGProSeLayer2Multipath
+FiveGProSeLayer2UEtoUERelay N ngap.extension id-FiveGProSeLayer2UEtoUERelay
+FiveGProSeLayer2UEtoUERemote N ngap.extension id-FiveGProSeLayer2UEtoUERemote
+CandidateRelayUEInformationList N ngap.extension id-CandidateRelayUEInformationList
+C-RNTI N ngap.extension id-TargetCellCRNTI
+TimeSinceFailure N ngap.extension id-TimeSinceFailure
+ClockQualityReportingControlInfo N ngap.extension id-ClockQualityReportingControlInfo
+RANfeedbacktype N ngap.extension id-RANfeedbacktype
+QoSFlowTSCList N ngap.extension id-QoSFlowTSCList
+TSCTrafficCharacteristicsFeedback N ngap.extension id-TSCTrafficCharacteristicsFeedback
+TLContainer N ngap.extension id-DownlinkTLContainer
+TLContainer N ngap.extension id-UplinkTLContainer
+ExtendedPacketDelayBudget N ngap.extension id-ANPacketDelayBudgetUL
+#QosFlowAdditionalInfoListRelCom or QosFlowAdditionalInfoListRelRes N ngap.extension id-QosFlowAdditionalInfoList
+AssistanceInformationQoE-Meas N ngap.extension id-AssistanceInformationQoE-Meas
+MBSCommServiceType N ngap.extension id-MBSCommServiceType
+MobileIAB-MTUserLocationInformation N ngap.extension id-MobileIAB-MTUserLocationInformation
+CN-MT-CommunicationHandling N ngap.extension id-CN-MT-CommunicationHandling
+PNI-NPN-AreaScopeofMDT N ngap.extension id-PNI-NPN-AreaScopeofMDT
+MBS-AssistanceInformation N ngap.extension id-MBS-AssistanceInformation
+TimeBasedHandoverInformation N ngap.extension id-TimeBasedHandoverInformation
+PDUsetQoSParameters N ngap.extension id-PDUsetQoSParameters
+PDUSetbasedHandlingIndicator N ngap.extension id-PDUSetbasedHandlingIndicator
+N6JitterInformation N ngap.extension id-N6JitterInformation
+ECNMarkingorCongestionInformationReportingRequest N ngap.extension id-ECNMarkingorCongestionInformationReportingRequest
+ECNMarkingorCongestionInformationReportingStatus N ngap.extension id-ECNMarkingorCongestionInformationReportingStatus
+UserPlaneErrorIndicator N ngap.extension id-UserPlaneErrorIndicator
+MaximumDataBurstVolume N ngap.extension id-MaximumDataBurstVolume
+MN-only-MDT-collection N ngap.extension id-MN-only-MDT-collection
+UserPlaneFailureIndicationReport N ngap.extension id-UserPlaneFailureIndicationReport
+QMCConfigInfo N ngap.extension id-SourceSN-to-TargetSN-QMCInfo
+QoERVQoEReportingPaths N ngap.extension id-QoERVQoEReportingPaths
#NGAP-ELEMENTARY-PROCEDURE
@@ -2088,6 +2331,10 @@ BroadcastSessionSetupRequest N ngap.proc.imsg id-BroadcastSessionSetu
BroadcastSessionSetupResponse N ngap.proc.sout id-BroadcastSessionSetup
BroadcastSessionSetupFailure N ngap.proc.uout id-BroadcastSessionSetup
+BroadcastSessionTransportRequest N ngap.proc.imsg id-BroadcastSessionTransport
+BroadcastSessionTransportResponse N ngap.proc.sout id-BroadcastSessionTransport
+BroadcastSessionTransportFailure N ngap.proc.uout id-BroadcastSessionTransport
+
CellTrafficTrace N ngap.proc.imsg id-CellTrafficTrace
ConnectionEstablishmentIndication N ngap.proc.imsg id-ConnectionEstablishmentIndication
@@ -2142,6 +2389,10 @@ LocationReportingControl N ngap.proc.imsg id-LocationReportingCon
LocationReportingFailureIndication N ngap.proc.imsg id-LocationReportingFailureIndication
+MTCommunicationHandlingRequest N ngap.proc.imsg id-MTCommunicationHandling
+MTCommunicationHandlingResponse N ngap.proc.sout id-MTCommunicationHandling
+MTCommunicationHandlingFailure N ngap.proc.uout id-MTCommunicationHandling
+
MulticastSessionActivationRequest N ngap.proc.imsg id-MulticastSessionActivation
MulticastSessionActivationResponse N ngap.proc.sout id-MulticastSessionActivation
MulticastSessionActivationFailure N ngap.proc.uout id-MulticastSessionActivation
@@ -2203,6 +2454,8 @@ RANConfigurationUpdateFailure N ngap.proc.uout id-RANConfigurationUpda
RANCPRelocationIndication N ngap.proc.imsg id-RANCPRelocationIndication
+RANPagingRequest N ngap.proc.imsg id-RANPagingRequest
+
RerouteNASRequest N ngap.proc.imsg id-RerouteNASRequest
RetrieveUEInformation N ngap.proc.imsg id-RetrieveUEInformation
@@ -2211,6 +2464,12 @@ RRCInactiveTransitionReport N ngap.proc.imsg id-RRCInactiveTransitio
SecondaryRATDataUsageReport N ngap.proc.imsg id-SecondaryRATDataUsageReport
+TimingSynchronisationStatusRequest N ngap.proc.imsg id-TimingSynchronisationStatus
+TimingSynchronisationStatusResponse N ngap.proc.sout id-TimingSynchronisationStatus
+TimingSynchronisationStatusFailure N ngap.proc.uout id-TimingSynchronisationStatus
+
+TimingSynchronisationStatusReport N ngap.proc.imsg id-TimingSynchronisationStatusReport
+
TraceFailureIndication N ngap.proc.imsg id-TraceFailureIndication
TraceStart N ngap.proc.imsg id-TraceStart
@@ -2286,12 +2545,19 @@ HandoverRequestAcknowledgeTransfer S ngap.n2_ie_type "HANDOVER_REQ_A
HandoverResourceAllocationUnsuccessfulTransfer S ngap.n2_ie_type "HANDOVER_RES_ALLOC_FAIL"
SecondaryRATDataUsageReportTransfer S ngap.n2_ie_type "SECONDARY_RAT_USAGE"
PDUSessionResourceModifyIndicationUnsuccessfulTransfer S ngap.n2_ie_type "PDU_RES_MOD_IND_FAIL"
+UEContextResumeRequestTransfer S ngap.n2_ie_type "UE_CONTEXT_RESUME_REQ"
+UEContextResumeResponseTransfer S ngap.n2_ie_type "UE_CONTEXT_RESUME_RSP"
+UEContextSuspendRequestTransfer S ngap.n2_ie_type "UE_CONTEXT_SUSPEND_REQ"
SourceToTarget-TransparentContainer S ngap.n2_ie_type "SRC_TO_TAR_CONTAINER"
TargetToSource-TransparentContainer S ngap.n2_ie_type "TAR_TO_SRC_CONTAINER"
RANStatusTransfer-TransparentContainer S ngap.n2_ie_type "RAN_STATUS_TRANS_CONTAINER"
SONConfigurationTransfer S ngap.n2_ie_type "SON_CONFIG_TRANSFER"
NRPPa-PDU S ngap.n2_ie_type "NRPPA_PDU"
UERadioCapability S ngap.n2_ie_type "UE_RADIO_CAPABILITY"
+MBSSessionSetupOrModRequestTransfer S ngap.n2_ie_type "MBS_SES_REQ"
+MBSSessionSetupOrModResponseTransfer S ngap.n2_ie_type "MBS_SES_RSP"
+MBSSessionSetupOrModFailureTransfer S ngap.n2_ie_type "MBS_SES_FAIL"
+MBSSessionReleaseResponseTransfer S ngap.n2_ie_type "MBS_SES_REL_RSP"
#.FN_HDR AMFConfigurationUpdate
set_message_label(actx, MTYPE_AMF_CONFIGURATION_UPDATE);
@@ -2349,6 +2615,18 @@ UERadioCapability S ngap.n2_ie_type "UE_RADIO_CAPAB
set_message_label(actx, MTYPE_BROADCAST_SESSION_SETUP_FAILURE);
set_stats_message_type(actx->pinfo, MTYPE_BROADCAST_SESSION_SETUP_FAILURE);
+#.FN_HDR BroadcastSessionTransportRequest
+ set_message_label(actx, MTYPE_BROADCAST_SESSION_TRANSPORT_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_BROADCAST_SESSION_TRANSPORT_REQUEST);
+
+#.FN_HDR BroadcastSessionTransportResponse
+ set_message_label(actx, MTYPE_BROADCAST_SESSION_TRANSPORT_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_BROADCAST_SESSION_TRANSPORT_RESPONSE);
+
+#.FN_HDR BroadcastSessionTransportFailure
+ set_message_label(actx, MTYPE_BROADCAST_SESSION_TRANSPORT_FAILURE);
+ set_stats_message_type(actx->pinfo, MTYPE_BROADCAST_SESSION_TRANSPORT_FAILURE);
+
#.FN_HDR CellTrafficTrace
set_message_label(actx, MTYPE_CELL_TRAFFIC_TRACE);
set_stats_message_type(actx->pinfo, MTYPE_CELL_TRAFFIC_TRACE);
@@ -2477,6 +2755,18 @@ UERadioCapability S ngap.n2_ie_type "UE_RADIO_CAPAB
set_message_label(actx, MTYPE_LOCATION_REPORTING_FAILURE_IND);
set_stats_message_type(actx->pinfo, MTYPE_LOCATION_REPORTING_FAILURE_IND);
+#.FN_HDR MTCommunicationHandlingRequest
+ set_message_label(actx, MTYPE_MT_COMMUNICATION_HANDLING_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_MT_COMMUNICATION_HANDLING_REQUEST);
+
+#.FN_HDR MTCommunicationHandlingResponse
+ set_message_label(actx, MTYPE_MT_COMMUNICATION_HANDLING_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_MT_COMMUNICATION_HANDLING_RESPONSE);
+
+#.FN_HDR MTCommunicationHandlingFailure
+ set_message_label(actx, MTYPE_MT_COMMUNICATION_HANDLING_FAILURE);
+ set_stats_message_type(actx->pinfo, MTYPE_MT_COMMUNICATION_HANDLING_FAILURE);
+
#.FN_HDR MulticastSessionActivationRequest
set_message_label(actx, MTYPE_MULTICAST_SESSION_ACTIVATION_REQUEST);
set_stats_message_type(actx->pinfo, MTYPE_MULTICAST_SESSION_ACTIVATION_REQUEST);
@@ -2633,6 +2923,10 @@ UERadioCapability S ngap.n2_ie_type "UE_RADIO_CAPAB
set_message_label(actx, MTYPE_RAN_CP_RELOCATION_IND);
set_stats_message_type(actx->pinfo, MTYPE_RAN_CP_RELOCATION_IND);
+#.FN_HDR RANPagingRequest
+ set_message_label(actx, MTYPE_RAN_PAGING_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_RAN_PAGING_REQUEST);
+
#.FN_HDR RerouteNASRequest
set_message_label(actx, MTYPE_REROUTE_NAS_REQUEST);
set_stats_message_type(actx->pinfo, MTYPE_REROUTE_NAS_REQUEST);
@@ -2649,6 +2943,22 @@ UERadioCapability S ngap.n2_ie_type "UE_RADIO_CAPAB
set_message_label(actx, MTYPE_SECONDARY_RAT_DATA_USAGE_REPORT);
set_stats_message_type(actx->pinfo, MTYPE_SECONDARY_RAT_DATA_USAGE_REPORT);
+#.FN_HDR TimingSynchronisationStatusRequest
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST);
+
+#.FN_HDR TimingSynchronisationStatusResponse
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE);
+
+#.FN_HDR TimingSynchronisationStatusFailure
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE);
+
+#.FN_HDR TimingSynchronisationStatusReport
+ set_message_label(actx, MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT);
+ set_stats_message_type(actx->pinfo, MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT);
+
#.FN_HDR TraceFailureIndication
set_message_label(actx, MTYPE_TRACE_FAILURE_IND);
set_stats_message_type(actx->pinfo, MTYPE_TRACE_FAILURE_IND);
@@ -2773,6 +3083,187 @@ UERadioCapability S ngap.n2_ie_type "UE_RADIO_CAPAB
set_message_label(actx, MTYPE_DOWNLINK_RIM_INFORMATION_TRANSFER);
set_stats_message_type(actx->pinfo, MTYPE_DOWNLINK_RIM_INFORMATION_TRANSFER);
+# SMF related IEs when encapsulated in http2/mime/json
+#.FN_HDR PDUSessionResourceSetupRequestTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupRequestTransfer");
+
+#.FN_HDR PDUSessionResourceSetupResponseTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupResponseTransfer");
+
+#.FN_HDR PDUSessionResourceSetupUnsuccessfulTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupUnsuccessfulTransfer");
+
+#.FN_HDR PDUSessionResourceReleaseCommandTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseCommandTransfer");
+
+#.FN_HDR PDUSessionResourceReleaseResponseTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseResponseTransfer");
+
+#.FN_HDR PDUSessionResourceModifyRequestTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyRequestTransfer");
+
+#.FN_HDR PDUSessionResourceModifyResponseTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyResponseTransfer");
+
+#.FN_HDR PDUSessionResourceModifyUnsuccessfulTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyUnsuccessfulTransfer");
+
+#.FN_HDR PDUSessionResourceNotifyTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceNotifyTransfer");
+
+#.FN_HDR PDUSessionResourceNotifyReleasedTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceNotifyReleasedTransfer");
+
+#.FN_HDR PDUSessionResourceModifyIndicationTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyIndicationTransfer");
+
+#.FN_HDR PDUSessionResourceModifyConfirmTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyConfirmTransfer");
+
+#.FN_HDR PathSwitchRequestTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestTransfer");
+
+#.FN_HDR PathSwitchRequestSetupFailedTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestSetupFailedTransfer");
+
+#.FN_HDR PathSwitchRequestAcknowledgeTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledgeTransfer");
+
+#.FN_HDR PathSwitchRequestUnsuccessfulTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestUnsuccessfulTransfer");
+
+#.FN_HDR HandoverRequiredTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequiredTransfer");
+
+#.FN_HDR HandoverCommandTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommandTransfer");
+
+#.FN_HDR HandoverPreparationUnsuccessfulTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationUnsuccessfulTransfer");
+
+#.FN_HDR HandoverRequestAcknowledgeTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledgeTransfer");
+
+#.FN_HDR HandoverResourceAllocationUnsuccessfulTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverResourceAllocationUnsuccessfulTransfer");
+
+#.FN_HDR SecondaryRATDataUsageReportTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SecondaryRATDataUsageReportTransfer");
+
+#.FN_HDR PDUSessionResourceModifyIndicationUnsuccessfulTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyIndicationUnsuccessfulTransfer");
+
+#.FN_HDR UEContextResumeRequestTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequestTransfer");
+
+#.FN_HDR UEContextResumeResponseTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponseTransfer");
+
+#.FN_HDR UEContextSuspendRequestTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequestTransfer");
+
+#.FN_HDR SourceToTarget-TransparentContainer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SourceToTarget-TransparentContainer");
+
+#.FN_HDR TargetToSource-TransparentContainer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TargetToSource-TransparentContainer");
+
+#.FN_HDR RANStatusTransfer-TransparentContainer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANStatusTransfer-TransparentContainer");
+
+#.FN_HDR SONConfigurationTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SONConfigurationTransfer");
+
+#.FN_HDR NRPPa-PDU
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NRPPa-PDU");
+
+#.FN_HDR UERadioCapability
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapability");
+
+#.FN_HDR MBSSessionSetupOrModRequestTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MBSSessionSetupOrModRequestTransfer");
+
+#.FN_HDR MBSSessionSetupOrModResponseTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MBSSessionSetupOrModResponseTransfer");
+
+#.FN_HDR MBSSessionSetupOrModFailureTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MBSSessionSetupOrModFailureTransfer");
+
+#.FN_HDR MBSSessionReleaseResponseTransfer
+ tvbuff_t* json_tvb = (tvbuff_t*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_json, 0);
+ if (json_tvb)
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MBSSessionReleaseResponseTransfer");
+
#
# Editor modelines - https://www.wireshark.org/tools/modelines.html
#
diff --git a/epan/dissectors/asn1/ngap/packet-ngap-template.c b/epan/dissectors/asn1/ngap/packet-ngap-template.c
index 66b0fbe9..b1e1e422 100644
--- a/epan/dissectors/asn1/ngap/packet-ngap-template.c
+++ b/epan/dissectors/asn1/ngap/packet-ngap-template.c
@@ -1,7 +1,7 @@
/* packet-ngap.c
* Routines for NG-RAN NG Application Protocol (NGAP) packet dissection
* Copyright 2018, Anders Broman <anders.broman@ericsson.com>
- * Copyright 2018-2023, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2018-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -9,7 +9,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 38.413 v17.5.0 (2023-06)
+ * References: 3GPP TS 38.413 v18.2.0 (2024-06)
*/
#include "config.h"
@@ -27,7 +27,10 @@
#include <epan/show_exception.h>
#include <epan/tap.h>
#include <epan/stats_tree.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
#include <wsutil/wsjson.h>
+#include <wsutil/array.h>
#include "packet-ngap.h"
#include "packet-per.h"
@@ -64,127 +67,132 @@ static dissector_handle_t lte_rrc_ue_radio_paging_info_nb_handle;
static dissector_handle_t lte_rrc_ue_radio_access_cap_info_nb_handle;
static dissector_handle_t nrppa_handle;
-static int proto_json = -1;
+static int proto_json;
#include "packet-ngap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_ngap = -1;
-static int hf_ngap_transportLayerAddressIPv4 = -1;
-static int hf_ngap_transportLayerAddressIPv6 = -1;
-static int hf_ngap_SerialNumber_gs = -1;
-static int hf_ngap_SerialNumber_msg_code = -1;
-static int hf_ngap_SerialNumber_upd_nb = -1;
-static int hf_ngap_WarningType_value = -1;
-static int hf_ngap_WarningType_emergency_user_alert = -1;
-static int hf_ngap_WarningType_popup = -1;
-static int hf_ngap_WarningMessageContents_nb_pages = -1;
-static int hf_ngap_WarningMessageContents_decoded_page = -1;
-static int hf_ngap_NGRANTraceID_TraceID = -1;
-static int hf_ngap_NGRANTraceID_TraceRecordingSessionReference = -1;
-static int hf_ngap_InterfacesToTrace_NG_C = -1;
-static int hf_ngap_InterfacesToTrace_Xn_C = -1;
-static int hf_ngap_InterfacesToTrace_Uu = -1;
-static int hf_ngap_InterfacesToTrace_F1_C = -1;
-static int hf_ngap_InterfacesToTrace_E1 = -1;
-static int hf_ngap_InterfacesToTrace_reserved = -1;
-static int hf_ngap_RATRestrictionInformation_e_UTRA = -1;
-static int hf_ngap_RATRestrictionInformation_nR = -1;
-static int hf_ngap_RATRestrictionInformation_nR_unlicensed = -1;
-static int hf_ngap_RATRestrictionInformation_reserved = -1;
-static int hf_ngap_primaryRATRestriction_e_UTRA = -1;
-static int hf_ngap_primaryRATRestriction_nR = -1;
-static int hf_ngap_primaryRATRestriction_nR_unlicensed = -1;
-static int hf_ngap_primaryRATRestriction_nR_LEO = -1;
-static int hf_ngap_primaryRATRestriction_nR_MEO = -1;
-static int hf_ngap_primaryRATRestriction_nR_GEO = -1;
-static int hf_ngap_primaryRATRestriction_nR_OTHERSAT = -1;
-static int hf_ngap_primaryRATRestriction_reserved = -1;
-static int hf_ngap_secondaryRATRestriction_e_UTRA = -1;
-static int hf_ngap_secondaryRATRestriction_nR = -1;
-static int hf_ngap_secondaryRATRestriction_e_UTRA_unlicensed = -1;
-static int hf_ngap_secondaryRATRestriction_nR_unlicensed = -1;
-static int hf_ngap_secondaryRATRestriction_reserved = -1;
-static int hf_ngap_NrencryptionAlgorithms_nea1 = -1;
-static int hf_ngap_NrencryptionAlgorithms_nea2 = -1;
-static int hf_ngap_NrencryptionAlgorithms_nea3 = -1;
-static int hf_ngap_NrencryptionAlgorithms_reserved = -1;
-static int hf_ngap_NrintegrityProtectionAlgorithms_nia1 = -1;
-static int hf_ngap_NrintegrityProtectionAlgorithms_nia2 = -1;
-static int hf_ngap_NrintegrityProtectionAlgorithms_nia3 = -1;
-static int hf_ngap_NrintegrityProtectionAlgorithms_reserved = -1;
-static int hf_ngap_EUTRAencryptionAlgorithms_eea1 = -1;
-static int hf_ngap_EUTRAencryptionAlgorithms_eea2 = -1;
-static int hf_ngap_EUTRAencryptionAlgorithms_eea3 = -1;
-static int hf_ngap_EUTRAencryptionAlgorithms_reserved = -1;
-static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia1 = -1;
-static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia2 = -1;
-static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia3 = -1;
-static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia7 = -1;
-static int hf_ngap_EUTRAintegrityProtectionAlgorithms_reserved = -1;
-static int hf_ngap_MeasurementsToActivate_M1 = -1;
-static int hf_ngap_MeasurementsToActivate_M2 = -1;
-static int hf_ngap_MeasurementsToActivate_M4 = -1;
-static int hf_ngap_MeasurementsToActivate_M5 = -1;
-static int hf_ngap_MeasurementsToActivate_M6 = -1;
-static int hf_ngap_MeasurementsToActivate_M7 = -1;
-static int hf_ngap_MeasurementsToActivate_M1_from_event = -1;
-static int hf_ngap_MeasurementsToActivate_reserved = -1;
-static int hf_ngap_MDT_Location_Information_GNSS = -1;
-static int hf_ngap_MDT_Location_Information_reserved = -1;
-static int hf_ngap_GlobalCable_ID_str = -1;
-static int hf_ngap_UpdateFeedback_CN_PDB_DL = -1;
-static int hf_ngap_UpdateFeedback_CN_PDB_UL = -1;
-static int hf_ngap_UpdateFeedback_reserved = -1;
+static int proto_ngap;
+static int hf_ngap_transportLayerAddressIPv4;
+static int hf_ngap_transportLayerAddressIPv6;
+static int hf_ngap_SerialNumber_gs;
+static int hf_ngap_SerialNumber_msg_code;
+static int hf_ngap_SerialNumber_upd_nb;
+static int hf_ngap_WarningType_value;
+static int hf_ngap_WarningType_emergency_user_alert;
+static int hf_ngap_WarningType_popup;
+static int hf_ngap_WarningMessageContents_nb_pages;
+static int hf_ngap_WarningMessageContents_decoded_page;
+static int hf_ngap_NGRANTraceID_TraceID;
+static int hf_ngap_NGRANTraceID_TraceRecordingSessionReference;
+static int hf_ngap_InterfacesToTrace_NG_C;
+static int hf_ngap_InterfacesToTrace_Xn_C;
+static int hf_ngap_InterfacesToTrace_Uu;
+static int hf_ngap_InterfacesToTrace_F1_C;
+static int hf_ngap_InterfacesToTrace_E1;
+static int hf_ngap_InterfacesToTrace_reserved;
+static int hf_ngap_RATRestrictionInformation_e_UTRA;
+static int hf_ngap_RATRestrictionInformation_nR;
+static int hf_ngap_RATRestrictionInformation_nR_unlicensed;
+static int hf_ngap_RATRestrictionInformation_reserved;
+static int hf_ngap_primaryRATRestriction_e_UTRA;
+static int hf_ngap_primaryRATRestriction_nR;
+static int hf_ngap_primaryRATRestriction_nR_unlicensed;
+static int hf_ngap_primaryRATRestriction_nR_LEO;
+static int hf_ngap_primaryRATRestriction_nR_MEO;
+static int hf_ngap_primaryRATRestriction_nR_GEO;
+static int hf_ngap_primaryRATRestriction_nR_OTHERSAT;
+static int hf_ngap_primaryRATRestriction_e_UTRA_LEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_MEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_GEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT;
+static int hf_ngap_primaryRATRestriction_reserved;
+static int hf_ngap_secondaryRATRestriction_e_UTRA;
+static int hf_ngap_secondaryRATRestriction_nR;
+static int hf_ngap_secondaryRATRestriction_e_UTRA_unlicensed;
+static int hf_ngap_secondaryRATRestriction_nR_unlicensed;
+static int hf_ngap_secondaryRATRestriction_reserved;
+static int hf_ngap_NrencryptionAlgorithms_nea1;
+static int hf_ngap_NrencryptionAlgorithms_nea2;
+static int hf_ngap_NrencryptionAlgorithms_nea3;
+static int hf_ngap_NrencryptionAlgorithms_reserved;
+static int hf_ngap_NrintegrityProtectionAlgorithms_nia1;
+static int hf_ngap_NrintegrityProtectionAlgorithms_nia2;
+static int hf_ngap_NrintegrityProtectionAlgorithms_nia3;
+static int hf_ngap_NrintegrityProtectionAlgorithms_reserved;
+static int hf_ngap_EUTRAencryptionAlgorithms_eea1;
+static int hf_ngap_EUTRAencryptionAlgorithms_eea2;
+static int hf_ngap_EUTRAencryptionAlgorithms_eea3;
+static int hf_ngap_EUTRAencryptionAlgorithms_reserved;
+static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia1;
+static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia2;
+static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia3;
+static int hf_ngap_EUTRAintegrityProtectionAlgorithms_eia7;
+static int hf_ngap_EUTRAintegrityProtectionAlgorithms_reserved;
+static int hf_ngap_MeasurementsToActivate_M1;
+static int hf_ngap_MeasurementsToActivate_M2;
+static int hf_ngap_MeasurementsToActivate_M4;
+static int hf_ngap_MeasurementsToActivate_M5;
+static int hf_ngap_MeasurementsToActivate_M6;
+static int hf_ngap_MeasurementsToActivate_M7;
+static int hf_ngap_MeasurementsToActivate_M1_from_event;
+static int hf_ngap_MeasurementsToActivate_reserved;
+static int hf_ngap_MDT_Location_Information_GNSS;
+static int hf_ngap_MDT_Location_Information_reserved;
+static int hf_ngap_GlobalCable_ID_str;
+static int hf_ngap_UpdateFeedback_CN_PDB_DL;
+static int hf_ngap_UpdateFeedback_CN_PDB_UL;
+static int hf_ngap_UpdateFeedback_reserved;
#include "packet-ngap-hf.c"
/* Initialize the subtree pointers */
-static gint ett_ngap = -1;
-static gint ett_ngap_TransportLayerAddress = -1;
-static gint ett_ngap_DataCodingScheme = -1;
-static gint ett_ngap_SerialNumber = -1;
-static gint ett_ngap_WarningType = -1;
-static gint ett_ngap_WarningMessageContents = -1;
-static gint ett_ngap_PLMNIdentity = -1;
-static gint ett_ngap_NGAP_Message = -1;
-static gint ett_ngap_NGRANTraceID = -1;
-static gint ett_ngap_InterfacesToTrace = -1;
-static gint ett_ngap_SourceToTarget_TransparentContainer = -1;
-static gint ett_ngap_TargetToSource_TransparentContainer = -1;
-static gint ett_ngap_RRCContainer = -1;
-static gint ett_ngap_RATRestrictionInformation = -1;
-static gint ett_ngap_primaryRATRestriction = -1;
-static gint ett_ngap_secondaryRATRestriction = -1;
-static gint ett_ngap_NrencryptionAlgorithms = -1;
-static gint ett_ngap_NrintegrityProtectionAlgorithms = -1;
-static gint ett_ngap_EUTRAencryptionAlgorithms = -1;
-static gint ett_ngap_EUTRAintegrityProtectionAlgorithms = -1;
-static gint ett_ngap_UERadioCapabilityForPagingOfNR = -1;
-static gint ett_ngap_UERadioCapabilityForPagingOfEUTRA = -1;
-static gint ett_ngap_UERadioCapability = -1;
-static gint ett_ngap_LastVisitedEUTRANCellInformation = -1;
-static gint ett_ngap_LastVisitedUTRANCellInformation = -1;
-static gint ett_ngap_LastVisitedGERANCellInformation = -1;
-static gint ett_ngap_NASSecurityParametersFromNGRAN = -1;
-static gint ett_ngap_NASC = -1;
-static gint ett_ngap_NAS_PDU = -1;
-static gint ett_ngap_EN_DCSONConfigurationTransfer = -1;
-static gint ett_ngap_BurstArrivalTime = -1;
-static gint ett_ngap_CoverageEnhancementLevel = -1;
-static gint ett_ngap_MDTModeEutra = -1;
-static gint ett_ngap_MeasurementsToActivate = -1;
-static gint ett_ngap_MDT_Location_Information = -1;
-static gint ett_ngap_NRMobilityHistoryReport = -1;
-static gint ett_ngap_LTEUERLFReportContainer = -1;
-static gint ett_ngap_NRUERLFReportContainer = -1;
-static gint ett_ngap_TargettoSource_Failure_TransparentContainer = -1;
-static gint ett_ngap_UERadioCapabilityForPagingOfNB_IoT = -1;
-static gint ett_ngap_GlobalCable_ID = -1;
-static gint ett_ngap_UpdateFeedback = -1;
-static gint ett_ngap_successfulHOReportContainer = -1;
+static int ett_ngap;
+static int ett_ngap_TransportLayerAddress;
+static int ett_ngap_DataCodingScheme;
+static int ett_ngap_SerialNumber;
+static int ett_ngap_WarningType;
+static int ett_ngap_WarningMessageContents;
+static int ett_ngap_PLMNIdentity;
+static int ett_ngap_NGAP_Message;
+static int ett_ngap_NGRANTraceID;
+static int ett_ngap_InterfacesToTrace;
+static int ett_ngap_SourceToTarget_TransparentContainer;
+static int ett_ngap_TargetToSource_TransparentContainer;
+static int ett_ngap_RRCContainer;
+static int ett_ngap_RATRestrictionInformation;
+static int ett_ngap_primaryRATRestriction;
+static int ett_ngap_secondaryRATRestriction;
+static int ett_ngap_NrencryptionAlgorithms;
+static int ett_ngap_NrintegrityProtectionAlgorithms;
+static int ett_ngap_EUTRAencryptionAlgorithms;
+static int ett_ngap_EUTRAintegrityProtectionAlgorithms;
+static int ett_ngap_UERadioCapabilityForPagingOfNR;
+static int ett_ngap_UERadioCapabilityForPagingOfEUTRA;
+static int ett_ngap_UERadioCapability;
+static int ett_ngap_LastVisitedEUTRANCellInformation;
+static int ett_ngap_LastVisitedUTRANCellInformation;
+static int ett_ngap_LastVisitedGERANCellInformation;
+static int ett_ngap_NASSecurityParametersFromNGRAN;
+static int ett_ngap_NASC;
+static int ett_ngap_NAS_PDU;
+static int ett_ngap_EN_DCSONConfigurationTransfer;
+static int ett_ngap_BurstArrivalTime;
+static int ett_ngap_CoverageEnhancementLevel;
+static int ett_ngap_MDTModeEutra;
+static int ett_ngap_MeasurementsToActivate;
+static int ett_ngap_MDT_Location_Information;
+static int ett_ngap_NRMobilityHistoryReport;
+static int ett_ngap_LTEUERLFReportContainer;
+static int ett_ngap_NRUERLFReportContainer;
+static int ett_ngap_TargettoSource_Failure_TransparentContainer;
+static int ett_ngap_UERadioCapabilityForPagingOfNB_IoT;
+static int ett_ngap_GlobalCable_ID;
+static int ett_ngap_UpdateFeedback;
+static int ett_ngap_successfulHOReportContainer;
+static int ett_ngap_successfulPSCellChangeReportContainer;
#include "packet-ngap-ett.c"
-static expert_field ei_ngap_number_pages_le15 = EI_INIT;
+static expert_field ei_ngap_number_pages_le15;
enum{
INITIATING_MESSAGE,
@@ -196,15 +204,15 @@ enum{
static void set_stats_message_type(packet_info *pinfo, int type);
-static const guint8 *st_str_packets = "Total Packets";
-static const guint8 *st_str_packet_types = "NGAP Packet Types";
+static const uint8_t *st_str_packets = "Total Packets";
+static const uint8_t *st_str_packet_types = "NGAP Packet Types";
static int st_node_packets = -1;
static int st_node_packet_types = -1;
-static int ngap_tap = -1;
+static int ngap_tap;
struct ngap_tap_t {
- gint ngap_mtype;
+ int ngap_mtype;
};
#define MTYPE_AMF_CONFIGURATION_UPDATE 1
@@ -221,112 +229,123 @@ struct ngap_tap_t {
#define MTYPE_BROADCAST_SESSION_SETUP_REQUEST 12
#define MTYPE_BROADCAST_SESSION_SETUP_RESPONSE 13
#define MTYPE_BROADCAST_SESSION_SETUP_FAILURE 14
-#define MTYPE_CELL_TRAFFIC_TRACE 15
-#define MTYPE_CONNECTION_ESTAB_IND 16
-#define MTYPE_DEACTIVATE_TRACE 17
-#define MTYPE_DISTRIBUTION_SETUP_REQUEST 18
-#define MTYPE_DISTRIBUTION_SETUP_RESPONSE 19
-#define MTYPE_DISTRIBUTION_SETUP_FAILURE 20
-#define MTYPE_DISTRIBUTION_RELEASE_REQUEST 21
-#define MTYPE_DISTRIBUTION_RELEASE_RESPONSE 22
-#define MTYPE_DOWNLINK_NAS_TRANSPORT 23
-#define MTYPE_DOWNLINK_NON_UE_ASSOCIATED_NR_PPA_TRANSPORT 24
-#define MTYPE_DOWNLINK_RAN_CONFIGURATION_TRANSFER 25
-#define MTYPE_DOWNLINK_RAN_EARLY_STATUS_TRANSFER 26
-#define MTYPE_DOWNLINK_RAN_STATUS_TRANSFER 27
-#define MTYPE_DOWNLINK_UE_ASSOCIATED_NR_PPA_TRANSPORT 28
-#define MTYPE_ERROR_INDICATION 29
-#define MTYPE_HANDOVER_CANCEL 30
-#define MTYPE_HANDOVER_CANCEL_ACK 31
-#define MTYPE_HANDOVER_NOTIFY 32
-#define MTYPE_HANDOVER_REQUIRED 33
-#define MTYPE_HANDOVER_COMMAND 34
-#define MTYPE_HANDOVER_PREPARATION_FAILURE 35
-#define MTYPE_HANDOVER_REQUEST 36
-#define MTYPE_HANDOVER_REQUEST_ACK 37
-#define MTYPE_HANDOVER_FAILURE 38
-#define MTYPE_HANDOVER_SUCCESS 39
-#define MTYPE_INITIAL_CONTEXT_SETUP_REQUEST 40
-#define MTYPE_INITIAL_CONTEXT_SETUP_RESPONSE 41
-#define MTYPE_INITIAL_CONTEXT_SETUP_FAILURE 42
-#define MTYPE_INITIAL_UE_MESSAGE 43
-#define MTYPE_LOCATION_REPORT 44
-#define MTYPE_LOCATION_REPORTING_CONTROL 45
-#define MTYPE_LOCATION_REPORTING_FAILURE_IND 46
-#define MTYPE_MULTICAST_SESSION_ACTIVATION_REQUEST 47
-#define MTYPE_MULTICAST_SESSION_ACTIVATION_RESPONSE 48
-#define MTYPE_MULTICAST_SESSION_ACTIVATION_FAILURE 49
-#define MTYPE_MULTICAST_SESSION_DEACTIVATION_REQUEST 50
-#define MTYPE_MULTICAST_SESSION_DEACTIVATION_RESPONSE 51
-#define MTYPE_MULTICAST_SESSION_UPDATE_REQUEST 52
-#define MTYPE_MULTICAST_SESSION_UPDATE_RESPONSE 53
-#define MTYPE_MULTICAST_SESSION_UPDATE_FAILURE 54
-#define MTYPE_MULTICAST_GROUP_PAGING 55
-#define MTYPE_NAS_NON_DELIVERY_IND 56
-#define MTYPE_NG_RESET 57
-#define MTYPE_NG_RESET_ACK 58
-#define MTYPE_NG_SETUP_REQUEST 59
-#define MTYPE_NG_SETUP_RESPONSE 60
-#define MTYPE_NG_SETUP_FAILURE 61
-#define MTYPE_OVERLOAD_START 62
-#define MTYPE_OVERLOAD_STOP 63
-#define MTYPE_PAGING 64
-#define MTYPE_PATH_SWITCH_REQUEST 65
-#define MTYPE_PATH_SWITCH_REQUEST_ACK 66
-#define MTYPE_PATH_SWITCH_REQUEST_FAILURE 67
-#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_REQUEST 68
-#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_RESPONSE 69
-#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_IND 70
-#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_CONFIRM 71
-#define MTYPE_PDU_SESSION_RESOURCE_NOTIFY 72
-#define MTYPE_PDU_SESSION_RESOURCE_RELEASE_COMMAND 73
-#define MTYPE_PDU_SESSION_RESOURCE_RELEASE_RESPONSE 74
-#define MTYPE_PDU_SESSION_RESOURCE_SETUP_REQUEST 75
-#define MTYPE_PDU_SESSION_RESOURCE_SETUP_RESPONSE 76
-#define MTYPE_PRIVATE_MESSAGE 77
-#define MTYPE_PWS_CANCEL_REQUEST 78
-#define MTYPE_PWS_CANCEL_RESPONSE 79
-#define MTYPE_PWS_FAILURE_INDICATION 80
-#define MTYPE_PWS_RESTART_INDICATION 81
-#define MTYPE_RAN_CONFIGURATION_UPDATE 82
-#define MTYPE_RAN_CONFIGURATION_UPDATE_ACK 83
-#define MTYPE_RAN_CONFIGURATION_UPDATE_FAILURE 84
-#define MTYPE_RAN_CP_RELOCATION_IND 85
-#define MTYPE_REROUTE_NAS_REQUEST 86
-#define MTYPE_RETRIEVE_UE_INFORMATION 87
-#define MTYPE_RRC_INACTIVE_TRANSITION_REPORT 88
-#define MTYPE_SECONDARY_RAT_DATA_USAGE_REPORT 89
-#define MTYPE_TRACE_FAILURE_IND 90
-#define MTYPE_TRACE_START 91
-#define MTYPE_UE_CONTEXT_MODIFICATION_REQUEST 92
-#define MTYPE_UE_CONTEXT_MODIFICATION_RESPONSE 93
-#define MTYPE_UE_CONTEXT_MODIFICATION_FAILURE 94
-#define MTYPE_UE_CONTEXT_RELEASE_COMMAND 95
-#define MTYPE_UE_CONTEXT_RELEASE_COMPLETE 96
-#define MTYPE_UE_CONTEXT_RELEASE_REQUEST 97
-#define MTYPE_UE_CONTEXT_RESUME_REQUEST 98
-#define MTYPE_UE_CONTEXT_RESUME_RESPONSE 99
-#define MTYPE_UE_CONTEXT_RESUME_FAILURE 100
-#define MTYPE_UE_CONTEXT_SUSPEND_REQUEST 101
-#define MTYPE_UE_CONTEXT_SUSPEND_RESPONSE 102
-#define MTYPE_UE_CONTEXT_SUSPEND_FAILURE 103
-#define MTYPE_UE_INFORMATION_TRANSFER 104
-#define MTYPE_UE_RADIO_CAPABILITY_CHECK_REQUEST 105
-#define MTYPE_UE_RADIO_CAPABILITY_CHECK_RESPONSE 106
-#define MTYPE_UE_RADIO_CAPABILITY_ID_MAPPING_REQUEST 107
-#define MTYPE_UE_RADIO_CAPABILITY_ID_MAPPING_RESPONSE 108
-#define MTYPE_UE_RADIO_CAPABILITY_INFO_IND 109
-#define MTYPE_UE_TN_LAB_BINDING_RELEASE_REQUEST 110
-#define MTYPE_UPLINK_NAS_TRANSPORT 111
-#define MTYPE_UPLINK_NON_UE_ASSOCIATED_NR_PPA_TRANSPORT 112
-#define MTYPE_UPLINK_RAN_CONFIGURATION_TRANSFER 113
-#define MTYPE_UPLINK_RAN_EARLY_STATUS_TRANSFER 114
-#define MTYPE_UPLINK_RAN_STATUS_TRANSFER 115
-#define MTYPE_UPLINK_UE_ASSOCIATED_NR_PPA_TRANSPORT 116
-#define MTYPE_WRITE_REPLACE_WARNING_REQUEST 117
-#define MTYPE_WRITE_REPLACE_WARNING_RESPONSE 118
-#define MTYPE_UPLINK_RIM_INFORMATION_TRANSFER 119
-#define MTYPE_DOWNLINK_RIM_INFORMATION_TRANSFER 120
+#define MTYPE_BROADCAST_SESSION_TRANSPORT_REQUEST 15
+#define MTYPE_BROADCAST_SESSION_TRANSPORT_RESPONSE 16
+#define MTYPE_BROADCAST_SESSION_TRANSPORT_FAILURE 17
+#define MTYPE_CELL_TRAFFIC_TRACE 18
+#define MTYPE_CONNECTION_ESTAB_IND 19
+#define MTYPE_DEACTIVATE_TRACE 20
+#define MTYPE_DISTRIBUTION_SETUP_REQUEST 21
+#define MTYPE_DISTRIBUTION_SETUP_RESPONSE 22
+#define MTYPE_DISTRIBUTION_SETUP_FAILURE 23
+#define MTYPE_DISTRIBUTION_RELEASE_REQUEST 24
+#define MTYPE_DISTRIBUTION_RELEASE_RESPONSE 25
+#define MTYPE_DOWNLINK_NAS_TRANSPORT 26
+#define MTYPE_DOWNLINK_NON_UE_ASSOCIATED_NR_PPA_TRANSPORT 27
+#define MTYPE_DOWNLINK_RAN_CONFIGURATION_TRANSFER 28
+#define MTYPE_DOWNLINK_RAN_EARLY_STATUS_TRANSFER 29
+#define MTYPE_DOWNLINK_RAN_STATUS_TRANSFER 30
+#define MTYPE_DOWNLINK_UE_ASSOCIATED_NR_PPA_TRANSPORT 31
+#define MTYPE_ERROR_INDICATION 32
+#define MTYPE_HANDOVER_CANCEL 33
+#define MTYPE_HANDOVER_CANCEL_ACK 34
+#define MTYPE_HANDOVER_NOTIFY 35
+#define MTYPE_HANDOVER_REQUIRED 36
+#define MTYPE_HANDOVER_COMMAND 37
+#define MTYPE_HANDOVER_PREPARATION_FAILURE 38
+#define MTYPE_HANDOVER_REQUEST 39
+#define MTYPE_HANDOVER_REQUEST_ACK 40
+#define MTYPE_HANDOVER_FAILURE 41
+#define MTYPE_HANDOVER_SUCCESS 42
+#define MTYPE_INITIAL_CONTEXT_SETUP_REQUEST 43
+#define MTYPE_INITIAL_CONTEXT_SETUP_RESPONSE 44
+#define MTYPE_INITIAL_CONTEXT_SETUP_FAILURE 45
+#define MTYPE_INITIAL_UE_MESSAGE 46
+#define MTYPE_LOCATION_REPORT 47
+#define MTYPE_LOCATION_REPORTING_CONTROL 48
+#define MTYPE_LOCATION_REPORTING_FAILURE_IND 49
+#define MTYPE_MT_COMMUNICATION_HANDLING_REQUEST 50
+#define MTYPE_MT_COMMUNICATION_HANDLING_RESPONSE 51
+#define MTYPE_MT_COMMUNICATION_HANDLING_FAILURE 52
+#define MTYPE_MULTICAST_SESSION_ACTIVATION_REQUEST 53
+#define MTYPE_MULTICAST_SESSION_ACTIVATION_RESPONSE 54
+#define MTYPE_MULTICAST_SESSION_ACTIVATION_FAILURE 55
+#define MTYPE_MULTICAST_SESSION_DEACTIVATION_REQUEST 56
+#define MTYPE_MULTICAST_SESSION_DEACTIVATION_RESPONSE 57
+#define MTYPE_MULTICAST_SESSION_UPDATE_REQUEST 58
+#define MTYPE_MULTICAST_SESSION_UPDATE_RESPONSE 59
+#define MTYPE_MULTICAST_SESSION_UPDATE_FAILURE 60
+#define MTYPE_MULTICAST_GROUP_PAGING 61
+#define MTYPE_NAS_NON_DELIVERY_IND 62
+#define MTYPE_NG_RESET 63
+#define MTYPE_NG_RESET_ACK 64
+#define MTYPE_NG_SETUP_REQUEST 65
+#define MTYPE_NG_SETUP_RESPONSE 66
+#define MTYPE_NG_SETUP_FAILURE 67
+#define MTYPE_OVERLOAD_START 68
+#define MTYPE_OVERLOAD_STOP 69
+#define MTYPE_PAGING 70
+#define MTYPE_PATH_SWITCH_REQUEST 71
+#define MTYPE_PATH_SWITCH_REQUEST_ACK 72
+#define MTYPE_PATH_SWITCH_REQUEST_FAILURE 73
+#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_REQUEST 74
+#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_RESPONSE 75
+#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_IND 76
+#define MTYPE_PDU_SESSION_RESOURCE_MODIFY_CONFIRM 77
+#define MTYPE_PDU_SESSION_RESOURCE_NOTIFY 78
+#define MTYPE_PDU_SESSION_RESOURCE_RELEASE_COMMAND 79
+#define MTYPE_PDU_SESSION_RESOURCE_RELEASE_RESPONSE 80
+#define MTYPE_PDU_SESSION_RESOURCE_SETUP_REQUEST 81
+#define MTYPE_PDU_SESSION_RESOURCE_SETUP_RESPONSE 82
+#define MTYPE_PRIVATE_MESSAGE 83
+#define MTYPE_PWS_CANCEL_REQUEST 84
+#define MTYPE_PWS_CANCEL_RESPONSE 85
+#define MTYPE_PWS_FAILURE_INDICATION 86
+#define MTYPE_PWS_RESTART_INDICATION 87
+#define MTYPE_RAN_CONFIGURATION_UPDATE 88
+#define MTYPE_RAN_CONFIGURATION_UPDATE_ACK 89
+#define MTYPE_RAN_CONFIGURATION_UPDATE_FAILURE 90
+#define MTYPE_RAN_CP_RELOCATION_IND 91
+#define MTYPE_RAN_PAGING_REQUEST 92
+#define MTYPE_REROUTE_NAS_REQUEST 93
+#define MTYPE_RETRIEVE_UE_INFORMATION 94
+#define MTYPE_RRC_INACTIVE_TRANSITION_REPORT 95
+#define MTYPE_SECONDARY_RAT_DATA_USAGE_REPORT 96
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST 97
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE 98
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE 99
+#define MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT 100
+#define MTYPE_TRACE_FAILURE_IND 101
+#define MTYPE_TRACE_START 102
+#define MTYPE_UE_CONTEXT_MODIFICATION_REQUEST 103
+#define MTYPE_UE_CONTEXT_MODIFICATION_RESPONSE 104
+#define MTYPE_UE_CONTEXT_MODIFICATION_FAILURE 105
+#define MTYPE_UE_CONTEXT_RELEASE_COMMAND 106
+#define MTYPE_UE_CONTEXT_RELEASE_COMPLETE 107
+#define MTYPE_UE_CONTEXT_RELEASE_REQUEST 108
+#define MTYPE_UE_CONTEXT_RESUME_REQUEST 109
+#define MTYPE_UE_CONTEXT_RESUME_RESPONSE 110
+#define MTYPE_UE_CONTEXT_RESUME_FAILURE 111
+#define MTYPE_UE_CONTEXT_SUSPEND_REQUEST 112
+#define MTYPE_UE_CONTEXT_SUSPEND_RESPONSE 113
+#define MTYPE_UE_CONTEXT_SUSPEND_FAILURE 114
+#define MTYPE_UE_INFORMATION_TRANSFER 115
+#define MTYPE_UE_RADIO_CAPABILITY_CHECK_REQUEST 116
+#define MTYPE_UE_RADIO_CAPABILITY_CHECK_RESPONSE 117
+#define MTYPE_UE_RADIO_CAPABILITY_ID_MAPPING_REQUEST 118
+#define MTYPE_UE_RADIO_CAPABILITY_ID_MAPPING_RESPONSE 119
+#define MTYPE_UE_RADIO_CAPABILITY_INFO_IND 120
+#define MTYPE_UE_TN_LAB_BINDING_RELEASE_REQUEST 121
+#define MTYPE_UPLINK_NAS_TRANSPORT 122
+#define MTYPE_UPLINK_NON_UE_ASSOCIATED_NR_PPA_TRANSPORT 123
+#define MTYPE_UPLINK_RAN_CONFIGURATION_TRANSFER 124
+#define MTYPE_UPLINK_RAN_EARLY_STATUS_TRANSFER 125
+#define MTYPE_UPLINK_RAN_STATUS_TRANSFER 126
+#define MTYPE_UPLINK_UE_ASSOCIATED_NR_PPA_TRANSPORT 127
+#define MTYPE_WRITE_REPLACE_WARNING_REQUEST 128
+#define MTYPE_WRITE_REPLACE_WARNING_RESPONSE 129
+#define MTYPE_UPLINK_RIM_INFORMATION_TRANSFER 130
+#define MTYPE_DOWNLINK_RIM_INFORMATION_TRANSFER 131
/* Value Strings. TODO: ext? */
@@ -345,6 +364,9 @@ static const value_string mtype_names[] = {
{ MTYPE_BROADCAST_SESSION_SETUP_REQUEST, "BroadcastSessionSetupRequest" },
{ MTYPE_BROADCAST_SESSION_SETUP_RESPONSE, "BroadcastSessionSetupResponse" },
{ MTYPE_BROADCAST_SESSION_SETUP_FAILURE, "BroadcastSessionSetupFailure" },
+ { MTYPE_BROADCAST_SESSION_TRANSPORT_REQUEST, "BroadcastSessionTransportRequest" },
+ { MTYPE_BROADCAST_SESSION_TRANSPORT_RESPONSE, "BroadcastSessionTransportResponse" },
+ { MTYPE_BROADCAST_SESSION_TRANSPORT_FAILURE, "BroadcastSessionTransportFailure" },
{ MTYPE_CELL_TRAFFIC_TRACE, "CellTrafficTrace" },
{ MTYPE_CONNECTION_ESTAB_IND, "ConnectionEstablishmentIndication" },
{ MTYPE_DEACTIVATE_TRACE, "DeactivateTrace" },
@@ -377,6 +399,9 @@ static const value_string mtype_names[] = {
{ MTYPE_LOCATION_REPORT, "LocationReport" },
{ MTYPE_LOCATION_REPORTING_CONTROL, "LocationReportingControl" },
{ MTYPE_LOCATION_REPORTING_FAILURE_IND, "LocationReportingFailureIndication" },
+ { MTYPE_MT_COMMUNICATION_HANDLING_REQUEST, "MTCommunicationHandlingRequest" },
+ { MTYPE_MT_COMMUNICATION_HANDLING_RESPONSE, "MTCommunicationHandlingResponse" },
+ { MTYPE_MT_COMMUNICATION_HANDLING_FAILURE, "MTCommunicationHandlingFailure" },
{ MTYPE_MULTICAST_SESSION_ACTIVATION_REQUEST, "MulticastSessionActivationRequest" },
{ MTYPE_MULTICAST_SESSION_ACTIVATION_RESPONSE, "MulticastSessionActivationResponse" },
{ MTYPE_MULTICAST_SESSION_ACTIVATION_FAILURE, "MulticastSessionActivationFailure" },
@@ -416,10 +441,15 @@ static const value_string mtype_names[] = {
{ MTYPE_RAN_CONFIGURATION_UPDATE_ACK, "RANConfigurationUpdateAcknowledge" },
{ MTYPE_RAN_CONFIGURATION_UPDATE_FAILURE, "RANConfigurationUpdateFailure" },
{ MTYPE_RAN_CP_RELOCATION_IND, "RANCPRelocationIndication" },
+ { MTYPE_RAN_PAGING_REQUEST, "RANPagingRequest" },
{ MTYPE_REROUTE_NAS_REQUEST, "RerouteNASRequest" },
{ MTYPE_RETRIEVE_UE_INFORMATION, "RetrieveUEInformation" },
{ MTYPE_RRC_INACTIVE_TRANSITION_REPORT, "RRCInactiveTransitionReport" },
{ MTYPE_SECONDARY_RAT_DATA_USAGE_REPORT, "SecondaryRATDataUsageReport" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_REQUEST, "TimingSynchronisationStatusRequest" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_RESPONSE, "TimingSynchronisationStatusResponse" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_FAILURE, "TimingSynchronisationStatusFailure" },
+ { MTYPE_TIMING_SYNCHRONISATION_STATUS_REPORT, "TimingSynchronisationStatusReport" },
{ MTYPE_TRACE_FAILURE_IND, "TraceFailureIndication" },
{ MTYPE_TRACE_START, "TraceStart" },
{ MTYPE_UE_CONTEXT_MODIFICATION_REQUEST, "UEContextModificationRequest" },
@@ -456,18 +486,18 @@ static const value_string mtype_names[] = {
typedef struct _ngap_ctx_t {
- guint32 message_type;
- guint32 ProcedureCode;
- guint32 ProtocolIE_ID;
- guint32 ProtocolExtensionID;
+ uint32_t message_type;
+ uint32_t ProcedureCode;
+ uint32_t ProtocolIE_ID;
+ uint32_t ProtocolExtensionID;
} ngap_ctx_t;
struct ngap_conv_info {
address addr_a;
- guint32 port_a;
+ uint32_t port_a;
GlobalRANNodeID_enum ranmode_id_a;
address addr_b;
- guint32 port_b;
+ uint32_t port_b;
GlobalRANNodeID_enum ranmode_id_b;
wmem_map_t *nbiot_ta;
wmem_tree_t *nbiot_ran_ue_ngap_id;
@@ -479,29 +509,30 @@ enum {
};
struct ngap_supported_ta {
- guint32 tac;
+ uint32_t tac;
wmem_array_t *plmn;
};
struct ngap_tai {
- guint32 plmn;
- guint32 tac;
+ uint32_t plmn;
+ uint32_t tac;
};
struct ngap_private_data {
struct ngap_conv_info *ngap_conv;
- guint32 procedure_code;
- guint32 protocol_ie_id;
- guint32 protocol_extension_id;
- guint32 message_type;
- guint32 handover_type_value;
- guint8 data_coding_scheme;
- guint8 transparent_container_type;
- gboolean is_qos_flow_notify;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
+ uint32_t protocol_extension_id;
+ uint32_t message_type;
+ uint32_t handover_type_value;
+ uint8_t data_coding_scheme;
+ uint8_t transparent_container_type;
+ bool is_qos_flow_notify;
struct ngap_supported_ta *supported_ta;
struct ngap_tai *tai;
- guint32 ran_ue_ngap_id;
+ uint32_t ran_ue_ngap_id;
e212_number_type_t number_type;
+ int8_t qos_flow_add_info_rel_type;
struct ngap_tap_t *stats_tap;
};
@@ -532,10 +563,10 @@ static const enum_val_t ngap_lte_container_vals[] = {
};
/* Global variables */
-static range_t *gbl_ngapSctpRange = NULL;
-static gboolean ngap_dissect_container = TRUE;
-static gint ngap_dissect_target_ng_ran_container_as = NGAP_NG_RAN_CONTAINER_AUTOMATIC;
-static gint ngap_dissect_lte_container_as = NGAP_LTE_CONTAINER_AUTOMATIC;
+static range_t *gbl_ngapSctpRange;
+static bool ngap_dissect_container = true;
+static int ngap_dissect_target_ng_ran_container_as = NGAP_NG_RAN_CONTAINER_AUTOMATIC;
+static int ngap_dissect_lte_container_as = NGAP_LTE_CONTAINER_AUTOMATIC;
/* Dissector tables */
static dissector_table_t ngap_ies_dissector_table;
@@ -547,7 +578,7 @@ static dissector_table_t ngap_proc_sout_dissector_table;
static dissector_table_t ngap_proc_uout_dissector_table;
static dissector_table_t ngap_n2_ie_type_dissector_table;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
@@ -594,8 +625,15 @@ static int dissect_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer
static int dissect_SecondaryRATDataUsageReportTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_ngap_AlternativeQoSParaSetNotifyIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-
-const value_string ngap_serialNumber_gs_vals[] = {
+static int dissect_UEContextResumeRequestTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_UEContextResumeResponseTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_UEContextSuspendRequestTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_MBSSessionSetupOrModRequestTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_MBSSessionSetupOrModResponseTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_MBSSessionSetupOrModFailureTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_MBSSessionReleaseResponseTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+
+static const value_string ngap_serialNumber_gs_vals[] = {
{ 0, "Display mode immediate, cell wide"},
{ 1, "Display mode normal, PLMN wide"},
{ 2, "Display mode normal, tracking area wide"},
@@ -603,7 +641,7 @@ const value_string ngap_serialNumber_gs_vals[] = {
{ 0, NULL},
};
-const value_string ngap_warningType_vals[] = {
+static const value_string ngap_warningType_vals[] = {
{ 0, "Earthquake"},
{ 1, "Tsunami"},
{ 2, "Earthquake and Tsunami"},
@@ -613,15 +651,15 @@ const value_string ngap_warningType_vals[] = {
};
static void
-dissect_ngap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dcs, int hf_nb_pages, int hf_decoded_page)
+dissect_ngap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, uint8_t dcs, int hf_nb_pages, int hf_decoded_page)
{
- guint32 offset;
- guint8 nb_of_pages, length, *str;
+ uint32_t offset;
+ uint8_t 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_tvb, 0);
+ nb_of_pages = tvb_get_uint8(warning_msg_tvb, 0);
ti = proto_tree_add_uint(tree, hf_nb_pages, warning_msg_tvb, 0, 1, nb_of_pages);
if (nb_of_pages > 15) {
expert_add_info_format(pinfo, ti, &ei_ngap_number_pages_le15,
@@ -629,7 +667,7 @@ dissect_ngap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree,
nb_of_pages = 15;
}
for (i = 0, offset = 1; i < nb_of_pages; i++) {
- length = tvb_get_guint8(warning_msg_tvb, offset+82);
+ length = tvb_get_uint8(warning_msg_tvb, offset+82);
cb_data_page_tvb = tvb_new_subset_length(warning_msg_tvb, offset, length);
cb_data_tvb = dissect_cbs_data(dcs, cb_data_page_tvb, tree, pinfo, 0);
if (cb_data_tvb) {
@@ -642,27 +680,27 @@ dissect_ngap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree,
}
static void
-ngap_PacketLossRate_fmt(gchar *s, guint32 v)
+ngap_PacketLossRate_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1f%% (%u)", (float)v/10, v);
}
static void
-ngap_PacketDelayBudget_fmt(gchar *s, guint32 v)
+ngap_PacketDelayBudget_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
}
static void
-ngap_TimeUEStayedInCellEnhancedGranularity_fmt(gchar *s, guint32 v)
+ngap_TimeUEStayedInCellEnhancedGranularity_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fs", ((float)v)/10);
}
static void
-ngap_PeriodicRegistrationUpdateTimer_fmt(gchar *s, guint32 v)
+ngap_PeriodicRegistrationUpdateTimer_fmt(char *s, uint32_t v)
{
- guint32 val = v & 0x1f;
+ uint32_t val = v & 0x1f;
switch (v>>5) {
case 0:
@@ -691,29 +729,35 @@ ngap_PeriodicRegistrationUpdateTimer_fmt(gchar *s, guint32 v)
}
static void
-ngap_ExtendedPacketDelayBudget_fmt(gchar *s, guint32 v)
+ngap_ExtendedPacketDelayBudget_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fms (%u)", (float)v/100, v);
}
static void
-ngap_Threshold_RSRP_fmt(gchar *s, guint32 v)
+ngap_Threshold_RSRP_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (gint32)v-156, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (int32_t)v-156, v);
}
static void
-ngap_Threshold_RSRQ_fmt(gchar *s, guint32 v)
+ngap_Threshold_RSRQ_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-43, v);
}
static void
-ngap_Threshold_SINR_fmt(gchar *s, guint32 v)
+ngap_Threshold_SINR_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-23, v);
}
+static void
+ngap_N6Jitter_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%d)", (float)v/2, (int32_t)v);
+}
+
static struct ngap_private_data*
ngap_get_private_data(packet_info *pinfo)
{
@@ -721,13 +765,14 @@ ngap_get_private_data(packet_info *pinfo)
if (!ngap_data) {
ngap_data = wmem_new0(pinfo->pool, struct ngap_private_data);
ngap_data->handover_type_value = -1;
+ ngap_data->qos_flow_add_info_rel_type = -1;
p_add_proto_data(pinfo->pool, pinfo, proto_ngap, 0, ngap_data);
}
return ngap_data;
}
static GlobalRANNodeID_enum
-ngap_get_ranmode_id(address *addr, guint32 port, packet_info *pinfo)
+ngap_get_ranmode_id(address *addr, uint32_t port, packet_info *pinfo)
{
struct ngap_private_data *ngap_data = ngap_get_private_data(pinfo);
GlobalRANNodeID_enum ranmode_id = (GlobalRANNodeID_enum)-1;
@@ -742,14 +787,14 @@ ngap_get_ranmode_id(address *addr, guint32 port, packet_info *pinfo)
return ranmode_id;
}
-static gboolean
+static bool
ngap_is_nbiot_ue(packet_info *pinfo)
{
struct ngap_private_data *ngap_data = ngap_get_private_data(pinfo);
if (ngap_data->ngap_conv) {
wmem_tree_key_t tree_key[3];
- guint32 *id;
+ uint32_t *id;
tree_key[0].length = 1;
tree_key[0].key = &ngap_data->ran_ue_ngap_id;
@@ -757,15 +802,15 @@ ngap_is_nbiot_ue(packet_info *pinfo)
tree_key[1].key = &pinfo->num;
tree_key[2].length = 0;
tree_key[2].key = NULL;
- id = (guint32*)wmem_tree_lookup32_array_le(ngap_data->ngap_conv->nbiot_ran_ue_ngap_id, tree_key);
+ id = (uint32_t*)wmem_tree_lookup32_array_le(ngap_data->ngap_conv->nbiot_ran_ue_ngap_id, tree_key);
if (id && (*id == ngap_data->ran_ue_ngap_id)) {
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
-const true_false_string ngap_not_updated_updated = {
+static const true_false_string ngap_not_updated_updated = {
"Not updated",
"Updated"
};
@@ -782,7 +827,7 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
ngap_ctx.ProtocolIE_ID = ngap_data->protocol_ie_id;
ngap_ctx.ProtocolExtensionID = ngap_data->protocol_extension_id;
- return (dissector_try_uint_new(ngap_ies_dissector_table, ngap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &ngap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(ngap_ies_dissector_table, ngap_data->protocol_ie_id, tvb, pinfo, tree, false, &ngap_ctx)) ? tvb_captured_length(tvb) : 0;
}
/* Currently not used
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -810,35 +855,42 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in
ngap_ctx.ProtocolIE_ID = ngap_data->protocol_ie_id;
ngap_ctx.ProtocolExtensionID = ngap_data->protocol_extension_id;
- return (dissector_try_uint_new(ngap_extension_dissector_table, ngap_data->protocol_extension_id, tvb, pinfo, tree, TRUE, &ngap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(ngap_extension_dissector_table, ngap_data->protocol_extension_id, tvb, pinfo, tree, true, &ngap_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
struct ngap_private_data *ngap_data = ngap_get_private_data(pinfo);
- return (dissector_try_uint_new(ngap_proc_imsg_dissector_table, ngap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(ngap_proc_imsg_dissector_table, ngap_data->procedure_code, 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)
{
struct ngap_private_data *ngap_data = ngap_get_private_data(pinfo);
- return (dissector_try_uint_new(ngap_proc_sout_dissector_table, ngap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(ngap_proc_sout_dissector_table, ngap_data->procedure_code, 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)
{
struct ngap_private_data *ngap_data = ngap_get_private_data(pinfo);
- return (dissector_try_uint_new(ngap_proc_uout_dissector_table, ngap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(ngap_proc_uout_dissector_table, ngap_data->procedure_code, tvb, pinfo, tree, true, data)) ? tvb_captured_length(tvb) : 0;
}
+static int dissect_QosFlowAdditionalInfoListRel_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ if (ngap_get_private_data(pinfo)->qos_flow_add_info_rel_type == 0)
+ return dissect_QosFlowAdditionalInfoListRelCom_PDU(tvb, pinfo, tree, data);
+ else
+ return dissect_QosFlowAdditionalInfoListRelRes_PDU(tvb, pinfo, tree, data);
+}
static void
ngap_stats_tree_init(stats_tree *st)
{
- st_node_packets = stats_tree_create_node(st, st_str_packets, 0, STAT_DT_INT, TRUE);
+ st_node_packets = stats_tree_create_node(st, st_str_packets, 0, STAT_DT_INT, true);
st_node_packet_types = stats_tree_create_pivot(st, st_str_packet_types, st_node_packets);
}
@@ -848,7 +900,7 @@ ngap_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_,
{
const struct ngap_tap_t *pi = (const struct ngap_tap_t *) p;
- tick_stat_node(st, st_str_packets, 0, FALSE);
+ tick_stat_node(st, st_str_packets, 0, false);
stats_tree_tick_pivot(st, st_node_packet_types,
val_to_str(pi->ngap_mtype, mtype_names,
"Unknown packet type (%d)"));
@@ -911,23 +963,23 @@ dissect_ngap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
return tvb_captured_length(tvb);
}
-static gboolean
+static bool
find_n2_info_content(char *json_data, jsmntok_t *token, const char *n2_info_content,
const char *content_id, dissector_handle_t *subdissector)
{
jsmntok_t *n2_info_content_token, *ngap_data_token;
char *str;
- gdouble ngap_msg_type;
+ double ngap_msg_type;
n2_info_content_token = json_get_object(json_data, token, n2_info_content);
if (!n2_info_content_token)
- return FALSE;
+ return false;
ngap_data_token = json_get_object(json_data, n2_info_content_token, "ngapData");
if (!ngap_data_token)
- return FALSE;
+ return false;
str = json_get_string(json_data, ngap_data_token, "contentId");
if (!str || strcmp(str, content_id))
- return FALSE;
+ return false;
str = json_get_string(json_data, n2_info_content_token, "ngapIeType");
if (str)
*subdissector = dissector_get_string_handle(ngap_n2_ie_type_dissector_table, str);
@@ -935,7 +987,7 @@ find_n2_info_content(char *json_data, jsmntok_t *token, const char *n2_info_cont
*subdissector = ngap_handle;
else
*subdissector = NULL;
- return TRUE;
+ return true;
}
/* 3GPP TS 29.502 chapter 6.1.6.4.3 and 29.518 chapter 6.1.6.4.3 */
@@ -1008,6 +1060,9 @@ dissect_ngap_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
goto found;
}
}
+ if (find_n2_info_content(json_data, tokens, "n2MbsSmInfo",
+ content_info->content_id, &subdissector))
+ goto found;
cur_tok = json_get_array(json_data, tokens, "pduSessionList");
if (cur_tok) {
int i, count;
@@ -1036,7 +1091,7 @@ found:
if (subdissector) {
proto_item *ngap_item;
proto_tree *ngap_tree;
- gboolean save_writable;
+ bool save_writable;
col_append_sep_str(pinfo->cinfo, COL_PROTOCOL, "/", "NGAP");
if (subdissector != ngap_handle) {
@@ -1046,7 +1101,7 @@ found:
ngap_tree = tree;
}
save_writable = col_get_writable(pinfo->cinfo, COL_PROTOCOL);
- col_set_writable(pinfo->cinfo, COL_PROTOCOL, FALSE);
+ col_set_writable(pinfo->cinfo, COL_PROTOCOL, false);
call_dissector_with_data(subdissector, tvb, pinfo, ngap_tree, NULL);
col_set_writable(pinfo->cinfo, COL_PROTOCOL, save_writable);
return tvb_captured_length(tvb);
@@ -1055,7 +1110,7 @@ found:
}
}
-void
+static void
apply_ngap_prefs(void)
{
gbl_ngapSctpRange = prefs_get_range_value("ngap", "sctp.port");
@@ -1072,7 +1127,8 @@ proto_reg_handoff_ngap(void)
lte_rrc_ue_radio_access_cap_info_handle = find_dissector_add_dependency("lte-rrc.ue_radio_access_cap_info", proto_ngap);
lte_rrc_ue_radio_paging_info_nb_handle = find_dissector_add_dependency("lte-rrc.ue_radio_paging_info.nb", proto_ngap);
lte_rrc_ue_radio_access_cap_info_nb_handle = find_dissector_add_dependency("lte-rrc.ue_radio_access_cap_info.nb", proto_ngap);
- dissector_add_uint("sctp.ppi", NGAP_PROTOCOL_ID, ngap_handle);
+ dissector_add_uint("sctp.ppi", NGAP_PROTOCOL_ID, ngap_handle);
+ dissector_add_uint("ngap.extension", id_QosFlowAdditionalInfoList, create_dissector_handle(dissect_QosFlowAdditionalInfoListRel_PDU, proto_ngap));
#include "packet-ngap-dis-tab.c"
dissector_add_string("media_type", "application/vnd.3gpp.ngap", ngap_media_type_handle);
@@ -1209,9 +1265,25 @@ void proto_register_ngap(void) {
{ "nR-OTHERSAT", "ngap.primaryRATRestriction.nR_OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_LEO,
+ { "e-UTRA-LEO", "ngap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_MEO,
+ { "e-UTRA-MEO", "ngap.primaryRATRestriction.e_UTRA_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_GEO,
+ { "e-UTRA-GEO", "ngap.primaryRATRestriction.e_UTRA_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT,
+ { "e-UTRA-OTHERSAT", "ngap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20,
+ NULL, HFILL }},
{ &hf_ngap_primaryRATRestriction_reserved,
{ "reserved", "ngap.primaryRATRestriction.reserved",
- FT_UINT8, BASE_HEX, NULL, 0x01,
+ FT_UINT8, BASE_HEX, NULL, 0x1f,
NULL, HFILL }},
{ &hf_ngap_secondaryRATRestriction_e_UTRA,
{ "e-UTRA", "ngap.secondaryRATRestriction.e_UTRA",
@@ -1361,7 +1433,7 @@ void proto_register_ngap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ngap,
&ett_ngap_TransportLayerAddress,
&ett_ngap_DataCodingScheme,
@@ -1405,6 +1477,7 @@ void proto_register_ngap(void) {
&ett_ngap_GlobalCable_ID,
&ett_ngap_UpdateFeedback,
&ett_ngap_successfulHOReportContainer,
+ &ett_ngap_successfulPSCellChangeReportContainer,
#include "packet-ngap-ettarr.c"
};
@@ -1448,10 +1521,10 @@ void proto_register_ngap(void) {
"Dissect target NG-RAN container as",
"Select whether target NG-RAN container should be decoded automatically"
" (based on NG Setup procedure) or manually",
- &ngap_dissect_target_ng_ran_container_as, ngap_target_ng_ran_container_vals, FALSE);
+ &ngap_dissect_target_ng_ran_container_as, ngap_target_ng_ran_container_vals, false);
prefs_register_enum_preference(ngap_module, "dissect_lte_container_as", "Dissect LTE container as",
"Select whether LTE container should be dissected as NB-IOT or legacy LTE",
- &ngap_dissect_lte_container_as, ngap_lte_container_vals, FALSE);
+ &ngap_dissect_lte_container_as, ngap_lte_container_vals, false);
ngap_tap = register_tap("ngap");
}
diff --git a/epan/dissectors/asn1/nist-csor/packet-nist-csor-template.c b/epan/dissectors/asn1/nist-csor/packet-nist-csor-template.c
index d084b425..087befe0 100644
--- a/epan/dissectors/asn1/nist-csor/packet-nist-csor-template.c
+++ b/epan/dissectors/asn1/nist-csor/packet-nist-csor-template.c
@@ -12,6 +12,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-nist-csor.h"
#include "packet-ber.h"
@@ -26,7 +27,7 @@ void proto_register_nist_csor(void);
void proto_reg_handoff_nist_csor(void);
/* Initialize the protocol and registered fields */
-static int proto_nist_csor = -1;
+static int proto_nist_csor;
#include "packet-nist-csor-hf.c"
/* Initialize the subtree pointers */
@@ -43,7 +44,7 @@ void proto_register_nist_csor(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-nist-csor-ettarr.c"
};
diff --git a/epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c b/epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c
index 5e0b9934..e739557d 100644
--- a/epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c
+++ b/epan/dissectors/asn1/novell_pkis/packet-novell_pkis-template.c
@@ -15,6 +15,7 @@
#include <epan/oids.h>
#include <epan/conversation.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-ber.h"
@@ -26,7 +27,7 @@
void proto_register_novell_pkis (void);
void proto_reg_handoff_novell_pkis(void);
-static int proto_novell_pkis = -1;
+static int proto_novell_pkis;
void proto_reg_handoff_novell_pkis(void)
{
@@ -38,12 +39,12 @@ void proto_register_novell_pkis (void)
static hf_register_info hf[] = {
#include "packet-novell_pkis-hfarr.c"
};
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-novell_pkis-ettarr.c"
};
/* execute protocol initialization only once */
- if (proto_novell_pkis != -1) return;
+ if (proto_novell_pkis > 0) 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));
diff --git a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn
index 6d6cfeec..c6c6213a 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn
@@ -1,12 +1,16 @@
--- 3GPP TS 38.331 V17.5.0 (2023-06)
+-- 3GPP TS 38.331 V18.2.0 (2024-06)
NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
+ AffectedCarrierFreqCombList-r16,
+ AffectedCarrierFreqRangeCombList-r18,
ARFCN-ValueNR,
ARFCN-ValueEUTRA,
+ CandidateServingFreqListNR-r16,
+ CandidateServingFreqRangeListNR-r18,
CellIdentity,
CGI-InfoEUTRA,
CGI-InfoNR,
@@ -17,11 +21,14 @@ IMPORTS
EUTRA-PhysCellId,
FeatureSetDownlinkPerCC-Id,
FeatureSetUplinkPerCC-Id,
+ FlightPathInfoReport-r18,
FreqBandIndicatorNR,
GapConfig,
+ IDC-TDM-Assistance-r18,
maxBandComb,
maxBands,
maxBandsEUTRA,
+ maxCandidateBandIndex-r18,
maxCellSFTD,
maxFeatureSetsPerBand,
maxFreq,
@@ -35,6 +42,7 @@ IMPORTS
maxNrofServingCells-1,
maxNrofServingCellsEUTRA,
maxNrofIndexesToReport,
+ maxNrofLTM-Configs-r18,
maxSimultaneousBands,
MBSInterestIndication-r17,
MeasQuantityResults,
@@ -43,15 +51,21 @@ IMPORTS
MeasResultList2NR,
MeasResultSCG-Failure,
MeasResultServFreqListEUTRA-SCG,
+ MUSIM-CandidateBandList-r18,
+ MUSIM-CapRestriction-r18,
+ MUSIM-GapConfig-r17,
NeedForGapsInfoNR-r16,
NeedForGapNCSG-InfoNR-r17,
NeedForGapNCSG-InfoEUTRA-r17,
+ NeedForInterruptionInfoNR-r18,
OverheatingAssistance,
OverheatingAssistance-r17,
P-Max,
PhysCellId,
RadioBearerConfig,
RAN-NotificationAreaInfo,
+ ReferenceConfiguration-r18,
+ ReportConfigNR,
RRCReconfiguration,
ServCellIndex,
SetupRelease,
@@ -68,7 +82,10 @@ IMPORTS
RSSI-ResourceId-r16,
SDT-Config-r17,
SidelinkUEInformationNR-r16,
+ SRS-PosRRC-InactiveValidityAreaPreConfigList-r18,
SRS-ResourceId,
+ SuccessPSCell-Config-r18,
+ SupportedAggBandwidth-r17,
UE-RadioPagingInfo-r17
FROM NR-RRC-Definitions;
@@ -104,19 +121,29 @@ CG-CandidateInfoId-r17::= SEQUENCE {
-- TAG-CG-CANDIDATELIST-STOP
-- TAG-HANDOVER-COMMAND-START
-HandoverCommand ::= SEQUENCE {
- criticalExtensions CHOICE {
- c1 CHOICE{
- handoverCommand HandoverCommand-IEs,
+HandoverCommand ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverCommand HandoverCommand-IEs,
spare3 NULL, spare2 NULL, spare1 NULL
},
- criticalExtensionsFuture SEQUENCE {}
+ criticalExtensionsFuture SEQUENCE {}
}
}
-HandoverCommand-IEs ::= SEQUENCE {
- handoverCommandMessage OCTET STRING (CONTAINING RRCReconfiguration),
- nonCriticalExtension SEQUENCE {} OPTIONAL
+HandoverCommand-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING RRCReconfiguration),
+ nonCriticalExtension HandoverCommand-v1800-IEs OPTIONAL
+}
+
+HandoverCommand-v1800-IEs ::= SEQUENCE {
+ candPSCellExecutionConditionInfo-r18 CandPSCellExecutionConditionInfo-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CandPSCellExecutionConditionInfo-r18 ::= SEQUENCE {
+ candPSCellExecCondReportConfigNR-r18 SEQUENCE (SIZE (1..2)) OF ReportConfigNR,
+ ...
}
-- TAG-HANDOVER-COMMAND-STOP
@@ -153,6 +180,9 @@ AS-Config ::= SEQUENCE {
]],
[[
sdt-Config-r17 SDT-Config-r17 OPTIONAL
+ ]],
+ [[
+ srs-PosRRC-InactiveValidityAreaPreConfigList-r18 SRS-PosRRC-InactiveValidityAreaPreConfigList-r18 OPTIONAL
]]
}
@@ -182,6 +212,10 @@ AS-Context ::= SEQUENCE {
needForGapNCSG-InfoNR-r17 NeedForGapNCSG-InfoNR-r17 OPTIONAL,
needForGapNCSG-InfoEUTRA-r17 NeedForGapNCSG-InfoEUTRA-r17 OPTIONAL,
mbsInterestIndication-r17 OCTET STRING (CONTAINING MBSInterestIndication-r17) OPTIONAL
+ ]],
+ [[
+ needForInterruptionInfoNR-r18 NeedForInterruptionInfoNR-r18 OPTIONAL,
+ flightPathInfoReport-r18 FlightPathInfoReport-r18 OPTIONAL
]]
}
@@ -320,9 +354,19 @@ CG-Config-v1700-IEs ::= SEQUENCE {
CG-Config-v1730-IEs ::= SEQUENCE {
fr1-Carriers-SCG-r17 INTEGER (1..32) OPTIONAL,
fr2-Carriers-SCG-r17 INTEGER (1..32) OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension CG-Config-v1800-IEs OPTIONAL
}
+CG-Config-v1800-IEs ::= SEQUENCE {
+ candidateServingFreqRangeListNR-r18 CandidateServingFreqRangeListNR-r18 OPTIONAL,
+ candidateServingFreqListNR-r16 CandidateServingFreqListNR-r16 OPTIONAL,
+ idc-TDM-AssistanceConfig-r18 ENUMERATED {enabled} OPTIONAL,
+ candidateCellInfoListSubsequentCPC-r18 CandidateCellInfoListCPC-r17 OPTIONAL,
+ scpac-ReferenceConfigurationSCG-r18 ReferenceConfiguration-r18 OPTIONAL,
+ subsequentCPAC-Information-r18 CandidateCellInfoListCPC-r17 OPTIONAL,
+ successPSCell-Config-r18 SuccessPSCell-Config-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
ServCellInfoListSCG-NR-r16 ::= SEQUENCE (SIZE (1.. maxNrofServingCells)) OF ServCellInfoXCG-NR-r16
ServCellInfoXCG-NR-r16 ::= SEQUENCE {
@@ -358,6 +402,9 @@ PH-InfoSCG ::= SEQUENCE {
...,
[[
twoSRS-PUSCH-Repetition-r17 ENUMERATED{enabled} OPTIONAL
+ ]],
+ [[
+ twoSRS-MultipanelScheme-r18 ENUMERATED{enabled} OPTIONAL
]]
}
@@ -389,6 +436,15 @@ ConfigRestrictModReqSCG ::= SEQUENCE {
requestedMaxInterFreqMeasIdSCG-r16 INTEGER(1..maxMeasIdentitiesMN) OPTIONAL,
requestedMaxIntraFreqMeasIdSCG-r16 INTEGER(1..maxMeasIdentitiesMN) OPTIONAL,
requestedToffset-r16 T-Offset-r16 OPTIONAL
+ ]],
+ [[
+ reservedResourceConfigNRDC-r17 ResourceConfigNRDC-r17 OPTIONAL
+ ]],
+ [[
+ aggregatedBandwidthSN-r17 AggregatedBandwidthSN-r17 OPTIONAL
+ ]],
+ [[
+ requestedMaxLTM-CandidateIdSCG-r18 INTEGER(0..maxNrofLTM-Configs-r18) OPTIONAL
]]
}
@@ -424,6 +480,15 @@ CandidateCell-r17 ::= SEQUENCE {
condExecutionCondSCG-r17 OCTET STRING (CONTAINING CondReconfigExecCondSCG-r17) OPTIONAL
}
+AggregatedBandwidthSN-r17 ::= SEQUENCE {
+ aggBW-FDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ aggBW-FDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ aggBW-TDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ aggBW-TDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ aggBW-TotalDL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ aggBW-TotalUL-r17 SupportedAggBandwidth-r17 OPTIONAL
+}
+
-- TAG-CG-CONFIG-STOP
-- TAG-CG-CONFIG-INFO-START
@@ -541,6 +606,17 @@ CG-ConfigInfo-v1700-IEs ::= SEQUENCE {
CG-ConfigInfo-v1730-IEs ::= SEQUENCE {
fr1-Carriers-MCG-r17 INTEGER (1..32) OPTIONAL,
fr2-Carriers-MCG-r17 INTEGER (1..32) OPTIONAL,
+ nonCriticalExtension CG-ConfigInfo-v1800-IEs OPTIONAL
+}
+
+CG-ConfigInfo-v1800-IEs ::= SEQUENCE {
+ musim-GapConfigInfo-r18 MUSIM-GapConfig-r17 OPTIONAL,
+ musim-CapRestrictionInfo-r18 SEQUENCE {
+ musim-CapRestriction-r18 MUSIM-CapRestriction-r18 OPTIONAL,
+ musim-CandidateBandList-r18 MUSIM-CandidateBandList-r18 OPTIONAL
+ } OPTIONAL,
+ scpac-ReferenceConfiguration-r18 ReferenceConfiguration-r18 OPTIONAL,
+ subsequentCPAC-Candidates-r18 CandidateCellListCPC-r17 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -594,6 +670,15 @@ ConfigRestrictInfoSCG ::= SEQUENCE {
allowedReducedConfigForOverheating-r17 OverheatingAssistance-r17 OPTIONAL,
maxNumberUDC-DRB-r17 INTEGER(0..2) OPTIONAL,
maxNumberCPCCandidates-r17 INTEGER(0..maxNrofCondCells-1-r17) OPTIONAL
+ ]],
+ [[
+ allowedResourceConfigNRDC-r17 ResourceConfigNRDC-r17 OPTIONAL
+ ]],
+ [[
+ allowedAggregatedBandwidthSNList-r17 AllowedAggregatedBandwidthSNList-r17 OPTIONAL
+ ]],
+ [[
+ maxNumberLTM-CandidatesSCG-r18 INTEGER(0..maxNrofLTM-Configs-r18) OPTIONAL
]]
}
@@ -610,6 +695,9 @@ PH-InfoMCG ::= SEQUENCE {
...,
[[
twoSRS-PUSCH-Repetition-r17 ENUMERATED{enabled} OPTIONAL
+ ]],
+ [[
+ twoSRS-MultipanelScheme-r18 ENUMERATED{enabled} OPTIONAL
]]
}
@@ -690,6 +778,11 @@ MRDC-AssistanceInfo ::= SEQUENCE {
]],
[[
overheatingAssistanceSCG-FR2-2-r17 OCTET STRING (CONTAINING OverheatingAssistance-r17) OPTIONAL
+ ]],
+ [[
+ affectedCarrierFreqRangeCombList-r18 AffectedCarrierFreqRangeCombList-r18 OPTIONAL,
+ affectedCarrierFreqCombList-r18 AffectedCarrierFreqCombList-r16 OPTIONAL,
+ idc-TDM-Assistance-r18 IDC-TDM-Assistance-r18 OPTIONAL
]]
}
@@ -722,6 +815,18 @@ CandidateCellCPC-r17 ::= SEQUENCE {
candidateCellList-r17 SEQUENCE (SIZE (1..maxNrofCondCells-r16)) OF PhysCellId
}
+AllowedAggregatedBandwidthSNList-r17 ::= SEQUENCE (SIZE (1..maxBandComb)) OF AllowedAggregatedBandwidth-r17
+
+AllowedAggregatedBandwidth-r17 ::= SEQUENCE {
+ bandCombinationIndex-r17 BandCombinationIndex,
+ allowedAggBW-FDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ allowedAggBW-FDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ allowedAggBW-TDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ allowedAggBW-TDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ allowedAggBW-TotalDL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ allowedAggBW-TotalUL-r17 SupportedAggBandwidth-r17 OPTIONAL
+}
+
-- TAG-CG-CONFIG-INFO-STOP
-- TAG-MEASUREMENT-TIMING-CONFIGURATION-START
@@ -806,6 +911,12 @@ UERadioPagingInformation-v1700-IEs ::= SEQUENCE {
inactiveStatePO-Determination-r17 ENUMERATED {supported} OPTIONAL,
numberOfRxRedCap-r17 ENUMERATED {one, two} OPTIONAL,
halfDuplexFDD-TypeA-RedCap-r17 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicatorNR OPTIONAL,
+ nonCriticalExtension UERadioPagingInformation-v1800-IEs OPTIONAL
+}
+
+UERadioPagingInformation-v1800-IEs ::= SEQUENCE {
+ numberOfRxERedCap-r18 ENUMERATED {one, two} OPTIONAL,
+ supportOf2RxXR-r18 ENUMERATED {supported} OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -830,6 +941,28 @@ UERadioAccessCapabilityInformation-IEs ::= SEQUENCE {
}
-- TAG-UE-RADIO-ACCESS-CAPABILITY-INFORMATION-STOP
+-- TAG-RESOURCECONFIGNRDC-START
+
+ResourceConfigNRDC-r17 ::= SEQUENCE {
+ fr1-ResourceConfig-r17 ResourceConfigPerFR-r17 OPTIONAL,
+ fr2-ResourceConfig-r17 ResourceConfigPerFR-r17 OPTIONAL,
+ maxNumberResAcrossCC-AcrossFR-r17 INTEGER (0..256) OPTIONAL,
+ ...
+}
+
+ResourceConfigPerFR-r17 ::= SEQUENCE {
+ bm-MaxNumberCSI-RS-Resource-r17 INTEGER (0..64) OPTIONAL,
+ bm-MaxNumberAperiodicCSI-RS-Resource-r17 INTEGER (0..64) OPTIONAL,
+ cg-MaxNumberConfigsAllCC-r17 INTEGER (0..32) OPTIONAL,
+ maxNumberCSI-RS-BFD-r17 INTEGER (0..64) OPTIONAL,
+ maxNumberCSI-RS-SSB-CBD-r17 INTEGER (0..256) OPTIONAL,
+ maxNumberSSB-BFD-r17 INTEGER (0..64) OPTIONAL,
+ sps-MaxNumberConfigsAllCC-r17 INTEGER (0..32) OPTIONAL,
+ trs-MaxConfResourceSetsAllCC-r17 INTEGER (0..256) OPTIONAL,
+ ...
+}
+
+-- TAG-RESOURCECONFIGNRDC-STOP
-- TAG-NR-MULTIPLICITY-AND-CONSTRAINTS-START
maxMeasFreqsMN INTEGER ::= 32 -- Maximum number of MN-configured measurement frequencies
diff --git a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn
index 2b9daa4f..f3b8266d 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.331 V17.5.0 (2023-06)
+-- 3GPP TS 38.331 V18.2.0 (2024-06)
NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
@@ -91,6 +91,21 @@ MCCH-MessageType-r17 ::= CHOICE {
}
-- TAG-MCCH-MESSAGE-STOP
+-- TAG-MULTICASTMCCH-MESSAGE-START
+
+MulticastMCCH-Message-r18 ::= SEQUENCE {
+ message MulticastMCCH-MessageType-r18
+}
+
+MulticastMCCH-MessageType-r18 ::= CHOICE {
+ c1 CHOICE {
+ mbsMulticastConfiguration-r18 MBSMulticastConfiguration-r18,
+ spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-MULTICASTMCCH-MESSAGE-STOP
-- TAG-PCCH-PCH-MESSAGE-START
PCCH-Message ::= SEQUENCE {
@@ -180,7 +195,7 @@ UL-DCCH-MessageType ::= CHOICE {
mbsInterestIndication-r17 MBSInterestIndication-r17,
uePositioningAssistanceInfo-r17 UEPositioningAssistanceInfo-r17,
measurementReportAppLayer-r17 MeasurementReportAppLayer-r17,
- spare6 NULL, spare5 NULL, spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL
+ indirectPathFailureInformation-r18 IndirectPathFailureInformation-r18, spare5 NULL, spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL
},
messageClassExtensionFuture-r16 SEQUENCE {}
}
@@ -258,7 +273,7 @@ DedicatedSIBRequest-r16-IEs ::= SEQUENCE {
nonCriticalExtension SEQUENCE {} OPTIONAL
}
-SIB-ReqInfo-r16 ::= ENUMERATED { sib12, sib13, sib14, sib20-v1700, sib21-v1700, spare3, spare2, spare1 }
+SIB-ReqInfo-r16 ::= ENUMERATED { sib12, sib13, sib14, sib20-v1700, sib21-v1700, sib23-v1810, spare2, spare1 }
PosSIB-ReqInfo-r16 ::= SEQUENCE {
gnss-id-r16 GNSS-ID-r16 OPTIONAL,
@@ -271,7 +286,10 @@ PosSIB-ReqInfo-r16 ::= SEQUENCE {
posSibType2-21, posSibType2-22, posSibType2-23, posSibType3-1, posSibType4-1,
posSibType5-1, posSibType6-1, posSibType6-2, posSibType6-3,..., posSibType1-9-v1710,
posSibType1-10-v1710, posSibType2-24-v1710, posSibType2-25-v1710,
- posSibType6-4-v1710, posSibType6-5-v1710, posSibType6-6-v1710 }
+ posSibType6-4-v1710, posSibType6-5-v1710, posSibType6-6-v1710, posSibType2-17a-v1770,
+ posSibType2-18a-v1770, posSibType2-20a-v1770, posSibType1-11-v1800, posSibType1-12-v1800,
+ posSibType2-26-v1800, posSibType2-27-v1800, posSibType6-7-v1800, posSibType7-1-v1800,
+ posSibType7-2-v1800, posSibType7-3-v1800, posSibType7-4-v1800 }
}
-- TAG-DEDICATEDSIBREQUEST-STOP
@@ -320,6 +338,15 @@ DLInformationTransfer-v1700-IEs ::= SEQUENCE {
rxTxTimeDiff-gNB-r17 RxTxTimeDiff-r17 OPTIONAL, -- Need N
ta-PDC-r17 ENUMERATED {activate,deactivate} OPTIONAL, -- Need N
sib9Fallback-r17 ENUMERATED {true} OPTIONAL, -- Need N
+ nonCriticalExtension DLInformationTransfer-v1800-IEs OPTIONAL
+}
+
+DLInformationTransfer-v1800-IEs ::= SEQUENCE {
+ eventID-TSS-r18 INTEGER(0..63) OPTIONAL, -- Cond ClockQualityDetailsLevel
+ clockQualityDetailsLevel-r18 CHOICE {
+ clockQualityMetrics-r18 ClockQualityMetrics-r18,
+ clockQualityAcceptanceStatus-r18 ENUMERATED {acceptable, notAcceptable}
+ } OPTIONAL, -- Need N
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -378,7 +405,7 @@ FailureInfoDAPS-r16 ::= SEQUENCE {
-- TAG-IABOTHERINFORMATION-START
IABOtherInformation-r16 ::= SEQUENCE {
- rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ dummy RRC-TransactionIdentifier,
criticalExtensions CHOICE {
iabOtherInformation-r16 IABOtherInformation-r16-IEs,
criticalExtensionsFuture SEQUENCE {}
@@ -440,6 +467,33 @@ IAB-IP-PrefixAndTraffic-r16 ::= SEQUENCE {
}
-- TAG-IABOTHERINFORMATION-STOP
+-- TAG-INDIRECTPATHFAILUREINFORMATION-START
+
+IndirectPathFailureInformation-r18 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ indirectPathFailureInformation-r18 IndirectPathFailureInformation-r18-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+IndirectPathFailureInformation-r18-IEs ::= SEQUENCE {
+ failureReportIndirectPath-r18 FailureReportIndirectPath-r18 OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+FailureReportIndirectPath-r18 ::= SEQUENCE {
+ failureTypeIndirectPath-r18 ENUMERATED {t421-Expiry,sl-Failure,n3c-Failure, relayUE-Uu-RLF,
+ relayUE-Uu-RRC-Failure,
+ indirectPathAddChangeFailure, sl-PC5-Release, spare1} OPTIONAL,
+ sl-MeasResultServingRelay-r18 OCTET STRING OPTIONAL,
+ -- Contains PC5 SL-MeasResultRelay-r17
+ sl-MeasResultsCandRelay-r18 OCTET STRING OPTIONAL,
+ n3c-RelayUE-InfoList-r18 SEQUENCE (SIZE (0..8)) OF N3C-RelayUE-Info-r18 OPTIONAL,
+ ...
+}
+
+-- TAG-INDIRECTPATHFAILUREINFORMATION-STOP
-- TAG-LOCATIONMEASUREMENTINDICATION-START
LocationMeasurementIndication ::= SEQUENCE {
@@ -488,7 +542,12 @@ LoggedMeasurementConfiguration-r16-IEs ::= SEQUENCE {
LoggedMeasurementConfiguration-v1700-IEs ::= SEQUENCE {
sigLoggedMeasType-r17 ENUMERATED {true} OPTIONAL, -- Need R
earlyMeasIndication-r17 ENUMERATED {true} OPTIONAL, -- Need R
- areaConfiguration-v1700 AreaConfiguration-v1700 OPTIONAL, --Need R
+ areaConfiguration-r17 AreaConfiguration-r17 OPTIONAL, --Need R
+ nonCriticalExtension LoggedMeasurementConfiguration-v1800-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1800-IEs ::= SEQUENCE {
+ areaConfiguration-v1800 AreaConfiguration-v1800 OPTIONAL, --Need R
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -548,10 +607,46 @@ MBSInterestIndication-r17-IEs ::= SEQUENCE {
mbs-Priority-r17 ENUMERATED {true} OPTIONAL,
mbs-ServiceList-r17 MBS-ServiceList-r17 OPTIONAL,
lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MBSInterestIndication-v1800 OPTIONAL
+}
+
+MBSInterestIndication-v1800 ::= SEQUENCE {
+ mbs-NonServingInfoList-r18 MBS-NonServingInfoList-r18 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
-- TAG-MBSINTERESTINDICATION-STOP
+-- TAG-MBSMULTICASTCONFIGURATION-START
+
+MBSMulticastConfiguration-r18 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ mbsMulticastConfiguration-r18 MBSMulticastConfiguration-r18-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+-- WS modification: define a dedicated type
+ThresholdMBS-List-r18 ::= SEQUENCE (SIZE (1..maxNrofThresholdMBS-r18)) OF ThresholdMBS-r18
+
+MBSMulticastConfiguration-r18-IEs ::= SEQUENCE {
+ mbs-SessionInfoListMulticast-r18 MBS-SessionInfoListMulticast-r18 OPTIONAL, -- Need R
+ mbs-NeighbourCellList-r18 MBS-NeighbourCellList-r17 OPTIONAL, -- Need S
+ drx-ConfigPTM-List-r18 SEQUENCE (SIZE (1..maxNrofDRX-ConfigPTM-r17)) OF DRX-ConfigPTM-r17 OPTIONAL, -- Need R
+ pdsch-ConfigMTCH-r18 PDSCH-ConfigBroadcast-r17 OPTIONAL, -- Need S
+ mtch-SSB-MappingWindowList-r18 MTCH-SSB-MappingWindowList-r17 OPTIONAL, -- Need R
+-- WS modification: define a dedicated type
+-- thresholdMBS-List-r18 SEQUENCE (SIZE (1..maxNrofThresholdMBS-r18)) OF ThresholdMBS-r18 OPTIONAL, Need R
+ thresholdMBS-List-r18 ThresholdMBS-List-r18 OPTIONAL, -- Need R
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+ThresholdMBS-r18 ::= SEQUENCE {
+ rsrp-r18 RSRP-Range OPTIONAL, -- Need R
+ rsrq-r18 RSRQ-Range OPTIONAL -- Need R
+}
+
+-- TAG-MBSMULTICASTCONFIGURATION-STOP
-- TAG-MCGFAILUREINFORMATION-START
MCGFailureInformation-r16 ::= SEQUENCE {
@@ -618,27 +713,45 @@ MeasurementReportAppLayer-r17 ::= SEQUENCE {
MeasurementReportAppLayer-r17-IEs ::= SEQUENCE {
measurementReportAppLayerList-r17 MeasurementReportAppLayerList-r17,
lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MeasurementReportAppLayer-v1800-IEs OPTIONAL
+}
+
+MeasurementReportAppLayer-v1800-IEs ::= SEQUENCE {
+ measurementReportAppLayerList-v1800 MeasurementReportAppLayerList-v1800 OPTIONAL,
nonCriticalExtension SEQUENCE{} OPTIONAL
}
MeasurementReportAppLayerList-r17 ::= SEQUENCE (SIZE (1..maxNrofAppLayerMeas-r17)) OF MeasReportAppLayer-r17
-MeasReportAppLayer-r17 ::= SEQUENCE {
+MeasurementReportAppLayerList-v1800 ::= SEQUENCE (SIZE (1..maxNrofAppLayerMeas-r17)) OF MeasReportAppLayer-v1800
+
+MeasReportAppLayer-r17 ::= SEQUENCE {
measConfigAppLayerId-r17 MeasConfigAppLayerId-r17,
measReportAppLayerContainer-r17 OCTET STRING OPTIONAL,
appLayerSessionStatus-r17 ENUMERATED {start, stop} OPTIONAL,
ran-VisibleMeasurements-r17 RAN-VisibleMeasurements-r17 OPTIONAL
}
+MeasReportAppLayer-v1800 ::= SEQUENCE {
+ appLayerIdleInactiveConfig-r18 AppLayerIdleInactiveConfig-r18 OPTIONAL,
+ measReportAppLayerContainerList-r18 SEQUENCE (SIZE (1..maxNrofAppLayerReports-r18)) OF OCTET STRING OPTIONAL,
+ ...
+}
+
RAN-VisibleMeasurements-r17 ::= SEQUENCE {
appLayerBufferLevelList-r17 SEQUENCE (SIZE (1..8)) OF AppLayerBufferLevel-r17 OPTIONAL,
playoutDelayForMediaStartup-r17 INTEGER (0..30000) OPTIONAL,
pdu-SessionIdList-r17 SEQUENCE (SIZE (1..maxNrofPDU-Sessions-r17)) OF PDU-SessionID OPTIONAL,
- ...
+ ...,
+ [[
+ pdu-SessionIdListExt-v1800 SEQUENCE (SIZE (1..maxNrofPDU-Sessions-r17)) OF QFI-List-r18 OPTIONAL
+ ]]
}
AppLayerBufferLevel-r17 ::= INTEGER (0..30000)
+QFI-List-r18 ::= SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI
+
-- TAG-MEASUREMENTREPORTAPPLAYER-STOP
-- TAG-MIB-START
@@ -689,6 +802,12 @@ Paging ::= SEQUENCE {
Paging-v1700-IEs ::= SEQUENCE {
pagingRecordList-v1700 PagingRecordList-v1700 OPTIONAL, -- Need N
pagingGroupList-r17 PagingGroupList-r17 OPTIONAL, -- Need N
+ nonCriticalExtension Paging-v1800-IEs OPTIONAL
+}
+
+Paging-v1800-IEs ::= SEQUENCE {
+ pagingRecordList-v1800 PagingRecordList-v1800 OPTIONAL, -- Need N
+ pagingGroupList-v1800 PagingGroupList-v1800 OPTIONAL, -- Need N
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -698,6 +817,10 @@ PagingRecordList-v1700 ::= SEQUENCE (SIZE(1..maxNrofPageRec)) OF Paging
PagingGroupList-r17 ::= SEQUENCE (SIZE(1..maxNrofPageGroup-r17)) OF TMGI-r17
+PagingRecordList-v1800 ::= SEQUENCE (SIZE(1..maxNrofPageRec)) OF PagingRecord-v1800
+
+PagingGroupList-v1800 ::= SEQUENCE (SIZE(1..maxNrofPageGroup-r17)) OF GroupPaging-r18
+
PagingRecord ::= SEQUENCE {
ue-Identity PagingUE-Identity,
accessType ENUMERATED {non3GPP} OPTIONAL, -- Need N
@@ -708,12 +831,20 @@ PagingRecord-v1700 ::= SEQUENCE {
pagingCause-r17 ENUMERATED {voice} OPTIONAL -- Need N
}
+PagingRecord-v1800 ::= SEQUENCE {
+ mt-SDT ENUMERATED {true} OPTIONAL -- Need N
+}
+
PagingUE-Identity ::= CHOICE {
ng-5G-S-TMSI NG-5G-S-TMSI,
fullI-RNTI I-RNTI-Value,
...
}
+GroupPaging-r18 ::= SEQUENCE {
+ inactiveReceptionAllowed-r18 ENUMERATED {true} OPTIONAL -- Need N
+}
+
-- TAG-PAGING-STOP
-- TAG-RRCREESTABLISHMENT-START
@@ -753,8 +884,15 @@ RRCReestablishmentComplete-IEs ::= SEQUENCE {
}
RRCReestablishmentComplete-v1610-IEs ::= SEQUENCE {
- ue-MeasurementsAvailable-r16 UE-MeasurementsAvailable-r16 OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ ue-MeasurementsAvailable-r16 UE-MeasurementsAvailable-r16 OPTIONAL,
+ nonCriticalExtension RRCReestablishmentComplete-v1800-IEs OPTIONAL
+}
+
+RRCReestablishmentComplete-v1800-IEs ::= SEQUENCE {
+ flightPathInfoAvailable-r18 ENUMERATED {true} OPTIONAL,
+ measConfigReportAppLayerAvailable-r18 ENUMERATED {true} OPTIONAL,
+ musim-CapRestrictionInd-r18 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
-- TAG-RRCREESTABLISHMENTCOMPLETE-STOP
@@ -847,8 +985,20 @@ RRCReconfiguration-v1700-IEs ::= SEQUENCE {
ul-GapFR2-Config-r17 CHOICE {release NULL, setup UL-GapFR2-Config-r17 } OPTIONAL, -- Need M
scg-State-r17 ENUMERATED { deactivated } OPTIONAL, -- Need N
appLayerMeasConfig-r17 AppLayerMeasConfig-r17 OPTIONAL, -- Need M
- ue-TxTEG-RequestUL-TDOA-Config-r17 CHOICE {release NULL, setup UE-TxTEG-RequestUL-TDOA-Config-r17} OPTIONAL, -- Need M
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ ue-TxTEG-RequestUL-TDOA-Config-r17 CHOICE {release NULL, setup UE-TxTEG-RequestUL-TDOA-Config-r17} OPTIONAL, -- Need M
+ nonCriticalExtension RRCReconfiguration-v1800-IEs OPTIONAL
+}
+
+RRCReconfiguration-v1800-IEs ::= SEQUENCE {
+ needForInterruptionConfigNR-r18 ENUMERATED { disabled, enabled } OPTIONAL, -- Need M
+ aerial-Config-r18 CHOICE {release NULL, setup Aerial-Config-r18 } OPTIONAL, -- Need M
+ sl-IndirectPathAddChange-r18 CHOICE {release NULL, setup SL-IndirectPathAddChange-r18 } OPTIONAL, -- Need M
+ n3c-IndirectPathAddChange-r18 CHOICE {release NULL, setup N3C-IndirectPathAddChange-r18 } OPTIONAL, -- Need M
+ n3c-IndirectPathConfigRelay-r18 CHOICE {release NULL, setup N3C-IndirectPathConfigRelay-r18 } OPTIONAL, -- Need M
+ otherConfig-v1800 OtherConfig-v1800 OPTIONAL, -- Need M
+ srs-PosResourceSetAggBW-CombinationList-r18 CHOICE {release NULL, setup SRS-PosResourceSetAggBW-CombinationList-r18 } OPTIONAL, -- Need M
+ ltm-Config-r18 CHOICE {release NULL, setup LTM-Config-r18} OPTIONAL, -- Need M
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
MRDC-SecondaryCellGroupConfig ::= SEQUENCE {
@@ -906,6 +1056,11 @@ UE-TxTEG-RequestUL-TDOA-Config-r17 ::= CHOICE {
oneShot-r17 NULL,
periodicReporting-r17 ENUMERATED { ms160, ms320, ms1280, ms2560, ms61440, ms81920, ms368640, ms737280 }
}
+
+SRS-PosResourceSetAggBW-CombinationList-r18 ::= SEQUENCE (SIZE(1.. maxNrOfLinkedSRS-PosResSetComb-r18)) OF SRS-PosResourceSetLinkedForAggBW-List-r18
+
+SRS-PosResourceSetLinkedForAggBW-List-r18 ::= SEQUENCE (SIZE(2..maxNrOfLinkedSRS-PosResourceSet-r18)) OF SRS-PosResourceSetLinkedForAggBW-r18
+
-- TAG-RRCRECONFIGURATION-STOP
-- TAG-RRCRECONFIGURATIONCOMPLETE-START
@@ -955,6 +1110,16 @@ RRCReconfigurationComplete-v1700-IEs ::= SEQUENCE {
RRCReconfigurationComplete-v1720-IEs ::= SEQUENCE {
uplinkTxDirectCurrentMoreCarrierList-r17 UplinkTxDirectCurrentMoreCarrierList-r17 OPTIONAL,
+ nonCriticalExtension RRCReconfigurationComplete-v1800-IEs OPTIONAL
+}
+
+RRCReconfigurationComplete-v1800-IEs ::= SEQUENCE {
+ needForInterruptionInfoNR-r18 NeedForInterruptionInfoNR-r18 OPTIONAL,
+ flightPathInfoAvailable-r18 ENUMERATED {true} OPTIONAL,
+ selectedPSCellForCHO-WithSCG-r18 SelectedPSCellForCHO-WithSCG-r18 OPTIONAL,
+ selectedSK-Counter-r18 SK-Counter OPTIONAL,
+ measConfigReportAppLayerAvailable-r18 ENUMERATED {true} OPTIONAL,
+ appliedLTM-CandidateId-r18 LTM-CandidateId-r18 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -1052,6 +1217,12 @@ SuspendConfig ::= SEQUENCE {
]],
[[
ncd-SSB-RedCapInitialBWP-SDT-r17 CHOICE {release NULL, setup NonCellDefiningSSB-r17} OPTIONAL -- Need M
+ ]],
+ [[
+ resumeIndication-r18 ENUMERATED {true} OPTIONAL, -- Need N
+ srs-PosRRC-InactiveEnhanced-r18 CHOICE {release NULL, setup SRS-PosRRC-InactiveEnhanced-r18 } OPTIONAL, -- Need M
+ ran-ExtendedPagingCycleConfig-r18 ExtendedPagingCycleConfig-r18 OPTIONAL, -- Cond RANPaging
+ multicastConfigInactive-r18 CHOICE {release NULL, setup MulticastConfigInactive-r18 } OPTIONAL -- Need M
]]
}
@@ -1069,8 +1240,6 @@ CellReselectionPriorities ::= SEQUENCE {
PagingCycle ::= ENUMERATED {rf32, rf64, rf128, rf256}
-ExtendedPagingCycle-r17 ::= ENUMERATED {rf256, rf512, rf1024, spare1}
-
FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
FreqPriorityListNR ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityNR
@@ -1128,11 +1297,19 @@ SDT-MAC-PHY-CG-Config-r17 ::= SEQUENCE {
cg-SDT-ConfigInitialBWP-NUL-r17 CHOICE {release NULL, setup BWP-UplinkDedicatedSDT-r17} OPTIONAL, -- Need M
cg-SDT-ConfigInitialBWP-SUL-r17 CHOICE {release NULL, setup BWP-UplinkDedicatedSDT-r17} OPTIONAL, -- Need M
cg-SDT-ConfigInitialBWP-DL-r17 BWP-DownlinkDedicatedSDT-r17 OPTIONAL, -- Need M
- cg-SDT-TimeAlignmentTimer-r17 TimeAlignmentTimer OPTIONAL, -- Need M
- cg-SDT-RSRP-ThresholdSSB-r17 RSRP-Range OPTIONAL, -- Need M
- cg-SDT-TA-ValidationConfig-r17 CHOICE {release NULL, setup CG-SDT-TA-ValidationConfig-r17 } OPTIONAL, -- Need M
- cg-SDT-CS-RNTI-r17 RNTI-Value OPTIONAL, -- Need M
- ...
+ cg-SDT-TimeAlignmentTimer-r17 TimeAlignmentTimer OPTIONAL, -- Need M
+ cg-SDT-RSRP-ThresholdSSB-r17 RSRP-Range OPTIONAL, -- Need M
+ cg-SDT-TA-ValidationConfig-r17 CHOICE {release NULL, setup CG-SDT-TA-ValidationConfig-r17 } OPTIONAL, -- Need M
+ cg-SDT-CS-RNTI-r17 RNTI-Value OPTIONAL, -- Need M
+ ...,
+ [[
+ cg-SDT-ConfigLCH-RestrictionToAddModListExt-v1800 SEQUENCE (SIZE(1..maxLC-ID)) OF CG-SDT-ConfigLCH-Restriction-v1800
+ OPTIONAL, -- Need N
+ cg-MT-SDT-MaxDurationToNextCG-Occasion-r18 ENUMERATED {
+ ms10, ms100, sec1, sec10, sec60, sec100, sec300, sec600,
+ sec1200, sec1800, sec3600,
+ spare5, spare4, spare3, spare2, spare1} OPTIONAL -- Need R
+ ]]
}
CG-SDT-TA-ValidationConfig-r17 ::= SEQUENCE {
@@ -1160,6 +1337,13 @@ CG-SDT-ConfigLCH-Restriction-r17 ::= SEQUENCE {
OPTIONAL -- Need R
}
+CG-SDT-ConfigLCH-Restriction-v1800 ::= SEQUENCE {
+ cg-SDT-MaxDurationToNextCG-Occasion-r18 ENUMERATED {
+ ms10, ms100, sec1, sec10, sec60, sec100, sec300, sec600,
+ sec1200, sec1800, sec3600,
+ spare5, spare4, spare3, spare2, spare1} OPTIONAL -- Need R
+}
+
SRS-PosRRC-Inactive-r17 ::= OCTET STRING (CONTAINING SRS-PosRRC-InactiveConfig-r17)
SRS-PosRRC-InactiveConfig-r17 ::= SEQUENCE {
@@ -1180,6 +1364,56 @@ SRS-PosConfig-r17 ::= SEQUENCE {
srs-PosResourceToAddModList-r17 SEQUENCE (SIZE(1..maxNrofSRS-PosResources-r16)) OF SRS-PosResource-r16 OPTIONAL -- Need N
}
+SRS-PosRRC-InactiveEnhanced-r18 ::= OCTET STRING (CONTAINING SRS-PosRRC-InactiveEnhancedConfig-r18)
+
+SRS-PosRRC-InactiveEnhancedConfig-r18 ::= SEQUENCE {
+ srs-PosRRC-AggBW-InactiveConfigList-r18 CHOICE {release NULL, setup SRS-PosRRC-AggBW-InactiveConfigList-r18 } OPTIONAL, -- Need M
+ srs-PosTx-Hopping-r18 CHOICE {release NULL, setup SRS-PosTx-Hopping-r18 } OPTIONAL, -- Need M
+ srs-PosRRC-InactiveValidityAreaPreConfigList-r18 CHOICE {release NULL, setup SRS-PosRRC-InactiveValidityAreaPreConfigList-r18 } OPTIONAL, -- Need M
+ srs-PosRRC-InactiveValidityAreaNonPreConfig-r18 CHOICE {release NULL, setup SRS-PosRRC-InactiveValidityAreaConfig-r18 } OPTIONAL, -- Need M
+ ...
+}
+
+SRS-PosRRC-InactiveValidityAreaPreConfigList-r18 ::= SEQUENCE (SIZE(1..maxNrOfVA-r18)) OF SRS-PosRRC-InactiveValidityAreaConfig-r18
+
+SRS-PosRRC-InactiveValidityAreaConfig-r18 ::= SEQUENCE {
+ srs-PosConfigValidityArea-r18 SEQUENCE (SIZE(1..maxNrOfCellsInVA-r18)) OF CellIdentity,
+ srs-PosConfigNUL-r18 SRS-PosConfig-r17 OPTIONAL, -- Need R
+ srs-PosConfigSUL-r18 SRS-PosConfig-r17 OPTIONAL, -- Need R
+ bwp-NUL-r18 BWP OPTIONAL, -- Need S
+ bwp-SUL-r18 BWP OPTIONAL, -- Need S
+ areaValidityTA-Config-r18 AreaValidityTA-Config-r18 OPTIONAL, -- Need R
+ ...
+}
+
+AreaValidityTA-Config-r18 ::= SEQUENCE {
+ inactivePosSRS-ValidityAreaTAT-r18 ENUMERATED {ms1280, ms1920, ms2560, ms5120, ms10240, ms20480, ms40960, infinity},
+ inactivePosSRS-ValidityAreaRSRP-r18 RSRP-ChangeThreshold-r17 OPTIONAL, -- Need R
+ autonomousTA-AdjustmentEnabled-r18 ENUMERATED {true} OPTIONAL -- Need R
+}
+
+SRS-PosRRC-AggBW-InactiveConfigList-r18 ::= SEQUENCE (SIZE(1..maxNrOfLinkedSRS-PosResSetCombInactive-r18)) OF
+ SRS-InactivePosResourceSetLinkedForAggBW-List-r18
+
+SRS-InactivePosResourceSetLinkedForAggBW-List-r18 ::= SEQUENCE (SIZE (2..maxNrOfLinkedSRS-PosResourceSet-r18)) OF
+ SRS-PosResourceSetLinkedForAggBW-r18
+
+ExtendedPagingCycle-r17 ::= ENUMERATED {rf256, rf512, rf1024, spare1}
+
+ExtendedPagingCycleConfig-r18 ::= SEQUENCE {
+ extendedPagingCycle-r18 ENUMERATED {hf2, hf4, hf8, hf16, hf32, hf64, hf128,hf256, hf512, hf1024,
+ spare6, spare5, spare4, spare3, spare2, spare1},
+ pagingPTWLength-r18 ENUMERATED {ms1280, ms2560, ms3840, ms5120, ms6400, ms7680, ms8960, ms10240, ms11520,
+ ms12800, ms14080, ms15360, ms16640, ms17920, ms19200, ms20480, ms21760,
+ ms23040, ms24320, ms25600, ms26880, ms28160, ms29440, ms30720, ms32000,
+ ms33280, ms34560, ms35840, ms37120, ms38400, ms39680, ms40960}
+}
+
+MulticastConfigInactive-r18::= SEQUENCE {
+ inactivePTM-Config-r18 OCTET STRING (CONTAINING MBSMulticastConfiguration-r18) OPTIONAL, -- Need S
+ inactiveMCCH-Config-r18 OCTET STRING (CONTAINING SystemInformation) OPTIONAL -- Need N
+}
+
-- TAG-RRCRELEASE-STOP
-- TAG-RRCRESUME-START
@@ -1225,6 +1459,13 @@ RRCResume-v1700-IEs ::= SEQUENCE {
needForGapNCSG-ConfigEUTRA-r17 CHOICE {release NULL, setup NeedForGapNCSG-ConfigEUTRA-r17} OPTIONAL, -- Need M
scg-State-r17 ENUMERATED {deactivated} OPTIONAL, -- Need N
appLayerMeasConfig-r17 AppLayerMeasConfig-r17 OPTIONAL, -- Need M
+ nonCriticalExtension RRCResume-v1800-IEs OPTIONAL
+}
+
+RRCResume-v1800-IEs ::= SEQUENCE {
+ needForInterruptionConfigNR-r18 ENUMERATED { disabled, enabled } OPTIONAL, -- Need M
+ reselectionMeasurementReq-r18 ENUMERATED { true } OPTIONAL, -- Need N
+ validatedMeasurementsReq-r18 ENUMERATED { true } OPTIONAL, -- Need N
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -1275,7 +1516,17 @@ RRCResumeComplete-v1700-IEs ::= SEQUENCE {
RRCResumeComplete-v1720-IEs ::= SEQUENCE {
uplinkTxDirectCurrentMoreCarrierList-r17 UplinkTxDirectCurrentMoreCarrierList-r17 OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension RRCResumeComplete-v1800-IEs OPTIONAL
+}
+
+RRCResumeComplete-v1800-IEs ::= SEQUENCE {
+ needForInterruptionInfoNR-r18 NeedForInterruptionInfoNR-r18 OPTIONAL,
+ musim-CapRestrictionInd-r18 ENUMERATED {true} OPTIONAL,
+ flightPathInfoAvailable-r18 ENUMERATED {true} OPTIONAL,
+ measConfigReportAppLayerAvailable-r18 ENUMERATED {true} OPTIONAL,
+ measResultReselectionNR-r18 MeasResultIdleNR-r16 OPTIONAL,
+ reselectionMeasAvailable-r18 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
-- TAG-RRCRESUMECOMPLETE-STOP
@@ -1371,6 +1622,16 @@ RRCSetupComplete-v1690-IEs ::= SEQUENCE {
RRCSetupComplete-v1700-IEs ::= SEQUENCE {
onboardingRequest-r17 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCSetupComplete-v1800-IEs OPTIONAL
+}
+
+RRCSetupComplete-v1800-IEs ::= SEQUENCE {
+ ncr-NodeIndication-r18 ENUMERATED {true} OPTIONAL,
+ musim-CapRestrictionInd-r18 ENUMERATED {true} OPTIONAL,
+ flightPathInfoAvailable-r18 ENUMERATED {true} OPTIONAL,
+ measConfigReportAppLayerAvailable-r18 ENUMERATED {true} OPTIONAL,
+ mobileIAB-NodeIndication-r18 ENUMERATED {true} OPTIONAL,
+ reselectionMeasAvailable-r18 ENUMERATED {true} OPTIONAL,
nonCriticalExtension SEQUENCE{} OPTIONAL
}
@@ -1636,6 +1897,34 @@ SIB1-v1700-IEs ::= SEQUENCE {
SIB1-v1740-IEs ::= SEQUENCE {
si-SchedulingInfo-v1740 SI-SchedulingInfo-v1740 OPTIONAL, -- Need R
+ nonCriticalExtension SIB1-v1800-IEs OPTIONAL
+}
+
+SIB1-v1800-IEs ::= SEQUENCE {
+ ncr-Support-r18 ENUMERATED {true} OPTIONAL, -- Need S
+ mt-SDT-ConfigCommonSIB-r18 MT-SDT-ConfigCommonSIB-r18 OPTIONAL, -- Need R
+ musim-CapRestrictionAllowed-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ featurePriorities-v1800 SEQUENCE {
+ msg1-Repetitions-Priority-r18 FeaturePriority-r17 OPTIONAL, -- Need R
+ eRedCapPriority-r18 FeaturePriority-r17 OPTIONAL -- Need R
+ } OPTIONAL, -- Need R
+ si-SchedulingInfo-v1800 SI-SchedulingInfo-v1800 OPTIONAL, -- Need R
+ cellBarredATG-r18 ENUMERATED {barred, notBarred} OPTIONAL, -- Need S
+ cellBarredNES-r18 ENUMERATED {notBarred} OPTIONAL, -- Need R
+ mobileIAB-Cell-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ eDRX-AllowedInactive-r18 ENUMERATED {true} OPTIONAL, -- Cond EDRX-RC
+ intraFreqReselection-eRedCap-r18 ENUMERATED {allowed, notAllowed} OPTIONAL, -- Need S
+ nonServingCellMII-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ sdt-BeamFailureRecoveryProhibitTimer-r18 ENUMERATED {ms50, ms100, ms200, ms500, ms1000, ms1500, ms2000, ms3000}
+ OPTIONAL, -- Need R
+ eRedCap-ConfigCommon-r18 ERedCap-ConfigCommonSIB-r18 OPTIONAL, -- Need R
+ cellBarredFixedVSAT-r18 ENUMERATED {barred, notBarred} OPTIONAL, -- Cond NTN
+ cellBarredMobileVSAT-r18 ENUMERATED {barred, notBarred} OPTIONAL, -- Cond NTN
+ reselectionMeasurementsNR-r18 ENUMERATED{true} OPTIONAL, -- Need R
+ cellBarred2RxXR-r18 ENUMERATED {barred} OPTIONAL, -- Need R
+ intraFreqReselection2RxXR-r18 ENUMERATED {allowed, notAllowed} OPTIONAL, -- Need R
+ barringExemptEmergencyCall-r18 ENUMERATED {true} OPTIONAL, -- Cond EM-Barring
+ n3c-Support-r18 ENUMERATED {true} OPTIONAL, -- Need R
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -1661,8 +1950,23 @@ RedCap-ConfigCommonSIB-r17 ::= SEQUENCE {
...
}
+ERedCap-ConfigCommonSIB-r18 ::= SEQUENCE {
+ cellBarredeRedCap-r18 SEQUENCE {
+ cellBarredeRedCap1Rx-r18 ENUMERATED {barred, notBarred},
+ cellBarredeRedCap2Rx-r18 ENUMERATED {barred, notBarred}
+ }
+}
+
FeaturePriority-r17 ::= INTEGER (0..7)
+MT-SDT-ConfigCommonSIB-r18 ::= SEQUENCE {
+ mt-SDT-RSRP-Threshold-r18 RSRP-Range OPTIONAL, -- Need S
+ sdt-LogicalChannelSR-DelayTimer-r18 ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} OPTIONAL, -- Cond MT-SDT1
+ t319a-r18 ENUMERATED { ms100, ms200, ms300, ms400, ms600, ms1000, ms2000,
+ ms3000, ms4000, spare7, spare6, spare5, spare4,
+ spare3, spare2, spare1} OPTIONAL -- Cond MT-SDT2
+}
+
-- TAG-SIB1-STOP
-- TAG-SIDELINKUEINFORMATIONNR-START
@@ -1690,6 +1994,14 @@ SidelinkUEInformationNR-v1700-IEs ::= SEQUENCE {
sl-TxResourceReqListCommRelay-r17 SL-TxResourceReqListCommRelay-r17 OPTIONAL,
ue-Type-r17 ENUMERATED {relayUE, remoteUE} OPTIONAL,
sl-SourceIdentityRemoteUE-r17 SL-SourceIdentity-r17 OPTIONAL,
+ nonCriticalExtension SidelinkUEInformationNR-v1800-IEs OPTIONAL
+}
+
+SidelinkUEInformationNR-v1800-IEs ::= SEQUENCE {
+ sl-CarrierFailureList-r18 SL-CarrierFailureList-r18 OPTIONAL,
+ sl-TxResourceReqListL2-U2U-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-TxResourceReqL2-U2U-r18 OPTIONAL,
+ sl-PosRxInterestedFreqList-r18 SL-InterestedFreqList-r16 OPTIONAL,
+ sl-PosTxResourceReqList-r18 SL-PosTxResourceReqList-r18 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -1697,6 +2009,8 @@ SL-InterestedFreqList-r16 ::= SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF
SL-TxResourceReqList-r16 ::= SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-TxResourceReq-r16
+SL-PosTxResourceReqList-r18 ::= SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-PosTxResourceReq-r18
+
SL-TxResourceReq-r16 ::= SEQUENCE {
sl-DestinationIdentity-r16 SL-DestinationIdentity-r16,
sl-CastType-r16 ENUMERATED {broadcast, groupcast, unicast, spare1},
@@ -1714,12 +2028,16 @@ SL-RxDRX-ReportList-v1700 ::= SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) O
SL-TxResourceReq-v1700 ::= SEQUENCE {
sl-DRX-InfoFromRxList-r17 SEQUENCE (SIZE (1..maxNrofSL-RxInfoSet-r17)) OF SL-DRX-ConfigUC-SemiStatic-r17 OPTIONAL,
sl-DRX-Indication-r17 ENUMERATED {on, off} OPTIONAL,
- ...
+ ...,
+ [[
+ sl-QoS-InfoList-v1800 SEQUENCE (SIZE (1..maxNrofSL-QFIsPerDest-r16)) OF SL-QoS-Info-v1800 OPTIONAL
+ ]]
}
SL-RxDRX-Report-v1700 ::= SEQUENCE {
sl-DRX-ConfigFromTx-r17 SL-DRX-ConfigUC-SemiStatic-r17,
- ...}
+ ...
+}
SL-RxInterestedGC-BC-DestList-r17 ::= SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-RxInterestedGC-BC-Dest-r17
@@ -1737,7 +2055,10 @@ SL-TxResourceReqDisc-r17 ::= SEQUENCE {
sl-TxInterestedFreqListDisc-r17 SL-TxInterestedFreqList-r16,
sl-TypeTxSyncListDisc-r17 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-TypeTxSync-r16,
sl-DiscoveryType-r17 ENUMERATED {relay, non-Relay},
- ...
+ ...,
+ [[
+ ue-TypeU2U-r18 ENUMERATED {relayUE, remoteUE} OPTIONAL
+ ]]
}
SL-TxResourceReqListCommRelay-r17 ::= SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-TxResourceReqCommRelayInfo-r17
@@ -1762,6 +2083,37 @@ SL-TxResourceReqL2U2N-Relay-r17 ::= SEQUENCE {
...
}
+SL-TxResourceReqL2-U2U-r18 ::= SEQUENCE {
+ sl-DestinationIdentityL2-U2U-r18 SL-DestinationIdentity-r16 OPTIONAL,
+ sl-TxInterestedFreqListL2-U2U-r18 SL-TxInterestedFreqList-r16,
+ sl-TypeTxSyncListL2-U2U-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-TypeTxSync-r16,
+ sl-CapabilityInformationSidelink-r18 OCTET STRING OPTIONAL,
+ sl-U2U-InfoList-r18 SEQUENCE (SIZE (1.. maxNrofRemoteUE-r17)) OF SL-U2U-Info-r18 OPTIONAL,
+ sl-RLC-ModeIndicationListL2-U2U-r18 SEQUENCE (SIZE (1.. maxNrofSLRB-r16)) OF SL-RLC-Mode-r18 OPTIONAL,
+ ...
+}
+
+SL-U2U-Info-r18 ::= SEQUENCE {
+ sl-U2U-Identity-r18 CHOICE {
+ sl-TargetUE-Identity-r18 SL-DestinationIdentity-r16,
+ sl-SourceUE-Identity-r18 SL-SourceIdentity-r17
+ },
+ sl-E2E-QoS-InfoList-r18 SEQUENCE (SIZE (1.. maxNrofSL-QFIsPerDest-r16)) OF SL-QoS-Info-r16 OPTIONAL,
+ sl-PerHop-QoS-InfoList-r18 SEQUENCE (SIZE (1.. maxNrofSL-QFIsPerDest-r16)) OF SL-SplitQoS-Info-r18 OPTIONAL,
+ sl-PerSLRB-QoS-InfoList-r18 SEQUENCE (SIZE (1.. maxNrofSLRB-r16)) OF SL-PerSLRB-QoS-Info-r18 OPTIONAL,
+ sl-CapabilityInformationTargetRemoteUE-r18 OCTET STRING OPTIONAL
+}
+
+SL-PosTxResourceReq-r18 ::= SEQUENCE {
+ sl-PosDestinationIdentity-r18 SL-DestinationIdentity-r16,
+ sl-PosCastType-r18 ENUMERATED {broadcast, groupcast, unicast, spare1},
+ sl-PosTxInterestedFreqList-r18 SL-TxInterestedFreqList-r16 OPTIONAL,
+ sl-PosTypeTxSyncList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-TypeTxSync-r16 OPTIONAL,
+ sl-PosQoS-InfoList-r18 SEQUENCE (SIZE (1..maxNrofSL-PRS-PerDest-r18)) OF SL-PRS-QoS-Info-r18 OPTIONAL,
+ sl-CapabilityInformationSidelink-r18 OCTET STRING OPTIONAL,
+ ...
+}
+
SL-TxInterestedFreqList-r16 ::= SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF INTEGER (1..maxNrofFreqSL-r16)
SL-QoS-Info-r16 ::= SEQUENCE {
@@ -1769,6 +2121,14 @@ SL-QoS-Info-r16 ::= SEQUENCE {
sl-QoS-Profile-r16 SL-QoS-Profile-r16 OPTIONAL
}
+SL-QoS-Info-v1800 ::= SEQUENCE {
+ sl-TxInterestedFreqList-r18 SL-TxInterestedFreqList-r16,
+ sl-TxProfile-r18 SL-TxProfile-r18 OPTIONAL,
+ ...
+}
+
+SL-TxProfile-r18 ::= ENUMERATED {backwardsCompatible, backwardsIncompatible}
+
SL-RLC-ModeIndication-r16 ::= SEQUENCE {
sl-Mode-r16 CHOICE {
sl-AM-Mode-r16 NULL,
@@ -1784,6 +2144,39 @@ SL-Failure-r16 ::= SEQUENCE {
sl-Failure-r16 ENUMERATED {rlf,configFailure, drxReject-v1710, spare5, spare4, spare3, spare2, spare1}
}
+SL-CarrierFailureList-r18 ::= SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-CarrierFailure-r18
+
+SL-CarrierFailure-r18 ::= SEQUENCE {
+ sl-DestinationIdentity-r18 SL-DestinationIdentity-r16,
+ sl-CarrierFailure-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF INTEGER (1..maxNrofFreqSL-r16)
+}
+
+SL-SplitQoS-Info-r18 ::= SEQUENCE {
+ sl-QoS-FlowIdentity-r18 SL-QoS-FlowIdentity-r16,
+ sl-SplitPacketDelayBudget-r18 INTEGER (0..1023) OPTIONAL,
+ ...
+}
+
+SL-PerSLRB-QoS-Info-r18 ::= SEQUENCE {
+ sl-RemoteUE-SLRB-Identity-r18 SLRB-Uu-ConfigIndex-r16,
+ sl-QoS-ProfilePerSLRB-r18 SL-QoS-Profile-r16 OPTIONAL
+}
+
+SL-PRS-QoS-Info-r18 ::= SEQUENCE {
+ sl-PRS-Priority-r18 INTEGER (1..8) OPTIONAL,
+ sl-PRS-DelayBudget-r18 INTEGER (0..1023) OPTIONAL,
+ sl-PRS-Bandwidth-r18 ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz35, mhz40,
+ mhz45, mhz50, mhz60, mhz70, mhz80, mhz90, mhz100, mhz200, mhz400,
+ spare15, spare14, spare13, spare12, spare11, spare10, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL,
+ ...
+}
+
+SL-RLC-Mode-r18 ::= CHOICE {
+ sl-AM-Mode-r18 NULL,
+ sl-UM-Mode-r18 NULL
+}
+
-- TAG-SIDELINKUEINFORMATIONNR-STOP
-- TAG-SYSTEMINFORMATION-START
@@ -1819,7 +2212,13 @@ SystemInformation-IEs ::= SEQUENCE {
sib18-v1700 SIB18-r17,
sib19-v1700 SIB19-r17,
sib20-v1700 SIB20-r17,
- sib21-v1700 SIB21-r17
+ sib21-v1700 SIB21-r17,
+ sib22-v1800 SIB22-r18,
+ sib23-v1800 SIB23-r18,
+ sib24-v1800 SIB24-r18,
+ sib25-v1800 SIB25-r18,
+ sib17bis-v1820 SIB17bis-r18
+
},
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
@@ -1906,11 +2305,23 @@ UEAssistanceInformation-v1700-IEs ::= SEQUENCE {
nonSDT-DataIndication-r17 SEQUENCE {
resumeCause-r17 ResumeCause OPTIONAL
} OPTIONAL,
- scg-DeactivationPreference-r17 ENUMERATED { scgDeactivationPreferred, noPreference } OPTIONAL,
+ scg-DeactivationPreference-r17 ENUMERATED { scg-DeactivationPreferred, noPreference } OPTIONAL,
uplinkData-r17 ENUMERATED { true } OPTIONAL,
rrm-MeasRelaxationFulfilment-r17 BOOLEAN OPTIONAL,
propagationDelayDifference-r17 PropagationDelayDifference-r17 OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension UEAssistanceInformation-v1800-IEs OPTIONAL
+}
+
+UEAssistanceInformation-v1800-IEs ::= SEQUENCE {
+ idc-FDM-Assistance-r18 IDC-FDM-Assistance-r18 OPTIONAL,
+ idc-TDM-Assistance-r18 IDC-TDM-Assistance-r18 OPTIONAL,
+ multiRx-PreferenceFR2-r18 ENUMERATED {single, multiple } OPTIONAL,
+ musim-Assistance-v1800 MUSIM-Assistance-v1800 OPTIONAL,
+ flightPathInfoAvailable-r18 ENUMERATED {true} OPTIONAL,
+ ul-TrafficInfo-r18 UL-TrafficInfo-r18 OPTIONAL,
+ n3c-RelayUE-InfoList-r18 SEQUENCE (SIZE (0..8)) OF N3C-RelayUE-Info-r18 OPTIONAL,
+ sl-PRS-UE-AssistanceInformationNR-r18 SL-PRS-UE-AssistanceInformationNR-r18 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
IDC-Assistance-r16 ::= SEQUENCE {
@@ -1941,7 +2352,10 @@ VictimSystemType-r16 ::= SEQUENCE {
navIC-r16 ENUMERATED {true} OPTIONAL,
wlan-r16 ENUMERATED {true} OPTIONAL,
bluetooth-r16 ENUMERATED {true} OPTIONAL,
- ...
+ ...,
+ [[
+ uwb-r18 ENUMERATED {true} OPTIONAL
+ ]]
}
DRX-Preference-r16 ::= SEQUENCE {
@@ -2027,6 +2441,73 @@ MUSIM-Assistance-r17 ::= SEQUENCE {
MUSIM-GapPreferenceList-r17 ::= SEQUENCE (SIZE (1..4)) OF MUSIM-GapInfo-r17
+
+MUSIM-Assistance-v1800 ::= SEQUENCE {
+ musim-GapPriorityPreferenceList-r18 MUSIM-GapPriorityPreferenceList-r18 OPTIONAL,
+ musim-GapKeepPreference-r18 ENUMERATED {true} OPTIONAL,
+ musim-CapRestriction-r18 MUSIM-CapRestriction-r18 OPTIONAL,
+ musim-NeedForGapsInfoNR-r18 NeedForGapsInfoNR-r16 OPTIONAL,
+ ...
+}
+
+MUSIM-GapPriorityPreferenceList-r18 ::= SEQUENCE (SIZE (1..3)) OF GapPriority-r17
+
+MUSIM-CapRestriction-r18 ::= SEQUENCE {
+ musim-Cell-SCG-ToRelease-r18 MUSIM-Cell-SCG-ToRelease-r18 OPTIONAL,
+ musim-CellToAffectList-r18 MUSIM-CellToAffectList-r18 OPTIONAL,
+ musim-AffectedBandsList-r18 MUSIM-AffectedBandsList-r18 OPTIONAL,
+ musim-AvoidedBandsList-r18 MUSIM-AvoidedBandsList-r18 OPTIONAL,
+ musim-MaxCC-r18 MUSIM-MaxCC-r18 OPTIONAL
+}
+
+MUSIM-Cell-SCG-ToRelease-r18 ::= SEQUENCE {
+ musim-CellToRelease-r18 MUSIM-CellToRelease-r18 OPTIONAL,
+ scg-ReleasePreference-r18 ENUMERATED {true} OPTIONAL
+}
+
+MUSIM-CellToRelease-r18 ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF ServCellIndex
+
+MUSIM-CellToAffectList-r18::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MUSIM-CellToAffect-r18
+
+MUSIM-CellToAffect-r18 ::= SEQUENCE {
+ musim-ServCellIndex-r18 ServCellIndex,
+ musim-MIMO-Layers-DL-r18 INTEGER (1..8) OPTIONAL,
+ musim-MIMO-Layers-UL-r18 INTEGER (1..4) OPTIONAL,
+ musim-SupportedBandwidth-DL-r18 SupportedBandwidth-v1700 OPTIONAL,
+ musim-SupportedBandwidth-UL-r18 SupportedBandwidth-v1700 OPTIONAL
+}
+
+MUSIM-AffectedBandsList-r18 ::= SEQUENCE (SIZE (1..maxBandComb-MUSIM-r18)) OF MUSIM-AffectedBands-r18
+
+MUSIM-AffectedBands-r18 ::= SEQUENCE (SIZE (1..maxCandidateBandIndex-r18)) OF MUSIM-CapabilityRestrictedBandParameters-r18
+
+MUSIM-CapabilityRestrictedBandParameters-r18 ::= SEQUENCE {
+ musim-bandEntryIndex-r18 MUSIM-BandEntryIndex-r18,
+ musim-CapabilityRestricted-r18 SEQUENCE {
+ musim-MIMO-Layers-DL-r18 INTEGER (1..8) OPTIONAL,
+ musim-MIMO-Layers-UL-r18 INTEGER (1..4) OPTIONAL,
+ musim-SupportedBandwidth-DL-r18 SupportedBandwidth-v1700 OPTIONAL,
+ musim-SupportedBandwidth-UL-r18 SupportedBandwidth-v1700 OPTIONAL
+ }
+}
+
+MUSIM-AvoidedBandsList-r18 ::= SEQUENCE (SIZE (1..maxBandComb-MUSIM-r18)) OF MUSIM-AvoidedBands-r18
+
+MUSIM-AvoidedBands-r18 ::= SEQUENCE (SIZE (1..maxCandidateBandIndex-r18)) OF MUSIM-BandEntryIndex-r18
+
+MUSIM-BandEntryIndex-r18 ::= INTEGER(1.. maxCandidateBandIndex-r18)
+
+MUSIM-MaxCC-r18 ::= SEQUENCE {
+ musim-MaxCC-TotalDL-r18 INTEGER (1..32) OPTIONAL,
+ musim-MaxCC-TotalUL-r18 INTEGER (1..32) OPTIONAL,
+ musim-MaxCC-FR1-DL-r18 INTEGER (1..32) OPTIONAL,
+ musim-MaxCC-FR1-UL-r18 INTEGER (1..32) OPTIONAL,
+ musim-MaxCC-FR2-1-DL-r18 INTEGER (1..32) OPTIONAL,
+ musim-MaxCC-FR2-1-UL-r18 INTEGER (1..32) OPTIONAL,
+ musim-MaxCC-FR2-2-DL-r18 INTEGER (1..32) OPTIONAL,
+ musim-MaxCC-FR2-2-UL-r18 INTEGER (1..32) OPTIONAL
+}
+
ReleasePreference-r16 ::= SEQUENCE {
preferredRRC-State-r16 ENUMERATED {idle, inactive, connected, outOfConnected}
}
@@ -2056,6 +2537,96 @@ UL-GapFR2-Preference-r17::= SEQUENCE {
PropagationDelayDifference-r17 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (-270..270)
+IDC-FDM-Assistance-r18 ::= SEQUENCE {
+ affectedCarrierFreqRangeList-r18 AffectedCarrierFreqRangeList-r18 OPTIONAL,
+ affectedCarrierFreqRangeCombList-r18 AffectedCarrierFreqRangeCombList-r18 OPTIONAL,
+ ...
+}
+
+IDC-TDM-Assistance-r18 ::= SEQUENCE {
+ cycleLength-r18 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30,
+ ms32, ms35, ms40, ms60, ms64, ms70, ms80, ms96, ms100, ms128, ms160,
+ ms256, ms320, ms512, ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240},
+ startOffset-r18 INTEGER (0..10239),
+ slotOffset-r18 INTEGER (0..31),
+ activeDuration-r18 CHOICE {
+ subMilliSeconds INTEGER (1..31),
+ milliSeconds ENUMERATED {
+ ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60,
+ ms80, ms100, ms200, ms300, ms400, ms500, ms600, ms800, ms1000, ms1200,
+ ms1600, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+ },
+ ...
+}
+
+AffectedCarrierFreqRangeList-r18 ::= SEQUENCE (SIZE (1..maxFreqIDC-r16)) OF AffectedCarrierFreqRange-r18
+
+AffectedCarrierFreqRange-r18 ::= SEQUENCE {
+ affectedFreqRange-r18 AffectedFreqRange-r18,interferenceDirection-r18 ENUMERATED {nr, other, both, spare},
+ victimSystemType-r18 VictimSystemType-r16 OPTIONAL
+}
+
+AffectedCarrierFreqRangeCombList-r18 ::= SEQUENCE (SIZE (1..maxCombIDC-r16)) OF AffectedCarrierFreqRangeComb-r18
+
+AffectedCarrierFreqRangeComb-r18 ::= SEQUENCE {
+ affectedCarrierFreqRangeComb-r18 SEQUENCE (SIZE (2..maxNrofServingCells)) OF AffectedFreqRange-r18,
+ interferenceDirection-r18 ENUMERATED {nr, other, both, spare},
+ victimSystemType-r18 VictimSystemType-r16 OPTIONAL
+}
+
+AffectedFreqRange-r18 ::= SEQUENCE {
+ centerFreq-r18 ARFCN-ValueNR,
+ affectedBandwidth-r18 ENUMERATED {khz200, khz400, khz600, khz800, mhz1, mhz2, mhz3, mhz4, mhz5, mhz6,
+ mhz8, mhz10, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, mhz200,
+ mhz300, mhz400, spare10, spare9, spare8, spare7, spare6, spare5, spare4,
+ spare3, spare2, spare1}
+}
+
+UL-TrafficInfo-r18 ::= SEQUENCE (SIZE (1..maxNrofPDU-Sessions-r17)) OF PDU-SessionUL-TrafficInfo-r18
+
+PDU-SessionUL-TrafficInfo-r18 ::= SEQUENCE {
+ pdu-SessionID-r18 PDU-SessionID,
+ qos-FlowUL-TrafficInfoList-r18 SEQUENCE (SIZE (1..maxNrofQFIs)) OF QOS-FlowUL-TrafficInfo-r18
+}
+
+QOS-FlowUL-TrafficInfo-r18 ::= SEQUENCE {
+ qfi-r18 QFI,
+ jitterRange-r18 SEQUENCE {
+ lowerBound-r18 JitterBound-r18,
+ upperBound-r18 JitterBound-r18
+ } OPTIONAL,
+ burstArrivalTime-r18 CHOICE {
+ referenceTime ReferenceTime-r16,
+ referenceSFN-AndSlot ReferenceSFN-AndSlot-r18
+ } OPTIONAL,
+ trafficPeriodicity-r18 INTEGER (1..640000) OPTIONAL,
+ pduSetIdentification-r18 BOOLEAN OPTIONAL,
+ psiIdentification-r18 BOOLEAN OPTIONAL,
+ ...
+}
+
+ReferenceSFN-AndSlot-r18 ::= SEQUENCE {
+ referenceSFN-r18 INTEGER (0..1023),
+ referenceSlot-r18 INTEGER (0..639)
+}
+
+JitterBound-r18 ::= ENUMERATED {ms0, ms0dot5, ms1, ms1dot5, ms2, ms2dot5, ms3, ms3dot5, ms4, ms4dot5, ms5, ms5dot5, ms6, ms6dot5, ms7, beyondMs7}
+
+SL-PRS-UE-AssistanceInformationNR-r18 ::= SEQUENCE (SIZE (1..maxNrofSL-PRS-TxConfig-r18)) OF SL-PRS-TxInfo-r18
+
+SL-PRS-TxInfo-r18 ::= SEQUENCE {
+ sl-PRS-Periodicity-r18 ENUMERATED {ms100, ms200, ms300, ms400, ms500, ms600, ms700, ms800, ms900, ms1000, spare6,
+ spare5, spare4, spare3, spare2, spare1},
+ sl-PRS-Priority-r18 INTEGER (1..8) OPTIONAL,
+ sl-PRS-DelayBudget-r18 INTEGER (0..1023) OPTIONAL,
+ sl-PRS-Bandwidth-r18 ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz35, mhz40,
+ mhz45, mhz50, mhz60, mhz70, mhz80, mhz90, mhz100, mhz200, mhz400,
+ spare15, spare14, spare13, spare12, spare11, spare10, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL,
+ ...
+
+}
+
-- TAG-UEASSISTANCEINFORMATION-STOP
-- TAG-UECAPABILITYENQUIRY-START
@@ -2125,9 +2696,22 @@ UEInformationRequest-r16-IEs ::= SEQUENCE {
UEInformationRequest-v1700-IEs ::= SEQUENCE {
successHO-ReportReq-r17 ENUMERATED {true} OPTIONAL, -- Need N
coarseLocationRequest-r17 ENUMERATED {true} OPTIONAL, -- Need N
+ nonCriticalExtension UEInformationRequest-v1800-IEs OPTIONAL
+}
+
+UEInformationRequest-v1800-IEs ::= SEQUENCE {
+ flightPathInfoReq-r18 FlightPathInfoReportConfig-r18 OPTIONAL, -- Need N
+ successPSCell-ReportReq-r18 ENUMERATED {true} OPTIONAL, -- Need N
+ reselectionMeasurementReq-r18 ENUMERATED {true} OPTIONAL, -- Need N
+ validatedMeasurementsReq-r18 ENUMERATED {true} OPTIONAL, -- Need N
nonCriticalExtension SEQUENCE {} OPTIONAL
}
+FlightPathInfoReportConfig-r18 ::= SEQUENCE {
+ maxWayPointNumber-r18 INTEGER (1..maxWayPoint-r18),
+ includeTimeStamp-r18 ENUMERATED {true} OPTIONAL -- Need N
+}
+
-- TAG-UEINFORMATIONREQUEST-STOP
-- TAG-UEINFORMATIONRESPONSE-START
@@ -2151,13 +2735,27 @@ UEInformationResponse-r16-IEs ::= SEQUENCE {
nonCriticalExtension UEInformationResponse-v1700-IEs OPTIONAL
}
-UEInformationResponse-v1700-IEs ::= SEQUENCE {
+UEInformationResponse-v1700-IEs ::= SEQUENCE {
successHO-Report-r17 SuccessHO-Report-r17 OPTIONAL,
connEstFailReportList-r17 ConnEstFailReportList-r17 OPTIONAL,
coarseLocationInfo-r17 OCTET STRING OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1800-IEs OPTIONAL
+}
+
+UEInformationResponse-v1800-IEs ::= SEQUENCE {
+ flightPathInfoReport-r18 FlightPathInfoReport-r18 OPTIONAL,
+ successPSCell-Report-r18 SuccessPSCell-Report-r18 OPTIONAL,
+ measResultReselectionNR-r18 MeasResultIdleNR-r16 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
+FlightPathInfoReport-r18 ::= SEQUENCE (SIZE (0..maxWayPoint-r18)) OF WayPoint-r18
+
+WayPoint-r18 ::= SEQUENCE {
+ wayPointLocation-r18 OCTET STRING,
+ timeStamp-r18 AbsoluteTimeInfo-r16 OPTIONAL
+}
+
LogMeasReport-r16 ::= SEQUENCE {
absoluteTimeStamp-r16 AbsoluteTimeInfo-r16,
traceReference-r16 TraceReference-r16,
@@ -2234,11 +2832,14 @@ RA-Report-r16 ::= SEQUENCE {
ra-InformationCommon-r16 RA-InformationCommon-r16 OPTIONAL,
raPurpose-r16 ENUMERATED {accessRelated, beamFailureRecovery, reconfigurationWithSync, ulUnSynchronized,
schedulingRequestFailure, noPUCCHResourceAvailable, requestForOtherSI,
- msg3RequestForOtherSI-r17, spare8, spare7, spare6, spare5, spare4, spare3,
+ msg3RequestForOtherSI-r17, lbt-Failure-r18, spare7, spare6, spare5, spare4, spare3,
spare2, spare1},
...,
[[
spCellID-r17 CGI-Info-Logging-r16 OPTIONAL
+ ]],
+ [[
+ sdt-Failed-r18 ENUMERATED {true} OPTIONAL
]]
}
@@ -2255,7 +2856,7 @@ RA-InformationCommon-r16 ::= SEQUENCE {
perRAInfoList-r16 PerRAInfoList-r16,
...,
[[
- perRAInfoList-v1660 PerRAInfoList-v1660 OPTIONAL
+ perRAInfoList-v1660 PerRAInfoList-v1660 OPTIONAL
]],
[[
msg1-SCS-From-prach-ConfigurationIndex-r16 ENUMERATED {kHz1dot25, kHz5, spare2, spare1} OPTIONAL
@@ -2281,9 +2882,34 @@ RA-InformationCommon-r16 ::= SEQUENCE {
ssbsForSI-Acquisition-r17 SEQUENCE (SIZE (1..maxNrofSSBs-r16)) OF SSB-Index OPTIONAL,
msgA-PUSCH-PayloadSize-r17 BIT STRING (SIZE (5)) OPTIONAL,
onDemandSISuccess-r17 ENUMERATED {true} OPTIONAL
+ ]],
+ [[
+ usedFeatureCombination-r18 ReportedFeatureCombination-r18 OPTIONAL,
+ triggeredFeatureCombination-r18 ReportedFeatureCombination-r18 OPTIONAL,
+ startPreambleForThisPartition-r18 INTEGER (0..63) OPTIONAL,
+ numberOfPreamblesPerSSB-ForThisPartition-r18 INTEGER (1..64) OPTIONAL,
+ attemptedBWP-InfoList-r18 SEQUENCE (SIZE (1..maxNrofBWPs)) OF AttemptedBWP-Info-r18 OPTIONAL,
+ numberOfLBT-Failures-r18 INTEGER (1..128) OPTIONAL,
+ perRAInfoList-v1800 PerRAInfoList-v1800 OPTIONAL,
+ intendedSIBs-r18 SEQUENCE (SIZE (1..maxSIB)) OF SIB-Type-r18 OPTIONAL
]]
}
+AttemptedBWP-Info-r18 ::= SEQUENCE {
+ locationAndBandwidth-r18 INTEGER (0..37949),
+ subcarrierSpacing-r18 SubcarrierSpacing
+}
+
+ReportedFeatureCombination-r18 ::= SEQUENCE {
+ redCap-r18 ENUMERATED {true} OPTIONAL,
+ smallData-r18 ENUMERATED {true} OPTIONAL,
+ nsag-r18 NSAG-List-r17 OPTIONAL,
+ msg3-Repetitions-r18 ENUMERATED {true} OPTIONAL,
+ msg1-Repetitions-r18 ENUMERATED {true} OPTIONAL,
+ eRedCap-r18 ENUMERATED {true} OPTIONAL,
+ triggered-S-NSSAI-List-r18 SEQUENCE (SIZE (1..maxNrofS-NSSAI)) OF S-NSSAI OPTIONAL
+}
+
PerRAInfoList-r16 ::= SEQUENCE (SIZE (1..200)) OF PerRAInfo-r16
PerRAInfoList-v1660 ::= SEQUENCE (SIZE (1..200)) OF PerRACSI-RSInfo-v1660
@@ -2293,19 +2919,38 @@ PerRAInfo-r16 ::= CHOICE {
perRACSI-RSInfoList-r16 PerRACSI-RSInfo-r16
}
+PerRAInfoList-v1800 ::= SEQUENCE (SIZE (1..200)) OF PerRAInfo-v1800
+
+PerRAInfo-v1800 ::= CHOICE {
+ perRASSBInfoList-v1800 PerRASSBInfo-v1800,
+ perRACSI-RSInfoList-v1800 PerRACSI-RSInfo-v1800
+}
+
PerRASSBInfo-r16 ::= SEQUENCE {
ssb-Index-r16 SSB-Index,
numberOfPreamblesSentOnSSB-r16 INTEGER (1..200),
perRAAttemptInfoList-r16 PerRAAttemptInfoList-r16
}
+PerRASSBInfo-v1800 ::= SEQUENCE {
+ allPreamblesBlocked ENUMERATED {true} OPTIONAL,
+ lbt-Detected-r18 ENUMERATED {true} OPTIONAL,
+ ...
+}
+
PerRACSI-RSInfo-r16 ::= SEQUENCE {
csi-RS-Index-r16 CSI-RS-Index,
numberOfPreamblesSentOnCSI-RS-r16 INTEGER (1..200)
}
-PerRACSI-RSInfo-v1660 ::= SEQUENCE {
- csi-RS-Index-v1660 INTEGER (1..96) OPTIONAL
+PerRACSI-RSInfo-v1660 ::= SEQUENCE {
+ csi-RS-Index-v1660 INTEGER (1..96) OPTIONAL
+}
+
+PerRACSI-RSInfo-v1800 ::= SEQUENCE {
+ allPreamblesBlocked ENUMERATED {true} OPTIONAL,
+ lbt-Detected-r18 ENUMERATED {true} OPTIONAL,
+ ...
}
PerRAAttemptInfoList-r16 ::= SEQUENCE (SIZE (1..200)) OF PerRAAttemptInfo-r16
@@ -2319,8 +2964,12 @@ PerRAAttemptInfo-r16 ::= SEQUENCE {
]]
}
-SIB-Type-r17 ::= ENUMERATED {sibType2, sibType3, sibType4, sibType5, sibType9, sibType10-v1610, sibType11-v1610, sibType12-v1610,
- sibType13-v1610, sibType14-v1610, spare6, spare5, spare4, spare3, spare2, spare1}
+SIB-Type-r17 ::= ENUMERATED {sibType2, sibType3, sibType4, sibType5, sibType9, sibType10, sibType11, sibType12,
+ sibType13, sibType14, posSIB-v1810, spare5, spare4, spare3, spare2, spare1}
+
+SIB-Type-r18 ::= ENUMERATED {sibType15, sibType16, sibType17, sibType18, sibType19, sibType20,
+ sibType21, sibType22, sibType23, sibType24, sibType25, spare5, spare4,
+ spare3, spare2, spare1}
RLF-Report-r16 ::= CHOICE {
nr-RLF-Report-r16 SEQUENCE {
@@ -2372,6 +3021,25 @@ RLF-Report-r16 ::= CHOICE {
pci-arfcn-r17 PCI-ARFCN-NR-r16
} OPTIONAL,
choCandidateCellList-r17 ChoCandidateCellList-r17 OPTIONAL
+ ]],
+ [[
+ pSCellId-r18 CHOICE {
+ cellGlobalId-r18 CGI-Info-Logging-r16,
+ pci-arfcn-r18 PCI-ARFCN-NR-r16
+ } OPTIONAL,
+ mcg-RecoveryFailureCause-r18 ENUMERATED {t316-Expiry, scg-Deactivated, spare2, spare1} OPTIONAL,
+ scg-FailureCause-r18 ENUMERATED {t310-Expiry, randomAccessProblem, rlc-MaxNumRetx,
+ synchReconfigFailureSCG, scg-ReconfigFailure,
+ srb3-IntegrityFailure, scg-lbtFailure, beamFailureRecoveryFailure,
+ t312-Expiry, bh-RLF, beamFailure, spare5, spare4, spare3, spare2, spare1 }
+ OPTIONAL,
+ elapsedTimeSCG-Failure-r18 ElapsedTimeSCG-Failure-r18 OPTIONAL,
+ voiceFallbackHO-r18 ENUMERATED {true} OPTIONAL,
+ measResultLastServCellRSSI-r18 RSSI-Range-r16 OPTIONAL,
+ measResultNeighFreqListRSSI-r18 MeasResultNeighFreqListRSSI-r18 OPTIONAL,
+ bwp-Info-r18 AttemptedBWP-Info-r18 OPTIONAL,
+ elapsedTimeT316-r18 ElapsedTimeT316-r18 OPTIONAL,
+ scg-FailedAfterMCG-r18 ENUMERATED {true} OPTIONAL
]]
},
eutra-RLF-Report-r16 SEQUENCE {
@@ -2404,7 +3072,60 @@ SuccessHO-Report-r17 ::= SEQUENCE {
ra-InformationCommon-r17 RA-InformationCommon-r16 OPTIONAL,
upInterruptionTimeAtHO-r17 UPInterruptionTimeAtHO-r17 OPTIONAL,
c-RNTI-r17 RNTI-Value OPTIONAL,
- ...
+ ...,
+ [[
+ targetCell-PCI-ARFCN-r17 PCI-ARFCN-NR-r16 OPTIONAL
+ ]],
+ [[
+ eutra-TargetCellInfo-r18 SEQUENCE {
+ targetPCellId-r18 CHOICE {
+ cellGlobalId-r18 CGI-Info-Logging-r16,
+ pci-arfcn-r18 PCI-ARFCN-EUTRA-r16
+ },
+ targetCellMeas-r18 MeasQuantityResultsEUTRA OPTIONAL
+ } OPTIONAL,
+ measResultServCellRSSI-r18 RSSI-Range-r16 OPTIONAL,
+ measResultNeighFreqListRSSI-r18 MeasResultNeighFreqListRSSI-r18 OPTIONAL,
+ eutra-C-RNTI-r18 EUTRA-C-RNTI OPTIONAL,
+ timeSinceSHR-r18 TimeSinceSHR-r18 OPTIONAL
+ ]]
+}
+
+SuccessPSCell-Report-r18 ::= SEQUENCE {
+ pCellId-r18 CGI-Info-Logging-r16,
+ sourcePSCellInfo-r18 SEQUENCE {
+ sourcePSCellId-r18 CHOICE {
+ cellGlobalId-r18 CGI-Info-Logging-r16,
+ pci-arfcn-r18 PCI-ARFCN-EUTRA-r16
+ },
+ sourcePSCellMeas-r18 MeasResultSuccessHONR-r17 OPTIONAL
+ } OPTIONAL,
+ targetPSCellInfo-r18 SEQUENCE {
+ targetPSCellId-r18 CHOICE {
+ cellGlobalId-r18 CGI-Info-Logging-r16,
+ pci-arfcn-r18 PCI-ARFCN-NR-r16
+ },
+ targetPSCellMeas-r18 MeasResultSuccessHONR-r17 OPTIONAL
+ },
+ measResultNeighCells-r18 SEQUENCE {
+ measResultListNR-r18 MeasResultList2NR-r16 OPTIONAL,
+ measResultListEUTRA-r18 MeasResultList2EUTRA-r16 OPTIONAL
+ } OPTIONAL,
+ spr-Cause-r18 SPR-Cause-r18 OPTIONAL,
+ timeSinceCPAC-Reconfig-r18 TimeSinceCPAC-Reconfig-r18 OPTIONAL,
+ locationInfo-r18 LocationInfo-r16 OPTIONAL,
+ ra-InformationCommon-r18 RA-InformationCommon-r16 OPTIONAL,
+ sn-InitiatedPSCellChange-r18 ENUMERATED {true} OPTIONAL,
+...
+}
+
+MeasResultNeighFreqListRSSI-r18 ::= SEQUENCE(SIZE (1..maxFreq)) OF MeasResultNeighFreqRSSI-r18
+
+MeasResultNeighFreqRSSI-r18 ::= SEQUENCE {
+ ssbFrequency-r18 ARFCN-ValueNR OPTIONAL,
+ ssbSubcarrierSpacing-r18 SubcarrierSpacing OPTIONAL,
+ refFreqCSI-RS-r18 ARFCN-ValueNR OPTIONAL,
+ measResult-RSSI-r18 RSSI-Range-r16 OPTIONAL
}
MeasResultList2NR-r16 ::= SEQUENCE(SIZE (1..maxFreq)) OF MeasResult2NR-r16
@@ -2479,6 +3200,13 @@ SHR-Cause-r17 ::= SEQUENCE {
...
}
+SPR-Cause-r18 ::= SEQUENCE {
+ t304-cause-r18 ENUMERATED {true} OPTIONAL,
+ t310-cause-r18 ENUMERATED {true} OPTIONAL,
+ t312-cause-r18 ENUMERATED {true} OPTIONAL,
+ ...
+}
+
TimeSinceFailure-r16 ::= INTEGER (0..172800)
MobilityHistoryReport-r16 ::= VisitedCellInfoList-r16
@@ -2487,10 +3215,18 @@ TimeUntilReconnection-r16 ::= INTEGER (0..172800)
TimeSinceCHO-Reconfig-r17 ::= INTEGER (0..1023)
+TimeSinceCPAC-Reconfig-r18 ::= INTEGER (0.. 1023)
+
TimeConnSourceDAPS-Failure-r17 ::= INTEGER (0..1023)
UPInterruptionTimeAtHO-r17 ::= INTEGER (0..1023)
+ElapsedTimeT316-r18 ::= INTEGER (0..2000)
+
+ElapsedTimeSCG-Failure-r18 ::= INTEGER (0..1023)
+
+TimeSinceSHR-r18 ::= INTEGER (0..172800)
+
-- TAG-UEINFORMATIONRESPONSE-STOP
-- TAG-UEPOSITIONINGASSISTANCEINFO-START
@@ -2676,6 +3412,13 @@ SIB2 ::= SEQUENCE {
]],
[[
smtc4list-r17 SSB-MTC4List-r17 OPTIONAL -- Need R
+ ]],
+ [[
+ frequencyBandList-v1760 MultiFrequencyBandListNR-SIB-v1760 OPTIONAL, -- Need R
+ frequencyBandListSUL-v1760 MultiFrequencyBandListNR-SIB-v1760 OPTIONAL -- Need R
+ ]],
+ [[
+ frequencyBandListAerial-r18 MultiFrequencyBandListNR-Aerial-SIB-r18 OPTIONAL -- Need S
]]
},
...,
@@ -2791,6 +3534,12 @@ SIB4 ::= SEQUENCE {
]],
[[
interFreqCarrierFreqList-v1730 InterFreqCarrierFreqList-v1730 OPTIONAL -- Need R
+ ]],
+ [[
+ interFreqCarrierFreqList-v1760 InterFreqCarrierFreqList-v1760 OPTIONAL -- Need R
+ ]],
+ [[
+ interFreqCarrierFreqList-v1800 InterFreqCarrierFreqList-v1800 OPTIONAL -- Need R
]]
}
@@ -2804,6 +3553,10 @@ InterFreqCarrierFreqList-v1720 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCar
InterFreqCarrierFreqList-v1730 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1730
+InterFreqCarrierFreqList-v1760 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1760
+
+InterFreqCarrierFreqList-v1800 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1800
+
InterFreqCarrierFreqInfo ::= SEQUENCE {
dl-CarrierFreq ARFCN-ValueNR,
frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Cond Mandatory
@@ -2833,6 +3586,7 @@ InterFreqCarrierFreqInfo ::= SEQUENCE {
interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need R
interFreqExcludedCellList InterFreqExcludedCellList OPTIONAL, -- Need R
...
+
}
InterFreqCarrierFreqInfo-v1610 ::= SEQUENCE {
@@ -2859,6 +3613,22 @@ InterFreqCarrierFreqInfo-v1730 ::= SEQUENCE {
channelAccessMode2-r17 ENUMERATED {enabled} OPTIONAL -- Need R
}
+InterFreqCarrierFreqInfo-v1760 ::= SEQUENCE {
+ frequencyBandList-v1760 MultiFrequencyBandListNR-SIB-v1760 OPTIONAL, -- Need R
+ frequencyBandListSUL-v1760 MultiFrequencyBandListNR-SIB-v1760 OPTIONAL -- Need R
+}
+
+InterFreqCarrierFreqInfo-v1800 ::= SEQUENCE {
+ dl-CarrierFreq-r18 ARFCN-ValueNR OPTIONAL, -- Cond LessThan5MHz
+ frequencyBandList-r18 MultiFrequencyBandListNR-SIB OPTIONAL, -- Cond LessThan5MHz
+ frequencyBandListAerial-r18 MultiFrequencyBandListNR-Aerial-SIB-r18 OPTIONAL, -- Need S
+ mobileIAB-CellList-r18 PCI-Range OPTIONAL, -- Need R
+ mobileIAB-Freq-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ eRedCapAccessAllowed-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ tn-AreaIdList-r18 SEQUENCE (SIZE (1..maxTN-AreaInfo-r18)) OF TN-AreaId-r18 OPTIONAL, -- Need R
+ accessAllowed2RxXR-r18 ENUMERATED {true} OPTIONAL -- Need R
+}
+
InterFreqNeighHSDN-CellList-r17 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PCI-Range
InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
@@ -2908,6 +3678,9 @@ SIB5 ::= SEQUENCE {
[[
carrierFreqListEUTRA-v1700 CarrierFreqListEUTRA-v1700 OPTIONAL, -- Need R
idleModeMeasVoiceFallback-r17 ENUMERATED{true} OPTIONAL -- Need R
+ ]],
+ [[
+ carrierFreqListEUTRA-v1800 CarrierFreqListEUTRA-v1800 OPTIONAL -- Need R
]]
}
@@ -2917,6 +3690,8 @@ CarrierFreqListEUTRA-v1610 ::= SEQUENCE (SIZE (1..maxEUTRA-Carrier)) OF Car
CarrierFreqListEUTRA-v1700 ::= SEQUENCE (SIZE (1..maxEUTRA-Carrier)) OF CarrierFreqEUTRA-v1700
+CarrierFreqListEUTRA-v1800 ::= SEQUENCE (SIZE (1..maxEUTRA-Carrier)) OF CarrierFreqEUTRA-v1800
+
CarrierFreqEUTRA ::= SEQUENCE {
carrierFreq ARFCN-ValueEUTRA,
eutra-multiBandInfoList EUTRA-MultiBandInfoList OPTIONAL, -- Need R
@@ -2945,6 +3720,11 @@ CarrierFreqEUTRA-v1700 ::= SEQUENCE {
eutra-FreqNeighHSDN-CellList-r17 EUTRA-FreqNeighHSDN-CellList-r17 OPTIONAL -- Need R
}
+CarrierFreqEUTRA-v1800 ::= SEQUENCE {
+ eutra-MultiBandInfoListAerial-r18 EUTRA-MultiBandInfoListAerial-r18 OPTIONAL, -- Need R
+ tn-AreaIdList-r18 SEQUENCE (SIZE (1..maxTN-AreaInfo-r18)) OF TN-AreaId-r18 OPTIONAL -- Need R
+}
+
EUTRA-FreqNeighHSDN-CellList-r17 ::= SEQUENCE (SIZE (1..maxCellEUTRA)) OF EUTRA-PhysCellIdRange
EUTRA-FreqExcludedCellList ::= SEQUENCE (SIZE (1..maxEUTRA-CellExcluded)) OF EUTRA-PhysCellIdRange
@@ -3010,8 +3790,11 @@ SIB9 ::= SEQUENCE {
} OPTIONAL, -- Need R
lateNonCriticalExtension OCTET STRING OPTIONAL,
...,
- [[
- referenceTimeInfo-r16 ReferenceTimeInfo-r16 OPTIONAL -- Need R
+ [[
+ referenceTimeInfo-r16 ReferenceTimeInfo-r16 OPTIONAL -- Need R
+ ]],
+ [[
+ eventID-TSS-r18 INTEGER (0..63) OPTIONAL -- Need R
]]
}
@@ -3059,6 +3842,17 @@ SIB12-IEs-r16 ::= SEQUENCE {
sl-NonRelayDiscovery-r17 ENUMERATED {enabled} OPTIONAL, -- Need R
sl-L3U2N-RelayDiscovery-r17 ENUMERATED {enabled} OPTIONAL, -- Need R
sl-TimersAndConstantsRemoteUE-r17 UE-TimersAndConstantsRemoteUE-r17 OPTIONAL -- Need R
+ ]],
+ [[
+ sl-FreqInfoListSizeExt-v1800 SEQUENCE (SIZE (1..maxNrofFreqSL-1-r18)) OF SL-FreqConfigCommon-r16 OPTIONAL, -- Need R
+ sl-RLC-BearerConfigListSizeExt-v1800 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-BearerConfig-r16 OPTIONAL, -- Need R
+ sl-SyncFreqList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-Freq-Id-r16 OPTIONAL, -- Need R
+ sl-SyncTxMultiFreq-r18 ENUMERATED {true} OPTIONAL, -- Need S
+ sl-MaxTransPowerCA-r18 P-Max OPTIONAL, -- Need R
+ sl-DiscConfigCommon-v1800 SL-DiscConfigCommon-v1800 OPTIONAL, -- Need R
+ sl-L2-U2U-Relay-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ sl-L3-U2U-RelayDiscovery-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ t400-U2U-r18 ENUMERATED {ms200, ms400, ms600, ms800, ms1200, ms2000, ms3000, ms4000} OPTIONAL -- Need R
]]
}
@@ -3086,6 +3880,11 @@ SL-DiscConfigCommon-r17 ::= SEQUENCE {
sl-RemoteUE-ConfigCommon-r17 SL-RemoteUE-Config-r17
}
+SL-DiscConfigCommon-v1800 ::= SEQUENCE {
+ sl-RelayUE-ConfigCommonU2U-r18 SL-RelayUE-ConfigU2U-r18,
+ sl-RemoteUE-ConfigCommonU2U-r18 SL-RemoteUE-ConfigU2U-r18
+}
+
-- TAG-SIB12-STOP
-- TAG-SIB13-START
@@ -3173,6 +3972,49 @@ TRS-ResourceSet-r17 ::= SEQUENCE {
}
-- TAG-SIB17-STOP
+-- TAG-SIB17bis-START
+
+SIB17bis-r18 ::= SEQUENCE {
+ segmentNumber-r18 INTEGER (0..63),
+ segmentType-r18 ENUMERATED {notLastSegment, lastSegment},
+ segmentContainer-r18 OCTET STRING
+}
+
+SIB17bis-IEs-r18 ::= SEQUENCE {
+ trs-ResourceSetConfig-r18 SEQUENCE (SIZE (1..maxNrofTRS-ResourceSets-r17)) OF TRS-ResourceSet-r18 OPTIONAL, -- Need R
+ validityDuration-r18 ENUMERATED {t1, t2, t4, t8, t16, t32, t64, t128, t256, t512, infinity, spare5, spare4, spare3, spare2,
+ spare1} OPTIONAL, -- Need S
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+TRS-ResourceSet-r18 ::= SEQUENCE {
+ powerControlOffsetSS-r18 ENUMERATED {db-3, db0, db3, db6},
+ scramblingID-Info-r18 CHOICE {
+ scramblingIDforCommon-r18 ScramblingId,
+ scramblingIDperResourceListWith2-r18 SEQUENCE (SIZE (2)) OF ScramblingId,
+ scramblingIDperResourceListWith4-r18 SEQUENCE (SIZE (4)) OF ScramblingId,
+ ...
+ },
+ firstOFDMSymbolInTimeDomain-r18 INTEGER (0..9),
+ startingRB-r18 INTEGER (0..maxNrofPhysicalResourceBlocks-1),
+ nrofRBs-r18 INTEGER (24..maxNrofPhysicalResourceBlocksPlus1),
+ ssb-Index-r18 SSB-Index,
+ periodicityAndOffset-r18 CHOICE {
+ slots10 INTEGER (0..9),
+ slots20 INTEGER (0..19),
+ slots40 INTEGER (0..39),
+ slots80 INTEGER (0..79),
+ slots160 INTEGER (0..159),
+ slots320 INTEGER (0..319),
+ slots640 INTEGER (0..639)
+ },
+ frequencyDomainAllocation-r18 BIT STRING (SIZE (4)),
+ indBitID-r18 INTEGER (0..5),
+ nrofResources-r18 ENUMERATED {n2, n4}
+}
+
+-- TAG-SIB17bis-STOP
-- TAG-SIB18-START
SIB18-r17 ::= SEQUENCE {
@@ -3203,6 +4045,11 @@ SIB19-r17 ::= SEQUENCE {
...,
[[
ntn-NeighCellConfigListExt-v1720 NTN-NeighCellConfigList-r17 OPTIONAL -- Need R
+ ]],
+ [[
+ movingReferenceLocation-r18 ReferenceLocation-r17 OPTIONAL, -- Need R
+ ntnCovEnh-r18 NTN-CovEnh-r18 OPTIONAL, -- Need R
+ satSwitchWithReSync-r18 SatSwitchWithReSync-r18 OPTIONAL -- Need R
]]
}
@@ -3214,6 +4061,17 @@ NTN-NeighCellConfig-r17 ::= SEQUENCE {
physCellId-r17 PhysCellId OPTIONAL -- Need R
}
+NTN-CovEnh-r18 ::= SEQUENCE {
+ numberOfMsg4HARQ-ACK-Repetitions-r18 BIT STRING (SIZE(4)),
+ rsrp-ThresholdMsg4HARQ-ACK-r18 RSRP-Range OPTIONAL -- Need R
+}
+
+SatSwitchWithReSync-r18 ::= SEQUENCE {
+ ntn-Config-r18 NTN-Config-r17,
+ t-ServiceStart-r18 INTEGER (0..549755813887) OPTIONAL, -- Need R
+ ssb-TimeOffset-r18 INTEGER (0..159) OPTIONAL -- Need R
+}
+
-- TAG-SIB19-STOP
-- TAG-SIB20-START
@@ -3221,7 +4079,11 @@ SIB20-r17 ::= SEQUENCE {
mcch-Config-r17 MCCH-Config-r17,
cfr-ConfigMCCH-MTCH-r17 CFR-ConfigMCCH-MTCH-r17 OPTIONAL, -- Need S
lateNonCriticalExtension OCTET STRING OPTIONAL,
- ...
+ ...,
+ [[
+ cfr-ConfigMCCH-MTCH-RedCap-r18 CFR-ConfigMCCH-MTCH-r17 OPTIONAL, -- Need S
+ mcch-ConfigRedCap-r18 MCCH-Config-r17 OPTIONAL -- Need S
+ ]]
}
MCCH-Config-r17 ::= SEQUENCE {
@@ -3266,6 +4128,78 @@ MBS-FSAI-InterFreq-r17 ::= SEQUENCE {
MBS-FSAI-r17 ::= OCTET STRING (SIZE (3))
-- TAG-SIB21-STOP
+-- TAG-SIB22-START
+
+SIB22-r18 ::= SEQUENCE {
+ atg-Config-r18 ATG-Config-r18 OPTIONAL, -- Need R
+ hs-ATG-cellReselectionSet-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ atg-NeighCellConfigList-r18 ATG-NeighCellConfigList-r18 OPTIONAL, -- Need R
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+ }
+
+ATG-NeighCellConfigList-r18 ::= SEQUENCE (SIZE(1..maxCellATG-r18)) OF ATG-NeighCellConfig-r18
+
+ATG-NeighCellConfig-r18 ::= SEQUENCE {
+ atg-gNB-Location-r18 ReferenceLocation-r17 OPTIONAL, -- Need R
+ heightgNB-r18 INTEGER (-16384..16383) OPTIONAL, -- Need R
+ carrierFreq-r18 ARFCN-ValueNR OPTIONAL, -- Need R
+ physCellId-r18 PhysCellId OPTIONAL -- Need R
+}
+
+-- TAG-SIB22-STOP
+-- TAG-SIB23-START
+
+SIB23-r18 ::= SEQUENCE {
+ segmentNumber-r18 INTEGER (0..63),
+ segmentType-r18 ENUMERATED {notLastSegment, lastSegment},
+ segmentContainer-r18 OCTET STRING
+}
+
+SIB23-IEs-r18 ::= SEQUENCE {
+ sl-PosConfigCommonNR-r18 SL-PosConfigCommonNR-r18,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+SL-PosConfigCommonNR-r18 ::= SEQUENCE {
+ sl-PosFreqInfoList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-FreqConfigCommon-r16 OPTIONAL, -- Need R
+ sl-PosUE-SelectedConfig-r18 SL-UE-SelectedConfig-r16 OPTIONAL, -- Need R
+ sl-PosNR-AnchorCarrierFreqList-r18 SL-NR-AnchorCarrierFreqList-r16 OPTIONAL, -- Need R
+ sl-PosMeasConfigCommon-r18 SL-MeasConfigCommon-r16 OPTIONAL, -- Need R
+ sl-PosOffsetDFN-r18 INTEGER (1..1000) OPTIONAL, -- Need R
+ sl-PosSSB-PriorityNR-r18 INTEGER (1..8) OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-SIB23-STOP
+-- TAG-SIB24-START
+
+SIB24-r18 ::= SEQUENCE {
+ multicastMCCH-Config-r18 MCCH-Config-r17 OPTIONAL, -- Need S
+ cfr-ConfigMCCH-MTCH-r18 CFR-ConfigMCCH-MTCH-r17 OPTIONAL, -- Need S
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+-- TAG-SIB24-STOP
+-- TAG-SIB25-START
+
+SIB25-r18 ::= SEQUENCE {
+ coverageAreaInfoList-r18 CoverageAreaInfoList-r18 OPTIONAL, -- Need R
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+CoverageAreaInfoList-r18 ::= SEQUENCE (SIZE (1..maxTN-AreaInfo-r18)) OF CoverageAreaInfo-r18
+
+CoverageAreaInfo-r18 ::= SEQUENCE {
+ tn-AreaId-r18 TN-AreaId-r18,
+ tn-ReferenceLocation-r18 ReferenceLocation-r17,
+ tn-DistanceRadius-r18 INTEGER(0..65535)
+}
+
+-- TAG-SIB25-STOP
-- TAG-POSSYSTEMINFORMATION-R16-IES-START
PosSystemInformation-r16-IEs ::= SEQUENCE {
@@ -3314,7 +4248,20 @@ PosSystemInformation-r16-IEs ::= SEQUENCE {
posSib2-25-v1700 SIBpos-r16,
posSib6-4-v1700 SIBpos-r16,
posSib6-5-v1700 SIBpos-r16,
- posSib6-6-v1700 SIBpos-r16
+ posSib6-6-v1700 SIBpos-r16,
+ posSib2-17a-v1770 SIBpos-r16,
+ posSib2-18a-v1770 SIBpos-r16,
+ posSib2-20a-v1770 SIBpos-r16,
+ posSib1-11-v1800 SIBpos-r16,
+ posSib1-12-v1800 SIBpos-r16,
+ posSib2-26-v1800 SIBpos-r16,
+ posSib2-27-v1800 SIBpos-r16,
+ posSib6-7-v1800 SIBpos-r16,
+ posSib7-1-v1800 SIBpos-r16,
+ posSib7-2-v1800 SIBpos-r16,
+ posSib7-3-v1800 SIBpos-r16,
+ posSib7-4-v1800 SIBpos-r16
+
},
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
@@ -3330,6 +4277,11 @@ PosSI-SchedulingInfo-r16 ::= SEQUENCE {
...,
[[
posSI-RequestConfigRedCap-r17 SI-RequestConfig OPTIONAL -- Cond REDCAP-MSG-1
+ ]],
+ [[
+ posSI-RequestConfigMSG1-Repetition-r18 SI-RequestConfigRepetition-r18 OPTIONAL, -- Cond MSG-1
+ posSI-RequestConfigSUL-MSG1-Repetition-r18 SI-RequestConfigRepetition-r18 OPTIONAL, -- Cond SUL-MSG-1
+ posSI-RequestConfigRedCap-MSG1-Repetition-r18 SI-RequestConfigRepetition-r18 OPTIONAL -- Cond REDCAP-MSG-1
]]
}
@@ -3358,7 +4310,7 @@ PosSIB-Type-r16 ::= SEQUENCE {
}
GNSS-ID-r16 ::= SEQUENCE {
- gnss-id-r16 ENUMERATED{gps, sbas, qzss, galileo, glonass, bds, ...},
+ gnss-id-r16 ENUMERATED{gps, sbas, qzss, galileo, glonass, bds, ..., navic-v1760},
...
}
@@ -3381,12 +4333,47 @@ SIBpos-r16 ::= SEQUENCE {
AdditionalSpectrumEmission ::= INTEGER (0..7)
+AdditionalSpectrumEmission-v1760 ::= INTEGER (8..39)
+
+AdditionalSpectrumEmission-r18 ::= INTEGER (0..39)
+
-- TAG-ADDITIONALSPECTRUMEMISSION-STOP
+-- TAG-ADVANCEDRECEIVER-MU-MIMO-START
+
+AdvancedReceiver-MU-MIMO-r18 ::= SEQUENCE {
+ precodingAndResourceAllocation-r18 BOOLEAN OPTIONAL, -- Need M
+ pdsch-TimeDomainAllocation-r18 BOOLEAN OPTIONAL, -- Need M
+ mcs-Table-r18 ENUMERATED {qam1024, qam256, qam64, spare1} OPTIONAL, -- Need R
+ advReceiver-MU-MIMO-DCI-1-1-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-ADVANCEDRECEIVER-MU-MIMO-STOP
+-- TAG-AERIAL-CONFIG-START
+
+Aerial-Config-r18 ::= SEQUENCE {
+ flightPathUpdateThrConfig-r18 SEQUENCE {
+ flightPathUpdateDistanceThr-r18 CHOICE {release NULL, setup FlightPathUpdateDistanceThr-r18 } OPTIONAL, -- Need M
+ flightPathUpdateTimeThr-r18 CHOICE {release NULL, setup FlightPathUpdateTimeThr-r18 } OPTIONAL -- Need M
+ } OPTIONAL, -- Need M
+ ...
+}
+
+FlightPathUpdateDistanceThr-r18 ::= INTEGER (0..1023)
+
+FlightPathUpdateTimeThr-r18 ::= INTEGER (0..16383)
+
+-- TAG-AERIAL-CONFIG-STOP
-- TAG-ALPHA-START
Alpha ::= ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1}
-- TAG-ALPHA-STOP
+-- TAG-ALTITUDE-START
+
+Altitude-r18 ::= INTEGER (minAltitude-r18..maxAltitude-r18)
+
+-- TAG-ALTITUDE-STOP
-- TAG-AMF-IDENTIFIER-START
AMF-Identifier ::= BIT STRING (SIZE (24))
@@ -3407,6 +4394,16 @@ ARFCN-ValueNR ::= INTEGER (0..maxNARFCN)
ARFCN-ValueUTRA-FDD-r16 ::= INTEGER (0..16383)
-- TAG-ARFCN-ValueUTRA-FDD-STOP
+-- TAG-ATG-CONFIG-START
+
+ATG-Config-r18 ::= SEQUENCE {
+ atg-gNB-Location-r18 ReferenceLocation-r17 OPTIONAL, -- Need R
+ heightgNB-r18 INTEGER (-16384..16383) OPTIONAL, -- Need R
+ cellSpecificKoffset-r18 INTEGER(1..3) OPTIONAL, -- Need R
+ ta-ReportATG-r18 ENUMERATED {enabled} OPTIONAL -- Need R
+}
+
+-- TAG-ATG-CONFIG-STOP
-- TAG-AVAILABILITYCOMBINATIONSPERCELL-START
AvailabilityCombinationsPerCell-r16 ::= SEQUENCE {
@@ -3416,7 +4413,8 @@ AvailabilityCombinationsPerCell-r16 ::= SEQUENCE {
availabilityCombinations-r16 SEQUENCE (SIZE (1..maxNrofAvailabilityCombinationsPerSet-r16)) OF AvailabilityCombination-r16,
...,
[[
- availabilityCombinationsRB-Groups-r17 SEQUENCE (SIZE (1..maxNrofAvailabilityCombinationsPerSet-r16)) OF AvailabilityCombinationRB-Groups-r17 OPTIONAL -- Need M
+ availabilityCombinationsRB-Groups-r17 SEQUENCE (SIZE (1..maxNrofAvailabilityCombinationsPerSet-r16)) OF
+ AvailabilityCombinationRB-Groups-r17 OPTIONAL -- Need M
]],
[[
positionInDCI-AI-RBGroups-v1720 INTEGER(0..maxAI-DCI-PayloadSize-1-r16) OPTIONAL -- Need M
@@ -3638,6 +4636,9 @@ BWP-DownlinkDedicated ::= SEQUENCE {
dl-PPW-PreConfigToReleaseList-r17 DL-PPW-PreConfigToReleaseList-r17 OPTIONAL, -- Need N
nonCellDefiningSSB-r17 NonCellDefiningSSB-r17 OPTIONAL, -- Need R
servingCellMO-r17 MeasObjectId OPTIONAL -- Cond MeasObject-NCD-SSB
+ ]],
+ [[
+ tci-InDCI-r18 CHOICE {release NULL, setup TCI-InDCI-r18} OPTIONAL -- Need M
]]
}
@@ -3653,6 +4654,11 @@ DL-PPW-PreConfigToAddModList-r17 ::= SEQUENCE (SIZE (1..maxNrofPPW-Config-r17
DL-PPW-PreConfigToReleaseList-r17 ::= SEQUENCE (SIZE (1..maxNrofPPW-Config-r17)) OF DL-PPW-ID-r17
+TCI-InDCI-r18 ::= SEQUENCE {
+ tci-SelectionPresentInDCI-r18 ENUMERATED { enabled } OPTIONAL, -- Need R
+ applyIndicatedTCI-StateDCI-1-0-r18 ENUMERATED {first, second, both, spare1} OPTIONAL -- Need R
+}
+
-- TAG-BWP-DOWNLINKDEDICATED-STOP
-- TAG-BWP-ID-START
@@ -3688,6 +4694,16 @@ BWP-UplinkCommon ::= SEQUENCE {
rsrp-ThresholdMsg3-r17 RSRP-Range OPTIONAL, -- Need R
numberOfMsg3-RepetitionsList-r17 SEQUENCE (SIZE (4)) OF NumberOfMsg3-Repetitions-r17 OPTIONAL, -- Cond Msg3Rep
mcs-Msg3-Repetitions-r17 SEQUENCE (SIZE (8)) OF INTEGER (0..31) OPTIONAL -- Cond Msg3Rep
+ ]],
+ [[
+ additionalRACH-perPCI-ToAddModList-r18 SEQUENCE (SIZE (1.. maxNrofAdditionalPRACHConfigs-r18)) OF RACH-ConfigTwoTA-r18
+ OPTIONAL, -- Cond 2TA-Only
+ additionalRACH-perPCI-ToReleaseList-r18 SEQUENCE (SIZE (1.. maxNrofAdditionalPRACHConfigs-r18)) OF AdditionalPCIIndex-r17
+ OPTIONAL, -- Need N
+ rsrp-ThresholdMsg1-RepetitionNum2-r18 RSRP-Range OPTIONAL, -- Need R
+ rsrp-ThresholdMsg1-RepetitionNum4-r18 RSRP-Range OPTIONAL, -- Need R
+ rsrp-ThresholdMsg1-RepetitionNum8-r18 RSRP-Range OPTIONAL, -- Need R
+ preambleTransMax-Msg1-Repetition-r18 ENUMERATED {n1, n2, n4, n6, n8, n10, n20, n50, n100, n200} OPTIONAL -- Cond Msg1Rep1
]]
}
@@ -3768,6 +4784,43 @@ CandidateBeamRS-r16 ::= SEQUENCE {
}
-- TAG-CANDIDATEBEAMRS-STOP
+-- TAG-CANDIDATETCI-STATE-START
+
+CandidateTCI-State-r18 ::= SEQUENCE {
+ tci-StateId-r18 TCI-StateId,
+ qcl-Type1-r18 LTM-QCL-Info-r18,
+ qcl-Type2-r18 LTM-QCL-Info-r18 OPTIONAL, -- Need R
+ pathlossReferenceRS-Id-r18 PathlossReferenceRS-Id-r17 OPTIONAL, -- Need R
+ tag-Id-ptr-r18 ENUMERATED {n0,n1} OPTIONAL, -- Cond 2TA
+ ul-powerControl-r18 Uplink-powerControlId-r17 OPTIONAL, -- Need R
+ ...
+}
+
+LTM-QCL-Info-r18 ::= SEQUENCE {
+ referenceSignal-r18 CHOICE {
+ ssb-Index SSB-Index,
+ csi-RS-Index NZP-CSI-RS-ResourceId
+ },
+ qcl-Type-r18 ENUMERATED {typeA, typeB, typeC, typeD},
+ ...
+}
+
+-- TAG-CANDIDATETCI-STATE-STOP
+-- TAG-CANDIDATETCI-UL-STATE-START
+
+CandidateTCI-UL-State-r18 ::= SEQUENCE {
+ tci-UL-StateId-r18 TCI-UL-StateId-r17,
+ referenceSignal-r18 CHOICE {
+ ssb-Index SSB-Index,
+ csi-RS-Index NZP-CSI-RS-ResourceId
+ },
+ pathlossReferenceRS-Id-r18 PathlossReferenceRS-Id-r17 OPTIONAL, -- Need R
+ tag-Id-ptr-r18 ENUMERATED {n0,n1} OPTIONAL, -- Cond 2TA
+ ul-powerControl-r18 Uplink-powerControlId-r17 OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-CANDIDATETCI-UL-STATE-STOP
-- TAG-CELLACCESSRELATEDINFO-START
CellAccessRelatedInfo ::= SEQUENCE {
@@ -3824,6 +4877,44 @@ CellAccessRelatedInfo-EUTRA-EPC ::= SEQUENCE {
PLMN-IdentityList-EUTRA-EPC::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity
-- TAG-CELLACCESSRELATEDINFOEUTRA-EPC-STOP
+-- TAG-CELLDTX-DRX-CONFIG-START
+
+CellDTX-DRX-Config-r18 ::= SEQUENCE {
+ cellDTX-DRX-onDurationTimer-r18 CHOICE {
+ subMilliSeconds INTEGER (1..31),
+ milliSeconds ENUMERATED {
+ ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60,
+ ms80, ms100, ms200, ms300, ms400, ms500, ms600, ms800, ms1000, ms1200,
+ ms1600, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
+ },
+ cellDTX-DRX-CycleStartOffset-r18 CHOICE {
+ ms10 INTEGER(0..9),
+ ms20 INTEGER(0..19),
+ ms32 INTEGER(0..31),
+ ms40 INTEGER(0..39),
+ ms60 INTEGER(0..59),
+ ms64 INTEGER(0..63),
+ ms70 INTEGER(0..69),
+ ms80 INTEGER(0..79),
+ ms128 INTEGER(0..127),
+ ms160 INTEGER(0..159),
+ ms256 INTEGER(0..255),
+ ms320 INTEGER(0..319),
+ ms512 INTEGER(0..511),
+ ms640 INTEGER(0..639),
+ ms1024 INTEGER(0..1023),
+ ms1280 INTEGER(0..1279),
+ ms2048 INTEGER(0..2047),
+ ms2560 INTEGER(0..2559),
+ ms5120 INTEGER(0..5119),
+ ms10240 INTEGER(0..10239)
+ },
+ cellDTX-DRX-SlotOffset-r18 INTEGER (0..31),
+ cellDTX-DRX-ConfigType-r18 ENUMERATED {dtx, drx, dtxdrx},
+ cellDTX-DRX-ActivationStatus-r18 ENUMERATED {activated, deactivated} OPTIONAL -- Need N
+}
+
+-- TAG-CELLDTX-DRX-CONFIG-STOP
-- TAG-CELLGROUPCONFIG-START
-- Configuration of one Cell-Group:
@@ -3873,6 +4964,16 @@ CellGroupConfig ::= SEQUENCE {
]],
[[
reportUplinkTxDirectCurrentMoreCarrier-r17 ReportUplinkTxDirectCurrentMoreCarrier-r17 OPTIONAL -- Need N
+ ]],
+ [[
+ prioSCellPRACH-OverSP-PeriodicSRS-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ ncr-FwdConfig-r18 CHOICE {release NULL, setup NCR-FwdConfig-r18 } OPTIONAL, -- Cond NCR
+ autonomousDenialParameters-r18 CHOICE {release NULL, setup AutonomousDenialParameters-r18} OPTIONAL, -- Need M
+ nonCollocatedTypeMRDC-r18 ENUMERATED { true } OPTIONAL, -- Need R
+ nonCollocatedTypeNR-CA-r18 ENUMERATED { true } OPTIONAL, -- Need R
+ uplinkTxSwitchingMoreBands-r18 CHOICE {release NULL, setup UplinkTxSwitchingMoreBands-r18 } OPTIONAL -- Need M
]]
}
@@ -3913,6 +5014,10 @@ ReconfigurationWithSync ::= SEQUENCE {
]],
[[
sl-PathSwitchConfig-r17 SL-PathSwitchConfig-r17 OPTIONAL -- Cond DirectToIndirect-PathSwitch
+ ]],
+ [[
+ rach-LessHO-r18 RACH-LessHO-r18 OPTIONAL, -- Need N
+ sl-IndirectPathMaintain-r18 ENUMERATED{true} OPTIONAL -- Cond MP
]]
}
@@ -3990,6 +5095,47 @@ CarrierState-r17::= CHOICE {
activeBWP-r17 INTEGER (0..maxNrofBWPs)
}
+AutonomousDenialParameters-r18 ::= SEQUENCE {
+ autonomousDenialSlots-r18 ENUMERATED {n2, n5, n10, n15, n20, n30, spare2, spare1},
+ autonomousDenialValidity-r18 ENUMERATED {n200, n500, n1000, n2000}
+}
+
+RACH-LessHO-r18 ::= SEQUENCE {
+ targetNTA-r18 ENUMERATED {zero, source} OPTIONAL, -- Need N
+ beamIndication-r18 CHOICE {
+ tci-StateID-r18 TCI-StateId,
+ ssb-Index-r18 SSB-Index
+ } OPTIONAL, -- Need N
+ ...
+}
+
+UplinkTxSwitchingMoreBands-r18::= SEQUENCE {
+ uplinkTxSwitchingBandList-r18 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF FreqBandIndicatorNR OPTIONAL, -- Need M
+ uplinkTxSwitchingBandPairList-r18 UplinkTxSwitchingBandPairList-r18 OPTIONAL, -- Need M
+ uplinkTxSwitchingAssociatedBandDualUL-List-r18 UplinkTxSwitchingAssociatedBandDualUL-List-r18 OPTIONAL, -- Need M
+ ...
+}
+
+UplinkTxSwitchingBandPairList-r18::= SEQUENCE (SIZE (1.. maxULTxSwitchingBandPairs)) OF UplinkTxSwitchingBandPairConfig-r18
+
+UplinkTxSwitchingBandPairConfig-r18::= SEQUENCE {
+ bandInfoUL1-r18 UplinkTxSwitchingBandIndex-r18,
+ bandInfoUL2-r18 UplinkTxSwitchingBandIndex-r18,
+ switchingOptionConfigForBandPair-r18 ENUMERATED {switchedUL, dualUL},
+ switching2T-Mode-r18 ENUMERATED {enabled} OPTIONAL, -- Need S
+ switchingPeriodConfigForBandPair-r18 ENUMERATED {n35us, n140us} OPTIONAL, -- Need S
+ ...
+}
+
+UplinkTxSwitchingAssociatedBandDualUL-List-r18::= SEQUENCE (SIZE (0..maxSimultaneousBands)) OF UplinkTxSwitchingAssociatedBandDualUL-r18
+
+UplinkTxSwitchingAssociatedBandDualUL-r18::= SEQUENCE {
+ transmitBand-r18 UplinkTxSwitchingBandIndex-r18,
+ associatedBand-r18 UplinkTxSwitchingBandIndex-r18
+}
+
+UplinkTxSwitchingBandIndex-r18::= INTEGER (1..maxSimultaneousBands)
+
-- TAG-CELLGROUPCONFIG-STOP
-- TAG-CELLGROUPID-START
@@ -4085,6 +5231,24 @@ CGI-Info-Logging-r16 ::= SEQUENCE {
CLI-RSSI-Range-r16 ::= INTEGER(0..76)
-- TAG-CLI-RSSI-RANGE-STOP
+-- TAG-CLOCKQUALITYMETRICS-START
+
+ClockQualityMetrics-r18 ::= SEQUENCE {
+ synchronisationState-r18 ENUMERATED {locked, holdover, freerun, spare1} OPTIONAL, -- Need N
+ tracebilityToUTC-r18 BOOLEAN OPTIONAL, -- Need N
+ tracebilityToGNSS-r18 BOOLEAN OPTIONAL, -- Need N
+ clockFrequencyStability-r18 BIT STRING (SIZE(16)) OPTIONAL, -- Need N
+ clockAccuracy-r18 CHOICE {
+ value INTEGER (1..40000000),
+ index INTEGER (32..47)
+ } OPTIONAL, -- Need N
+ parentTimeSource-r18 ENUMERATED {syncE, pTP, gNSS,atomicClock, terrestialRadio,
+ serialTimeCode, nTP, handset, other, spare7,
+ spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL, -- Need N
+ ...
+}
+
+-- TAG-CLOCKQUALITYMETRICS-STOP
-- TAG-CODEBOOKCONFIG-START
CodebookConfig ::= SEQUENCE {
@@ -4272,6 +5436,86 @@ CodebookConfig-v1730 ::= SEQUENCE {
}
}
+CodebookConfig-r18 ::= SEQUENCE {
+ codebookType CHOICE {
+ type2 CHOICE {
+ typeII-CJT-r18 SEQUENCE {
+ n1-n2-codebookSubsetRestrictionList-r18 N1-N2-CBSR-List-r18,
+ paramCombination-CJT-r18 INTEGER (1..7),
+ paramCombination-CJT-L-r18 SEQUENCE (SIZE (1..4)) OF INTEGER (1..5),
+ restrictedCMR-Selection-r18 ENUMERATED {enable},
+ valueOfO3-r18 ENUMERATED {n1, n4} OPTIONAL, -- Need R
+ numberOfPMI-SubbandsPerCQI-Subband-r18 INTEGER(1..2),
+ typeII-RI-Restriction-r18 BIT STRING (SIZE (4)),
+ codebookMode-r18 INTEGER (1..2)
+ },
+ typeII-CJT-PortSelection-r18 SEQUENCE {
+ paramCombination-CJT-PS-r18 INTEGER (1..5),
+ paramCombination-CJT-PS-alpha-r18 SEQUENCE (SIZE (1..4)) OF INTEGER (1..8),
+ restrictedCMR-Selection-r18 ENUMERATED {enable},
+ valueOfO3-r18 ENUMERATED {n1, n4} OPTIONAL, -- Need R
+ valueOfN-CJT-r18 ENUMERATED {n2, n4} OPTIONAL, -- Need R
+ numberOfPMI-SubbandsPerCQI-Subband-r18 INTEGER(1..2),
+ typeII-PortSelectionRI-Restriction-r18 BIT STRING (SIZE (4)),
+ codebookMode-r18 INTEGER (1..2)
+ },
+ typeII-Doppler-r18 SEQUENCE {
+ n1-n2-codebookSubsetRestriction-r18 N1-N2-CBSR-r18,
+ paramCombination-Doppler-r18 INTEGER (1..9),
+ td-dd-config-r18 TD-DD-Config-r18,
+ numberOfPMI-SubbandsPerCQI-Subband-r18 INTEGER(1..2),
+ predictionDelay-r18 ENUMERATED {m0,n0,n1,n2 },
+ typeII-RI-Restriction-r18 BIT STRING (SIZE (4))
+ },
+ typeII-DopplerPortSelection-r18 SEQUENCE {
+ paramCombinationDoppler-PS-r18 INTEGER (1..8),
+ td-dd-config-r18 TD-DD-Config-r18,
+ valueOfN-Doppler-r18 ENUMERATED {n2, n4} OPTIONAL, -- Need R
+ numberOfPMI-SubbandsPerCQI-Subband-r18 INTEGER(1..2),
+ predictionDelay-r18 ENUMERATED {m0,n0,n1,n2 },
+ typeII-PortSelectionRI-Restriction-r18 BIT STRING (SIZE (4))
+ }
+ }
+ }
+}
+
+N1-N2-CBSR-List-r18 ::= CHOICE {
+ two-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (8))},
+ two-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (27))},
+ four-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (16))},
+ three-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (35))},
+ six-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (24))},
+ four-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (43))},
+ eight-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (32))},
+ four-three-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (59))},
+ twelve-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (48))},
+ four-four-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (75))},
+ eight-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (75))},
+ sixteen-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-list-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (64))}
+}
+
+N1-N2-CBSR-r18 ::= CHOICE {
+ two-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (8))},
+ two-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (27))},
+ four-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (16))},
+ three-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (35))},
+ six-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (24))},
+ four-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (43))},
+ eight-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (32))},
+ four-three-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (59))},
+ twelve-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (48))},
+ four-four-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (75))},
+ eight-two-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (75))},
+ sixteen-one-r18 CHOICE {no-cbsr-r18 NULL, cbsr-r18 BIT STRING (SIZE (64))}
+}
+
+TD-DD-Config-r18 ::= SEQUENCE {
+ vectorLengthDD-r18 ENUMERATED {n1,n2,n4,n8},
+ unitDurationDD-r18 ENUMERATED {m1,m2} OPTIONAL, -- Need R
+ aperiodicResourceOffset-r18 INTEGER(1..2) OPTIONAL, -- Need R
+ tdCQI-r18 ENUMERATED {n11,n12,n2, spare1} OPTIONAL -- Need R
+}
+
-- TAG-CODEBOOKCONFIG-STOP
-- TAG-COMMONLOCATIONINFO-START
@@ -4301,11 +5545,34 @@ CondReconfigToAddMod-r16 ::= SEQUENCE {
...,
[[
condExecutionCondSCG-r17 OCTET STRING (CONTAINING CondReconfigExecCondSCG-r17) OPTIONAL -- Need M
+ ]],
+ [[
+ condExecutionCondPSCell-r18 SEQUENCE (SIZE (1..2)) OF MeasId OPTIONAL, -- Cond condReconfigCHO-WithSCG
+ subsequentCondReconfig-r18 SubsequentCondReconfig-r18 OPTIONAL, -- Need M
+ securityCellSetId-r18 SecurityCellSetId-r18 OPTIONAL, -- Need M
+ scpac-ConfigComplete-r18 ENUMERATED {true} OPTIONAL -- Cond CPAC
]]
}
CondReconfigExecCondSCG-r17 ::= SEQUENCE (SIZE (1..2)) OF MeasId
+SubsequentCondReconfig-r18 ::= SEQUENCE {
+ condExecutionCondToReleaseList-r18 CondExecutionCondToReleaseList-r18 OPTIONAL, -- Need N
+ condExecutionCondToAddModList-r18 CondExecutionCondToAddModList-r18 OPTIONAL, -- Need N
+ ...
+}
+
+CondExecutionCondToAddModList-r18 ::= SEQUENCE (SIZE (1.. maxNrofCondCells-r16)) OF CondExecutionCondToAddMod-r18
+
+CondExecutionCondToAddMod-r18 ::= SEQUENCE {
+ subsequentCondReconfigId-r18 CondReconfigId-r16,
+ subsequentCondExecutionCond-r18 SEQUENCE (SIZE (1..2)) OF MeasId OPTIONAL, -- Need M
+ subsequentCondExecutionCondSCG-r18 OCTET STRING (CONTAINING CondReconfigExecCondSCG-r17) OPTIONAL, -- Need M
+ ...
+}
+
+CondExecutionCondToReleaseList-r18 ::= SEQUENCE (SIZE (1.. maxNrofCondCells-r16)) OF CondReconfigId-r16
+
-- TAG-CONDRECONFIGTOADDMODLIST-STOP
-- TAG-CONDITIONALRECONFIGURATION-START
@@ -4313,11 +5580,28 @@ ConditionalReconfiguration-r16 ::= SEQUENCE {
attemptCondReconfig-r16 ENUMERATED {true} OPTIONAL, -- Cond CHO
condReconfigToRemoveList-r16 CondReconfigToRemoveList-r16 OPTIONAL, -- Need N
condReconfigToAddModList-r16 CondReconfigToAddModList-r16 OPTIONAL, -- Need N
- ...
+ ...,
+ [[
+ scpac-ReferenceConfiguration-r18 CHOICE {release NULL, setup ReferenceConfiguration-r18} OPTIONAL, -- Need M
+ servingSecurityCellSetId-r18 SecurityCellSetId-r18 OPTIONAL, -- Need M
+ sk-CounterConfiguration-r18 SK-CounterConfiguration-r18 OPTIONAL -- Need M
+ ]]
}
CondReconfigToRemoveList-r16 ::= SEQUENCE (SIZE (1.. maxNrofCondCells-r16)) OF CondReconfigId-r16
+SK-CounterConfiguration-r18 ::= SEQUENCE {
+ sk-CounterConfigToReleaseList-r18 SEQUENCE (SIZE (1..maxSecurityCellSet-r18)) OF SecurityCellSetId-r18 OPTIONAL, -- Need N
+ sk-CounterConfigToAddModList-r18 SEQUENCE (SIZE (1..maxSecurityCellSet-r18)) OF SK-CounterConfig-r18 OPTIONAL -- Need N
+}
+
+SK-CounterConfig-r18 ::= SEQUENCE {
+ securityCellSetId-r18 SecurityCellSetId-r18,
+ sk-CounterList-r18 SEQUENCE (SIZE (1..maxSK-Counter-r18)) OF SK-Counter
+}
+
+SecurityCellSetId-r18 ::= INTEGER (1.. maxSecurityCellSet-r18)
+
-- TAG-CONDITIONALRECONFIGURATION-STOP
-- TAG-CONFIGUREDGRANTCONFIG-START
@@ -4362,55 +5646,86 @@ ConfiguredGrantConfig ::= SEQUENCE {
timeReferenceSFN-r16 ENUMERATED {sfn512} OPTIONAL -- Need S
]],
[[
- pathlossReferenceIndex2-r17 INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1) OPTIONAL, -- Need R
- srs-ResourceIndicator2-r17 INTEGER (0..15) OPTIONAL, -- Need R
- precodingAndNumberOfLayers2-r17 INTEGER (0..63) OPTIONAL, -- Need R
- timeDomainAllocation-v1710 INTEGER (16..63) OPTIONAL, -- Need M
- timeDomainOffset-r17 INTEGER (0..40959) OPTIONAL, -- Need R
- cg-SDT-Configuration-r17 CG-SDT-Configuration-r17 OPTIONAL -- Need M
+ pathlossReferenceIndex2-r17 INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1) OPTIONAL, -- Need R
+ srs-ResourceIndicator2-r17 INTEGER (0..15) OPTIONAL, -- Need R
+ precodingAndNumberOfLayers2-r17 INTEGER (0..63) OPTIONAL, -- Need R
+ timeDomainAllocation-v1710 INTEGER (16..63) OPTIONAL, -- Need M
+ timeDomainOffset-r17 INTEGER (0..40959) OPTIONAL, -- Need R
+ cg-SDT-Configuration-r17 CG-SDT-Configuration-r17 OPTIONAL -- Need M
+ ]],
+ [[
+ srs-ResourceSetId-r18 SRS-ResourceSetId OPTIONAL, -- Need R
+ cg-LTM-Configuration-r18 CG-RRC-Configuration-r18 OPTIONAL, -- Cond LTM
+ cg-SDT-PeriodicityExt-r18 ENUMERATED {
+ sym1x14x1280, sym2x14x1280, sym4x14x1280 , sym8x14x1280, sym16x14x1280,
+ sym32x14x1280, sym48x14x1280, sym64x14x1280, sym96x14x1280, sym128x14x1280,
+ sym192x14x1280, sym240x14x1280, sym256x14x1280, sym384x14x1280, sym472x14x1280,
+ sym480x14x1280, sym512x14x1280, sym768x14x1280, sym944x14x1280, sym960x14x1280,
+ sym1408x14x1280, sym1536x14x1280, sym1888x14x1280, sym1920x14x1280,
+ sym2816x14x1280, sym3072x14x1280, sym3776x14x1280, sym5632x14x1280,
+ sym6144x14x1280, sym7552x14x1280, sym7680x14x1280, sym11264x14x1280,
+ sym15104x14x1280, sym15360x14x1280, sym22528x14x1280, sym30208x14x1280,
+ sym45056x14x1280, sym60416x14x1280, sym90112x14x1280, sym180224x14x1280,
+ sym4x12x1280, sym8x12x1280, sym16x12x1280, sym32x12x1280, sym192x12x1280,
+ sym384x12x1280, sym960x12x1280, sym1888x12x1280, sym3776x12x1280,
+ sym5632x12x1280, sym11264x12x1280, spare13, spare12, spare11, spare10, spare9,
+ spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1
+ } OPTIONAL, -- Need R
+ timeReferenceHyperSFN-r18 INTEGER (0..1023) OPTIONAL, -- Need R
+ cg-RRC-Configuration-r18 CG-RRC-Configuration-r18 OPTIONAL, -- Cond RACH-LessHO
+ applyIndicatedTCI-State-r18 ENUMERATED {first, second, both, spare1} OPTIONAL -- Need R
]]
- } OPTIONAL, -- Need R
+ } OPTIONAL, -- Need R
...,
[[
- cg-RetransmissionTimer-r16 INTEGER (1..64) OPTIONAL, -- Need R
- cg-minDFI-Delay-r16 ENUMERATED
+ cg-RetransmissionTimer-r16 INTEGER (1..64) OPTIONAL, -- Need R
+ cg-minDFI-Delay-r16 ENUMERATED
{sym7, sym1x14, sym2x14, sym3x14, sym4x14, sym5x14, sym6x14, sym7x14, sym8x14,
sym9x14, sym10x14, sym11x14, sym12x14, sym13x14, sym14x14,sym15x14, sym16x14
- } OPTIONAL, -- Need R
- cg-nrofPUSCH-InSlot-r16 INTEGER (1..7) OPTIONAL, -- Need R
- cg-nrofSlots-r16 INTEGER (1..40) OPTIONAL, -- Need R
- cg-StartingOffsets-r16 CG-StartingOffsets-r16 OPTIONAL, -- Need R
- cg-UCI-Multiplexing-r16 ENUMERATED {enabled} OPTIONAL, -- Need R
- cg-COT-SharingOffset-r16 INTEGER (1..39) OPTIONAL, -- Need R
- betaOffsetCG-UCI-r16 INTEGER (0..31) OPTIONAL, -- Need R
- cg-COT-SharingList-r16 SEQUENCE (SIZE (1..1709)) OF CG-COT-Sharing-r16 OPTIONAL, -- Need R
- harq-ProcID-Offset-r16 INTEGER (0..15) OPTIONAL, -- Need M
- harq-ProcID-Offset2-r16 INTEGER (0..15) OPTIONAL, -- Need M
- configuredGrantConfigIndex-r16 ConfiguredGrantConfigIndex-r16 OPTIONAL, -- Cond CG-List
- configuredGrantConfigIndexMAC-r16 ConfiguredGrantConfigIndexMAC-r16 OPTIONAL, -- Cond CG-IndexMAC
- periodicityExt-r16 INTEGER (1..5120) OPTIONAL, -- Need R
- startingFromRV0-r16 ENUMERATED {on, off} OPTIONAL, -- Need R
- phy-PriorityIndex-r16 ENUMERATED {p0, p1} OPTIONAL, -- Need R
- autonomousTx-r16 ENUMERATED {enabled} OPTIONAL -- Cond LCH-BasedPrioritization
- ]],
- [[
- cg-betaOffsetsCrossPri0-r17 CHOICE {release NULL, setup BetaOffsetsCrossPriSelCG-r17 } OPTIONAL, -- Need M
- cg-betaOffsetsCrossPri1-r17 CHOICE {release NULL, setup BetaOffsetsCrossPriSelCG-r17 } OPTIONAL, -- Need M
- mappingPattern-r17 ENUMERATED {cyclicMapping, sequentialMapping} OPTIONAL, -- Cond SRSsets
- sequenceOffsetForRV-r17 INTEGER (0..3) OPTIONAL, -- Need R
- p0-PUSCH-Alpha2-r17 P0-PUSCH-AlphaSetId OPTIONAL, -- Need R
- powerControlLoopToUse2-r17 ENUMERATED {n0, n1} OPTIONAL, -- Need R
- cg-COT-SharingList-r17 SEQUENCE (SIZE (1..50722)) OF CG-COT-Sharing-r17 OPTIONAL, -- Need R
- periodicityExt-r17 INTEGER (1..40960) OPTIONAL, -- Need R
- repK-v1710 ENUMERATED {n12, n16, n24, n32} OPTIONAL, -- Need R
- nrofHARQ-Processes-v1700 INTEGER(17..32) OPTIONAL, -- Need M
- harq-ProcID-Offset2-v1700 INTEGER (16..31) OPTIONAL, -- Need R
- configuredGrantTimer-v1700 INTEGER(33..288) OPTIONAL, -- Need R
- cg-minDFI-Delay-v1710 INTEGER (238..3584) OPTIONAL -- Need R
- ]],
- [[
- harq-ProcID-Offset-v1730 INTEGER (16..31) OPTIONAL, -- Need R
- cg-nrofSlots-r17 INTEGER (1..320) OPTIONAL -- Need R
+ } OPTIONAL, -- Need R
+ cg-nrofPUSCH-InSlot-r16 INTEGER (1..7) OPTIONAL, -- Need R
+ cg-nrofSlots-r16 INTEGER (1..40) OPTIONAL, -- Need R
+ cg-StartingOffsets-r16 CG-StartingOffsets-r16 OPTIONAL, -- Need R
+ cg-UCI-Multiplexing-r16 ENUMERATED {enabled} OPTIONAL, -- Need R
+ cg-COT-SharingOffset-r16 INTEGER (1..39) OPTIONAL, -- Need R
+ betaOffsetCG-UCI-r16 INTEGER (0..31) OPTIONAL, -- Need R
+ cg-COT-SharingList-r16 SEQUENCE (SIZE (1..1709)) OF CG-COT-Sharing-r16 OPTIONAL, -- Need R
+ harq-ProcID-Offset-r16 INTEGER (0..15) OPTIONAL, -- Need M
+ harq-ProcID-Offset2-r16 INTEGER (0..15) OPTIONAL, -- Need M
+ configuredGrantConfigIndex-r16 ConfiguredGrantConfigIndex-r16 OPTIONAL, -- Cond CG-List
+ configuredGrantConfigIndexMAC-r16 ConfiguredGrantConfigIndexMAC-r16 OPTIONAL, -- Cond CG-IndexMAC
+ periodicityExt-r16 INTEGER (1..5120) OPTIONAL, -- Need R
+ startingFromRV0-r16 ENUMERATED {on, off} OPTIONAL, -- Need R
+ phy-PriorityIndex-r16 ENUMERATED {p0, p1} OPTIONAL, -- Need R
+ autonomousTx-r16 ENUMERATED {enabled} OPTIONAL -- Cond LCH-BasedPrioritization
+ ]],
+ [[
+ cg-betaOffsetsCrossPri0-r17 CHOICE {release NULL, setup BetaOffsetsCrossPriSelCG-r17 } OPTIONAL, -- Need M
+ cg-betaOffsetsCrossPri1-r17 CHOICE {release NULL, setup BetaOffsetsCrossPriSelCG-r17 } OPTIONAL, -- Need M
+ mappingPattern-r17 ENUMERATED {cyclicMapping, sequentialMapping} OPTIONAL, -- Cond SRSsets
+ sequenceOffsetForRV-r17 INTEGER (0..3) OPTIONAL, -- Need R
+ p0-PUSCH-Alpha2-r17 P0-PUSCH-AlphaSetId OPTIONAL, -- Need R
+ powerControlLoopToUse2-r17 ENUMERATED {n0, n1} OPTIONAL, -- Need R
+ cg-COT-SharingList-r17 SEQUENCE (SIZE (1..50722)) OF CG-COT-Sharing-r17 OPTIONAL, -- Need R
+ periodicityExt-r17 INTEGER (1..40960) OPTIONAL, -- Need R
+ repK-v1710 ENUMERATED {n12, n16, n24, n32} OPTIONAL, -- Need R
+ nrofHARQ-Processes-v1700 INTEGER(17..32) OPTIONAL, -- Need M
+ harq-ProcID-Offset2-v1700 INTEGER (16..31) OPTIONAL, -- Need R
+ configuredGrantTimer-v1700 INTEGER(33..288) OPTIONAL, -- Need R
+ cg-minDFI-Delay-v1710 INTEGER (238..3584) OPTIONAL -- Need R
+ ]],
+ [[
+ harq-ProcID-Offset-v1730 INTEGER (16..31) OPTIONAL, -- Need R
+ cg-nrofSlots-r17 INTEGER (1..320) OPTIONAL -- Need R
+ ]],
+ [[
+ disableCG-RetransmissionMonitoring-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ nrofSlotsInCG-Period-r18 INTEGER (2..32) OPTIONAL, -- Need R
+ uto-UCI-Config-r18 SEQUENCE {
+ nrofBitsInUTO-UCI-r18 INTEGER (3..8),
+ betaOffsetUTO-UCI-r18 INTEGER (0..31),
+ ...
+ } OPTIONAL -- Need R
]]
}
@@ -4465,6 +5780,24 @@ CG-SDT-Configuration-r17 ::= SEQUENCE {
sdt-NrofDMRS-Sequences-r17 INTEGER (1..2) OPTIONAL -- Need M
}
+CG-RRC-Configuration-r18 ::= SEQUENCE {
+ cg-RRC-RetransmissionTimer-r18 INTEGER (1..288) OPTIONAL, -- Need R
+ cg-RRC-RSRP-ThresholdSSB-r18 RSRP-Range OPTIONAL, -- Need R
+ rrc-SSB-Subset-r18 CHOICE {
+ shortBitmap-r18 BIT STRING (SIZE (4)),
+ mediumBitmap-r18 BIT STRING (SIZE (8)),
+ longBitmap-r18 BIT STRING (SIZE (64))
+ } OPTIONAL, -- Need S
+ rrc-SSB-PerCG-PUSCH-r18 ENUMERATED {oneEighth, oneFourth, half, one, two, four, eight, sixteen} OPTIONAL, -- Need M
+ rrc-P0-PUSCH-r18 INTEGER (-16..15) OPTIONAL, -- Need M
+ rrc-Alpha-r18 ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1} OPTIONAL, -- Need M
+ rrc-DMRS-Ports-r18 CHOICE {
+ dmrsType1-r18 BIT STRING (SIZE (8)),
+ dmrsType2-r18 BIT STRING (SIZE (12))
+ } OPTIONAL, -- Need M
+ rrc-NrofDMRS-Sequences-r18 INTEGER (1..2) OPTIONAL, -- Need M
+ ...
+}
-- TAG-CONFIGUREDGRANTCONFIG-STOP
-- TAG-CONFIGUREDGRANTCONFIGINDEX-START
@@ -4512,7 +5845,10 @@ ControlResourceSet ::= SEQUENCE {
controlResourceSetId-v1610 ControlResourceSetId-v1610 OPTIONAL -- Need S
]],
[[
- followUnifiedTCI-State-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ followUnifiedTCI-State-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ applyIndicatedTCI-State-r18 ENUMERATED {first, second, both, none} OPTIONAL -- Cond FollowUTCI
]]
}
@@ -4567,6 +5903,9 @@ CSI-AperiodicTriggerState ::= SEQUENCE {
...,
[[
ap-CSI-MultiplexingMode-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ ltm-AssociatedReportConfigInfo-r18 LTM-CSI-ReportConfigId-r18 OPTIONAL -- Need R
]]
}
@@ -4591,8 +5930,23 @@ CSI-AssociatedReportConfigInfo ::= SEQUENCE {
OPTIONAL -- Cond Aperiodic
},
csi-SSB-ResourceSet2-r17 INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfigExt)
- } OPTIONAL, -- Cond NoUnifiedTCI
+ } OPTIONAL, -- Need R
csi-SSB-ResourceSetExt INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfigExt) OPTIONAL -- Need R
+ ]],
+ [[
+ resourcesForChannelTDCP-r18 SEQUENCE {
+ resourceSet2TDCP-r18 INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig),
+ resourceSet3TDCP-r18 INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig) OPTIONAL -- Need R
+ } OPTIONAL, -- Cond TDCP
+ applyIndicatedTCI-State-r18 CHOICE {
+ perSet-r18 ENUMERATED {first, second},
+ perResource-r18 SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF ENUMERATED {first, second}
+ } OPTIONAL, -- Cond ApplyIndicatedTCI
+ applyIndicatedTCI-State2-r18 CHOICE {
+ perSet-r18 ENUMERATED {first, second},
+ perResource-r18 SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF ENUMERATED {first, second}
+ } OPTIONAL, -- Cond SecondCSICMR
+ csi-ReportSubConfigTriggerList-r18 CSI-ReportSubConfigTriggerList-r18 OPTIONAL -- Need R
]]
}
@@ -4676,6 +6030,12 @@ CSI-MeasConfig ::= SEQUENCE {
[[
sCellActivationRS-ConfigToAddModList-r17 SEQUENCE (SIZE (1..maxNrofSCellActRS-r17)) OF SCellActivationRS-Config-r17 OPTIONAL, -- Need N
sCellActivationRS-ConfigToReleaseList-r17 SEQUENCE (SIZE (1..maxNrofSCellActRS-r17)) OF SCellActivationRS-ConfigId-r17 OPTIONAL -- Need N
+ ]],
+ [[
+ ltm-CSI-ReportConfigToAddModList-r18 SEQUENCE (SIZE (1..maxNrofLTM-CSI-ReportConfigurations-r18)) OF LTM-CSI-ReportConfig-r18
+ OPTIONAL, -- Need N
+ ltm-CSI-ReportConfigToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofLTM-CSI-ReportConfigurations-r18)) OF LTM-CSI-ReportConfigId-r18
+ OPTIONAL -- Need N
]]
}
@@ -4807,6 +6167,17 @@ CSI-ReportConfig ::= SEQUENCE {
]],
[[
codebookConfig-v1730 CodebookConfig-v1730 OPTIONAL -- Need R
+ ]],
+ [[
+ groupBasedBeamReporting-v1800 SEQUENCE {
+ reportingMode-r18 ENUMERATED {jointULDL, onlyUL}
+ } OPTIONAL, -- Need R
+ reportQuantity-r18 TDCP-r18 OPTIONAL, -- Need R
+ codebookConfig-r18 CodebookConfig-r18 OPTIONAL, -- Need R
+ csi-ReportSubConfigToAddModList-r18 SEQUENCE (SIZE (1..maxNrofCSI-ReportSubconfigPerCSI-ReportConfig-r18)) OF CSI-ReportSubConfig-r18
+ OPTIONAL, -- Need N
+ csi-ReportSubConfigToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofCSI-ReportSubconfigPerCSI-ReportConfig-r18)) OF CSI-ReportSubConfigId-r18
+ OPTIONAL -- Need N
]]
}
@@ -4823,11 +6194,6 @@ CSI-ReportPeriodicityAndOffset ::= CHOICE {
slots320 INTEGER(0..319)
}
-PUCCH-CSI-Resource ::= SEQUENCE {
- uplinkBandwidthPartId BWP-Id,
- pucch-Resource PUCCH-ResourceId
-}
-
PortIndexFor8Ranks ::= CHOICE {
portIndex8 SEQUENCE{
rank1-8 PortIndex8 OPTIONAL, -- Need R
@@ -4856,12 +6222,55 @@ PortIndex8::= INTEGER (0..7)
PortIndex4::= INTEGER (0..3)
PortIndex2::= INTEGER (0..1)
+TDCP-r18 ::= SEQUENCE {
+ delayDSetofLengthY-r18 SEQUENCE (SIZE (1.. maxNrofdelayD-r18)) OF DelayD,
+ phaseReporting-r18 ENUMERATED {enable} OPTIONAL -- Need R
+}
+
+DelayD ::= ENUMERATED { symb4, slot1, slot2, slot3, slot4, slot5, slot6, slot10 }
+
+CSI-ReportSubConfig-r18 ::= SEQUENCE {
+ reportSubConfigId-r18 CSI-ReportSubConfigId-r18,
+ reportSubConfigParams-r18 CHOICE {
+ a1-parameters SEQUENCE {
+ codebookSubConfig-r18 CodebookConfig OPTIONAL, -- Need R
+ portSubsetIndicator-r18 CHOICE {
+ p2 BIT STRING (SIZE (2)),
+ p4 BIT STRING (SIZE (4)),
+ p8 BIT STRING (SIZE (8)),
+ p12 BIT STRING (SIZE (12)),
+ p16 BIT STRING (SIZE (16)),
+ p24 BIT STRING (SIZE (24)),
+ p32 BIT STRING (SIZE (32))
+ } OPTIONAL, -- Need R
+ non-PMI-PortIndication-r18 SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks
+ OPTIONAL -- Need R
+ },
+ a2-parameters SEQUENCE {
+ nzp-CSI-RS-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-ResourceIndex-r18
+ }
+ } OPTIONAL, -- Need R
+ powerOffset-r18 INTEGER(0..23) OPTIONAL -- Need R
+}
+
+NZP-CSI-RS-ResourceIndex-r18 ::= INTEGER (0..maxNrofNZP-CSI-RS-ResourcesPerSet-1-r18)
+
-- TAG-CSI-REPORTCONFIG-STOP
-- TAG-CSI-REPORTCONFIGID-START
CSI-ReportConfigId ::= INTEGER (0..maxNrofCSI-ReportConfigurations-1)
-- TAG-CSI-REPORTCONFIGID-STOP
+-- TAG-CSI-REPORTSUBCONFIGID-START
+
+CSI-ReportSubConfigId-r18 ::= INTEGER (0..maxNrofCSI-ReportSubconfigPerCSI-ReportConfig-1-r18)
+
+-- TAG-CSI-REPORTSUBCONFIGID-STOP
+-- TAG-CSI-REPORTSUBCONFIGTRIGGERLIST-START
+
+CSI-ReportSubConfigTriggerList-r18 ::= SEQUENCE (SIZE(1..maxNrofCSI-ReportSubconfigPerCSI-ReportConfig-r18)) OF CSI-ReportSubConfigId-r18
+
+-- TAG-CSI-REPORTSUBCONFIGTRIGGERLIST-STOP
-- TAG-CSI-RESOURCECONFIG-START
CSI-ResourceConfig ::= SEQUENCE {
@@ -4997,7 +6406,11 @@ CSI-SemiPersistentOnPUSCH-TriggerState ::= SEQUENCE {
associatedReportConfigInfo CSI-ReportConfigId,
...,
[[
- sp-CSI-MultiplexingMode-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ sp-CSI-MultiplexingMode-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ csi-ReportSubConfigTriggerList-r18 CSI-ReportSubConfigTriggerList-r18 OPTIONAL, -- Need R
+ ltm-AssociatedReportConfigInfo-r18 LTM-CSI-ReportConfigId-r18 OPTIONAL -- Need R
]]
}
@@ -5157,8 +6570,10 @@ DMRS-DownlinkConfig ::= SEQUENCE {
...,
[[
dmrs-Downlink-r16 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ dmrs-TypeEnh-r18 ENUMERATED {enabled} OPTIONAL -- Need R
]]
-
}
-- TAG-DMRS-DOWNLINKCONFIG-STOP
@@ -5186,7 +6601,10 @@ DMRS-UplinkConfig ::= SEQUENCE {
dmrs-UplinkTransformPrecoding-r16 CHOICE {release NULL, setup DMRS-UplinkTransformPrecoding-r16} OPTIONAL -- Need M
]]
} OPTIONAL, -- Need R
- ...
+ ...,
+ [[
+ dmrs-TypeEnh-r18 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]]
}
DMRS-UplinkTransformPrecoding-r16 ::= SEQUENCE {
@@ -5219,9 +6637,15 @@ DownlinkConfigCommonSIB ::= SEQUENCE {
[[
pei-Config-r17 PEI-Config-r17 OPTIONAL, -- Need R
initialDownlinkBWP-RedCap-r17 BWP-DownlinkCommon OPTIONAL -- Need R
+ ]],
+ [[
+ frequencyInfoDL-v1800 FrequencyInfoDL-SIB-v1800 OPTIONAL -- Need R
]]
}
+DownlinkConfigCommonSIB-v1760 ::= SEQUENCE {
+ frequencyInfoDL-v1760 FrequencyInfoDL-SIB-v1760
+}
BCCH-Config ::= SEQUENCE {
modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16},
@@ -5361,6 +6785,44 @@ DRX-ConfigExt-v1700 ::= SEQUENCE {
drx-HARQ-RTT-TimerUL-r17 INTEGER (0..448)
}
+DRX-ConfigExt2-v1800 ::= SEQUENCE {
+ drx-NonIntegerLongCycleStartOffset-r18 CHOICE {
+ ms1001over240 INTEGER(0..3),
+ ms25over6 INTEGER(0..3),
+ ms25over3 INTEGER(0..7),
+ ms1001over120 INTEGER(0..7),
+ ms100over9 INTEGER(0..10),
+ ms25over2 INTEGER(0..11),
+ ms40over3 INTEGER(0..12),
+ ms125over9 INTEGER(0..12),
+ ms50over3 INTEGER(0..15),
+ ms1001over60 INTEGER(0..15),
+ ms125over6 INTEGER(0..19),
+ ms200over9 INTEGER(0..21),
+ ms250over9 INTEGER(0..26),
+ ms100over3 INTEGER(0..32),
+ ms1001over30 INTEGER(0..32),
+ ms75over2 INTEGER(0..36),
+ ms125over3 INTEGER(0..40),
+ ms1001over24 INTEGER(0..40),
+ ms200over3 INTEGER(0..65),
+ ms1001over15 INTEGER(0..65),
+ ms250over3 INTEGER(0..82),
+ ms1001over12 INTEGER(0..82),
+ ms400over3 INTEGER(0..132),
+ ...
+ },
+ shortDRX-r18 SEQUENCE {
+ drx-NonIntegerShortCycle-r18 ENUMERATED {ms1001over240, ms25over6, ms25over3, ms1001over120, ms100over9, ms25over2,
+ ms40over3, ms125over9, ms50over3, ms1001over60, ms125over6, ms200over9,
+ ms100over3, ms1001over30, ms125over3, ms1001over24, ms200over3, spare15,
+ spare14, spare13, spare12, spare11, spare10, spare9, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2, spare1},
+ drx-ShortCycleTimer-r18 INTEGER (1..16)
+ } OPTIONAL, -- Need R
+ drx-TimeReferenceSFN-r18 ENUMERATED {sfn512} OPTIONAL -- Need N
+}
+
-- TAG-DRX-CONFIG-STOP
-- TAG-DRX-CONFIGSECONDARYGROUP-START
@@ -5389,6 +6851,23 @@ DRX-ConfigSL-r17 ::= SEQUENCE {
}
-- TAG-DRX-CONFIGSL-STOP
+-- TAG-EARLYUL-SYNCCONFIG-START
+
+EarlyUL-SyncConfig-r18 ::= SEQUENCE {
+ frequencyInfoUL-r18 FrequencyInfoUL,
+ rach-ConfigGeneric-r18 RACH-ConfigGeneric,
+ bwp-GenericParameters-r18 BWP,
+ ssb-PerRACH-Occasion-r18 ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL, -- Need R
+ prach-RootSequenceIndex-r18 CHOICE {
+ l839 INTEGER (0..837),
+ l139 INTEGER (0..137)
+ } OPTIONAL, -- Need R
+ ltm-PRACH-SubcarrierSpacing-r18 SubcarrierSpacing OPTIONAL, -- Need L139
+ n-TimingAdvanceOffset-r18 ENUMERATED { n0, n25600, n39936, spare1 } OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-EARLYUL-SYNCCONFIG-STOP
-- TAG-EPHEMERISINFO-START
EphemerisInfo-r17 ::= CHOICE {
@@ -5419,6 +6898,19 @@ PositionStateVector-r17 ::= INTEGER (-33554432..33554431)
VelocityStateVector-r17 ::= INTEGER (-131072..131071)
-- TAG-EPHEMERISINFO-STOP
+-- TAG-EPOCHTIME-START
+
+EpochTime-r17 ::= SEQUENCE {
+ sfn-r17 INTEGER(0..1023),
+ subFrameNR-r17 INTEGER(0..9)
+}
+
+-- TAG-EPOCHTIME-STOP
+-- TAG-EUTRACRNTI-START
+
+EUTRA-C-RNTI ::= BIT STRING (SIZE (16))
+
+-- TAG-EUTRACRNTI-STOP
-- TAG-FEATURECOMBINATION-START
FeatureCombination-r17 ::= SEQUENCE {
@@ -5426,8 +6918,8 @@ FeatureCombination-r17 ::= SEQUENCE {
smallData-r17 ENUMERATED {true} OPTIONAL, -- Need R
nsag-r17 NSAG-List-r17 OPTIONAL, -- Need R
msg3-Repetitions-r17 ENUMERATED {true} OPTIONAL, -- Need R
- spare4 ENUMERATED {true} OPTIONAL, -- Need R
- spare3 ENUMERATED {true} OPTIONAL, -- Need R
+ msg1-Repetitions-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ eRedCap-r18 ENUMERATED {true} OPTIONAL, -- Need R
spare2 ENUMERATED {true} OPTIONAL, -- Need R
spare1 ENUMERATED {true} OPTIONAL -- Need R
}
@@ -5452,7 +6944,11 @@ FeatureCombinationPreambles-r17 ::= SEQUENCE {
msgA-RSRP-Threshold-r17 RSRP-Range OPTIONAL, -- Need R
rsrp-ThresholdSSB-r17 RSRP-Range OPTIONAL, -- Need R
deltaPreamble-r17 INTEGER (-1..6) OPTIONAL, -- Need R
- ...
+ ...,
+ [[
+ msg1-RepetitionNum-r18 ENUMERATED {n2, n4, n8, spare1} OPTIONAL, -- Cond Msg1Rep2
+ msg1-RepetitionTimeOffsetROGroup-r18 ENUMERATED {n4, n8, n16, spare1} OPTIONAL -- Cond Msg1Rep3
+ ]]
}
-- TAG-FEATURECOMBINATIONPREAMBLES-STOP
@@ -5515,7 +7011,10 @@ FrequencyInfoDL ::= SEQUENCE {
frequencyBandList MultiFrequencyBandListNR,
absoluteFrequencyPointA ARFCN-ValueNR,
scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
- ...
+ ...,
+ [[
+ referenceCell-r18 ServCellIndex OPTIONAL -- Cond SSBlessSCell
+ ]]
}
-- TAG-FREQUENCYINFODL-STOP
@@ -5527,6 +7026,14 @@ FrequencyInfoDL-SIB ::= SEQUENCE {
scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier
}
+FrequencyInfoDL-SIB-v1760 ::= SEQUENCE {
+ frequencyBandList-v1760 MultiFrequencyBandListNR-SIB-v1760
+}
+
+FrequencyInfoDL-SIB-v1800 ::= SEQUENCE {
+ frequencyBandListAerial-r18 MultiFrequencyBandListNR-Aerial-SIB-r18
+}
+
-- TAG-FREQUENCYINFODL-SIB-STOP
-- TAG-FREQUENCYINFOUL-START
@@ -5537,19 +7044,32 @@ FrequencyInfoUL ::= SEQUENCE {
additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need S
p-Max P-Max OPTIONAL, -- Need S
frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-TDD-OrSUL-Optional
- ...
+ ...,
+ [[
+ additionalSpectrumEmission-v1760 AdditionalSpectrumEmission-v1760 OPTIONAL -- Need S
+ ]],
+ [[
+ additionalSpectrumEmissionAerial-r18 AdditionalSpectrumEmission-r18 OPTIONAL -- Need S
+ ]]
}
-- TAG-FREQUENCYINFOUL-STOP
-- TAG-FREQUENCYINFOUL-SIB-START
-FrequencyInfoUL-SIB ::= SEQUENCE {
+FrequencyInfoUL-SIB ::= SEQUENCE {
frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Cond FDD-OrSUL
absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL
scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
p-Max P-Max OPTIONAL, -- Need S
frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-TDD-OrSUL-Optional
- ...
+ ...,
+ [[
+ frequencyBandListAerial-r18 MultiFrequencyBandListNR-Aerial-SIB-r18 OPTIONAL -- Need S
+ ]]
+}
+
+FrequencyInfoUL-SIB-v1760 ::= SEQUENCE {
+ frequencyBandList-v1760 MultiFrequencyBandListNR-SIB-v1760
}
-- TAG-FREQUENCYINFOUL-SIB-STOP
@@ -5586,6 +7106,11 @@ HighSpeedConfigFR2-r17 ::= SEQUENCE {
Hysteresis ::= INTEGER (0..30)
-- TAG-HYSTERESIS-STOP
+-- TAG-HYSTERESISALTITUDE-START
+
+HysteresisAltitude-r18 ::= INTEGER (0..64)
+
+-- TAG-HYSTERESISALTITUDE-STOP
-- TAG-HYSTERESISLOCATION-START
HysteresisLocation-r17 ::= INTEGER (0..32768)
@@ -5728,6 +7253,156 @@ LTE-NeighCellsCRS-AssistInfo-r17 ::= SEQUENCE {
}
-- TAG-LTE-NEIGHCELLSCRS-ASSISTINFOLIST-STOP
+-- TAG-LTM-CANDIDATEID-START
+
+LTM-CandidateId-r18 ::= INTEGER (1..maxNrofLTM-Configs-r18)
+
+-- TAG-LTM-CANDIDATEID-STOP
+-- TAG-LTM-CANDIDATE-START
+
+LTM-Candidate-r18 ::= SEQUENCE {
+ ltm-CandidateId-r18 LTM-CandidateId-r18,
+ ltm-CandidatePCI-r18 PhysCellId OPTIONAL, -- Need M
+ ltm-SSB-Config-r18 LTM-SSB-Config-r18 OPTIONAL, -- Need M
+ ltm-CandidateConfig-r18 OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL, -- Need M
+ ltm-ConfigComplete-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ ltm-EarlyUL-SyncConfig-r18 OCTET STRING (CONTAINING EarlyUL-SyncConfig-r18) OPTIONAL, -- Need R
+ ltm-EarlyUL-SyncConfigSUL-r18 OCTET STRING (CONTAINING EarlyUL-SyncConfig-r18) OPTIONAL, -- Need R
+ ltm-TCI-Info-r18 LTM-TCI-Info-r18 OPTIONAL, -- Need M
+ ltm-NoResetID-r18 INTEGER (1..maxNrofLTM-Configs-plus1-r18) OPTIONAL, -- Need M
+ ltm-UE-MeasuredTA-ID-r18 INTEGER (1..maxNrofLTM-Configs-plus1-r18) OPTIONAL, -- Need M
+ ...
+}
+
+LTM-SSB-Config-r18 ::= SEQUENCE {
+ ssb-Frequency-r18 ARFCN-ValueNR,
+ subcarrierSpacing-r18 SubcarrierSpacing,
+ ssb-Periodicity-r18 ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1} OPTIONAL, -- Need R
+ ssb-PositionsInBurst-r18 CHOICE {
+ shortBitmap BIT STRING (SIZE (4)),
+ mediumBitmap BIT STRING (SIZE (8)),
+ longBitmap BIT STRING (SIZE (64))
+ } OPTIONAL, -- Need R
+ ss-PBCH-BlockPower-r18 INTEGER (-60..50) OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-LTM-CANDIDATE-STOP
+-- TAG-LTM-CONFIG-START
+
+-- WS modification: define a dedicated type
+LTM-CSI-ResourceConfigToAddModList-r18 ::= SEQUENCE (SIZE (1..maxNrofLTM-CSI-ResourceConfigurations-r18)) OF LTM-CSI-ResourceConfig-r18
+LTM-CSI-ResourceConfigToReleaseList-r18 ::= SEQUENCE (SIZE (1..maxNrofLTM-CSI-ResourceConfigurations-r18)) OF LTM-CSI-ResourceConfigId-r18
+
+LTM-Config-r18 ::= SEQUENCE {
+ ltm-ReferenceConfiguration-r18 CHOICE {release NULL, setup ReferenceConfiguration-r18} OPTIONAL, -- Need M
+ ltm-CandidateToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofLTM-Configs-r18)) OF LTM-CandidateId-r18 OPTIONAL, -- Need N
+ ltm-CandidateToAddModList-r18 SEQUENCE (SIZE (1..maxNrofLTM-Configs-r18)) OF LTM-Candidate-r18 OPTIONAL, -- Need N
+ ltm-ServingCellNoResetID-r18 INTEGER (1..maxNrofLTM-Configs-plus1-r18) OPTIONAL, -- Need N
+-- WS modification: define a dedicated type
+-- ltm-CSI-ResourceConfigToAddModList-r18 SEQUENCE (SIZE (1..maxNrofLTM-CSI-ResourceConfigurations-r18)) OF LTM-CSI-ResourceConfig-r18
+-- OPTIONAL, Need N
+-- ltm-CSI-ResourceConfigToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofLTM-CSI-ResourceConfigurations-r18)) OF LTM-CSI-ResourceConfigId-r18
+-- OPTIONAL, Need N
+ ltm-CSI-ResourceConfigToAddModList-r18 LTM-CSI-ResourceConfigToAddModList-r18 OPTIONAL, -- Need N
+ ltm-CSI-ResourceConfigToReleaseList-r18 LTM-CSI-ResourceConfigToReleaseList-r18 OPTIONAL, -- Need N
+ attemptLTM-Switch-r18 ENUMERATED {true} OPTIONAL, -- Cond LTM-MCG
+ ltm-ServingCellUE-MeasuredTA-ID-r18 INTEGER (1..maxNrofLTM-Configs-plus1-r18) OPTIONAL, -- Need N
+ ...
+}
+
+-- TAG-LTM-CONFIG-STOP
+-- TAG-LTM-CSI-REPORTCONFIG-START
+
+LTM-CSI-ReportConfig-r18 ::= SEQUENCE {
+ ltm-CSI-ReportConfigId-r18 LTM-CSI-ReportConfigId-r18,
+ ltm-ResourcesForChannelMeasurement-r18 LTM-CSI-ResourceConfigId-r18,
+ ltm-ReportConfigType-r18 CHOICE {
+ periodic-r18 SEQUENCE {
+ reportSlotConfig-r18 CSI-ReportPeriodicityAndOffset,
+ pucch-CSI-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
+ },
+ semiPersistentOnPUCCH-r18 SEQUENCE {
+ reportSlotConfig-r18 CSI-ReportPeriodicityAndOffset,
+ pucch-CSI-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
+ },
+ semiPersistentOnPUSCH-r18 SEQUENCE {
+ reportSlotConfig-r18 CSI-ReportPeriodicityAndOffset,
+ reportSlotOffsetList-r18 SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER (0..128),
+ reportSlotOffsetListDCI-0-2-r18 SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER (0..128),
+ reportSlotOffsetListDCI-0-1-r18 SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER (0..128),
+ p0alpha P0-PUSCH-AlphaSetId
+ },
+ aperiodic-r18 SEQUENCE {
+ reportSlotOffsetList-r18 SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER (0..128),
+ reportSlotOffsetListDCI-0-2-r18 SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER (0..128),
+ reportSlotOffsetListDCI-0-1-r18 SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER (0..128)
+ },
+ ...
+ },
+ ltm-ReportContent-r18 LTM-ReportContent-r18,
+ ...
+}
+
+LTM-ReportContent-r18 ::= SEQUENCE {
+ nrOfReportedCells-r18 ENUMERATED {n1,n2,n3,n4},
+ nrOfReportedRS-PerCell-r18 ENUMERATED {n1,n2,n3,n4},
+ spCellInclusion-r18 ENUMERATED {true} OPTIONAL -- Need R
+}
+
+-- TAG-LTM-CSI-REPORTCONFIG-STOP
+-- TAG-LTM-CSI-REPORTCONFIGID-START
+
+LTM-CSI-ReportConfigId-r18 ::= INTEGER (0..maxNrofLTM-CSI-ReportConfigurations-1-r18)
+
+-- TAG-LTM-CSI-REPORTCONFIGID-STOP
+-- TAG-LTM-CSI-RESOURCECONFIG-START
+
+LTM-CSI-ResourceConfig-r18 ::= SEQUENCE {
+ ltm-CSI-ResourceConfigId-r18 LTM-CSI-ResourceConfigId-r18,
+ ltm-CSI-SSB-ResourceSet-r18 LTM-CSI-SSB-ResourceSet-r18,
+ ...
+}
+
+LTM-CSI-SSB-ResourceSet-r18 ::= SEQUENCE {
+ ltm-CSI-SSB-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofLTM-CSI-SSB-ResourcesPerSet-r18)) OF SSB-Index,
+ ltm-CandidateIdList-r18 SEQUENCE (SIZE (1..maxNrofLTM-CSI-SSB-ResourcesPerSet-r18)) OF LTM-CandidateId-r18,
+ ...
+}
+
+-- TAG-LTM-CSI-RESOURCECONFIG-STOP
+-- TAG-LTM-CSI-RESOURCECONFIGID-START
+
+LTM-CSI-ResourceConfigId-r18 ::= INTEGER (0..maxNrofLTM-CSI-ResourceConfigurations-1-r18)
+
+-- TAG-LTM-CSI-RESOURCECONFIGID-STOP
+-- TAG-LTM-TCI-INFO-START
+
+LTM-TCI-Info-r18 ::= SEQUENCE {
+ ltm-DL-OrJointTCI-StateToAddModList-r18 SEQUENCE (SIZE (1..maxNrofCandidateTCI-State-r18)) OF CandidateTCI-State-r18
+ OPTIONAL, -- Need N
+ ltm-DL-OrJointTCI-StateToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofCandidateTCI-State-r18)) OF TCI-StateId
+ OPTIONAL, -- Need N
+ ltm-UL-TCI-StateToAddModList-r18 SEQUENCE (SIZE (1..maxNrofCandidateUL-TCI-r18)) OF CandidateTCI-UL-State-r18
+ OPTIONAL, -- Need N
+ ltm-UL-TCI-StateToReleaseList-r18 SEQUENCE (SIZE (1.. maxNrofCandidateUL-TCI-r18)) OF TCI-UL-StateId-r17
+ OPTIONAL, -- Need N
+ ltm-NZP-CSI-RS-ResourceToAddModList-r18 SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-Resource
+ OPTIONAL, -- Need N
+ ltm-NZP-CSI-RS-ResourceToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-ResourceId
+ OPTIONAL, -- Need N
+ ltm-NZP-CSI-RS-ResourceSetToAddModList-r18 SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSet
+ OPTIONAL, -- Need N
+ ltm-NZP-CSI-RS-ResourceSetToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSetId
+ OPTIONAL, -- Need N
+ pathlossReferenceRS-ToAddModList-r18 SEQUENCE (SIZE (1..maxNrofPathlossReferenceRSs-r17)) OF PathlossReferenceRS-r17
+ OPTIONAL, -- Need N
+ pathlossReferenceRS-ToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofPathlossReferenceRSs-r17)) OF PathlossReferenceRS-Id-r17
+ OPTIONAL, -- Need N
+ unifiedTCI-StateType-r18 ENUMERATED {separate, joint} OPTIONAL, -- Need R
+ ...
+}
+-- TAG-LTM-TCI-INFO-STOP
-- TAG-MAC-CELLGROUPCONFIG-START
MAC-CellGroupConfig ::= SEQUENCE {
@@ -5773,6 +7448,13 @@ MAC-CellGroupConfig ::= SEQUENCE {
]],
[[
posMG-Request-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ drx-ConfigExt2-v1800 CHOICE {release NULL, setup DRX-ConfigExt2-v1800 } OPTIONAL, -- Need M
+ additionalBS-TableAllowed-r18 BIT STRING (SIZE (maxNrofLCGs-r18)) OPTIONAL, -- Need R
+ dsr-ConfigToAddModList-r18 SEQUENCE (SIZE (1..maxNrofLCGs-r18)) OF LCG-DSR-Config-r18 OPTIONAL, -- Need N
+ dsr-ConfigToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofLCGs-r18)) OF LCG-Id-r18 OPTIONAL, -- Need N
+ tar-Config-r18 CHOICE {release NULL, setup TAR-Config-r18 } OPTIONAL -- Need M
]]
}
@@ -5792,6 +7474,14 @@ MBS-RNTI-SpecificConfig-r17 ::= SEQUENCE {
MBS-RNTI-SpecificConfigId-r17 ::= INTEGER (0..maxG-RNTI-1-r17)
+LCG-DSR-Config-r18 ::= SEQUENCE {
+ lcg-Id-r18 LCG-Id-r18,
+ remainingTimeThreshold-r18 INTEGER (1..64),
+ ...
+}
+
+LCG-Id-r18 ::= INTEGER (0..maxLCG-ID)
+
-- TAG-MAC-CELLGROUPCONFIG-STOP
-- TAG-MEASCONFIG-START
@@ -5812,6 +7502,9 @@ MeasConfig ::= SEQUENCE {
...,
[[
interFrequencyConfig-NoGap-r16 ENUMERATED {true} OPTIONAL -- Need R
+ ]],
+ [[
+ effectiveMeasWindowConfig-r18 CHOICE {release NULL, setup MeasWindowConfig-r18} OPTIONAL -- Need M
]]
}
@@ -5918,7 +7611,14 @@ MeasId ::= INTEGER (1..maxNrofMeasId)
MeasIdleConfigSIB-r16 ::= SEQUENCE {
measIdleCarrierListNR-r16 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierNR-r16 OPTIONAL, -- Need S
measIdleCarrierListEUTRA-r16 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierEUTRA-r16 OPTIONAL, -- Need S
- ...
+ ...,
+ [[
+ measIdleCarrierListNR-LessThan5MHz-r18 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierNR-r16 OPTIONAL, -- Cond LessThan5MHz
+ measReselectionCarrierListNR-r18 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasReselectionCarrierNR-r18 OPTIONAL, -- Need S
+ measReselectionCarrierListNR-LessThan5MHz-r18 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasReselectionCarrierNR-r18 OPTIONAL, -- Cond LessThan5MHz
+ measIdleValidityDuration-r18 MeasurementValidityDuration-r18 OPTIONAL, -- Need S
+ measReselectionValidityDuration-r18 MeasurementValidityDuration-r18 OPTIONAL -- Need S
+ ]]
}
MeasIdleConfigDedicated-r16 ::= SEQUENCE {
@@ -5926,7 +7626,12 @@ MeasIdleConfigDedicated-r16 ::= SEQUENCE {
measIdleCarrierListEUTRA-r16 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierEUTRA-r16 OPTIONAL, -- Need N
measIdleDuration-r16 ENUMERATED{sec10, sec30, sec60, sec120, sec180, sec240, sec300, spare},
validityAreaList-r16 ValidityAreaList-r16 OPTIONAL, -- Need N
- ...
+ ...,
+ [[
+ measReselectionCarrierListNR-r18 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasReselectionCarrierNR-r18 OPTIONAL, -- Need S
+ measIdleValidityDuration-r18 MeasurementValidityDuration-r18 OPTIONAL, -- Need S
+ measReselectionValidityDuration-r18 MeasurementValidityDuration-r18 OPTIONAL -- Need S
+ ]]
}
ValidityAreaList-r16 ::= SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF ValidityArea-r16
@@ -5972,6 +7677,11 @@ MeasIdleCarrierEUTRA-r16 ::= SEQUENCE {
...
}
+MeasReselectionCarrierNR-r18 ::= SEQUENCE {
+ carrierFreq-r18 ARFCN-ValueNR,
+ ...
+}
+
CellListNR-r16 ::= SEQUENCE (SIZE (1..maxCellMeasIdle-r16)) OF PCI-Range
CellListEUTRA-r16 ::= SEQUENCE (SIZE (1..maxCellMeasIdle-r16)) OF EUTRA-PhysCellIdRange
@@ -6054,13 +7764,16 @@ MeasObjectEUTRA::= SEQUENCE {
cellsToRemoveListEUTRAN EUTRA-CellIndexList OPTIONAL, -- Need N
cellsToAddModListEUTRAN SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-Cell OPTIONAL, -- Need N
excludedCellsToRemoveListEUTRAN EUTRA-CellIndexList OPTIONAL, -- Need N
- excludedCellsToAddModListEUTRAN SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-ExcludedCell OPTIONAL, -- Need N
+ excludedCellsToAddModListEUTRAN SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-ExcludedCell OPTIONAL, -- Need N
eutra-PresenceAntennaPort1 EUTRA-PresenceAntennaPort1,
eutra-Q-OffsetRange EUTRA-Q-OffsetRange OPTIONAL, -- Need R
widebandRSRQ-Meas BOOLEAN,
...,
[[
associatedMeasGap-r17 MeasGapId-r17 OPTIONAL -- Need R
+ ]],
+ [[
+ measSequence-r18 MeasSequence-r18 OPTIONAL -- Need R
]]
}
@@ -6121,15 +7834,19 @@ MeasObjectNR ::= SEQUENCE {
[[
associatedMeasGapSSB-r17 MeasGapId-r17 OPTIONAL, -- Need R
associatedMeasGapCSIRS-r17 MeasGapId-r17 OPTIONAL, -- Need R
- smtc4list-r17 SSB-MTC4List-r17 OPTIONAL, -- Need R
+ smtc4list-r17 SSB-MTC4List-r17 OPTIONAL, -- Need R
measCyclePSCell-r17 ENUMERATED {ms160, ms256, ms320, ms512, ms640, ms1024, ms1280, spare1}
OPTIONAL, -- Cond SCG
cellsToAddModListExt-v1710 CellsToAddModListExt-v1710 OPTIONAL -- Need N
- ]],
- [[
+ ]],
+ [[
associatedMeasGapSSB2-v1720 MeasGapId-r17 OPTIONAL, -- Cond AssociatedGapSSB
associatedMeasGapCSIRS2-v1720 MeasGapId-r17 OPTIONAL -- Cond AssociatedGapCSIRS
- ]]
+ ]],
+ [[
+ measSequence-r18 MeasSequence-r18 OPTIONAL, -- Need R
+ cellsToAddModListExt-v1800 CellsToAddModListExt-v1800 OPTIONAL -- Need R
+ ]]
}
SSB-MTC3List-r16::= SEQUENCE (SIZE(1..4)) OF SSB-MTC3-r16
@@ -6161,6 +7878,9 @@ SSB-ConfigMobility::= SEQUENCE {
[[
cca-CellsToAddModList-r17 PCI-List OPTIONAL, -- Need N
cca-CellsToRemoveList-r17 PCI-List OPTIONAL -- Need N
+ ]],
+ [[
+ ssb-ToMeasureAltitudeBasedList-r18 CHOICE {release NULL, setup SSB-ToMeasureAltitudeBasedList-r18 } OPTIONAL -- Need M
]]
}
@@ -6184,6 +7904,8 @@ CellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF Cell
CellsToAddModListExt-v1710 ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddModExt-v1710
+CellsToAddModListExt-v1800 ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddModExt-v1800
+
CellsToAddMod ::= SEQUENCE {
physCellId PhysCellId,
cellIndividualOffset Q-OffsetRangeList
@@ -6194,6 +7916,10 @@ CellsToAddModExt-v1710 ::= SEQUENCE {
ntn-PolarizationUL-r17 ENUMERATED {rhcp,lhcp,linear} OPTIONAL -- Need R
}
+CellsToAddModExt-v1800 ::= SEQUENCE {
+ ntn-NeighbourCellInfo-r18 NTN-NeighbourCellInfo-r18 OPTIONAL -- Cond NeighbourCell
+}
+
RMTC-Config-r16 ::= SEQUENCE {
rmtc-Periodicity-r16 ENUMERATED {ms40, ms80, ms160, ms320, ms640},
rmtc-SubframeOffset-r16 INTEGER(0..639) OPTIONAL, -- Need M
@@ -6229,6 +7955,23 @@ SSB-PositionQCL-Cell-r17 ::= SEQUENCE {
ssb-PositionQCL-r17 SSB-PositionQCL-Relation-r17
}
+SSB-ToMeasureAltitudeBasedList-r18 ::= SEQUENCE (SIZE (1..maxNrofAltitudeRanges-r18)) OF SSB-ToMeasureAltitudeBased-r18
+
+SSB-ToMeasureAltitudeBased-r18 ::= SEQUENCE {
+ altitudeRange-r18 SEQUENCE {
+ altitudeMin-r18 Altitude-r18 OPTIONAL, -- Need S
+ altitudeMax-r18 Altitude-r18 OPTIONAL, -- Need S
+ altitudeHyst-r18 HysteresisAltitude-r18 OPTIONAL -- Need R
+ },
+ ssb-ToMeasure-r18 SSB-ToMeasure OPTIONAL -- Need S
+}
+
+NTN-NeighbourCellInfo-r18 ::= SEQUENCE {
+ epochTime-r18 EpochTime-r17,
+ ephemerisInfo-r18 EphemerisInfo-r17,
+ referenceLocation-r18 ReferenceLocation-r17 OPTIONAL -- Need R
+}
+
-- TAG-MEASOBJECTNR-STOP
-- TAG-MEASOBJECTNR-SL-START
@@ -6237,6 +7980,12 @@ MeasObjectNR-SL-r16 ::= SEQUENCE {
tx-PoolMeasToAddModList-r16 Tx-PoolMeasList-r16 OPTIONAL -- Need N
}
+MeasObjectNR-SL-r18 ::= SEQUENCE {
+ sl-Frequency-r18 INTEGER (1..maxNrofFreqSL-r16),
+ tx-PoolMeasToRemoveList-r18 Tx-PoolMeasList-r16 OPTIONAL, -- Need N
+ tx-PoolMeasToAddModList-r18 Tx-PoolMeasList-r16 OPTIONAL -- Need N
+}
+
Tx-PoolMeasList-r16 ::= SEQUENCE (SIZE (1..maxNrofSL-PoolToMeasureNR-r16)) OF SL-ResourcePoolID-r16
-- TAG-MEASOBJECTNR-SL-STOP
@@ -6267,7 +8016,8 @@ MeasObjectToAddMod ::= SEQUENCE {
measObjectNR-SL-r16 MeasObjectNR-SL-r16,
measObjectCLI-r16 MeasObjectCLI-r16,
measObjectRxTxDiff-r17 MeasObjectRxTxDiff-r17,
- measObjectRelay-r17 SL-MeasObject-r16
+ measObjectRelay-r17 SL-MeasObject-r16,
+ measObjectNR-SL-r18 MeasObjectNR-SL-r18
}
}
@@ -6353,6 +8103,10 @@ MeasResults ::= SEQUENCE {
-- Contains PC5 SL-MeasResultRelay-r17
ul-PDCP-ExcessDelayResultList-r17 UL-PDCP-ExcessDelayResultList-r17 OPTIONAL,
coarseLocationInfo-r17 OCTET STRING OPTIONAL
+ ]],
+ [[
+ altitudeUE-r18 Altitude-r18 OPTIONAL,
+ cellsMetReportOnLeaveList-r18 SEQUENCE (SIZE (1..maxCellReport)) OF PhysCellId OPTIONAL
]]
}
@@ -6382,14 +8136,17 @@ MeasResultNR ::= SEQUENCE {
...,
[[
cgi-Info CGI-InfoNR OPTIONAL
- ]] ,
+ ]],
[[
choCandidate-r17 ENUMERATED {true} OPTIONAL,
choConfig-r17 SEQUENCE (SIZE (1..2)) OF CondTriggerConfig-r16 OPTIONAL,
triggeredEvent-r17 SEQUENCE {
timeBetweenEvents-r17 TimeBetweenEvent-r17 OPTIONAL,
- firstTriggeredEvent ENUMERATED {condFirstEvent, condSecondEvent} OPTIONAL
+ firstTriggeredEvent-r17 ENUMERATED {condFirstEvent, condSecondEvent} OPTIONAL
} OPTIONAL
+ ]],
+ [[
+ firstEntering-r18 ENUMERATED {true} OPTIONAL
]]
}
@@ -6556,7 +8313,11 @@ MeasResultsPerCellIdleNR-r16 ::= SEQUENCE {
rsrq-Result-r16 RSRQ-Range OPTIONAL,
resultsSSB-Indexes-r16 ResultsPerSSB-IndexList-r16 OPTIONAL
},
- ...
+ ...,
+ [[
+ validityStatus-r18 MeasurementValidityDuration-r18 OPTIONAL
+ ]]
+
}
ResultsPerSSB-IndexList-r16 ::= SEQUENCE (SIZE (1.. maxNrofIndexesToReport)) OF ResultsPerSSB-IndexIdle-r16
@@ -6596,7 +8357,10 @@ MeasResultList2NR ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2N
MeasResultsSL-r16 ::= SEQUENCE {
measResultsListSL-r16 CHOICE {
measResultNR-SL-r16 MeasResultNR-SL-r16,
- ...
+ ...,
+ [[
+ measResultNR-SL-r18 MeasResultNR-SL-r18
+ ]]
},
...
}
@@ -6612,7 +8376,23 @@ MeasResultCBR-NR-r16 ::= SEQUENCE {
...
}
+MeasResultNR-SL-r18 ::= SEQUENCE {
+ measResultListCBR-DedicatedSL-PRS-r18 SEQUENCE (SIZE (1..maxNrofDedicatedSL-PRS-PoolToMeas-r18)) OF MeasResultCBR-DedicatedSL-PRS-r18,
+ ...
+}
+
+MeasResultCBR-DedicatedSL-PRS-r18 ::= SEQUENCE {
+ sl-PRS-ResourcePoolID-r18 SL-PRS-ResourcePoolID-r18,
+ sL-CBR-ResultsDedicatedSL-PRS-RP-r18 SL-CBR-r16,
+ ...
+}
+
-- TAG-MEASRESULTSSL-STOP
+-- TAG-MEASSEQUENCE-START
+
+MeasSequence-r18 ::= INTEGER (1..maxMeasSequence-r18)
+
+-- TAG-MEASSEQUENCE-STOP
-- TAG-MEASTRIGGERQUANTITYEUTRA-START
MeasTriggerQuantityEUTRA::= CHOICE {
@@ -6628,6 +8408,24 @@ RSRQ-RangeEUTRA ::= INTEGER (0..34)
SINR-RangeEUTRA ::= INTEGER (0..127)
-- TAG-MEASTRIGGERQUANTITYEUTRA-STOP
+-- TAG-MEASUREMENTVALIDITYDURATION-START
+
+MeasurementValidityDuration-r18 ::= ENUMERATED {s5, s10, s20, s50, s100, spare3, spare2, spare1}
+
+-- TAG-MEASUREMENTVALIDITYDURATION-STOP
+-- TAG-MEASWINDOWCONFIG-START
+
+MeasWindowConfig-r18 ::= SEQUENCE {
+ windowOffsetPeriodicity CHOICE {
+ periodicityMs40 INTEGER (0..39),
+ periodicityMs80 INTEGER (0..79),
+ ...
+ },
+ windowDuration ENUMERATED {ms2, ms5, ms5dot5, spare1},
+ ...
+}
+
+-- TAG-MEASWINDOWCONFIG-STOP
-- TAG-MOBILITYSTATEPARAMETERS-START
MobilityStateParameters ::= SEQUENCE{
@@ -6711,19 +8509,40 @@ NR-MultiBandInfo ::= SEQUENCE {
nr-NS-PmaxList NR-NS-PmaxList OPTIONAL -- Need S
}
+MultiFrequencyBandListNR-SIB-v1760 ::= SEQUENCE (SIZE (1.. maxNrofMultiBands)) OF NR-MultiBandInfo-v1760
+
+NR-MultiBandInfo-v1760 ::= SEQUENCE {
+ nr-NS-PmaxList-v1760 NR-NS-PmaxList-v1760 OPTIONAL -- Need S
+}
+
+MultiFrequencyBandListNR-Aerial-SIB-r18 ::= SEQUENCE (SIZE (1.. maxNrofMultiBands)) OF NR-MultiBandInfoAerial-r18
+
+NR-MultiBandInfoAerial-r18 ::= SEQUENCE {
+ freqBandIndicatorNR-Aerial-r18 FreqBandIndicatorNR OPTIONAL, -- Cond OptULNotSIB2
+ nr-NS-PmaxListAerial-r18 NR-NS-PmaxListAerial-r18 OPTIONAL -- Need S
+}
+
-- TAG-MULTIFREQUENCYBANDLISTNR-SIB-STOP
-- TAG-MUSIM-GAPCONFIG-START
MUSIM-GapConfig-r17 ::= SEQUENCE {
- musim-GapToReleaseList-r17 SEQUENCE (SIZE (1..3)) OF MUSIM-GapId-r17 OPTIONAL, -- Need N
- musim-GapToAddModList-r17 SEQUENCE (SIZE (1..3)) OF MUSIM-Gap-r17 OPTIONAL, -- Need N
- musim-AperiodicGap-r17 MUSIM-GapInfo-r17 OPTIONAL, -- Need N
- ...
+ musim-GapToReleaseList-r17 SEQUENCE (SIZE (1..3)) OF MUSIM-GapId-r17 OPTIONAL, -- Need N
+ musim-GapToAddModList-r17 SEQUENCE (SIZE (1..3)) OF MUSIM-Gap-r17 OPTIONAL, -- Need N
+ musim-AperiodicGap-r17 MUSIM-GapInfo-r17 OPTIONAL, -- Need N
+ ...,
+ [[
+ musim-GapToAddModListExt-v1820 SEQUENCE (SIZE (1..3)) OF MUSIM-GapExt-v1820 OPTIONAL, -- Need N
+ musim-GapKeep-r18 ENUMERATED {true} OPTIONAL -- Need N
+ ]]
}
-MUSIM-Gap-r17 ::= SEQUENCE {
- musim-GapId-r17 MUSIM-GapId-r17,
- musim-GapInfo-r17 MUSIM-GapInfo-r17
+MUSIM-Gap-r17 ::= SEQUENCE {
+ musim-GapId-r17 MUSIM-GapId-r17,
+ musim-GapInfo-r17 MUSIM-GapInfo-r17
+}
+
+MUSIM-GapExt-v1820 ::= SEQUENCE {
+ gapPriority-r18 GapPriority-r17
}
-- TAG-MUSIM-GAPCONFIG-STOP
@@ -6757,6 +8576,206 @@ MUSIM-Starting-SFN-AndSubframe-r17 ::= SEQUENCE {
}
-- TAG-MUSIM-GAPINFO-STOP
+-- TAG-N3C-INDIRECTPATHCONFIGRELAY-START
+
+N3C-IndirectPathConfigRelay-r18 ::= SEQUENCE {
+ n3c-MappingToReleaseList-r18 SEQUENCE (SIZE (1..maxLC-ID)) OF SL-RemoteUE-RB-Identity-r17 OPTIONAL, -- Need N
+ n3c-MappingToAddModList-r18 SEQUENCE (SIZE (1..maxLC-ID)) OF N3C-MappingConfig-r18 OPTIONAL, -- Need N
+ ...
+}
+
+N3C-MappingConfig-r18 ::= SEQUENCE {
+ n3c-RemoteUE-RB-Identity-r18 SL-RemoteUE-RB-Identity-r17,
+ n3c-RLC-ChannelUu-r18 Uu-RelayRLC-ChannelID-r17,
+ ...
+}
+
+-- TAG-N3C-INDIRECTPATHCONFIGRELAY-STOP
+-- TAG-N3C-INDIRECTPATHADDCHANGE-START
+
+N3C-IndirectPathAddChange-r18 ::= SEQUENCE {
+ n3c-RelayIdentification-r18 N3C-RelayUE-Info-r18,
+ ...
+}
+
+-- TAG-N3C-INDIRECTPATHADDCHANGE-STOP
+-- TAG-N3CRELAYUEINFO-START
+
+N3C-RelayUE-Info-r18 ::= SEQUENCE {
+ n3c-CellGlobalId-r18 SEQUENCE {
+ n3c-PLMN-Id-r18 PLMN-Identity,
+ n3c-CellIdentity-r18 CellIdentity
+ },
+ n3c-C-RNTI-r18 RNTI-Value
+}
+
+-- TAG-N3CRELAYUEINFO-STOP
+-- TAG-NCR-APERIODICFWDCONFIG-START
+
+NCR-AperiodicFwdConfig-r18 ::= SEQUENCE {
+ aperiodicFwdTimeRsrcToAddModList-r18 SEQUENCE (SIZE (1..maxNrofAperiodicFwdTimeResource-r18)) OF NCR-AperiodicFwdTimeResource-r18
+ OPTIONAL, -- Need N
+ aperiodicFwdTimeRsrcToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofAperiodicFwdTimeResource-r18)) OF NCR-AperiodicFwdTimeResourceId-r18
+ OPTIONAL, -- Need N
+ referenceSCS-r18 SubcarrierSpacing OPTIONAL, -- Need M
+ aperiodicBeamFieldWidth-r18 INTEGER (1..6) OPTIONAL, -- Need M
+ numberOfFields-r18 INTEGER (1..32) OPTIONAL, -- Need M
+ ...
+}
+
+NCR-AperiodicFwdTimeResource-r18 ::= SEQUENCE {
+ aperiodicFwdTimeRsrcId-r18 NCR-AperiodicFwdTimeResourceId-r18,
+ slotOffsetAperiodic-r18 INTEGER (0..14),
+ symbolOffset-r18 INTEGER (0..maxNrofSymbols-1),
+ durationInSymbols-r18 INTEGER (1..28),
+ ...
+}
+
+NCR-AperiodicFwdTimeResourceId-r18 ::= INTEGER (0..maxNrofAperiodicFwdTimeResource-1-r18)
+
+-- TAG-NCR-APERIODICFWDCONFIG-STOP
+-- TAG-NCR-FWDCONFIG-START
+
+NCR-FwdConfig-r18 ::= SEQUENCE {
+ periodicFwdRsrcSetToAddModList-r18 SEQUENCE (SIZE (1..maxNrofPeriodicFwdResourceSet-r18)) OF NCR-PeriodicFwdResourceSet-r18
+ OPTIONAL, -- Need N
+ periodicFwdRsrcSetToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofPeriodicFwdResourceSet-r18)) OF NCR-PeriodicFwdResourceSetId-r18
+ OPTIONAL, -- Need N
+ aperiodicFwdConfig-r18 CHOICE {release NULL, setup NCR-AperiodicFwdConfig-r18} OPTIONAL, -- Need M
+ semiPersistentFwdRsrcSetToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSemiPersistentFwdResourceSet-r18)) OF
+ NCR-SemiPersistentFwdResourceSet-r18 OPTIONAL, -- Need N
+ semiPersistentFwdRsrcSetToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofSemiPersistentFwdResourceSet-r18)) OF
+ NCR-SemiPersistentFwdResourceSetId-r18 OPTIONAL, -- Need N
+ ...
+}
+
+-- TAG-NCR-FWDCONFIG-STOP
+-- TAG-NCR-PERIODICITYANDOFFSET-START
+
+NCR-PeriodicityAndOffset-r18 ::= CHOICE {
+ slot NCR-SlotPeriodicityAndSlotOffset-r18,
+ ms NCR-MsPeriodicityAndSlotOffset-r18
+}
+
+NCR-SlotPeriodicityAndSlotOffset-r18 ::= CHOICE {
+ sl1 NULL,
+ sl2 INTEGER(0..1),
+ sl4 INTEGER(0..3),
+ sl5 INTEGER(0..4),
+ sl8 INTEGER(0..7),
+ sl10 INTEGER(0..9),
+ sl16 INTEGER(0..15),
+ sl20 INTEGER(0..19),
+ sl32 INTEGER(0..31),
+ sl40 INTEGER(0..39),
+ sl64 INTEGER(0..63),
+ sl80 INTEGER(0..79),
+ sl128 INTEGER(0..127),
+ sl160 INTEGER(0..159),
+ sl256 INTEGER(0..255),
+ sl320 INTEGER(0..319),
+ sl512 INTEGER(0..511),
+ sl640 INTEGER(0..639),
+ sl1024 INTEGER(0..1023),
+ sl1280 INTEGER(0..1279),
+ sl2560 INTEGER(0..2559),
+ sl5120 INTEGER(0..5119),
+ sl10240 INTEGER(0..10239),
+ ...
+}
+
+NCR-MsPeriodicityAndSlotOffset-r18 ::= CHOICE {
+ ms1 INTEGER(0..15),
+ ms2 INTEGER(0..31),
+ ms4 INTEGER(0..63),
+ ms5 INTEGER(0..79),
+ ms8 INTEGER(0..127),
+ ms10 INTEGER(0..159),
+ ms16 INTEGER(0..255),
+ ms20 INTEGER(0..319),
+ ms32 INTEGER(0..511),
+ ms40 INTEGER(0..639),
+ ms64 INTEGER(0..1023),
+ ms80 INTEGER(0..1279),
+ ms128 INTEGER(0..2047),
+ ms160 INTEGER(0..2559),
+ ms256 INTEGER(0..4095),
+ ms320 INTEGER(0..5119),
+ ms512 INTEGER(0..8191),
+ ms640 INTEGER(0..10239),
+ ms1024 INTEGER(0..16383),
+ ms1280 INTEGER(0..20479),
+ ms2560 INTEGER(0..40959),
+ ms5120 INTEGER(0..81919),
+ ms10240 INTEGER(0..163839),
+ ...
+}
+
+-- TAG-NCR-PERIODICITYANDOFFSET-STOP
+-- TAG-NCR-PERIODICFWDRESOURCESET-START
+
+NCR-PeriodicFwdResourceSet-r18 ::= SEQUENCE {
+ periodicFwdRsrcSetId-r18 NCR-PeriodicFwdResourceSetId-r18,
+ periodicFwdRsrcToAddModList-r18 SEQUENCE (SIZE (1..maxNrofPeriodicFwdResource-r18)) OF NCR-PeriodicFwdResource-r18
+ OPTIONAL, -- Need N
+ periodicFwdRsrcToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofPeriodicFwdResource-r18)) OF NCR-PeriodicFwdResourceId-r18
+ OPTIONAL, -- Need N
+ referenceSCS-r18 SubcarrierSpacing OPTIONAL, -- Need M
+ priorityFlag-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ ...
+}
+
+NCR-PeriodicFwdResource-r18 ::= SEQUENCE {
+ periodicFwdRsrcId-r18 NCR-PeriodicFwdResourceId-r18,
+ beamIndex-r18 INTEGER (0..63),
+ periodicTimeRsrc-r18 SEQUENCE {
+ periodicityAndOffset-r18 NCR-PeriodicityAndOffset-r18,
+ symbolOffset-r18 INTEGER (0..maxNrofSymbols-1),
+ durationInSymbols-r18 INTEGER (1..112)
+ },
+ ...
+}
+
+NCR-PeriodicFwdResourceId-r18 ::= INTEGER (0..maxNrofPeriodicFwdResource-1-r18)
+
+-- TAG-NCR-PERIODICFWDRESOURCESET-STOP
+-- TAG-NCR-PERIODICFWDRESOURCESETID-START
+
+NCR-PeriodicFwdResourceSetId-r18 ::= INTEGER (0..maxNrofPeriodicFwdResourceSet-1-r18)
+
+-- TAG-NCR-PERIODICFWDRESOURCESETID-STOP
+-- TAG-NCR-SEMIPERSISTENTFWDRESOURCESET-START
+
+NCR-SemiPersistentFwdResourceSet-r18 ::= SEQUENCE {
+ semiPersistentFwdRsrcSetId-r18 NCR-SemiPersistentFwdResourceSetId-r18,
+ semiPersistentFwdRsrcToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSemiPersistentFwdResource-r18)) OF
+ NCR-SemiPersistentFwdResource-r18 OPTIONAL, -- Need N
+ semiPersistentFwdRsrcToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofSemiPersistentFwdResource-r18)) OF
+ NCR-SemiPersistentFwdResourceId-r18 OPTIONAL, -- Need N
+ referenceSCS-r18 SubcarrierSpacing OPTIONAL, -- Need M
+ priorityFlag-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ ...
+}
+
+NCR-SemiPersistentFwdResource-r18 ::= SEQUENCE {
+ semiPersistentFwdRsrcId-r18 NCR-SemiPersistentFwdResourceId-r18,
+ beamIndex-r18 INTEGER (0..63),
+ semiPersistentTimeRsrc-r18 SEQUENCE {
+ periodicityAndOffset-r18 NCR-PeriodicityAndOffset-r18,
+ symbolOffset-r18 INTEGER (0..maxNrofSymbols-1),
+ durationInSymbols-r18 INTEGER (1..112)
+ },
+ ...
+}
+
+NCR-SemiPersistentFwdResourceId-r18 ::= INTEGER (0..maxNrofSemiPersistentFwdResource-1-r18)
+
+-- TAG-NCR-SEMIPERSISTENTFWDRESOURCESET-STOP
+-- TAG-NCR-SEMIPERSISTENTFWDRESOURCESETID-START
+
+NCR-SemiPersistentFwdResourceSetId-r18 ::= INTEGER (0..maxNrofSemiPersistentFwdResourceSet-1-r18)
+
+-- TAG-NCR-SEMIPERSISTENTFWDRESOURCESETID-STOP
-- TAG-NeedForGapsConfigNR-START
NeedForGapsConfigNR-r16 ::= SEQUENCE {
@@ -6834,6 +8853,23 @@ NeedForNCSG-NR-r17 ::= SEQUENCE {
}
-- TAG-NEEDFORGAPNCSG-INFONR-STOP
+-- TAG-NeedForInterruptionInfoNR-START
+
+NeedForInterruptionInfoNR-r18 ::= SEQUENCE {
+ intraFreq-needForInterruption-r18 NeedForInterruptionIntraFreqList-r18,
+ interFreq-needForInterruption-r18 NeedForInterruptionBandListNR-r18,
+ ...
+}
+
+NeedForInterruptionIntraFreqList-r18 ::= SEQUENCE (SIZE (1.. maxNrofServingCells)) OF NeedForInterruptionNR-r18
+
+NeedForInterruptionBandListNR-r18 ::= SEQUENCE (SIZE (1..maxBands)) OF NeedForInterruptionNR-r18
+
+NeedForInterruptionNR-r18 ::= SEQUENCE {
+ interruptionIndication-r18 ENUMERATED {no-gap-with-interruption, no-gap-no-interruption} OPTIONAL
+}
+
+-- TAG-NeedForInterruptionInfoNR-STOP
-- TAG-NEXTHOPCHAININGCOUNT-START
NextHopChainingCount ::= INTEGER (0..7)
@@ -6890,6 +8926,9 @@ NPN-IdentityInfo-r16 ::= SEQUENCE {
...,
[[
gNB-ID-Length-r17 INTEGER (22..32) OPTIONAL -- Need R
+ ]],
+ [[
+ mobileIAB-Support-r18 ENUMERATED {true} OPTIONAL -- Need S
]]
}
@@ -6903,7 +8942,7 @@ NR-DL-PRS-PDC-Info-r17 ::= SEQUENCE {
NR-DL-PRS-PDC-ResourceSet-r17 ::= SEQUENCE {
periodicityAndOffset-r17 NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r17,
- numSymbols-r17 ENUMERATED {n2, n4, n6, n12, spare4, spare3, spare2, spare1},
+ numSymbols-r17 ENUMERATED {n2, n4, n6, n12, n1-v1800, spare3, spare2, spare1},
dl-PRS-ResourceBandwidth-r17 INTEGER (1..63),
dl-PRS-StartPRB-r17 INTEGER (0..2176),
resourceList-r17 SEQUENCE (SIZE (1..maxNrofPRS-ResourcesPerSet-r17)) OF NR-DL-PRS-Resource-r17,
@@ -7008,7 +9047,10 @@ NR-DL-PRS-Resource-r17 ::= SEQUENCE {
dl-PRS-ResourceSlotOffset-r17 INTEGER (0..maxNrofPRS-ResourceOffsetValue-1-r17),
dl-PRS-ResourceSymbolOffset-r17 INTEGER (0..12),
dl-PRS-QCL-Info-r17 DL-PRS-QCL-Info-r17 OPTIONAL, -- Need N
- ...
+ ...,
+ [[
+ dl-PRS-ResourceSymbolOffset-v1800 INTEGER (13) OPTIONAL -- Need R
+ ]]
}
DL-PRS-QCL-Info-r17 ::= CHOICE {
@@ -7041,6 +9083,19 @@ NR-NS-PmaxValue ::= SEQUENCE {
additionalSpectrumEmission AdditionalSpectrumEmission
}
+NR-NS-PmaxList-v1760 ::= SEQUENCE (SIZE (1.. maxNR-NS-Pmax)) OF NR-NS-PmaxValue-v1760
+
+NR-NS-PmaxValue-v1760 ::= SEQUENCE {
+ additionalSpectrumEmission-v1760 AdditionalSpectrumEmission-v1760 OPTIONAL -- Need N
+}
+
+NR-NS-PmaxListAerial-r18 ::= SEQUENCE (SIZE (1..maxNR-NS-Pmax)) OF NR-NS-PmaxValueAerial-r18
+
+NR-NS-PmaxValueAerial-r18 ::= SEQUENCE {
+ additionalPmax-r18 P-Max OPTIONAL, -- Need N
+ additionalSpectrumEmission-r18 AdditionalSpectrumEmission-r18
+}
+
-- TAG-NR-NS-PMAXLIST-STOP
-- TAG-NSAG-ID-START
@@ -7071,11 +9126,6 @@ NTN-Config-r17 ::= SEQUENCE {
...
}
-EpochTime-r17 ::= SEQUENCE {
- sfn-r17 INTEGER(0..1023),
- subFrameNR-r17 INTEGER(0..9)
-}
-
TA-Info-r17 ::= SEQUENCE {
ta-Common-r17 INTEGER(0..66485757),
ta-CommonDrift-r17 INTEGER(-257303..257303) OPTIONAL, -- Need R
@@ -7093,7 +9143,12 @@ NZP-CSI-RS-Resource ::= SEQUENCE {
scramblingID ScramblingId,
periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, -- Cond PeriodicOrSemiPersistent
qcl-InfoPeriodicCSI-RS TCI-StateId OPTIONAL, -- Cond Periodic
- ...
+ ...,
+ [[
+ subcarrierSpacing-r18 SubcarrierSpacing OPTIONAL, -- Cond LTM
+ absoluteFrequencyPointA-r18 ARFCN-ValueNR OPTIONAL, -- Cond LTM
+ cyclicPrefix-r18 ENUMERATED {extended} OPTIONAL -- Cond LTM
+ ]]
}
-- TAG-NZP-CSI-RS-RESOURCE-STOP
@@ -7119,6 +9174,9 @@ NZP-CSI-RS-ResourceSet ::= SEQUENCE {
cmrGroupingAndPairing-r17 CMRGroupingAndPairing-r17 OPTIONAL, -- Need R
aperiodicTriggeringOffset-r17 INTEGER (0..124) OPTIONAL, -- Need S
aperiodicTriggeringOffsetL2-r17 INTEGER(0..31) OPTIONAL -- Need R
+ ]],
+ [[
+ resourceType-r18 ENUMERATED {periodic} OPTIONAL -- Cond LTM
]]
}
@@ -7235,6 +9293,10 @@ PDCCH-Config ::= SEQUENCE {
monitoringCapabilityConfig-v1710 ENUMERATED { r17monitoringcapability } OPTIONAL, -- Need M
searchSpaceSwitchConfig-r17 SearchSpaceSwitchConfig-r17 OPTIONAL, -- Need R
pdcch-SkippingDurationList-r17 SEQUENCE(SIZE (1..3)) OF SCS-SpecificDuration-r17 OPTIONAL -- Need R
+ ]],
+ [[
+ pdcch-MonitoringResumptionAfterNack-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ searchSpacesToAddModListExt-v1800 SEQUENCE(SIZE (1..10)) OF SearchSpaceExt-v1800 OPTIONAL -- Need N
]]
}
@@ -7310,6 +9372,12 @@ PDCCH-ConfigCommon ::= SEQUENCE {
]],
[[
followUnifiedTCI-State-v1720 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ applyIndicatedTCI-State-r18 ENUMERATED {first, second, both, none} OPTIONAL, -- Cond FollowUTCI
+ commonSearchSpaceListExt-r18 SEQUENCE (SIZE(1..4)) OF SearchSpaceExt-v1800 OPTIONAL, -- Need R
+ searchSpaceMulticastMCCH-r18 SearchSpaceId OPTIONAL, -- Need R
+ searchSpaceMulticastMTCH-r18 SearchSpaceId OPTIONAL -- Need S
]]
}
@@ -7412,6 +9480,12 @@ PDCP-Config ::= SEQUENCE {
uplinkDataCompression-r17 CHOICE {release NULL, setup UplinkDataCompression-r17 } OPTIONAL, -- Cond Rlc-AM
discardTimerExt2-r17 CHOICE {release NULL, setup DiscardTimerExt2-r17 } OPTIONAL, -- Need M
initialRX-DELIV-r17 BIT STRING (SIZE (32)) OPTIONAL -- Cond MRB-Initialization
+ ]],
+ [[
+ pdu-SetDiscard-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ discardTimerForLowImportance-r18 CHOICE {release NULL, setup DiscardTimerForLowImportance-r18 } OPTIONAL, -- Cond DRB2
+ primaryPathOnIndirectPath-r18 ENUMERATED {true} OPTIONAL, -- Cond SplitBearerMP
+ sn-GapReport-r18 ENUMERATED {true} OPTIONAL -- Need R
]]
}
@@ -7448,6 +9522,8 @@ UplinkDataCompression-r17 ::= CHOICE {
drb-ContinueUDC NULL
}
+DiscardTimerForLowImportance-r18 ::= ENUMERATED {ms0, ms2, ms4, ms6, ms8, ms10, ms12, ms14, ms18, ms22, ms26, ms30, ms40, ms50, ms75, ms100}
+
-- TAG-PDCP-CONFIG-STOP
-- TAG-PDSCH-CONFIG-START
@@ -7570,6 +9646,10 @@ PDSCH-Config ::= SEQUENCE {
]],
[[
pdsch-TimeDomainAllocationListForMultiPDSCH-r17 CHOICE {release NULL, setup MultiPDSCH-TDRA-List-r17 } OPTIONAL -- Need M
+ ]],
+ [[
+ advancedReceiver-MU-MIMO-r18 CHOICE {release NULL, setup AdvancedReceiver-MU-MIMO-r18 } OPTIONAL, -- Need M
+ pdsch-ConfigDCI-1-3-r18 CHOICE {release NULL, setup PDSCH-ConfigDCI-1-3-r18 } OPTIONAL -- Need M
]]
}
@@ -7584,6 +9664,15 @@ MinSchedulingOffsetK0-Values-r17 ::= SEQUENCE (SIZE (1..maxNrOfMinSchedulingO
MaxMIMO-LayersDL-r16 ::= INTEGER (1..8)
+PDSCH-ConfigDCI-1-3-r18 ::= SEQUENCE {
+ resourceAllocationDCI-1-3-r18 ENUMERATED {resourceAllocationType0, resourceAllocationType1, dynamicSwitch}
+ OPTIONAL, -- Need M
+ rbg-SizeDCI-1-3-r18 ENUMERATED {config1, config2, config3, spare1} OPTIONAL, -- Cond DCI-1-3
+ resourceAllocationType1GranularityDCI-1-3-r18 ENUMERATED {n2,n4,n8,n16} OPTIONAL, -- Need S
+ numberOfBitsForRV-DCI-1-3-r18 INTEGER (0..2) OPTIONAL, -- Need R
+ harq-ProcessNumberSizeDCI-1-3-r18 INTEGER (0..5) OPTIONAL -- Need R
+}
+
-- TAG-PDSCH-CONFIG-STOP
-- TAG-PDSCH-CONFIGCOMMON-START
@@ -7642,7 +9731,7 @@ PDSCH-TimeDomainResourceAllocation-r16 ::= SEQUENCE {
k0-r16 INTEGER(0..32) OPTIONAL, -- Need S
mappingType-r16 ENUMERATED {typeA, typeB},
startSymbolAndLength-r16 INTEGER (0..127),
- repetitionNumber-r16 ENUMERATED {n2, n3, n4, n5, n6, n7, n8, n16} OPTIONAL, -- Cond Formats1-0and1-1
+ repetitionNumber-r16 ENUMERATED {n2, n3, n4, n5, n6, n7, n8, n16} OPTIONAL, -- Cond Formats1-0_1-1_4-0_4-1_4-2
...,
[[
k0-v1710 INTEGER(33..128) OPTIONAL -- Need S
@@ -7662,6 +9751,11 @@ MultiPDSCH-TDRA-r17 ::= SEQUENCE {
}
-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-STOP
+-- TAG-PDU-SESSIONID-START
+
+PDU-SessionID ::= INTEGER (0..255)
+
+-- TAG-PDU-SESSIONID-STOP
-- TAG-PHR-CONFIG-START
PHR-Config ::= SEQUENCE {
@@ -7679,6 +9773,10 @@ PHR-Config ::= SEQUENCE {
[[
mpe-Reporting-FR2-r17 CHOICE {release NULL, setup MPE-Config-FR2-r17 } OPTIONAL, -- Need M
twoPHRMode-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ phr-AssumedPUSCH-Reporting-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ dpc-Reporting-FR1-r18 ENUMERATED {enabled} OPTIONAL -- Need R
]]
}
@@ -7794,10 +9892,23 @@ PhysicalCellGroupConfig ::= SEQUENCE {
]],
[[
pdcch-BlindDetection4-r17 CHOICE {release NULL, setup PDCCH-BlindDetection4-r17 } OPTIONAL -- Need M
+ ]],
+ [[
+ simultaneousPUCCH-PUSCH-SamePriority-r17 ENUMERATED {enabled} OPTIONAL, -- Need R
+ simultaneousPUCCH-PUSCH-SamePriority-SecondaryPUCCHgroup-r17 ENUMERATED {enabled} OPTIONAL -- Cond twoPUCCHgroup
+ ]],
+ [[
+ ncr-RNTI-r18 RNTI-Value OPTIONAL, -- Cond NCR
+ cellDTRX-DCI-config-r18 CHOICE {release NULL, setup CellDTRX-DCI-config-r18 } OPTIONAL, -- Need M
+ twoQCL-TypeD-ForMultiDCI-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ enableType1HARQ-ACK-MuxForDL-AssignmentAfterUL-Grant-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ enableType2HARQ-ACK-MuxForDL-AssignmentAfterUL-Grant-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ enableType3HARQ-ACK-MuxForDL-AssignmentAfterUL-Grant-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ enableDiffPUCCH-Resource-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ enableDiffCB-Size-r18 ENUMERATED {enabled} OPTIONAL -- Need R
]]
}
-
PDSCH-HARQ-ACK-EnhType3-r17 ::= SEQUENCE {
pdsch-HARQ-ACK-EnhType3Index-r17 PDSCH-HARQ-ACK-EnhType3Index-r17,
applicable-r17 CHOICE {
@@ -7850,6 +9961,11 @@ PDCCH-BlindDetectionCA-CombIndicator-r17 ::= SEQUENCE {
pdcch-BlindDetectionCA3-r17 INTEGER (1..15)
}
+CellDTRX-DCI-config-r18 ::= SEQUENCE {
+ cellDTRX-RNTI-r18 RNTI-Value,
+ sizeDCI-2-9-r18 INTEGER (1..maxDCI-2-9-Size-r18)
+}
+
-- TAG-PHYSICALCELLGROUPCONFIG-STOP
-- TAG-PLMN-IDENTITY-START
@@ -7881,7 +9997,10 @@ PLMN-IdentityInfo ::= SEQUENCE {
]],
[[
trackingAreaList-r17 SEQUENCE (SIZE (1..maxTAC-r17)) OF TrackingAreaCode OPTIONAL, -- Need R
- gNB-ID-Length-r17 INTEGER (22..32) OPTIONAL -- Need R
+ gNB-ID-Length-r17 INTEGER (22..32) OPTIONAL -- Cond eventID-TSS
+ ]],
+ [[
+ mobileIAB-Support-r18 ENUMERATED {true} OPTIONAL -- Need S
]]
}
-- TAG-PLMN-IDENTITYINFOLIST-STOP
@@ -7924,7 +10043,10 @@ PTRS-UplinkConfig ::= SEQUENCE {
sampleDensity SEQUENCE (SIZE (5)) OF INTEGER (1..276),
timeDensityTransformPrecoding ENUMERATED {d2} OPTIONAL -- Need S
} OPTIONAL, -- Need R
- ...
+ ...,
+ [[
+ maxNrofPorts-SDM-r18 ENUMERATED {n1, n2} OPTIONAL -- Need R
+ ]]
}
-- TAG-PTRS-UPLINKCONFIG-STOP
@@ -8051,18 +10173,24 @@ PUCCH-ResourceExt-v1610 ::= SEQUENCE {
}
} OPTIONAL, --Need R
format-v1610 CHOICE {
- interlace1-v1610 INTEGER (0..9),
- occ-v1610 SEQUENCE {
- occ-Length-v1610 ENUMERATED {n2,n4} OPTIONAL, -- Need M
- occ-Index-v1610 ENUMERATED {n0,n1,n2,n3} OPTIONAL -- Need M
+ interlace1-v1610 INTEGER (0..9),
+ occ-v1610 SEQUENCE {
+ occ-Length-v1610 ENUMERATED {n2,n4} OPTIONAL, -- Need M
+ occ-Index-v1610 ENUMERATED {n0,n1,n2,n3} OPTIONAL -- Need M
}
- } OPTIONAL, -- Need R
+ } OPTIONAL, -- Need R
...,
[[
- format-v1700 SEQUENCE {
+ format-v1700 SEQUENCE {
nrofPRBs-r17 INTEGER (1..16)
- } OPTIONAL, -- Need R
- pucch-RepetitionNrofSlots-r17 ENUMERATED { n1,n2,n4,n8 } OPTIONAL -- Need R
+ } OPTIONAL, -- Need R
+ pucch-RepetitionNrofSlots-r17 ENUMERATED { n1,n2,n4,n8 } OPTIONAL -- Need R
+ ]],
+ [[
+ applyIndicatedTCI-State-r18 ENUMERATED {first, second, both, spare1} OPTIONAL, -- Need R
+ multipanelSFN-Scheme-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ dl-DataToUL-ACK-r18 CHOICE {release NULL, setup DL-DataToUL-ACK-r18 } OPTIONAL, -- Need M
+ dl-DataToUL-ACK-DCI-1-2-r18 CHOICE {release NULL, setup DL-DataToUL-ACK-DCI-1-2-r18} OPTIONAL -- Need M
]]
}
@@ -8114,10 +10242,14 @@ DL-DataToUL-ACK-r17 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (-1
DL-DataToUL-ACK-v1700 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (16..31)
+DL-DataToUL-ACK-r18 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..31)
+
DL-DataToUL-ACK-DCI-1-2-r16 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..15)
DL-DataToUL-ACK-DCI-1-2-r17 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..127)
+DL-DataToUL-ACK-DCI-1-2-r18 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..31)
+
UL-AccessConfigListDCI-1-1-r16 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..15)
UL-AccessConfigListDCI-1-2-r17 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..15)
@@ -8149,6 +10281,14 @@ PUCCH-ConfigCommon ::= SEQUENCE {
PUCCH-ConfigurationList-r16 ::= SEQUENCE (SIZE (1..2)) OF PUCCH-Config
-- TAG-PUCCH-CONFIGURATIONLIST-STOP
+-- TAG-PUCCH-CSI-RESOURCE-START
+
+PUCCH-CSI-Resource ::= SEQUENCE {
+ uplinkBandwidthPartId BWP-Id,
+ pucch-Resource PUCCH-ResourceId
+}
+
+-- TAG-PUCCH-CSI-RESOURCE-STOP
-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-START
PUCCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1)
@@ -8347,6 +10487,17 @@ PUSCH-Config ::= SEQUENCE {
harq-ProcessNumberSizeDCI-0-1-r17 INTEGER (5) OPTIONAL, -- Need R
mpe-ResourcePoolToAddModList-r17 SEQUENCE (SIZE(1..maxMPE-Resources-r17)) OF MPE-Resource-r17 OPTIONAL, -- Need N
mpe-ResourcePoolToReleaseList-r17 SEQUENCE (SIZE(1..maxMPE-Resources-r17)) OF MPE-ResourceId-r17 OPTIONAL -- Need N
+ ]],
+ [[
+ maxRank-v1810 INTEGER (5..8) OPTIONAL, -- Need R
+ sTx-2Panel-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ multipanelSchemeSDM-r18 SDM-Scheme-r18 OPTIONAL, -- Need R
+ multipanelSchemeSFN-r18 SFN-Scheme-r18 OPTIONAL, -- Need R
+ codebookTypeUL-r18 CHOICE {release NULL, setup CodebookTypeUL-r18 } OPTIONAL, -- Need M
+ applyIndicatedTCI-State-r18 ENUMERATED {first, second} OPTIONAL, -- Need R
+ dynamicTransformPrecoderFieldPresenceDCI-0-1-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ dynamicTransformPrecoderFieldPresenceDCI-0-2-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pusch-ConfigDCI-0-3-r18 CHOICE {release NULL, setup PUSCH-ConfigDCI-0-3-r18 } OPTIONAL -- Need M
]]
}
@@ -8410,6 +10561,35 @@ MPE-Resource-r17 ::= SEQUENCE {
MPE-ResourceId-r17 ::= INTEGER (1..maxMPE-Resources-r17)
+SDM-Scheme-r18 ::= SEQUENCE {
+ maxRankSDM-r18 INTEGER (1..2) OPTIONAL, -- Need R
+ maxRankSDM-DCI-0-2-r18 INTEGER (1..2) OPTIONAL -- Need R
+}
+
+
+SFN-Scheme-r18 ::= SEQUENCE {
+ maxRankSFN-r18 INTEGER (1..2) OPTIONAL, -- Need R
+ maxRankSFN-DCI-0-2-r18 INTEGER (1..2) OPTIONAL -- Need R
+}
+
+
+CodebookTypeUL-r18 ::= CHOICE {
+ codebook1-r18 ENUMERATED {ng1n4n1, ng1n2n2},
+ codebook2-r18 ENUMERATED {ng2},
+ codebook3-r18 ENUMERATED {ng4},
+ codebook4-r18 ENUMERATED {ng8}
+}
+
+PUSCH-ConfigDCI-0-3-r18 ::= SEQUENCE {
+ resourceAllocationDCI-0-3-r18 ENUMERATED {resourceAllocationType0, resourceAllocationType1, dynamicSwitch}
+ OPTIONAL, -- Need M
+ rbg-SizeDCI-0-3-r18 ENUMERATED {config2, config3} OPTIONAL, -- Need S
+ resourceAllocationType1GranularityDCI-0-3-r18 ENUMERATED {n2,n4,n8,n16} OPTIONAL, -- Need S
+ numberOfBitsForRV-DCI-0-3-r18 INTEGER (0..2) OPTIONAL, -- Need R
+ harq-ProcessNumberSizeDCI-0-3-r18 INTEGER (0..5) OPTIONAL, -- Need R
+ uci-OnPUSCH-ListDCI-0-3-r18 CHOICE {release NULL, setup UCI-OnPUSCH-ListDCI-0-1-r16 } OPTIONAL -- Need M
+}
+
-- TAG-PUSCH-CONFIG-STOP
-- TAG-PUSCH-CONFIGCOMMON-START
@@ -8531,8 +10711,15 @@ PUSCH-ServingCellConfig ::= SEQUENCE {
maxMIMO-LayersDCI-0-2-r16 CHOICE {release NULL, setup MaxMIMO-LayersDCI-0-2-r16} OPTIONAL -- Need M
]],
[[
- nrofHARQ-ProcessesForPUSCH-r17 ENUMERATED {n32} OPTIONAL, -- Need R
+ nrofHARQ-ProcessesForPUSCH-r17 ENUMERATED {n32} OPTIONAL, -- Need R
uplinkHARQ-mode-r17 CHOICE {release NULL, setup UplinkHARQ-mode-r17} OPTIONAL -- Need M
+ ]],
+ [[
+ maxMIMO-Layers-v1810 INTEGER (5..8) OPTIONAL, -- Need R
+ maxMIMO-LayersforSDM-r18 INTEGER (1..2) OPTIONAL, -- Need R
+ maxMIMO-LayersforSDM-DCI-0-2-r18 INTEGER (1..2) OPTIONAL, -- Need R
+ maxMIMO-LayersforSFN-r18 INTEGER (1..2) OPTIONAL, -- Need R
+ maxMIMO-LayersforSFN-DCI-0-2-r18 INTEGER (1..2) OPTIONAL -- Need R
]]
}
@@ -8590,6 +10777,11 @@ PUSCH-TPC-CommandConfig ::= SEQUENCE {
}
-- TAG-PUSCH-TPC-COMMANDCONFIG-STOP
+-- TAG-QFI-START
+
+QFI ::= INTEGER (0..maxQFI)
+
+-- TAG-QFI-STOP
-- TAG-Q-OFFSETRANGE-START
Q-OffsetRange ::= ENUMERATED {
@@ -8745,10 +10937,10 @@ RACH-ConfigCommonTwoStepRA-r16 ::= SEQUENCE {
}
GroupB-ConfiguredTwoStepRA-r16 ::= SEQUENCE {
- ra-MsgA-SizeGroupA ENUMERATED {b56, b144, b208, b256, b282, b480, b640, b800,
+ ra-MsgA-SizeGroupA-r16 ENUMERATED {b56, b144, b208, b256, b282, b480, b640, b800,
b1000, b72, spare6, spare5, spare4, spare3, spare2, spare1},
- messagePowerOffsetGroupB ENUMERATED {minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18},
- numberOfRA-PreamblesGroupA INTEGER (1..64)
+ messagePowerOffsetGroupB-r16 ENUMERATED {minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18},
+ numberOfRA-PreamblesGroupA-r16 INTEGER (1..64)
}
-- TAG-RACH-CONFIGCOMMONTWOSTEPRA-STOP
@@ -8784,6 +10976,9 @@ CFRA ::= SEQUENCE {
...,
[[
totalNumberOfRA-Preambles INTEGER (1..63) OPTIONAL -- Cond Occasions
+ ]],
+ [[
+ msg1-RepetitionNum-r18 ENUMERATED {n2, n4, n8, spare1} OPTIONAL -- Cond 4StepCFRArep
]]
}
@@ -8864,6 +11059,23 @@ RACH-ConfigGenericTwoStepRA-r16 ::= SEQUENCE {
}
-- TAG-RACH-CONFIGGENERICTWOSTEPRA-STOP
+-- TAG-RACH-CONFIGTWOTA-START
+
+RACH-ConfigTwoTA-r18 ::= SEQUENCE {
+ additionalPCI-andRACH-Index-r18 AdditionalPCIIndex-r17,
+ rach-ConfigGeneric-r18 RACH-ConfigGeneric,
+ ssb-perRACH-Occasion-r18 ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL, -- Need M
+ prach-RootSequenceIndex-r18 CHOICE {
+ l839 INTEGER (0..837),
+ l139 INTEGER (0..137),
+ l571 INTEGER (0..569),
+ l1151 INTEGER (0..1149)
+ },
+ msg1-SubcarrierSpacing-r18 SubcarrierSpacing OPTIONAL, -- Cond L139
+ ...
+}
+
+-- TAG-RACH-CONFIGTWOTA-STOP
-- TAG-RA-PRIORITIZATION-START
RA-Prioritization ::= SEQUENCE {
@@ -8903,8 +11115,11 @@ RadioBearerConfig ::= SEQUENCE {
mrb-ToReleaseList-r17 MRB-ToReleaseList-r17 OPTIONAL, -- Need N
srb4-ToAddMod-r17 SRB-ToAddMod OPTIONAL, -- Need N
srb4-ToRelease-r17 ENUMERATED{true} OPTIONAL -- Need N
+ ]],
+ [[
+ srb5-ToAddMod-r18 SRB-ToAddMod OPTIONAL, -- Need N
+ srb5-ToRelease-r18 ENUMERATED{true} OPTIONAL -- Need N
]]
-
}
SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
@@ -8917,6 +11132,10 @@ SRB-ToAddMod ::= SEQUENCE {
...,
[[
srb-Identity-v1700 SRB-Identity-v1700 OPTIONAL -- Need M
+ ]],
+ [[
+ srb-Identity-v1800 SRB-Identity-v1800 OPTIONAL, -- Need M
+ n3c-BearerAssociated-r18 ENUMERATED{true} OPTIONAL -- Cond N3C MP
]]
}
@@ -8934,6 +11153,9 @@ DRB-ToAddMod ::= SEQUENCE {
...,
[[
daps-Config-r16 ENUMERATED{true} OPTIONAL -- Cond DAPS
+ ]],
+ [[
+ n3c-BearerAssociated-r18 ENUMERATED{true} OPTIONAL -- Cond N3C MP
]]
}
DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity
@@ -9075,6 +11297,11 @@ RateMatchPatternLTE-CRS ::= SEQUENCE {
LTE-CRS-PatternList-r16 ::= SEQUENCE (SIZE (1..maxLTE-CRS-Patterns-r16)) OF RateMatchPatternLTE-CRS
-- TAG-RATEMATCHPATTERNLTE-CRS-STOP
+-- TAG-REFERENCECONFIGURATION-START
+
+ReferenceConfiguration-r18 ::= OCTET STRING (CONTAINING RRCReconfiguration)
+
+-- TAG-REFERENCECONFIGURATION-STOP
-- TAG-REFERENCELOCATION-START
ReferenceLocation-r17 ::= OCTET STRING
@@ -9211,7 +11438,20 @@ EventTriggerConfigInterRAT ::= SEQUENCE {
timeToTrigger-r17 TimeToTrigger,
...
}
- ]]
+ ]],
+ [[
+ eventZ1-Relay-r18 SEQUENCE {
+ z1-Threshold1-Relay-r18 SEQUENCE {
+ sl-RSRP-r18 SL-MeasTriggerQuantity-r16,
+ sd-RSRP-r18 SL-MeasTriggerQuantity-r16 OPTIONAL -- Need S
+ },
+ z1-Threshold2-Relay-r18 SL-MeasTriggerQuantity-r16,
+ reportOnLeave-r18 BOOLEAN,
+ hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger,
+ ...
+ }
+ ]]
},
rsType NR-RS-Type,
@@ -9231,7 +11471,11 @@ EventTriggerConfigInterRAT ::= SEQUENCE {
]],
[[
reportQuantityRelay-r17 SL-MeasReportQuantity-r16 OPTIONAL -- Need R
- ]]}
+ ]],
+ [[
+ cellIndividualOffsetList-r18 SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF CellIndividualOffsetList-EUTRA-r18 OPTIONAL -- Need R
+ ]]
+}
PeriodicalReportConfigInterRAT ::= SEQUENCE {
reportInterval ReportInterval,
@@ -9252,6 +11496,7 @@ PeriodicalReportConfigInterRAT ::= SEQUENCE {
reportQuantityRelay-r17 SL-MeasReportQuantity-r16 OPTIONAL -- Need R
]]
+
}
MeasTriggerQuantityUTRA-FDD-r16 ::= CHOICE{
@@ -9264,6 +11509,12 @@ MeasReportQuantityUTRA-FDD-r16 ::= SEQUENCE {
cpich-EcN0 BOOLEAN
}
+CellIndividualOffsetList-EUTRA-r18 ::= SEQUENCE {
+ physCellId-r18 EUTRA-PhysCellId,
+ cellIndividualOffset-r18 EUTRA-Q-OffsetRange,
+ carrierFreq-r18 ARFCN-ValueEUTRA OPTIONAL -- Need R
+}
+
-- TAG-REPORTCONFIGINTERRAT-STOP
-- TAG-REPORTCONFIGNR-START
@@ -9277,7 +11528,8 @@ ReportConfigNR ::= SEQUENCE {
condTriggerConfig-r16 CondTriggerConfig-r16,
cli-Periodical-r16 CLI-PeriodicalReportConfig-r16,
cli-EventTriggered-r16 CLI-EventTriggerConfig-r16,
- rxTxPeriodical-r17 RxTxPeriodical-r17
+ rxTxPeriodical-r17 RxTxPeriodical-r17,
+ reportOnScellActivation-r18 ReportOnScellActivation-r18
}
}
@@ -9331,13 +11583,23 @@ CondTriggerConfig-r16 ::= SEQUENCE {
condEventT1-r17 SEQUENCE {
t1-Threshold-r17 INTEGER (0..549755813887),
duration-r17 INTEGER (1..6000)
+ },
+ condEventD2-r18 SEQUENCE {
+ distanceThreshFromReference1-r18 INTEGER(0.. 65535),
+ distanceThreshFromReference2-r18 INTEGER(0.. 65535),
+ hysteresisLocation-r18 HysteresisLocation-r17,
+ timeToTrigger-r18 TimeToTrigger
}
},
rsType-r16 NR-RS-Type,
- ...
+ ...,
+ [[
+ nesEvent-r18 ENUMERATED {true} OPTIONAL -- Need R
+ ]]
+
}
-EventTriggerConfig::= SEQUENCE {
+EventTriggerConfig ::= SEQUENCE {
eventId CHOICE {
eventA1 SEQUENCE {
a1-Threshold MeasTriggerQuantity,
@@ -9405,6 +11667,99 @@ EventTriggerConfig::= SEQUENCE {
hysteresisLocation-r17 HysteresisLocation-r17,
timeToTrigger-r17 TimeToTrigger
}
+ ]],
+ [[
+ eventH1-r18 SEQUENCE {
+ h1-Threshold-r18 Altitude-r18,
+ h1-Hysteresis-r18 HysteresisAltitude-r18,
+ reportOnLeave-r18 BOOLEAN,
+ timeToTrigger-r18 TimeToTrigger,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventH2-r18 SEQUENCE {
+ h2-Threshold-r18 Altitude-r18,
+ h2-Hysteresis-r18 HysteresisAltitude-r18,
+ reportOnLeave-r18 BOOLEAN,
+ timeToTrigger-r18 TimeToTrigger,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventA3H1-r18 SEQUENCE {
+ a3-Offset-r18 MeasTriggerQuantityOffset,
+ reportOnLeave-r18 BOOLEAN,
+ a3-Hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger,
+ useAllowedCellList-r18 BOOLEAN,
+ h1-Threshold-r18 Altitude-r18,
+ h1-Hysteresis-r18 HysteresisAltitude-r18,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventA3H2-r18 SEQUENCE {
+ a3-Offset-r18 MeasTriggerQuantityOffset,
+ reportOnLeave-r18 BOOLEAN,
+ a3-Hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger,
+ useAllowedCellList-r18 BOOLEAN,
+ h2-Threshold-r18 Altitude-r18,
+ h2-Hysteresis-r18 HysteresisAltitude-r18,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventA4H1-r18 SEQUENCE {
+ a4-Threshold-r18 MeasTriggerQuantity,
+ reportOnLeave-r18 BOOLEAN,
+ a4-Hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger,
+ useAllowedCellList-r18 BOOLEAN,
+ h1-Threshold-r18 Altitude-r18,
+ h1-Hysteresis-r18 HysteresisAltitude-r18,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventA4H2-r18 SEQUENCE {
+ a4-Threshold-r18 MeasTriggerQuantity,
+ reportOnLeave-r18 BOOLEAN,
+ a4-Hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger,
+ useAllowedCellList-r18 BOOLEAN,
+ h2-Threshold-r18 Altitude-r18,
+ h2-Hysteresis-r18 HysteresisAltitude-r18,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventA5H1-r18 SEQUENCE {
+ a5-Threshold1-r18 MeasTriggerQuantity,
+ a5-Threshold2-r18 MeasTriggerQuantity,
+ reportOnLeave-r18 BOOLEAN,
+ a5-Hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger,
+ useAllowedCellList-r18 BOOLEAN,
+ h1-Threshold-r18 Altitude-r18,
+ h1-Hysteresis-r18 HysteresisAltitude-r18,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventA5H2-r18 SEQUENCE {
+ a5-Threshold1-r18 MeasTriggerQuantity,
+ a5-Threshold2-r18 MeasTriggerQuantity,
+ reportOnLeave-r18 BOOLEAN,
+ a5-Hysteresis-r18 Hysteresis,
+ timeToTrigger-r18 TimeToTrigger,
+ useAllowedCellList-r18 BOOLEAN,
+ h2-Threshold-r18 Altitude-r18,
+ h2-Hysteresis-r18 HysteresisAltitude-r18,
+ includeAltitudeUE-r18 BOOLEAN,
+ simulMultiTriggerSingleMeasReport-r18 BOOLEAN
+ },
+ eventD2-r18 SEQUENCE {
+ distanceThreshFromReference1-r18 INTEGER(1.. 65535),
+ distanceThreshFromReference2-r18 INTEGER(1.. 65535),
+ reportOnLeave-r18 BOOLEAN,
+ hysteresisLocation-r18 HysteresisLocation-r17,
+ timeToTrigger-r18 TimeToTrigger
+ }
]]
},
rsType NR-RS-Type,
@@ -9428,6 +11783,14 @@ EventTriggerConfig::= SEQUENCE {
[[
coarseLocationRequest-r17 ENUMERATED {true} OPTIONAL, -- Need R
reportQuantityRelay-r17 SL-MeasReportQuantity-r16 OPTIONAL -- Need R
+ ]],
+ [[
+ numberOfTriggeringCells-r18 INTEGER (2..maxCellReport) OPTIONAL, -- Need R
+ cellIndividualOffsetList-r18 SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellIndividualOffsetList-r18 OPTIONAL, -- Need R
+ eventX1-SD-Threshold1-r18 SL-MeasTriggerQuantity-r16 OPTIONAL, -- Need S
+ eventX2-SD-Threshold-r18 SL-MeasTriggerQuantity-r16 OPTIONAL, -- Need S
+ reportOnBestCellChange-r18 ENUMERATED {n1, n2} OPTIONAL, -- Need R
+ enteringLeavingReport-r18 ENUMERATED {true} OPTIONAL -- Need R
]]
}
@@ -9522,6 +11885,19 @@ MeasTriggerQuantityCLI-r16 ::= CHOICE {
MeasReportQuantityCLI-r16 ::= ENUMERATED {srs-rsrp, cli-rssi}
+ReportOnScellActivation-r18 ::= SEQUENCE {
+ rsType-r18 NR-RS-Type,
+ reportQuantityRS-Indexes-r18 MeasReportQuantity,
+ maxNrofRS-IndexesToReport-r18 INTEGER (1..maxNrofIndexesToReport),
+ includeBeamMeasurements-r18 BOOLEAN
+}
+
+CellIndividualOffsetList-r18 ::= SEQUENCE {
+ physCellId-r18 PhysCellId,
+ cellIndividualOffset-r18 Q-OffsetRangeList,
+ ssbFrequency-r18 ARFCN-ValueNR OPTIONAL -- Need R
+}
+
-- TAG-REPORTCONFIGNR-STOP
-- TAG-REPORTCONFIGNR-SL-START
@@ -9600,7 +11976,7 @@ ReselectionThresholdQ ::= INTEGER (0..31)
ResumeCause ::= ENUMERATED {emergency, highPriorityAccess, mt-Access, mo-Signalling,
mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, rna-Update, mps-PriorityAccess,
- mcs-PriorityAccess, spare1, spare2, spare3, spare4, spare5 }
+ mcs-PriorityAccess, mt-SDT-v1810, srs-PosConfigOrActivationReq-v1800, spare3, spare2, spare1 }
-- TAG-RESUMECAUSE-STOP
-- TAG-RLC-BEARERCONFIG-START
@@ -9924,10 +12300,6 @@ SDAP-Config ::= SEQUENCE {
...
}
-QFI ::= INTEGER (0..maxQFI)
-
-PDU-SessionID ::= INTEGER (0..255)
-
-- TAG-SDAP-CONFIG-STOP
-- TAG-SEARCHSPACE-START
@@ -9996,6 +12368,11 @@ SearchSpace ::= SEQUENCE {
formats3-0-And-3-1} OPTIONAL, -- Need R
dci-FormatsExt-r16 ENUMERATED {formats0-2-And-1-2, formats0-1-And-1-1And-0-2-And-1-2}
OPTIONAL -- Need R
+ ]],
+ [[
+ dci-FormatsNCR-r18 ENUMERATED {formats2-8} OPTIONAL, -- Need R
+ dci-FormatsSL-PRS-r18 ENUMERATED {formats3-2, formats3-0-And-3-2, formats3-0-And-3-1-And-3-2,
+ formats3-1-And-3-2} OPTIONAL -- Need R
]]
}
} OPTIONAL -- Cond Setup2
@@ -10078,6 +12455,21 @@ SearchSpaceExt-v1700 ::= SEQUENCE {
searchSpaceLinkingId-r17 INTEGER (0..maxNrofSearchSpacesLinks-1-r17) OPTIONAL -- Cond DedicatedOnly
}
+SearchSpaceExt-v1800 ::= SEQUENCE {
+ searchSpaceType-r18 CHOICE {
+ common-r18 SEQUENCE {
+ dci-Format2-9-r18 SEQUENCE {
+ ...
+ } OPTIONAL, -- Need R
+ ...
+ },
+ ue-Specific-r18 SEQUENCE {
+ dci-FormatsMC-r18 ENUMERATED {formats0-3, formats1-3, formats0-3-And-1-3} OPTIONAL, -- Need R
+ ...
+ }
+ } OPTIONAL -- Need R
+}
+
-- TAG-SEARCHSPACE-STOP
-- TAG-SEARCHSPACEID-START
@@ -10106,6 +12498,14 @@ CipheringAlgorithm ::= ENUMERATED {
spare2, spare1, ...}
-- TAG-SECURITYALGORITHMCONFIG-STOP
+-- TAG-SELECTEDPSCELLFORCHO-WITHSCG-START
+
+SelectedPSCellForCHO-WithSCG-r18 ::= SEQUENCE {
+ ssbFrequency-r18 ARFCN-ValueNR,
+ physCellId-r18 PhysCellId
+}
+
+-- TAG-SELECTEDPSCELLFORCHO-WITHSCG-STOP
-- TAG-SEMISTATICCHANNELACCESSCONFIG-START
SemiStaticChannelAccessConfig-r16 ::= SEQUENCE {
@@ -10221,9 +12621,30 @@ ServingCellConfig ::= SEQUENCE {
]],
[[
crossCarrierSchedulingConfigRelease-r17 ENUMERATED {true} OPTIONAL -- Need N
+ ]],
+ [[
+ multiPDSCH-PerSlotType1-CB-r17 ENUMERATED {enabled, disabled} OPTIONAL -- Need R
+ ]],
+ [[
+ lte-CRS-PatternList3-r18 CHOICE {release NULL, setup LTE-CRS-PatternList-r16 } OPTIONAL, -- Need M
+ lte-CRS-PatternList4-r18 CHOICE {release NULL, setup LTE-CRS-PatternList-r16 } OPTIONAL, -- Need M
+ pdcch-CandidateReceptionWith-CRS-Overlap-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ cjt-Scheme-PDSCH-r18 ENUMERATED {cjtSchemeA, cjtSchemeB} OPTIONAL, -- Need R
+ tag2-r18 Tag2-r18 OPTIONAL, -- Need R
+ cellDTX-DRX-Config-r18 CHOICE {release NULL, setup CellDTX-DRX-Config-r18 } OPTIONAL, -- Need M
+ positionInDCI-cellDTRX-r18 INTEGER (0..maxDCI-2-9-Size-1-r18) OPTIONAL, -- Need R
+ cellDTX-DRX-L1activation-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ mc-DCI-SetOfCellsToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSetsOfCells-r18)) OF MC-DCI-SetOfCells-r18 OPTIONAL, -- Need N
+ mc-DCI-SetOfCellsToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofSetsOfCells-r18)) OF SetOfCellsId-r18 OPTIONAL -- Need N
]]
}
+Tag2-r18 ::= SEQUENCE {
+ tag2-Id-r18 TAG-Id,
+ tag2-flag-r18 BOOLEAN,
+ n-TimingAdvanceOffset2-r18 ENUMERATED { n0, n25600, n39936, spare1 } OPTIONAL -- Need S
+}
+
UplinkConfig ::= SEQUENCE {
initialUplinkBWP BWP-UplinkDedicated OPTIONAL, -- Need M
uplinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N
@@ -10243,6 +12664,12 @@ UplinkConfig ::= SEQUENCE {
enableDefaultBeamPL-ForSRS-r16 ENUMERATED {enabled} OPTIONAL, -- Need R
uplinkTxSwitching-r16 CHOICE {release NULL, setup UplinkTxSwitching-r16 } OPTIONAL, -- Need M
mpr-PowerBoost-FR2-r16 ENUMERATED {true} OPTIONAL -- Need R
+ ]],
+ [[
+ srs-PosTx-Hopping-r18 CHOICE {release NULL, setup SRS-PosTx-Hopping-r18 } OPTIONAL, -- Need M
+ enablePL-RS-UpdateForType1CG-PUSCH-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ powerBoostPi2BPSK-r18 BOOLEAN OPTIONAL, -- Need R
+ powerBoostQPSK-r18 BOOLEAN OPTIONAL -- Need R
]]
}
@@ -10303,9 +12730,61 @@ MIMOParam-r17 ::= SEQUENCE {
uplink-PowerControlToReleaseList-r17 SEQUENCE (SIZE (1..maxUL-TCI-r17)) OF Uplink-powerControlId-r17 OPTIONAL, -- Need N
sfnSchemePDCCH-r17 ENUMERATED {sfnSchemeA,sfnSchemeB} OPTIONAL, -- Need R
sfnSchemePDSCH-r17 ENUMERATED {sfnSchemeA,sfnSchemeB} OPTIONAL -- Need R
+}
+MC-DCI-SetOfCells-r18 ::= SEQUENCE {
+ setOfCellsId-r18 SetOfCellsId-r18,
+ nCI-Value-r18 INTEGER (0..7),
+ scheduledCellListDCI-1-3-r18 SEQUENCE (SIZE (2..maxNrofCellsInSet-r18)) OF ServCellIndex OPTIONAL, -- Need R
+ scheduledCellListDCI-0-3-r18 SEQUENCE (SIZE (2..maxNrofCellsInSet-r18)) OF ServCellIndex OPTIONAL, -- Need R
+ scheduledCellComboListDCI-1-3-r18 SEQUENCE (SIZE (1..maxNrofCellCombos-r18)) OF ScheduledCellCombo-r18 OPTIONAL, -- Need R
+ scheduledCellComboListDCI-0-3-r18 SEQUENCE (SIZE (1..maxNrofCellCombos-r18)) OF ScheduledCellCombo-r18 OPTIONAL, -- Need R
+ antennaPortsDCI1-3-r18 ENUMERATED {type1a, type2} OPTIONAL, -- Cond TypeDCI1-3
+ antennaPortsDCI0-3-r18 ENUMERATED {type1a, type2} OPTIONAL, -- Cond TypeDCI0-3
+ tpmi-DCI0-3-r18 ENUMERATED {type1a, type2} OPTIONAL, -- Cond TypeDCI0-3
+ sri-DCI0-3-r18 ENUMERATED {type1a, type2} OPTIONAL, -- Cond TypeDCI0-3
+ priorityIndicatorDCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ priorityIndicatorDCI-0-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ dormancyDCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ dormancyDCI-0-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pdcchMonAdaptDCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pdcchMonAdaptDCI-0-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ minimumSchedulingOffsetK0DCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ minimumSchedulingOffsetK0DCI-0-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pdsch-HARQ-ACK-OneShotFeedbackDCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pdsch-HARQ-ACK-enhType3DCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pdsch-HARQ-ACK-enhType3DCIfieldDCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pdsch-HARQ-ACK-retxDCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ pucch-sSCellDynDCI-1-3-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ tdra-FieldIndexListDCI-1-3-r18 SEQUENCE (SIZE (1..32)) OF TDRA-FieldIndexDCI-1-3-r18 OPTIONAL, -- Need R
+ tdra-FieldIndexListDCI-0-3-r18 SEQUENCE (SIZE (1..64)) OF TDRA-FieldIndexDCI-0-3-r18 OPTIONAL, -- Need R
+ rateMatchListDCI-1-3-r18 SEQUENCE (SIZE (1..16)) OF RateMatchDCI-1-3-r18 OPTIONAL, -- Need R
+ zp-CSI-RSListDCI-1-3-r18 SEQUENCE (SIZE (1..8)) OF ZP-CSI-DCI-1-3-r18 OPTIONAL, -- Need R
+ tci-ListDCI-1-3-r18 SEQUENCE (SIZE (1..16)) OF TCI-DCI-1-3-r18 OPTIONAL, -- Need R
+ srs-RequestListDCI-1-3-r18 SEQUENCE (SIZE (1..16)) OF SRS-RequestCombo-r18 OPTIONAL, -- Need R
+ srs-OffsetListDCI-1-3-r18 SEQUENCE (SIZE (1..8)) OF SRS-OffsetCombo-r18 OPTIONAL, -- Need R
+ srs-RequestListDCI-0-3-r18 SEQUENCE (SIZE (1..16)) OF SRS-RequestCombo-r18 OPTIONAL, -- Need R
+ srs-OffsetListDCI-0-3-r18 SEQUENCE (SIZE (1..8)) OF SRS-OffsetCombo-r18 OPTIONAL -- Need R
}
+SetOfCellsId-r18 ::= INTEGER (0..maxNrofSetsOfCells-1-r18)
+
+ScheduledCellCombo-r18 ::= SEQUENCE (SIZE (1..maxNrofCellsInSet-r18)) OF INTEGER (0..maxNrofCellsInSet-1-r18)
+
+RateMatchDCI-1-3-r18 ::= SEQUENCE (SIZE (1..maxNrofCellsInSet-r18)) OF BIT STRING (SIZE (1..2))
+
+ZP-CSI-DCI-1-3-r18 ::= SEQUENCE (SIZE (1.. maxNrofCellsInSet-r18)) OF BIT STRING (SIZE (1..2))
+
+TCI-DCI-1-3-r18 ::= SEQUENCE (SIZE (2.. maxNrofCellsInSet-r18)) OF BIT STRING (SIZE (3))
+
+SRS-RequestCombo-r18 ::= SEQUENCE (SIZE (1.. maxNrofCellsInSet-r18)) OF BIT STRING (SIZE (2..3))
+
+SRS-OffsetCombo-r18 ::= SEQUENCE (SIZE (1.. maxNrofCellsInSet-r18)) OF INTEGER (0..3)
+
+TDRA-FieldIndexDCI-1-3-r18 ::= SEQUENCE (SIZE (2.. maxNrofBWPsInSetOfCells-r18)) OF INTEGER (0..maxNrofDL-Allocations-1-r18)
+
+TDRA-FieldIndexDCI-0-3-r18 ::= SEQUENCE (SIZE (2.. maxNrofBWPsInSetOfCells-r18)) OF INTEGER (0..maxNrofUL-Allocations-1-r18)
+
-- TAG-SERVINGCELLCONFIG-STOP
-- TAG-SERVINGCELLCONFIGCOMMON-START
@@ -10357,6 +12836,13 @@ ServingCellConfigCommon ::= SEQUENCE {
]],
[[
ra-ChannelAccess-r17 ENUMERATED {enabled} OPTIONAL -- Cond SharedSpectrum2
+ ]],
+ [[
+ featurePriorities-v1800 SEQUENCE {
+ msg1-Repetitions-Priority-r18 FeaturePriority-r17 OPTIONAL, -- Need R
+ eRedCapPriority-r18 FeaturePriority-r17 OPTIONAL -- Need R
+ } OPTIONAL, -- Need R
+ atg-Config-r18 ATG-Config-r18 OPTIONAL -- Need R
]]
}
@@ -10391,10 +12877,14 @@ ServingCellConfigCommonSIB ::= SEQUENCE {
uplinkConfigCommon-v1700 UplinkConfigCommonSIB-v1700 OPTIONAL -- Need R
]],
[[
- enhancedMeasurementLEO-r17 ENUMERATED {true} OPTIONAL -- Need R
+ enhancedMeasurementNGSO-r17 ENUMERATED {true} OPTIONAL -- Need R
]],
[[
ra-ChannelAccess-r17 ENUMERATED {enabled} OPTIONAL -- Cond SharedSpectrum2
+ ]],
+ [[
+ downlinkConfigCommon-v1760 DownlinkConfigCommonSIB-v1760 OPTIONAL, -- Need R
+ uplinkConfigCommon-v1760 UplinkConfigCommonSIB-v1760 OPTIONAL -- Need R
]]
}
@@ -10432,6 +12922,24 @@ SI-RequestResources ::= SEQUENCE {
}
-- TAG-SI-REQUESTCONFIG-STOP
+-- TAG-SI-REQUESTCONFIGREPETITION-START
+
+SI-RequestConfigRepetition-r18 ::= SEQUENCE {
+ rach-OccasionsSI-r18 SEQUENCE {
+ rach-ConfigSI-r18 RACH-ConfigGeneric,
+ ssb-perRACH-Occasion-r18 ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen}
+ } OPTIONAL, -- Need R
+ si-RequestResourcesRepetitionNum2-r18 SEQUENCE (SIZE (1..maxSI-Message)) OF SI-RequestResourcesRepetition-r18 OPTIONAL, -- Need R
+ si-RequestResourcesRepetitionNum4-r18 SEQUENCE (SIZE (1..maxSI-Message)) OF SI-RequestResourcesRepetition-r18 OPTIONAL, -- Need R
+ si-RequestResourcesRepetitionNum8-r18 SEQUENCE (SIZE (1..maxSI-Message)) OF SI-RequestResourcesRepetition-r18 OPTIONAL, -- Need R
+ ...
+}
+
+SI-RequestResourcesRepetition-r18 ::= SEQUENCE {
+ ra-PreambleStartIndex-r18 INTEGER (0..63)
+}
+
+-- TAG-SI-REQUESTCONFIGREPETITION-STOP
-- TAG-SI-SCHEDULINGINFO-START
SI-SchedulingInfo ::= SEQUENCE {
@@ -10451,13 +12959,19 @@ SchedulingInfo ::= SEQUENCE {
SI-SchedulingInfo-v1700 ::= SEQUENCE {
schedulingInfoList2-r17 SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo2-r17,
- dummy SI-RequestConfig OPTIONAL
+ dummy SI-RequestConfig OPTIONAL
}
SI-SchedulingInfo-v1740 ::= SEQUENCE {
si-RequestConfigRedCap-r17 SI-RequestConfig OPTIONAL -- Cond REDCAP-MSG-1
}
+SI-SchedulingInfo-v1800 ::= SEQUENCE {
+ si-RequestConfigMSG1-Repetition-r18 SI-RequestConfigRepetition-r18 OPTIONAL, -- Cond MSG-1
+ si-RequestConfigRedCap-MSG1-Repetition-r18 SI-RequestConfigRepetition-r18 OPTIONAL, -- Cond REDCAP-MSG-1
+ si-RequestConfigSUL-MSG1-Repetition-r18 SI-RequestConfigRepetition-r18 OPTIONAL -- Cond SUL-MSG-1
+}
+
SchedulingInfo2-r17 ::= SEQUENCE {
si-BroadcastStatus-r17 ENUMERATED {broadcasting, notBroadcasting},
si-WindowPosition-r17 INTEGER (1..256),
@@ -10480,14 +12994,18 @@ SIB-TypeInfo ::= SEQUENCE {
SIB-TypeInfo-v1700 ::= SEQUENCE {
sibType-r17 CHOICE {
type1-r17 ENUMERATED {sibType15, sibType16, sibType17, sibType18, sibType19, sibType20, sibType21,
- spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1,...},
+ sibType22-v1800, sibType23-v1800 ,sibType24-v1800, sibType25-v1800,
+ sibType17bis-v1820, spare4, spare3, spare2, spare1,...},
type2-r17 SEQUENCE {
posSibType-r17 ENUMERATED {posSibType1-9, posSibType1-10, posSibType2-24, posSibType2-25,
- posSibType6-4, posSibType6-5, posSibType6-6, spare9, spare8, spare7, spare6,
- spare5, spare4, spare3, spare2, spare1,...},
+ posSibType6-4, posSibType6-5, posSibType6-6, posSibType2-17a-v1770,
+ posSibType2-18a-v1770, posSibType2-20a-v1770, posSibType1-11-v1800,
+ posSibType1-12-v1800, posSibType2-26-v1800, posSibType2-27-v1800,
+ posSibType6-7-v1800, posSibType7-1-v1800,...,
+ posSibType7-2-v1800, posSibType7-3-v1800, posSibType7-4-v1800},
encrypted-r17 ENUMERATED { true } OPTIONAL, -- Need R
gnss-id-r17 GNSS-ID-r16 OPTIONAL, -- Need R
- sbas-id-r17 SBAS-ID-r16 OPTIONAL -- Need R
+ sbas-id-r17 SBAS-ID-r16 OPTIONAL -- Cond GNSS-ID-SBAS
}
},
valueTag-r17 INTEGER (0..31) OPTIONAL, -- Cond NonPosSIB
@@ -10645,6 +13163,8 @@ SRB-Identity ::= INTEGER (1..3)
SRB-Identity-v1700 ::= INTEGER (4)
+SRB-Identity-v1800 ::= INTEGER (5)
+
-- TAG-SRB-IDENTITY-STOP
-- TAG-SRS-CARRIERSWITCHING-START
@@ -10687,7 +13207,10 @@ SRS-Config ::= SEQUENCE {
OPTIONAL, -- Need N
srs-PosResourceSetToAddModList-r16 SEQUENCE (SIZE(1..maxNrofSRS-PosResourceSets-r16)) OF SRS-PosResourceSet-r16 OPTIONAL,-- Need N
srs-PosResourceToReleaseList-r16 SEQUENCE (SIZE(1..maxNrofSRS-PosResources-r16)) OF SRS-PosResourceId-r16 OPTIONAL,-- Need N
- srs-PosResourceToAddModList-r16 SEQUENCE (SIZE(1..maxNrofSRS-PosResources-r16)) OF SRS-PosResource-r16 OPTIONAL -- Need N
+ srs-PosResourceToAddModList-r16 SEQUENCE (SIZE(1..maxNrofSRS-PosResources-r16)) OF SRS-PosResource-r16 OPTIONAL -- Need N
+ ]],
+ [[
+ dci-TriggeringPosResourceSetLink-r18 ENUMERATED { enabled } OPTIONAL -- Need R
]]
}
@@ -10727,6 +13250,9 @@ SRS-ResourceSet ::= SEQUENCE {
usagePDC-r17 ENUMERATED {true} OPTIONAL, -- Need R
availableSlotOffsetList-r17 SEQUENCE (SIZE(1..4)) OF AvailableSlotOffset-r17 OPTIONAL, -- Need R
followUnifiedTCI-StateSRS-r17 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]],
+ [[
+ applyIndicatedTCI-State-r18 ENUMERATED {first, second} OPTIONAL -- Cond FollowUTCI
]]
}
@@ -10771,6 +13297,7 @@ SRS-PosResourceSet-r16 ::= SEQUENCE {
dl-PRS-r16 DL-PRS-Info-r16
} OPTIONAL, -- Need M
...
+
}
SRS-ResourceSetId ::= INTEGER (0..maxNrofSRS-ResourceSets-1)
@@ -10855,6 +13382,26 @@ SRS-Resource ::= SEQUENCE {
srs-DLorJointTCI-State-v1730 SEQUENCE {
cellAndBWP-r17 ServingCellAndBWP-Id-r17
} OPTIONAL -- Cond DLorJointTCI-SRS
+ ]],
+ [[
+ nrofSRS-Ports-n8-r18 ENUMERATED {ports8, ports8tdm} OPTIONAL, -- Need R
+ combOffsetHopping-r18 SEQUENCE {
+ hoppingId-r18 INTEGER (0..1023) OPTIONAL, -- Need R
+ hoppingSubset-r18 CHOICE {
+ transmissionComb-n4 BIT STRING (SIZE (4)),
+ transmissionComb-n8 BIT STRING (SIZE (8))
+ } OPTIONAL, -- Need R
+ hoppingWithRepetition-r18 ENUMERATED {symbol, repetition} OPTIONAL -- Need R
+ } OPTIONAL, -- Need R
+ cyclicShiftHopping-r18 SEQUENCE {
+ hoppingId-r18 INTEGER (0..1023) OPTIONAL, -- Need R
+ hoppingSubset-r18 CHOICE {
+ transmissionComb-n2 BIT STRING (SIZE (8)),
+ transmissionComb-n4 BIT STRING (SIZE (12)),
+ transmissionComb-n8 BIT STRING (SIZE (6))
+ } OPTIONAL, -- Need R
+ hoppingFinerGranularity-r18 ENUMERATED {enable} OPTIONAL -- Need R
+ } OPTIONAL -- Need R
]]
}
@@ -10895,19 +13442,28 @@ SRS-PosResource-r16::= SEQUENCE {
...,
[[
periodicityAndOffset-sp-Ext-r16 SRS-PeriodicityAndOffsetExt-r16 OPTIONAL -- Need R
- ]]
+ ]],
+ [[
+ srs-PosPeriodicConfigHyperSFN-Index-r18 ENUMERATED {even0, odd1} OPTIONAL --Need R
+ ]]
},
periodic-r16 SEQUENCE {
periodicityAndOffset-p-r16 SRS-PeriodicityAndOffset-r16,
...,
[[
periodicityAndOffset-p-Ext-r16 SRS-PeriodicityAndOffsetExt-r16 OPTIONAL -- Need R
+ ]],
+ [[
+ srs-PosPeriodicConfigHyperSFN-Index-r18 ENUMERATED {even0, odd1} OPTIONAL --Need R
]]
}
},
sequenceId-r16 INTEGER (0..65535),
spatialRelationInfoPos-r16 SRS-SpatialRelationInfoPos-r16 OPTIONAL, -- Need R
- ...
+ ...,
+ [[
+ txHoppingConfig-r18 TxHoppingConfig-r18 OPTIONAL --Need R
+ ]]
}
SRS-SpatialRelationInfo ::= SEQUENCE {
@@ -11035,7 +13591,78 @@ SpatialRelationInfo-PDC-r17 ::= SEQUENCE {
...
}
+TxHoppingConfig-r18 ::= SEQUENCE {
+ overlapValue-r18 ENUMERATED {zeroRB, oneRB, twoRB, fourRB},
+ numberOfHops-r18 INTEGER(1..6),
+ slotOffsetForRemainingHopsList-r18 SEQUENCE (SIZE (1..maxNrofHops-1-r18) ) OF SlotOffsetForRemainingHops-r18,
+ ...
+}
+
+SlotOffsetForRemainingHops-r18 ::= SEQUENCE {
+ slotOffsetRemainingHops-r18 CHOICE {
+ aperiodic-r18 SEQUENCE {
+ slotOffset-r18 INTEGER (1..32) OPTIONAL, -- Need S
+ startPosition-r18 INTEGER (0..13) OPTIONAL, -- Need R
+ ...
+ },
+ semi-persistent-r18 SEQUENCE {
+ periodicityAndOffset-sp-r18 SRS-PeriodicityAndOffset-r16 OPTIONAL, -- Need R
+ periodicityAndOffset-sp-Ext-r18 SRS-PeriodicityAndOffsetExt-r16 OPTIONAL, -- Need R
+ startPosition-r18 INTEGER (0..13) OPTIONAL, -- Need R
+ ...
+ },
+ periodic-r18 SEQUENCE {
+ periodicityAndOffset-p-r18 SRS-PeriodicityAndOffset-r16 OPTIONAL, -- Need R
+ periodicityAndOffset-p-Ext-r18 SRS-PeriodicityAndOffsetExt-r16 OPTIONAL, -- Need R
+ startPosition-r18 INTEGER (0..13) OPTIONAL, -- Need S
+ ...
+ },
+ ...
+ }
+}
+
-- TAG-SRS-CONFIG-STOP
+-- TAG-SRS-PosTx-Hopping-START
+
+SRS-PosTx-Hopping-r18 ::= SEQUENCE {
+ srs-PosConfig-r18 SRS-PosConfig-r17,
+ bwp-r18 BWP OPTIONAL, -- Need R
+ inactivePosSRS-TimeAlignmentTimer-r18 TimeAlignmentTimer OPTIONAL, -- Need M
+ inactivePosSRS-RSRP-ChangeThreshold-r18 RSRP-ChangeThreshold-r17 OPTIONAL, -- Need M
+ srs-PosUplinkTransmissionWindowConfig-r18 CHOICE {release NULL, setup SRS-PosUplinkTransmissionWindowConfig-r18 } OPTIONAL, -- Need M
+ ...
+}
+
+SRS-PosUplinkTransmissionWindowConfig-r18 ::= SEQUENCE {
+ startSFN-r18 INTEGER(0..1023),
+ windowPeriodicityAndOffset-r18 CHOICE {
+ periodicityAndOffset-r18 SRS-PeriodicityAndOffset-r16,
+ periodicityAndOffset-Ext-r18 SRS-PeriodicityAndOffsetExt-r16
+ },
+ duration-r18 ENUMERATED {s1,s2,s4,s6},
+ ...
+}
+
+-- TAG-SRS-PosTx-Hopping-STOP
+-- TAG-SRS-POSRESOURCESETLINKEDFORAGGBW-START
+
+SRS-PosResourceSetLinkedForAggBW-r18 ::= SEQUENCE {
+ srs-PosResourceSetLinked-r18 SRS-PosResourceSetId-r16,
+ srs-LinkedConfig-r18 CHOICE {
+ rrc-connectedState-r18 SEQUENCE {
+ servingCellAndBWP-Id-r18 ServingCellAndBWP-Id-r17,
+ ...
+ },
+ rrc-inactiveState-r18 SEQUENCE {
+ scs-SpecificCarrier-r18 SCS-SpecificCarrier,
+ freqInfo-r18 ARFCN-ValueNR,
+ ...
+ }
+ },
+ ...
+}
+
+-- TAG-SRS-POSRESOURCESETLINKEDFORAGGBW-STOP
-- TAG-SRS-RSRP-RANGE-START
SRS-RSRP-Range-r16 ::= INTEGER(0..98)
@@ -11173,6 +13800,11 @@ TAR-Config-r17 ::= SEQUENCE {
timingAdvanceSR-r17 ENUMERATED {enabled} OPTIONAL, -- Need R
...
}
+TAR-Config-r18 ::= SEQUENCE {
+ offsetThresholdTA-r18 INTEGER (1..56) OPTIONAL, -- Need R
+ timingAdvanceSR-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ ...
+}
-- TAG-TAR-CONFIG-STOP
-- TAG-TCI-ACTIVATEDCONFIG-START
@@ -11194,8 +13826,10 @@ TCI-State ::= SEQUENCE {
additionalPCI-r17 AdditionalPCIIndex-r17 OPTIONAL, -- Need R
pathlossReferenceRS-Id-r17 PathlossReferenceRS-Id-r17 OPTIONAL, -- Cond JointTCI1
ul-powerControl-r17 Uplink-powerControlId-r17 OPTIONAL -- Cond JointTCI
+ ]],
+ [[
+ tag-Id-ptr-r18 ENUMERATED {n0,n1} OPTIONAL -- Cond 2TA
]]
-
}
QCL-Info ::= SEQUENCE {
@@ -11229,7 +13863,10 @@ TCI-UL-State-r17 ::= SEQUENCE {
additionalPCI-r17 AdditionalPCIIndex-r17 OPTIONAL, -- Need R
ul-powerControl-r17 Uplink-powerControlId-r17 OPTIONAL, -- Need R
pathlossReferenceRS-Id-r17 PathlossReferenceRS-Id-r17 OPTIONAL, -- Cond Mandatory
- ...
+ ...,
+ [[
+ tag-Id-ptr-r18 ENUMERATED {n0,n1} OPTIONAL -- Cond 2TA
+ ]]
}
-- TAG-TCI-UL-STATE-STOP
@@ -11328,6 +13965,11 @@ TimeToTrigger ::= ENUMERATED {
ms5120}
-- TAG-TIMETOTRIGGER-STOP
+-- TAG-TN-AREAID-START
+
+TN-AreaId-r18 ::= INTEGER (1..maxTN-AreaInfo-r18)
+
+-- TAG-TN-AREAID-STOP
-- TAG-UAC-BARRINGINFOSETINDEX-START
UAC-BarringInfoSetIndex ::= INTEGER (1..maxBarringInfoSet)
@@ -11479,6 +14121,10 @@ UplinkConfigCommonSIB-v1700 ::= SEQUENCE {
initialUplinkBWP-RedCap-r17 BWP-UplinkCommon OPTIONAL -- Need R
}
+UplinkConfigCommonSIB-v1760 ::= SEQUENCE {
+ frequencyInfoUL-v1760 FrequencyInfoUL-SIB-v1760
+}
+
-- TAG-UPLINKCONFIGCOMMONSIB-STOP
-- TAG-UPLINK-POWERCONTROL-START
@@ -11498,7 +14144,7 @@ P0AlphaSet-r17 ::= SEQUENCE {
Uplink-powerControlId-r17 ::= INTEGER(1.. maxUL-TCI-r17)
-- TAG-UPLINK-POWERCONTROL-STOP
--- TAG-UURELAYRLCCHANNELCONFIG-START
+-- TAG-UU-RELAYRLC-CHANNELCONFIG-START
Uu-RelayRLC-ChannelConfig-r17::= SEQUENCE {
uu-LogicalChannelIdentity-r17 LogicalChannelIdentity OPTIONAL, -- Cond RelayLCH-SetupOnly
@@ -11509,12 +14155,12 @@ Uu-RelayRLC-ChannelConfig-r17::= SEQUENCE {
...
}
--- TAG-UURELAYRLCCHANNELCONFIG-STOP
--- TAG-UURELAYRLCCHANNELID-START
+-- TAG-UU-RELAYRLC-CHANNELCONFIG-STOP
+-- TAG-UU-RELAYRLC-CHANNELID-START
Uu-RelayRLC-ChannelID-r17 ::= INTEGER (1..maxLC-ID)
--- TAG-UURELAYRLCCHANNELID-STOP
+-- TAG-UU-RELAYRLC-CHANNELID-STOP
-- TAG-UPLINKTXDIRECTCURRENTLIST-START
UplinkTxDirectCurrentList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF UplinkTxDirectCurrentCell
@@ -11619,9 +14265,39 @@ ZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofZP-CSI-RS-Res
-- TAG-ACCESSSTRATUMRELEASE-START
AccessStratumRelease ::= ENUMERATED {
- rel15, rel16, rel17, spare5, spare4, spare3, spare2, spare1, ... }
+ rel15, rel16, rel17, rel18, spare4, spare3, spare2, spare1, ... }
-- TAG-ACCESSSTRATUMRELEASE-STOP
+-- TAG-AERIALPARAMETERS-START
+
+AerialParameters-r18 ::= SEQUENCE {
+ -- Support of Aerial UE features
+ aerialUE-Capability-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of altitude measurement and event H1/H2-triggered reporting
+ altitudeMeas-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of altitude based measurement configuration of SSB-ToMeasure
+ altitudeBasedSSB-ToMeasure-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of events A3H1, A3H2, A4H1, A4H2, A5H1, A5H2
+ eventAxHy-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of flight path reporting
+ flightPathReporting-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of flight path availability indication via UAI
+ flightPathAvailabilityIndicationUAI-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of numberOfTriggeringCells for eventA3, eventA4, and eventA5, and additionally, if the UE supports eventAxHy-r18,
+ -- support of numberOfTriggeringCells for eventA3H1, eventA3H2, eventA4H1, eventA4H2, eventA5H1, and eventA5H2
+ multipleCellsMeasExtension-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of handling aerial-specific Ns value(s) and Pmax list broadcasted by the cell
+ nr-NS-PmaxListAerial-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of reporting only the measurement report corresponding to the event with the smallest value between the
+ -- altitude of the UAV and the altitude threshold for which the altitude-related entering condition e.g. A3H1-2 is satisfied, when
+ -- multiple events of the same type (Hx or AxHy) for the same MO (for AxHy) are triggered simultaneously.
+ simulMultiTriggerSingleMeasReport-r18 ENUMERATED {supported} OPTIONAL,
+ -- Support of A2X service(s) using PC5 Sidelink and dedicated resource pool for A2X service(s)
+ sl-A2X-Service-r18 ENUMERATED {brid, daa, bridAndDAA} OPTIONAL,
+ ...
+}
+
+-- TAG-AERIALPARAMETERS-STOP
-- TAG-APPLAYERMEASPARAMETERS-START
AppLayerMeasParameters-r17 ::= SEQUENCE {
@@ -11631,7 +14307,14 @@ AppLayerMeasParameters-r17 ::= SEQUENCE {
ran-VisibleQoE-Streaming-MeasReport-r17 ENUMERATED {supported} OPTIONAL,
ran-VisibleQoE-VR-MeasReport-r17 ENUMERATED {supported} OPTIONAL,
ul-MeasurementReportAppLayer-Seg-r17 ENUMERATED {supported} OPTIONAL,
- ...
+ ...,
+ [[
+ qoe-IdleInactiveMeasReport-r18 ENUMERATED {supported} OPTIONAL,
+ qoe-NRDC-MeasReport-r18 ENUMERATED {supported} OPTIONAL,
+ qoe-AdditionalMemoryMeasReport-r18 ENUMERATED {kB128, kB256, kB512, kB1024} OPTIONAL,
+ qoe-PriorityBasedDiscarding-r18 ENUMERATED {supported} OPTIONAL,
+ srb5-r18 ENUMERATED {supported} OPTIONAL
+ ]]
}
-- TAG-APPLAYERMEASPARAMETERS-STOP
@@ -11653,6 +14336,8 @@ BandCombinationList-v1590 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandComb
BandCombinationList-v15g0 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v15g0
+BandCombinationList-v15n0 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v15n0
+
BandCombinationList-v1610 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1610
BandCombinationList-v1630 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1630
@@ -11675,6 +14360,16 @@ BandCombinationList-v1730 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandComb
BandCombinationList-v1740 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1740
+BandCombinationList-v1760 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1760
+
+BandCombinationList-v1770 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1770
+
+BandCombinationList-v1780 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1780
+
+BandCombinationList-v1790 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1790
+
+BandCombinationList-v1800 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1800
+
BandCombinationList-UplinkTxSwitch-r16 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-r16
BandCombinationList-UplinkTxSwitch-v1630 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1630
@@ -11689,6 +14384,8 @@ BandCombinationList-UplinkTxSwitch-v1690 ::= SEQUENCE (SIZE (1..maxBandComb)) OF
BandCombinationList-UplinkTxSwitch-v16a0 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v16a0
+BandCombinationList-UplinkTxSwitch-v16e0 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v16e0
+
BandCombinationList-UplinkTxSwitch-v1700 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1700
BandCombinationList-UplinkTxSwitch-v1720 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1720
@@ -11697,6 +14394,16 @@ BandCombinationList-UplinkTxSwitch-v1730 ::= SEQUENCE (SIZE (1..maxBandComb)) OF
BandCombinationList-UplinkTxSwitch-v1740 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1740
+BandCombinationList-UplinkTxSwitch-v1760 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1760
+
+BandCombinationList-UplinkTxSwitch-v1770 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1770
+
+BandCombinationList-UplinkTxSwitch-v1780 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1780
+
+BandCombinationList-UplinkTxSwitch-v1790 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1790
+
+BandCombinationList-UplinkTxSwitch-v1800 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1800
+
BandCombination ::= SEQUENCE {
bandList SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters,
featureSetCombination FeatureSetCombinationId,
@@ -11741,7 +14448,11 @@ BandCombination-v15g0::= SEQUENCE {
mrdc-Parameters-v15g0 MRDC-Parameters-v15g0 OPTIONAL
}
-BandCombination-v1610 ::= SEQUENCE {
+BandCombination-v15n0::= SEQUENCE {
+ mrdc-Parameters-v15n0 MRDC-Parameters-v15n0
+}
+
+BandCombination-v1610 ::= SEQUENCE {
bandList-v1610 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1610 OPTIONAL,
ca-ParametersNR-v1610 CA-ParametersNR-v1610 OPTIONAL,
ca-ParametersNRDC-v1610 CA-ParametersNRDC-v1610 OPTIONAL,
@@ -11806,6 +14517,35 @@ BandCombination-v1740 ::= SEQUENCE {
ca-ParametersNR-v1740 CA-ParametersNR-v1740 OPTIONAL
}
+BandCombination-v1760 ::= SEQUENCE {
+ ca-ParametersNR-v1760 CA-ParametersNR-v1760,
+ ca-ParametersNRDC-v1760 CA-ParametersNRDC-v1760
+}
+
+BandCombination-v1770::= SEQUENCE {
+ bandList-v1770 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1770,
+ mrdc-Parameters-v1770 MRDC-Parameters-v1770 OPTIONAL,
+ ca-ParametersNR-v1770 CA-ParametersNR-v1770 OPTIONAL
+}
+
+BandCombination-v1780 ::= SEQUENCE {
+ ca-ParametersNR-v1780 CA-ParametersNR-v1780 OPTIONAL,
+ ca-ParametersNRDC-v1780 CA-ParametersNRDC-v1780 OPTIONAL,
+ bandList-v1780 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1780 OPTIONAL,
+ mrdc-Parameters-v1780 MRDC-Parameters-v1770 OPTIONAL
+}
+
+BandCombination-v1790 ::= SEQUENCE {
+ supportedIntraENDC-BandCombinationList-r17 SEQUENCE (SIZE (1..maxNrofIntraEndc-Components-r17)) OF SupportedIntraENDC-BandCombination-r17 OPTIONAL
+}
+
+BandCombination-v1800 ::= SEQUENCE {
+ ca-ParametersNR-v1800 CA-ParametersNR-v1800 OPTIONAL,
+ ca-ParametersNRDC-v1800 CA-ParametersNRDC-v1800 OPTIONAL,
+ supportedBandCombListPerBC-SL-U2U-RelayDiscovery-r18 BIT STRING (SIZE (1..maxBandComb)) OPTIONAL,
+ bandList-v1810 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1810 OPTIONAL
+}
+
BandCombination-UplinkTxSwitch-r16 ::= SEQUENCE {
bandCombination-r16 BandCombination,
bandCombination-v1540 BandCombination-v1540 OPTIONAL,
@@ -11848,6 +14588,10 @@ BandCombination-UplinkTxSwitch-v16a0 ::= SEQUENCE {
bandCombination-v16a0 BandCombination-v16a0 OPTIONAL
}
+BandCombination-UplinkTxSwitch-v16e0 ::= SEQUENCE {
+ bandCombination-v15n0 BandCombination-v15n0 OPTIONAL
+}
+
BandCombination-UplinkTxSwitch-v1700 ::= SEQUENCE {
bandCombination-v1700 BandCombination-v1700 OPTIONAL,
-- R4 16-1/16-2/16-3 Dynamic Tx switching between 2CC/3CC 2Tx-2Tx/1Tx-2Tx switching
@@ -11869,6 +14613,34 @@ BandCombination-UplinkTxSwitch-v1740 ::= SEQUENCE {
bandCombination-v1740 BandCombination-v1740 OPTIONAL
}
+BandCombination-UplinkTxSwitch-v1760 ::= SEQUENCE {
+ bandCombination-v1760 BandCombination-v1760 OPTIONAL
+}
+
+BandCombination-UplinkTxSwitch-v1770 ::= SEQUENCE {
+ bandCombination-v1770 BandCombination-v1770 OPTIONAL
+}
+
+BandCombination-UplinkTxSwitch-v1780 ::= SEQUENCE {
+ bandCombination-v1780 BandCombination-v1780 OPTIONAL
+}
+
+BandCombination-UplinkTxSwitch-v1790 ::= SEQUENCE {
+ bandCombination-v1790 BandCombination-v1790 OPTIONAL
+}
+
+BandCombination-UplinkTxSwitch-v1800 ::= SEQUENCE {
+ bandCombination-v1800 BandCombination-v1800 OPTIONAL,
+ supportedBandPairListNR-r18 SEQUENCE (SIZE (1..maxULTxSwitchingBandPairs)) OF ULTxSwitchingBandPair-r18 OPTIONAL,
+ -- R1 49-Y: Minimum separation time for two uplink switching on more than 2 bands within any two consecutive reference slots
+ uplinkTxSwitchingMinimumSeparationTime-r18 ENUMERATED {n0us, n500us} OPTIONAL,
+ -- R4 38-4: Switching Period for unaffected Band for Dual UL
+ uplinkTxSwitchingAdditionalPeriodDualUL-List-r18 SEQUENCE (SIZE (1..maxULTxSwitchingBetweenBandPairs-r18)) OF
+ UplinkTxSwitchingAdditionalPeriodDualUL-r18 OPTIONAL,
+ -- R4 38-6: Switching period restriction for fallback band combination
+ switchingPeriodRestriction-r18 ENUMERATED {true} OPTIONAL
+}
+
ULTxSwitchingBandPair-r16 ::= SEQUENCE {
bandIndexUL1-r16 INTEGER(1..maxSimultaneousBands),
bandIndexUL2-r16 INTEGER(1..maxSimultaneousBands),
@@ -11880,11 +14652,50 @@ ULTxSwitchingBandPair-v1700 ::= SEQUENCE {
uplinkTxSwitchingPeriod2T2T-r17 ENUMERATED {n35us, n140us, n210us} OPTIONAL
}
-UplinkTxSwitchingBandParameters-v1700 ::= SEQUENCE {
- bandIndex-r17 INTEGER(1..maxSimultaneousBands),
- uplinkTxSwitching2T2T-PUSCH-TransCoherence-r17 ENUMERATED {nonCoherent, fullCoherent} OPTIONAL
+ULTxSwitchingBandPair-r18 ::= SEQUENCE {
+ bandIndexUL1-r18 INTEGER(1..maxSimultaneousBands),
+ bandIndexUL2-r18 INTEGER(1..maxSimultaneousBands),
+ -- R1 49-X: Supported switching option for each band pair in the band combination for UL Tx switching across more than 2 bands
+ uplinkTxSwitchingOptionForBandPair-r18 ENUMERATED {switchedUL, dualUL, both},
+ -- R4 38-1: Switching period for dynamic UL Tx switching across up to 4 bands in case of inter-band CA, SUL up to two TAGs
+ uplinkTxSwitchingPeriodForBandPair-r18 SEQUENCE {
+ switchingPeriodFor2T-r18 ENUMERATED {n35us, n140us, n210us} OPTIONAL,
+ switchingPeriodFor1T-r18 ENUMERATED {n35us, n140us, n210us}
+ },
+ -- R4 38-2: Application of DL interruptions due to dynamic UL Tx switching
+ uplinkTxSwitching-DL-Interruption-r18 BIT STRING (SIZE(1..maxSimultaneousBands)) OPTIONAL,
+ -- R4 38-3: Switching Period for unaffected Band for Dual UL
+ uplinkTxSwitchingPeriodUnaffectedBandDualUL-List-r18 SEQUENCE (SIZE (1..maxSimultaneousBands-2-r18)) OF
+ SwitchingPeriodUnaffectedBandDualUL-r18 OPTIONAL
}
+UplinkTxSwitchingBandParameters-v1700 ::= SEQUENCE {
+ bandIndex-r17 INTEGER(1..maxSimultaneousBands),
+ -- R4 38-5: UL-MIMO coherence capability for dynamic Tx switching between 2Tx-2Tx switching among up to 4 bands
+ uplinkTxSwitching2T2T-PUSCH-TransCoherence-r17 ENUMERATED {nonCoherent, fullCoherent} OPTIONAL
+}
+
+UplinkTxSwitchingAdditionalPeriodDualUL-r18::= SEQUENCE {
+ uplinkTxSwitchingBetweenBandPairs-r18 SEQUENCE {
+ bandPairIndex1-r18 INTEGER(1.. maxULTxSwitchingBandPairs),
+ anotherBandPairOrBand-r18 CHOICE {
+ bandPairIndex2-r18 INTEGER(1.. maxULTxSwitchingBandPairs),
+ bandIndex-r18 INTEGER(1..maxSimultaneousBands)
+ }
+ },
+ -- R4 38-4: Additional switching Period for switching case across three or four bands for Dual UL
+ switchingAdditionalPeriodDualUL-r18 ENUMERATED {n35us, n140us, n210us}
+}
+
+SwitchingPeriodUnaffectedBandDualUL-r18::= SEQUENCE {
+ bandIndexUnaffected-r18 INTEGER(1..maxSimultaneousBands),
+ periodUnaffectedBandDualUL-r18 CHOICE {
+ maintainedUL-Trans-r18 NULL,
+ periodOnULBands-r18 ENUMERATED {n35us, n140us, n210us}
+ }
+}
+
+
BandParameters ::= CHOICE {
eutra SEQUENCE {
bandEUTRA FreqBandIndicatorEUTRA,
@@ -11938,12 +14749,44 @@ BandParameters-v1730 ::= SEQUENCE {
srs-SwitchingAffectedBandsListNR-r17 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF SRS-SwitchingAffectedBandsNR-r17
}
+BandParameters-v1770 ::= SEQUENCE {
+ ca-BandwidthClassDL-NR-r17 CA-BandwidthClassNR-r17 OPTIONAL,
+ ca-BandwidthClassUL-NR-r17 CA-BandwidthClassNR-r17 OPTIONAL
+}
+
+BandParameters-v1780 ::= SEQUENCE {
+ ca-BandwidthClassDL-NR-r17 CA-BandwidthClassNR-r17 OPTIONAL,
+ ca-BandwidthClassUL-NR-r17 CA-BandwidthClassNR-r17 OPTIONAL,
+ supportedAggBW-FR2-r17 SEQUENCE {
+ supportedAggBW-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-UL-r17 SupportedAggBandwidth-r17 OPTIONAL
+ } OPTIONAL
+}
+
+BandParameters-v1810 ::= SEQUENCE {
+ -- R1 40-5-4: SRS 8 Tx ports-antenna switching
+ srs-AntennaSwitching8T8R-r18 SEQUENCE {
+ antennaSwitch8T8R-r18 ENUMERATED {noTdm, tdmAndNoTdm} OPTIONAL,
+ downgradeConfig-r18 CHOICE {
+ empty-r18 NULL,
+ downgrade-r18 BIT STRING (SIZE (11))
+ } OPTIONAL,
+ entryNumberAffect-r18 INTEGER (1..32) OPTIONAL,
+ entryNumberSwitch-r18 INTEGER (1..32) OPTIONAL
+ } OPTIONAL
+}
+
ScalingFactorSidelink-r16 ::= ENUMERATED {f0p4, f0p75, f0p8, f1}
IntraBandPowerClass-r16 ::= ENUMERATED {pc2, pc3, spare6, spare5, spare4, spare3, spare2, spare1}
SRS-SwitchingAffectedBandsNR-r17 ::= BIT STRING (SIZE (1..maxSimultaneousBands))
+SupportedIntraENDC-BandCombination-r17 ::= SEQUENCE {
+ supportedBandwidthCombinationSetIntraENDC-v1790 BIT STRING (SIZE (1..32)) OPTIONAL,
+ mrdc-Parameters-v1790 MRDC-Parameters-v1790 OPTIONAL
+}
+
-- TAG-BANDCOMBINATIONLIST-STOP
-- TAG-BANDCOMBINATIONLISTSIDELINKEUTRANR-START
@@ -12047,8 +14890,12 @@ CA-BandwidthClassEUTRA ::= ENUMERATED {a, b, c, d, e, f, ...}
-- TAG-CA-BANDWIDTHCLASSEUTRA-STOP
-- TAG-CA-BANDWIDTHCLASSNR-START
--- R4 17-6: new CA BW Classes R2~R12
-CA-BandwidthClassNR ::= ENUMERATED {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, ...,r2-v1730, r3-v1730, r4-v1730, r5-v1730, r6-v1730, r7-v1730, r8-v1730, r9-v1730, r10-v1730, r11-v1730, r12-v1730 }
+-- R4 17-6: new CA BW Classes R2-R12
+-- R4 17-7: new CA BW Classes V, W
+
+CA-BandwidthClassNR ::= ENUMERATED {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, ...,r2-v1730, r3-v1730, r4-v1730, r5-v1730, r6-v1730, r7-v1730, r8-v1730, r9-v1730, r10-v1730, r11-v1730, r12-v1730,v-v1770, w-v1770 }
+
+CA-BandwidthClassNR-r17 ::= ENUMERATED {r, s, t, u, ...}
-- TAG-CA-BANDWIDTHCLASSNR-STOP
-- TAG-CA-PARAMETERSEUTRA-START
@@ -12408,6 +15255,250 @@ CA-ParametersNR-v1740 ::= SEQUENCE {
singlePUCCH-ConfigForMulticast-r17 ENUMERATED {supported} OPTIONAL
}
+CA-ParametersNR-v1760 ::= SEQUENCE {
+ prioSCellPRACH-OverSP-PeriodicSRS-Support-r17 ENUMERATED {supported} OPTIONAL
+}
+
+CA-ParametersNR-v1770 ::= SEQUENCE {
+ parallelTxPUCCH-PUSCH-SamePriority-r17 ENUMERATED {supported} OPTIONAL
+}
+
+CA-ParametersNR-v1780 ::= SEQUENCE {
+ parallelTxPUCCH-PUSCH-SamePriority-r17 ENUMERATED {supported} OPTIONAL,
+ supportedAggBW-FR1-r17 SEQUENCE {
+ scalingFactorSCS-r17 ENUMERATED {true} OPTIONAL,
+ supportedAggBW-FDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-FDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TotalDL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TotalUL-r17 SupportedAggBandwidth-r17 OPTIONAL
+ } OPTIONAL
+}
+
+CA-ParametersNR-v1800 ::= SEQUENCE {
+ codebookParametersetype2DopplerCSI-PerBC-r18 CodebookParametersetype2DopplerCSI-r18 OPTIONAL,
+ codebookParametersfetype2DopplerCSI-PerBC-r18 CodebookParametersfetype2DopplerCSI-r18 OPTIONAL,
+ codebookParametersetype2CJT-PerBC-r18 CodebookParametersetype2CJT-r18 OPTIONAL,
+ codebookParametersfetype2CJT-PerBC-r18 CodebookParametersfetype2CJT-r18 OPTIONAL,
+ codebookComboParametersCJT-PerBC-r18 CodebookComboParametersCJT-r18 OPTIONAL,
+ codebookParametersHARQ-ACK-PUSCH-PerBC-r18 CodebookParametersHARQ-ACK-PUSCH-r18 OPTIONAL,
+ -- R1 40-2-8: Maximum number of TAGs across all CCs
+ maxNumberTAG-AcrossCC-r18 INTEGER (2..4) OPTIONAL,
+ -- R1 40-3-3-1: TDCP (Time Domain Channel Properties) report
+ tdcp-ReportPerBC-r18 SEQUENCE {
+ valueX-r18 INTEGER (1..2),
+ maxNumberActiveResource-r18 INTEGER (2..32)
+ } OPTIONAL,
+ -- R1 40-3-3-5: Number of CSI-RS resources for TDCP
+ tdcp-ResourcePerBC-r18 SEQUENCE {
+ maxNumberConfigPerCC-r18 ENUMERATED {n2,n4,n6,n8,n10,n12},
+ maxNumberConfigAcrossCC-r18 INTEGER (1..32),
+ maxNumberSimultaneousPerCC-r18 ENUMERATED {n2, n4, n6, n8, n12, n16, n20, n24, n28, n32}
+ } OPTIONAL,
+ -- R1 40-3-1-24: Timeline for regular eType-II-CJT CSI, or for port selection FeType-II-CJT CSI
+ timelineRelax-CJT-CSI-CA-r18 ENUMERATED {n0,n2} OPTIONAL,
+ -- R1 42-1: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for periodic CSI reporting
+ spatialAdaptation-CSI-FeedbackPerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 SEQUENCE {
+ sdType1-Resource-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22,
+ n24, n26, n28, n30, n32, n34, n36, n38, n40, n42, n44,
+ n46, n48, n50, n52, n54, n56, n58, n60, n62, n64},
+ sdType2-Resource-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22,
+ n24, n26, n28, n30, n32, n34, n36, n38, n40, n42, n44,
+ n46, n48, n50, n52, n54, n56, n58, n60, n62, n64}
+ },
+ maxNumberPortsAcrossCC-r18 SEQUENCE {
+ sdType1-Resource-r18 INTEGER (1..32),
+ sdType2-Resource-r18 INTEGER (1..32)
+ }
+ } OPTIONAL,
+ -- R1 40-7-2a: Association between CSI-RS and SRS for non-codebook case
+ nonCodebook-CSI-RS-SRS-PerBC-r18 SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource OPTIONAL,
+ -- R1 42-1a: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for periodic CSI reporting on
+ -- PUSCH
+ spatialAdaptation-CSI-FeedbackPUSCH-PerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, n28,
+ n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, n54,
+ n56, n58, n60, n62, n64},
+ maxNumberPortsAcrossCC-r18 INTEGER (1..32)
+ } OPTIONAL,
+ -- R1 42-1b: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for aperiodic CSI reporting
+ spatialAdaptation-CSI-FeedbackAperiodicPerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 SEQUENCE {
+ sdType1-Resource-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22,
+ n24, n26, n28, n30, n32, n34, n36, n38, n40, n42, n44,
+ n46, n48, n50, n52, n54, n56, n58, n60, n62, n64},
+ sdType2-Resource-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22,
+ n24, n26, n28, n30, n32, n34, n36, n38, n40, n42, n44,
+ n46, n48, n50, n52, n54, n56, n58, n60, n62, n64}
+ },
+ maxNumberPortsAcrossCC-r18 SEQUENCE {
+ sdType1-Resource-r18 INTEGER (1..32),
+ sdType2-Resource-r18 INTEGER (1..32) }
+ } OPTIONAL,
+ -- R1 42-1c: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for semi-persistent CSI
+ -- reporting on PUCCH
+ spatialAdaptation-CSI-FeedbackPUCCH-PerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, n28,
+ n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, n54,
+ n56, n58, n60, n62, n64},
+ maxNumberPortsAcrossCC-r18 INTEGER (1..32)
+ } OPTIONAL,
+ -- R1 42-2: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for periodic CSI reporting
+ powerAdaptation-CSI-FeedbackPerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, n28,
+ n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, n54,
+ n56, n58, n60, n62, n64},
+ maxNumberPortsAcrossCC-r18 INTEGER (1..32)
+ } OPTIONAL,
+ -- R1 42-2a: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for periodic CSI reporting on PUSCH
+ powerAdaptation-CSI-FeedbackPUSCH-PerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, n28,
+ n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, n54,
+ n56, n58, n60, n62, n64},
+ maxNumberPortsAcrossCC-r18 INTEGER (1..32)
+ } OPTIONAL,
+ -- R1 42-2b: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for aperiodic CSI reporting
+ powerAdaptation-CSI-FeedbackAperiodicPerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, n28,
+ n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, n54,
+ n56, n58, n60, n62, n64},
+ maxNumberPortsAcrossCC-r18 INTEGER (1..32)
+ } OPTIONAL,
+ -- R1 42-2c: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for semi-persistent CSI
+ -- reporting on PUCCH
+ powerAdaptation-CSI-FeedbackPUCCH-PerBC-r18 SEQUENCE {
+ maxNumberCSI-ResourceAcrossCC-r18 ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, n28,
+ n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, n54,
+ n56, n58, n60, n62, n64},
+ maxNumberPortsAcrossCC-r18 INTEGER (1..32)
+ } OPTIONAL,
+
+ -- R1 42-7: Mixed codebook combination for spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s),
+ -- each containing one port subset configuration
+ mixCodeBookSpatialAdaptationPerBC-r18 SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource OPTIONAL,
+ -- R1 42-9: Indicates whether the UE supports CSI report framework and the number of CSI report(s) which the UE can
+ -- simultaneously process across all CCs, and across MCG and SCG in case of NR-DC.
+ simultaneousCSI-SubReportsAllCC-r18 INTEGER (5..32) OPTIONAL,
+
+ -- R1 49-1: Multi-cell PDSCH scheduling by DCI format 1_3 on a scheduling cell with same SCS between scheduling
+ -- cell and cells in the set
+ multiCell-PDSCH-DCI-1-3-SameSCS-r18 SEQUENCE {
+ coScheduledCellSCS-r18 SEQUENCE {
+ nonSharedSpectrum-fdd-fr1 ENUMERATED {supported} OPTIONAL,
+ nonSharedSpectrum-tdd-fr1 ENUMERATED {supported} OPTIONAL,
+ sharedSpectrum-tdd-fr1 ENUMERATED {supported} OPTIONAL,
+ fr2-1 ENUMERATED {supported} OPTIONAL,
+ fr2-2 ENUMERATED {supported} OPTIONAL
+ },
+ maxNumberCoScheduledCell-r18 INTEGER (2..4),
+ maxNumberSetsOfCellAcrossPUCCH-Group-r18 INTEGER (1..8),
+ maxNumberSetsOfCellScheduling-r18 INTEGER (1..4),
+ harqFeedbackType-r18 ENUMERATED {type1, type2, type1And2},
+ coScheduledCellIndicationScheme-r18 ENUMERATED {fdra,cellInd, both},
+ supportOfSearchSpace-r18 ENUMERATED {supported} OPTIONAL,
+ licensed-fdd-tdd-fr1-r18 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ -- R1 49-1b: Multi-cell PDSCH scheduling by DCI format 1_3 on a scheduling cell not included in a set of cells with different
+ -- SCS/carrier type between scheduling cell and cells in the set
+ multiCell-PDSCH-DCI-1-3-DiffSCS-r18 SEQUENCE {
+ coScheduledCellSCS-r18 ENUMERATED {lowScheduling-highScheduled, highScheduling-lowScheduled, both},
+ combinationCarrierType-r18 SEQUENCE (SIZE(1..maxSchedulingBandCombination-r18)) OF
+ CombinationCarrierType-r18,
+ maxNumberCoScheduledCell-r18 INTEGER (2..4),
+ maxNumberSetsOfCellAcrossPUCCH-Group-r18 INTEGER (1..8),
+ maxNumberSetsOfCellScheduling-r18 INTEGER (1..4),
+ harqFeedbackType-r18 ENUMERATED {type1, type2, type1And2},
+ coScheduledCellIndicationScheme-r18 ENUMERATED {fdra,cellInd, both}
+ } OPTIONAL,
+ -- R1 49-2: Multi-cell PUSCH scheduling by DCI format 0_3 on a scheduling cell with same SCS between scheduling cell
+ -- and cells in the set
+ multiCell-PUSCH-DCI-0-3-SameSCS-r18 SEQUENCE {
+ coScheduledCellSCS-r18 SEQUENCE {
+ nonSharedSpectrum-fdd-fr1 ENUMERATED {supported} OPTIONAL,
+ nonSharedSpectrum-tdd-fr1 ENUMERATED {supported} OPTIONAL,
+ sharedSpectrum-tdd-fr1 ENUMERATED {supported} OPTIONAL,
+ fr2-1 ENUMERATED {supported} OPTIONAL,
+ fr2-2 ENUMERATED {supported} OPTIONAL
+ }, maxNumberCoScheduledCell-r18 INTEGER (2..4),
+ maxNumberSetsOfCellAcrossPUCCH-Group-r18 INTEGER (1..8),
+ maxNumberSetsOfCellScheduling-r18 INTEGER (1..4),
+ coScheduledCellIndicationScheme-r18 ENUMERATED {fdra,cellInd, both},
+ supportOfSearchSpace-r18 ENUMERATED {supported} OPTIONAL,
+ licensed-fdd-tdd-fr1-r18 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ -- R1 49-2b: Multi-cell PUSCH scheduling by DCI format 0_3 on a scheduling cell not included in a set of cells with
+ -- different SCS/carrier type between scheduling cell and cells in the set
+ multiCell-PUSCH-DCI-0-3-DiffSCS-r18 SEQUENCE {
+ coScheduledCellSCS-r18 ENUMERATED {lowScheduling-highScheduled, highScheduling-lowScheduled, both},
+ combinationCarrierType-r18 SEQUENCE (SIZE(1..maxSchedulingBandCombination-r18)) OF
+ CombinationCarrierType-r18,
+ maxNumberCoScheduledCell-r18 INTEGER (2..4),
+ maxNumberSetsOfCellAcrossPUCCH-Group-r18 INTEGER (1..8),
+ maxNumberSetsOfCellScheduling-r18 INTEGER (1..4),
+ coScheduledCellIndicationScheme-r18 ENUMERATED {fdra,cellInd, both}
+ } OPTIONAL,
+ -- R1 49-3x: Advanced UE capability for larger number of unicast DL DCI
+ advUnicastDCI-DL-r18 SEQUENCE {
+ scs-15kHz-120kHz-r18 ENUMERATED {n2, n4} OPTIONAL,
+ scs-15kHz-60kHz-r18 ENUMERATED {n2, n4} OPTIONAL,
+ scs-30kHz-120kHz-r18 ENUMERATED {n2, n4} OPTIONAL,
+ scs-15kHz-30kHz-r18 ENUMERATED {n2} OPTIONAL,
+ scs-30kHz-60kHz-r18 ENUMERATED {n2} OPTIONAL,
+ scs-60kHz-120kHz-r18 ENUMERATED {n2} OPTIONAL
+ } OPTIONAL,
+ -- R1 49-3y: Advanced UE capability for larger number of unicast UL DCI
+ advUnicastDCI-UL-r18 SEQUENCE {
+ scs-15kHz-120kHz-r18 ENUMERATED {n2, n4} OPTIONAL,
+ scs-15kHz-60kHz-r18 ENUMERATED {n2, n4} OPTIONAL,
+ scs-30kHz-120kHz-r18 ENUMERATED {n2, n4} OPTIONAL,
+ scs-15kHz-30kHz-r18 ENUMERATED {n2} OPTIONAL,
+ scs-30kHz-60kHz-r18 ENUMERATED {n2} OPTIONAL,
+ scs-60kHz-120kHz-r18 ENUMERATED {n2} OPTIONAL
+ } OPTIONAL,
+ -- R1 49-5a: Trigger Type 3 HARQ CB based feedback using DCI format 1_3
+ type3HARQ-CB-DCI-1-3-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-5b: Trigger enhanced Type 3 HARQ CB based feedback using DCI format 1_3
+ type3EnhHARQ-CB-DCI-1-3-r18 SEQUENCE {
+ numberOfCodebook-r18 ENUMERATED {n1, n2, n4, n8},
+ maxNumberPUCCH-Trans-r18 INTEGER (1..7)
+ } OPTIONAL,
+ -- R1 49-9: SCell dormancy indication within active time in DCI format 0_3/1_3
+ scellDormancyWithinActiveTime-DCI-0-3-And-1-3-r18 ENUMERATED {supported} OPTIONAL,
+ pdcch-MonitoringCA-Ext-r18 CHOICE {
+ -- R1 55-6a: Capability on the number of CCs for monitoring a maximum number of BDs and non-overlapped CCEs per span when
+ -- configured with DL CA with Rel-16 PDCCH monitoring capability on all the serving cells
+ pdcch-MonitoringCA-r18 SEQUENCE {
+ maxNumberOfMonitoringCC-r18 INTEGER (2..16),
+ supportedSpanArrangement-r18 ENUMERATED {alignedOnly, alignedAndNonAligned}
+ },
+ -- R1 55-6f: Capability on the number of CCs for monitoring a maximum number of BDs and non-overlapped CCEs per span when
+ -- configured with DL CA with Rel-16 PDCCH monitoring capability on all the serving cells with restriction for non-aligned
+ -- span case
+ pdcch-MonitoringCA-NonAlignedSpan-r18 INTEGER (2..16)
+ } OPTIONAL,
+ pdcch-BlindDetectionCA-MixedExt-r18 CHOICE {
+ -- R1 55-6c: Number of carriers for CCE/BD scaling with DL CA with mix of Rel. 16 and Rel. 15 PDCCH monitoring capabilities on
+ -- different carriers
+ pdcch-BlindDetectionCA-Mixed-r18 SEQUENCE {
+ blindDetectionCA-Mixed-r18 SEQUENCE(SIZE (1..maxNrofPdcch-BlindDetectionMixed-1-r16)) OF
+ PDCCH-BlindDetectionCA-MixedExt-r16,
+ supportedSpanArrangement-r18 ENUMERATED{ alignedOnly, alignedAndNonAligned }
+ },
+ -- R1 55-6g: Number of carriers for CCE/BD scaling with DL CA with mix of Rel. 16 and Rel. 15 PDCCH monitoring capabilities on
+ -- different carriers with restriction for non-aligned span case
+ pdcch-BlindDetectionCA-Mixed-NonAlignedSpan-r18 SEQUENCE(SIZE (1..maxNrofPdcch-BlindDetectionMixed-1-r16)) OF
+ PDCCH-BlindDetectionCA-MixedExt-r16
+ } OPTIONAL,
+ -- R1 55-6e: Number of carriers for CCE/BD scaling for MCG and for SCG when configured for NR-DC operation with mix of Rel. 16
+ -- and Rel. 15 PDCCH monitoring capabilities on different carriers
+ pdcch-BlindDetectionMCG-SCG-List-r18 SEQUENCE(SIZE (1..maxNrofPdcch-BlindDetectionMixed-1-r16)) OF
+ PDCCH-BlindDetectionMixed2-r18 OPTIONAL,
+ -- R4 33-1: Support of intra-band non-collocated NR CA operation
+ intraBandNR-CA-non-collocated-r18 ENUMERATED {supported} OPTIONAL
+}
+
CrossCarrierSchedulingSCell-SpCell-r17 ::= SEQUENCE {
supportedSCS-Combinations-r17 SEQUENCE {
scs15kHz-15kHz-r17 ENUMERATED {supported} OPTIONAL,
@@ -12483,6 +15574,11 @@ PDCCH-BlindDetectionCA-Mixed1-r17 ::= SEQUENCE {
pdcch-BlindDetectionCA3-r17 INTEGER (1..15) OPTIONAL
}
+PDCCH-BlindDetectionMixed2-r18 ::= SEQUENCE{
+ pdcch-BlindDetectionMCG-UE-Mixed-r18 PDCCH-BlindDetectionCG-UE-MixedExt-r16,
+ pdcch-BlindDetectionSCG-UE-Mixed-r18 PDCCH-BlindDetectionCG-UE-MixedExt-r16
+}
+
SimulSRS-ForAntennaSwitching-r16 ::= SEQUENCE {
supportSRS-xTyR-xLessThanY-r16 ENUMERATED {supported} OPTIONAL,
supportSRS-xTyR-xEqualToY-r16 ENUMERATED {supported} OPTIONAL,
@@ -12523,6 +15619,11 @@ PUCCH-Group-Config-r17 ::= SEQUENCE {
fr1-FR2-NonSharedTDD-r17 ENUMERATED {supported} OPTIONAL
}
+CombinationCarrierType-r18 ::= SEQUENCE {
+ schedulingCellCarrierType-r18 ENUMERATED {licensed-fdd-fr1, licensed-tdd-fr1, unlicensed-tdd-fr1, fr2-1, fr2-2},
+ scheduledCellCarrierType-r18 ENUMERATED {licensed-fdd-fr1, licensed-tdd-fr1, unlicensed-tdd-fr1, fr2-1, fr2-2}
+}
+
-- TAG-CA-PARAMETERSNR-STOP
-- TAG-CA-PARAMETERS-NRDC-START
@@ -12580,7 +15681,30 @@ CA-ParametersNRDC-v1720 ::= SEQUENCE {
}
CA-ParametersNRDC-v1730 ::= SEQUENCE {
- ca-ParametersNR-ForDC-v1730 CA-ParametersNR-v1730 OPTIONAL
+ ca-ParametersNR-ForDC-v1730 CA-ParametersNR-v1730 OPTIONAL
+}
+
+CA-ParametersNRDC-v1760 ::= SEQUENCE {
+ ca-ParametersNR-ForDC-v1760 CA-ParametersNR-v1760
+}
+
+CA-ParametersNRDC-v1780 ::= SEQUENCE {
+ ca-ParametersNR-ForDC-v1780 CA-ParametersNR-v1780 OPTIONAL
+}
+
+CA-ParametersNRDC-v1800 ::= SEQUENCE {
+ ca-ParametersNR-ForDC-v1800 CA-ParametersNR-v1800 OPTIONAL,
+ -- R1 55-6d: Capability on the number of CCs for monitoring a maximum number of BDs and non-overlapped CCEs per span for MCG and for
+ -- SCG when configured for NR-DC operation with Rel-16 PDCCH monitoring on all the serving cells
+ pdcch-BlindDetectionNRDC-r18 SEQUENCE(SIZE (1..maxNrofPdcch-BlindDetectionMixed-1-r16)) OF
+ PDCCH-BlindDetectionMixed1-r18 OPTIONAL
+}
+
+PDCCH-BlindDetectionMixed1-r18::= SEQUENCE {
+ pdcch-BlindDetectionCG-UE-Mixed-r18 SEQUENCE{
+ pdcch-BlindDetectionMCG-UE-Mixed-r18 INTEGER (1..15),
+ pdcch-BlindDetectionSCG-UE-Mixed-r18 INTEGER (1..15)
+ }
}
-- TAG-CA-PARAMETERS-NRDC-STOP
@@ -12987,6 +16111,171 @@ CodebookComboParameterMultiTRP-PerBC-r17::= SEQUENCE {
OPTIONAL
}
+CodebookParametersetype2DopplerCSI-r18 ::= SEQUENCE {
+ -- R1 40-3-2-1: Support of Rel-16-based doppler CSI
+ eType2Doppler-r18 SEQUENCE {
+ supportedCSI-RS-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16),
+ valueY-P-SP-CSI-RS-r18 INTEGER (1..3),
+ valueY-A-CSI-RS-r18 INTEGER (1..3),
+ scalingfactor-r18 ENUMERATED {n1, n2, n4}
+ },
+ -- R1 40-3-2-1a: Support of Rel-16-based doppler measurement with N4>1
+ eType2DopplerN4-r18 SEQUENCE {
+ supportedCSI-RS-ReportSettingList1-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF
+ SupportedCSI-RS-ReportSetting-r18,
+ supportedCSI-RS-ReportSettingList2-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF
+ SupportedCSI-RS-ReportSetting-r18
+ } OPTIONAL,
+ -- R1 40-3-2-1a-1: DD unit size when A-CSI-RS is configured for CMR N4>1
+ ddUnitSize-A-CSI-RS-CMR-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-2-1b: Maximum number of aperiodic CSI-RS resources that can be configured in the same CSI report setting for
+ -- Rel-16-based doppler measurement
+ maxNumberAperiodicCSI-RS-Resource-r18 ENUMERATED {n4, n8, n12} OPTIONAL,
+ -- R1 40-3-2-2: Support R=2 for Rel-16-based doppler codebook
+ eType2DopplerR2-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ -- R1 40-3-2-3: Support X=1 based on first and last slot of WCSI, for Rel-16-based doppler codebook
+ eType2DopplerX1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-2-3a: Support X=2 CQI based on 2 slots for Rel-16-based doppler codebook
+ eType2DopplerX2-r18 ENUMERATED {supported} OPTIONAL,
+ --R1 40-3-2-7: support of l = (n - nCSI,ref ) for CSI reference slot for Rel-16 based doppler codebook
+ eType2DopplerL-N4D1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-2-8: Support of L=6 for Rel-16 based doppler codebook
+ eType2DopplerL6-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-2-9: Support of rank equals 3 and 4 for Rel-16 based doppler codebook
+ eType2DopplerR3R4-r18 ENUMERATED {supported} OPTIONAL
+}
+
+CodebookParametersfetype2DopplerCSI-r18 ::= SEQUENCE {
+ -- R1 40-3-2-4: Support of Rel-17-based doppler CSI
+ feType2Doppler-r18 SEQUENCE {
+ supportedCSI-RS-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16),
+ valueY-A-CSI-RS-r18 INTEGER (1..3),
+ scalingfactor-r18 ENUMERATED {n1, n2, n4}
+ },
+ -- R1 40-3-2-4b: Maximum number of aperiodic CSI-RS resources that can be configured in the same CSI report setting for
+ -- Rel-17-based doppler CSI
+ maxNumberAperiodicCSI-RS-Resource-r18 ENUMERATED {n4, n8, n12} OPTIONAL,
+
+ -- R1 40-3-2-5: Support of M=2 and R=1 for Rel-17-based doppler codebook
+ feType2DopplerM2R1-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ -- R1 40-3-2-6: Support R=2 for Rel-17-based doppler codebook
+ feType2DopplerR2-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ --R1 40-3-2-7a: Support of l = (n - nCSI,ref ) for CSI reference slot for Rel-17 based doppler codebook
+ feType2DopplerL-N4D1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-2-10: Support of rank equals 3 and 4 for Rel-17 based doppler codebook
+ feType2DopplerR3R4-r18 ENUMERATED {supported} OPTIONAL
+}
+
+CodebookParametersetype2CJT-r18 ::= SEQUENCE {
+ -- R1 40-3-1-1: Basic feature for Rel-16-based CJT type-II codebook
+ eType2CJT-r18 SEQUENCE {
+ supportedCSI-RS-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16),
+ scalingfactor-r18 ENUMERATED {n1, n1dot5, n2},
+ maxNumberNZP-CSI-RS-MultiTRP-CJT-r18 INTEGER (2..4)
+ },
+ -- R1 40-3-1-1a: Support of mode 1 for Rel-16-based CJT type-II codebook with FD basis selection integer frequency offset
+ eType2CJT-FD-IO-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16) OPTIONAL,
+ -- R1 40-3-1-2: Support for FD basis selection fractional offset mode for Rel-16-based CJT codebook with mode1
+ eType2CJT-FD-FO-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-3: Support R=2 for Rel-16-based CJT codebook
+ eType2CJT-R2-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16) OPTIONAL,
+ -- R1 40-3-1-4: Support pv={1/2,1/2,1/2,1/2} and beta=1/2 for Rel-16-based CJT codebook
+ eType2CJT-PV-Beta-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-9: Support for 2NN1N2 >32 for Rel-16 based CJT codebook
+ eType2CJT-2NN1N2-r18 ENUMERATED {n64,n96,n128} OPTIONAL,
+ -- R1 40-3-1-12: Support of Rank 3 and 4 for Rel-16-based CJT type-II codebook
+ eType2CJT-Rank3Rank4-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-14: Support of Support of L=6 for Rel-16-based CJT type-II codebook
+ eType2CJT-L6-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-15: dynamic selection of N<=N_TRP for Rel-16-based CJT type-II codebook
+ eType2CJT-NN-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-17: Support for N_L>1 combinations of number of SD basis across CSI-RS resources for Rel-16-based CJT
+ -- type-II codebook
+ eType2CJT-NL-SD-r18 ENUMERATED {n2,n4} OPTIONAL,
+ -- R1 40-3-1-23: Unequal number of spatial basis selection configuration for multi-TRP CJT
+ eType2CJT-Unequal-r18 ENUMERATED {supported} OPTIONAL
+}
+
+CodebookParametersfetype2CJT-r18 ::= SEQUENCE {
+ -- R1 40-3-1-5: Basic feature for Rel-17-based CJT type-II codebook
+ feType2CJT-r18 SEQUENCE {
+ supportedCSI-RS-ResourceList-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16),
+ scalingfactor-r18 ENUMERATED {n1, n1dot5, n2},
+ maxNumberNZP-CSI-RS-MultiTRP-CJT-r18 INTEGER (2..4)
+ },
+ -- R1 40-3-1-5a: Support of mode 1 for Rel-17-based CJT type-II codebook with FD basis selection integer frequency offset
+ feType2CJT-FD-IO-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16) OPTIONAL,
+ -- R1 40-3-1-6: Support for FD basis selection fractional offset mode for Rel-17-based CJT codebook with mode1
+ feType2CJT-FD-FO-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-7: Support of M=2 and R=1 for Rel-17-based CJT codebook
+ feType2CJT-M2R1-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16) OPTIONAL,
+ -- R1 40-3-1-8: Support of R=2 for Rel-17-based CJT codebook
+ feType2CJT-R2-r18 SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER
+ (0..maxNrofCSI-RS-ResourcesAlt-1-r16) OPTIONAL,
+ -- R1 40-3-1-9a: Support for 2NN1N2 >32 for Rel-17 based CJT codebook
+ feType2CJT-2NN1N2-r18 ENUMERATED {n64,n96,n128} OPTIONAL,
+ -- R1 40-3-1-13: Support of Rank 3 and 4 for Rel-17-based CJT type-II codebook
+ feType2CJT-Rank3Rank4-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-16: dynamic selection of N<=N_TRP for Rel-17-based CJT type-II codebook
+ feType2CJT-NN-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-1-18: Support for N_L>1 combinations of number of SD basis across CSI-RS resources for Rel-17-based CJT
+ -- type-II codebook
+ feType2CJT-NL-r18 ENUMERATED {n2,n4} OPTIONAL,
+ -- R1 40-3-1-23a: Unequal number of port selection configuration for multi-TRP CJT
+ feType2CJT-Unequal-r18 ENUMERATED {supported} OPTIONAL
+}
+
+CodebookComboParametersCJT-r18::= SEQUENCE {
+ -- R1 40-3-1-11: Active CSI-RS resources and ports for mixed codebook types including Type-II-CJT in any slot
+ -- {Codebook 1} = Type I SP
+ cjt-Type1SP-eType2R1-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1SP-eType2R2-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1SP-feType2R1M1-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1SP-feType2R1M2-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1SP-feType2R2M2-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ -- {Codebook 1} = Type I MP
+ cjt-Type1MP-eType2R1-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1MP-eType2R2-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1MP-feType2R1M1-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1MP-feType2R1M2-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL,
+ cjt-Type1MP-feType2R2M2-null SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesExt-r16)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)
+ OPTIONAL
+}
+
+CodebookParametersHARQ-ACK-PUSCH-r18::= SEQUENCE {
+ -- R1 55-4a: Multiplexing Type-1 HARQ-ACK codebook in a PUSCH for PDSCH scheduled after UL grant
+ multiplexingType1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 55-4b: Multiplexing Type-2 HARQ-ACK codebook in a PUSCH for PDSCH scheduled after UL grant
+ multiplexingType2-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 55-4c: Multiplexing Type-3 HARQ-ACK codebook in a PUSCH for PDSCH scheduled after UL grant
+ multiplexingType3-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 55-4d: Determining a different PUCCH resource to transmit HARQ-ACK for PDSCH scheduled after UL grant
+ pucch-DiffResource-PDSCH-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 55-4e: Determining different codebook size to transmit HARQ-ACK for PDSCH scheduled after UL grant
+ diffCB-Size-PDSCH-r18 ENUMERATED {supported} OPTIONAL
+}
+
CodebookVariantsList-r16 ::= SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesAlt-r16)) OF SupportedCSI-RS-Resource
SupportedCSI-RS-Resource ::= SEQUENCE {
@@ -12995,7 +16284,43 @@ SupportedCSI-RS-Resource ::= SEQUENCE {
totalNumberTxPortsPerBand INTEGER (2..256)
}
+SupportedCSI-RS-ReportSetting-r18 ::= SEQUENCE {
+ maxN4-r18 ENUMERATED {n1, n2, n4, n8},
+ maxNumberTxPortsPerResource-r18 ENUMERATED {p2, p4, p8, p12, p16, p24, p32},
+ maxNumberResourcesPerBand-r18 INTEGER (1..64),
+ totalNumberTxPortsPerBand-r18 INTEGER (2..256)
+}
+
-- TAG-CODEBOOKPARAMETERS-STOP
+-- TAG-DL-PRS-MEASUREMENTWITHRXFH-RRC-CONNECTED-START
+
+DL-PRS-MeasurementWithRxFH-RRC-Connected-r18 ::= SEQUENCE {
+ maximumPRS-BandwidthAcrossAllHopsFR1-r18 ENUMERATED {mhz40, mhz50, mhz80, mhz100} OPTIONAL,
+ maximumPRS-BandwidthAcrossAllHopsFR2-r18 ENUMERATED {mhz100, mhz200, mhz400} OPTIONAL,
+ maximumFH-Hops-r18 ENUMERATED {n2, n3, n4, n5, n6} OPTIONAL,
+ processingDuration-r18 SEQUENCE {
+ processingPRS-SymbolsDurationN3-r18 ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2, ms4, ms6, ms8, ms12,
+ ms16, ms20, ms25, ms30, ms32, ms35, ms40, ms45, ms50},
+ processingDurationT3-r18 ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80, ms160, ms320, ms640, ms1280}
+ } OPTIONAL,
+ rf-RxRetunTimeFR1-r18 ENUMERATED {n70, n140, n210} OPTIONAL,
+ rf-RxRetunTimeFR2-r18 ENUMERATED {n35, n70, n140} OPTIONAL,
+ numOfOverlappingPRB-r18 ENUMERATED {n0, n1, n2, n4} OPTIONAL,
+ ...
+}
+
+-- TAG-DL-PRS-MEASUREMENTWITHRXFH-RRC-CONNECTED-STOP
+-- TAG-EREDCAPPARAMETERS-START
+
+ERedCapParameters-r18::= SEQUENCE {
+ -- R1 48-1: eRedCap UE with reduced peak data rate and reduced baseband bandwidth in FR1
+ supportOfERedCap-r18 ENUMERATED {supported},
+ -- R1 48-2: eRedCap UE with reduced peak data rate without reduced baseband bandwidth in FR1
+ eRedCapNotReducedBB-BW-r18 ENUMERATED {supported} OPTIONAL,
+ eRedCapIgnoreCapabilityFiltering-r18 ENUMERATED {supported} OPTIONAL
+}
+
+-- TAG-EREDCAPPARAMETERS-STOP
-- TAG-FEATURESETCOMBINATION-START
FeatureSetCombination ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF FeatureSetsPerBand
@@ -13198,6 +16523,95 @@ FeatureSetDownlink-v1730 ::= SEQUENCE {
prs-AsSpatialRelationRS-For-SRS-r17 ENUMERATED {supported} OPTIONAL
}
+FeatureSetDownlink-v1800 ::= SEQUENCE {
+ -- R1 40-1-14a: Dynamic switching - scheme A
+ dynamicSwitchingA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-1-14b: Dynamic switching - scheme B
+ dynamicSwitchingB-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-2-11: Aperiodic CSI report timing relaxation for doppler codebook based on Type-II codebook
+ aperiodicCSI-TimeRelaxation-r18 SEQUENCE {
+ valueW-r18 SEQUENCE{
+ scs-15kHz ENUMERATED {value1, value2} OPTIONAL,
+ scs-30kHz ENUMERATED {value1, value2} OPTIONAL,
+ scs-60kHz ENUMERATED {value1, value2} OPTIONAL,
+ scs-120kHz ENUMERATED {value1, value2} OPTIONAL
+ },
+ timeRelaxation-r18 ENUMERATED {cap1, cap2}
+ } OPTIONAL,
+ -- R1 40-4-1: Basic feature of Rel.18 enhanced DMRS ports for PDSCH for scheduling of mapping type A
+ pdsch-TypeA-DMRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1a: Basic feature of Rel.18 enhanced DMRS ports for PDSCH for scheduling of mapping type B
+ pdsch-TypeB-DMRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1b: 1 symbol FL DMRS and 2 additional DMRS symbols for more than one port for Rel.18 enhanced DMRS ports for PDSCH
+ pdsch-1SymbolFL-DMRS-Addition2Symbol-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1c: Alternative additional DMRS position for co-existence with LTE CRS for Rel.18 enhanced DMRS ports for PDSCH
+ pdsch-AlternativeDMRS-Coexistence-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1d: 2 symbols FL-DMRS for Rel.18 enhanced DMRS ports for PDSCH
+ pdsch-2SymbolFL-DMRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1e: 2-symbol FL DMRS + one additional 2-symbols DMRS for Rel.18 enhanced DMRS ports for PDSCH
+ pdsch-2SymbolFL-DMRS-Addition2Symbol-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1f: 1 symbol FL DMRS and 3 additional DMRS symbols for Rel.18 enhanced DMRS ports for PDSCH
+ pdsch-1SymbolFL-DMRS-Addition3Symbol-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1g: DMRS type for Rel.18 enhanced DMRS ports for PDSCH
+ pdsch-DMRS-Type-r18 ENUMERATED {etype1, etype1And2} OPTIONAL,
+ -- R1 40-4-1h: 1 port DL PTRS for Rel.18 enhanced DMRS ports for PDSCH with rank 1-8
+ pdsch-1PortDL-PTRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1i: 2 port DL PTRS for Rel.18 enhanced DMRS ports for PDSCH with rank 1-8
+ pdsch-2PortDL-PTRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-1j: Support 1 symbol FL DMRS and 2 additional DMRS symbols for at least one port for scheduling of mapping type A
+ mappingTypeA-1SymbolFL-DMRS-Addition2Symbol-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-2: Capability on the maximum number of configured DMRS types for PDSCH across all DL DCI formats per cell
+ maxNumberDMRS-AcrossAllDL-DCI-r18 INTEGER (2..4) OPTIONAL,
+ -- R1 40-4-4: Reception of PDSCH without the scheduling restriction for Rel.18 eType1 DMRS ports
+ pdsch-ReceptionWithoutSchedulingRestriction-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-4a: Reception of PDSCH without the scheduling restriction for Rel.18 eType1 DMRS ports for PDSCH with fdmSchemeA
+ pdsch-ReceptionSchemeA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-4b: Reception of PDSCH without the scheduling restriction for Rel.18 eType1 DMRS ports for PDSCH with fdmSchemeB
+ pdsch-ReceptionSchemeB-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 40-4-5: Rel-18 DL DMRS with single DCI based M-TRP
+ dmrs-MultiTRP-SingleDCI-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-5a: Additional row(s) for antenna ports (0,2,3) for Rel.18 DL DMRS ports for single-DCI based M-TRP
+ dmrs-MultiTRP-AdditionRows-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-7: Rel-18 DL DMRS with M-DCI based M-TRP
+ dmrs-MultiTRP-MultiDCI-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-12: Support of Rel-18 DMRS and PDSCH processing capability 2 simultaneously
+ simulDMRS-PDSCH-r18 SEQUENCE {
+ scs-15kHz-r18 INTEGER (0..4) OPTIONAL,
+ scs-30kHz-r18 INTEGER (0..5) OPTIONAL,
+ scs-60kHz-r18 INTEGER (0..7) OPTIONAL
+ } OPTIONAL,
+
+ -- R1 53-1: Support RLM/BM/BFD and gapless L3 intra-frequency measurements based on CD-SSB outside active BWP without interruptions
+ bwpOperationMeasWithoutInterrupt-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 55-6: (2, 2) span-based PDCCH monitoring with additional restriction(s)
+ pdcch-MonitoringSpan2-2-r18 SEQUENCE{
+ pdsch-ProcessingType1-r18 SEQUENCE{
+ scs-15kHz-r18 ENUMERATED {supported} OPTIONAL,
+ scs-30kHz-r18 ENUMERATED {supported} OPTIONAL
+ },
+ pdsch-ProcessingType2-r18 SEQUENCE{
+ scs-15kHz-r18 ENUMERATED {supported} OPTIONAL,
+ scs-30kHz-r18 ENUMERATED {supported} OPTIONAL
+ }
+ } OPTIONAL,
+ -- R1 55-6b: Mix of Rel-16 PDCCH monitoring capability and Rel. 15 PDCCH monitoring capability on different carriers
+ pdcch-MonitoringMixed-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 55-6h: PDCCH repetition for Rel-16 PDCCH monitoring
+ mTRP-PDCCH-legacyMonitoring-r18 SEQUENCE {
+ scs-15kHz-r18 PDCCH-RepetitionParameters-r17 OPTIONAL,
+ scs-30kHz-r18 PDCCH-RepetitionParameters-r17 OPTIONAL
+ } OPTIONAL,
+
+ -- R4 42-1: Support of SCell without SS/PBCH block for inter-band CA
+ scellWithoutSSB-InterBandCA-r18 CHOICE {
+ supportOfSingleGroup ENUMERATED {referenceBand, scellWithoutSSB, both},
+ supportOfMultipleGroups ENUMERATED {referenceBand1, scellWithoutSSB1, referenceBand2, scellWithoutSSB2}
+ } OPTIONAL,
+ pdcch-RACH-DL-InfoList-r18 SEQUENCE (SIZE (1..maxBandsMRDC)) OF PDCCH-RACH-DL-Info-r18 OPTIONAL
+}
+
PDCCH-MonitoringOccasions-r16 ::= SEQUENCE {
period7span3-r16 ENUMERATED {supported} OPTIONAL,
period4span3-r16 ENUMERATED {supported} OPTIONAL,
@@ -13315,6 +16729,26 @@ FeatureSetDownlinkPerCC-v1730 ::= SEQUENCE {
dci-BroadcastWith16Repetitions-r17 ENUMERATED {supported} OPTIONAL
}
+FeatureSetDownlinkPerCC-v1780 ::= SEQUENCE {
+ supportedBandwidthDL-v1780 SupportedBandwidth-v1700 OPTIONAL
+}
+
+FeatureSetDownlinkPerCC-v1800 ::= SEQUENCE {
+ -- R1 40-2-1: Basic feature for multi-DCI based intra-cell Multi-TRP operation with two TA enhancement
+ multiDCI-IntraCellMultiTRP-TwoTA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-2-2: Basic feature for multi-DCI based inter-cell Multi-TRP operation with two TA enhancement
+ multiDCI-InterCellMultiTRP-TwoTA-r18 INTEGER (1..2) OPTIONAL,
+ -- R1 40-2-6: Rx timing difference larger than CP length
+ rxTimingDiff-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 55-7: Two QCL TypeD for CORESET monitoring in multi-DCI based multi-TRP
+ multiDCI-MultiTRP-CORESET-Monitoring-r18 ENUMERATED {supported} OPTIONAL,
+ broadcastNonServingCell-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R4 30-1: Supports scheduling restriction relaxation and measurement restriction relaxation
+ schedulingMeasurementRelaxation-r18 ENUMERATED {supported} OPTIONAL
+}
+
MultiDCI-MultiTRP-r16 ::= SEQUENCE {
maxNumberCORESET-r16 ENUMERATED {n2, n3, n4, n5},
maxNumberCORESETPerPoolIndex-r16 INTEGER (1..3),
@@ -13391,6 +16825,16 @@ FeatureSets ::= SEQUENCE {
[[
featureSetsDownlink-v1730 SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink-v1730 OPTIONAL,
featureSetsDownlinkPerCC-v1730 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC-v1730 OPTIONAL
+ ]],
+ [[
+ featureSetsDownlinkPerCC-v1780 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC-v1780 OPTIONAL,
+ featureSetsUplinkPerCC-v1780 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC-v1780 OPTIONAL
+ ]],
+ [[
+ featureSetsDownlink-v1800 SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink-v1800 OPTIONAL,
+ featureSetsDownlinkPerCC-v1800 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC-v1800 OPTIONAL,
+ featureSetsUplink-v1800 SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink-v1800 OPTIONAL,
+ featureSetsUplinkPerCC-v1800 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC-v1800 OPTIONAL
]]
}
@@ -13622,6 +17066,92 @@ FeatureSetUplink-v1720 ::= SEQUENCE {
extendedDC-LocationReport-r17 ENUMERATED {supported} OPTIONAL
}
+FeatureSetUplink-v1800 ::= SEQUENCE {
+ -- R1 40-3-3-1a: Supported maximum delay value larger than D_basic
+ maxDelayValueBeyondD-Basic-r18 ENUMERATED {sl2,sl3,sl4,sl5,sl6,sl10} OPTIONAL,
+ -- R1 40-3-3-2: Number of delay values
+ tdcp-NumberDelayValue-r18 INTEGER (2..4) OPTIONAL,
+ -- R1 40-3-3-4: Phase report
+ phaseReportMoreThanOne-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-3-6: Maximum number of TRS resource sets in a report configuration
+ maxNumberTRS-ResourceSet-r18 INTEGER (2..3) OPTIONAL,
+ -- R1 40-3-3-7: Maximum number of TDCP report settings per-BWP
+ maxNumberTDCP-PerBWP-r18 INTEGER (1..4) OPTIONAL,
+
+ -- R1 40-4-6c: DMRS type for Rel.18 enhanced DMRS ports for PUSCH
+ pusch-DMRS-TypeEnh-r18 SEQUENCE {
+ dmrs-Type-r18 ENUMERATED {etype1, both},
+ pusch-TypeA-DMRS-r18 SEQUENCE {
+ -- R1 40-4-6: Basic feature of Rel.18 enhanced DMRS ports for PUSCH for scheduling mapping of type A for Rel.18 enhanced
+ -- DMRS ports
+ dmrs-TypeA-r18 ENUMERATED {supported},
+ -- R1 40-4-6d: 2 symbols front-loaded DMRS (uplink) for Rel.18 enhanced DMRS ports for PUSCH
+ pusch-2SymbolFL-DMRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-6e: 2-symbol FL DMRS + one additional 2-symbols DMRS for Rel.18 enhanced DMRS ports for PUSCH
+ pusch-2SymbolFL-DMRS-Addition2Symbol-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-6f: 1 symbol FL DMRS and 3 additional DMRS symbols for Rel.18 enhanced DMRS ports for PUSCH
+ pusch-1SymbolFL-DMRS-Addition3Symbol-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-6k: 1 symbol FL DMRS and 2 additional DMRS symbols for more than one port for Rel.18 enhanced DMRS ports for
+ -- PUSCH
+ pusch-1SymbolFL-DMRS-BeyondOnePort-r18 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ -- R1 40-4-10: DMRS port configuration for PUSCH with 8Tx
+ pusch-DMRS8Tx-r18 ENUMERATED {rel15, both} OPTIONAL,
+ -- R1 40-4-6a: Basic feature of Rel.18 enhanced DMRS ports for PUSCH for scheduling type B for Rel.18 enhanced DMRS ports
+ pusch-TypeB-DMRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-6g: 1 port UL PTRS for Rel.18 enhanced DMRS ports for PUSCH with rank 1-4
+ pusch-rank-1-4-1Port-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-6h: 1 port UL PTRS for Rel.18 enhanced DMRS ports for PUSCH with rank 5-8
+ pusch-rank-5-8-1Port-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-6i: 2 port UL PTRS for Rel.18 enhanced DMRS ports for PUSCH with rank 1-4
+ pusch-rank-1-4-2Port-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-6j: 2 port UL PTRS for Rel.18 enhanced DMRS ports for PUSCH with rank 5-8
+ pusch-rank-5-8-2Port-r18 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ -- R1 40-4-13: Support Rel-18 UL DMRS with single-DCI based M-TRP
+ ul-DMRS-SingleDCI-M-TRP-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-4-14: Support Rel-18 UL DMRS with M-DCI based M-TRP
+ ul-DMRS-M-DCI-M-TRP-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-5: Maximum 2 SP and 1 periodic SRS sets for 8T8R antenna switching
+ srs-AntennaSwitching8T8R2SP-1Periodic-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 40-6-4: Single-DCI based STx2P SFN scheme for PUCCH
+ pucch-SingleDCI-STx2P-SFN-r18 ENUMERATED {pf0-2, pf1-3-4, pf0-4} OPTIONAL,
+
+ -- R1 41-4-6: Positioning SRS bandwidth aggregation in RRC_CONNECTED
+ posSRS-BWA-RRC-Connected-r18 PosSRS-BWA-RRC-Connected-r18 OPTIONAL,
+ -- R1 41-4-7: Positioning SRS bandwidth aggregation independent from UL communication CA in RRC_CONNECTED
+ posSRS-BWA-IndependentCA-RRC-Connected-r18 PosSRS-BWA-IndependentCA-RRC-Connected-r18 OPTIONAL,
+ -- R1 41-4-9: Indicate which other bands in the band combination are affected due to the need of a guard period
+ posSRS-BWA-AffectedBandList-r18 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicatorNR OPTIONAL,
+ -- R1 45-5a: RACH-based early TA acquisition with simultaneous transmission
+ rach-EarlyTA-BandList-r18 SEQUENCE (SIZE (1..maxBandsMRDC)) OF BOOLEAN OPTIONAL,
+
+ -- R1 49-6: Two HARQ-ACK codebooks with up to one sub-slot based HARQ-ACK codebook simultaneously constructed for supporting
+ -- HARQ-ACK codebooks with different priorities by DCI format 1_3
+ simultaneous-2-1-HARQ-ACK-CB-r18 SubSlot-Config-r16 OPTIONAL,
+ -- R1 49-6a: Two HARQ-ACK codebooks with two sub-slot based HARQ-ACK codebook simultaneously constructed for supporting
+ -- HARQ-ACK codebooks with different priorities by DCI format 1_3
+ simultaneous-2-2-HARQ-ACK-CB-r18 SubSlot-Config-r16 OPTIONAL,
+ -- R1 49-7: UL intra-UE multiplexing/prioritization of overlapping channel/signals with two priority levels in physical
+ -- layer for DCI format 1_3/0_3
+ ul-IntraUE-MuxEnh-r18 SEQUENCE {
+ pusch-PreparationLowPriority-r18 ENUMERATED {sym0, sym1, sym2},
+ pusch-PreparationHighPriority-r18 ENUMERATED {sym0, sym1, sym2}
+ } OPTIONAL,
+
+ -- R4 27-1 TxDiversity for 4Tx
+ txDiversity4Tx-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R4 41-2: Power boosting for DFT-s-OFDM pi/2 BPSK and QPSK transmissions without modified spectrum flatness requirement
+ powerBoosting-pi2BPSK-QPSK-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 41-3: Power boosting for DFT-s-OFDM pi/2 BPSK and QPSK transmissions with modified spectrum flatness requirement shaping
+ powerBoosting-pi2BPSK-QPSK-Modified-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 44-1 TxDiversity for 2Tx
+ txDiversity2Tx-r18 ENUMERATED {supported} OPTIONAL,
+ ue-PowerClassPerBandPerBC-v1820 ENUMERATED {pc5} OPTIONAL
+}
+
SubSlot-Config-r16 ::= SEQUENCE {
sub-SlotConfig-NCP-r16 ENUMERATED {n4,n5,n6,n7} OPTIONAL,
sub-SlotConfig-ECP-r16 ENUMERATED {n4,n5,n6} OPTIONAL
@@ -13668,6 +17198,47 @@ DummyF ::= SEQUENCE {
simultaneousCSI-ReportsAllCC INTEGER (5..32)
}
+PosSRS-BWA-RRC-Connected-r18 ::= SEQUENCE {
+ numOfCarriersIntraBandContiguous-r18 ENUMERATED {two, three, twoandthree},
+ maximumAggregatedBW-TwoCarriersFR1-r18 ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
+ mhz160, mhz180, mhz190, mhz200} OPTIONAL,
+ maximumAggregatedBW-TwoCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600, mhz800} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR1-r18 ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240, mhz300} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
+ mhz600, mhz800, mhz1000, mhz1200}
+ OPTIONAL,
+ maximumAggregatedResourceSet-r18 ENUMERATED {n1, n2, n4, n8, n12, n16},
+ maximumAggregatedResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceAperiodic-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceSemi-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourcePeriodicPerSlot-r18 ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceAperiodicPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceSemiPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ ...
+}
+
+PosSRS-BWA-IndependentCA-RRC-Connected-r18 ::= SEQUENCE {
+ numOfCarriersIntraBandContiguous-r18 ENUMERATED {two, three, twoandthree},
+ maximumAggregatedBW-TwoCarriersFR1-r18 ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
+ mhz160, mhz180, mhz190, mhz200} OPTIONAL,
+ maximumAggregatedBW-TwoCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600, mhz800} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR1-r18 ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240, mhz300} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
+ mhz600, mhz800, mhz1000, mhz1200}
+ OPTIONAL,
+ maximumAggregatedResourceSet-r18 ENUMERATED {n1, n2, n4, n8, n12, n16},
+ maximumAggregatedResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceAperiodic-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceSemi-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourcePeriodicPerSlot-r18 ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceAperiodicPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceSemiPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ guardPeriod-r18 ENUMERATED {n0, n30, n100, n140, n200},
+ powerClassForTwoAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+ powerClassForThreeAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+ ...
+}
+
-- TAG-FEATURESETUPLINK-STOP
-- TAG-FEATURESETUPLINKID-START
@@ -13703,6 +17274,108 @@ FeatureSetUplinkPerCC-v1700 ::= SEQUENCE {
supportedBandwidthUL-v1710 SupportedBandwidth-v1700 OPTIONAL
}
+FeatureSetUplinkPerCC-v1780 ::= SEQUENCE {
+ supportedBandwidthUL-v1780 SupportedBandwidth-v1700 OPTIONAL
+}
+
+FeatureSetUplinkPerCC-v1800 ::= SEQUENCE {
+ -- R1 40-2-7: Two TAs for multi-DCI STxMP PUSCH+PUSCH
+ twoPUSCH-MultiDCI-STx2P-TwoTA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-1: Single-DCI based STx2P SDM scheme for PUSCH-codebook
+ pusch-CB-SingleDCI-STx2P-SDM-r18 SEQUENCE {
+ maxNumberSRS-ResourcePerSet-r18 ENUMERATED {n1,n2,n4},
+ maxNumberLayerPerPanel-r18 INTEGER (1..2),
+ maxNumberNZP-PUSCH-PortsPerSet-r18 ENUMERATED {n1,n2,n4},
+ maxNumberSRS-AntennaPortsPerSet-r18 ENUMERATED {n1,n2,n4}
+ } OPTIONAL,
+ -- R1 40-6-1a: Single-DCI based STx2P SDM scheme for PUSCH-noncodebook
+ pusch-NonCB-SingleDCI-STx2P-SDM-r18 SEQUENCE {
+ maxNumberSRS-ResourcePerSet-r18 INTEGER (1..4),
+ maxNumberLayerPerPanel-r18 INTEGER (1..2),
+ maxNumberSimulSRS-OneResourcePerSet-r18 INTEGER (1..4),
+ maxNumberSimulSRS-TwoResourcePerSet-r18 INTEGER (1..8)
+ } OPTIONAL,
+ -- R1 40-6-2: Single-DCI based STx2P SFN scheme for PUSCH-codebook
+ pusch-CB-SingleDCI-STx2P-SFN-r18 SEQUENCE {
+ maxNumberSRS-ResourcePerSet-r18 ENUMERATED {n1,n2,n4},
+ maxNumberLayerPerSet-r18 INTEGER (1..2),
+ maxNumberSRS-AntennaPortsPerSet-r18 ENUMERATED {n1,n2,n4},
+ maxNumberNZP-PUSCH-PortsPerSet-r18 ENUMERATED {n1,n2,n4}
+ } OPTIONAL,
+ -- R1 40-6-2a: Single-DCI based STx2P SFN scheme for PUSCH-noncodebook
+ pusch-NonCB-SingleDCI-STx2P-SFN-r18 SEQUENCE {
+ maxNumberSRS-ResourcePerSet-r18 INTEGER (1..4),
+ maxNumberLayerPerSet-r18 INTEGER (1..2),
+ maxNumberSimulSRS-OneResourcePerSet-r18 INTEGER (1..4),
+ maxNumberSimulSRS-TwoResourcePerSet-r18 INTEGER (1..8)
+ } OPTIONAL,
+ -- R1 40-6-3a: codebook multi-DCI based STx2P PUSCH+PUSCH for DG+DG
+ twoPUSCH-CB-MultiDCI-STx2P-DG-DG-r18 SEQUENCE {
+ maxNumberSRS-ResourcePerSet-r18 ENUMERATED {n1, n2, n4},
+ maxNumberLayerOverlapping-r18 INTEGER (1..2),
+ maxNumberNZP-PUSCH-Overlapping-r18 ENUMERATED {n1, n2, n4},
+ maxNumberPUSCH-PerCORESET-PerSlot-r18 SEQUENCE {
+ scs-60kHz-r18 ENUMERATED {n1,n2,n3,n4,n7} OPTIONAL,
+ scs-120kHz-r18 ENUMERATED {n1,n2,n3,n4,n7} OPTIONAL
+ } OPTIONAL,
+ maxNumberTotalLayerOverlapping-r18 INTEGER (2..4),
+ maxNumberSRS-AntennaPortsPerSet-r18 ENUMERATED {n1,n2,n4}
+ } OPTIONAL,
+ -- R1 40-6-3b: Noncodebook multi-DCI based STx2P PUSCH+PUSCH for DG+DG
+ twoPUSCH-NonCB-MultiDCI-STx2P-DG-DG-r18 SEQUENCE {
+ maxNumberSRS-ResourcePerSet-r18 INTEGER (1..4),
+ maxNumberLayerOverlapping-r18 INTEGER (1..2),
+ maxNumberSimulSRS-ResourcePerSet-r18 INTEGER (1..4),
+ maxNumberPUSCH-PerCORESET-PerSlot-r18 SEQUENCE {
+ scs-60kHz-r18 ENUMERATED {n1,n2,n3,n4,n7} OPTIONAL,
+ scs-120kHz-r18 ENUMERATED {n1,n2,n3,n4,n7} OPTIONAL
+ } OPTIONAL,
+ maxNumberTotalLayerOverlapping-r18 INTEGER (2..4)
+ } OPTIONAL,
+ -- R1 40-6-6: Out-of-order operation for multi-DCI based STx2P PUSCH+PUSCH
+ twoPUSCH-MultiDCI-STx2P-OutOfOrder-r18 ENUMERATED {supported} OPTIONAL,
+
+ codebookParameter8TxPUSCH-r18 SEQUENCE {
+ -- R1 40-7-1: Basic features for Codebook-based 8Tx PUSCH
+ codebook-8TxBasic-r18 SEQUENCE {
+ maxNumberPUSCH-MIMO-Layer-r18 INTEGER (1..8),
+ maxNumberSRS-Resource-r18 INTEGER (1..2),
+ srs-8TxPorts-r18 ENUMERATED {noTDM, both}
+ },
+ -- R1 40-7-1a: Codebook-based 8Tx PUSCH-codebook1
+ codebook1-8TxPUSCH-r18 SEQUENCE {
+ codebookN1N4-r18 ENUMERATED {ng1n4n1,ng1n2n2,both} OPTIONAL,
+ srs-8TxPorts-r18 ENUMERATED {noTDM, both}
+ },
+ -- R1 40-7-1b: Codebook-based 8Tx PUSCH-codebook2
+ codebook2-8TxPUSCH-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-7-1c: Codebook-based 8Tx PUSCH-codebook3
+ codebook3-8TxPUSCH-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-7-1d: Codebook-based 8Tx PUSCH-codebook4
+ codebook4-8TxPUSCH-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-7-1e: UL full power transmission mode 0
+ ul-FullPwrTransMode0-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-7-1f: UL full power transmission mode 1
+ ul-FullPwrTransMode1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-7-1g: UL full power transmission mode 2 with 1/2/4 resources
+ ul-FullPwrTransMode2-r18 ENUMERATED {n1,n2,n4} OPTIONAL,
+ -- R1 40-7-1g-1: SRS resources for UL full power transmission mode 2
+ ul-SRS-TransMode2-r18 BIT STRING (SIZE(3)) OPTIONAL,
+ -- R1 40-7-1g-2: TPMI group(s) which delivers full power for codebook2
+ tpmi-FullPwrCodebook2-r18 ENUMERATED {first, second} OPTIONAL
+ } OPTIONAL,
+ -- R1 40-7-2: Basic features for Non-Codebook-based 8Tx PUSCH
+ nonCodebook-8TxPUSCH-r18 SEQUENCE {
+ maxNumberPUSCH-MIMO-Layer-r18 INTEGER (1..8),
+ maxNumberSRS-Resource-r18 INTEGER (1..8),
+ maxNumberSimultaneousSRS-r18 INTEGER (1..8)
+ } OPTIONAL,
+ -- R1 40-7-2a: Association between CSI-RS and SRS for non-codebook case
+ nonCodebook-CSI-RS-SRS-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-7-3: CBG based 2 CWs PUSCH with rank >4
+ cgb-2CW-PUSCH-r18 ENUMERATED {supported} OPTIONAL
+}
+
-- TAG-FEATURESETUPLINKPERCC-STOP
-- TAG-FEATURESETUPLINKPERCC-ID-START
@@ -13987,6 +17660,17 @@ MAC-ParametersCommon ::= SEQUENCE {
extendedDRX-CycleInactive-r17 ENUMERATED {supported} OPTIONAL,
simultaneousSR-PUSCH-DiffPUCCH-groups-r17 ENUMERATED {supported} OPTIONAL,
lastTransmissionUL-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ harq-RTT-TimerDL-ForNTN-MulticastMBS-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ sr-TriggeredByTA-ReportATG-r18 ENUMERATED {supported} OPTIONAL,
+ extendedDRX-CycleInactive-r18 ENUMERATED {supported} OPTIONAL,
+ additionalBS-Table-r18 ENUMERATED {supported} OPTIONAL,
+ delayStatusReport-r18 ENUMERATED {supported} OPTIONAL,
+ cg-RetransmissionMonitoringDisabling-r18 ENUMERATED {supported} OPTIONAL,
+ non-IntegerDRX-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -14029,6 +17713,10 @@ MAC-ParametersXDD-Diff ::= SEQUENCE {
[[
enhancedSkipUplinkTxDynamic-r16 ENUMERATED {supported} OPTIONAL,
enhancedSkipUplinkTxConfigured-r16 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ ptm-Retransmission-r18 ENUMERATED {supported} OPTIONAL,
+ ptm-RetransmissionInactive-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -14160,6 +17848,42 @@ MeasAndMobParametersCommon ::= SEQUENCE {
[[
interSatMeas-r17 ENUMERATED {supported} OPTIONAL,
deriveSSB-IndexFromCellInterNon-NCSG-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ -- R4 31-1 Enhanced L3 measurement reporting for unknown SCell activation if the valid L3 measurement results are available
+ l3-MeasUnknownSCellActivation-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 31-3 Shorter measurement interval for unknown SCell activation
+ shortMeasInterval-r18 ENUMERATED {supported} OPTIONAL,
+ nr-NeedForInterruptionReport-r18 ENUMERATED {supported} OPTIONAL,
+ measSequenceConfig-r18 ENUMERATED {supported} OPTIONAL,
+ cellIndividualOffsetPerMeasEvent-r18 ENUMERATED {supported} OPTIONAL,
+ eventD2-MeasReportTrigger-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 32-1: Concurrent gaps with Pre-MG in a FR
+ concurrentMeasGapsPreMG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 32-2: Support for dynamic collisions
+ dynamicCollision-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 32-3: Concurrent gaps with NCSG in a FR
+ concurrentMeasGapsNCSG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 32-4: Inter-RAT EUTRAN measurements without gap and outside active DL BWP
+ eutra-NoGapMeasurementOutsideBWP-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 32-5: Inter-RAT EUTRAN measurement without gap and within active DL BWP
+ eutra-NoGapMeasurementInsideBWP-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 32-6: Effective measurement window for inter-RAT EUTRAN measurements
+ eutra-MeasEMW-r18 BIT STRING (SIZE(6)) OPTIONAL,
+ -- R4 32-7: Simultaneous reception of NR data and EUTRAN CRS with different numerology
+ concurrentMeasCRS-InsideBWP-EUTRA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 39-2a: SSB based inter-frequency L1-RSRP measurements with measurement gaps
+ ltm-InterFreqMeasGap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 39-7: Faster UE processing time during cell switch
+ ltm-FastUE-Processing-r18 SEQUENCE {
+ fr1-r18 ENUMERATED {ms10, ms15},
+ fr2-r18 ENUMERATED {ms10, ms15},
+ fr1-AndFR2-r18 ENUMERATED {ms20, ms30}
+ } OPTIONAL,
+ rach-LessHandoverInterFreq-r18 ENUMERATED {supported} OPTIONAL,
+ enterAndLeaveCellReport-r18 ENUMERATED {supported} OPTIONAL,
+ bestCellChangeReport-r18 ENUMERATED {supported} OPTIONAL,
+ secondBestCellChangeReport-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -14252,6 +17976,10 @@ MeasAndMobParametersMRDC-v1730 ::= SEQUENCE {
measAndMobParametersMRDC-Common-v1730 MeasAndMobParametersMRDC-Common-v1730 OPTIONAL
}
+MeasAndMobParametersMRDC-v1810 ::= SEQUENCE {
+ measAndMobParametersMRDC-Common-v1810 MeasAndMobParametersMRDC-Common-v1810 OPTIONAL
+}
+
MeasAndMobParametersMRDC-Common ::= SEQUENCE {
independentGapConfig ENUMERATED {supported} OPTIONAL
}
@@ -14289,6 +18017,18 @@ MeasAndMobParametersMRDC-Common-v1730 ::= SEQUENCE {
}
}
+MeasAndMobParametersMRDC-Common-v1810 ::= SEQUENCE {
+ mn-ConfiguredMN-TriggerSCPAC-r18 ENUMERATED {supported} OPTIONAL,
+ mn-ConfiguredSN-TriggerSCPAC-r18 ENUMERATED {supported} OPTIONAL,
+ sn-ConfiguredSCPAC-r18 ENUMERATED {supported} OPTIONAL,
+ mn-ConfiguredMN-TriggerSCPAC-afterSCG-release-r18 ENUMERATED {supported} OPTIONAL,
+ mn-ConfiguredReferenceConfigSCPAC-r18 ENUMERATED {supported} OPTIONAL,
+ sn-ConfiguredReferenceConfigSCPAC-r18 ENUMERATED {supported} OPTIONAL,
+ condHandoverWithCandSCG-Addition-r18 ENUMERATED {supported} OPTIONAL,
+ condHandoverWithCandSCG-FR1-FR2-Change-r18 ENUMERATED {supported} OPTIONAL,
+ condHandoverWithCandSCG-FDD-TDD-Change-r18 ENUMERATED {supported} OPTIONAL
+}
+
MeasAndMobParametersMRDC-XDD-Diff ::= SEQUENCE {
sftd-MeasPSCell ENUMERATED {supported} OPTIONAL,
sftd-MeasNR-Cell ENUMERATED {supported} OPTIONAL
@@ -14712,6 +18452,202 @@ MIMO-ParametersPerBand ::= SEQUENCE {
]],
[[
supportRepNumPDSCH-TDRA-DCI-1-2-r17 ENUMERATED {n2, n3, n4, n5, n6, n7, n8, n16} OPTIONAL
+ ]],
+ [[
+ codebookParametersetype2DopplerCSI-r18 CodebookParametersetype2DopplerCSI-r18 OPTIONAL,
+ codebookParametersfetype2DopplerCSI-r18 CodebookParametersfetype2DopplerCSI-r18 OPTIONAL,
+ codebookParametersetype2CJT-r18 CodebookParametersetype2CJT-r18 OPTIONAL,
+ codebookParametersfetype2CJT-r18 CodebookParametersfetype2CJT-r18 OPTIONAL,
+ codebookComboParametersCJT-r18 CodebookComboParametersCJT-r18 OPTIONAL,
+ codebookParametersHARQ-ACK-PUSCH-r18 CodebookParametersHARQ-ACK-PUSCH-r18 OPTIONAL,
+ -- R1 40-1-1: Unified TCI with joint DL/UL TCI update for single-DCI based intra-cell multi-TRP with single activated TCI
+ -- codepoint per CC
+ tci-JointTCI-UpdateSingleActiveTCI-PerCC-r18 SEQUENCE {
+ maxNumberConfigJointTCIPerCC-PerBWP-r18 ENUMERATED {n8,n12,n16,n24,n32,n48,n64,n128},
+ maxNumberActiveJointTCI-AcrossCC-r18 ENUMERATED {n2,n4,n6,n8,n16,n32}
+ } OPTIONAL,
+ -- R1 40-1-1a: Unified TCI with joint DL/UL TCI update for single-DCI based intra-cell multi-TRP with multiple activated TCI
+ -- codepoints per CC
+ tci-JointTCI-UpdateMultiActiveTCI-PerCC-r18 SEQUENCE {
+ tci-StateInd-r18 ENUMERATED {withAssignment, withoutAssignment},
+ maxNumberActiveJointTCI-PerCC-r18 INTEGER (2..8)
+ } OPTIONAL,
+ -- R1 40-1-1c: DCI format 1_1 and if supported 1_2 configured with TCI selection field
+ tci-SelectionDCI-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-1-2: Unified TCI with separate DL/UL TCI update for single-DCI based intra-cell multi-TRP with single activated TCI
+ -- codepoint per CC
+ tci-SeparateTCI-UpdateSingleActiveTCI-PerCC-r18 SEQUENCE {
+ maxNumConfigDL-TCI-PerCC-PerBWP-r18 ENUMERATED {n4, n8, n12, n16, n24, n32, n48, n64, n128},
+ maxNumConfigUL-TCI-PerCC-PerBWP-r18 ENUMERATED {n4, n8, n12, n16, n24, n32, n48, n64},
+ maxNumActiveDL-TCI-AcrossCC-r18 ENUMERATED {n2, n4, n8, n16},
+ maxNumActiveUL-TCI-AcrossCC-r18 ENUMERATED {n2, n4, n8, n16}
+ } OPTIONAL,
+ -- R1 40-1-2a: Unified TCI with separate DL/UL TCI update for single-DCI based intra-cell multi-TRP with multiple
+ -- activated TCI codepoints per CC
+ tci-SeparateTCI-UpdateMultiActiveTCI-PerCC-r18 SEQUENCE {
+ maxNumActiveDL-TCI-AcrossCC-r18 ENUMERATED {n2, n4, n8, n16},
+ maxNumActiveUL-TCI-AcrossCC-r18 ENUMERATED {n2, n4, n8, n16}
+ } OPTIONAL,
+ -- R1 40-1-3: Per aperiodic CSI-RS resource/resource set configuration for TCI selection in S-DCI based MTRP
+ tci-SelectionAperiodicCSI-RS-r18 ENUMERATED {perResource, perResourceSet, both} OPTIONAL,
+ -- R1 40-1-3a: Per aperiodic CSI-RS resource/resource set configuration for TCI selection in M-DCI based MTRP
+ tci-SelectionAperiodicCSI-RS-M-DCI-r18 ENUMERATED {perResource, perResourceSet, both} OPTIONAL,
+ -- R1 40-1-4: Two TCI states for CJT Tx scheme for PDSCH
+ twoTCI-StatePDSCH-CJT-TxScheme-r18 ENUMERATED {cjtSchemeA, cjtSchemeB, both} OPTIONAL,
+ -- R1 40-1-7: Unified TCI with joint DL/UL TCI update for multi-DCI based multi-TRP with single activated TCI
+ -- codepoint per CORESETPoolIndex per CC
+ tci-JointTCI-UpdateSingleActiveTCI-PerCC-PerCORESET-r18 SEQUENCE {
+ mTRP-Operation-r18 ENUMERATED {intraCell, intraCellAndInterCell},
+ maxNumberConfigJointTCIPerCC-PerBWP-r18 ENUMERATED {n8,n12,n16,n24,n32,n48,n64,n128},
+ maxNumberActiveJointTCIAcrossCC-PerCORESET-r18 ENUMERATED {n1,n2,n4,n8,n16}
+ } OPTIONAL,
+ -- R1 40-1-7a: Unified TCI with joint DL/UL TCI update for multi-DCI based multi-TRP with multiple activated TCI
+ -- codepoints per CORESETPoolIndex per CC
+ tci-JointTCI-UpdateMultiActiveTCI-PerCC-PerCORESET-r18 INTEGER (2..8) OPTIONAL,
+ -- R1 40-1-8: TRP-specific BFR with unified TCI framework with Unified TCI
+ tci-TRP-BFR-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-1-9: Unified TCI with separate DL/UL TCI update for multi-DCI based multi-TRP with single activated TCI
+ -- codepoint per CORESETPoolIndex per CC
+ tci-SeparateTCI-UpdateSingleActiveTCI-PerCC-PerCORESET-r18 SEQUENCE {
+ mTRP-Operation-r18 ENUMERATED {intraCell, intraCellAndInterCell},
+ maxNumConfigDL-TCI-PerCC-PerBWP-r18 ENUMERATED {n8, n12, n16, n24, n32, n48, n64, n128},
+ maxNumConfigUL-TCI-PerCC-PerBWP-r18 ENUMERATED {n8, n12, n16, n24, n32, n48, n64},
+ maxNumActiveDL-TCI-AcrossCC-r18 ENUMERATED {n1, n2, n4, n8, n16},
+ maxNumActiveUL-TCI-AcrossCC-r18 ENUMERATED {n1, n2, n4, n8, n16}
+ } OPTIONAL,
+ -- R1 40-1-9a: Unified TCI with separate DL/UL TCI update for multi-DCI based multi-TRP with multiple activated TCI
+ -- codepoints per CORESETPoolIndex per CC
+ tci-SeparateTCI-UpdateMultiActiveTCI-PerCC-PerCORESET-r18 SEQUENCE {
+ maxNumConfigDL-TCI-PerCC-PerBWP-r18 INTEGER (1..8),
+ maxNumConfigUL-TCI-PerCC-PerBWP-r18 INTEGER (1..8)
+ } OPTIONAL,
+ -- R1 40-1-12: Common multi-CC TCI state ID update and activation for single-DCI based multi-TRP
+ commonTCI-SingleDCI-r18 INTEGER (1..4) OPTIONAL,
+ -- R1 40-1-13: Common multi-CC TCI state ID update and activation for multi-DCI based multi-TRP
+ commonTCI-MultiDCI-r18 INTEGER (1..4) OPTIONAL,
+ -- R1 40-1-14: Two PHR reporting for STx2P
+ twoPHR-Reporting-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-2-3: TAG ID indication via absolute TA command MAC CE
+ spCell-TAG-Ind-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-2-4: PDCCH order sent by one TRP triggers RACH procedure (specifically PRACH) towards a different TRP based on CFRA for
+ -- inter-cell
+ interCellCrossTRP-PDCCH-OrderCFRA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-2-4a: PDCCH order sent by one TRP triggers RACH procedure (specifically PRACH) towards a different TRP based on CFRA for
+ -- intra-cell
+ intraCellCrossTRP-PDCCH-OrderCFRA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-2-9: Overlapping UL transmission reduction
+ overlapUL-TransReduction-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-3-2-12: Supported maximum periodicity of CMR when configured as periodic CSI-RS
+ maxPeriodicityCMR-r18 ENUMERATED {sl4, sl5, sl8, sl10, sl20} OPTIONAL,
+ -- R1 40-3-3-1: TDCP (Time Domain Channel Properties) report
+ tdcp-Report-r18 SEQUENCE {
+ valueX-r18 INTEGER (1..2),
+ maxNumberActiveResource-r18 INTEGER (2..32)
+ } OPTIONAL,
+ -- R1 40-3-3-5: Number of CSI-RS resources for TDCP
+ tdcp-Resource-r18 SEQUENCE {
+ maxNumberConfigPerCC-r18 ENUMERATED {n2,n4,n6,n8,n10,n12},
+ maxNumberConfigAcrossCC-r18 INTEGER (1..32),
+ maxNumberSimultaneousPerCC-r18 ENUMERATED {n2, n4, n6, n8, n12, n16, n20, n24, n28, n32}
+ } OPTIONAL,
+ -- R1 40-3-1-24: Timeline for regular eType-II-CJT CSI, or for port selection FeType-II-CJT CSI
+ timelineRelax-CJT-CSI-r18 ENUMERATED {n0,n2} OPTIONAL,
+ -- R1 40-4-11: Joint configuration of Rel.18 DMRS ports and Rel.18 dynamic switching between DFT-S-OFDM and CP-OFDM for PUSCH
+ jointConfigDMRSPortDynamicSwitching-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-1: SRS comb offset hopping
+ srs-combOffsetHopping-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-1a: Comb offset hopping time-domain behavior when repetition factor R>1
+ srs-combOffsetInTime-r18 ENUMERATED {srs, rsrs, both} OPTIONAL,
+ -- R1 40-5-1b: SRS comb offset hopping combined with group/sequence hopping
+ srs-combOffsetCombinedGroupSequence-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-1c: Comb offset hopping within a subset
+ srs-combOffsetHoppingWithinSubset-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-2: SRS cyclic shift hopping
+ srs-cyclicShiftHopping-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-2a: Smaller cyclic shift granularity for cyclic shift hopping
+ srs-cyclicShiftHoppingSmallGranularity-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-2b: SRS cyclic shift hopping combined with group/sequence hopping
+ srs-cyclicShiftCombinedGroupSequence-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-2c: Cyclic shift hopping within a subset
+ cyclicShiftHoppingWithinSubset-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-5-3: SRS cyclic shift hopping combined with SRS comb offset hopping
+ srs-cyclicShiftCombinedCombOffset-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 40-6-1-1: 2 PTRS ports for single-DCI based STx2P SDM scheme for PUSCH-codebook
+ pusch-CB-2PTRS-SingleDCI-STx2P-SDM-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-1a-1: 2 PTRS ports for single-DCI based STx2P SDM scheme for PUSCH-noncodebook
+ pusch-NonCB-2PTRS-SingleDCI-STx2P-SDM-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-1b: Association between CSI-RS and SRS for noncodebook single-DCI based STx2P SDM scheme for PUSCH
+ pusch-NonCB-SingleDCI-STx2P-SDM-CSI-RS-SRS-r18 SEQUENCE {
+ maxNumberPeriodicSRS-Resource-PerBWP-r18 INTEGER (1..8),
+ maxNumberAperiodicSRS-Resource-PerBWP-r18 INTEGER (1..8),
+ maxNumberSemiPersistentSRS-ResourcePerBWP-r18 INTEGER (0..8),
+ valueY-SRS-ResourceAssociate-r18 INTEGER (1..16),
+ valueX-CSI-RS-ResourceAssociate-r18 INTEGER (1..2)
+ } OPTIONAL,
+ -- R1 40-6-3b-1: Associated CSI-RS resources for noncodebook multi-DCI based STx2P PUSCH+PUSCH
+ twoPUSCH-NonCB-Multi-DCI-STx2P-CSI-RS-Resource-r18 SEQUENCE {
+ maxNumberPeriodicSRS-r18 INTEGER (1..8),
+ maxNumberAperiodicSRS-r18 INTEGER (1..8),
+ maxNumberSemiPersistentSRS-r18 INTEGER (0..8),
+ simultaneousSRS-PerCC-r18 INTEGER (1..16),
+ simultaneousCSI-RS-NonCB-r18 INTEGER (1..2)
+ } OPTIONAL,
+ -- R1 40-6-1-2: New UL DMRS port entry for single-DCI based SDM scheme for Rel-15 DMRS port and/or Rel-18 DMRS port
+ dmrs-PortEntrySingleDCI-SDM-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-2-1: 2 PTRS ports for single-DCI based STx2P SFN scheme for PUSCH-codebook
+ pusch-CB-2PTRS-SingleDCI-STx2P-SFN-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-2a-1: 2 PTRS ports for single-DCI based STx2P SFN scheme for PUSCH-codebook
+ pusch-NonCB-2PTRS-SingleDCI-STx2P-SFN-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-2b: Association between CSI-RS and SRS for noncodebook single-DCI based STx2P SFN scheme for PUSCH
+ pusch-NonCB-SingleDCI-STx2P-SFN-CSI-RS-SRS-r18 SEQUENCE {
+ maxNumberPeriodicSRS-Resource-PerBWP-r18 INTEGER (1..8),
+ maxNumberAperiodicSRS-Resource-PerBWP-r18 INTEGER (1..8),
+ maxNumberSemiPersistentSRS-ResourcePerBWP-r18 INTEGER (0..8),
+ valueY-SRS-ResourceAssociate-r18 INTEGER (1..16),
+ valueX-CSI-RS-ResourceAssociate-r18 INTEGER (1..2)
+ } OPTIONAL,
+ -- R1 40-6-3c: Codebook multi-DCI based STx2P PUSCH+PUSCH - Fully overlapping PUSCHs in time and fully overlapping in frequency
+ twoPUSCH-CB-MultiDCI-STx2P-FullTimeFullFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3d: Codebook multi-DCI based STx2P PUSCH+PUSCH - Fully overlapping PUSCHs in time and partially overlapping in frequency
+ twoPUSCH-CB-MultiDCI-STx2P-FullTimePartialFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3e: Codebook multi-DCI based STx2P PUSCH+PUSCH - Partially overlapping PUSCHs in time and fully overlapping in frequency
+ twoPUSCH-CB-MultiDCI-STx2P-PartialTimeFullFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3f: Codebook multi-DCI based STx2P PUSCH+PUSCH - Partially overlapping PUSCHs in time, partially overlapping in frequency
+ twoPUSCH-CB-MultiDCI-STx2P-PartialTimePartialFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3g: Codebook multi-DCI based STx2P PUSCH+PUSCH - Partially overlapping PUSCHs in time, partially or non-overlapping
+ -- in frequency
+ twoPUSCH-CB-MultiDCI-STx2P-PartialTimeNonFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3h: Codebook multi-DCI based STx2P PUSCH+PUSCH for CG+CG
+ twoPUSCH-CB-MultiDCI-STx2P-CG-CG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3i: Codebook multi-DCI based STx2P PUSCH+PUSCH for DG+CG
+ twoPUSCH-CB-MultiDCI-STx2P-CG-DG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3j: Noncodebook multi-DCI based STx2P PUSCH+PUSCH - Fully overlapping PUSCHs in time and fully overlapping in frequency
+ twoPUSCH-NonCB-MultiDCI-STx2P-FullTimeFullFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3k: Noncodebook multi-DCI based STx2P PUSCH+PUSCH - Fully overlapping PUSCHs in time and partially overlapping in
+ -- frequency
+ twoPUSCH-NonCB-MultiDCI-STx2P-FullTimePartialFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3l: Noncodebook multi-DCI based STx2P PUSCH+PUSCH - Partially overlapping PUSCHs in time and fully overlapping in
+ -- frequency
+ twoPUSCH-NonCB-MultiDCI-STx2P-PartialTimeFullFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3m: Noncodebook multi-DCI based STx2P PUSCH+PUSCH - Partially overlapping PUSCHs in time, partially overlapping in
+ -- frequency
+ twoPUSCH-NonCB-MultiDCI-STx2P-PartialTimePartialFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3n: Noncodebook multi-DCI based STx2P PUSCH+PUSCH - Partially overlapping PUSCHs in time, non-overlapping in frequency
+ twoPUSCH-NonCB-MultiDCI-STx2P-PartialTimeNonFreqOverlap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3o: Noncodebook multi-DCI based STx2P PUSCH+PUSCH for CG+CG
+ twoPUSCH-NonCB-MultiDCI-STx2P-CG-CG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-3p: Noncodebook multi-DCI based STx2P PUSCH+PUSCH for DG+CG
+ twoPUSCH-NonCB-MultiDCI-STx2P-CG-DG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-4a: Dynamic indication of repetition number for SFN scheme for PUCCH
+ pucch-RepetitionDynamicIndicationSFN-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 40-6-5: Support grouped-based beam reporting for STx2P
+ groupBeamReporting-STx2P-r18 SEQUENCE {
+ groupL1-RSRP-Reporting-r18 ENUMERATED {jointULandDL, ulOnly, both},
+ maxNumberBeamGroups-r18 INTEGER (1..4),
+ maxNumberResWithinSlotAcrossCC-r18 ENUMERATED {n2,n3,n4,n8,n16,n32,n64},
+ maxNumberResAcrossCC-r18 ENUMERATED {n8,n16,n32,n64,n128}
+ } OPTIONAL
]]
}
@@ -14848,6 +18784,10 @@ MRDC-Parameters-v15g0 ::= SEQUENCE {
simultaneousRxTxInterBandENDCPerBandPair SimultaneousRxTxPerBandPair OPTIONAL
}
+MRDC-Parameters-v15n0 ::= SEQUENCE {
+ intraBandENDC-Support-UL ENUMERATED {non-contiguous, both} OPTIONAL
+}
+
MRDC-Parameters-v1620 ::= SEQUENCE {
maxUplinkDutyCycle-interBandENDC-TDD-PC2-r16 SEQUENCE{
eutra-TDD-Config0-r16 ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100} OPTIONAL,
@@ -14885,7 +18825,26 @@ MRDC-Parameters-v1700 ::= SEQUENCE {
scg-ActivationDeactivationResumeENDC-r17 ENUMERATED {supported} OPTIONAL
}
+MRDC-Parameters-v1770 ::= SEQUENCE {
+ -- R4 26-1: Higher Power Limit CA DC
+ higherPowerLimitMRDC-r17 ENUMERATED {supported} OPTIONAL
+}
+
+MRDC-Parameters-v1790 ::= SEQUENCE {
+ intraBandENDC-Support-v1790 ENUMERATED {non-contiguous, both} OPTIONAL,
+ intraBandENDC-Support-UL-v1790 ENUMERATED {non-contiguous, both} OPTIONAL
+}
+
-- TAG-MRDC-PARAMETERS-STOP
+-- TAG-NCR-PARAMETERS-START
+
+NCR-Parameters-r18::= SEQUENCE {
+ inactiveStateNCR-r18 ENUMERATED {supported} OPTIONAL,
+ supportedNumberOfDRBs-NCR-r18 ENUMERATED {n1,n16} OPTIONAL,
+ nonDRB-NCR-r18 ENUMERATED {supported} OPTIONAL
+}
+
+-- TAG-NCR-PARAMETERS-STOP
-- TAG-NRDC-PARAMETERS-START
NRDC-Parameters ::= SEQUENCE {
@@ -14933,6 +18892,10 @@ NTN-Parameters-r17 ::= SEQUENCE {
son-ParametersNTN-r17 SON-Parameters-r16 OPTIONAL
}
+NTN-Parameters-v1820 ::= SEQUENCE {
+ fr2-Add-UE-NR-CapabilitiesNTN-r18 UE-NR-CapabilityAddFRX-Mode OPTIONAL
+}
+
-- TAG-NTN-PARAMETERS-STOP
-- TAG-OLPC-SRS-POS-START
@@ -14944,6 +18907,22 @@ OLPC-SRS-Pos-r16 ::= SEQUENCE {
}
--TAG-OLPC-SRS-POS-STOP
+-- TAG-PDCCHRACHDLINFO-START
+
+PDCCH-RACH-DL-Info-r18 ::= CHOICE {
+ notSupported NULL,
+ supported SEQUENCE {
+ -- R4 39-4: Interruption on DL slot(s) due to PDCCH- ordered RACH transmission
+ pdcch-RACH-AffectedBands-r18 ENUMERATED {noIntrruption, interruption},
+ -- R4 39-4a: Interruption on DL slot(s) due to PDCCH- ordered RACH transmission
+ pdcch-RACH-SwitchingTimeList-r18 ENUMERATED {ms0, ms0dot25, ms0dot5 , ms1, ms2} OPTIONAL,
+ -- R4 39-5: the RF/BB preparation time for PDCCH ordered RACH of which the resources are not fully contained
+ -- in any of UE's configured UL BWP(s) of active serving cells
+ pdcch-RACH-PrepTime-r18 ENUMERATED {ms1, ms3, ms5, ms10} OPTIONAL
+ }
+}
+
+-- TAG-PDCCHRACHDLINFO-STOP
-- TAG-PDCP-PARAMETERS-START
PDCP-Parameters ::= SEQUENCE {
@@ -14990,6 +18969,12 @@ PDCP-Parameters ::= SEQUENCE {
continueUDC-r17 ENUMERATED {supported} OPTIONAL,
supportOfBufferSize-r17 ENUMERATED {kbyte4, kbyte8} OPTIONAL
} OPTIONAL
+ ]],
+ [[
+ longSN-NCR-r18 ENUMERATED {supported} OPTIONAL,
+ supportOfPDU-SetDiscard-r18 ENUMERATED {supported} OPTIONAL,
+ psi-BasedDiscard-r18 ENUMERATED {supported} OPTIONAL,
+ supportOfSN-GapReport-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -15203,7 +19188,7 @@ Phy-ParametersCommon ::= SEQUENCE {
cg-TimeDomainAllocationExtension-r17 ENUMERATED {supported} OPTIONAL
]],
[[
- -- R1 25-20: Propagation delay compensation based on legacy TA procedure for TN and licensed
+ -- R1 25-20: Propagation delay compensation based on Rel-15 TA procedure for TN and licensed
ta-BasedPDC-TN-NonSharedSpectrumChAccess-r17 ENUMERATED {supported} OPTIONAL,
-- R1 31-11: Directional Collision Handling in DC operation
directionalCollisionDC-IAB-r17 ENUMERATED {supported} OPTIONAL
@@ -15215,6 +19200,62 @@ Phy-ParametersCommon ::= SEQUENCE {
dummy4 ENUMERATED {supported} OPTIONAL,
srs-AdditionalRepetition-r17 ENUMERATED {supported} OPTIONAL,
pusch-Repetition-CG-SDT-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ multiPDSCH-PerSlotType1-CB-Support-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ -- R1 42-6: Joint operation of power domain and spatial domain adaptation
+ jointPowerSpatialAdaptation-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 43-3: Aperiodic beam indication for access link
+ ncr-AperiodicBeamInd-AccessLink-r18 SEQUENCE {
+ scs-15kHz-r18 INTEGER (0..1) OPTIONAL,
+ scs-30kHz-r18 INTEGER (0..1) OPTIONAL,
+ scs-60kHz-r18 INTEGER (0..2) OPTIONAL,
+ scs-120kHz-r18 INTEGER (0..2) OPTIONAL
+ } OPTIONAL,
+ -- R1 43-4: Semi-persistent beam indication for access link
+ ncr-Semi-PersistentBeamInd-AccessLink-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 43-5: Simulatenous UL transmission of backhaul link and C-Link
+ ncr-SimultaneousUL-BackhaulAndC-Link-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 43-6: Dedicated signalling for backhaul link beam indication
+ ncr-BackhaulBeamInd-r18 ENUMERATED {nonUnifiedTCI, unifiedTCI, both} OPTIONAL,
+ -- R1 43-8: Adaptive beam for NCR backhaul link/C-link
+ ncr-AdaptiveBeamBackhaulAndC-Link-r18 ENUMERATED {nonUnifiedTCI, unifiedTCI, both} OPTIONAL,
+
+ -- R1 49-4a: Nominal RBG size of Configuration 3 for FDRA type 0 for DCI format 1_3
+ nominalRBG-SizeOfConfig-3-FDRA-Type-0-DCI-1-3-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-4b: Nominal RBG size of Configuration 3 for FDRA type 0 for DCI format 0_3
+ nominalRBG-SizeOfConfig-3-FDRA-Type-0-DCI-0-3-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-4c: Configurable Type-1A fields for DCI format 0_3/1_3
+ configurableType-1A-FieldsForDCI-0-3-And-1-3-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-4d: FDRA Type 1 granularity of 2, 4, 8, or 16 consecutive RBs based RIV for DCI format 1_3/0_3
+ fdra-Type-1-Gty-2-4-8-16-RBs-RIV-DCI-1-3-And-0-3-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-6b: DL priority indication in DCI with mixed DCI formats including DCI format 1_3
+ priorityIndicationDL-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-7a: UL priority indication in DCI with mixed DCI formats including DCI format 0_3
+ priorityIndicationUL-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-10: Dynamic indication of applicable minimum scheduling restriction by DCI format 0_3/1_3
+ dynamicIndicationSchedulingRestriction-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-11: PHY priority indication for one-shot HARQ-ACK feedback triggered by DCI format 1_3
+ priorityIndicationOneSlotHARQ-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 50-1c: Multi-PUSCHs Type 2 configured grant release by DCI format 0_1
+ multiPUSCH-DCI-0-1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 50-1d: Multi-PUSCHs Type 2 configured grant release by DCI format 0_2
+ multiPUSCH-DCI-0-2-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 55-1: Additional SR periodicities
+ additionalSR-Periodicities-r18 SEQUENCE {
+ scs-30kHz-r18 ENUMERATED {supported} OPTIONAL,
+ scs-120kHz-r18 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ -- R1 55-5: Enable MAC CE based pathloss RS updates for Type 1 CG-PUSCH
+ pathlossRS-UpdateForType1CG-PUSCH-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 38-9: Dormant BWP switching on multiple CCs RRM requirements with DCI 0-3/1-3
+ bwp-SwitchingMultiDormancyCC-DCI-0-3-And-1-3-r18 CHOICE {
+ type1-r18 ENUMERATED {us100, us200},
+ type2-r18 ENUMERATED {us200, us400, us800, us1000}
+ } OPTIONAL
]]
}
@@ -15335,6 +19376,9 @@ Phy-ParametersFRX-Diff ::= SEQUENCE {
[[
-- R1 25-11: 4-bits subband CQI for TN and licensed
cqi-4-BitsSubbandTN-NonSharedSpectrumChAccess-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ multipleCORESET-RedCap-r17 ENUMERATED {supported} OPTIONAL
]]
}
@@ -15352,6 +19396,24 @@ Phy-ParametersFR1 ::= SEQUENCE {
-- R1 22-12: PDCCH monitoring with a single span of three contiguous OFDM symbols that is within the first four OFDM symbols in a
-- slot
pdcch-MonitoringSingleSpanFirst4Sym-r16 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ -- R1 56-4: K1 range extension defined for ATG as well
+ k1-RangeExtensionATG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 56-3: Increasing the number of HARQ processes defined for ATG as well
+ maxHARQ-ProcessNumberATG-r18 ENUMERATED {u16d32, u32d16, u32d32} OPTIONAL,
+ -- R1 56-1: Uplink Time and Frequency pre-compensation and timing relationship enhancements defined for ATG as well
+ uplinkPreCompensationATG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 56-2: UE reporting of TA information
+ uplinkTA-ReportingATG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 36-1: MU-MIMO Interference Mitigation advanced receiver
+ advReceiver-MU-MIMO-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 41-1: Support of delta PPowerClass reporting mechanism
+ deltaPowerClassReporting-r18 ENUMERATED {type1, type2} OPTIONAL,
+ -- R1 51-2b: Support 12 PRB CORESET0 with an associated SS/PBCH block located at GSCN 41637
+ support12PRB-CORESET0-GSCN-41637-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 51-3: Support 5 MHz channel bandwidth with 20 PRB CORESET0
+ support5MHz-ChannelBW-20PRB-CORESET0-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -15370,6 +19432,10 @@ Phy-ParametersFR2 ::= SEQUENCE {
-- R1 16-1d: Support of spatial relation update for AP-SRS via MAC CE
spatialRelationUpdateAP-SRS-r16 ENUMERATED {supported} OPTIONAL,
maxNumberSRS-PosSpatialRelationsAllServingCells-r16 ENUMERATED {n0, n1, n2, n4, n8, n16} OPTIONAL
+ ]],
+ [[
+ -- R4 30-3: Supports Indication of multi-Rx operation preference
+ multiRxPreferenceIndication-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -15446,6 +19512,28 @@ Phy-ParametersSharedSpectrumChAccess-r16 ::= SEQUENCE {
}
-- TAG-PHY-PARAMETERSSHAREDSPECTRUMCHACCESS-STOP
+-- TAG-POSSRS-BWA-RRC-INACTIVE-START
+
+PosSRS-BWA-RRC-Inactive-r18 ::= SEQUENCE {
+ numOfCarriersIntraBandContiguous-r18 ENUMERATED {two, three, twoandthree},
+ maximumAggregatedBW-TwoCarriersFR1-r18 ENUMERATED { mhz20, mhz40, mhz50, mhz80, mhz100, mhz160,
+ mhz180, mhz190, mhz200} OPTIONAL,
+ maximumAggregatedBW-TwoCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600, mhz800} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR1-r18 ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240, mhz300} OPTIONAL,
+ maximumAggregatedBW-ThreeCarriersFR2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400, mhz600,
+ mhz800, mhz1000, mhz1200} OPTIONAL,
+ maximumAggregatedResourceSet-r18 ENUMERATED {n1, n2, n4, n8, n12, n16},
+ maximumAggregatedResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourceSemi-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
+ maximumAggregatedResourcePeriodicPerSlot-r18 ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ maximumAggregatedResourceSemiPerSlot-r18 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
+ guardPeriod-r18 ENUMERATED {n0, n30, n100, n140, n200},
+ powerClassForTwoAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+ powerClassForThreeAggregatedCarriers-r18 ENUMERATED {pc2, pc3} OPTIONAL,
+ ...
+}
+
+-- TAG-POSSRS-BWA-RRC-INACTIVE-STOP
-- TAG-POSSRS-RRC-INACTIVE-OUTSIDEINITIALUL-BWP-START
PosSRS-RRC-Inactive-OutsideInitialUL-BWP-r17::= SEQUENCE {
@@ -15469,6 +19557,39 @@ PosSRS-RRC-Inactive-OutsideInitialUL-BWP-r17::= SEQUENCE {
}
-- TAG-POSSRS-RRC-INACTIVE-OUTSIDEINITIALUL-BWP-STOP
+-- TAG-POSSRS-TXFREQUENCYHOPPINGRRCCONNECTED-START
+
+PosSRS-TxFrequencyHoppingRRC-Connected-r18 ::= SEQUENCE {
+ maximumSRS-BandwidthAcrossAllHopsFR1-r18 ENUMERATED {mhz40, mhz50, mhz80, mhz100} OPTIONAL,
+ maximumSRS-BandwidthAcrossAllHopsFR2-r18 ENUMERATED {mhz100, mhz200, mhz400} OPTIONAL,
+ maximumTxFH-Hops-r18 ENUMERATED {n2, n3, n4, n5, n6} OPTIONAL,
+ rf-TxRetunTimeFR1-r18 ENUMERATED {n70, n140, n210} OPTIONAL,
+ rf-TxRetunTimeFR2-r18 ENUMERATED {n35, n70, n140} OPTIONAL,
+ switchTimeBetweenActiveBWP-FrequencyHop-r18 ENUMERATED {n100, n140, n200, n300, n500} OPTIONAL,
+ numOfOverlappingPRB-r18 ENUMERATED {n0, n1, n2, n4} OPTIONAL,
+ maximumSRS-ResourcePeriodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ maximumSRS-ResourceAperiodic-r18 ENUMERATED {n0,n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ maximumSRS-ResourceSemipersistent-r18 ENUMERATED {n0,n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ ...
+}
+
+-- TAG-POSSRS-TXFREQUENCYHOPPINGRRCCONNECTED-STOP
+-- TAG-POSSRS-TXFREQUENCYHOPPINGRRCINACTIVE-START
+
+PosSRS-TxFrequencyHoppingRRC-Inactive-r18 ::= SEQUENCE {
+ maximumSRS-BandwidthAcrossAllHops-FR1-r18 ENUMERATED {mhz40, mhz50, mhz80, mhz100} OPTIONAL,
+ maximumSRS-BandwidthAcrossAllHops-FR2-r18 ENUMERATED {mhz100, mhz200, mhz400} OPTIONAL,
+ maximumTxFH-Hops-r18 ENUMERATED {n2, n3, n4, n5, n6} OPTIONAL,
+ rf-TxRetunTimeFR1-r18 ENUMERATED {n70, n140, n210} OPTIONAL,
+ rf-TxRetunTimeFR2-r18 ENUMERATED {n35, n70, n140} OPTIONAL,
+ switchTimeBetweenActiveBWP-FrequencyHop ENUMERATED {n100, n140, n200, n300, n500} OPTIONAL,
+ numOfOverlappingPRB-r18 ENUMERATED {n0, n1, n2, n4} OPTIONAL,
+ maximumSRS-Resource-Periodic-r18 ENUMERATED {n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ maximumSRS-Resource-Semipersistent-r18 ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64} OPTIONAL,
+ ...
+}
+
+-- TAG-POSSRS-TXFREQUENCYHOPPINGRRCCINACTIVE-STOP
-- TAG-POWSAV-PARAMETERS-START
PowSav-Parameters-r16 ::= SEQUENCE {
@@ -15639,6 +19760,27 @@ RF-Parameters ::= SEQUENCE {
[[
supportedBandCombinationList-v1740 BandCombinationList-v1740 OPTIONAL,
supportedBandCombinationList-UplinkTxSwitch-v1740 BandCombinationList-UplinkTxSwitch-v1740 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1760 BandCombinationList-v1760 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1760 BandCombinationList-UplinkTxSwitch-v1760 OPTIONAL
+ ]],
+ [[
+ dummy1 BandCombinationList-v1770 OPTIONAL,
+ dummy2 BandCombinationList-UplinkTxSwitch-v1770 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1780 BandCombinationList-v1780 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1780 BandCombinationList-UplinkTxSwitch-v1780 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1800 BandCombinationList-v1800 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1800 BandCombinationList-UplinkTxSwitch-v1800 OPTIONAL,
+ supportedBandCombinationListSL-U2U-Relay-r18 SEQUENCE {
+ supportedBandCombinationListSL-U2U-RelayDiscovery-r18 OCTET STRING OPTIONAL, -- Contains PC5
+ -- BandCombinationListSidelinkNR-r16
+ supportedBandCombinationListSL-U2U-DiscoveryExt BandCombinationListSL-Discovery-r17 OPTIONAL
+ } OPTIONAL
]]
}
@@ -15918,7 +20060,7 @@ BandNR ::= SEQUENCE {
aperiodicCSI-RS-AdditionalBandwidth-r17 ENUMERATED {addBW-Set1, addBW-Set2} OPTIONAL,
-- R1 28-1a: RRC-configured DL BWP without CD-SSB or NCD-SSB
bwp-WithoutCD-SSB-OrNCD-SSB-RedCap-r17 ENUMERATED {supported} OPTIONAL,
- -- R1 28-3: Half-duplex FDD operation type A for RedCap UE
+ -- R1 28-3: Half-duplex FDD operation type A for (e)RedCap UE
halfDuplexFDD-TypeA-RedCap-r17 ENUMERATED {supported} OPTIONAL,
-- R1 27-15b: Positioning SRS transmission in RRC_INACTIVE state configured outside initial UL BWP
posSRS-RRC-Inactive-OutsideInitialUL-BWP-r17 PosSRS-RRC-Inactive-OutsideInitialUL-BWP-r17 OPTIONAL,
@@ -15954,7 +20096,7 @@ BandNR ::= SEQUENCE {
cqi-4-BitsSubbandNTN-SharedSpectrumChAccess-r17 ENUMERATED {supported} OPTIONAL,
-- R1 25-16: HARQ-ACK with different priorities multiplexing on a PUCCH/PUSCH
mux-HARQ-ACK-DiffPriorities-r17 ENUMERATED {supported} OPTIONAL,
- -- R1 25-20a: Propagation delay compensation based on legacy TA procedure for NTN and unlicensed
+ -- R1 25-20a: Propagation delay compensation based on Rel-15 TA procedure for NTN and unlicensed
ta-BasedPDC-NTN-SharedSpectrumChAccess-r17 ENUMERATED {supported} OPTIONAL,
-- R1 33-2b: DCI-based enabling/disabling ACK/NACK-based feedback for dynamic scheduling for multicast
ack-NACK-FeedbackForMulticastWithDCI-Enabler-r17 ENUMERATED {supported} OPTIONAL,
@@ -15983,8 +20125,8 @@ BandNR ::= SEQUENCE {
pdsch-1024QAM-2MIMO-FR1-r17 ENUMERATED {supported} OPTIONAL,
-- R4 14-3 PRS measurement without MG
prs-MeasurementWithoutMG-r17 ENUMERATED {cpLength, quarterSymbol, halfSymbol, halfSlot} OPTIONAL,
- -- R4 25-7: The number of target LEO satellites the UE can monitor per carrier
- maxNumber-LEO-SatellitesPerCarrier-r17 INTEGER (3..4) OPTIONAL,
+ -- R4 25-7: The number of target NGSO satellites the UE can monitor per carrier
+ maxNumber-NGSO-SatellitesPerCarrier-r17 INTEGER (3..4) OPTIONAL,
-- R1 27-3-3 DL PRS Processing Capability outside MG - buffering capability
prs-ProcessingCapabilityOutsideMGinPPW-r17 SEQUENCE (SIZE(1..3)) OF PRS-ProcessingCapabilityOutsideMGinPPWperType-r17 OPTIONAL,
-- R1 27-15a: Positioning SRS transmission in RRC_INACTIVE state for initial UL BWP with semi-persistent SRS
@@ -16034,6 +20176,333 @@ BandNR ::= SEQUENCE {
multiPUCCH-HARQ-ACK-ForMulticastUnicast-r17 ENUMERATED {supported} OPTIONAL,
-- R1 33-9: Supporting unicast PDCCH to release SPS group-common PDSCH
releaseSPS-MulticastWithCS-RNTI-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ -- R1 41-3-1a UE automomous TA adjustment when cell-reselection happens
+ posUE-TA-AutoAdjustment-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-3-1: SRS for positioning configuration in multiple cells for UEs in RRC_INACTIVE state for initial UL BWP
+ posSRS-ValidityAreaRRC-InactiveInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-3-2: SRS for positioning configuration in multiple cells for UEs in RRC_INACTIVE state for configured outside
+ -- initial UL BWP
+ posSRS-ValidityAreaRRC-InactiveOutsideInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-5-1:PRS measurement with Rx frequency hopping within a MG and measurement reporting RRC_CONNECTED for RedCap UEs
+ dl-PRS-MeasurementWithRxFH-RRC-ConnectedForRedCap-r18 DL-PRS-MeasurementWithRxFH-RRC-Connected-r18 OPTIONAL,
+ -- R1 41-5-2: Support of positioning SRS with Tx frequency hopping in RRC_CONNECTED for RedCap UEs
+ posSRS-TxFH-RRC-ConnectedForRedCap-r18 PosSRS-TxFrequencyHoppingRRC-Connected-r18 OPTIONAL,
+ -- R1 41-5-2a: Support of positioning SRS with Tx frequency hopping in RRC_INACTIVE for RedCap UEs
+ posSRS-TxFH-RRC-InactiveForRedCap-r18 PosSRS-TxFrequencyHoppingRRC-Inactive-r18 OPTIONAL,
+ -- R1 41-4-8: Support of Positioning SRS bandwidth aggregation in RRC_INACTIVE
+ posSRS-BWA-RRC-Inactive-r18 PosSRS-BWA-RRC-Inactive-r18 OPTIONAL,
+ -- R1 41-4-6a support a Rel-17 single DCI scheduling positioning SRS resource sets across the linked carriers
+ -- for SRS bandwidth aggregation in RRC_CONNECTED state
+ posJointTriggerBySingleDCI-RRC-Connected-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-5-1a PRS measurement with Rx frequency hopping in RRC_INACTIVE for RedCap UEs
+ dl-PRS-MeasurementWithRxFH-RRC-InactiveforRedCap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-5-1b PRS measurement with Rx frequency hopping in RRC_IDLE for RedCap UEs
+ dl-PRS-MeasurementWithRxFH-RRC-IdleforRedCap-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 42-1: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for periodic CSI reporting
+ spatialAdaptation-CSI-Feedback-r18 SEQUENCE {
+ csiFeedbackType-r18 ENUMERATED {sdType1, sdType2, both},
+ maxNumberLmax-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 SEQUENCE {
+ sdType1-Resource-r18 INTEGER (1..32),
+ sdType2-Resource-r18 INTEGER (1..32)
+ },
+ maxNumberTotalCSI-ResourcePerCC-r18 SEQUENCE {
+ sdType1-Resource-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ sdType2-Resource-r18 ENUMERATED {n8, n16, n24, n32, n64, n128}
+ },
+ totalNumberCSI-Reporting-r18 INTEGER (2..4)
+ } OPTIONAL,
+ -- R1 42-1a: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for periodic CSI
+ -- reporting on PUSCH
+ spatialAdaptation-CSI-FeedbackPUSCH-r18 SEQUENCE {
+ csiFeedbackType-r18 ENUMERATED {sdType1, sdType2, both},
+ maxNumberLmax-r18 INTEGER (2..8),
+ subReportCSI-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 INTEGER (1..32),
+ maxNumberTotalCSI-ResourcePerCC-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ totalNumberCSI-Reporting-r18 INTEGER (2..12)
+ } OPTIONAL,
+ -- R1 42-1b: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for aperiodic CSI reporting
+ spatialAdaptation-CSI-FeedbackAperiodic-r18 SEQUENCE {
+ csiFeedbackType-r18 ENUMERATED {sdType1, sdType2, both},
+ maxNumberLmax-r18 INTEGER (2..8),
+ subReportCSI-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 SEQUENCE {
+ sdType1-Resource-r18 INTEGER (1..32),
+ sdType2-Resource-r18 INTEGER (1..32)
+ },
+ maxNumberTotalCSI-ResourcePerCC-r18 SEQUENCE {
+ sdType1-Resource-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ sdType2-Resource-r18 ENUMERATED {n8, n16, n24, n32, n64, n128}
+ },
+ totalNumberCSI-Reporting-r18 INTEGER (2..12)
+ } OPTIONAL,
+ -- R1 42-1c: Spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s) for semi-persistent
+ -- CSI reporting on PUCCH
+ spatialAdaptation-CSI-FeedbackPUCCH-r18 SEQUENCE {
+ csiFeedbackType-r18 ENUMERATED {sdType1, sdType2, both},
+ maxNumberLmax-r18 INTEGER (2..4),
+ subReportCSI-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 INTEGER (1..32),
+ maxNumberTotalCSI-ResourcePerCC-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ totalNumberCSI-Reporting-r18 INTEGER (2..4)
+ } OPTIONAL,
+ -- R1 42-2: Power domain adaptation with CSI feedback based on CSI report sub-configuration(s) for periodic CSI reporting
+ powerAdaptation-CSI-Feedback-r18 SEQUENCE {
+ maxNumberLmax-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 INTEGER (1..32),
+ maxNumberTotalCSI-ResourcePerCC-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ totalNumberCSI-Reporting-r18 INTEGER (2..4)
+ } OPTIONAL,
+ -- R1 42-2a: Power domain adaptation with CSI feedback based on CSI report sub-configuration(s) for semi-persistent CSI
+ -- reporting on PUSCH
+ powerAdaptation-CSI-FeedbackPUSCH-r18 SEQUENCE {
+ maxNumberLmax-r18 INTEGER (2..8),
+ subReportCSI-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 INTEGER (1..32),
+ maxNumberTotalCSI-ResourcePerCC-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ totalNumberCSI-Reporting-r18 INTEGER (2..12)
+ } OPTIONAL,
+ -- R1 42-2b: Power domain adaptation with CSI feedback based on CSI report sub-configuration(s) for aperiodic CSI reporting
+ powerAdaptation-CSI-FeedbackAperiodic-r18 SEQUENCE {
+ maxNumberLmax-r18 INTEGER (2..8),
+ subReportCSI-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 INTEGER (1..32),
+ maxNumberTotalCSI-ResourcePerCC-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ totalNumberCSI-Reporting-r18 INTEGER (2..12)
+ } OPTIONAL,
+ -- R1 42-2c: Power domain adaptation with CSI feedback based on CSI report sub-configuration(s) for semi-persistent CSI
+ -- reporting on PUCCH
+ powerAdaptation-CSI-FeedbackPUCCH-r18 SEQUENCE {
+ maxNumberLmax-r18 INTEGER (2..4),
+ subReportCSI-r18 INTEGER (2..4),
+ maxNumberCSI-ResourcePerCC-r18 INTEGER (1..32),
+ maxNumberTotalCSI-ResourcePerCC-r18 ENUMERATED {n8, n16, n24, n32, n64, n128},
+ totalNumberCSI-Reporting-r18 INTEGER (2..4)
+ } OPTIONAL,
+ -- R1 42-4: Cell DTX and/or DRX operation based on RRC configuration
+ nes-CellDTX-DRX-r18 ENUMERATED {cellDTXonly, cellDRXonly, both} OPTIONAL,
+ -- R1 42-5: Cell DTX/DRX operation triggered by DCI format 2_9
+ nes-CellDTX-DRX-DCI2-9-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 42-7: Mixed codebook combination for spatial domain adaptation with CSI feedback based on CSI report sub-configuration(s),
+ -- each containing one port subset configuration
+ mixCodeBookSpatialAdaptation-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 42-8: the number of CSI report(s) for which the UE can measure and process reference signals simultaneously in a CC of the
+ -- band for which this capability is provided.
+ simultaneousCSI-SubReportsPerCC-r18 INTEGER (1..8) OPTIONAL,
+ -- R1 44-2: NTN DMRS bundling enhancement for PUSCH in NGSO scenarios
+ ntn-DMRS-BundlingNGSO-r18 ENUMERATED {n4, n8, n16, n32} OPTIONAL,
+ -- R1 45-3: Beam indication with joint DL/UL LTM TCI states
+ ltm-BeamIndicationJointTCI-r18 SEQUENCE {
+ maxNumberJointTCI-PerCell-r18 ENUMERATED {n8,n12,n16,n24,n32,n48,n64,n128},
+ qcl-Resource-r18 ENUMERATED {srs, trs, both},
+ maxNumberJointTCI-AcrossCells-r18 INTEGER (1..128),
+ maxNumberCells-r18 INTEGER (1..8)
+ } OPTIONAL,
+ -- R1 45-3a: MAC-CE activated joint LTM TCI states
+ ltm-MAC-CE-JointTCI-r18 SEQUENCE {
+ qcl-Resource-r18 ENUMERATED {ssb, trs, both},
+ maxNumberJointTCI-PerCell-r18 INTEGER (1..16),
+ maxNumberJointTCI-AcrossCells-r18 ENUMERATED {n1,n2,n3,n4,n8,n16,n32}
+ } OPTIONAL,
+ -- R1 45-4: Beam indication with separate DL/UL LTM TCI states
+ ltm-BeamIndicationSeparateTCI-r18 SEQUENCE {
+ maxNumberDL-TCI-PerCell-r18 ENUMERATED {n4,n8,n12,n16,n24,n32,n48,n64,n128},
+ maxNumberUL-TCI-PerCell-r18 ENUMERATED {n4,n8,n12,n16,n24,n32,n48,n64},
+ qcl-Resource-r18 ENUMERATED {ssb, trs, both},
+ maxNumberDL-TCI-AcrossCells-r18 INTEGER (1..128),
+ maxNumberUL-TCI-AcrossCells-r18 INTEGER (1..64),
+ maxNumberCells-r18 INTEGER (1..8)
+ } OPTIONAL,
+ -- R1 45-4a: MAC-CE activated DL/UL LTM TCI states
+ ltm-MAC-CE-SeparateTCI-r18 SEQUENCE {
+ qcl-Resource-r18 ENUMERATED {ssb, trs, both},
+ maxNumberDL-TCI-PerCell-r18 INTEGER (1..8),
+ maxNumberUL-TCI-PerCell-r18 INTEGER (1..8),
+ maxNumberDL-TCI-AcrossCells-r18 ENUMERATED {n1,n2,n4,n8,n16},
+ maxNumberUL-TCI-AcrossCells-r18 ENUMERATED {n1,n2,n4,n8,n16}
+ } OPTIONAL,
+ -- R1 45-5: RACH-based early TA acquisition
+ rach-EarlyTA-Measurement-r18 INTEGER (1..8) OPTIONAL,
+ -- R1 45-6: UE-based TA measurement
+ ue-TA-Measurement-r18 INTEGER (1..8) OPTIONAL,
+ -- R1 45-7: TA indication in cell switch command
+ ta-IndicationCellSwitch-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 49-8: Triggered HARQ-ACK codebook re-transmission for DCI format 1_3
+ triggeredHARQ-CodebookRetxDCI-1-3-r18 SEQUENCE {
+ minHARQ-Retx-Offset-r18 ENUMERATED {n-7, n-5, n-3, n-1, n1},
+ maxHARQ-Retx-Offset-r18 ENUMERATED {n4, n6, n8, n10, n12, n14, n16, n18, n20, n22, n24}
+ } OPTIONAL,
+ -- R1 49-12: Unified TCI with joint DL/UL TCI update by DCI format 1_3 for intra-cell beam management with more than
+ -- one MAC-CE activated joint TCI state per CC
+ unifiedJointTCI-MultiMAC-CE-IntraCell-r18 SEQUENCE {
+ minBeamApplicationTime-r18 CHOICE {
+ fr1-r18 SEQUENCE {
+ scs-15kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70} OPTIONAL,
+ scs-30kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70} OPTIONAL,
+ scs-60kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70} OPTIONAL
+ },
+ fr2-r18 SEQUENCE {
+ scs-60kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70,
+ sym84, sym98, sym112, sym224, sym336} OPTIONAL,
+ scs-120kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70,
+ sym84, sym98, sym112, sym224, sym336} OPTIONAL
+ }
+ },
+ maxActivatedTCI-PerCC-r18 INTEGER (2..8) OPTIONAL
+ } OPTIONAL,
+ -- R1 49-12a: Unified TCI with separate DL/UL TCI update by DCI format 1_3 for intra-cell beam management with more than
+ -- one MAC-CE activated separate TCI state per CC
+ unifiedSeparateTCI-MultiMAC-CE-IntraCell-r18 SEQUENCE {
+ minBeamApplicationTime-r18 CHOICE {
+ fr1-r18 SEQUENCE {
+ scs-15kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70,
+ sym84, sym98, sym112, sym224, sym336} OPTIONAL,
+ scs-30kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70,
+ sym84, sym98, sym112, sym224, sym336} OPTIONAL,
+ scs-60kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70,
+ sym84, sym98, sym112, sym224, sym336} OPTIONAL
+ },
+ fr2-r18 SEQUENCE {
+ scs-60kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70,
+ sym84, sym98, sym112, sym224, sym336} OPTIONAL,
+ scs-120kHz-r18 ENUMERATED {sym1, sym2, sym4, sym7, sym14, sym28, sym42, sym56, sym70,
+ sym84, sym98, sym112, sym224, sym336} OPTIONAL
+ }
+ },
+ maxActivatedDL-TCI-PerCC-r18 INTEGER (2..8) OPTIONAL,
+ maxActivatedUL-TCI-PerCC-r18 INTEGER (2..8) OPTIONAL
+ } OPTIONAL,
+ -- R1 50-1: Multi-PUSCHs for Configured Grant
+ multiPUSCH-CG-r18 ENUMERATED {n16, n32} OPTIONAL,
+ -- R1 50-1a: Multiple active multi-PUSCHs configured grant configurations for a BWP of a serving cell
+ multiPUSCH-ActiveConfiguredGrant-r18 SEQUENCE {
+ maxNumberConfigsPerBWP ENUMERATED {n1, n2, n4, n8, n12},
+ maxNumberConfigsAllCC-FR1 INTEGER (2..32),
+ maxNumberConfigsAllCC-FR2 INTEGER (2..32)
+ } OPTIONAL,
+ -- R1 50-1b: Joint release in a DCI for two or more configured grant Type 2 configurations, including multi-PUSCH CG
+ -- configuration(s), for a given BWP of a serving cell
+ jointReleaseDCI-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 50-2: UCI indication of unused CG-PUSCH transmission occasions
+ cg-PUSCH-UTO-UCI-Ind-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 50-3: PDCCH monitoring resumption after UL NACK
+ pdcch-MonitoringResumptionAfterUL-NACK-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 51-1: Support for 3 MHz symmetric channel bandwidth in DL and UL
+ support3MHz-ChannelBW-Symmetric-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 51-1a: Support for 3 MHz channel bandwidth in uplink with larger than 3 MHz channel BW in DL
+ support3MHz-ChannelBW-Asymmetric-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 51-2a: support 12 PRB CORESET0
+ support12PRB-CORESET0-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R1 52-1: Reception of NR PDCCH candidates overlapping with LTE CRS REs
+ nr-PDCCH-OverlapLTE-CRS-RE-r18 SEQUENCE {
+ overlapInRE-r18 ENUMERATED {oneSymbolNoOverlap, someOrAllSymOverlap},
+ overlapInSymbol-r18 ENUMERATED {symbol2,symbol1And2}
+ } OPTIONAL,
+ -- Editor's Note: someOrAllSymOverlap considers to be supported in overlapInRE-r18 only if RAN4 performance requirements for
+ -- someOrAllSymOverlap are not defined
+ -- R1 52-1a: Reception of NR PDCCH candidates overlapping with LTE CRS REs with multiple non-overlapping CRS rate matching patterns
+ nr-PDCCH-OverlapLTE-CRS-RE-MultiPatterns-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 52-1b: NR PDCCH reception that overlaps with LTE CRS within a single span of 3 consecutive OFDM symbols that is within the
+ -- first 4 OFDM symbols in a slot
+ nr-PDCCH-OverlapLTE-CRS-RE-Span-3-4-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 52-2: Two LTE-CRS overlapping rate matching patterns within NR 15 kHz carrier overlapping with LTE carrier (regardless of
+ -- support or configuration of multi-TRP)
+ twoRateMatchingEUTRA-CRS-patterns-3-4-r18 SEQUENCE {
+ maxNumberPatterns-r18 INTEGER (2..6),
+ maxNumberNon-OverlapPatterns-r18 INTEGER (1..3)
+ } OPTIONAL,
+ -- R1 52-2a: Two LTE-CRS overlapping rate matching patterns with two different values of coresetPoolIndex within NR 15 kHz carrier
+ -- overlapping with LTE carrier
+ overlapRateMatchingEUTRA-CRS-Patterns-3-4-Diff-CS-Pool-r18 ENUMERATED {supported} OPTIONAL,
+
+
+ -- R1 53-3: Support RLM/BM/BFD measurements based on NCD-SSB within active BWP
+ ncd-SSB-BWP-Wor-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 53-4: Support Support RLM/BM/BFD measurements based on CSI-RS when CD-SSB is outside active BWP
+ rlm-BM-BFD-CSI-RS-OutsideActiveBWP-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 54-1: PRACH coverage enhancements
+ prach-CoverageEnh-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 54-1a: PRACH repetitions with less than N symbols gap
+ prach-Repetition-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 54-3: Dynamic waveform switching
+ dynamicWaveformSwitch-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 54-3a: PHR enhancement for dynamic waveform switching
+ dynamicWaveformSwitchPHR-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 54-3b: Dynamic waveform switching for intra-band UL CA
+ dynamicWaveformSwitchIntraCA-r18 INTEGER (2..8) OPTIONAL,
+
+ -- R1 55-3: Multiple PUSCHs scheduling by single DCI for non-consecutive slots in FR1
+ multiPUSCH-SingleDCI-NonConsSlots-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 55-2d: single-symbol DL-PRS used in RTT-based Propagation delay compensation
+ pdc-maxNumberPRS-ResourceProcessedPerSlot-r18 SEQUENCE {
+ fr1-r18 SEQUENCE {
+ scs-15kHz-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24, n32, n48, n64} OPTIONAL,
+ scs-30kHz-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24, n32, n48, n64} OPTIONAL,
+ scs-60kHz-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24, n32, n48, n64} OPTIONAL
+ },
+ fr2-r18 SEQUENCE {
+ scs-60kHz-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24, n32, n48, n64} OPTIONAL,
+ scs-120kHz-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24, n32, n48, n64} OPTIONAL
+ }
+ } OPTIONAL,
+ -- R1 57-2: Intra-slot TDM-ed unicast PDSCH and group-common PDSCH for multicast in RRC_INACTIVE state
+ intraSlot-PDSCH-MulticastInactive-r18 BOOLEAN OPTIONAL,
+ -- R1 57-1: Dynamic scheduling for multicast in RRC_INACTIVE state
+ multicastInactive-r18 ENUMERATED {supported} OPTIONAL,
+ thresholdBasedMulticastResume-r18 ENUMERATED {supported} OPTIONAL,
+
+ -- R4 27-2: LowerMSD for inter-band NR CA and EN-DC
+ lowerMSD-r18 SEQUENCE (SIZE (1..maxLowerMSD-r18)) OF LowerMSD-r18 OPTIONAL,
+ lowerMSD-ENDC-r18 SEQUENCE (SIZE (1..maxLowerMSD-r18)) OF LowerMSD-r18 OPTIONAL,
+ -- R4 28-1: Enhanced channel raster
+ enhancedChannelRaster-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 30-2: Fast beam sweeping for layer-1 measurement when the UE is in multi-Rx operation
+ fastBeamSweepingMultiRx-r18 ENUMERATED {n2,n4,n6} OPTIONAL,
+
+ -- R4 31-2 Beam sweeping factor reduction for FR2 unknown SCell activation
+ beamSweepingFactorReduction-r18 SEQUENCE {
+ reduceForCellDetection ENUMERATED {n1, n2, n4, n6},
+ reduceForSSB-L1-RSRP-Meas INTEGER (0..7)
+ } OPTIONAL,
+ -- R4 34-1: Support of NR FR2 HST with simultaneous DL reception with two different QCL TypeD RSs
+ simultaneousReceptionTwoQCL-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 34-2: Enhanced FR2 HST RRM requirements for intra-band CA and inter-frequency measurements in connected mode
+ measEnhCAInterFreqFR2-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 34-4: Support of enhanced MAC CE for TCI state switch indication for FR2 HST
+ tci-StateSwitchInd-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 35-2: the requirements defined for ATG UE with antenna array or omni-direction antenna requirements.
+ antennaArrayType-r18 ENUMERATED {supported} OPTIONAL,
+ locationBasedCondHandoverATG-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 35-3: rated maximum output power value range from 23dBm to 40dBm with 1dB as granularity at maximum modulation order and full
+ -- PRB configurations.
+ maxOutputPowerATG-r18 INTEGER (1..18) OPTIONAL,
+ -- R4 39-6: Fast processing of LTM candidate cell RRC configuration
+ ltm-FastProcessingConfig-r18 SEQUENCE {
+ maxNumberStoredConfigCells-r18 ENUMERATED {n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n16},
+ maxNumberConfigs-r18 INTEGER (1..4)
+ } OPTIONAL,
+ -- R4 39-8: Measurement validation based on EMR measurement during connection setup/resume
+ measValidationReportEMR-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 39-9: Measurement validation based on reselection measurement during connection setup/resume
+ measValidationReportReselectionMeasurements-r18 ENUMERATED {supported} OPTIONAL,
+
+ eventA4BasedCondHandoverNES-r18 ENUMERATED {supported} OPTIONAL,
+ nesBasedCondHandoverWithDCI-r18 ENUMERATED {supported} OPTIONAL,
+ rach-LessHandoverCG-r18 ENUMERATED {supported} OPTIONAL,
+ rach-LessHandoverDG-r18 ENUMERATED {supported} OPTIONAL,
+ locationBasedCondHandoverEMC-r18 ENUMERATED {supported} OPTIONAL,
+ mt-CG-SDT-r18 ENUMERATED {supported} OPTIONAL,
+ posSRS-PreconfigureRRC-InactiveInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ posSRS-PreconfigureRRC-InactiveOutsideInitialUL-BWP-r18 ENUMERATED {supported} OPTIONAL,
+ cg-SDT-PeriodicityExt-r18 ENUMERATED {supported} OPTIONAL,
+ -- R2: 2Rx XR UEs
+ supportOf2RxXR-r18 ENUMERATED {supported} OPTIONAL,
+ condHandoverWithCandSCG-change-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -16042,6 +20511,22 @@ BandNR-v16c0 ::= SEQUENCE {
...
}
+LowerMSD-r18 ::= SEQUENCE {
+ aggressorband1-r18 CHOICE {
+ nr FreqBandIndicatorNR,
+ eutra FreqBandIndicatorEUTRA
+ },
+ aggressorband2-r18 FreqBandIndicatorNR OPTIONAL,
+ msd-Information-r18 SEQUENCE (SIZE (1..maxLowerMSDInfo-r18)) OF MSD-Information-r18
+}
+
+MSD-Information-r18 ::= SEQUENCE {
+ msd-Type-r18 ENUMERATED {harmonic, harmonicMixing, crossBandIsolation, imd2, imd3, imd4, imd5, all, spare8, spare7,
+ spare6, spare5,spare4, spare3, spare2, spare1},
+ msd-PowerClass-r18 ENUMERATED {pc1dot5, pc2, pc3},
+ msd-Class-r18 ENUMERATED {classI, classII, classIII, classIV, classV, classVI, classVII, classVIII }
+}
+
-- TAG-RF-PARAMETERS-STOP
-- TAG-RF-PARAMETERSMRDC-START
@@ -16117,7 +20602,25 @@ RF-ParametersMRDC ::= SEQUENCE {
supportedBandCombinationList-v1740 BandCombinationList-v1740 OPTIONAL,
supportedBandCombinationListNEDC-Only-v1740 BandCombinationList-v1740 OPTIONAL,
supportedBandCombinationList-UplinkTxSwitch-v1740 BandCombinationList-UplinkTxSwitch-v1740 OPTIONAL
+ ]],
+ [[
+ dummy1 BandCombinationList-v1770 OPTIONAL,
+ dummy2 BandCombinationList-UplinkTxSwitch-v1770 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1780 BandCombinationList-v1780 OPTIONAL,
+ supportedBandCombinationListNEDC-Only-v1780 BandCombinationList-v1780 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1780 BandCombinationList-UplinkTxSwitch-v1780 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1790 BandCombinationList-v1790 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1790 BandCombinationList-UplinkTxSwitch-v1790 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1800 BandCombinationList-v1800 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1800 BandCombinationList-UplinkTxSwitch-v1800 OPTIONAL
]]
+
}
RF-ParametersMRDC-v15g0 ::= SEQUENCE {
@@ -16125,6 +20628,14 @@ RF-ParametersMRDC-v15g0 ::= SEQUENCE {
supportedBandCombinationListNEDC-Only-v15g0 BandCombinationList-v15g0 OPTIONAL
}
+RF-ParametersMRDC-v15n0 ::= SEQUENCE {
+supportedBandCombinationList-v15n0 BandCombinationList-v15n0 OPTIONAL
+}
+
+RF-ParametersMRDC-v16e0 ::= SEQUENCE {
+supportedBandCombinationList-UplinkTxSwitch-v16e0 BandCombinationList-UplinkTxSwitch-v16e0 OPTIONAL
+}
+
-- TAG-RF-PARAMETERSMRDC-STOP
-- TAG-RLC-PARAMETERS-START
@@ -16139,6 +20650,9 @@ RLC-Parameters ::= SEQUENCE {
]],
[[
am-WithLongSN-RedCap-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ am-WithLongSN-NCR-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -16146,16 +20660,177 @@ RLC-Parameters ::= SEQUENCE {
-- TAG-SDAP-PARAMETERS-START
SDAP-Parameters ::= SEQUENCE {
- as-ReflectiveQoS ENUMERATED {true} OPTIONAL,
+ as-ReflectiveQoS ENUMERATED {true} OPTIONAL,
...,
[[
sdap-QOS-IAB-r16 ENUMERATED {supported} OPTIONAL,
sdapHeaderIAB-r16 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ sdap-QOS-NCR-r18 ENUMERATED {supported} OPTIONAL,
+ sdap-HeaderNCR-r18 ENUMERATED {supported} OPTIONAL
]]
-
}
-- TAG-SDAP-PARAMETERS-STOP
+-- TAG-SHAREDSPECTRUMCHACCESSPARAMSPERBAND-START
+
+SharedSpectrumChAccessParamsPerBand-r16 ::= SEQUENCE {
+
+ -- R1 10-1: UL channel access for dynamic channel access mode
+ ul-DynamicChAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-1a: UL channel access for semi-static channel access mode
+ ul-Semi-StaticChAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2: SSB-based RRM for dynamic channel access mode
+ ssb-RRM-DynamicChAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2a: SSB-based RRM for semi-static channel access mode
+ ssb-RRM-Semi-StaticChAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2b: MIB reading on unlicensed cell
+ mib-Acquisition-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2c: SSB-based RLM for dynamic channel access mode
+ ssb-RLM-DynamicChAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2d: SSB-based RLM for semi-static channel access mode
+ ssb-RLM-Semi-StaticChAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2e: SIB1 reception on unlicensed cell
+ sib1-Acquisition-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2f: Support monitoring of extended RAR window
+ extRA-ResponseWindow-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2g: SSB-based BFD/CBD for dynamic channel access mode
+ ssb-BFD-CBD-dynamicChannelAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2h: SSB-based BFD/CBD for semi-static channel access mode
+ ssb-BFD-CBD-semi-staticChannelAccess-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-2i: CSI-RS-based BFD/CBD for NR-U
+ csi-RS-BFD-CBD-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-7: UL channel access for 10 MHz SCell
+ ul-ChannelBW-SCell-10mhz-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-10: RSSI and channel occupancy measurement and reporting
+ rssi-ChannelOccupancyReporting-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-11:SRS starting position at any OFDM symbol in a slot
+ srs-StartAnyOFDM-Symbol-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-20: Support search space set configuration with freqMonitorLocation-r16
+ searchSpaceFreqMonitorLocation-r16 INTEGER (1..5) OPTIONAL,
+ -- R1 10-20a: Support coreset configuration with rb-Offset
+ coreset-RB-Offset-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-23:CGI reading on unlicensed cell for ANR functionality
+ cgi-Acquisition-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-25: Enable configured UL transmissions when DCI 2_0 is configured but not detected
+ configuredUL-Tx-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-27: Wideband PRACH
+ prach-Wideband-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-29: Support available RB set indicator field in DCI 2_0
+ dci-AvailableRB-Set-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-30: Support channel occupancy duration indicator field in DCI 2_0
+ dci-ChOccupancyDuration-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-8: Type B PDSCH length {3, 5, 6, 8, 9, 10, 11, 12, 13} without DMRS shift due to CRS collision
+ typeB-PDSCH-length-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-9: Search space set group switching with explicit DCI 2_0 bit field trigger or with implicit PDCCH decoding with DCI 2_0 monitoring
+ searchSpaceSwitchWithDCI-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-9b: Search space set group switching with implicit PDCCH decoding without DCI 2_0 monitoring
+ searchSpaceSwitchWithoutDCI-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-9d: Support Search space set group switching capability 2
+ searchSpaceSwitchCapability2-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-14: Non-numerical PDSCH to HARQ-ACK timing
+ non-numericalPDSCH-HARQ-timing-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-15: Enhanced dynamic HARQ codebook
+ enhancedDynamicHARQ-codebook-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-16: One-shot HARQ ACK feedback
+ oneShotHARQ-feedback-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-17: Multi-PUSCH UL grant
+ multiPUSCH-UL-grant-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-26: CSI-RS based RLM for NR-U
+ csi-RS-RLM-r16 ENUMERATED {supported} OPTIONAL,
+ dummy ENUMERATED {supported} OPTIONAL,
+ -- R1 10-31: Support of P/SP-CSI-RS reception with CSI-RS-ValidationWith-DCI-r16 configured
+ periodicAndSemi-PersistentCSI-RS-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-3: PRB interlace mapping for PUSCH
+ pusch-PRB-interlace-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-3a: PRB interlace mapping for PUCCH
+ pucch-F0-F1-PRB-Interlace-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-12: OCC for PRB interlace mapping for PF2 and PF3
+ occ-PRB-PF2-PF3-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-13a: Extended CP range of more than one symbol for CG-PUSCH
+ extCP-rangeCG-PUSCH-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-18: Configured grant with retransmission in CG resources
+ configuredGrantWithReTx-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-21a: Support using ED threshold given by gNB for UL to DL COT sharing
+ ed-Threshold-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-21b: Support UL to DL COT sharing
+ ul-DL-COT-Sharing-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-24: CG-UCI multiplexing with HARQ ACK
+ mux-CG-UCI-HARQ-ACK-r16 ENUMERATED {supported} OPTIONAL,
+ -- R1 10-28: Configured grant with Rel-16 enhanced resource configuration
+ cg-resourceConfig-r16 ENUMERATED {supported} OPTIONAL
+}
+
+SharedSpectrumChAccessParamsPerBand-v1630 ::= SEQUENCE {
+ -- R4 4-1: DL reception in intra-carrier guardband
+ dl-ReceptionIntraCellGuardband-r16 ENUMERATED {supported} OPTIONAL,
+ -- R4 4-2: DL reception when gNB does not transmit on all RB sets of a carrier as a result of LBT
+ dl-ReceptionLBT-subsetRB-r16 ENUMERATED {supported} OPTIONAL
+}
+
+SharedSpectrumChAccessParamsPerBand-v1640 ::= SEQUENCE {
+ -- 10-26b(1-4): CSI-RS based RRM measurement with associated SS-block
+ csi-RSRP-AndRSRQ-MeasWithSSB-r16 ENUMERATED {supported} OPTIONAL,
+ -- 10-26c(1-5): CSI-RS based RRM measurement without associated SS-block
+ csi-RSRP-AndRSRQ-MeasWithoutSSB-r16 ENUMERATED {supported} OPTIONAL,
+ -- 10-26d(1-6): CSI-RS based RS-SINR measurement
+ csi-SINR-Meas-r16 ENUMERATED {supported} OPTIONAL,
+ -- 10-26e(1-8): RLM based on a mix of SS block and CSI-RS signals within active BWP
+ ssb-AndCSI-RS-RLM-r16 ENUMERATED {supported} OPTIONAL,
+ -- 10-26f(1-9): CSI-RS based contention free RA for HO
+ csi-RS-CFRA-ForHO-r16 ENUMERATED {supported} OPTIONAL
+}
+
+SharedSpectrumChAccessParamsPerBand-v1650 ::= SEQUENCE {
+ -- Extension of R1 10-9 capability to configure up to 16 instead of 4 cells or cell groups, respectively
+ extendedSearchSpaceSwitchWithDCI-r16 ENUMERATED {supported} OPTIONAL
+}
+
+SharedSpectrumChAccessParamsPerBand-v1710 ::= SEQUENCE {
+ -- R1 25-12: UE initiated semi-static channel occupancy with dependent configurations
+ ul-Semi-StaticChAccessDependentConfig-r17 ENUMERATED {supported} OPTIONAL,
+ -- R1 25-13: UE initiated semi-static channel occupancy with independent configurations
+ ul-Semi-StaticChAccessIndependentConfig-r17 ENUMERATED {supported} OPTIONAL
+}
+
+-- TAG-SHAREDSPECTRUMCHACCESSPARAMSPERBAND-STOP
+-- TAG-SHAREDSPECTRUMCHACCESSPARAMSSIDELINKPERBAND-START
+
+SharedSpectrumChAccessParamsSidelinkPerBand-r18 ::= SEQUENCE {
+ -- R1 47-k1: SL channel access for dynamic channel access mode
+ sl-DynamicChannelAccess-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-k2: SL multi-channel access for dynamic channel access mode
+ sl-DynamicMultiChannelAccess-r18 INTEGER (2..5) OPTIONAL,
+ -- R1 47-k6: Type1 LBT blocking Option 1
+ sl-LBT-Option1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-k7: Type1 LBT blocking Option 2
+ sl-LBT-Option2-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-k9: Sidelink mode 1 resource allocation in shared spectrum
+ sl-ResourceAllocMode1-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-m1: Interlace RB-based SL transmission/reception
+ sl-Interlace-RB-TxRx-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-m5: Multiple PSFCH occasions per PSCCH/PSSCH
+ sl-PSFCH-MultiOccasion-r18 INTEGER (1..4) OPTIONAL,
+ -- R1 47-m10: Contiguous RB-based PSCCH/PSSCH transmission/reception
+ sl-ContiguousRB-TxRx-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-m11: PSFCH transmissions in multiple contiguous RB sets
+ sl-PSFCH-MultiContiguousRB-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-m11a: PSFCH transmissions in multiple non-contiguous RB sets
+ sl-PSFCH-MultiNonContiguousRB-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-m13: Transmissions/receptions of multiple dedicated PRBs in common interlace-based PSFCH
+ sl-MultiplePRB-CommonInterlacePSFCH-r18 SEQUENCE {
+ tx-TotalPRB-PSFCH-r18 ENUMERATED {n4, n5, n8, n15, n16, n20},
+ rx-TotalPRB-PSFCH-r18 ENUMERATED {n5, n6, n15, n16, n25, n26, n32, n35, n45, n46, n50, n64, n65}
+ } OPTIONAL,
+ -- R1 47-m13a: Transmissions/receptions of multiple interlaces in dedicated interlace-based PSFCH
+ sl-MultiplePRB-DedicatedInterlacePSFCH-r18 SEQUENCE {
+ tx-TotalPRB-PSFCH-r18 INTEGER (1..3),
+ rx-TotalPRB-PSFCH-r18 INTEGER (1..5)
+ } OPTIONAL
+}
+
+-- TAG-SHAREDSPECTRUMCHACCESSPARAMSSIDELINKPERBAND-STOP
-- TAG-SIDELINKPARAMETERS-START
SidelinkParameters-r16 ::= SEQUENCE {
@@ -16176,6 +20851,20 @@ SidelinkParametersNR-r16 ::= SEQUENCE {
[[
-- R1 32-x: Use of new P0 parameters for open loop power control
p0-OLPC-Sidelink-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ pdcp-ParametersSidelink-r18 PDCP-ParametersSidelink-r18 OPTIONAL,
+ --R1 41-1-1a: Common SL-PRS processing capability
+ sl-PRS-CommonProcCapabilityPerUE-r18 SEQUENCE {
+ maxNumOfActiveSL-PRS-Resources-r18 SEQUENCE {
+ fr1-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24} OPTIONAL,
+ fr2-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24, n32, n48, n64, n128} OPTIONAL
+ },
+ maxNumOfSlotswithActiveSL-PRS-Resources-r18 SEQUENCE {
+ fr1-r18 ENUMERATED {n1, n2, n3, n4, n6, n8} OPTIONAL,
+ fr2-r18 ENUMERATED {n1, n2, n4, n8, n12, n16, n24, n32, n48, n64} OPTIONAL
+ }
+ } OPTIONAL
]]
}
@@ -16209,6 +20898,9 @@ MAC-ParametersSidelinkCommon-r16 ::= SEQUENCE {
...,
[[
drx-OnSidelink-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ sl-LBT-FailureDectectionRecovery-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -16304,7 +20996,7 @@ BandSidelink-r16 ::= SEQUENCE {
sl-Rx-256QAM-r16 ENUMERATED {supported} OPTIONAL
]],
[[
- ue-PowerClassSidelink-r16 ENUMERATED {pc2, pc3, spare6, spare5, spare4, spare3, spare2, spare1}
+ ue-PowerClassSidelink-r16 ENUMERATED {pc2, pc3, pc5-v1820, spare5, spare4, spare3, spare2, spare1}
OPTIONAL
]],
[[
@@ -16323,7 +21015,7 @@ BandSidelink-r16 ::= SEQUENCE {
}
} OPTIONAL,
extendedCP-Mode2Random-r17 ENUMERATED {supported} OPTIONAL,
- dl-openLoopPC-Sidelink-r17 ENUMERATED {supported} OPTIONAL
+ dl-openLoopPC-Sidelink-r17 ENUMERATED {supported} OPTIONAL
} OPTIONAL,
--32-4b
sync-Sidelink-v1710 SEQUENCE {
@@ -16344,13 +21036,95 @@ BandSidelink-r16 ::= SEQUENCE {
rx-IUC-Scheme1-SCI-r17 ENUMERATED {supported} OPTIONAL,
--32-6-2
rx-IUC-Scheme1-SCI-ExplicitReq-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ sharedSpectrumChAccessParamsSidelinkPerBand-r18 SharedSpectrumChAccessParamsSidelinkPerBand-r18 OPTIONAL,
+ --R1 41-1-1 Common SL-PRS processing capability in a SL BWP
+ sl-PRS-CommonProcCapabilityPerBand-r18 SEQUENCE {
+ maxSL-PRS-Bandwidth-r18 CHOICE {
+ fr1-r18 ENUMERATED {mhz5, mhz10, mhz20, mhz40, mhz50, mhz80, mhz100},
+ fr2-r18 ENUMERATED {mhz50, mhz100, mhz200, mhz400}
+ },
+ maxNumOfActiveSL-PRS-ResourcesInOneSlot-r18 CHOICE {
+ fr1-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24},
+ fr2-r18 ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24, n32, n48, n64, n128}
+ },
+ maxNumOfSlotsWithActiveSL-PRS-Resources-r18 CHOICE {
+ fr1-r18 ENUMERATED {n1, n2, n3, n4, n6, n8},
+ fr2-r18 ENUMERATED {n1, n2, n4, n8, n12, n16, n24, n32, n48, n64}
+ },
+ minTimeAfterEndofSlotCarryActiveSL-PRS-Resources-r18 ENUMERATED {ms20, ms30, ms40, ms50, ms80, ms100, ms160}
+ } OPTIONAL,
+
+ -- R1 41-1-2: Receiving SL-PRS in a shared resource pool
+ sl-PRS-RxInSharedResourcePool-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-1-3: Receiving SL-PRS in a dedicated resource pool
+ sl-PRS-RxInDedicatedResourcePool-r18 SEQUENCE {
+ numOfSupportedRxPSCCH-PerSlot-r18 ENUMERATED {value1, value2},
+ supportedCP-TypeFor60kHzSCS-r18 ENUMERATED {ncp, ncpAndECP}
+ } OPTIONAL,
+ -- R1 41-1-4a: Transmitting SL-PRS in a shared resource pool
+ sl-PRS-TxInSharedResourcePool-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-1-4b: Transmitting SL-PRS scheme 1 in a dedicated resource pool
+ sl-PRS-TxScheme1InDedicatedResourcePool-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-1-4c: Transmitting SL-PRS mode 2 in a dedicated resource pool
+ sl-PRS-TxScheme2InDedicatedResourcePool-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-1-5: SL-PRS congestion control in a dedicated resource pool
+ sl-PRS-CongestionCtrl-r18 ENUMERATED {cpt1, cpt2, cpt3} OPTIONAL,
+ -- R1 41-1-8: Support of random selection in a dedicated resource pool
+ sl-PRS-TxRandomSelection-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-1-10: Support of full sensing in a dedicated resource pool
+ sl-PRS-TxUsingFullSensing-r18 ENUMERATED {value1, value2} OPTIONAL,
+ -- R1 41-1-20: Supports SL PRS Rx for a band configured with SL CA
+ sl-PRS-RxForBandWithSL-CA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 41-1-21: Supports SL PRS Tx for a band configured with SL CA
+ sl-PRS-TxForBandWithSL-CA-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-s1: Transmission/Reception using dynamic resource pool sharing
+ sl-DynamicSharingTxRx-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-v1: NR SL communication with SL CA
+ sl-CA-Communication-r18 SEQUENCE {
+ numberOfCarriers-r18 INTEGER (2..8),
+ numberOfPSCCH-DecodeValueZ-r18 INTEGER (1..2),
+ totalBandwidth-r18 ENUMERATED {mhz20,mhz30,mhz40,mhz50,mhz60,mhz70}
+ } OPTIONAL,
+ -- R1 47-v2: Synchronization for SL CA
+ sl-CA-Synchronization-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-v3: PSFCH for SL CA
+ sl-CA-PSFCH-r18 SEQUENCE {
+ rx-PSFCH-Resource-r18 ENUMERATED {n5,n15,n25,n32,n35,n45,n50,n64,n100},
+ tx-PSFCH-Resource-r18 ENUMERATED {n4,n8,n16,n24}
+ } OPTIONAL,
+ -- R4 45-2: SL reception in intra-carrier guard band
+ sl-ReceptionIntraCarrierGuardBand-r18 ENUMERATED {supported} OPTIONAL
]]
}
RelayParameters-r17 ::= SEQUENCE {
- relayUE-Operation-L2-r17 ENUMERATED {supported} OPTIONAL,
- remoteUE-Operation-L2-r17 ENUMERATED {supported} OPTIONAL,
- remoteUE-PathSwitchToIdleInactiveRelay-r17 ENUMERATED {supported} OPTIONAL,
+ relayUE-Operation-L2-r17 ENUMERATED {supported} OPTIONAL,
+ remoteUE-Operation-L2-r17 ENUMERATED {supported} OPTIONAL,
+ remoteUE-PathSwitchToIdleInactiveRelay-r17 ENUMERATED {supported} OPTIONAL,
+ ...,
+ [[
+ relayUE-U2U-OperationL2-r18 ENUMERATED {supported} OPTIONAL,
+ remoteUE-U2U-OperationL2-r18 ENUMERATED {supported} OPTIONAL,
+ remoteUE-U2N-PathSwitchOperationL2-r18 ENUMERATED {supported} OPTIONAL,
+ multipathRemoteUE-PC5L2-r18 ENUMERATED {supported} OPTIONAL,
+ multipathRelayUE-N3C-r18 ENUMERATED {supported} OPTIONAL,
+ multipathRemoteUE-N3C-r18 ENUMERATED {supported} OPTIONAL,
+ remoteUE-IndirectPathAddChangeToIdleInactiveRelay-r18 ENUMERATED {supported} OPTIONAL,
+ pdcp-DuplicationMoreThanOneUuRLC-r18 ENUMERATED {supported} OPTIONAL,
+ pdcp-CADuplicationDirectpath-DRB-r18 ENUMERATED {supported} OPTIONAL,
+ pdcp-CADuplicationDirectpath-SRB-r18 ENUMERATED {supported} OPTIONAL,
+ pdcp-DuplicationMP-SplitDRB-r18 ENUMERATED {supported} OPTIONAL,
+ pdcp-DuplicationMP-SplitSRB-r18 ENUMERATED {supported} OPTIONAL,
+ directpathRLF-RecoveryViaSRB1-r18 ENUMERATED {supported} OPTIONAL,
+ splitDRB-WithUL-BothDirectIndirect-r18 ENUMERATED {supported} OPTIONAL
+ ]]
+}
+
+PDCP-ParametersSidelink-r18 ::= SEQUENCE {
+ pdcp-DuplicationSRB-sidelink-r18 ENUMERATED {supported} OPTIONAL,
+ pdcp-DuplicationDRB-sidelink-r18 ENUMERATED {supported} OPTIONAL,
...
}
@@ -16372,6 +21146,14 @@ SON-Parameters-r16 ::= SEQUENCE {
twoStepRACH-Report-r17 ENUMERATED {supported} OPTIONAL,
pscell-MHI-Report-r17 ENUMERATED {supported} OPTIONAL,
onDemandSI-Report-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ cef-ReportRedCap-r17 ENUMERATED {supported} OPTIONAL,
+ rlf-ReportRedCap-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ spr-Report-r18 ENUMERATED {supported} OPTIONAL,
+ successIRAT-HO-Report-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -16421,6 +21203,18 @@ SRS-SwitchingTimeEUTRA ::= SEQUENCE {
OPTIONAL
}
-- TAG-SRS-SWITCHINGTIMEEUTRA-STOP
+-- TAG-SUPPORTEDAGGBANDWIDTH-START
+
+SupportedAggBandwidth-r17 ::= CHOICE {
+ fr1-r17 ENUMERATED {mhz20, mhz30, mhz35, mhz40, mhz50, mhz60, mhz70, mhz80, mhz90, mhz100, mhz110, mhz120, mhz130, mhz140,
+ mhz150, mhz160, mhz180, mhz200, mhz220, mhz230, mhz250, mhz280, mhz290, mhz300, mhz350, mhz400, mhz450,
+ mhz500, mhz600, mhz700, mhz800, spare1},
+ fr2-r17 ENUMERATED {mhz200, mhz300, mhz400, mhz500, mhz600, mhz700, mhz800, mhz900, mhz1000, mhz1100, mhz1200, mhz1300, mhz1400,
+ mhz1500, mhz1600, mhz1700, mhz1800, mhz1900, mhz2000, mhz2100, mhz2200, mhz2300, mhz2400, spare9, spare8,
+ spare7, spare6, spare5, spare4, spare3, spare2, spare1}
+}
+
+-- TAG-SUPPORTEDAGGBANDWIDTH-STOP
-- TAG-SUPPORTEDBANDWIDTH-START
SupportedBandwidth ::= CHOICE {
@@ -16453,6 +21247,10 @@ UE-BasedPerfMeas-Parameters-r16 ::= SEQUENCE {
multipleCEF-Report-r17 ENUMERATED {supported} OPTIONAL,
excessPacketDelay-r17 ENUMERATED {supported} OPTIONAL,
earlyMeasLog-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ loggedMDT-PNI-NPN-r18 ENUMERATED {supported} OPTIONAL,
+ loggedMDT-SNPN-r18 ENUMERATED {supported} OPTIONAL
]]
}
@@ -16501,6 +21299,13 @@ UE-CapabilityRequestFilterCommon ::= SEQUENCE {
]],
[[
fallbackGroupFiveRequest-r17 ENUMERATED {true} OPTIONAL -- Need N
+ ]],
+ [[
+ lowerMSDRequest-r18 SEQUENCE {
+ pc1dot5-r18 ENUMERATED {true} OPTIONAL, -- Need N
+ pc2-r18 ENUMERATED {true} OPTIONAL, -- Need N
+ pc3-r18 ENUMERATED {true} OPTIONAL -- Need N
+ } OPTIONAL -- Need N
]]
}
@@ -16510,6 +21315,7 @@ CellGrouping-r16 ::= SEQUENCE {
mode-r16 ENUMERATED {sync, async}
}
+
-- TAG-UE-CAPABILITYREQUESTFILTERCOMMON-STOP
-- TAG-UE-CAPABILITYREQUESTFILTERNR-START
@@ -16569,12 +21375,31 @@ UE-MRDC-Capability-v1700 ::= SEQUENCE {
UE-MRDC-Capability-v1730 ::= SEQUENCE {
measAndMobParametersMRDC-v1730 MeasAndMobParametersMRDC-v1730 OPTIONAL,
+ nonCriticalExtension UE-MRDC-Capability-v1800 OPTIONAL
+}
+
+UE-MRDC-Capability-v1800 ::= SEQUENCE {
+ -- R4 33-2: Support network control of requirementnetwork applicability for UE supporting interBandMRDC-WithOverlapDL-Bands-r16
+ requirementTypeIndication-r18 ENUMERATED {supported} OPTIONAL,
+ measAndMobParametersMRDC-v1810 MeasAndMobParametersMRDC-v1810 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
-- Late non-critical extensions:
UE-MRDC-Capability-v15g0 ::= SEQUENCE {
rf-ParametersMRDC-v15g0 RF-ParametersMRDC-v15g0 OPTIONAL,
+ nonCriticalExtension UE-MRDC-Capability-v15n0 OPTIONAL
+}
+
+UE-MRDC-Capability-v15n0 ::= SEQUENCE {
+ rf-ParametersMRDC-v15n0 RF-ParametersMRDC-v15n0 OPTIONAL,
+-- Following field is only for REL-15 late non-critical extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-MRDC-Capability-v16e0 OPTIONAL
+}
+
+UE-MRDC-Capability-v16e0 ::= SEQUENCE {
+ rf-ParametersMRDC-v16e0 RF-ParametersMRDC-v16e0 OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -16775,7 +21600,34 @@ UE-NR-Capability-v1740 ::= SEQUENCE {
UE-NR-Capability-v1750 ::= SEQUENCE {
crossCarrierSchedulingConfigurationRelease-r17 ENUMERATED {supported} OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension UE-NR-Capability-v1800 OPTIONAL
+}
+
+-- Regular non-critical Rel-18 extensions:
+UE-NR-Capability-v1800 ::= SEQUENCE {
+ airToGroundNetwork-r18 ENUMERATED {supported} OPTIONAL,
+ eRedCapParameters-r18 ERedCapParameters-r18 OPTIONAL,
+ ncr-Parameters-r18 NCR-Parameters-r18 OPTIONAL,
+ softSatelliteSwitchResyncNTN-r18 ENUMERATED {supported} OPTIONAL,
+ hardSatelliteSwitchResyncNTN-r18 ENUMERATED {supported} OPTIONAL,
+ mt-SDT-r18 ENUMERATED {supported} OPTIONAL,
+ mt-SDT-NTN-r18 ENUMERATED {supported} OPTIONAL,
+ inDeviceCoexIndAutonomousDenial-r18 ENUMERATED {supported} OPTIONAL,
+ inDeviceCoexIndFDM-r18 ENUMERATED {supported} OPTIONAL,
+ inDeviceCoexIndTDM-r18 ENUMERATED {supported} OPTIONAL,
+ musim-GapPriorityPreference-r18 ENUMERATED {supported} OPTIONAL,
+ musim-CapabilityRestriction-r18 ENUMERATED {supported} OPTIONAL,
+ multiRx-FR2-Preference-r18 ENUMERATED {supported} OPTIONAL,
+ ra-InsteadCG-SDT-r18 ENUMERATED {supported} OPTIONAL,
+ resumeAfterSDT-Release-r18 ENUMERATED {supported} OPTIONAL,
+ ul-TrafficInfo-r18 ENUMERATED {supported} OPTIONAL,
+ aerialParameters-r18 AerialParameters-r18 OPTIONAL,
+ --R4 40-2: beam steering
+ ntn-VSAT-AntennaType-r18 ENUMERATED {electronic, mechanical} OPTIONAL,
+ --R4 40-1: VSAT UE type in NTN
+ ntn-VSAT-MobilityType-r18 ENUMERATED {fixed, mobile} OPTIONAL,
+ ntn-Parameters-v1820 NTN-Parameters-v1820 OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
}
UE-NR-CapabilityAddXDD-Mode ::= SEQUENCE {
@@ -16826,140 +21678,51 @@ UE-RadioPagingInfo-r17 ::= SEQUENCE {
}
-- TAG-UE-RADIOPAGINGINFO-STOP
--- TAG-SHAREDSPECTRUMCHACCESSPARAMSPERBAND-START
-
-SharedSpectrumChAccessParamsPerBand-r16 ::= SEQUENCE {
+-- TAG-ABSOLUTETIMEINFO-START
- -- R1 10-1: UL channel access for dynamic channel access mode
- ul-DynamicChAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-1a: UL channel access for semi-static channel access mode
- ul-Semi-StaticChAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2: SSB-based RRM for dynamic channel access mode
- ssb-RRM-DynamicChAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2a: SSB-based RRM for semi-static channel access mode
- ssb-RRM-Semi-StaticChAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2b: MIB reading on unlicensed cell
- mib-Acquisition-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2c: SSB-based RLM for dynamic channel access mode
- ssb-RLM-DynamicChAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2d: SSB-based RLM for semi-static channel access mode
- ssb-RLM-Semi-StaticChAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2e: SIB1 reception on unlicensed cell
- sib1-Acquisition-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2f: Support monitoring of extended RAR window
- extRA-ResponseWindow-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2g: SSB-based BFD/CBD for dynamic channel access mode
- ssb-BFD-CBD-dynamicChannelAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2h: SSB-based BFD/CBD for semi-static channel access mode
- ssb-BFD-CBD-semi-staticChannelAccess-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-2i: CSI-RS-based BFD/CBD for NR-U
- csi-RS-BFD-CBD-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-7: UL channel access for 10 MHz SCell
- ul-ChannelBW-SCell-10mhz-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-10: RSSI and channel occupancy measurement and reporting
- rssi-ChannelOccupancyReporting-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-11:SRS starting position at any OFDM symbol in a slot
- srs-StartAnyOFDM-Symbol-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-20: Support search space set configuration with freqMonitorLocation-r16
- searchSpaceFreqMonitorLocation-r16 INTEGER (1..5) OPTIONAL,
- -- R1 10-20a: Support coreset configuration with rb-Offset
- coreset-RB-Offset-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-23:CGI reading on unlicensed cell for ANR functionality
- cgi-Acquisition-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-25: Enable configured UL transmissions when DCI 2_0 is configured but not detected
- configuredUL-Tx-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-27: Wideband PRACH
- prach-Wideband-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-29: Support available RB set indicator field in DCI 2_0
- dci-AvailableRB-Set-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-30: Support channel occupancy duration indicator field in DCI 2_0
- dci-ChOccupancyDuration-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-8: Type B PDSCH length {3, 5, 6, 8, 9, 10, 11, 12, 13} without DMRS shift due to CRS collision
- typeB-PDSCH-length-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-9: Search space set group switching with explicit DCI 2_0 bit field trigger or with implicit PDCCH decoding with DCI 2_0 monitoring
- searchSpaceSwitchWithDCI-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-9b: Search space set group switching with implicit PDCCH decoding without DCI 2_0 monitoring
- searchSpaceSwitchWithoutDCI-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-9d: Support Search space set group switching capability 2
- searchSpaceSwitchCapability2-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-14: Non-numerical PDSCH to HARQ-ACK timing
- non-numericalPDSCH-HARQ-timing-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-15: Enhanced dynamic HARQ codebook
- enhancedDynamicHARQ-codebook-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-16: One-shot HARQ ACK feedback
- oneShotHARQ-feedback-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-17: Multi-PUSCH UL grant
- multiPUSCH-UL-grant-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-26: CSI-RS based RLM for NR-U
- csi-RS-RLM-r16 ENUMERATED {supported} OPTIONAL,
- dummy ENUMERATED {supported} OPTIONAL,
- -- R1 10-31: Support of P/SP-CSI-RS reception with CSI-RS-ValidationWith-DCI-r16 configured
- periodicAndSemi-PersistentCSI-RS-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-3: PRB interlace mapping for PUSCH
- pusch-PRB-interlace-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-3a: PRB interlace mapping for PUCCH
- pucch-F0-F1-PRB-Interlace-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-12: OCC for PRB interlace mapping for PF2 and PF3
- occ-PRB-PF2-PF3-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-13a: Extended CP range of more than one symbol for CG-PUSCH
- extCP-rangeCG-PUSCH-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-18: Configured grant with retransmission in CG resources
- configuredGrantWithReTx-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-21a: Support using ED threshold given by gNB for UL to DL COT sharing
- ed-Threshold-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-21b: Support UL to DL COT sharing
- ul-DL-COT-Sharing-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-24: CG-UCI multiplexing with HARQ ACK
- mux-CG-UCI-HARQ-ACK-r16 ENUMERATED {supported} OPTIONAL,
- -- R1 10-28: Configured grant with Rel-16 enhanced resource configuration
- cg-resourceConfig-r16 ENUMERATED {supported} OPTIONAL
-}
+AbsoluteTimeInfo-r16 ::= BIT STRING (SIZE (48))
-SharedSpectrumChAccessParamsPerBand-v1630 ::= SEQUENCE {
- -- R4 4-1: DL reception in intra-carrier guardband
- dl-ReceptionIntraCellGuardband-r16 ENUMERATED {supported} OPTIONAL,
- -- R4 4-2: DL reception when gNB does not transmit on all RB sets of a carrier as a result of LBT
- dl-ReceptionLBT-subsetRB-r16 ENUMERATED {supported} OPTIONAL
-}
+-- TAG-ABSOLUTETIMEINFO-STOP
+-- TAG-APPLAYERIDLEINACTIVECONFIG-START
-SharedSpectrumChAccessParamsPerBand-v1640 ::= SEQUENCE {
- -- 10-26b(1-4): CSI-RS based RRM measurement with associated SS-block
- csi-RSRP-AndRSRQ-MeasWithSSB-r16 ENUMERATED {supported} OPTIONAL,
- -- 10-26c(1-5): CSI-RS based RRM measurement without associated SS-block
- csi-RSRP-AndRSRQ-MeasWithoutSSB-r16 ENUMERATED {supported} OPTIONAL,
- -- 10-26d(1-6): CSI-RS based RS-SINR measurement
- csi-SINR-Meas-r16 ENUMERATED {supported} OPTIONAL,
- -- 10-26e(1-8): RLM based on a mix of SS block and CSI-RS signals within active BWP
- ssb-AndCSI-RS-RLM-r16 ENUMERATED {supported} OPTIONAL,
- -- 10-26f(1-9): CSI-RS based contention free RA for HO
- csi-RS-CFRA-ForHO-r16 ENUMERATED {supported} OPTIONAL
+AppLayerIdleInactiveConfig-r18 ::= SEQUENCE {
+ measConfigAppLayerId-r18 MeasConfigAppLayerId-r17,
+ serviceType-r18 ENUMERATED {streaming, mtsi, vr, spare5, spare4, spare3, spare2, spare1} OPTIONAL, -- Need M
+ appLayerMeasPriority-r18 INTEGER (1..16) OPTIONAL, -- Need M
+ qoe-Reference-r18 OCTET STRING (SIZE (6)) OPTIONAL, -- Need M
+ qoe-MeasurementType-r18 ENUMERATED {sbased, mbased} OPTIONAL, -- Need M
+ qoe-AreaScope-r18 Qoe-AreaScope-r18 OPTIONAL, -- Need M
+ mce-Id-r18 OCTET STRING (SIZE (1)) OPTIONAL, -- Need M
+ availableRAN-VisibleMetrics-r18 AvailableRAN-VisibleMetrics-r18 OPTIONAL, -- Need M
+ ...
}
-SharedSpectrumChAccessParamsPerBand-v1650 ::= SEQUENCE {
- -- Extension of R1 10-9 capability to configure up to 16 instead of 4 cells or cell groups, respectively
- extendedSearchSpaceSwitchWithDCI-r16 ENUMERATED {supported} OPTIONAL
+Qoe-AreaScope-r18 ::= CHOICE {
+ cellGlobalIdList CellGlobalIdList-r16,
+ trackingAreaCodeList TrackingAreaCodeList-r16,
+ trackingAreaIdentityList TrackingAreaIdentityList-r16,
+ plmn-IdentityList PLMN-IdentityList2-r16,
+ ...
}
-SharedSpectrumChAccessParamsPerBand-v1710 ::= SEQUENCE {
- -- R1 25-12: UE initiated semi-static channel occupancy with dependent configurations
- ul-Semi-StaticChAccessDependentConfig-r17 ENUMERATED {supported} OPTIONAL,
- -- R1 25-13: UE initiated semi-static channel occupancy with independent configurations
- ul-Semi-StaticChAccessIndependentConfig-r17 ENUMERATED {supported} OPTIONAL
+AvailableRAN-VisibleMetrics-r18 ::= SEQUENCE {
+ appLayerBufferLevelList-r18 ENUMERATED {true} OPTIONAL, -- Need M
+ playoutDelayForMediaStartup-r18 ENUMERATED {true} OPTIONAL, -- Need M
+ ...
}
--- TAG-SHAREDSPECTRUMCHACCESSPARAMSPERBAND-STOP
--- TAG-ABSOLUTETIMEINFO-START
-
-AbsoluteTimeInfo-r16 ::= BIT STRING (SIZE (48))
-
--- TAG-ABSOLUTETIMEINFO-STOP
+-- TAG-APPLAYERIDLEINACTIVECONFIG-STOP
-- TAG-APPLAYERMEASCONFIG-START
AppLayerMeasConfig-r17 ::= SEQUENCE {
measConfigAppLayerToAddModList-r17 SEQUENCE (SIZE (1..maxNrofAppLayerMeas-r17)) OF MeasConfigAppLayer-r17 OPTIONAL, -- Need N
measConfigAppLayerToReleaseList-r17 SEQUENCE (SIZE (1..maxNrofAppLayerMeas-r17)) OF MeasConfigAppLayerId-r17 OPTIONAL, -- Need N
- rrc-SegAllowed-r17 ENUMERATED {enabled} OPTIONAL, -- Need R
- ...
+ rrc-SegAllowedSRB4-r17 ENUMERATED {enabled} OPTIONAL, -- Need R
+ ...,
+ [[
+ rrc-SegAllowedSRB5-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ idleInactiveReportAllowed-r18 ENUMERATED {enabled} OPTIONAL -- Need R
+ ]]
}
MeasConfigAppLayer-r17 ::= SEQUENCE {
@@ -16968,15 +21731,23 @@ MeasConfigAppLayer-r17 ::= SEQUENCE {
serviceType-r17 ENUMERATED {streaming, mtsi, vr, spare5, spare4, spare3, spare2, spare1} OPTIONAL, -- Need M
pauseReporting-r17 BOOLEAN OPTIONAL, -- Need M
transmissionOfSessionStartStop-r17 BOOLEAN OPTIONAL, -- Need M
- ran-VisibleParameters-r17 CHOICE {release NULL, setup RAN-VisibleParameters-r17} OPTIONAL, -- Cond ServiceType
- ...
+ ran-VisibleParameters-r17 CHOICE {release NULL, setup RAN-VisibleParameters-r17} OPTIONAL, -- Cond ServiceType
+ ...,
+ [[
+ reportingSRB-r18 ENUMERATED {srb4, srb5} OPTIONAL, -- Cond QoENRDC
+ appLayerMeasPriority-r18 INTEGER (1..16) OPTIONAL, -- Cond Need M
+ appLayerIdleInactiveConfig-r18 CHOICE {release NULL, setup AppLayerIdleInactiveConfig-r18} OPTIONAL -- Need M
+ ]]
}
RAN-VisibleParameters-r17 ::= SEQUENCE {
ran-VisiblePeriodicity-r17 ENUMERATED {ms120, ms240, ms480, ms640, ms1024} OPTIONAL, -- Need S
numberOfBufferLevelEntries-r17 INTEGER (1..8) OPTIONAL, -- Need R
reportPlayoutDelayForMediaStartup-r17 BOOLEAN OPTIONAL, -- Need M
- ...
+ ...,
+ [[
+ ran-VisibleReportingSRB-r18 ENUMERATED {srb4, srb5} OPTIONAL -- Cond QoENRDC
+ ]]
}
-- TAG-APPLAYERMEASCONFIG-STOP
@@ -16987,12 +21758,17 @@ AreaConfiguration-r16 ::= SEQUENCE {
interFreqTargetList-r16 SEQUENCE(SIZE (1..maxFreq)) OF InterFreqTargetInfo-r16 OPTIONAL -- Need R
}
-AreaConfiguration-v1700 ::= SEQUENCE {
+AreaConfiguration-r17 ::= SEQUENCE {
areaConfig-r17 AreaConfig-r16 OPTIONAL, -- Need R
interFreqTargetList-r17 SEQUENCE(SIZE (1..maxFreq)) OF InterFreqTargetInfo-r16 OPTIONAL -- Need R
}
-AreaConfig-r16 ::= CHOICE {
+AreaConfiguration-v1800 ::= CHOICE {
+ cag-ConfigList-r18 CAG-ConfigList-r18,
+ snpn-ConfigList-r18 SNPN-ConfigList-r18
+}
+
+AreaConfig-r16 ::= CHOICE {
cellGlobalIdList-r16 CellGlobalIdList-r16,
trackingAreaCodeList-r16 TrackingAreaCodeList-r16,
trackingAreaIdentityList-r16 TrackingAreaIdentityList-r16
@@ -17000,7 +21776,7 @@ AreaConfig-r16 ::= CHOICE {
InterFreqTargetInfo-r16 ::= SEQUENCE {
dl-CarrierFreq-r16 ARFCN-ValueNR,
- cellList-r16 SEQUENCE (SIZE (1..32)) OF PhysCellId OPTIONAL -- Need R
+ cellList-r16 SEQUENCE (SIZE (1..32)) OF PhysCellId OPTIONAL -- Need R
}
CellGlobalIdList-r16 ::= SEQUENCE (SIZE (1..32)) OF CGI-Info-Logging-r16
@@ -17013,6 +21789,39 @@ TrackingAreaIdentity-r16 ::= SEQUENCE {
plmn-Identity-r16 PLMN-Identity,
trackingAreaCode-r16 TrackingAreaCode
}
+CAG-ConfigList-r18 ::= SEQUENCE (SIZE (1..maxNPN-r16)) OF CAG-Config-r18
+
+CAG-Config-r18 ::= SEQUENCE {
+ plmn-Identity-r18 PLMN-Identity,
+ cag-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF BIT STRING (SIZE (32))
+}
+
+SNPN-ConfigList-r18 ::= CHOICE {
+ snpn-ConfigCellIdList-r18 SNPN-ConfigCellIdList-r18,
+ snpn-ConfigTAI-List-r18 SNPN-ConfigTAI-List-r18,
+ snpn-ConfigID-List-r18 SNPN-ConfigID-List-r18
+}
+
+SNPN-ConfigCellIdList-r18 ::= SEQUENCE (SIZE (1..maxSNPN-ConfigCellId-r18)) OF SNPN-ConfigCellId-r18
+
+SNPN-ConfigCellId-r18 ::= SEQUENCE {
+ cgi-Identity-r18 CGI-Info-Logging-r16,
+ nid-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF NID-r16
+}
+
+SNPN-ConfigTAI-List-r18 ::= SEQUENCE (SIZE (1..maxSNPN-ConfigTAI-r18)) OF SNPN-ConfigTAI-r18
+
+SNPN-ConfigTAI-r18 ::= SEQUENCE {
+ tai-Identity-r18 TrackingAreaIdentity-r16,
+ nid-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF NID-r16
+}
+
+SNPN-ConfigID-List-r18 ::= SEQUENCE (SIZE (1..maxSNPN-ConfigID-r18)) OF SNPN-ConfigID-r18
+
+SNPN-ConfigID-r18 ::= SEQUENCE {
+ plmn-Identity-r18 PLMN-Identity,
+ nid-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF NID-r16
+}
-- TAG-AREACONFIGURATION-STOP
-- TAG-BTNAMELIST-START
@@ -17061,6 +21870,16 @@ EUTRA-MultiBandInfo ::= SEQUENCE {
}
-- TAG-EUTRA-MULTIBANDINFOLIST-STOP
+-- TAG-EUTRA-MULTIBANDINFOLISTAERIAL-START
+
+EUTRA-MultiBandInfoListAerial-r18 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF EUTRA-MultiBandInfoAerial-r18
+
+EUTRA-MultiBandInfoAerial-r18 ::= SEQUENCE {
+ eutra-FreqBandIndicator-r18 FreqBandIndicatorEUTRA,
+ eutra-NS-PmaxListAerial-r18 EUTRA-NS-PmaxList OPTIONAL -- Need R
+}
+
+-- TAG-EUTRA-MULTIBANDINFOLISTAERIAL-STOP
-- TAG-EUTRA-NS-PMAXLIST-START
EUTRA-NS-PmaxList ::= SEQUENCE (SIZE (1..maxEUTRA-NS-Pmax)) OF EUTRA-NS-PmaxValue
@@ -17230,6 +22049,29 @@ OtherConfig-v1700 ::= SEQUENCE {
propDelayDiffReportConfig-r17 CHOICE {release NULL, setup PropDelayDiffReportConfig-r17} OPTIONAL -- Need M
}
+OtherConfig-v1800 ::= SEQUENCE {
+ idc-AssistanceConfig-v1800 CHOICE {release NULL, setup IDC-AssistanceConfig-v1800} OPTIONAL, -- Need M
+ multiRx-PreferenceReportingConfigFR2-r18 CHOICE {release NULL, setup MultiRx-PreferenceReportingConfigFR2-r18} OPTIONAL, -- Need M
+ aerial-FlightPathAvailabilityConfig-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ ul-TrafficInfoReportingConfig-r18 CHOICE {release NULL, setup UL-TrafficInfoReportingConfig-r18} OPTIONAL, -- Need M
+ n3c-RelayUE-InfoReportConfig-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ successPSCell-Config-r18 CHOICE {release NULL, setup SuccessPSCell-Config-r18} OPTIONAL, -- Need M
+ sn-InitiatedPSCellChange-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ musim-GapPriorityAssistanceConfig-r18 ENUMERATED {true} OPTIONAL, -- Cond musimGapConfig
+ musim-CapabilityRestrictionConfig-r18 CHOICE {release NULL, setup MUSIM-CapabilityRestrictionConfig-r18} OPTIONAL -- Need M
+}
+
+IDC-AssistanceConfig-v1800 ::= SEQUENCE {
+ idc-FDM-AssistanceConfig-r18 CHOICE {release NULL, setup IDC-FDM-AssistanceConfig-r18} OPTIONAL, -- Need M
+ idc-TDM-AssistanceConfig-r18 ENUMERATED {setup} OPTIONAL -- Cond FDM
+}
+
+MultiRx-PreferenceReportingConfigFR2-r18 ::= SEQUENCE {
+ multiRx-PreferenceReportingConfigFR2ProhibitTimer-r18 ENUMERATED {
+ s0, s0dot5, s1, s2, s3, s4, s5, s6, s7,
+ s8, s9, s10, s20, s30, spare2, spare1}
+}
+
CandidateServingFreqListNR-r16 ::= SEQUENCE (SIZE (1..maxFreqIDC-r16)) OF ARFCN-ValueNR
MUSIM-GapAssistanceConfig-r17 ::= SEQUENCE {
@@ -17240,6 +22082,15 @@ MUSIM-LeaveAssistanceConfig-r17 ::= SEQUENCE {
musim-LeaveWithoutResponseTimer-r17 ENUMERATED {ms10, ms20, ms40, ms60, ms80, ms100, spare2, spare1}
}
+MUSIM-CapabilityRestrictionConfig-r18 ::= SEQUENCE {
+ musim-CandidateBandList-r18 MUSIM-CandidateBandList-r18 OPTIONAL, -- Need M
+ musim-WaitTimer-r18 ENUMERATED {ms10, ms20, ms40, ms60, ms80, ms100, spare2, spare1},
+ musim-ProhibitTimer-r18 ENUMERATED {s0, s0dot1, s0dot2, s0dot3, s0dot4, s0dot5, s1, s2, s3, s4, s5, s6, s7, s8,
+ s9, s10}
+}
+
+MUSIM-CandidateBandList-r18::= SEQUENCE (SIZE (1..maxCandidateBandIndex-r18)) OF FreqBandIndicatorNR
+
SuccessHO-Config-r17 ::= SEQUENCE {
thresholdPercentageT304-r17 ENUMERATED {p40, p60, p80, spare5, spare4, spare3, spare2, spare1} OPTIONAL, --Need R
thresholdPercentageT310-r17 ENUMERATED {p40, p60, p80, spare5, spare4, spare3, spare2, spare1} OPTIONAL, --Need R
@@ -17248,6 +22099,14 @@ SuccessHO-Config-r17 ::= SEQUENCE {
...
}
+SuccessPSCell-Config-r18 ::= SEQUENCE {
+ thresholdPercentageT304-SCG-r18 ENUMERATED {p40, p60, p80, spare5, spare4, spare3, spare2, spare1} OPTIONAL, --Need R
+ thresholdPercentageT310-SCG-r18 ENUMERATED {p40, p60, p80, spare5, spare4, spare3, spare2, spare1} OPTIONAL, --Need R
+ thresholdPercentageT312-SCG-r18 ENUMERATED {p20, p40, p60, p80, spare4, spare3, spare2, spare1} OPTIONAL, --Need R
+ ...
+}
+
+
OverheatingAssistanceConfig ::= SEQUENCE {
overheatingIndicationProhibitTimer ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30,
s60, s90, s120, s300, s600, spare3, spare2, spare1}
@@ -17328,6 +22187,32 @@ epochTime-r17 EpochTime-r17,
ephemerisInfo-r17 EphemerisInfo-r17
}
+IDC-FDM-AssistanceConfig-r18 ::= SEQUENCE {
+ candidateServingFreqRangeListNR-r18 CandidateServingFreqRangeListNR-r18 OPTIONAL, -- Need R
+ ...
+}
+
+CandidateServingFreqRangeListNR-r18 ::= SEQUENCE (SIZE (1..maxFreqIDC-r16)) OF CandidateServingFreqRangeNR-r18
+
+CandidateServingFreqRangeNR-r18 ::= SEQUENCE {
+ candidateCenterFreq-r18 ARFCN-ValueNR,
+ candidateBandwidth-r18 ENUMERATED {khz200, khz400, khz600, khz800, mhz1, mhz2, mhz3, mhz4, mhz5,
+ mhz6, mhz8, mhz10, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100,
+ mhz200, mhz300, mhz400} OPTIONAL -- Need R
+}
+
+UL-TrafficInfoReportingConfig-r18 ::= SEQUENCE {
+ pdu-SessionsToReportUL-TrafficInfoList-r18 SEQUENCE (SIZE (1.. maxNrofPDU-Sessions-r17)) OF PDU-SessionToReportUL-TrafficInfo-r18,
+ ul-TrafficInfoProhibitTimer-r18 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30,
+ s60, s90, s120, s300, s600, spare3, spare2, spare1}
+}
+
+
+PDU-SessionToReportUL-TrafficInfo-r18 ::= SEQUENCE {
+ pdu-SessionID PDU-SessionID,
+ qfi-ToReportUL-TrafficInfoList-r18 SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI
+}
+
-- TAG-OTHERCONFIG-STOP
-- TAG-PHYSCELLIDUTRA-FDD-START
@@ -17368,7 +22253,11 @@ UE-MeasurementsAvailable-r16 ::= SEQUENCE {
[[
successHO-InfoAvailable-r17 ENUMERATED {true} OPTIONAL,
sigLogMeasConfigAvailable-r17 BOOLEAN OPTIONAL
+ ]],
+ [[
+ successPSCell-InfoAvailable-r18 ENUMERATED {true} OPTIONAL
]]
+
}
-- TAG-UE-MeasurementsAvailable-STOP
@@ -17432,12 +22321,16 @@ WLAN-Name-r16 ::= OCTET STRING (SIZE (1..32))
SL-BWP-Config-r16 ::= SEQUENCE {
sl-BWP-Id BWP-Id,
- sl-BWP-Generic-r16 SL-BWP-Generic-r16 OPTIONAL, -- Need M
- sl-BWP-PoolConfig-r16 SL-BWP-PoolConfig-r16 OPTIONAL, -- Need M
+ sl-BWP-Generic-r16 SL-BWP-Generic-r16 OPTIONAL, -- Need M
+ sl-BWP-PoolConfig-r16 SL-BWP-PoolConfig-r16 OPTIONAL, -- Need M
...,
[[
- sl-BWP-PoolConfigPS-r17 CHOICE {release NULL, setup SL-BWP-PoolConfig-r16} OPTIONAL, -- Need M
- sl-BWP-DiscPoolConfig-r17 CHOICE {release NULL, setup SL-BWP-DiscPoolConfig-r17} OPTIONAL -- Need M
+ sl-BWP-PoolConfigPS-r17 CHOICE {release NULL, setup SL-BWP-PoolConfig-r16} OPTIONAL, -- Need M
+ sl-BWP-DiscPoolConfig-r17 CHOICE {release NULL, setup SL-BWP-DiscPoolConfig-r17} OPTIONAL -- Need M
+ ]],
+ [[
+ sl-BWP-PoolConfigA2X-r18 CHOICE {release NULL, setup SL-BWP-PoolConfig-r16} OPTIONAL, -- Need M
+ sl-BWP-PRS-PoolConfig-r18 CHOICE {release NULL, setup SL-BWP-PRS-PoolConfig-r18} OPTIONAL -- Need M
]]
}
@@ -17447,19 +22340,40 @@ SL-BWP-Generic-r16 ::= SEQUENCE {
sl-StartSymbol-r16 ENUMERATED {sym0, sym1, sym2, sym3, sym4, sym5, sym6, sym7} OPTIONAL, -- Need M
sl-PSBCH-Config-r16 CHOICE {release NULL, setup SL-PSBCH-Config-r16} OPTIONAL, -- Need M
sl-TxDirectCurrentLocation-r16 INTEGER (0..3301) OPTIONAL, -- Need M
- ...
+ ...,
+ [[
+ sl-Unlicensed-r18 CHOICE {release NULL, setup SL-Unlicensed-r18 } OPTIONAL -- Need M
+ ]]
+}
+
+SL-Unlicensed-r18 ::= SEQUENCE {
+ sl-LBT-FailureRecoveryConfig-r18 CHOICE {release NULL, setup SL-LBT-FailureRecoveryConfig-r18 } OPTIONAL, -- Need M
+ sl-StartingSymbolFirst-r18 ENUMERATED {sym0, sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need M
+ sl-StartingSymbolSecond-r18 ENUMERATED {sym3, sym4, sym5, sym6, sym7} OPTIONAL, -- Need M
+ sl-TransmissionStructureForPSCCHandPSSCH-r18 ENUMERATED {contiguousRB, interlaceRB} OPTIONAL, -- Need M
+ sl-GapOfAdditionalSSSB-Occasion-r18 INTEGER (0..639) OPTIONAL, -- Need M
+ sl-AbsoluteFrequencySSB-NonAnchorList-r18 SEQUENCE (SIZE (1.. maxSL-NonAnchorRBsets)) OF ARFCN-ValueNR OPTIONAL, -- Need M
+ sl-CPE-StartingPositionS-SSB-r18 INTEGER (1..9) OPTIONAL, -- Need M
+ sl-CWS-ForPsschWithoutHarqAck-r18 ENUMERATED {t1, t8, t16, t32, infinity} OPTIONAL, -- Need M
+ sl-NumOfAdditionalSSSBOccasion-r18 INTEGER (0..4) OPTIONAL, -- Need M
+ sl-SSSBPowerOffsetOfAnchorRBSet-r18 ENUMERATED {value1, value2} OPTIONAL, -- Need M
+ sl-RBSetConfigList-r18 SEQUENCE (SIZE (1..5)) OF SL-RBSetConfig-r18 OPTIONAL, -- Need M
+ sl-IntraCellGuardBandsSL-List-r18 SEQUENCE (SIZE (1..maxSCSs)) OF IntraCellGuardBandsPerSCS-r16 OPTIONAL -- Need M
}
-- TAG-SL-BWP-CONFIG-STOP
-- TAG-SL-BWP-CONFIGCOMMON-START
SL-BWP-ConfigCommon-r16 ::= SEQUENCE {
- sl-BWP-Generic-r16 SL-BWP-Generic-r16 OPTIONAL, -- Need R
- sl-BWP-PoolConfigCommon-r16 SL-BWP-PoolConfigCommon-r16 OPTIONAL, -- Need R
+ sl-BWP-Generic-r16 SL-BWP-Generic-r16 OPTIONAL, -- Need R
+ sl-BWP-PoolConfigCommon-r16 SL-BWP-PoolConfigCommon-r16 OPTIONAL, -- Need R
...,
[[
- sl-BWP-PoolConfigCommonPS-r17 SL-BWP-PoolConfigCommon-r16 OPTIONAL, -- Need R
- sl-BWP-DiscPoolConfigCommon-r17 SL-BWP-DiscPoolConfigCommon-r17 OPTIONAL -- Need R
+ sl-BWP-PoolConfigCommonPS-r17 SL-BWP-PoolConfigCommon-r16 OPTIONAL, -- Need R
+ sl-BWP-DiscPoolConfigCommon-r17 SL-BWP-DiscPoolConfigCommon-r17 OPTIONAL -- Need R
+ ]],
+ [[
+ sl-BWP-PoolConfigCommonA2X-r18 SL-BWP-PoolConfigCommon-r16 OPTIONAL -- Need R
]]
}
@@ -17513,6 +22427,38 @@ SL-BWP-PoolConfigCommon-r16 ::= SEQUENCE {
}
-- TAG-SL-BWP-POOLCONFIGCOMMON-STOP
+-- TAG-SL-BWP-PRS-POOLCONFIG-START
+
+SL-BWP-PRS-PoolConfig-r18 ::= SEQUENCE {
+ sl-PRS-RxPool-r18 SEQUENCE (SIZE (1..maxNrofRXPool-r16)) OF SL-PRS-ResourcePool-r18 OPTIONAL, -- Cond HO
+ sl-PRS-TxPoolSelectedNormal-r18 SL-PRS-TxPoolDedicated-r18 OPTIONAL, -- Need M
+ sl-PRS-TxPoolScheduling-r18 SL-PRS-TxPoolDedicated-r18 OPTIONAL, -- Need M
+ sl-PRS-TxPoolExceptional-r18 SL-PRS-ResourcePoolConfig-r18 OPTIONAL -- Need R
+}
+
+SL-PRS-TxPoolDedicated-r18 ::= SEQUENCE {
+ sl-PRS-PoolToReleaseList-r1 SEQUENCE (SIZE (1..maxNrofSL-PRS-TxPool-r18)) OF SL-PRS-ResourcePoolID-r18 OPTIONAL, -- Need N
+ sl-PRS-PoolToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSL-PRS-TxPool-r18)) OF SL-PRS-ResourcePoolConfig-r18 OPTIONAL -- Need N
+}
+
+SL-PRS-ResourcePoolConfig-r18 ::= SEQUENCE {
+ sl-PRS-ResourcePoolID-r18 SL-PRS-ResourcePoolID-r18,
+ sl-PRS-ResourcePool-r18 SL-PRS-ResourcePool-r18 OPTIONAL -- Need M
+}
+
+SL-PRS-ResourcePoolID-r18 ::= INTEGER (1.. maxNrofSL-PRS-TxPool-r18)
+
+-- TAG-SL-BWP-PRS-POOLCONFIG-STOP
+-- TAG-SL-BWP-PRS-POOLCONFIGCOMMON-START
+
+SL-BWP-PRS-PoolConfigCommon-r18 ::= SEQUENCE {
+ sl-PRS-RxPool-r18 SEQUENCE (SIZE (1..maxNrofRXPool-r16)) OF SL-PRS-ResourcePool-r18 OPTIONAL, -- Need R
+ sl-PRS-TxPoolSelectedNormal-r18 SEQUENCE (SIZE (1..maxNrofSL-PRS-TxPool-r18)) OF SL-PRS-ResourcePoolConfig-r18 OPTIONAL, -- Need R
+ sl-PRS-TxPoolExceptional-r18 SL-PRS-ResourcePoolConfig-r18 OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-SL-BWP-PRSPOOLCONFIGCOMMON-STOP
-- TAG-SL-CBR-PRIORITYTXCONFIGLIST-START
SL-CBR-PriorityTxConfigList-r16 ::= SEQUENCE (SIZE (1..8)) OF SL-PriorityTxConfigIndex-r16
@@ -17550,6 +22496,26 @@ SL-CBR-PSSCH-TxConfig-r16 ::= SEQUENCE {
SL-CBR-r16 ::= INTEGER (0..100)
-- TAG-SL-CBR-COMMONTXCONFIGLIST-STOP
+-- TAG- SL-CBR-COMMONTXDEDICATEDSL-PRS-RP-LIST-START
+
+SL-CBR-CommonTxDedicatedSL-PRS-RP-List-r18 ::= SEQUENCE {
+ sl-CBR-RangeDedicatedSL-PRS-RP-List-r18 SEQUENCE (SIZE (1..maxCBR-ConfigDedSL-PRS-1-r18)) OF SL-CBR-LevelsDedicatedSL-PRS-RP-r18
+ OPTIONAL, -- Need M
+ sl-CBR-SL-PRS-TxConfigList-r18 SEQUENCE (SIZE (1.. maxNrofSL-PRS-TxConfig-r18)) OF SL-CBR-SL-PRS-TxConfig-r18
+ OPTIONAL -- Need M
+}
+
+SL-CBR-LevelsDedicatedSL-PRS-RP-r18 ::= SEQUENCE (SIZE (0..maxCBR-LevelDedSL-PRS-1-r18)) OF SL-CBR-Dedicated-SL-PRS-RP-r18
+
+SL-CBR-SL-PRS-TxConfig-r18 ::= SEQUENCE {
+ sl-PRS-CR-Limit-r18 INTEGER(0..10000) OPTIONAL, -- Need M
+ sl-PRS-MaxTx-power-r18 INTEGER (-30..33) OPTIONAL, -- Need M
+ sl-PRS-MaxNum-Transmissions-r18 INTEGER(1..32) OPTIONAL -- Need M
+}
+
+SL-CBR-Dedicated-SL-PRS-RP-r18 ::= INTEGER (0..100)
+
+-- TAG-SL-CBR-COMMONTXDEDICATEDSL-PRS-RP-LIST-STOP
-- TAG-SL-CONFIGDEDICATEDNR-START
SL-ConfigDedicatedNR-r16 ::= SEQUENCE {
@@ -17563,6 +22529,9 @@ SL-ConfigDedicatedNR-r16 ::= SEQUENCE {
[[
sl-PHY-MAC-RLC-Config-v1700 CHOICE {release NULL, setup SL-PHY-MAC-RLC-Config-v1700 } OPTIONAL, -- Need M
sl-DiscConfig-r17 CHOICE {release NULL, setup SL-DiscConfig-r17} OPTIONAL -- Need M
+ ]],
+ [[
+ sl-DiscConfig-v1800 SL-DiscConfig-v1800 OPTIONAL -- Need M
]]
}
@@ -17589,9 +22558,20 @@ SL-PHY-MAC-RLC-Config-v1700 ::= SEQUENCE {
sl-DRX-Config-r17 SL-DRX-Config-r17 OPTIONAL, -- Need M
sl-RLC-ChannelToReleaseList-r17 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-ChannelID-r17 OPTIONAL, -- Cond L2U2N
-- WS modification: define a dedicated type
--- sl-RLC-ChannelToAddModList-r17 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-ChannelConfig-r17 OPTIONAL, -- -- Cond L2U2N
+-- sl-RLC-ChannelToAddModList-r17 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-ChannelConfig-r17 OPTIONAL, Cond L2U2N
sl-RLC-ChannelToAddModList-r17 SL-RLC-ChannelToAddModList-r17 OPTIONAL, -- Cond L2U2N
- ...
+ ...,
+ [[
+ sl-RLC-BearerToAddModListSizeExt-v1800 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-BearerConfig-r16 OPTIONAL, -- Need N
+ sl-RLC-BearerToReleaseListSizeExt-v1800 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-BearerConfigIndex-v1800 OPTIONAL, -- Need N
+ sl-FreqInfoToAddModListExt-v1800 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-FreqConfigExt-v1800 OPTIONAL, -- Need N
+ sl-LBT-SchedulingRequestId-r18 CHOICE {release NULL, setup SchedulingRequestId} OPTIONAL, -- Need M
+ sl-SyncFreqList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-Freq-Id-r16 OPTIONAL, -- Need M
+ sl-SyncTxMultiFreq-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ sl-MaxTransPowerCA-r18 P-Max OPTIONAL, -- Need R
+ sl-SCCH-CarrierSetConfig-r18 CHOICE {release NULL, setup SL-SCCH-CarrierSetConfigList-r18} OPTIONAL, -- Need M
+ sl-PRS-SchedulingRequestId-r18 CHOICE {release NULL, setup SchedulingRequestId} OPTIONAL -- Need M
+ ]]
}
SL-DiscConfig-r17::= SEQUENCE {
@@ -17599,6 +22579,20 @@ SL-DiscConfig-r17::= SEQUENCE {
sl-RemoteUE-Config-r17 CHOICE {release NULL, setup SL-RemoteUE-Config-r17} OPTIONAL -- Cond L2RemoteUE
}
+SL-DiscConfig-v1800 ::= SEQUENCE {
+ sl-RelayUE-ConfigU2U-r18 CHOICE {release NULL, setup SL-RelayUE-ConfigU2U-r18} OPTIONAL, -- Cond U2URelayUE
+ sl-RemoteUE-ConfigU2U-r18 CHOICE {release NULL, setup SL-RemoteUE-ConfigU2U-r18} OPTIONAL -- Cond U2URemoteUE
+}
+
+SL-SCCH-CarrierSetConfigList-r18 ::= SEQUENCE (SIZE (1..maxNrofSL-CarrierSetConfig-r18)) OF SL-SCCH-CarrierSetConfig-r18
+
+SL-SCCH-CarrierSetConfig-r18 ::= SEQUENCE {
+ sl-DestinationList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-DestinationIdentity-r16,
+ sl-SRB-Identity-r18 SEQUENCE (SIZE (1..3)) OF SRB-Identity,
+ sl-AllowedCarrierFreqSet1-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF INTEGER (1..maxNrofFreqSL-r16),
+ sl-AllowedCarrierFreqSet2-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF INTEGER (1..maxNrofFreqSL-r16)
+}
+
-- TAG-SL-CONFIGDEDICATEDNR-STOP
-- TAG-SL-CONFIGUREDGRANTCONFIG-START
@@ -17621,6 +22615,9 @@ SL-ConfiguredGrantConfig-r16 ::= SEQUENCE {
...,
[[
sl-N1PUCCH-AN-Type2-r16 PUCCH-ResourceId OPTIONAL -- Need M
+ ]],
+ [[
+ sl-StartRBsetCG-Type1-r18 INTEGER (0..4) OPTIONAL -- Need M
]]
}
@@ -17640,6 +22637,22 @@ SL-PeriodCG-r16 ::= CHOICE{
}
-- TAG-SL-CONFIGUREDGRANTCONFIG-STOP
+-- TAG-SL-CONFIGUREDGRANTCONFIGDEDICATEDSL-PRS-RP-START
+
+SL-ConfiguredGrantConfigDedicatedSL-PRS-RP-r18 ::= SEQUENCE {
+ sl-PRS-ConfigIndexCG-r18 SL-ConfigIndexCG-r16,
+ sl-PRS-PeriodCG-r18 SL-PeriodCG-r16 OPTIONAL, -- Need M
+ sl-PRS-ResourcePoolID-r18 SL-ResourcePoolID-r16 OPTIONAL, -- Need M
+ rrc-ConfiguredSidelinkGrantDedicated-SL-PRS-RP-r18 SEQUENCE {
+ sl-TimeOffsetCG-Type1-r18 INTEGER (0..7999) OPTIONAL, -- Need R
+ sl-TimeReferenceSFN-Type1-r18 ENUMERATED {sfn512} OPTIONAL, -- Need S
+ sl-TimeResourceCG-Type1-r18 INTEGER (0..496) OPTIONAL, -- Need M
+ sl-PRS-ResourceIndicationFirstType1-r18 INTEGER(0..11) OPTIONAL, -- Need M
+ sl-PRS-ResourceIndicationFutureType1-r18 INTEGER(0..143) OPTIONAL -- Need M
+ }
+}
+
+-- TAG-SL-CONFIGUREDGRANTCONFIGDEDICATEDSL-PRS-RP-STOP
-- TAG-SL-DESTINATIONIDENTITY-START
SL-DestinationIdentity-r16 ::= BIT STRING (SIZE (24))
@@ -17799,22 +22812,69 @@ SL-FreqConfig-r16 ::= SEQUENCE {
SL-Freq-Id-r16 ::= INTEGER (1.. maxNrofFreqSL-r16)
+SL-FreqConfigExt-v1800 ::= SEQUENCE {
+ absenceOfAnyOtherTechnology-r18 ENUMERATED {true} OPTIONAL, -- Need M
+ sl-FreqSelectionConfigList-r18 SEQUENCE (SIZE (1..8)) OF SL-FreqSelectionConfig-r18 OPTIONAL, -- Need M
+ sl-SyncTxDisabled-r18 ENUMERATED {true} OPTIONAL, -- Need M
+ sl-EnergyDetectionConfig-r18 CHOICE {
+ sl-MaxEnergyDetectionThreshold-r18 INTEGER (-85..-52),
+ sl-EnergyDetectionThresholdOffset-r18 INTEGER (-13..20)
+ } OPTIONAL, -- Need M
+ ue-ToUE-COT-SharingED-Threshold-r18 INTEGER (-85..-52) OPTIONAL, -- Need M
+ harq-ACK-FeedbackRatioforCW-AdjustmentGC-Option2-r18 INTEGER (10..100) OPTIONAL, -- Need M
+ ...
+}
+
-- TAG-SL-FREQCONFIG-STOP
-- TAG-SL-FREQCONFIGCOMMON-START
-SL-FreqConfigCommon-r16 ::= SEQUENCE {
- sl-SCS-SpecificCarrierList-r16 SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
- sl-AbsoluteFrequencyPointA-r16 ARFCN-ValueNR,
- sl-AbsoluteFrequencySSB-r16 ARFCN-ValueNR OPTIONAL, -- Need R
- frequencyShift7p5khzSL-r16 ENUMERATED {true} OPTIONAL, -- Cond V2X-SL-Shared
- valueN-r16 INTEGER (-1..1),
- sl-BWP-List-r16 SEQUENCE (SIZE (1..maxNrofSL-BWPs-r16)) OF SL-BWP-ConfigCommon-r16 OPTIONAL, -- Need R
- sl-SyncPriority-r16 ENUMERATED {gnss, gnbEnb} OPTIONAL, -- Need R
- sl-NbAsSync-r16 BOOLEAN OPTIONAL, -- Need R
- sl-SyncConfigList-r16 SL-SyncConfigList-r16 OPTIONAL, -- Need R
- ...
+SL-FreqConfigCommon-r16 ::= SEQUENCE {
+ sl-SCS-SpecificCarrierList-r16 SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
+ sl-AbsoluteFrequencyPointA-r16 ARFCN-ValueNR,
+ sl-AbsoluteFrequencySSB-r16 ARFCN-ValueNR OPTIONAL, -- Need R
+ frequencyShift7p5khzSL-r16 ENUMERATED {true} OPTIONAL, -- Cond V2X-SL-Shared
+ valueN-r16 INTEGER (-1..1),
+ sl-BWP-List-r16 SEQUENCE (SIZE (1..maxNrofSL-BWPs-r16)) OF SL-BWP-ConfigCommon-r16 OPTIONAL, -- Need R
+ sl-SyncPriority-r16 ENUMERATED {gnss, gnbEnb} OPTIONAL, -- Need R
+ sl-NbAsSync-r16 BOOLEAN OPTIONAL, -- Need R
+ sl-SyncConfigList-r16 SL-SyncConfigList-r16 OPTIONAL, -- Need R
+ ...,
+ [[
+ sl-UnlicensedFreqConfigCommon-r18 SEQUENCE {
+ absenceOfAnyOtherTechnology-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ sl-FreqSelectionConfigList-r18 SEQUENCE (SIZE (1..8)) OF SL-FreqSelectionConfig-r18 OPTIONAL, -- Need R
+ sl-SyncTxDisabled-r18 ENUMERATED {true} OPTIONAL, -- Need R
+ sl-EnergyDetectionConfig-r18 CHOICE {
+ sl-MaxEnergyDetectionThreshold-r18 INTEGER (-85..-52),
+ sl-EnergyDetectionThresholdOffset-r18 INTEGER (-13..20)
+ } OPTIONAL, -- Need R
+ ue-ToUE-COT-SharingED-Threshold-r18 INTEGER (-85..-52) OPTIONAL, -- Need R
+ harq-ACK-FeedbackRatioforCW-AdjustmentGC-Option2-r18 INTEGER (10..100) OPTIONAL -- Need R
+ } OPTIONAL, -- Cond SIB12
+ sl-PosBWP-List-r18 SEQUENCE ( SIZE (1..maxNrofSL-BWPs-r16)) OF SL-PosBWP-ConfigCommon-r18 OPTIONAL -- Cond SIB23
+ ]]
}
-- TAG-SL-FREQCONFIGCOMMON-STOP
+-- TAG-SL-FREQSELECTIONCONFIG-START
+
+SL-FreqSelectionConfig-r18 ::= SEQUENCE {
+ sl-priorityList-r18 SEQUENCE (SIZE (1..8)) OF INTEGER (1..8),
+ sl-threshCBR-FreqReselection-r18 SL-CBR-r16,
+ sl-threshCBR-FreqKeeping-r18 SL-CBR-r16
+}
+
+-- TAG-SL-FREQSELECTIONCONFIG-STOP
+-- TAG-SL-INDIRECTPATHADDCHANGE-START
+
+SL-IndirectPathAddChange-r18 ::= SEQUENCE {
+ sl-IndirectPathRelayUE-Identity-r18 SL-SourceIdentity-r17,
+ sl-IndirectPathCellIdentity-r18 CellIdentity,
+ t421-r18 ENUMERATED {ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000} OPTIONAL, -- Need M
+
+ ...
+}
+
+-- TAG-SL-INDIRECTPATHADDCHANGE-STOP
-- TAG-SL-INTERUE-COORDINATIONCONFIG-START
SL-InterUE-CoordinationConfig-r17 ::= SEQUENCE {
@@ -17865,6 +22925,16 @@ SL-ThresholdRSRP-Condition1-B-1-r17 ::= SEQUENCE {
}
-- TAG-SL-INTERUE-COORDINATIONCONFIG-STOP
+-- TAG-SL-LBT-FAILURERECOVERYCONFIG-START
+
+SL-LBT-FailureRecoveryConfig-r18 ::= SEQUENCE {
+ sl-LBT-FailureInstanceMaxCount-r18 ENUMERATED {n4, n8, n16, n32, n64, n128, spare2, spare1} OPTIONAL, -- Need M
+ sl-LBT-FailureDetectionTimer-r18 ENUMERATED {ms10, ms20, ms40, ms80, ms160, ms320, spare2, spare1} OPTIONAL, -- Need M
+ sl-LBT-RecoveryTimer-r18 ENUMERATED {ms10, ms20, ms40, ms80, ms160, ms320, spare2, spare1} OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-SL-LBT-FAILURERECOVERYCONFIG-STOP
-- TAG-SL-LOGICALCHANNELCONFIG-START
SL-LogicalChannelConfig-r16 ::= SEQUENCE {
@@ -17873,17 +22943,21 @@ SL-LogicalChannelConfig-r16 ::= SEQUENCE {
kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity},
sl-BucketSizeDuration-r16 ENUMERATED {ms5, ms10, ms20, ms50, ms100, ms150, ms300, ms500, ms1000,
spare7, spare6, spare5, spare4, spare3,spare2, spare1},
- sl-ConfiguredGrantType1Allowed-r16 ENUMERATED {true} OPTIONAL, -- Need R
- sl-HARQ-FeedbackEnabled-r16 ENUMERATED {enabled, disabled } OPTIONAL, -- Need R
+ sl-ConfiguredGrantType1Allowed-r16 ENUMERATED {true} OPTIONAL, -- Need R
+ sl-HARQ-FeedbackEnabled-r16 ENUMERATED {enabled, disabled } OPTIONAL, -- Need R
sl-AllowedCG-List-r16 SEQUENCE (SIZE (0.. maxNrofCG-SL-1-r16)) OF SL-ConfigIndexCG-r16
- OPTIONAL, -- Need R
- sl-AllowedSCS-List-r16 SEQUENCE (SIZE (1..maxSCSs)) OF SubcarrierSpacing OPTIONAL, -- Need R
+ OPTIONAL, -- Need R
+ sl-AllowedSCS-List-r16 SEQUENCE (SIZE (1..maxSCSs)) OF SubcarrierSpacing OPTIONAL, -- Need R
sl-MaxPUSCH-Duration-r16 ENUMERATED {ms0p02, ms0p04, ms0p0625, ms0p125, ms0p25, ms0p5, spare2, spare1}
- OPTIONAL, -- Need R
- sl-LogicalChannelGroup-r16 INTEGER (0..maxLCG-ID) OPTIONAL, -- Need R
- sl-SchedulingRequestId-r16 SchedulingRequestId OPTIONAL, -- Need R
- sl-LogicalChannelSR-DelayTimerApplied-r16 BOOLEAN OPTIONAL, -- Need R
- ...
+ OPTIONAL, -- Need R
+ sl-LogicalChannelGroup-r16 INTEGER (0..maxLCG-ID) OPTIONAL, -- Need R
+ sl-SchedulingRequestId-r16 SchedulingRequestId OPTIONAL, -- Need R
+ sl-LogicalChannelSR-DelayTimerApplied-r16 BOOLEAN OPTIONAL, -- Need R
+ ...,
+ [[
+ sl-ChannelAccessPriority-r18 INTEGER (1..4) OPTIONAL, -- Need R
+ sl-AllowedCarriers-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF INTEGER (1..maxNrofFreqSL-r16) OPTIONAL -- Cond CONNECTED
+ ]]
}
-- TAG-SL-LOGICALCHANNELCONFIG-STOP
-- TAG-SL-L2RELAYUE-CONFIG-START
@@ -17891,12 +22965,29 @@ SL-LogicalChannelConfig-r16 ::= SEQUENCE {
SL-L2RelayUE-Config-r17 ::= SEQUENCE {
sl-RemoteUE-ToAddModList-r17 SEQUENCE (SIZE (1..maxNrofRemoteUE-r17)) OF SL-RemoteUE-ToAddMod-r17 OPTIONAL, -- Need N
sl-RemoteUE-ToReleaseList-r17 SEQUENCE (SIZE (1..maxNrofRemoteUE-r17)) OF SL-DestinationIdentity-r16 OPTIONAL, -- Need N
- ...
+ ...,
+ [[
+ sl-U2U-RemoteUE-ToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-U2U-RemoteUE-Config-r18 OPTIONAL, -- Need N
+ sl-U2U-RemoteUE-ToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-DestinationIdentity-r16 OPTIONAL -- Need N
+ ]]
}
SL-RemoteUE-ToAddMod-r17 ::= SEQUENCE {
sl-L2IdentityRemote-r17 SL-DestinationIdentity-r16,
- sl-SRAP-ConfigRelay-r17 SL-SRAP-Config-r17 OPTIONAL, -- Need M
+ sl-SRAP-ConfigRelay-r17 SL-SRAP-Config-r17 OPTIONAL, -- Need M
+ ...
+}
+
+SL-U2U-RemoteUE-Config-r18 ::= SEQUENCE {
+ sl-L2IdentityRemoteUE-r18 SL-DestinationIdentity-r16,
+ sl-SourceRemoteUE-ToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-SourceRemoteUE-Config-r18 OPTIONAL, -- Need N
+ sl-SourceRemoteUE-ToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-SourceIdentity-r17 OPTIONAL, -- Need N
+ ...
+}
+
+SL-SourceRemoteUE-Config-r18 ::= SEQUENCE {
+ sl-SourceUE-Identity-r18 SL-SourceIdentity-r17,
+ sl-SRAP-ConfigU2U-r18 SL-SRAP-ConfigU2U-r18,
...
}
@@ -17906,8 +22997,26 @@ SL-RemoteUE-ToAddMod-r17 ::= SEQUENCE {
SL-L2RemoteUE-Config-r17 ::= SEQUENCE {
sl-SRAP-ConfigRemote-r17 SL-SRAP-Config-r17 OPTIONAL, --Need M
sl-UEIdentityRemote-r17 RNTI-Value OPTIONAL, -- Cond FirstRRCReconfig
+ ...,
+ [[
+ sl-U2U-RelayUE-ToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-U2U-RelayUE-Config-r18 OPTIONAL, -- Need N
+ sl-U2U-RelayUE-ToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-DestinationIdentity-r16 OPTIONAL -- Need N
+ ]]
+}
+
+SL-U2U-RelayUE-Config-r18 ::= SEQUENCE {
+ sl-L2IdentityRelay-r18 SL-DestinationIdentity-r16,
+ sl-TargetRemoteUE-ToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-TargetRemoteUE-Config-r18 OPTIONAL, -- Need N
+ sl-TargetRemoteUE-ToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-DestinationIdentity-r16 OPTIONAL, -- Need N
+ ...
+}
+
+SL-TargetRemoteUE-Config-r18 ::= SEQUENCE {
+ sl-TargetUE-Identity-r18 SL-DestinationIdentity-r16,
+ sl-SRAP-ConfigU2U-r18 SL-SRAP-ConfigU2U-r18,
...
}
+
-- TAG-SL-L2REMOTEUE-CONFIG-STOP
-- TAG-SL-MEASCONFIGCOMMON-START
@@ -18015,6 +23124,100 @@ SL-PDCP-Config-r16 ::= SEQUENCE {
}
-- TAG-SL-PDCP-CONFIG-STOP
+-- TAG-SL-POSBWP-CONFIGCOMMON
+
+SL-PosBWP-ConfigCommon-r18 ::= SEQUENCE {
+ sl-BWP-Generic-r18 SL-BWP-Generic-r16 OPTIONAL, -- Need R
+ sl-BWP-PRS-PoolConfigCommon-r18 SL-BWP-PRS-PoolConfigCommon-r18 OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG- SL-POSBWP-CONFIGCOMMON
+-- TAG-SL-PRS-RESOURCEPOOL-START
+
+SL-PRS-ResourcePool-r18 ::= SEQUENCE {
+ sl-PRS-PSCCH-Config-r18 CHOICE {release NULL, setup SL-PSCCH-ConfigDedicatedSL-PRS-RP-r18} OPTIONAL, -- Need M
+ sl-StartRB-SubchannelDedicatedSL-PRS-RP-r18 INTEGER (0..265) OPTIONAL, -- Need M
+ sl-FilterCoefficient-r18 FilterCoefficient OPTIONAL, -- Need M
+ sl-ThreshS-RSSI-PRS-CBR-r18 INTEGER (0..45) OPTIONAL, -- Need M
+ sl-RB-Number-r18 INTEGER (10..275) OPTIONAL, -- Need M
+ sl-TimeResource-r18 BIT STRING (SIZE (10..160)) OPTIONAL, -- Need M
+ sl-PosAllowedResourceSelectionConfig-r18 ENUMERATED {c1, c2, c3} OPTIONAL, -- Need M
+ sl-PRS-ResourceReservePeriodList-r18 SEQUENCE (SIZE (1..16)) OF SL-ReservationPeriodAllowedDedicatedSL-PRS-RP-r18
+ OPTIONAL,
+ sl-PRS-ResourcesDedicatedSL-PRS-RP-r18 SEQUENCE (SIZE (1..12)) OF SL-PRS-ResourceDedicatedSL-PRS-RP-r18 OPTIONAL, -- Need M
+ sl-PRS-PowerControl-r18 SL-PRS-PowerControl-r18 OPTIONAL, -- Need M
+ sl-SensingWindowDedicatedSL-PRS-RP-r18 ENUMERATED {ms100, ms1100} OPTIONAL, -- Need M
+ sl-TxPercentageDedicatedSL-PRS-RP-List-r18 SEQUENCE (SIZE (8)) OF SL-TxPercentageDedicatedSL-PRS-RP-Config-r18 OPTIONAL, -- Need M
+ sl-SCI-basedSL-PRS-TxTriggerSCI1-B-r18 BOOLEAN OPTIONAL, -- Need M
+ sl-NumSubchannelDedicatedSL-PRS-RP-r18 INTEGER (1..27) OPTIONAL, -- Need M
+ sl-SubchannelSizeDedicatedSL-PRS-RP-r18 ENUMERATED {n10, n12, n15, n20, n25, n50, n75, n100} OPTIONAL, -- Need M
+ sl-MaxNumPerReserveDedicatedSL-PRS-RP-r18 ENUMERATED {n2, n3} OPTIONAL, -- Need M
+ sl-NumReservedBitsSCI1B-DedicatedSL-PRS-RP-r18 INTEGER (0..20) OPTIONAL, -- Need R
+ sl-SRC-ID-LenDedicatedSL-PRS-RP-r18 ENUMERATED {n12, n24} OPTIONAL, -- Need M
+ sl-CBR-PriorityTxConfigDedicatedSL-PRS-RP-List-r18 SEQUENCE (SIZE (1..8)) OF SL-PriorityTxConfigIndexDedicatedSL-PRS-RP-r18
+ OPTIONAL, -- Need M
+ sl-TimeWindowSizeCBR-DedicatedSL-PRS-RP-r18 ENUMERATED {ms100, slot100} OPTIONAL, -- Need M
+ sl-TimeWindowSizeCR-DedicatedSL-PRS-RP-r18 ENUMERATED {ms1000, slot1000} OPTIONAL, -- Need M
+ sl-CBR-CommonTxDedicatedSL-PRS-RP-List-r18 SL-CBR-CommonTxDedicatedSL-PRS-RP-List-r18 OPTIONAL, -- Need M
+ sl-PriorityThreshold-UL-URLLC-r18 INTEGER (1..9) OPTIONAL, -- Need M
+ sl-PriorityThreshold-r18 INTEGER (1..9) OPTIONAL, -- Need M
+ sl-SelectionWindowListDedicatedSL-PRS-RP-r18 SEQUENCE (SIZE (8)) OF SL-SelectionWindowConfigDedicated-SL-PRS-RP-r18
+ OPTIONAL, -- Need M
+ sl-Thres-RSRP-ListDedicatedSL-PRS-RP-r18 SEQUENCE (SIZE (64)) OF SL-PRS-ThresRSRP-r18 OPTIONAL, -- Need M
+ sl-PreemptionEnableDedicatedSL-PRS-RP-r18 ENUMERATED {enabled, pl1, pl2, pl3, pl4, pl5, pl6, pl7, pl8} OPTIONAL -- Need R
+}
+
+SL-PSCCH-ConfigDedicatedSL-PRS-RP-r18 ::= SEQUENCE {
+ timeResourcePSCCH-DedicatedSL-PRS-RP-r18 ENUMERATED {n2, n3} OPTIONAL, -- Need M
+ freqResourcePSCCH-DedicatedSL-PRS-RP-r18 ENUMERATED {n10,n12, n15, n20, n25} OPTIONAL, -- Need M
+ ...
+}
+
+SL-ReservationPeriodAllowedDedicatedSL-PRS-RP-r18 ::= CHOICE {
+ sl-ResourceReservePeriod1-r18 ENUMERATED {ms0, ms100, ms160, ms200, ms300, ms320, ms400, ms500, ms600, ms640,
+ ms700, ms800, ms900, ms1000, ms1280, ms2560, ms5120, ms10240},
+ sl-ResourceReservePeriod2-r18 INTEGER (1..99)
+}
+
+SL-PRS-ResourceDedicatedSL-PRS-RP-r18::= SEQUENCE {
+ sl-PRS-ResourceID-r18 INTEGER (0..11) OPTIONAL, -- Need M
+ sl-NumberOfSymbols-r18 INTEGER (1..9) OPTIONAL, -- Need M
+ sl-CombSize-r18 ENUMERATED{n2,n4,n6} OPTIONAL, -- Need R
+ sl-PRS-starting-symbol-r18 INTEGER (4..12) OPTIONAL, -- Need M
+ sl-PRS-comb-offset-r18 INTEGER(1..5) OPTIONAL -- Need M
+}
+
+SL-PRS-PowerControl-r18::= SEQUENCE {
+ dl-P0-SL-PRS-r18 INTEGER(-202..24) OPTIONAL, -- Need M
+ dl-Alpha-SL-PRS-r18 ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1} OPTIONAL, -- Need M
+ sl-P0-SL-PRS-r18 INTEGER(-202..24) OPTIONAL, -- Need M
+ sl-Alpha-SL-PRS-r18 ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1} OPTIONAL -- Need S
+}
+
+SL-TxPercentageDedicatedSL-PRS-RP-Config-r18::= SEQUENCE {
+ sl-TxPercentageDedicatedSL-PRS-RP-r18 INTEGER (1..8) OPTIONAL, -- Need M
+ sl-Priority-DedicatedSL-PRS-RP ENUMERATED {p20, p35, p50} OPTIONAL -- Need M
+}
+
+SL-PriorityTxConfigIndexDedicatedSL-PRS-RP-r18 ::= SEQUENCE {
+ sl-PriorityThresholdDedicatedSL-PRS-RP-r18 INTEGER (1..8) OPTIONAL, -- Need M
+ sl-DefaultTxConfigIndexDedicatedSL-PRS-RP-r18 INTEGER (0..maxCBR-LevelDedSL-PRS-1-r18) OPTIONAL, -- Need M
+ sl-CBR-ConfigIndexDedicatedSL-PRS-RP-r18 INTEGER (0..maxCBR-ConfigDedSL-PRS-1-r18) OPTIONAL, -- Need M
+ sl-PRS-TxConfigIndexList-r18 SEQUENCE (SIZE (1.. maxCBR-LevelDedSL-PRS-1-r18)) OF SL-PRS-TxConfigIndex-r18
+ OPTIONAL -- Need M
+}
+
+SL-PRS-TxConfigIndex-r18 ::= INTEGER (0.. maxNrofSL-PRS-TxConfig-r18)
+
+SL-SelectionWindowConfigDedicated-SL-PRS-RP-r18::= SEQUENCE {
+ sl-PRS-Priority-r18 INTEGER (1..8),
+ sl-PRS-SelectionWindow-r18 ENUMERATED {n1, n5, n10, n20}
+}
+
+SL-PRS-ThresRSRP-r18 ::= INTEGER (0..66)
+
+-- TAG-SL-PRS-RESOURCEPOOL-STOP
-- TAG-SL-PSBCH-CONFIG-START
SL-PSBCH-Config-r16 ::= SEQUENCE {
@@ -18105,6 +23308,20 @@ SL-RadioBearerConfig-r16 ::= SEQUENCE {
}
-- TAG-SL-RADIOBEARERCONFIG-STOP
+-- TAG-SL-RBSETCONFIG-START
+
+SL-RBSetConfig-r18 ::= SEQUENCE {
+ sl-RBSetIndex-r18 INTEGER (0..4),
+ sl-NumOfSSSBRepetition-r18 INTEGER (2..9) OPTIONAL, -- Need R
+ sl-GapBetweenSSSBRepetition-r18 INTEGER (1..84) OPTIONAL -- Need R
+}
+
+-- TAG-SL-RBSETCONFIG-STOP
+-- TAG-SL-RELAYINDICATIONMP-START
+
+SL-RelayIndicationMP-r18 ::= ENUMERATED {support}
+
+-- TAG-SL-RELAYINDICATIONMP-STOP
-- TAG-SL-RELAYUE-CONFIG-START
SL-RelayUE-Config-r17::= SEQUENCE {
@@ -18115,6 +23332,15 @@ SL-RelayUE-Config-r17::= SEQUENCE {
}
-- TAG-SL-RELAYUE-CONFIG-STOP
+-- TAG-SL-RELAYUE-CONFIGU2U-START
+
+SL-RelayUE-ConfigU2U-r18::= SEQUENCE {
+ sl-RSRP-Thresh-DiscConfig-r18 SL-RSRP-Range-r16 OPTIONAL, -- Need R
+ sd-RSRP-ThreshDiscConfig-r18 SL-RSRP-Range-r16 OPTIONAL, -- Need R
+ sd-hystMaxRelay-r18 Hysteresis OPTIONAL -- Cond SD-RSRP-ThreshRelay
+}
+
+-- TAG-SL-RELAYUE-CONFIGU2U-STOP
-- TAG-SL-REMOTEUE-CONFIG-START
SL-RemoteUE-Config-r17::= SEQUENCE {
@@ -18130,6 +23356,17 @@ SL-ReselectionConfig-r17::= SEQUENCE {
}
-- TAG-SL-REMOTEUE-CONFIG-STOP
+-- TAG-SL-REMOTEUE-CONFIGU2U-START
+
+SL-RemoteUE-ConfigU2U-r18::= SEQUENCE {
+ sl-RSRP-ThreshU2U-r18 SL-RSRP-Range-r16 OPTIONAL, -- Need R
+ sl-HystMinU2U-r18 Hysteresis OPTIONAL, -- Cond SL-RSRP-ThreshU2U
+ sd-RSRP-ThreshU2U-r18 SL-RSRP-Range-r16 OPTIONAL, -- Need R
+ sd-FilterCoefficientU2U-r18 FilterCoefficient OPTIONAL, -- Need R
+ sd-HystMinU2U-r18 Hysteresis OPTIONAL -- Cond SD-RSRP-ThreshU2U
+}
+
+-- TAG-SL-REMOTEUE-CONFIGU2U-STOP
-- TAG-SL-REPORTCONFIGLIST-START
SL-ReportConfigList-r16 ::= SEQUENCE (SIZE (1..maxNrofSL-ReportConfigId-r16)) OF SL-ReportConfigInfo-r16
@@ -18194,7 +23431,7 @@ SL-MeasTriggerQuantity-r16 ::= CHOICE {
...
}
-SL-RS-Type-r16 ::= ENUMERATED {dmrs, spare3, spare2, spare1}
+SL-RS-Type-r16 ::= ENUMERATED {dmrs, sl-prs, spare2, spare1}
-- TAG-SL-REPORTCONFIGLIST-STOP
-- TAG-SL-RESOURCEPOOL-START
@@ -18235,9 +23472,42 @@ SL-ResourcePool-r16 ::= SEQUENCE {
[[
sl-PBPS-CPS-Config-r17 CHOICE {release NULL, setup SL-PBPS-CPS-Config-r17 } OPTIONAL, -- Need M
sl-InterUE-CoordinationConfig-r17 CHOICE {release NULL, setup SL-InterUE-CoordinationConfig-r17 } OPTIONAL -- Need M
+ ]],
+ [[
+ sl-CPE-StartingPositionsPSCCH-PSSCH-InitiateCOT-List-r18
+ CHOICE {release NULL, setup SL-CPE-StartingPositionsPSCCH-PSSCH-List-r18 } OPTIONAL, -- Need M
+ sl-CPE-StartingPositionsPSCCH-PSSCH-InitiateCOT-Default-r18 INTEGER (1..9) OPTIONAL, -- Need M
+ sl-CPE-StartingPositionsPSCCH-PSSCH-WithinCOT-List-r18
+ CHOICE {release NULL, setup SL-CPE-StartingPositionsPSCCH-PSSCH-List-r18 } OPTIONAL, -- Need M
+ sl-CPE-StartingPositionsPSCCH-PSSCH-WithinCOT-Default-r18 INTEGER (1..9) OPTIONAL, -- Need M
+ sl-Type1-LBT-BlockingOption1-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ sl-Type1-LBT-BlockingOption2-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
+ sl-NumInterlacePerSubchannel-r18 ENUMERATED {sc1, sc2} OPTIONAL, -- Need M
+ sl-NumReferencePRBs-OfInterlace-r18 ENUMERATED {prb10, prb11} OPTIONAL, -- Need M
+ sl-TransmissionStructureForPSFCH-r18 ENUMERATED {commonInterlace, dedicatedInterlace} OPTIONAL, -- Need M
+ sl-NumDedicatedPRBs-ForPSFCH-r18 ENUMERATED {prb1, prb2, prb5} OPTIONAL, -- Need M
+ sl-NumPSFCH-Occasions-r18 ENUMERATED {o1, o2, o3, o4} OPTIONAL, -- Need M
+ sl-PSFCH-CommonInterlaceIndex-r18 INTEGER (0..9) OPTIONAL, -- Need M
+ sl-CPE-StartingPositionPSFCH-r18 INTEGER (1..9) OPTIONAL, -- Need M
+ sl-NumRefSymbolLength-r18 ENUMERATED {sym7, sym8, sym9, sym10, sym11, sym12, sym13, sym14} OPTIONAL, -- Need M
+ sl-PSFCH-RB-SetList-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (10..275)) OPTIONAL, -- Need M
+ sl-IUC-RB-SetList-r18 SEQUENCE (SIZE (1..4)) OF BIT STRING (SIZE (10..275)) OPTIONAL, -- Need M
+ sl-PSFCH-PowerOffset-r18 INTEGER (0..10) OPTIONAL, -- Need M
+ sl-RBSetIndexOfResourcePool-r18 SEQUENCE (SIZE (1..5)) OF INTEGER (0..4) OPTIONAL, -- Need M
+ sl-A2X-Service-r18 ENUMERATED {brid, daa, bridAndDAA, spare1} OPTIONAL, -- Cond A2X
+ sl-PRS-ResourcesSharedSL-PRS-RP-r18 SEQUENCE (SIZE (1..17)) OF SL-PRS-ResourceSharedSL-PRS-RP-r18 OPTIONAL, -- Need M
+ numSym-SL-PRS-2ndStageSCI-r18 INTEGER (1..4) OPTIONAL, -- Need M
+ sl-SCI-based-SL-PRS-Tx-Trigger-SCI2-D-r18 BOOLEAN OPTIONAL -- Need M
]]
}
+SL-CPE-StartingPositionsPSCCH-PSSCH-List-r18 ::= SEQUENCE (SIZE (8)) OF SL-CPE-StartingPositionsPSCCH-PSSCH-r18
+
+SL-CPE-StartingPositionsPSCCH-PSSCH-r18 ::= SEQUENCE {
+ sl-Priority-r18 INTEGER (1..8),
+ sl-CPE-StartingPositions-r18 SEQUENCE (SIZE (1..9)) OF INTEGER (1..9)
+}
+
SL-ZoneConfigMCR-r16 ::= SEQUENCE {
sl-ZoneConfigMCR-Index-r16 INTEGER (0..15),
sl-TransRange-r16 ENUMERATED {m20, m50, m80, m100, m120, m150, m180, m200, m220, m250, m270, m300, m350,
@@ -18297,6 +23567,10 @@ SL-UE-SelectedConfigRP-r16 ::= SEQUENCE {
...,
[[
sl-CBR-PriorityTxConfigList-v1650 SL-CBR-PriorityTxConfigList-v1650 OPTIONAL -- Need M
+ ]],
+ [[
+ sl-NRPSSCH-EUTRA-ThresRSRP-List-r18 SL-Thres-RSRP-List-r16 OPTIONAL, -- Need S
+ sl-NRPSFCH-EUTRA-ThresRSRP-List-r18 SL-Thres-RSRP-List-r16 OPTIONAL -- Need S
]]
}
@@ -18345,6 +23619,17 @@ SL-PowerControl-r16 ::= SEQUENCE {
]]
}
+SL-PRS-ResourceSharedSL-PRS-RP-r18::= SEQUENCE {
+ sl-PRS-ResourceID-r18 INTEGER (0..16),
+ mNumberOfSymbols-r18 INTEGER (1..9),
+ sl-PRS-CombSizeN-AndReOffset-r18 CHOICE {
+ n2-r18 INTEGER (0..1),
+ n4-r18 INTEGER (0..3),
+ n6-r18 INTEGER (0..5),
+ ...
+ } OPTIONAL -- Need M
+}
+
-- TAG-SL-RESOURCEPOOL-STOP
-- TAG-SL-RLC-BEARERCONFIG-START
@@ -18353,7 +23638,10 @@ SL-RLC-BearerConfig-r16 ::= SEQUENCE {
sl-ServedRadioBearer-r16 SLRB-Uu-ConfigIndex-r16 OPTIONAL, -- Cond LCH-SetupOnly
sl-RLC-Config-r16 SL-RLC-Config-r16 OPTIONAL, -- Cond LCH-Setup
sl-MAC-LogicalChannelConfig-r16 SL-LogicalChannelConfig-r16 OPTIONAL, -- Cond LCH-Setup
- ...
+ ...,
+ [[
+ sl-RLC-BearerConfigIndex-v1800 SL-RLC-BearerConfigIndex-v1800 OPTIONAL -- Need R
+ ]]
}
-- TAG-SL-RLC-BEARERCONFIG-STOP
@@ -18361,6 +23649,8 @@ SL-RLC-BearerConfig-r16 ::= SEQUENCE {
SL-RLC-BearerConfigIndex-r16 ::= INTEGER (1..maxSL-LCID-r16)
+SL-RLC-BearerConfigIndex-v1800 ::= INTEGER (maxSL-LCID-Plus1-r18..maxSL-LCID-r18)
+
-- TAG-RLC-BEARERCONFIGINDEX-STOP
-- TAG-SL-RLC-RLC-CHANNEL-CONFIG-START
@@ -18407,6 +23697,11 @@ SL-ScheduledConfig-r16 ::= SEQUENCE {
...,
[[
sl-DCI-ToSL-Trans-r16 SEQUENCE (SIZE (1..8)) OF INTEGER (1..32) OPTIONAL -- Need M
+ ]],
+ [[
+ sl-ConfiguredGrantConfigDedicated-SL-PRS-RP-List-r18 SL-ConfiguredGrantConfigDedicated-SL-PRS-RP-List-r18 OPTIONAL, -- Need M
+ sl-PRS-RNTI-r18 RNTI-Value OPTIONAL, -- Need M
+ sl-PRS-CS-RNTI-r18 RNTI-Value OPTIONAL -- Need M
]]
}
@@ -18422,6 +23717,13 @@ SL-ConfiguredGrantConfigList-r16 ::= SEQUENCE {
sl-ConfiguredGrantConfigToAddModList-r16 SEQUENCE (SIZE (1..maxNrofCG-SL-r16)) OF SL-ConfiguredGrantConfig-r16 OPTIONAL -- Need N
}
+SL-ConfiguredGrantConfigDedicated-SL-PRS-RP-List-r18 ::= SEQUENCE {
+ sl-ConfiguredGrantConfigDedicated-SL-PRS-RPToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofCG-SL-r16)) OF SL-ConfigIndexCG-r16
+ OPTIONAL, -- Need N
+ sl-ConfiguredGrantConfigDedicated-SL-PRS-RPToAddModList-r18
+ SEQUENCE (SIZE (1..maxNrofCG-SL-r16)) OF SL-ConfiguredGrantConfigDedicatedSL-PRS-RP-r18 OPTIONAL -- Need N
+}
+
-- TAG-SL-SCHEDULEDCONFIG-STOP
-- TAG-SL-SDAP-CONFIG-START
@@ -18478,6 +23780,20 @@ SL-RemoteUE-RB-Identity-r17 ::= CHOICE {
}
-- TAG-SL-SRAP-CONFIG-STOP
+-- TAG-SL-SRAP-CONFIGU2U-START
+
+SL-SRAP-ConfigU2U-r18 ::= SEQUENCE {
+ sl-MappingToAddMod-U2U-List-r18 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-MappingConfig-U2U-r18 OPTIONAL, -- Need N
+ sl-MappingToRelease-U2U-List-r18 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SLRB-Uu-ConfigIndex-r16 OPTIONAL -- Need N
+}
+
+SL-MappingConfig-U2U-r18 ::= SEQUENCE {
+ sl-RemoteUE-SLRB-Identity-r18 SLRB-Uu-ConfigIndex-r16,
+ sl-EgressRLC-ChannelPC5-r18 SL-RLC-ChannelID-r17,
+ ...
+}
+
+-- TAG-SL-SRAP-CONFIGU2U-STOP
-- TAG-SL-SYNCCONFIG-START
SL-SyncConfigList-r16 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r16)) OF SL-SyncConfig-r16
@@ -18485,7 +23801,7 @@ SL-SyncConfigList-r16 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r16)) OF
SL-SyncConfig-r16 ::= SEQUENCE {
sl-SyncRefMinHyst-r16 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Need R
sl-SyncRefDiffHyst-r16 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Need R
- sl-filterCoefficient-r16 FilterCoefficient OPTIONAL, -- Need R
+ sl-FilterCoefficient-r16 FilterCoefficient OPTIONAL, -- Need R
sl-SSB-TimeAllocation1-r16 SL-SSB-TimeAllocation-r16 OPTIONAL, -- Need R
sl-SSB-TimeAllocation2-r16 SL-SSB-TimeAllocation-r16 OPTIONAL, -- Need R
sl-SSB-TimeAllocation3-r16 SL-SSB-TimeAllocation-r16 OPTIONAL, -- Need R
@@ -18531,13 +23847,16 @@ SL-TypeTxSync-r16 ::= ENUMERATED {gnss, gnbEnb, ue}
-- TAG-SL-UE-SELECTEDCONFIG-START
SL-UE-SelectedConfig-r16 ::= SEQUENCE {
- sl-PSSCH-TxConfigList-r16 SL-PSSCH-TxConfigList-r16 OPTIONAL, -- Need R
+ sl-PSSCH-TxConfigList-r16 SL-PSSCH-TxConfigList-r16 OPTIONAL, -- Cond SIB12
sl-ProbResourceKeep-r16 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8} OPTIONAL, -- Need R
sl-ReselectAfter-r16 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9} OPTIONAL, -- Need R
sl-CBR-CommonTxConfigList-r16 SL-CBR-CommonTxConfigList-r16 OPTIONAL, -- Need R
ul-PrioritizationThres-r16 INTEGER (1..16) OPTIONAL, -- Need R
sl-PrioritizationThres-r16 INTEGER (1..8) OPTIONAL, -- Need R
- ...
+ ...,
+ [[
+ sl-CBR-CommonTxDedicatedSL-PRS-RP-List-r18 SL-CBR-CommonTxDedicatedSL-PRS-RP-List-r18 OPTIONAL -- Cond notSIB12
+ ]]
}
-- TAG-SL-UE-SELECTEDCONFIG-STOP
@@ -18631,6 +23950,31 @@ MBS-NeighbourCell-r17 ::= SEQUENCE {
}
-- TAG-MBS-NEIGHBOURCELLLIST-STOP
+-- TAG-MBS-NONSERVINGINFOLIST-START
+
+MBS-NonServingInfoList-r18 ::= SEQUENCE (SIZE (1..maxFreqMBS-r17)) OF NonServingInfo-r18
+
+NonServingInfo-r18 ::= SEQUENCE {
+ freqInfoMBS-r18 FreqInfoMBS-r18 OPTIONAL,
+ cfr-InfoMBS-r18 CHOICE {
+ cfr-Bandwidth-r18 INTEGER (1..maxNrofPhysicalResourceBlocks),
+ cfr-LocationAndBW-r18 CFR-LocationAndBW-r18
+ } OPTIONAL,
+ subcarrierSpacing-r18 SubcarrierSpacing OPTIONAL
+}
+
+FreqInfoMBS-r18 ::= SEQUENCE {
+ carrierFreqMBS-r18 ARFCN-ValueNR,
+ freqBandIndicatorMBS-r18 FreqBandIndicatorNR
+}
+
+CFR-LocationAndBW-r18 ::= SEQUENCE {
+ locationAndBandwidthMBS-r18 INTEGER (0..37949) OPTIONAL,
+ absoluteFrequencyPointA-MBS-r18 ARFCN-ValueNR OPTIONAL,
+ offsetToCarrierMBS-r18 INTEGER (0..2199) OPTIONAL
+}
+
+-- TAG-MBS-NONSERVINGINFOLIST-STOP
-- TAG-MBS-SERVICELIST-START
MBS-ServiceList-r17 ::= SEQUENCE (SIZE (1..maxNrofMBS-ServiceListPerUE-r17)) OF MBS-ServiceInfo-r17
@@ -18691,6 +24035,63 @@ MRB-RLC-ConfigBroadcast-r17 ::= SEQUENCE {
}
-- TAG-MBS-SESSIONINFOLIST-STOP
+-- TAG-MBS-SESSIONINFOLISTMULTICAST-START
+
+MBS-SessionInfoListMulticast-r18 ::= SEQUENCE (SIZE (1..maxNrofMBS-Session-r17)) OF MBS-SessionInfoMulticast-r18
+
+-- WS modification: define a dedicated type
+MTCH-NeighbourCell-r18 ::= BIT STRING (SIZE(maxNeighCellMBS-r17))
+
+MBS-SessionInfoMulticast-r18 ::= SEQUENCE {
+ mbs-SessionId-r18 TMGI-r17,
+ g-RNTI-r18 RNTI-Value OPTIONAL, -- Need R
+ mrb-ListMulticast-r18 MRB-ListMulticast-r18 OPTIONAL, -- Need R
+ mtch-SchedulingInfo-r18 DRX-ConfigPTM-Index-r17 OPTIONAL, -- Need S
+-- WS modification: define a dedicated type
+-- mtch-NeighbourCell-r18 BIT STRING (SIZE(maxNeighCellMBS-r17)) OPTIONAL, Need S
+ mtch-NeighbourCell-r18 MTCH-NeighbourCell-r18 OPTIONAL, -- Need S
+ pdsch-ConfigIndex-r18 PDSCH-ConfigIndex-r17 OPTIONAL, -- Need S
+ mtch-SSB-MappingWindowIndex-r18 MTCH-SSB-MappingWindowIndex-r17 OPTIONAL, -- Cond MTCH-Mapping
+ thresholdIndex-r18 INTEGER (0..maxNrofThresholdMBS-1-r18) OPTIONAL, -- Need R
+ pdcp-SyncIndicator-r18 ENUMERATED {true} OPTIONAL, -- Cond RRCRelease
+ stopMonitoringRNTI-r18 ENUMERATED {true} OPTIONAL, -- Cond G-RNTI
+ ...
+}
+
+MRB-ListMulticast-r18 ::= SEQUENCE (SIZE (1.. maxMRB-r17)) OF MRB-InfoMulticast-r18
+
+MRB-InfoMulticast-r18 ::= SEQUENCE {
+ pdcp-Config-r18 MRB-PDCP-ConfigMulticast-r18,
+ rlc-Config-r18 MRB-RLC-ConfigMulticast-r18,
+ ...
+}
+
+MRB-PDCP-ConfigMulticast-r18 ::= SEQUENCE {
+ pdcp-SN-SizeDL-r18 ENUMERATED {len12bits, len18bits},
+ headerCompression-r18 CHOICE {
+ notUsed NULL,
+ rohc SEQUENCE {
+ maxCID-r18 INTEGER (1..16) DEFAULT 15,
+ profiles-r18 SEQUENCE {
+ profile0x0000-r18 BOOLEAN,
+ profile0x0001-r18 BOOLEAN,
+ profile0x0002-r18 BOOLEAN
+ }
+ }
+ },
+ t-Reordering-r17 ENUMERATED {ms1, ms10, ms40, ms160, ms500, ms1000, ms1250, ms2750} OPTIONAL -- Need R
+}
+
+MRB-RLC-ConfigMulticast-r18 ::= SEQUENCE {
+ logicalChannelIdentity-r18 CHOICE {
+ logicalChannelIdentitymulticast-r18 LogicalChannelIdentity,
+ logicalChannelIdentityExt-r18 LogicalChannelIdentityExt-r17
+ },
+ sn-FieldLength-r18 ENUMERATED {size6, size12},
+ t-Reassembly-r18 T-Reassembly OPTIONAL -- Need R
+}
+
+-- TAG-MBS-SESSIONINFOLISTMULTICAST-STOP
-- TAG-MTCH-SSB-MAPPINGWINDOWLIST-START
MTCH-SSB-MappingWindowList-r17 ::= SEQUENCE (SIZE (1..maxNrofMTCH-SSB-MappingWindow-r17)) OF MTCH-SSB-MappingWindowCycleOffset-r17
@@ -18740,7 +24141,9 @@ maxAdditionalRACH-r17 INTEGER ::= 256 -- Maximum number of
maxAI-DCI-PayloadSize-r16 INTEGER ::= 128 --Maximum size of the DCI payload scrambled with ai-RNTI
maxAI-DCI-PayloadSize-1-r16 INTEGER ::= 127 --Maximum size of the DCI payload scrambled with ai-RNTI minus 1
maxBandComb INTEGER ::= 65536 -- Maximum number of DL band combinations
+maxBandComb-MUSIM-r18 INTEGER ::= 64 -- Maximum number of MUSIM bands and/or band combinations
maxBandsUTRA-FDD-r16 INTEGER ::= 64 -- Maximum number of bands listed in UTRA-FDD UE caps
+maxCandidateBandIndex-r18 INTEGER ::= 8 -- Maximum number of band entry index for MUSIM capability
maxBH-RLC-ChannelID-r16 INTEGER ::= 65536 -- Maximum value of BH RLC Channel ID
maxBT-IdReport-r16 INTEGER ::= 32 -- Maximum number of Bluetooth IDs to report
maxBT-Name-r16 INTEGER ::= 4 -- Maximum number of Bluetooth name
@@ -18755,6 +24158,8 @@ maxCBR-Config-1-r16 INTEGER ::= 7 -- Maximum number of
-- congestion control minus 1
maxCBR-Level-r16 INTEGER ::= 16 -- Maximum number of CBR levels
maxCBR-Level-1-r16 INTEGER ::= 15 -- Maximum number of CBR levels minus 1
+maxCellATG-r18 INTEGER ::= 8 -- Maximum number of ATG neighbour cells for which assistance information is
+ -- provided
maxCellExcluded INTEGER ::= 16 -- Maximum number of NR exclude-listed cell ranges in SIB3, SIB4
maxCellGroupings-r16 INTEGER ::= 32 -- Maximum number of cell groupings for NR-DC
maxCellHistory-r16 INTEGER ::= 16 -- Maximum number of visited PCells reported
@@ -18784,13 +24189,27 @@ maxNrofServingCells INTEGER ::= 32 -- Max number of ser
maxNrofServingCells-1 INTEGER ::= 31 -- Max number of serving cells (SpCells + SCells) minus 1
maxNrofAggregatedCellsPerCellGroup INTEGER ::= 16
maxNrofAggregatedCellsPerCellGroupMinus4-r16 INTEGER ::= 12
+maxNrofAperiodicFwdTimeResource-r18 INTEGER ::= 112 -- Max number of aperiodic fowarding time resources for NCR
+maxNrofAperiodicFwdTimeResource-1-r18 INTEGER ::= 111 -- Max number of aperiodic fowarding time resources for NCR minus 1
maxNrofDUCells-r16 INTEGER ::= 512 -- Max number of cells configured on the collocated IAB-DU
maxNrofAppLayerMeas-r17 INTEGER ::= 16 -- Max number of simultaneous application layer measurements
maxNrofAppLayerMeas-1-r17 INTEGER ::= 15 -- Max number of simultaneous application layer measurements minus 1
+
+maxNrofAppLayerReports-r18 INTEGER ::= 16 -- Max number of application layer measurement reports with the same
+ -- measConfigAppLayerId included in the same
+ -- MeasurementReportAppLayerMessage
maxNrofAvailabilityCombinationsPerSet-r16 INTEGER ::= 512 -- Max number of AvailabilityCombinationId used in the DCI format 2_5
maxNrofAvailabilityCombinationsPerSet-1-r16 INTEGER ::= 511 -- Max number of AvailabilityCombinationId used in the DCI format 2_5 minus 1
maxNrofIABResourceConfig-r17 INTEGER ::= 65536 -- Max number of IAB-ResourceConfigID used in MAC CE
maxNrofIABResourceConfig-1-r17 INTEGER ::= 65535 -- Max number of IAB-ResourceConfigID used in MAC CE minus 1
+maxNrofPeriodicFwdResourceSet-r18 INTEGER ::= 32 -- Max number of periodic fowarding resource sets for NCR
+maxNrofPeriodicFwdResourceSet-1-r18 INTEGER ::= 31 -- Max number of periodic fowarding resource sets for NCR minus 1
+maxNrofPeriodicFwdResource-r18 INTEGER ::= 1024 -- Max number of periodic fowarding resources for NCR
+maxNrofPeriodicFwdResource-1-r18 INTEGER ::= 1023 -- Max number of periodic fowarding resources for NCR minus 1
+maxNrofSemiPersistentFwdResourceSet-r18 INTEGER ::= 32 -- Max number of semi-persistent fowarding resource sets for NCR
+maxNrofSemiPersistentFwdResourceSet-1-r18 INTEGER ::= 31 -- Max number of semi-persistent fowarding resource sets for NCR minus 1
+maxNrofSemiPersistentFwdResource-r18 INTEGER ::= 128 -- Max number of semi-persistent fowarding resources for NCR
+maxNrofSemiPersistentFwdResource-1-r18 INTEGER ::= 127 -- Max number of semi-persistent fowarding resources for NCR minus 1
maxNrofSCellActRS-r17 INTEGER ::= 255 -- Max number of RS configurations per SCell for SCell activation
maxNrofSCells INTEGER ::= 31 -- Max number of secondary serving cells per cell group
maxNrofCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the cell lists in a measurement object
@@ -18810,8 +24229,10 @@ maxNrofCSI-RS-ResourcesToAverage INTEGER ::= 16 -- Max number for th
maxNrofDL-Allocations INTEGER ::= 16 -- Maximum number of PDSCH time domain resource allocations
maxNrofDL-AllocationsExt-r17 INTEGER ::= 64 -- Maximum number of PDSCH time domain resource allocations for multi-PDSCH
-- scheduling
+maxNrofDL-Allocations-1-r18 INTEGER ::= 15 -- Maximum number of PDSCH time domain resource allocations minus 1
maxNrofPDU-Sessions-r17 INTEGER ::= 256 -- Maximum number of PDU Sessions
maxNrofSR-ConfigPerCellGroup INTEGER ::= 8 -- Maximum number of SR configurations per cell group
+maxNrofLCGs-r18 INTEGER ::= 8 -- Maximum number of LCGs
maxLCG-ID INTEGER ::= 7 -- Maximum value of LCG ID
maxLCG-ID-IAB-r17 INTEGER ::= 255 -- Maximum value of LCG ID for IAB-MT
maxLC-ID INTEGER ::= 32 -- Maximum value of Logical Channel ID
@@ -18853,6 +24274,7 @@ maxNrofReportConfigPerAperiodicTrigger INTEGER ::= 16 -- Maximum number of
maxNrofNZP-CSI-RS-Resources INTEGER ::= 192 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources
maxNrofNZP-CSI-RS-Resources-1 INTEGER ::= 191 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources minus 1
maxNrofNZP-CSI-RS-ResourcesPerSet INTEGER ::= 64 -- Maximum number of NZP CSI-RS resources per resource set
+maxNrofNZP-CSI-RS-ResourcesPerSet-1-r18 INTEGER ::= 63 -- Maximum number of NZP CSI-RS resources per resource set minus 1
maxNrofNZP-CSI-RS-ResourceSets INTEGER ::= 64 -- Maximum number of NZP CSI-RS resource sets per cell
maxNrofNZP-CSI-RS-ResourceSets-1 INTEGER ::= 63 -- Maximum number of NZP CSI-RS resource sets per cell minus 1
maxNrofNZP-CSI-RS-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of resource sets per resource configuration
@@ -18878,13 +24300,19 @@ maxNrofFailureDetectionResources INTEGER ::= 10 -- Maximum number of
maxNrofFailureDetectionResources-1 INTEGER ::= 9 -- Maximum number of failure detection resources minus 1
maxNrofFailureDetectionResources-1-r17 INTEGER ::= 63 -- Maximum number of the enhanced failure detection resources minus 1
maxNrofFreqSL-r16 INTEGER ::= 8 -- Maximum number of carrier frequency for NR sidelink communication
+maxNrofFreqSL-1-r18 INTEGER ::= 7 -- Maximum number of carrier frequency for NR sidelink communication minus 1
maxNrofSL-BWPs-r16 INTEGER ::= 4 -- Maximum number of BWP for NR sidelink communication
-maxFreqSL-EUTRA-r16 INTEGER ::= 8 -- Maximum number of EUTRA anchor carrier frequency for NR sidelink communication
+maxNrofSL-CarrierSetConfig-r18 INTEGER ::= 96 -- Maximum number of SCCH carrier set configuration for NR sidelink
+ -- communication
+maxFreqSL-EUTRA-r16 INTEGER ::= 8 -- Maximum number of EUTRA anchor carrier frequency for NR sidelink
+ -- communication
maxNrofSL-MeasId-r16 INTEGER ::= 64 -- Maximum number of sidelink measurement identity (RSRP) per destination
maxNrofSL-ObjectId-r16 INTEGER ::= 64 -- Maximum number of sidelink measurement objects (RSRP) per destination
maxNrofSL-ReportConfigId-r16 INTEGER ::= 64 -- Maximum number of sidelink measurement reporting configuration(RSRP) per destination
-maxNrofSL-PoolToMeasureNR-r16 INTEGER ::= 8 -- Maximum number of resource pool for NR sidelink measurement to measure for
- -- each measurement object (for CBR)
+maxNrofSL-PoolToMeasureNR-r16 INTEGER ::= 8 -- Maximum number of resource pool for NR sidelink measurement to measure
+ -- for each measurement object (for CBR)
+maxNrofDedicatedSL-PRS-PoolToMeas-r18 INTEGER ::= 8 -- Maximum number of SL-PRS dedicated resource pool for positioning
+ -- measurement to measure for each measurement object (for SL-PRS CBR)
maxFreqSL-NR-r16 INTEGER ::= 8 -- Maximum number of NR anchor carrier frequency for NR sidelink communication
maxNrofSL-QFIs-r16 INTEGER ::= 2048 -- Maximum number of QoS flow for NR sidelink communication per UE
maxNrofSL-QFIsPerDest-r16 INTEGER ::= 64 -- Maximum number of QoS flow per destination for NR sidelink communication
@@ -18901,7 +24329,11 @@ maxNrofQuantityConfig INTEGER ::= 2 -- Maximum number of
maxNrofCSI-RS-CellsRRM INTEGER ::= 96 -- Maximum number of cells with CSI-RS resources for an RRM measurement object
maxNrofSL-Dest-r16 INTEGER ::= 32 -- Maximum number of destination for NR sidelink communication and discovery
maxNrofSL-Dest-1-r16 INTEGER ::= 31 -- Highest index of destination for NR sidelink communication and discovery
-maxNrofSLRB-r16 INTEGER ::= 512 -- Maximum number of radio bearer for NR sidelink communication per UE
+maxNrofSL-PRS-PerDest-r18 INTEGER ::= 8 -- Max number of SL-PRS transmission supported per destination UE
+maxNrofSLRB-r16 INTEGER ::= 512 -- Maximum number of radio bearer for NR sidelink communication per UE without duplication
+maxSL-LCID-Plus1-r18 INTEGER ::= 513 -- Maximum number of RLC bearer for NR sidelink communication per UE without duplication plus 1
+maxSL-LCID-r18 INTEGER ::= 1024 -- Maximum number of RLC bearer for NR sidelink communication per UE with duplication
+maxSL-NonAnchorRBsets INTEGER ::= 4 -- Maximum number of non-anchor RB sets
maxSL-LCID-r16 INTEGER ::= 512 -- Maximum number of RLC bearer for NR sidelink communication per UE
maxSL-SyncConfig-r16 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations
maxNrofRXPool-r16 INTEGER ::= 16 -- Maximum number of Rx resource pool for NR sidelink communication and
@@ -18926,8 +24358,14 @@ maxNrofSRS-TriggerStates-1 INTEGER ::= 3 -- Maximum number of
maxNrofSRS-TriggerStates-2 INTEGER ::= 2 -- Maximum number of SRS trigger states minus 2.
maxRAT-CapabilityContainers INTEGER ::= 8 -- Maximum number of interworking RAT containers (incl NR and MRDC)
maxSimultaneousBands INTEGER ::= 32 -- Maximum number of simultaneously aggregated bands
+maxSimultaneousBands-2-r18 INTEGER ::= 30 -- Maximum number of simultaneously aggregated bands minus 2.
maxULTxSwitchingBandPairs INTEGER ::= 32 -- Maximum number of band pairs supporting dynamic UL Tx switching in a band
-- combination.
+maxULTxSwitchingBetweenBandPairs-r18 INTEGER ::= 32 -- Maximum number of combinations of a band pair and another band pair/band
+ -- between which dynamic UL Tx switching requires additional switching
+ -- period.
+maxSchedulingBandCombination-r18 INTEGER ::= 32 -- Maximum number of combinations of scheduling cell and co-scheduled cells
+ -- have same or different carrier type.
maxNrofSlotFormatCombinationsPerSet INTEGER ::= 512 -- Maximum number of Slot Format Combinations in a SF-Set.
maxNrofSlotFormatCombinationsPerSet-1 INTEGER ::= 511 -- Maximum number of Slot Format Combinations in a SF-Set minus 1.
maxNrofTrafficPattern-r16 INTEGER ::= 8 -- Maximum number of Traffic Pattern for NR sidelink communication.
@@ -19002,6 +24440,8 @@ maxNrofTCI-States-1 INTEGER ::= 127 -- Maximum number of
maxUL-TCI-r17 INTEGER ::= 64 -- Maximum number of TCI states.
maxUL-TCI-1-r17 INTEGER ::= 63 -- Maximum number of TCI states minus 1.
maxNrofAdditionalPCI-r17 INTEGER ::= 7 -- Maximum number of additional PCI
+maxNrofAdditionalPRACHConfigs-r18 INTEGER ::= 7 -- Maximum number of additional PRACH configurations for 2TA
+maxNrofdelayD-r18 INTEGER ::= 4 -- Maximum number of delayD values.
maxMPE-Resources-r17 INTEGER ::= 64 -- Maximum number of pooled MPE resources
maxNrofUL-Allocations INTEGER ::= 16 -- Maximum number of PUSCH time domain resource allocations.
maxQFI INTEGER ::= 63
@@ -19045,6 +24485,9 @@ maxInterRAT-RSTD-Freq INTEGER ::= 3
maxGIN-r17 INTEGER ::= 24 -- Maximum number of broadcast GINs
maxHRNN-Len-r16 INTEGER ::= 48 -- Maximum length of HRNNs
maxNPN-r16 INTEGER ::= 12 -- Maximum number of NPNs broadcast and reported by UE at establishment
+maxSNPN-ConfigCellId-r18 INTEGER ::= 32 -- Maximum number of Cell ID subject for SNPNS for MDT scope
+maxSNPN-ConfigID-r18 INTEGER ::= 16 -- Maximum number of SNPNs subject for MDT scope
+maxSNPN-ConfigTAI-r18 INTEGER ::= 8 -- Maximum number of TA subject for MDT scope
maxNrOfMinSchedulingOffsetValues-r16 INTEGER ::= 2 -- Maximum number of min. scheduling offset (K0/K2) configurations
maxK0-SchedulingOffset-r16 INTEGER ::= 16 -- Maximum number of slots configured as min. scheduling offset (K0)
maxK2-SchedulingOffset-r16 INTEGER ::= 16 -- Maximum number of slots configured as min. scheduling offset (K2)
@@ -19053,7 +24496,10 @@ maxK2-SchedulingOffset-r17 INTEGER ::= 64 -- Maximum number of
maxDCI-2-6-Size-r16 INTEGER ::= 140 -- Maximum size of DCI format 2-6
maxDCI-2-7-Size-r17 INTEGER ::= 43 -- Maximum size of DCI format 2-7
maxDCI-2-6-Size-1-r16 INTEGER ::= 139 -- Maximum DCI format 2-6 size minus 1
+maxDCI-2-9-Size-r18 INTEGER ::= 140 -- Maximum DCI format 2-9 size
+maxDCI-2-9-Size-1-r18 INTEGER ::= 139 -- Maximum DCI format 2-9 size minus 1
maxNrofUL-Allocations-r16 INTEGER ::= 64 -- Maximum number of PUSCH time domain resource allocations
+maxNrofUL-Allocations-1-r18 INTEGER ::= 63 -- Maximum number of PUSCH time domain resource allocations minus 1
maxNrofP0-PUSCH-Set-r16 INTEGER ::= 2 -- Maximum number of P0 PUSCH set(s)
maxOnDemandSIB-r16 INTEGER ::= 8 -- Maximum number of SIB(s) that can be requested on-demand
maxOnDemandPosSIB-r16 INTEGER ::= 32 -- Maximum number of posSIB(s) that can be requested on-demand
@@ -19075,6 +24521,10 @@ maxNrofConfiguredGrantConfig-r16 INTEGER ::= 12 -- Maximum number of
maxNrofConfiguredGrantConfig-1-r16 INTEGER ::= 11 -- Maximum number of configured grant configurations per BWP minus 1
maxNrofCG-Type2DeactivationState INTEGER ::= 16 -- Maximum number of deactivation state for type 2 configured grants per BWP
maxNrofConfiguredGrantConfigMAC-1-r16 INTEGER ::= 31 -- Maximum number of configured grant configurations per MAC entity minus 1
+maxNrofCSI-ReportSubconfigPerCSI-ReportConfig-r18 INTEGER ::= 8 -- Maximum number of CSI report subconfigurations per CSI report
+ -- configuration
+maxNrofCSI-ReportSubconfigPerCSI-ReportConfig-1-r18 INTEGER ::= 7 -- Maximum number of CSI report subconfigurations per CSI report
+ -- configuration minus 1
maxNrofSPS-Config-r16 INTEGER ::= 8 -- Maximum number of SPS configurations per BWP
maxNrofSPS-Config-1-r16 INTEGER ::= 7 -- Maximum number of SPS configurations per BWP minus 1
maxNrofSPS-DeactivationState INTEGER ::= 16 -- Maximum number of deactivation state for SPS per BWP
@@ -19095,7 +24545,7 @@ maxNrofEnhType3HARQ-ACK-1-r17 INTEGER ::= 7 -- Maximum number of
maxNrofPRS-ResourcesPerSet-r17 INTEGER ::= 64 -- Maximum number of PRS resources for one set
maxNrofPRS-ResourcesPerSet-1-r17 INTEGER ::= 63 -- Maximum number of PRS resources for one set minus 1
maxNrofPRS-ResourceOffsetValue-1-r17 INTEGER ::= 511
-maxNrofGapId-r17 INTEGER ::= 8 -- Maximum number of measurement gap ID is FFS
+maxNrofGapId-r17 INTEGER ::= 8 -- Maximum number of measurement gap ID
maxNrofPreConfigPosGapId-r17 INTEGER ::= 16 -- Maximum number of preconfigured positioning measurement gap
maxNrOfGapPri-r17 INTEGER ::= 16 -- Maximum number of gap priority level
maxCEFReport-r17 INTEGER ::= 4 -- Maximum number of CEF reports by the UE
@@ -19113,7 +24563,8 @@ maxNrofDRX-ConfigPTM-1-r17 INTEGER ::= 63 -- Max number of DRX
-- cell minus 1
maxNrofMBS-ServiceListPerUE-r17 INTEGER ::= 16 -- Maximum number of services which the UE can include in the MBS interest
-- indication
-maxNrofMBS-Session-r17 INTEGER ::= 1024 -- Maximum number of MBS sessions provided in MBS broadcast in a cell
+maxNrofMBS-Session-r17 INTEGER ::= 1024 -- Maximum number of MBS sessions provided in MBS broadcast or multicast in
+ -- a cell
maxNrofMTCH-SSB-MappingWindow-r17 INTEGER ::= 16 -- Maximum number of MTCH to SSB beam mapping pattern
maxNrofMTCH-SSB-MappingWindow-1-r17 INTEGER ::= 15 -- Maximum number of MTCH to SSB beam mapping pattern minus 1
maxNrofMRB-Broadcast-r17 INTEGER ::= 4 -- Maximum number of broadcast MRBs configured for one MBS broadcast service
@@ -19131,6 +24582,56 @@ maxNrofPdcch-BlindDetectionMixed-1-r16 INTEGER ::= 7 -- Maximum number of
-- monitoring capabilities minus 1
maxNrofPdcch-BlindDetection-r17 INTEGER ::= 16 -- Maximum number of combinations of PDCCH blind detection monitoring
-- capabilities
+maxNrofAltitudeRanges-r18 INTEGER ::= 8 -- Maximum number of altitude ranges for altitude-based measurement configurations
+maxWayPoint-r18 INTEGER ::= 20 -- Maximum number of flight path information waypoints
+maxAltitude-r18 INTEGER ::= 10000 -- Maximum altitude in meters
+minAltitude-r18 INTEGER ::= -420 -- Minimum altitude in meters
+maxMeasSequence-r18 INTEGER ::= 64 -- Maximum number of configured sequence for measurement
+maxNrofHops-1-r18 INTEGER ::= 5 -- Maximum number of Hops that can be configured for Positioning SRS Transmission
+maxNrOfCellsInVA-r18 INTEGER ::= 16 -- Maximum number of cells in validity area for Positioning SRS is FFS
+maxNrOfLinkedSRS-PosResourceSet-r18 INTEGER ::= 3 -- Maximum number of linked SRSPosResourceSets that can be aggregated across
+ -- CCs
+maxNrOfLinkedSRS-PosResSetComb-r18 INTEGER ::= 32 -- Maximum number of combinations of linked SRSPosResourceSets that can be
+ -- aggregated in RRC_CONNECTED state
+maxNrOfLinkedSRS-PosResSetCombInactive-r18 INTEGER ::= 16 -- Maximum number of combinations of linked SRSPosResourceSets that can be
+ -- aggregated in RRC_INACTIVE state
+maxCBR-ConfigDedSL-PRS-1-r18 INTEGER ::= 7 -- Maximum number of CBR ranges for dedicated SL PRS resource pool
+maxCBR-LevelDedSL-PRS-1-r18 INTEGER ::= 15 -- Maximum number of CBR levels for dedicated SL PRS resource pool
+maxNrofSL-PRS-TxPool-r18 INTEGER ::= 8 -- Maximum number of Tx dedicated SL-PRS resource pool for NR sidelink positioning is FFS
+maxNrofSL-PRS-TxConfig-r18 INTEGER ::= 64 -- Maximum number of SL PRS transmission parameter configurations
+maxNrOfVA-r18 INTEGER ::= 16 -- Maximum number of validity area is FFS
+maxNrofLTM-Configs-r18 INTEGER ::= 8 -- Maximum number of LTM candidate cells
+maxNrofLTM-Configs-plus1-r18 INTEGER ::= 9 -- Maximum number of LTM candidate cells plus 1
+maxNrofLTM-CSI-ReportConfigurations-r18 INTEGER ::= 48 -- Maximum number of LTM CSI reporting configurations
+maxNrofLTM-CSI-ReportConfigurations-1-r18 INTEGER ::= 47 -- Maximum number of LTM CSI reporting configurations minus 1
+maxNrofLTM-CSI-SSB-ResourcesPerSet-r18 INTEGER ::= 512 -- Maximum number of LTM CSI SSB resource per set
+maxNrofLTM-CSI-ResourceConfigurations-r18 INTEGER ::= 112 -- Maximum number of LTM CSI resource configurations
+maxNrofLTM-CSI-ResourceConfigurations-1-r18 INTEGER ::= 111 -- Maximum number of LTM CSI resource configurations minus 1
+maxNrofCandidateTCI-State-r18 INTEGER ::= 128 -- Maximum number of LTM TCI states
+maxNrofCandidateUL-TCI-r18 INTEGER ::= 64 -- Maximum number of LTM UL TCI states
+maxSecurityCellSet-r18 INTEGER ::= 9 -- Maximum number of cell sets for subsequent CPAC.
+maxSK-Counter-r18 INTEGER ::= 8 -- Maximum number of SK-counters configured for a cell set for subsequent CPAC.
+maxNrofThresholdMBS-r18 INTEGER ::= 8 -- Max number of thresholds of MBS sessions for RRC connection resume for a
+ -- UE receiving multicast in RRC_INACTIVE
+maxNrofThresholdMBS-1-r18 INTEGER ::= 7 -- Max number of thresholds of MBS sessions for RRC connection resume for a
+ -- UE receiving multicast in RRC_INACTIVE minus 1
+maxTN-AreaInfo-r18 INTEGER ::= 32 -- Maximum number of TN coverage areas for which assistance info is
+ -- provided in an NTN cell
+maxNrofSetsOfCells-r18 INTEGER ::= 4 -- Maximum number of sets of cells for multi-cell PDSCH/PUSCH scheduling
+maxNrofSetsOfCells-1-r18 INTEGER ::= 3 -- Maximum number of sets of cells for multi-cell PDSCH/PUSCH scheduling
+ -- minus 1
+maxNrofCellsInSet-r18 INTEGER ::= 4 -- Maximum number of cells configured in a set of cells for multi-cell
+ -- PDSCH/PUSCH scheduling
+maxNrofCellsInSet-1-r18 INTEGER ::= 3 -- Maximum number of cells configured in a set of cells for multi-cell
+ -- PDSCH/PUSCH scheduling minus 1
+maxNrofCellCombos-r18 INTEGER ::= 16 -- Maximum number of combinations of co-scheduled cells for multi-cell
+ -- PDSCH/PUSCH scheduling
+maxNrofBWPsInSetOfCells-r18 INTEGER ::= 16 -- Maximum number of BWPs configured in a set of cells for multi-cell
+ -- PDSCH/PUSCH scheduling
+maxLowerMSD-r18 INTEGER ::= 256 -- Maximum number of lower MSD capability sets for a victim band
+maxLowerMSDInfo-r18 INTEGER ::= 64 -- Maximum number of lower MSD capability sets for a band combination
+maxNrofIntraEndc-Components-r17 INTEGER ::= 4 -- Maximum number of intra-band (NG)EN-DC band components in an inter-band
+ -- (NG)EN-DC band combination
-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP
diff --git a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn
index dbaf2ec3..eb26df3a 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn
@@ -1,17 +1,21 @@
--- 3GPP TS 38.331 V17.5.0 (2023-06)
+-- 3GPP TS 38.331 V18.2.0 (2024-06)
NR-Sidelink-DiscoveryMessage DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
CellAccessRelatedInfo,
- SL-ServingCellInfo-r17
+ SL-ServingCellInfo-r17,
+ SL-RelayIndicationMP-r18
FROM NR-RRC-Definitions;
SL-AccessInfo-L2U2N-r17 ::= SEQUENCE {
cellAccessRelatedInfo-r17 CellAccessRelatedInfo,
sl-ServingCellInfo-r17 SL-ServingCellInfo-r17,
- ...
+ ...,
+ [[
+ sl-RelayIndication-r18 SL-RelayIndicationMP-r18 OPTIONAL
+ ]]
}
END
diff --git a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn
index 492349d3..d2267b1f 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn
@@ -1,12 +1,16 @@
--- 3GPP TS 38.331 V17.5.0 (2023-06)
+-- 3GPP TS 38.331 V18.2.0 (2024-06)
NR-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
+ SL-RelayUE-ConfigU2U-r18,
+ SL-RemoteUE-ConfigU2U-r18,
SL-RemoteUE-Config-r17,
SL-DRX-ConfigGC-BC-r17,
+ SL-Freq-Id-r16,
+ maxNrofFreqSL-1-r18,
SL-FreqConfigCommon-r16,
SL-RadioBearerConfig-r16,
SL-RLC-BearerConfig-r16,
@@ -46,9 +50,17 @@ SidelinkPreconfigNR-r16 ::= SEQUENCE {
sl-MaxCID-r16 INTEGER (1..16383) DEFAULT 15,
...,
[[
- sl-DRX-PreConfigGC-BC-r17 SL-DRX-ConfigGC-BC-r17 OPTIONAL,
+ sl-DRX-PreConfigGC-BC-r17 SL-DRX-ConfigGC-BC-r17 OPTIONAL,
sl-TxProfileList-r17 SL-TxProfileList-r17 OPTIONAL,
sl-PreconfigDiscConfig-r17 SL-RemoteUE-Config-r17 OPTIONAL
+ ]],
+ [[
+ sl-PreconfigFreqInfoListSizeExt-v1800 SEQUENCE (SIZE (1..maxNrofFreqSL-1-r18)) OF SL-FreqConfigCommon-r16 OPTIONAL,
+ sl-RLC-BearerConfigListSizeExt-v1800 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-BearerConfig-r16 OPTIONAL,
+ sl-SyncFreqList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-Freq-Id-r16 OPTIONAL,
+ sl-SyncTxMultiFreq-r18 ENUMERATED {true} OPTIONAL,
+ sl-PreconfigDiscConfig-v1800 SL-PreconfigDiscConfig-v1800 OPTIONAL,
+ sl-PosPreconfigFreqInfoList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-FreqConfigCommon-r16 OPTIONAL
]]
}
@@ -74,6 +86,11 @@ SL-RoHC-Profiles-r16 ::= SEQUENCE {
profile0x0104-r16 BOOLEAN
}
+SL-PreconfigDiscConfig-v1800 ::= SEQUENCE {
+ sl-RelayUE-PreconfigU2U-r18 SL-RelayUE-ConfigU2U-r18,
+ sl-RemoteUE-PreconfigU2U-r18 SL-RemoteUE-ConfigU2U-r18
+}
+
-- TAG-SL-PRECONFIGURATIONNR-STOP
END
diff --git a/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn
index 2a273755..2ecfa40a 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn
@@ -1,22 +1,29 @@
--- 3GPP TS 38.331 V17.5.0 (2023-06)
+-- 3GPP TS 38.331 V18.2.0 (2024-06)
NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
- AreaConfiguration-v1700,
+ AreaConfiguration-r17,
ARFCN-ValueNR,
CellIdentity,
EUTRA-PhysCellId,
maxCEFReport-r17,
+ maxCellReport,
MeasId,
MeasIdToAddModList,
MeasIdleCarrierEUTRA-r16,
MeasIdleCarrierNR-r16,
MeasResultIdleEUTRA-r16,
MeasResultIdleNR-r16,
+ MeasReselectionCarrierNR-r18,
+ MeasurementValidityDuration-r18,
MeasObjectToAddModList,
+ MeasConfigAppLayerId-r17,
+ MeasConfigAppLayer-r17,
+ maxNrofAppLayerMeas-r17,
+ AppLayerIdleInactiveConfig-r18,
PhysCellId,
RNTI-Value,
ReportConfigToAddModList,
@@ -64,14 +71,52 @@ IMPORTS
maxNrofCLI-SRS-Resources-r16,
RSSI-ResourceId-r16,
SRS-ResourceId,
- VisitedPSCellInfoList-r17
+ VisitedPSCellInfoList-r17,
+ SuccessPSCell-Report-r18,
+ maxNPN-r16,
+ SNPN-ConfigID-List-r18,
+ AreaConfiguration-v1800,
+ NID-r16,
+ SK-CounterConfig-r18,
+ ReferenceConfiguration-r18,
+ maxNrofLTM-Configs-plus1-r18,
+ maxSecurityCellSet-r18
+
FROM NR-RRC-Definitions;
-- NR-UE-VARIABLES-STOP
+-- TAG-VARAPPLAYERIDLECONFIG-START
+
+VarAppLayerIdleConfig-r18-IEs ::= SEQUENCE {
+ appLayerIdleConfigList-r18 SEQUENCE (SIZE (1..maxNrofAppLayerMeas-r17)) OF VarAppLayerIdle-r18
+}
+
+VarAppLayerIdle-r18 ::= SEQUENCE {
+ measConfigAppLayerId-r18 MeasConfigAppLayerId-r17,
+ serviceType-r18 ENUMERATED {streaming, mtsi, vr, spare5, spare4, spare3, spare2, spare1},
+ appLayerIdleInactiveConfig-r18 AppLayerIdleInactiveConfig-r18,
+ appLayerMeasPriority-r18 INTEGER (1..16) OPTIONAL
+}
+
+-- TAG-VARAPPLAYERIDLECONFIG-STOP
+-- TAG-VARAPPLAYERPLMN-LISTCONFIG-START
+
+VarAppLayerPLMN-ListConfig-r18-IEs ::= SEQUENCE {
+ plmnConfigList-r18 SEQUENCE (SIZE (1..maxNrofAppLayerMeas-r17)) OF VarAppLayerPLMN-List-r18
+}
+
+VarAppLayerPLMN-List-r18 ::= SEQUENCE {
+ measConfigAppLayerId-r18 MeasConfigAppLayerId-r17,
+ plmn-IdentityList-r18 PLMN-IdentityList2-r16
+}
+
+-- TAG-VARAPPLAYERPLMN-LISTCONFIG-STOP
-- TAG-VARCONDITIONALRECONFIG-START
-VarConditionalReconfig ::= SEQUENCE {
- condReconfigList CondReconfigToAddModList-r16 OPTIONAL
+VarConditionalReconfig ::= SEQUENCE {
+ condReconfigList CondReconfigToAddModList-r16 OPTIONAL,
+ scpac-ReferenceConfiguration-r18 ReferenceConfiguration-r18 OPTIONAL,
+ sk-CounterConfiguration-r18 SEQUENCE (SIZE (1..maxSecurityCellSet-r18)) OF SK-CounterConfig-r18 OPTIONAL
}
-- TAG-VARCONDITIONALRECONFIG-STOP
@@ -79,9 +124,16 @@ VarConditionalReconfig ::= SEQUENCE {
VarConnEstFailReport-r16 ::= SEQUENCE {
connEstFailReport-r16 ConnEstFailReport-r16,
- plmn-Identity-r16 PLMN-Identity
+ networkIdentity-r18 CHOICE {
+ plmn-Identity-r18 PLMN-Identity,
+ snpn-Identity-r18 SNPN-Identity-r18
+ }
}
+SNPN-Identity-r18 ::= SEQUENCE {
+ plmn-Identity-r18 PLMN-Identity,
+ nid-r18 NID-r16
+}
-- TAG-VARCONNESTFAILREPORT-STOP
-- TAG-VARCONNESTFAILREPORTLIST-START
@@ -103,7 +155,8 @@ VarLogMeasConfig-r16-IEs ::= SEQUENCE {
eventTriggered LoggedEventTriggerConfig-r16
},
earlyMeasIndication-r17 ENUMERATED {true} OPTIONAL,
- areaConfiguration-v1700 AreaConfiguration-v1700 OPTIONAL
+ areaConfiguration-r17 AreaConfiguration-r17 OPTIONAL,
+ areaConfiguration-v1800 AreaConfiguration-v1800 OPTIONAL
}
-- TAG-VARLOGMEASCONFIG-STOP
-- TAG-VARLOGMEASREPORT-START
@@ -114,11 +167,28 @@ VarLogMeasReport-r16 ::= SEQUENCE {
traceRecordingSessionRef-r16 OCTET STRING (SIZE (2)),
tce-Id-r16 OCTET STRING (SIZE (1)),
logMeasInfoList-r16 LogMeasInfoList-r16,
- plmn-IdentityList-r16 PLMN-IdentityList2-r16,
- sigLoggedMeasType-r17 ENUMERATED {true}
+ sigLoggedMeasType-r17 ENUMERATED {true},
+ identityList-r18 CHOICE {
+ plmn-IdentityList-r18 PLMN-IdentityList2-r16,
+ snpn-ConfigID-List-r18 SNPN-ConfigID-List-r18
+ }
}
-- TAG-VARLOGMEASREPORT-STOP
+-- TAG-VARLTM-SERVINGCELLNORESETID-START
+
+VarLTM-ServingCellNoResetID-r18-IEs ::= SEQUENCE {
+ ltm-ServingCellNoResetID-r18 INTEGER (1..maxNrofLTM-Configs-plus1-r18) OPTIONAL
+}
+
+-- TAG-VARLTM-SERVINGCELLNORESETID-STOP
+-- TAG-VARLTM-SERVINGCELLUE-MEASUREDTA-ID-START
+
+VarLTM-ServingCellUeMeasuredTA-ID-r18-IEs ::= SEQUENCE {
+ ltm-ServingCellUE-MeasuredTA-ID-r18 INTEGER (1..maxNrofLTM-Configs-plus1-r18) OPTIONAL
+}
+
+-- TAG-VARLTM-SERVINGCELLUE-MEASUREDTA-ID-STOP
-- TAG-VARMEASCONFIG-START
VarMeasConfig ::= SEQUENCE {
@@ -145,7 +215,7 @@ VarMeasConfigSL-r16 ::= SEQUENCE {
-- NR sidelink measurement objects
sl-MeasObjectList-r16 SL-MeasObjectList-r16 OPTIONAL,
-- NR sidelink reporting configurations
- sl-reportConfigList-r16 SL-ReportConfigList-r16 OPTIONAL,
+ sl-ReportConfigList-r16 SL-ReportConfigList-r16 OPTIONAL,
-- Other parameters
sl-QuantityConfig-r16 SL-QuantityConfig-r16 OPTIONAL
}
@@ -160,6 +230,10 @@ VarMeasIdleConfig-r16 ::= SEQUENCE {
validityAreaList-r16 ValidityAreaList-r16 OPTIONAL
}
+VarEnhMeasIdleConfig-r18 ::= SEQUENCE {
+ measIdleValidityDuration-r18 MeasurementValidityDuration-r18 OPTIONAL
+}
+
-- TAG-VARMEASIDLECONFIG-STOP
-- TAG-VARMEASIDLEREPORT-START
@@ -176,11 +250,13 @@ VarMeasReportList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF VarMea
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
- cellsTriggeredList CellsTriggeredList OPTIONAL,
+ cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER,
- cli-TriggeredList-r16 CLI-TriggeredList-r16 OPTIONAL,
- tx-PoolMeasToAddModListNR-r16 Tx-PoolMeasList-r16 OPTIONAL,
- relaysTriggeredList-r17 RelaysTriggeredList-r17 OPTIONAL
+ cli-TriggeredList-r16 CLI-TriggeredList-r16 OPTIONAL,
+ tx-PoolMeasToAddModListNR-r16 Tx-PoolMeasList-r16 OPTIONAL,
+ relaysTriggeredList-r17 RelaysTriggeredList-r17 OPTIONAL,
+ cellsMetLeavingCond-r18 SEQUENCE (SIZE (1..maxCellReport)) OF PhysCellId OPTIONAL,
+ reportedBestNeighbourCell-r18 SEQUENCE (SIZE (1..2)) OF PhysCellId OPTIONAL
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CHOICE {
@@ -213,6 +289,14 @@ VarMeasReportSL-r16 ::= SEQUENCE {
}
-- TAG-VARMEASREPORTLISTSL-STOP
+-- TAG-VARMEASRESELECTIONCONFIG-START
+
+VarMeasReselectionConfig-r18 ::= SEQUENCE {
+ measReselectionCarrierListNR-r18 SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasReselectionCarrierNR-r18 OPTIONAL,
+ measReselectionValidityDuration-r18 MeasurementValidityDuration-r18 OPTIONAL
+}
+
+-- TAG-VARMEASRESELECTIONCONFIG-STOP
-- TAG-VARMOBILITYHISTORYREPORT-START
VarMobilityHistoryReport-r16 ::= VisitedCellInfoList-r16
@@ -234,11 +318,12 @@ VarPendingRNA-Update ::= SEQUENCE {
VarRA-Report-r16 ::= SEQUENCE {
ra-ReportList-r16 RA-ReportList-r16,
- plmn-IdentityList-r16 PLMN-IdentityList-r16
+ identityList-r18 CHOICE {
+ plmn-IdentityList-r18 PLMN-IdentityList2-r16,
+ snpn-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF SNPN-Identity-r18
+ }
}
-PLMN-IdentityList-r16 ::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity
-
-- TAG-VARRA-REPORT-STOP
-- TAG-VARRESUMEMAC-INPUT-START
@@ -253,10 +338,20 @@ VarResumeMAC-Input ::= SEQUENCE {
VarRLF-Report-r16 ::= SEQUENCE {
rlf-Report-r16 RLF-Report-r16,
- plmn-IdentityList-r16 PLMN-IdentityList2-r16
+ identityList-r18 CHOICE {
+ plmn-IdentityList-r18 PLMN-IdentityList2-r16,
+ snpn-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF SNPN-Identity-r18
+ }
}
-- TAG-VARRLF-REPORT-STOP
+-- TAG-VARSERVINGSECURITYCELLSETID-START
+
+VarServingSecurityCellSetID ::= SEQUENCE {
+ servingSecurityCellSetId-r18 INTEGER (1.. maxSecurityCellSet-r18)
+}
+
+-- TAG-VARSERVINGSECURITYCELLSETID-STOP
-- TAG-VARSHORTMAC-INPUT-START
VarShortMAC-Input ::= SEQUENCE {
@@ -270,8 +365,33 @@ VarShortMAC-Input ::= SEQUENCE {
VarSuccessHO-Report-r17-IEs ::= SEQUENCE {
successHO-Report-r17 SuccessHO-Report-r17,
- plmn-IdentityList-r17 PLMN-IdentityList2-r16
+ identityList-r18 CHOICE {
+ plmn-IdentityList-r18 PLMN-IdentityList2-r16,
+ snpn-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF SNPN-Identity-r18
+ }
}
-- TAG-VARSUCCESSHO-Report-STOP
+-- TAG-VARSUCCESSPSCELL-Report-START
+
+VarSuccessPSCell-Report-r18-IEs ::= SEQUENCE {
+ successPSCell-Report-r18 SuccessPSCell-Report-r18,
+ identityList-r18 CHOICE {
+ plmn-IdentityList-r18 PLMN-IdentityList2-r16,
+ snpn-IdentityList-r18 SEQUENCE (SIZE (1..maxNPN-r16)) OF SNPN-Identity-r18
+ }
+}
+
+-- TAG-VARSUCCESSPSCELL-Report-STOP
+-- TAG-VARTSS-INFO-START
+
+VarTSS-Info-r18 ::= SEQUENCE {
+ storedEventID-r18 INTEGER (0..63),
+ storedGlobalGnbID-r18 SEQUENCE {
+ plmn-Identity-r18 PLMN-Identity,
+ gnb-ID-r18 BIT STRING (SIZE (22..32))
+ }
+}
+
+-- TAG-VARTSS-INFO-STOP
END
diff --git a/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn b/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn
index cd5ec756..3a34fb20 100644
--- a/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn
@@ -1,10 +1,11 @@
--- 3GPP TS 38.331 V17.5.0 (2023-06)
+-- 3GPP TS 38.331 V18.2.0 (2024-06)
PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
+ ARFCN-ValueNR,
CellAccessRelatedInfo,
SetupRelease,
RRC-TransactionIdentifier,
@@ -22,21 +23,34 @@ IMPORTS
SL-MeasId-r16,
FreqBandList,
FreqBandIndicatorNR,
+ GNSS-ID-r16,
maxNrofRelayMeas-r17,
maxSimultaneousBands,
maxBandComb,
maxBands,
+ maxSIB,
maxSIB-MessagePlus1-r17,
maxSL-LCID-r16,
+ maxNrofFreqSL-1-r18,
BandParametersSidelink-r16,
+ PagingRecord-v1700,
RLC-ParametersSidelink-r16,
+ SBAS-ID-r16,
SIB1,
SL-DRX-ConfigUC-r17,
SL-DRX-ConfigUC-SemiStatic-r17,
SL-PagingIdentityRemoteUE-r17,
SL-RLC-ChannelID-r17,
SL-SourceIdentity-r17,
- SystemInformation
+ SystemInformation,
+ maxNrofSL-Dest-r16,
+ SL-DestinationIdentity-r16,
+ SL-RelayIndicationMP-r18,
+ SL-RSRP-Range-r16,
+ SL-QoS-FlowIdentity-r16,
+ SL-QoS-Info-r16,
+ maxNrofPhysicalResourceBlocks,
+ SubcarrierSpacing
FROM NR-RRC-Definitions;
-- TAG-PC5-RRC-DEFINITIONS-STOP
@@ -76,7 +90,8 @@ SCCH-MessageType ::= CHOICE {
c2 CHOICE {
notificationMessageSidelink-r17 NotificationMessageSidelink-r17,
ueAssistanceInformationSidelink-r17 UEAssistanceInformationSidelink-r17,
- spare6 NULL, spare5 NULL, spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL
+ ueInformationRequestSidelink-r18 UEInformationRequestSidelink-r18,
+ ueInformationResponseSidelink-r18 UEInformationResponseSidelink-r18, spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL
},
messageClassExtensionFuture-r17 SEQUENCE {}
}
@@ -104,7 +119,7 @@ MeasurementReportSidelink ::= SEQUENCE {
}
MeasurementReportSidelink-r16-IEs ::= SEQUENCE {
- sl-measResults-r16 SL-MeasResults-r16,
+ sl-MeasResults-r16 SL-MeasResults-r16,
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension SEQUENCE{} OPTIONAL
}
@@ -117,12 +132,18 @@ SL-MeasResults-r16 ::= SEQUENCE {
SL-MeasResult-r16 ::= SEQUENCE {
sl-ResultDMRS-r16 SL-MeasQuantityResult-r16 OPTIONAL,
- ...
+ ...,
+ [[
+ sl-Result-SL-PRS-r18 SL-MeasQuantityResult-r16 OPTIONAL
+ ]]
}
SL-MeasQuantityResult-r16 ::= SEQUENCE {
sl-RSRP-r16 RSRP-Range OPTIONAL,
- ...
+ ...,
+ [[
+ sl-RSRP-DedicatedSL-PRS-RP-r18 SL-RSRP-Range-r16 OPTIONAL
+ ]]
}
SL-MeasResultListRelay-r17 ::= SEQUENCE (SIZE (1..maxNrofRelayMeas-r17)) OF SL-MeasResultRelay-r17
@@ -131,7 +152,11 @@ SL-MeasResultRelay-r17 ::= SEQUENCE {
cellIdentity-r17 CellAccessRelatedInfo,
sl-RelayUE-Identity-r17 SL-SourceIdentity-r17,
sl-MeasResult-r17 SL-MeasResult-r16,
- ...
+ ...,
+ [[
+ sl-MeasQuantity-r18 ENUMERATED { sl-rsrp, sd-rsrp } OPTIONAL,
+ sl-RelayIndicationMP-r18 SL-RelayIndicationMP-r18 OPTIONAL
+ ]]
}
-- TAG-MEASUREMENTREPORTSIDELINK-STOP
@@ -150,9 +175,14 @@ NotificationMessageSidelink-r17-IEs ::= SEQUENCE {
relayUE-Uu-RRC-Failure
} OPTIONAL, -- Need N
lateNonCriticalExtension OCTET STRING OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension NotificationMessageSidelink-v1800-IEs OPTIONAL
}
+NotificationMessageSidelink-v1800-IEs ::= SEQUENCE {
+ sl-IndicationType-r18 ENUMERATED {relayUE-PC5-RLF, spare1} OPTIONAL, -- Need N
+ sl-DestinationIdentityRemoteUE-r18 SL-DestinationIdentity-r16 OPTIONAL, -- Need N
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
-- TAG-NOTIFICATIONMESSAGESIDELINK -STOP
-- TAG-REMOTEUEINFORMATIONSIDELINK-START
@@ -167,7 +197,15 @@ RemoteUEInformationSidelink-r17-IEs ::= SEQUENCE {
sl-RequestedSIB-List-r17 CHOICE {release NULL, setup SL-RequestedSIB-List-r17} OPTIONAL, -- Need M
sl-PagingInfo-RemoteUE-r17 CHOICE {release NULL, setup SL-PagingInfo-RemoteUE-r17} OPTIONAL, -- Need M
lateNonCriticalExtension OCTET STRING OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension RemoteUEInformationSidelink-v1800-IEs OPTIONAL
+}
+
+RemoteUEInformationSidelink-v1800-IEs ::= SEQUENCE {
+ sl-RequestedPosSIB-List-r18 CHOICE {release NULL, setup SL-RequestedPosSIB-List-r18 } OPTIONAL, -- Need M
+ sl-SFN-DFN-OffsetRequested-r18 ENUMERATED { true } OPTIONAL, -- Need R
+ connectionForMP-r18 ENUMERATED {true} OPTIONAL, -- Need N
+ sl-DestinationIdentityRemoteUE-r18 SL-DestinationIdentity-r16 OPTIONAL, -- Need N
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
SL-RequestedSIB-List-r17 ::= SEQUENCE (SIZE (maxSIB-MessagePlus1-r17)) OF SL-SIB-ReqInfo-r17
@@ -178,8 +216,28 @@ SL-PagingInfo-RemoteUE-r17 ::= SEQUENCE {
}
SL-SIB-ReqInfo-r17 ::= ENUMERATED { sib1, sib2, sib3, sib4, sib5, sib6, sib7, sib8, sib9, sib10, sib11, sib12, sib13,
- sib14, sib15, sib16, sib17, sib18, sib19, sib20, sib21, sibNotReq11, sibNotReq10, sibNotReq9,
- sibNotReq8, sibNotReq7, sibNotReq6, sibNotReq5, sibNotReq4, sibNotReq3, sibNotReq2, sibNotReq1, ... }
+ sib14, sib15, sib16, sib17, sib18, sib19, sib20, sib21, sibNotReq11, sibNotReq10,
+ sibNotReq9, sibNotReq8, sibNotReq7, sibNotReq6, sibNotReq5, sibNotReq4,
+ sibNotReq3, sibNotReq2, sibNotReq1, ..., sib17bis-v1820 }
+
+SL-RequestedPosSIB-List-r18 ::= SEQUENCE (SIZE (1..maxSIB)) OF SL-PosSIB-ReqInfo-r18
+
+SL-PosSIB-ReqInfo-r18 ::= SEQUENCE {
+ gnss-id-r18 GNSS-ID-r16 OPTIONAL, -- Need R
+ sbas-id-r18 SBAS-ID-r16 OPTIONAL, -- Cond GNSS-ID-SBAS
+ posSibType-r18 ENUMERATED { posSibType1-1, posSibType1-2, posSibType1-3, posSibType1-4, posSibType1-5, posSibType1-6,
+ posSibType1-7, posSibType1-8, posSibType1-9, posSibType1-10, posSibType1-11,
+ posSibType1-12, posSibType2-1, posSibType2-2, posSibType2-3, posSibType2-4, posSibType2-5,
+ posSibType2-6, posSibType2-7, posSibType2-8, posSibType2-9, posSibType2-10, posSibType2-11,
+ posSibType2-12, posSibType2-13, posSibType2-14, posSibType2-15, posSibType2-16,
+ posSibType2-17, posSibType2-17a, posSibType2-18, posSibType2-18a, posSibType2-19,
+ posSibType2-20, posSibType2-20a, posSibType2-21, posSibType2-22, posSibType2-23,
+ posSibType2-24, posSibType2-25, posSibType2-26, posSibType2-27, posSibType3-1,
+ posSibType4-1, posSibType5-1, posSibType6-1, posSibType6-2, posSibType6-3, posSibType6-4,
+ posSibType6-5, posSibType6-6, posSibType6-7, posSibType7-1, posSibType7-2, posSibType7-3,
+ posSibType7-4, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1,
+ ... }
+}
-- TAG-REMOTEUEINFORMATIONSIDELINK-STOP
-- TAG-RRCRECONFIGURATIONSIDELINK-START
@@ -208,9 +266,46 @@ RRCReconfigurationSidelink-v1700-IEs ::= SEQUENCE {
sl-LatencyBoundIUC-Report-r17 CHOICE {release NULL, setup SL-LatencyBoundIUC-Report-r17 } OPTIONAL, -- Need M
sl-RLC-ChannelToReleaseListPC5-r17 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-ChannelID-r17 OPTIONAL, -- Need N
sl-RLC-ChannelToAddModListPC5-r17 SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-ChannelConfigPC5-r17 OPTIONAL, -- Need N
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension RRCReconfigurationSidelink-v1800-IEs OPTIONAL
}
+RRCReconfigurationSidelink-v1800-IEs ::= SEQUENCE {
+ sl-SFN-DFN-Offset-r18 CHOICE {release NULL, setup SL-SFN-DFN-Offset-r18 } OPTIONAL, -- Need M
+ sl-CarrierToAddModList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-1-r18)) OF SL-CarrierConfig-r18 OPTIONAL, -- Need N
+ sl-CarrierToReleaseList-r18 SEQUENCE (SIZE (1..maxNrofFreqSL-1-r18)) OF SL-CarrierId-r18 OPTIONAL, -- Need N
+ sl-RLC-BearerToAddModList-r18 SEQUENCE (SIZE(1..maxNrofSLRB-r16)) OF SL-RLC-BearerConfig-r18 OPTIONAL, -- Need N
+ sl-RLC-BearerToReleaseList-r18 SEQUENCE (SIZE(1..maxNrofSLRB-r16)) OF SL-RLC-BearerConfigIndex-r18 OPTIONAL, -- Need N
+ sl-LocalID-PairToAddModList-r18 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-SRAP-ConfigPC5-r18 OPTIONAL, -- Need N
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SL-CarrierConfig-r18 ::= SEQUENCE {
+ sl-CarrierId-r18 SL-CarrierId-r18,
+ sl-OffsetToCarrier-r18 INTEGER (0..2199),
+ subcarrierSpacing-r18 SubcarrierSpacing,
+ carrierBandwidth-r18 INTEGER (1..maxNrofPhysicalResourceBlocks),
+ sl-AbsoluteFrequencyPointA-r18 ARFCN-ValueNR
+}
+
+SL-CarrierId-r18 ::= INTEGER (1..maxNrofFreqSL-1-r18)
+
+SL-RLC-BearerConfig-r18 ::= CHOICE {
+ srb SEQUENCE {
+ sl-SRB-IdentityWithDuplication INTEGER (1..3),
+ sL-RLC-BearerConfigIndex-r18 SL-RLC-BearerConfigIndex-r18,
+ ...
+ },
+ drb SEQUENCE {
+ slrb-PC5-ConfigIndex-r18 SLRB-PC5-ConfigIndex-r16,
+ sL-RLC-BearerConfigIndex-r18 SL-RLC-BearerConfigIndex-r18,
+ sl-RLC-ConfigPC5-r18 SL-RLC-ConfigPC5-r16 OPTIONAL, -- Need M
+ sl-MAC-LogicalChannelConfigPC5-r18 SL-LogicalChannelConfigPC5-r16 OPTIONAL, -- Need M
+ ...
+ }
+}
+
+SL-RLC-BearerConfigIndex-r18 ::= INTEGER (1..maxSL-LCID-r16)
+
SL-LatencyBoundIUC-Report-r17::= INTEGER (3..160)
SLRB-Config-r16::= SEQUENCE {
@@ -254,7 +349,10 @@ SL-RLC-ConfigPC5-r16 ::= CHOICE {
SL-LogicalChannelConfigPC5-r16 ::= SEQUENCE {
sl-LogicalChannelIdentity-r16 LogicalChannelIdentity,
- ...
+ ...,
+ [[
+ sl-LogicalChannelIdentity-v1800 INTEGER (33..38) OPTIONAL -- Need M
+ ]]
}
SL-PQFI-r16 ::= INTEGER (1..64)
@@ -275,6 +373,20 @@ SL-RLC-ChannelConfigPC5-r17::= SEQUENCE {
...
}
+SL-SFN-DFN-Offset-r18 ::= SEQUENCE {
+ sl-FrameOffset-r18 INTEGER (0..1023),
+ sl-SubframeOffset-r18 INTEGER (0..9),
+ sl-SlotOffset-r18 INTEGER (0..31)
+}
+
+SL-SRAP-ConfigPC5-r18 ::= SEQUENCE {
+ sl-PeerRemoteUE-L2Identity-r18 SL-DestinationIdentity-r16 OPTIONAL, -- Need M
+ sl-PeerRemoteUE-LocalIdentity-r18 INTEGER (0..255) OPTIONAL, -- Need M
+ sl-RemoteUE-L2Identity-r18 SL-SourceIdentity-r17 OPTIONAL, -- Need M
+ sl-RemoteUE-LocalIdentity-r18 INTEGER (0..255) OPTIONAL, -- Need M
+ ...
+}
+
-- TAG-RRCRECONFIGURATIONSIDELINK-STOP
-- TAG-RRCRECONFIGURATIONCOMPLETESIDELINK-START
@@ -378,6 +490,12 @@ UECapabilityInformationSidelink-r16-IEs ::= SEQUENCE {
UECapabilityInformationSidelink-v1700-IEs ::= SEQUENCE {
mac-ParametersSidelink-r17 MAC-ParametersSidelink-r17 OPTIONAL,
supportedBandCombinationListSidelinkNR-v1710 BandCombinationListSidelinkNR-v1710 OPTIONAL,
+ nonCriticalExtension UECapabilityInformationSidelink-v1800-IEs OPTIONAL
+}
+
+UECapabilityInformationSidelink-v1800-IEs ::= SEQUENCE {
+ sfn-DFN-OffsetSupported-r18 ENUMERATED { supported } OPTIONAL,
+ posSIB-ForwardingSupported-r18 ENUMERATED { supported } OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -386,11 +504,15 @@ MAC-ParametersSidelink-r17 ::= SEQUENCE {
...
}
-AccessStratumReleaseSidelink-r16 ::= ENUMERATED { rel16, rel17, spare6, spare5, spare4, spare3, spare2, spare1, ... }
+AccessStratumReleaseSidelink-r16 ::= ENUMERATED { rel16, rel17, rel18, spare5, spare4, spare3, spare2, spare1, ... }
PDCP-ParametersSidelink-r16 ::= SEQUENCE {
outOfOrderDeliverySidelink-r16 ENUMERATED {supported} OPTIONAL,
- ...
+ ...,
+ [[
+ pdcp-DuplicationSRB-sidelink-r18 ENUMERATED {supported} OPTIONAL,
+ pdcp-DuplicationDRB-sidelink-r18 ENUMERATED {supported} OPTIONAL
+ ]]
}
BandCombinationListSidelinkNR-r16 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationParametersSidelinkNR-r16
@@ -446,9 +568,9 @@ BandSidelinkPC5-r16 ::= SEQUENCE {
]],
[[
--32-5a-2
- rx-IUC-Scheme1-PreferredMode2Sidelink-r17 ENUMERATED {supported} OPTIONAL,
+ rx-IUC-Scheme1-PreferredMode2Sidelink-r17 ENUMERATED {supported} OPTIONAL,
--32-5a-3
- rx-IUC-Scheme1-NonPreferredMode2Sidelink-r17 ENUMERATED {supported} OPTIONAL,
+ rx-IUC-Scheme1-NonPreferredMode2Sidelink-r17 ENUMERATED {supported} OPTIONAL,
--32-5b-2
rx-IUC-Scheme2-Mode2Sidelink-r17 ENUMERATED {n5, n15, n25, n32, n35, n45, n50, n64} OPTIONAL,
--32-6-1
@@ -457,10 +579,76 @@ BandSidelinkPC5-r16 ::= SEQUENCE {
rx-IUC-Scheme1-SCI-ExplicitReq-r17 ENUMERATED {supported} OPTIONAL,
--32-7
scheme2-ConflictDeterminationRSRP-r17 ENUMERATED {supported} OPTIONAL
+ ]],
+ [[
+ -- R1 41-1-17: Open loop SL pathloss based power control for SL-PRS and associated PSCCH and SL RSRP report for dedicated resource
+ -- pool
+ sl-PathlossBasedOLPC-SL-RSRP-Report-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-k4: Transmitting UE to UE COT sharing information
+ sl-UE-COT-Sharing-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-m11: PSFCH transmissions in multiple contiguous RB sets
+ sl-PSFCH-MultiContiguousRB-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-m11a: PSFCH transmissions in multiple non-contiguous RB sets
+ sl-PSFCH-MultiNonContiguousRB-r18 ENUMERATED {supported} OPTIONAL,
+ -- R1 47-v1: NR SL communication with SL CA
+ sl-CA-Communication-r18 SEQUENCE {
+ numberOfCarriers-r18 INTEGER (2..8),
+ numberOfPSCCH-DecodeValueZ-r18 INTEGER (1..2),
+ totalBandwidth-r18 ENUMERATED {mhz20,mhz30,mhz40,mhz50,mhz60,mhz70}
+ } OPTIONAL,
+ -- R4 45-2: SL reception in intra-carrier guard band
+ sl-ReceptionIntraCarrierGuardBand-r18 ENUMERATED {supported} OPTIONAL,
+ -- R4 45-3: Power class for sidelink unlicensed
+ sl-PowerClassUnlicensed-r18 ENUMERATED {pc5, spare7, spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL
]]
}
-- TAG-UECAPABILITYINFORMATIONSIDELINK-STOP
+-- TAG-UEINFORMATIONREQUESTSIDELINK-START
+
+UEInformationRequestSidelink-r18 ::= SEQUENCE {
+ rrc-TransactionIdentifier-r18 RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ ueInformationRequestSidelink-r18 UEInformationRequestSidelink-r18-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEInformationRequestSidelink-r18-IEs ::= SEQUENCE {
+ sl-E2E-QoS-InfoListPC5-r18 SEQUENCE (SIZE (1..maxNrofSLRB-r16)) OF SL-E2E-QoS-InfoPC5-r18 OPTIONAL, -- Need N
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SL-E2E-QoS-InfoPC5-r18 ::= SEQUENCE {
+ sl-DestinationIdentityRemoteUE-r18 SL-DestinationIdentity-r16,
+ sl-E2E-SLRB-Index-r18 SLRB-PC5-ConfigIndex-r16,
+ sl-QoS-InfoList-r18 SEQUENCE (SIZE (1..maxNrofSL-QFIsPerDest-r16)) OF SL-QoS-Info-r16
+}
+
+-- TAG-UEINFORMATIONREQUESTSIDELINK-STOP
+-- TAG-UEINFORMATIONRESPONSESIDELINK-START
+
+UEInformationResponseSidelink-r18 ::= SEQUENCE {
+ rrc-TransactionIdentifier-r18 RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ ueInformationResponseSidelink-r18 UEInformationResponseSidelink-r18-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEInformationResponseSidelink-r18-IEs ::= SEQUENCE {
+ sl-SplitQoS-InfoListPC5-r18 SEQUENCE (SIZE (1.. maxNrofSL-QFIs-r16)) OF SL-SplitQoS-InfoPC5-r18 OPTIONAL, -- Need N
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SL-SplitQoS-InfoPC5-r18 ::= SEQUENCE {
+ sl-QoS-FlowIdentity-r18 SL-QoS-FlowIdentity-r16,
+ sl-SplitPacketDelayBudget-r18 INTEGER (0..1023)
+}
+
+-- TAG-UEINFORMATIONRESPONSESIDELINK-STOP
-- TAG-UUMESSAGETRANSFERSIDELINK-START
UuMessageTransferSidelink-r17 ::= SEQUENCE {
@@ -475,6 +663,11 @@ UuMessageTransferSidelink-r17-IEs ::= SEQUENCE {
sl-SIB1-Delivery-r17 OCTET STRING (CONTAINING SIB1) OPTIONAL, -- Need N
sl-SystemInformationDelivery-r17 OCTET STRING (CONTAINING SystemInformation) OPTIONAL, -- Need N
lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UuMessageTransferSidelink-v1800-IEs OPTIONAL
+}
+
+UuMessageTransferSidelink-v1800-IEs ::= SEQUENCE {
+ sl-PagingDelivery-r18 OCTET STRING (CONTAINING PagingRecord-v1700) OPTIONAL, -- Need N
nonCriticalExtension SEQUENCE {} OPTIONAL
}
diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
index c9181191..d2d03c4a 100644
--- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
+++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
@@ -1,6 +1,6 @@
# nr-rrc.cnf
# nr-rrc conformation file
-# Copyright 2018-2023 Pascal Quantin
+# Copyright 2018-2024 Pascal Quantin
#.OPT
PER
@@ -65,13 +65,18 @@ CG-ConfigInfo_PDU
CondReconfigExecCondSCG-r17_PDU
ConfigRestrictInfoDAPS-r16_PDU
ConfigRestrictInfoSCG_PDU
+EarlyUL-SyncConfig-r18_PDU
FeatureSetEntryIndex_PDU
FreqBandList_PDU
HandoverCommand_PDU
HandoverPreparationInformation_PDU
LocationMeasurementInfo_PDU
+LTM-CSI-ResourceConfigToAddModList-r18_PDU
+LTM-CSI-ResourceConfigToReleaseList-r18_PDU
+LTM-TCI-Info-r18_PDU
MBS-NeighbourCellList-r17_PDU
MBSInterestIndication-r17_PDU
+MBSMulticastConfiguration-r18_PDU
MeasConfig_PDU
MeasGapConfig_PDU
MeasGapSharingConfig_PDU
@@ -80,10 +85,13 @@ MeasResultSCG-Failure_PDU
MeasurementTimingConfiguration_PDU
MIB_PDU
MRB-PDCP-ConfigBroadcast-r17_PDU
+MTCH-NeighbourCell-r18_PDU
+MUSIM-CandidateBandList-r18_PDU
MUSIM-GapConfig-r17_PDU
NeedForGapsInfoNR-r16_PDU
NeedForGapNCSG-InfoEUTRA-r17_PDU
NeedForGapNCSG-InfoNR-r17_PDU
+NeedForInterruptionInfoNR-r18_PDU
NonCellDefiningSSB-r17_PDU
NZP-CSI-RS-Resource_PDU
OverheatingAssistance_PDU
@@ -96,6 +104,7 @@ PosMeasGapPreConfigToAddModList-r17_PDU
PosMeasGapPreConfigToReleaseList-r17_PDU
RA-ReportList-r16_PDU
RACH-ConfigCommon_PDU
+RACH-ConfigDedicated_PDU
RadioBearerConfig_PDU
ReferenceTime-r16_PDU
ReportConfigToAddMod_PDU
@@ -125,15 +134,25 @@ SIB18-r17_PDU
SIB19-r17_PDU
SIB20-r17_PDU
SIB21-r17_PDU
+SIB22-r18_PDU
+SIB23-r18_PDU
+SIB24-r18_PDU
+SIB25-r18_PDU
SidelinkParametersNR-r16_PDU
SidelinkUEInformationNR-r16_PDU
SL-ConfigDedicatedEUTRA-Info-r16_PDU
SL-ConfigDedicatedNR-r16_PDU
SL-PHY-MAC-RLC-Config-r16_PDU
+SL-PHY-MAC-RLC-Config-v1700_PDU
SL-RLC-ChannelToAddModList-r17_PDU
SRS-PosRRC-InactiveConfig-r17_PDU
+SRS-PosRRC-InactiveValidityAreaConfig-r18_PDU
SuccessHO-Report-r17_PDU
+SuccessPSCell-Report-r18_PDU
+TCI-StateId_PDU
+TCI-UL-StateId-r17_PDU
TDD-UL-DL-ConfigCommon_PDU
+ThresholdMBS-List-r18_PDU
UE-CapabilityRAT-ContainerList_PDU
UE-CapabilityRequestFilterCommon_PDU
UE-CapabilityRequestFilterNR_PDU
@@ -162,13 +181,18 @@ ConfigRestrictInfoSCG
DL-CCCH-Message @dl.ccch
DL-DCCH-Message @dl.dcch
DRX-Config
+EarlyUL-SyncConfig-r18
FeatureSetEntryIndex
FreqBandList
HandoverCommand
HandoverPreparationInformation
LocationMeasurementInfo
+LTM-CSI-ResourceConfigToAddModList-r18
+LTM-CSI-ResourceConfigToReleaseList-r18
+LTM-TCI-Info-r18
MBS-NeighbourCellList-r17
MBSInterestIndication-r17
+MBSMulticastConfiguration-r18
MCCH-Message-r17 @mcch
MeasConfig
MeasGapConfig
@@ -178,10 +202,14 @@ MeasResultSCG-Failure
MeasurementTimingConfiguration
MIB
MRB-PDCP-ConfigBroadcast-r17
+MTCH-NeighbourCell-r18
+MulticastMCCH-Message-r18 @multicast_mcch
+MUSIM-CandidateBandList-r18
MUSIM-GapConfig-r17
NeedForGapsInfoNR-r16
NeedForGapNCSG-InfoEUTRA-r17
NeedForGapNCSG-InfoNR-r17
+NeedForInterruptionInfoNR-r18
NonCellDefiningSSB-r17
NZP-CSI-RS-Resource
OverheatingAssistance
@@ -195,6 +223,7 @@ PosMeasGapPreConfigToAddModList-r17
PosMeasGapPreConfigToReleaseList-r17
RA-ReportList-r16
RACH-ConfigCommon
+RACH-ConfigDedicated
RadioBearerConfig
ReferenceTime-r16
ReportConfigToAddMod
@@ -225,18 +254,29 @@ SIB15-r17 @sib15
SIB16-r17 @sib16
SIB17-r17 @sib17
SIB18-r17 @sib18
-SIB19-r17 @sib21
-SIB20-r17 @sib22
-SIB21-r17 @sib23
+SIB19-r17 @sib19
+SIB20-r17 @sib20
+SIB21-r17 @sib21
+SIB22-r18 @sib22
+SIB23-r18 @sib23
+SIB24-r18 @sib24
+SIB25-r18 @sib25
+SIB17bis-r18 @sib17bis
SL-ConfigDedicatedEUTRA-Info-r16
SL-ConfigDedicatedNR-r16
SL-MeasResultListRelay-r17
SL-MeasResultRelay-r17
SL-PHY-MAC-RLC-Config-r16
+SL-PHY-MAC-RLC-Config-v1700
SL-RLC-ChannelToAddModList-r17
SRS-PosRRC-InactiveConfig-r17
+SRS-PosRRC-InactiveValidityAreaConfig-r18
SuccessHO-Report-r17
+SuccessPSCell-Report-r18
+TCI-StateId
+TCI-UL-StateId-r17
TDD-UL-DL-ConfigCommon
+ThresholdMBS-List-r18
UE-CapabilityRAT-ContainerList
UE-CapabilityRequestFilterCommon
UE-CapabilityRequestFilterNR
@@ -262,17 +302,24 @@ CG-CandidateList
CG-CandidateList-r17-IEs
SIB12-IEs-r16
SIB17-IEs-r17
+SIB17bis-IEs-r18
+SIB23-IEs-r18
SL-BWP-ConfigCommon-r16
SL-BWP-DiscPoolConfigCommon-r17
SL-BWP-PoolConfigCommon-r16
+SL-BWP-PRS-PoolConfigCommon-r18
SL-ConfigCommonNR-r16
SL-DiscConfigCommon-r17
+SL-DiscConfigCommon-v1800
SL-EUTRA-AnchorCarrierFreqList-r16
SL-FreqConfigCommon-r16
SL-MeasConfigCommon-r16
SL-NR-AnchorCarrierFreqList-r16
+SL-PosBWP-ConfigCommon-r18
+SL-PosConfigCommonNR-r18
SL-ServingCellInfo-r17
TRS-ResourceSet-r17
+TRS-ResourceSet-r18
UE-TimersAndConstantsRemoteUE-r17
#.FIELD_RENAME
@@ -789,6 +836,21 @@ RAT-Type TYPE_PREFIX
#.FN_HDR SIB21-r17
col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB21 ");
+#.FN_HDR SIB22-r18
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB22 ");
+
+#.FN_HDR SIB23-r18
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB23 ");
+
+#.FN_HDR SIB24-r18
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB24 ");
+
+#.FN_HDR SIB25-r18
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB25 ");
+
+#.FN_HDR SIB17bis-r18
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17bis ");
+
#.FN_HDR SIB1
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1 ");
@@ -851,11 +913,11 @@ RAT-Type TYPE_PREFIX
if (!PINFO_FD_VISITED(actx->pinfo)) {
/* Look for UE identifier */
- mac_nr_info *p_mac_nr_info = (mac_nr_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_nr, 0);
+ uint16_t *p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
- if (p_mac_nr_info != NULL) {
+ if (p_ueid != NULL) {
/* Inform PDCP about the RRCreestablishmentRequest */
- set_pdcp_nr_rrc_reestablishment_request(p_mac_nr_info->ueid);
+ set_pdcp_nr_rrc_reestablishment_request(*p_ueid);
}
}
@@ -884,16 +946,16 @@ RAT-Type TYPE_PREFIX
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Complete");
#.FN_BODY SecurityModeFailure
- mac_nr_info *p_mac_nr_info;
+ uint16_t *p_ueid;
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Failure");
%(DEFAULT_BODY)s
/* Look for UE identifier */
- p_mac_nr_info = (mac_nr_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_nr, 0);
+ p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
- if (p_mac_nr_info != NULL) {
+ if (p_ueid != NULL) {
/* Inform PDCP that the UE failed to execute the securityModeCommand */
- set_pdcp_nr_security_algorithms_failed(p_mac_nr_info->ueid);
+ set_pdcp_nr_security_algorithms_failed(*p_ueid);
}
#.FN_HDR ULInformationTransfer
@@ -953,6 +1015,9 @@ RAT-Type TYPE_PREFIX
#.FN_HDR MeasurementReportAppLayer-r17
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Measurement Report App Layer");
+#.FN_HDR IndirectPathFailureInformation-r18
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Indirect Path Failure Information");
+
#.FN_BODY MRDC-SecondaryCellGroupConfig/mrdc-SecondaryCellGroup/eutra-SCG VAL_PTR = &eutra_scg_tvb
tvbuff_t *eutra_scg_tvb = NULL;
%(DEFAULT_BODY)s
@@ -1030,10 +1095,10 @@ RAT-Type TYPE_PREFIX
}
#.FN_BODY MobilityFromNRCommand-IEs/targetRAT-Type VAL_PTR = &target_rat_type
- guint32 target_rat_type;
+ uint32_t target_rat_type;
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
%(DEFAULT_BODY)s
- nr_priv->target_rat_type = (guint8)target_rat_type;
+ nr_priv->target_rat_type = (uint8_t)target_rat_type;
#.FN_BODY MobilityFromNRCommand-IEs/targetRAT-MessageContainer VAL_PTR = &target_rat_msg_cont_tvb
tvbuff_t *target_rat_msg_cont_tvb = NULL;
@@ -1093,7 +1158,7 @@ RAT-Type TYPE_PREFIX
}
#.TYPE_ATTR
-RejectWaitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RejectWaitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_RENAME
MeasTriggerQuantityUTRA-FDD-r16/utra-FDD-RSCP-r16 MeasTriggerQuantityUTRA_FDD_RSCP_r16
@@ -1111,7 +1176,7 @@ MeasTriggerQuantityUTRA-FDD-r16/utra-FDD-EcN0-r16 DISPLAY=BASE_CUSTOM STRINGS=CF
SIB1/cellSelectionInfo/q-RxLevMinOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
-SIB1/cellSelectionInfo/q-QualMinOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+SIB1/cellSelectionInfo/q-QualMinOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.FN_BODY SL-TxResourceReq-r16/sl-CapabilityInformationSidelink-r16 VAL_PTR = &sl_cap_info_sidelink_tvb
tvbuff_t *sl_cap_info_sidelink_tvb = NULL;
@@ -1132,7 +1197,7 @@ SIB1/cellSelectionInfo/q-QualMinOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS
}
#.TYPE_ATTR
-LogMeasInfo-r16/relativeTimeStamp-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+LogMeasInfo-r16/relativeTimeStamp-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
RLF-Report-r16/nr-RLF-Report-r16/timeConnFailure-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_timeConnFailure_r16_fmt)
@@ -1156,16 +1221,31 @@ RLF-Report-r16/nr-RLF-Report-r16/timeConnFailure-r16 DISPLAY=BASE_CUSTOM STRINGS
}
#.TYPE_ATTR
-TimeSinceFailure-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeSinceFailure-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-TimeUntilReconnection-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeUntilReconnection-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
TimeSinceCHO-Reconfig-r17 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_TimeSinceCHO_Reconfig_r17_fmt)
#.TYPE_ATTR
-UPInterruptionTimeAtHO-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+TimeSinceCPAC-Reconfig-r18 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_TimeSinceCHO_Reconfig_r17_fmt)
+
+#.TYPE_ATTR
+TimeConnSourceDAPS-Failure-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
+
+#.TYPE_ATTR
+UPInterruptionTimeAtHO-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
+
+#.TYPE_ATTR
+ElapsedTimeT316-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
+
+#.TYPE_ATTR
+ElapsedTimeSCG-Failure-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
+
+#.TYPE_ATTR
+TimeSinceSHR-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY ULInformationTransferIRAT-r16-IEs/ul-DCCH-MessageEUTRA-r16 VAL_PTR = &ul_dcch_msg_eutra_tvb
tvbuff_t *ul_dcch_msg_eutra_tvb = NULL;
@@ -1183,7 +1263,7 @@ IntraFreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(
IntraFreqNeighCellInfo/q-RxLevMinOffsetCellSUL DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
-IntraFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+IntraFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
InterFreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
@@ -1192,22 +1272,22 @@ InterFreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(
InterFreqNeighCellInfo/q-RxLevMinOffsetCellSUL DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
-InterFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+InterFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
CarrierFreqEUTRA/q-RxLevMin DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
-CarrierFreqEUTRA/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+CarrierFreqEUTRA/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-CarrierFreqEUTRA/p-MaxEUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+CarrierFreqEUTRA/p-MaxEUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
EUTRA-FreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
-EUTRA-FreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+EUTRA-FreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
SIB6/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_messageIdentifier_vals_ext
@@ -1278,15 +1358,15 @@ SIB7/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&
#.FN_BODY SIB7/warningMessageSegmentType VAL_PTR=&segment_type
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
- guint32 segment_type;
+ uint32_t segment_type;
%(DEFAULT_BODY)s
- nr_priv->warning_message_segment_type = (guint8)segment_type;
+ nr_priv->warning_message_segment_type = (uint8_t)segment_type;
#.FN_BODY SIB7/warningMessageSegmentNumber VAL_PTR=&segment_number
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
- guint32 segment_number;
+ uint32_t segment_number;
%(DEFAULT_BODY)s
- nr_priv->warning_message_segment_number = (guint8)segment_number;
+ nr_priv->warning_message_segment_number = (uint8_t)segment_number;
#.FN_BODY SIB7/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb
tvbuff_t *data_coding_scheme_tvb = NULL;
@@ -1296,10 +1376,10 @@ SIB7/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&
if (data_coding_scheme_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
- guint32 dataCodingScheme;
+ uint32_t dataCodingScheme;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme);
dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0);
- wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier),
+ wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)nr_priv->message_identifier),
GUINT_TO_POINTER(dataCodingScheme));
}
@@ -1312,16 +1392,16 @@ SIB7/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
tvbuff_t *frag_tvb;
- gpointer p_dcs;
+ void *p_dcs;
fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib7_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo,
nr_priv->message_identifier, NULL,
nr_priv->warning_message_segment_number,
tvb_reported_length(warning_msg_seg_tvb),
- nr_priv->warning_message_segment_type ? FALSE : TRUE);
+ nr_priv->warning_message_segment_type ? false : true);
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment);
frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB7 warning message",
frag_data, &nr_rrc_sib7_frag_items, NULL, subtree);
- p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier));
+ p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)nr_priv->message_identifier));
if (frag_tvb && p_dcs) {
dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs));
}
@@ -1358,15 +1438,15 @@ SIB8/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&
#.FN_BODY SIB8/warningMessageSegmentType VAL_PTR=&segment_type
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
- guint32 segment_type;
+ uint32_t segment_type;
%(DEFAULT_BODY)s
- nr_priv->warning_message_segment_type = (guint8)segment_type;
+ nr_priv->warning_message_segment_type = (uint8_t)segment_type;
#.FN_BODY SIB8/warningMessageSegmentNumber VAL_PTR=&segment_number
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
- guint32 segment_number;
+ uint32_t segment_number;
%(DEFAULT_BODY)s
- nr_priv->warning_message_segment_number = (guint8)segment_number;
+ nr_priv->warning_message_segment_number = (uint8_t)segment_number;
#.FN_BODY SIB8/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb
tvbuff_t *data_coding_scheme_tvb = NULL;
@@ -1376,10 +1456,10 @@ SIB8/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&
if (data_coding_scheme_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
- guint32 dataCodingScheme;
+ uint32_t dataCodingScheme;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme);
dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0);
- wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier),
+ wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)nr_priv->message_identifier),
GUINT_TO_POINTER(dataCodingScheme));
}
@@ -1392,26 +1472,26 @@ SIB8/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
tvbuff_t *frag_tvb;
- gpointer p_dcs;
+ void *p_dcs;
fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib8_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo,
nr_priv->message_identifier, NULL,
nr_priv->warning_message_segment_number,
tvb_reported_length(warning_msg_seg_tvb),
- nr_priv->warning_message_segment_type ? FALSE : TRUE);
+ nr_priv->warning_message_segment_type ? false : true);
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment);
frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB8 warning message",
frag_data, &nr_rrc_sib8_frag_items, NULL, subtree);
- p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier));
+ p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)nr_priv->message_identifier));
if (frag_tvb && p_dcs) {
dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs));
}
}
#.FN_BODY SIB9/timeInfo/timeInfoUTC VAL_PTR=&timeInfo
- guint64 timeInfo;
+ uint64_t timeInfo;
proto_tree *subtree;
nstime_t ts;
- guint32 old_offset = offset;
+ uint32_t old_offset = offset;
%(DEFAULT_BODY)s
#.FN_FTR SIB9/timeInfo/timeInfoUTC
@@ -1430,12 +1510,12 @@ SIB9/timeInfo/dayLightSavingTime TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(nr_
#.FN_FTR SIB9/timeInfo/dayLightSavingTime
if (daylight_saving_time_tvb) {
- guint bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2);
+ unsigned bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, daylight_saving_time_tvb, 0, 1, bitvalue);
}
#.TYPE_ATTR
-SIB9/timeInfo/leapSeconds DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+SIB9/timeInfo/leapSeconds DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
SIB9/timeInfo/localTimeOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_localTimeOffset_fmt)
@@ -1492,16 +1572,16 @@ RSSI-Range-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSSI_Range_r16_fmt)
}
#.TYPE_ATTR
-ConfiguredGrantConfig/configuredGrantTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_periodicities
+ConfiguredGrantConfig/configuredGrantTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_periodicities)
#.TYPE_ATTR
-ConnEstFailureControl/connEstFailOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+ConnEstFailureControl/connEstFailOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
DRX-Config/drx-SlotOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_drx_SlotOffset_fmt)
#.TYPE_ATTR
-FrequencyInfoDL-SIB/offsetToPointA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_prbs
+FrequencyInfoDL-SIB/offsetToPointA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_prbs)
#.TYPE_ATTR
Hysteresis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_Hysteresis_fmt)
@@ -1528,10 +1608,10 @@ RSRQ-RangeEUTRA-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_RangeEUTRA_r
}
#.TYPE_ATTR
-ChannelAccessConfig-r16/maxEnergyDetectionThreshold-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+ChannelAccessConfig-r16/maxEnergyDetectionThreshold-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-ChannelAccessConfig-r16/energyDetectionThresholdOffset-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+ChannelAccessConfig-r16/energyDetectionThresholdOffset-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
MeasResultUTRA-FDD-r16/measResult-r16/utra-FDD-RSCP-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_utra_FDD_RSCP_r16_fmt)
@@ -1540,61 +1620,61 @@ MeasResultUTRA-FDD-r16/measResult-r16/utra-FDD-RSCP-r16 DISPLAY=BASE_CUSTOM STRI
MeasResultUTRA-FDD-r16/measResult-r16/utra-FDD-EcN0-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_utra_FDD_EcN0_r16_fmt)
#.TYPE_ATTR
-MeasResultForRSSI-r16/channelOccupancy-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+MeasResultForRSSI-r16/channelOccupancy-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
UL-PDCP-DelayValueResult-r16/averageDelay-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_averageDelay_r16_fmt)
#.TYPE_ATTR
-NZP-CSI-RS-Resource/powerControlOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+NZP-CSI-RS-Resource/powerControlOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-PUCCH-ResourceSet/maxPayloadMinus1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_bits
+PUCCH-ResourceSet/maxPayloadMinus1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_bits)
#.TYPE_ATTR
-PUCCH-ConfigCommon/p0-nominal DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+PUCCH-ConfigCommon/p0-nominal DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-PUCCH-PowerControl/deltaF-PUCCH-f0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+PUCCH-PowerControl/deltaF-PUCCH-f0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-PUCCH-PowerControl/deltaF-PUCCH-f1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+PUCCH-PowerControl/deltaF-PUCCH-f1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-PUCCH-PowerControl/deltaF-PUCCH-f2 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+PUCCH-PowerControl/deltaF-PUCCH-f2 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-PUCCH-PowerControl/deltaF-PUCCH-f3 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+PUCCH-PowerControl/deltaF-PUCCH-f3 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-PUCCH-PowerControl/deltaF-PUCCH-f4 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+PUCCH-PowerControl/deltaF-PUCCH-f4 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-P0-PUCCH/p0-PUCCH-Value DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+P0-PUCCH/p0-PUCCH-Value DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
PUSCH-ConfigCommon/msg3-DeltaPreamble DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_msg3_DeltaPreamble_fmt)
#.TYPE_ATTR
-PUSCH-ConfigCommon/p0-NominalWithGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+PUSCH-ConfigCommon/p0-NominalWithGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-PUSCH-PowerControl/p0-NominalWithoutGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+PUSCH-PowerControl/p0-NominalWithoutGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-P0-PUSCH-AlphaSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+P0-PUSCH-AlphaSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-Q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+Q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
Q-RxLevMin DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_Q_RxLevMin_fmt)
#.TYPE_ATTR
-RACH-ConfigGeneric/preambleReceivedTargetPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+RACH-ConfigGeneric/preambleReceivedTargetPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
RSRP-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRP_RangeEUTRA_fmt)
@@ -1606,7 +1686,7 @@ RSRQ-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_RangeEUTRA_fmt)
SINR-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SINR_RangeEUTRA_fmt)
#.TYPE_ATTR
-MsgA-PUSCH-Config-r16/msgA-DeltaPreamble-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+MsgA-PUSCH-Config-r16/msgA-DeltaPreamble-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
MeasTriggerQuantityOffset/rsrp DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_MeasTriggerQuantityOffset_fmt)
@@ -1621,7 +1701,7 @@ MeasTriggerQuantityOffset/sinr DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_MeasTr
ReselectionThreshold DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_ReselectionThreshold_fmt)
#.TYPE_ATTR
-ReselectionThresholdQ DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+ReselectionThresholdQ DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
RSRP-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRP_Range_fmt)
@@ -1630,28 +1710,28 @@ RSRP-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRP_Range_fmt)
RSRQ-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_Range_fmt)
#.TYPE_ATTR
-SearchSpace/duration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_slots
+SearchSpace/duration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_slots)
#.TYPE_ATTR
-ServingCellConfigCommon/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+ServingCellConfigCommon/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-ServingCellConfigCommonSIB/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+ServingCellConfigCommonSIB/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
SINR-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SINR_Range_fmt)
#.TYPE_ATTR
-SRS-ResourceSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+SRS-ResourceSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-SRS-PosResourceSet-r16/p0-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+SRS-PosResourceSet-r16/p0-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
SRS-RSRP-Range-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SRS_RSRP_r16_fmt)
#.TYPE_ATTR
-T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY BandParametersSidelinkEUTRA-NR-r16/eutra/bandParametersSidelinkEUTRA1-r16 VAL_PTR = &band_params_sl_tvb
tvbuff_t *band_params_sl_tvb = NULL;
@@ -1705,10 +1785,10 @@ T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
%(DEFAULT_BODY)s
#.FN_BODY RAT-Type VAL_PTR = &rat_type
- guint32 rat_type;
+ uint32_t rat_type;
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
%(DEFAULT_BODY)s
- nr_priv->rat_type = (guint8)rat_type;
+ nr_priv->rat_type = (uint8_t)rat_type;
#.FN_BODY UE-CapabilityRAT-Container/ue-CapabilityRAT-Container VAL_PTR = &ue_cap_tvb
tvbuff_t *ue_cap_tvb = NULL;
@@ -1772,17 +1852,17 @@ T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
%(DEFAULT_BODY)s
#.FN_FTR AbsoluteTimeInfo-r16
if (abs_time_info_tvb) {
- const gchar *str, *hf_str;
+ const char *str, *hf_str;
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_absTimeInfo);
- str = tvb_bcd_dig_to_str(actx->pinfo->pool, abs_time_info_tvb, 0, 6, NULL, FALSE);
+ str = tvb_bcd_dig_to_str(actx->pinfo->pool, abs_time_info_tvb, 0, 6, NULL, false);
hf_str = wmem_strdup_printf(actx->pinfo->pool, "%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_nr_rrc_absolute_time, abs_time_info_tvb, 0, 6, hf_str);
}
#.TYPE_ATTR
-EUTRA-NS-PmaxValue/additionalPmax DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+EUTRA-NS-PmaxValue/additionalPmax DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
WLAN-Identifiers-r16/ssid-r16 TYPE=FT_STRING DISPLAY=BASE_NONE
@@ -1800,10 +1880,10 @@ WLAN-Identifiers-r16/bssid-r16 TYPE=FT_ETHER
WLAN-Identifiers-r16/hessid-r16 TYPE=FT_ETHER
#.TYPE_ATTR
-VisitedCellInfo-r16/timeSpent-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+VisitedCellInfo-r16/timeSpent-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item
nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_UNKNOWN;
@@ -1940,6 +2020,42 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib6-6-v1700
nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_6_6;
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib2-17a-v1770
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_2_17a;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib2-18a-v1770
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_2_18a;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib2-20a-v1770
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_2_20a;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib1-11-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_1_11;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib1-12-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_1_12;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib2-26-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_2_26;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib2-27-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_2_27;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib6-7-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_6_7;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib7-1-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_7_1;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib7-2-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_7_2;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib7-3-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_7_3;
+
+#.FN_HDR PosSystemInformation-r16-IEs/posSIB-TypeAndInfo-r16/_item/posSib7-4-v1800
+ nr_rrc_get_private_data(actx)->pos_sib_type = LPP_POS_SIB_TYPE_7_4;
+
#.FN_BODY SIBpos-r16/assistanceDataSIB-Element-r16 VAL_PTR = &assist_data_sib_elem_tvb
tvbuff_t *assist_data_sib_elem_tvb = NULL;
%(DEFAULT_BODY)s
@@ -1951,44 +2067,77 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
}
#.FN_BODY RLC-BearerConfig
- struct mac_nr_info *p_mac_nr_info;
+ uint16_t *p_ueid;
/* Get the struct and clear it out */
nr_drb_mac_rlc_mapping_t *drb_mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
memset(drb_mapping, 0, sizeof(nr_drb_mac_rlc_mapping_t));
- drb_mapping->active = TRUE;
+ drb_mapping->active = true;
%(DEFAULT_BODY)s
/* Need UE identifier */
- p_mac_nr_info = (mac_nr_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_nr, 0);
- if (p_mac_nr_info && drb_mapping->drbid) {
- drb_mapping->ueid = p_mac_nr_info->ueid;
- /* Tell MAC about this mapping */
- set_mac_nr_bearer_mapping(drb_mapping);
+ p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
+ if (p_ueid != NULL && drb_mapping->rbid) {
+ drb_mapping->ueid = *p_ueid;
+ if (drb_mapping->is_drb) {
+ /* Tell MAC about this mapping */
+ set_mac_nr_bearer_mapping(drb_mapping);
+ }
+ else if (drb_mapping->lcid_present && drb_mapping->lcid==3) {
+ /* Tell MAC that LCID 3 is for SRB-3 */
+ set_mac_nr_srb3_in_use(drb_mapping->ueid);
+ }
+ else if (drb_mapping->lcid_present && drb_mapping->lcid==4) {
+ /* Tell MAC that LCID 4 is for SRB-4 */
+ set_mac_nr_srb4_in_use(drb_mapping->ueid);
+ }
}
- drb_mapping->active = FALSE;
+ drb_mapping->active = false;
#.FN_BODY DRB-Identity VAL_PTR=&value
- guint32 value;
+ uint32_t value;
+%(DEFAULT_BODY)s
+ if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (uint8_t)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = true;
+ }
+ else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (uint8_t)value;
+ }
+
+#.FN_BODY SRB-Identity VAL_PTR=&value
+ uint32_t value;
%(DEFAULT_BODY)s
if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
- nr_rrc_get_private_data(actx)->drb_rlc_mapping.drbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (uint8_t)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = false;
}
else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
- nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (uint8_t)value;
+ }
+
+#.FN_BODY SRB-Identity-v1700 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (uint8_t)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = false;
+ }
+ else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (uint8_t)value;
}
#.FN_BODY RLC-Config VAL_PTR=&value
- guint32 value;
+ uint32_t value;
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
%(DEFAULT_BODY)s
mapping->rlcMode = (value==0) ? RLC_AM_MODE : RLC_UM_MODE;
- mapping->rlcMode_present = TRUE;
+ mapping->rlcMode_present = true;
#.FN_BODY LogicalChannelIdentity VAL_PTR=&value
- guint32 value;
+ uint32_t value;
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
%(DEFAULT_BODY)s
- mapping->lcid = (guint8)value;
- mapping->lcid_present = TRUE;
+ mapping->lcid = (uint8_t)value;
+ mapping->lcid_present = true;
#.FN_BODY UL-UM-RLC
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
@@ -2012,28 +2161,28 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
#.FN_BODY SN-FieldLengthUM VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
if (mapping->tempDirection == DIRECTION_UPLINK) {
- mapping->rlcUlSnLength_present = TRUE;
+ mapping->rlcUlSnLength_present = true;
mapping->rlcUlSnLength = (value==0) ? 6 : 12;
}
else {
- mapping->rlcDlSnLength_present = TRUE;
+ mapping->rlcDlSnLength_present = true;
mapping->rlcDlSnLength = (value==0) ? 6 : 12;
}
#.FN_BODY SN-FieldLengthAM VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
if (mapping->tempDirection == DIRECTION_UPLINK) {
- mapping->rlcUlSnLength_present = TRUE;
+ mapping->rlcUlSnLength_present = true;
mapping->rlcUlSnLength = (value==0) ? 12 : 18;
}
else {
- mapping->rlcDlSnLength_present = TRUE;
+ mapping->rlcDlSnLength_present = true;
mapping->rlcDlSnLength = (value==0) ? 12 : 18;
}
@@ -2041,27 +2190,27 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
#.FN_BODY DRB-ToAddMod
nr_drb_rlc_pdcp_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_pdcp_mapping;
memset(mapping, 0, sizeof(*mapping));
- mapping->active = TRUE;
+ mapping->active = true;
%(DEFAULT_BODY)s
- /* Need UE identifier. Use mac-nr. */
- mac_nr_info *p_mac_nr_info = (mac_nr_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_nr, 0);
- if (p_mac_nr_info) {
+ /* Need UE identifier. */
+ uint16_t *p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
+ if (p_ueid != NULL) {
/* Configure PDCP SN length(s) for this DRB */
if (mapping->pdcpUlSnLength_present || mapping->pdcpDlSnLength_present) {
- mapping->ueid = p_mac_nr_info->ueid;
+ mapping->ueid = *p_ueid;
set_rlc_nr_drb_pdcp_mapping(actx->pinfo, mapping);
}
}
- mapping->active = FALSE;
+ mapping->active = false;
#.FN_BODY SDAP-Config/sdap-HeaderDL VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
nr_drb_rlc_pdcp_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_pdcp_mapping;
mapping->pdcpDlSdap = !value;
#.FN_BODY SDAP-Config/sdap-HeaderUL VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
nr_drb_rlc_pdcp_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_pdcp_mapping;
mapping->pdcpUlSdap = !value;
@@ -2069,24 +2218,24 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
#.FN_BODY PDCP-Config/drb/integrityProtection
%(DEFAULT_BODY)s
nr_drb_rlc_pdcp_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_pdcp_mapping;
- mapping->pdcpIntegrityProtection = TRUE;
+ mapping->pdcpIntegrityProtection = true;
#.FN_HDR PDCP-Config/eag_1/cipheringDisabled
nr_drb_rlc_pdcp_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_pdcp_mapping;
- mapping->pdcpCipheringDisabled = TRUE;
+ mapping->pdcpCipheringDisabled = true;
#.FN_BODY PDCP-Config/drb/pdcp-SN-SizeUL VAL_PTR=&value
- guint32 value;
+ uint32_t value;
nr_drb_rlc_pdcp_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_pdcp_mapping;
%(DEFAULT_BODY)s
- mapping->pdcpUlSnLength_present = TRUE;
+ mapping->pdcpUlSnLength_present = true;
mapping->pdcpUlSnLength = (value) ? 18 : 12;
#.FN_BODY PDCP-Config/drb/pdcp-SN-SizeDL VAL_PTR=&value
- guint32 value;
+ uint32_t value;
nr_drb_rlc_pdcp_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_pdcp_mapping;
%(DEFAULT_BODY)s
- mapping->pdcpDlSnLength_present = TRUE;
+ mapping->pdcpDlSnLength_present = true;
mapping->pdcpDlSnLength = (value) ? 18 : 12;
@@ -2183,8 +2332,8 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
dissect_lte_rrc_MeasResultSCG_FailureMRDC_r15_PDU(meas_result_scg_fail_mrdc_tvb, actx->pinfo, subtree, NULL);
}
-#.FN_BODY SecurityAlgorithmConfig
- mac_nr_info *p_mac_nr_info;
+#.FN_BODY SecurityConfigSMC/securityAlgorithmConfig
+ uint16_t *p_ueid;
pdcp_nr_security_info_t *p_security_algorithms;
%(DEFAULT_BODY)s
p_security_algorithms = &(nr_rrc_get_private_data(actx)->pdcp_security);
@@ -2194,21 +2343,21 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
p_security_algorithms->previous_ciphering = nea0;
/* Look for UE identifier */
- p_mac_nr_info = (mac_nr_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_nr, 0);
- if (p_mac_nr_info != NULL) {
+ p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
+ if (p_ueid != NULL) {
/* Configure algorithms */
- set_pdcp_nr_security_algorithms(p_mac_nr_info->ueid, p_security_algorithms);
+ set_pdcp_nr_security_algorithms(*p_ueid, p_security_algorithms);
}
#.FN_BODY CipheringAlgorithm VAL_PTR=&value
- guint32 value;
+ uint32_t value;
pdcp_nr_security_info_t *p_security_algorithms;
%(DEFAULT_BODY)s
p_security_algorithms = &(nr_rrc_get_private_data(actx)->pdcp_security);
p_security_algorithms->ciphering = (enum nr_security_ciphering_algorithm_e)value;
#.FN_BODY IntegrityProtAlgorithm VAL_PTR=&value
- guint32 value;
+ uint32_t value;
pdcp_nr_security_info_t *p_security_algorithms;
%(DEFAULT_BODY)s
p_security_algorithms = &(nr_rrc_get_private_data(actx)->pdcp_security);
@@ -2219,7 +2368,7 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
%(DEFAULT_BODY)s
if (sl_v2x_configcommon_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nr_sl_V2X_ConfigCommon_r16);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_V2X_ConfigCommon_r16);
dissect_lte_rrc_SystemInformationBlockType21_r14_PDU(sl_v2x_configcommon_tvb, actx->pinfo, subtree, NULL);
}
@@ -2228,7 +2377,7 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
%(DEFAULT_BODY)s
if (tdd_config_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nr_tdd_Config_r16);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_tdd_Config_r16);
dissect_lte_rrc_TDD_Config_PDU(tdd_config_tvb, actx->pinfo, subtree, NULL);
}
@@ -2237,7 +2386,7 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
%(DEFAULT_BODY)s
if (ellipsoid_point_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nr_coarseLocationInfo_r17);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_coarseLocationInfo_r17);
dissect_lpp_Ellipsoid_Point_PDU(ellipsoid_point_tvb, actx->pinfo, subtree, NULL);
}
@@ -2246,7 +2395,7 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
%(DEFAULT_BODY)s
if (sl_meas_result_list_relay_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nr_sl_MeasResultsCandRelay_r17);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_MeasResultsCandRelay_r17);
dissect_SL_MeasResultListRelay_r17_PDU(sl_meas_result_list_relay_tvb, actx->pinfo, subtree, NULL);
}
@@ -2255,7 +2404,7 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
%(DEFAULT_BODY)s
if (sl_meas_result_serving_relay_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nr_sl_MeasResultServingRelay_r17);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_MeasResultServingRelay_r17);
dissect_SL_MeasResultRelay_r17_PDU(sl_meas_result_serving_relay_tvb, actx->pinfo, subtree, NULL);
}
@@ -2264,22 +2413,181 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
%(DEFAULT_BODY)s
if (ellipsoid_point_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nr_coarseLocationInfo_r17);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_coarseLocationInfo_r17);
dissect_lpp_Ellipsoid_Point_PDU(ellipsoid_point_tvb, actx->pinfo, subtree, NULL);
}
#.TYPE_ATTR
-TimeBetweenEvent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+TimeBetweenEvent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.FN_BODY ReferenceLocation-r17 VAL_PTR = &ellipsoid_point_tvb
tvbuff_t *ellipsoid_point_tvb = NULL;
%(DEFAULT_BODY)s
if (ellipsoid_point_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nr_ReferenceLocation_r17);
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_ReferenceLocation_r17);
dissect_lpp_Ellipsoid_Point_PDU(ellipsoid_point_tvb, actx->pinfo, subtree, NULL);
}
+#.FN_BODY WayPoint-r18/wayPointLocation-r18 VAL_PTR = &location_coordinate_tvb
+ tvbuff_t *location_coordinate_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (location_coordinate_tvb) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_wayPointLocation_r18);
+ dissect_lpp_LocationCoordinates_PDU(location_coordinate_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.TYPE_ATTR
+FlightPathUpdateDistanceThr-r18 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_FlightPathUpdateDistanceThr_r18_fmt)
+
+#.TYPE_ATTR
+flightPathUpdateTimeThr-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.TYPE_ATTR
+Altitude-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
+
+#.TYPE_ATTR
+ATG-Config-r18/heightgNB-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
+
+#.TYPE_ATTR
+HysteresisAltitude-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
+
+#.TYPE_ATTR
+LCG-DSR-Config-r18/remainingTimeThreshold-r18 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
+
+#.FN_FTR DLDedicatedMessageSegment-r16-IEs
+ if (nr_rrc_reassemble_dcch_segments) {
+ uint16_t *p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
+ uint32_t ueid, id, count;
+ fragment_head *frag_data;
+ tvbuff_t *reassembled_tvb;
+ wmem_tree_key_t key[3];
+ nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
+
+ if (p_ueid != NULL) {
+ ueid = *p_ueid;
+ } else {
+ ueid = 0;
+ }
+ key[0].length = 1;
+ key[0].key = &ueid;
+ key[1].length = 1;
+ key[1].key = &actx->pinfo->num;
+ key[2].length = 0;
+ key[2].key = NULL;
+ if (!PINFO_FD_VISITED(actx->pinfo)) {
+ void *value;
+
+ if (wmem_map_lookup_extended(nr_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER((ueid<<16)|(1<<15)), NULL, &value)) {
+ count = GPOINTER_TO_UINT(value);
+ } else {
+ count = 0;
+ }
+ if (nr_priv->dcch_segment_number == 0) {
+ /* new segmented message */
+ count++;
+ wmem_map_insert(nr_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER((ueid<<16)|(1<<15)), GUINT_TO_POINTER(count));
+ }
+ id = (ueid<<16)|(1<<15)|(count&0x7fff);
+ wmem_tree_insert32_array(nr_rrc_dcch_segment_id_tree, key, GUINT_TO_POINTER(id));
+ } else {
+ id = GPOINTER_TO_UINT(wmem_tree_lookup32_array(nr_rrc_dcch_segment_id_tree, key));
+ }
+ if (nr_priv->dcch_segment != NULL) {
+ frag_data = fragment_add_seq_check(&nr_rrc_dcch_segment_reassembly_table, nr_priv->dcch_segment, 0, actx->pinfo,
+ id, NULL, nr_priv->dcch_segment_number,
+ tvb_reported_length(nr_priv->dcch_segment),
+ !nr_priv->dcch_segment_last);
+ reassembled_tvb = process_reassembled_data(nr_priv->dcch_segment, 0, actx->pinfo, "Reassembled DL Dedicated Message",
+ frag_data, &nr_rrc_dcch_segment_frag_items, NULL, tree);
+ if (reassembled_tvb) {
+ dissect_DL_DCCH_Message_PDU(reassembled_tvb, actx->pinfo, tree, NULL);
+ }
+ }
+ }
+
+#.FN_BODY DLDedicatedMessageSegment-r16-IEs/segmentNumber-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ nr_rrc_get_private_data(actx)->dcch_segment_number = value;
+
+#.FN_BODY DLDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentContainer-r16 VAL_PTR=&segment
+ tvbuff_t *segment;
+%(DEFAULT_BODY)s
+ nr_rrc_get_private_data(actx)->dcch_segment = segment;
+
+#.FN_BODY DLDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentType-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ nr_rrc_get_private_data(actx)->dcch_segment_last = (value > 0) ? true : false;
+
+#.FN_FTR ULDedicatedMessageSegment-r16-IEs
+ if (nr_rrc_reassemble_dcch_segments) {
+ uint16_t *p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
+ uint32_t ueid, id, count;
+ fragment_head *frag_data;
+ tvbuff_t *reassembled_tvb;
+ wmem_tree_key_t key[3];
+ nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
+
+ if (p_ueid != NULL) {
+ ueid = *p_ueid;
+ } else {
+ ueid = 0;
+ }
+ key[0].length = 1;
+ key[0].key = &ueid;
+ key[1].length = 1;
+ key[1].key = &actx->pinfo->num;
+ key[2].length = 0;
+ key[2].key = NULL;
+ if (!PINFO_FD_VISITED(actx->pinfo)) {
+ void *value;
+
+ if (wmem_map_lookup_extended(nr_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER(ueid<<16), NULL, &value)) {
+ count = GPOINTER_TO_UINT(value);
+ } else {
+ count = 0;
+ }
+ if (nr_priv->dcch_segment_number == 0) {
+ /* new segmented message */
+ count++;
+ wmem_map_insert(nr_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER(ueid<<16), GUINT_TO_POINTER(count));
+ }
+ id = (ueid<<16)|(count&0x7fff);
+ wmem_tree_insert32_array(nr_rrc_dcch_segment_id_tree, key, GUINT_TO_POINTER(id));
+ } else {
+ id = GPOINTER_TO_UINT(wmem_tree_lookup32_array(nr_rrc_dcch_segment_id_tree, key));
+ }
+ if (nr_priv->dcch_segment != NULL) {
+ frag_data = fragment_add_seq_check(&nr_rrc_dcch_segment_reassembly_table, nr_priv->dcch_segment, 0, actx->pinfo,
+ id, NULL, nr_priv->dcch_segment_number,
+ tvb_reported_length(nr_priv->dcch_segment),
+ !nr_priv->dcch_segment_last);
+ reassembled_tvb = process_reassembled_data(nr_priv->dcch_segment, 0, actx->pinfo, "Reassembled UL Dedicated Message",
+ frag_data, &nr_rrc_dcch_segment_frag_items, NULL, tree);
+ if (reassembled_tvb) {
+ dissect_nr_rrc_UL_DCCH_Message_PDU(reassembled_tvb, actx->pinfo, tree, NULL);
+ }
+ }
+ }
+
+#.FN_BODY ULDedicatedMessageSegment-r16-IEs/segmentNumber-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ nr_rrc_get_private_data(actx)->dcch_segment_number = value;
+
+#.FN_BODY ULDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentContainer-r16 VAL_PTR=&segment
+ tvbuff_t *segment;
+%(DEFAULT_BODY)s
+ nr_rrc_get_private_data(actx)->dcch_segment = segment;
+
+#.FN_BODY ULDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentType-r16 VAL_PTR=&value
+ uint32_t value;
+%(DEFAULT_BODY)s
+ nr_rrc_get_private_data(actx)->dcch_segment_last = (value > 0) ? true : false;
+
#.FN_HDR SBCCH-SL-BCH-Message
proto_item *ti;
@@ -2319,6 +2627,24 @@ TimeBetweenEvent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_millisecon
#.FN_HDR UECapabilityInformationSidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Capability Information Sidelink");
+#.FN_HDR UuMessageTransferSidelink-r17
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Uu Message Transfer Sidelink");
+
+#.FN_HDR RemoteUEInformationSidelink-r17
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Remote UE Information Sidelink");
+
+#.FN_HDR NotificationMessageSidelink-r17
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Notification Message Sidelink");
+
+#.FN_HDR UEAssistanceInformationSidelink-r17
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Assistance Information Sidelink");
+
+#.FN_HDR UEInformationRequestSidelink-r18
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Information Request Sidelink");
+
+#.FN_HDR UEInformationResponseSidelink-r18
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Information Response Sidelink");
+
#.FN_HDR MCCH-Message-r17
proto_item *ti;
@@ -2330,3 +2656,15 @@ TimeBetweenEvent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_millisecon
#.FN_HDR MBSBroadcastConfiguration-r17
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MBS Broadcast Configuration");
+
+#.FN_HDR MulticastMCCH-MessageType-r18
+ proto_item *ti;
+
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
+ col_clear(actx->pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(ti, ett_nr_rrc);
+
+#.FN_HDR MBSMulticastConfiguration-r18
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MBS Multicast Configuration");
diff --git a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
index 88f72f7a..b8612a1e 100644
--- a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
+++ b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
@@ -1,8 +1,8 @@
/* packet-nr-rrc-template.c
* NR;
* Radio Resource Control (RRC) protocol specification
- * (3GPP TS 38.331 V17.5.0 Release 17) packet dissection
- * Copyright 2018-2023, Pascal Quantin
+ * (3GPP TS 38.331 V18.2.0 Release 18) packet dissection
+ * Copyright 2018-2024, Pascal Quantin
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -23,6 +23,10 @@
#include <epan/show_exception.h>
#include <epan/proto_data.h>
#include <epan/prefs.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+
+#include <wsutil/array.h>
#include <wsutil/str_util.h>
#include <wsutil/epochs.h>
@@ -46,121 +50,141 @@
void proto_register_nr_rrc(void);
void proto_reg_handoff_nr_rrc(void);
-static dissector_handle_t nas_5gs_handle = NULL;
-static dissector_handle_t lte_rrc_conn_reconf_handle = NULL;
-static dissector_handle_t lte_rrc_conn_reconf_compl_handle = NULL;
-static dissector_handle_t lte_rrc_ul_dcch_handle = NULL;
-static dissector_handle_t lte_rrc_dl_dcch_handle = NULL;
+static dissector_handle_t nas_5gs_handle;
+static dissector_handle_t lte_rrc_conn_reconf_handle;
+static dissector_handle_t lte_rrc_conn_reconf_compl_handle;
+static dissector_handle_t lte_rrc_ul_dcch_handle;
+static dissector_handle_t lte_rrc_dl_dcch_handle;
+
+static wmem_map_t *nr_rrc_etws_cmas_dcs_hash;
-static wmem_map_t *nr_rrc_etws_cmas_dcs_hash = NULL;
+static wmem_map_t *nr_rrc_dcch_segment_ueid_count_hash;
+static wmem_tree_t *nr_rrc_dcch_segment_id_tree;
static reassembly_table nr_rrc_sib7_reassembly_table;
static reassembly_table nr_rrc_sib8_reassembly_table;
+static reassembly_table nr_rrc_dcch_segment_reassembly_table;
-static gboolean nr_rrc_nas_in_root_tree;
+static bool nr_rrc_nas_in_root_tree;
+static bool nr_rrc_reassemble_dcch_segments;
extern int proto_mac_nr;
+extern int proto_rlc_nr;
extern int proto_pdcp_nr;
/* Include constants */
#include "packet-nr-rrc-val.h"
/* Initialize the protocol and registered fields */
-static int proto_nr_rrc = -1;
+static int proto_nr_rrc;
#include "packet-nr-rrc-hf.c"
-static int hf_nr_rrc_serialNumber_gs = -1;
-static int hf_nr_rrc_serialNumber_msg_code = -1;
-static int hf_nr_rrc_serialNumber_upd_nb = -1;
-static int hf_nr_rrc_warningType_value = -1;
-static int hf_nr_rrc_warningType_emergency_user_alert = -1;
-static int hf_nr_rrc_warningType_popup = -1;
-static int hf_nr_rrc_warningMessageSegment_nb_pages = -1;
-static int hf_nr_rrc_warningMessageSegment_decoded_page = -1;
-static int hf_nr_rrc_sib7_fragments = -1;
-static int hf_nr_rrc_sib7_fragment = -1;
-static int hf_nr_rrc_sib7_fragment_overlap = -1;
-static int hf_nr_rrc_sib7_fragment_overlap_conflict = -1;
-static int hf_nr_rrc_sib7_fragment_multiple_tails = -1;
-static int hf_nr_rrc_sib7_fragment_too_long_fragment = -1;
-static int hf_nr_rrc_sib7_fragment_error = -1;
-static int hf_nr_rrc_sib7_fragment_count = -1;
-static int hf_nr_rrc_sib7_reassembled_in = -1;
-static int hf_nr_rrc_sib7_reassembled_length = -1;
-static int hf_nr_rrc_sib7_reassembled_data = -1;
-static int hf_nr_rrc_sib8_fragments = -1;
-static int hf_nr_rrc_sib8_fragment = -1;
-static int hf_nr_rrc_sib8_fragment_overlap = -1;
-static int hf_nr_rrc_sib8_fragment_overlap_conflict = -1;
-static int hf_nr_rrc_sib8_fragment_multiple_tails = -1;
-static int hf_nr_rrc_sib8_fragment_too_long_fragment = -1;
-static int hf_nr_rrc_sib8_fragment_error = -1;
-static int hf_nr_rrc_sib8_fragment_count = -1;
-static int hf_nr_rrc_sib8_reassembled_in = -1;
-static int hf_nr_rrc_sib8_reassembled_length = -1;
-static int hf_nr_rrc_sib8_reassembled_data = -1;
-static int hf_nr_rrc_utc_time = -1;
-static int hf_nr_rrc_local_time = -1;
-static int hf_nr_rrc_absolute_time = -1;
+static int hf_nr_rrc_serialNumber_gs;
+static int hf_nr_rrc_serialNumber_msg_code;
+static int hf_nr_rrc_serialNumber_upd_nb;
+static int hf_nr_rrc_warningType_value;
+static int hf_nr_rrc_warningType_emergency_user_alert;
+static int hf_nr_rrc_warningType_popup;
+static int hf_nr_rrc_warningMessageSegment_nb_pages;
+static int hf_nr_rrc_warningMessageSegment_decoded_page;
+static int hf_nr_rrc_sib7_fragments;
+static int hf_nr_rrc_sib7_fragment;
+static int hf_nr_rrc_sib7_fragment_overlap;
+static int hf_nr_rrc_sib7_fragment_overlap_conflict;
+static int hf_nr_rrc_sib7_fragment_multiple_tails;
+static int hf_nr_rrc_sib7_fragment_too_long_fragment;
+static int hf_nr_rrc_sib7_fragment_error;
+static int hf_nr_rrc_sib7_fragment_count;
+static int hf_nr_rrc_sib7_reassembled_in;
+static int hf_nr_rrc_sib7_reassembled_length;
+static int hf_nr_rrc_sib7_reassembled_data;
+static int hf_nr_rrc_sib8_fragments;
+static int hf_nr_rrc_sib8_fragment;
+static int hf_nr_rrc_sib8_fragment_overlap;
+static int hf_nr_rrc_sib8_fragment_overlap_conflict;
+static int hf_nr_rrc_sib8_fragment_multiple_tails;
+static int hf_nr_rrc_sib8_fragment_too_long_fragment;
+static int hf_nr_rrc_sib8_fragment_error;
+static int hf_nr_rrc_sib8_fragment_count;
+static int hf_nr_rrc_sib8_reassembled_in;
+static int hf_nr_rrc_sib8_reassembled_length;
+static int hf_nr_rrc_sib8_reassembled_data;
+static int hf_nr_rrc_dcch_segment_fragments;
+static int hf_nr_rrc_dcch_segment_fragment;
+static int hf_nr_rrc_dcch_segment_fragment_overlap;
+static int hf_nr_rrc_dcch_segment_fragment_overlap_conflict;
+static int hf_nr_rrc_dcch_segment_fragment_multiple_tails;
+static int hf_nr_rrc_dcch_segment_fragment_too_long_fragment;
+static int hf_nr_rrc_dcch_segment_fragment_error;
+static int hf_nr_rrc_dcch_segment_fragment_count;
+static int hf_nr_rrc_dcch_segment_reassembled_in;
+static int hf_nr_rrc_dcch_segment_reassembled_length;
+static int hf_nr_rrc_dcch_segment_reassembled_data;
+static int hf_nr_rrc_utc_time;
+static int hf_nr_rrc_local_time;
+static int hf_nr_rrc_absolute_time;
/* Initialize the subtree pointers */
-static gint ett_nr_rrc = -1;
+static int ett_nr_rrc;
#include "packet-nr-rrc-ett.c"
-static gint ett_nr_rrc_DedicatedNAS_Message = -1;
-static gint ett_nr_rrc_targetRAT_MessageContainer = -1;
-static gint ett_nr_rrc_nas_Container = -1;
-static gint ett_nr_rrc_serialNumber = -1;
-static gint ett_nr_rrc_warningType = -1;
-static gint ett_nr_rrc_dataCodingScheme = -1;
-static gint ett_nr_rrc_sib7_fragment = -1;
-static gint ett_nr_rrc_sib7_fragments = -1;
-static gint ett_nr_rrc_sib8_fragment = -1;
-static gint ett_nr_rrc_sib8_fragments = -1;
-static gint ett_nr_rrc_warningMessageSegment = -1;
-static gint ett_nr_rrc_timeInfo = -1;
-static gint ett_nr_rrc_capabilityRequestFilter = -1;
-static gint ett_nr_rrc_sourceSCG_EUTRA_Config = -1;
-static gint ett_nr_rrc_scg_CellGroupConfigEUTRA = -1;
-static gint ett_nr_rrc_candidateCellInfoListSN_EUTRA = -1;
-static gint ett_nr_rrc_candidateCellInfoListMN_EUTRA = -1;
-static gint ett_nr_rrc_sourceConfigSCG_EUTRA = -1;
-static gint ett_nr_rrc_eutra_SCG = -1;
-static gint ett_nr_rrc_nr_SCG_Response = -1;
-static gint ett_nr_rrc_eutra_SCG_Response = -1;
-static gint ett_nr_rrc_measResultSCG_FailureMRDC = -1;
-static gint ett_nr_rrc_ul_DCCH_MessageNR = -1;
-static gint ett_nr_rrc_ul_DCCH_MessageEUTRA = -1;
-static gint ett_rr_rrc_nas_SecurityParamFromNR = -1;
-static gint ett_nr_rrc_sidelinkUEInformationNR = -1;
-static gint ett_nr_rrc_sidelinkUEInformationEUTRA = -1;
-static gint ett_nr_rrc_ueAssistanceInformationEUTRA = -1;
-static gint ett_nr_rrc_dl_DCCH_MessageNR = -1;
-static gint ett_nr_rrc_dl_DCCH_MessageEUTRA = -1;
-static gint ett_nr_rrc_sl_ConfigDedicatedEUTRA = -1;
-static gint ett_nr_rrc_sl_CapabilityInformationSidelink = -1;
-static gint ett_nr_rrc_measResult_RLF_Report_EUTRA = -1;
-static gint ett_nr_rrc_measResult_RLF_Report_EUTRA_v1690 = -1;
-static gint ett_nr_rrc_locationTimestamp_r16 = -1;
-static gint ett_nr_rrc_locationCoordinate_r16 = -1;
-static gint ett_nr_rrc_locationError_r16 = -1;
-static gint ett_nr_rrc_locationSource_r16 = -1;
-static gint ett_nr_rrc_velocityEstimate_r16 = -1;
-static gint ett_nr_rrc_sensor_MeasurementInformation_r16 = -1;
-static gint ett_nr_rrc_sensor_MotionInformation_r16 = -1;
-static gint ett_nr_rrc_bandParametersSidelinkEUTRA1_r16 = -1;
-static gint ett_nr_rrc_bandParametersSidelinkEUTRA2_r16 = -1;
-static gint ett_nr_rrc_sl_ParametersEUTRA1_r16 = -1;
-static gint ett_nr_rrc_sl_ParametersEUTRA2_r16 = -1;
-static gint ett_nr_rrc_sl_ParametersEUTRA3_r16 = -1;
-static gint ett_nr_rrc_absTimeInfo = -1;
-static gint ett_nr_rrc_assistanceDataSIB_Element_r16 = -1;
-static gint ett_nr_sl_V2X_ConfigCommon_r16 = -1;
-static gint ett_nr_tdd_Config_r16 = -1;
-static gint ett_nr_coarseLocationInfo_r17 = -1;
-static gint ett_nr_sl_MeasResultsCandRelay_r17 = -1;
-static gint ett_nr_sl_MeasResultServingRelay_r17 = -1;
-static gint ett_nr_ReferenceLocation_r17 = -1;
-
-static expert_field ei_nr_rrc_number_pages_le15 = EI_INIT;
+static int ett_nr_rrc_DedicatedNAS_Message;
+static int ett_nr_rrc_targetRAT_MessageContainer;
+static int ett_nr_rrc_nas_Container;
+static int ett_nr_rrc_serialNumber;
+static int ett_nr_rrc_warningType;
+static int ett_nr_rrc_dataCodingScheme;
+static int ett_nr_rrc_sib7_fragment;
+static int ett_nr_rrc_sib7_fragments;
+static int ett_nr_rrc_sib8_fragment;
+static int ett_nr_rrc_sib8_fragments;
+static int ett_nr_rrc_dcch_segment_fragment;
+static int ett_nr_rrc_dcch_segment_fragments;
+static int ett_nr_rrc_warningMessageSegment;
+static int ett_nr_rrc_timeInfo;
+static int ett_nr_rrc_capabilityRequestFilter;
+static int ett_nr_rrc_sourceSCG_EUTRA_Config;
+static int ett_nr_rrc_scg_CellGroupConfigEUTRA;
+static int ett_nr_rrc_candidateCellInfoListSN_EUTRA;
+static int ett_nr_rrc_candidateCellInfoListMN_EUTRA;
+static int ett_nr_rrc_sourceConfigSCG_EUTRA;
+static int ett_nr_rrc_eutra_SCG;
+static int ett_nr_rrc_nr_SCG_Response;
+static int ett_nr_rrc_eutra_SCG_Response;
+static int ett_nr_rrc_measResultSCG_FailureMRDC;
+static int ett_nr_rrc_ul_DCCH_MessageNR;
+static int ett_nr_rrc_ul_DCCH_MessageEUTRA;
+static int ett_rr_rrc_nas_SecurityParamFromNR;
+static int ett_nr_rrc_sidelinkUEInformationNR;
+static int ett_nr_rrc_sidelinkUEInformationEUTRA;
+static int ett_nr_rrc_ueAssistanceInformationEUTRA;
+static int ett_nr_rrc_dl_DCCH_MessageNR;
+static int ett_nr_rrc_dl_DCCH_MessageEUTRA;
+static int ett_nr_rrc_sl_ConfigDedicatedEUTRA;
+static int ett_nr_rrc_sl_CapabilityInformationSidelink;
+static int ett_nr_rrc_measResult_RLF_Report_EUTRA;
+static int ett_nr_rrc_measResult_RLF_Report_EUTRA_v1690;
+static int ett_nr_rrc_locationTimestamp_r16;
+static int ett_nr_rrc_locationCoordinate_r16;
+static int ett_nr_rrc_locationError_r16;
+static int ett_nr_rrc_locationSource_r16;
+static int ett_nr_rrc_velocityEstimate_r16;
+static int ett_nr_rrc_sensor_MeasurementInformation_r16;
+static int ett_nr_rrc_sensor_MotionInformation_r16;
+static int ett_nr_rrc_bandParametersSidelinkEUTRA1_r16;
+static int ett_nr_rrc_bandParametersSidelinkEUTRA2_r16;
+static int ett_nr_rrc_sl_ParametersEUTRA1_r16;
+static int ett_nr_rrc_sl_ParametersEUTRA2_r16;
+static int ett_nr_rrc_sl_ParametersEUTRA3_r16;
+static int ett_nr_rrc_absTimeInfo;
+static int ett_nr_rrc_assistanceDataSIB_Element_r16;
+static int ett_nr_rrc_sl_V2X_ConfigCommon_r16;
+static int ett_nr_rrc_tdd_Config_r16;
+static int ett_nr_rrc_coarseLocationInfo_r17;
+static int ett_nr_rrc_sl_MeasResultsCandRelay_r17;
+static int ett_nr_rrc_sl_MeasResultServingRelay_r17;
+static int ett_nr_rrc_ReferenceLocation_r17;
+static int ett_nr_rrc_wayPointLocation_r18;
+
+static expert_field ei_nr_rrc_number_pages_le15;
/* Forward declarations */
static int dissect_UECapabilityInformationSidelink_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@@ -176,17 +200,43 @@ static const unit_name_string units_prbs = { " PRB", " PRBs" };
static const unit_name_string units_slots = { " slot", " slots" };
typedef struct {
- guint8 rat_type;
- guint8 target_rat_type;
- guint16 message_identifier;
- guint8 warning_message_segment_type;
- guint8 warning_message_segment_number;
+ uint8_t rat_type;
+ uint8_t target_rat_type;
+ uint16_t message_identifier;
+ uint8_t warning_message_segment_type;
+ uint8_t warning_message_segment_number;
nr_drb_mac_rlc_mapping_t drb_rlc_mapping;
nr_drb_rlc_pdcp_mapping_t drb_pdcp_mapping;
lpp_pos_sib_type_t pos_sib_type;
pdcp_nr_security_info_t pdcp_security;
+ uint8_t dcch_segment_number;
+ tvbuff_t *dcch_segment;
+ bool dcch_segment_last;
} nr_rrc_private_data_t;
+/* Helper function to get UE identifier from lower layers (in order MAC, RLC, PDCP) */
+static uint16_t*
+nr_rrc_get_ueid_from_lower_layers(wmem_allocator_t *scope, struct _packet_info* pinfo)
+{
+ /* Try MAC first */
+ mac_nr_info *p_mac_nr_info = (mac_nr_info *)p_get_proto_data(scope, pinfo, proto_mac_nr, 0);
+ if (p_mac_nr_info != NULL) {
+ return &p_mac_nr_info->ueid;
+ }
+ /* Not found, try RLC */
+ rlc_nr_info *p_rlc_nr_info = (rlc_nr_info *)p_get_proto_data(scope, pinfo, proto_rlc_nr, 0);
+ if (p_rlc_nr_info != NULL) {
+ return &p_rlc_nr_info->ueid;
+ }
+ /* Not found, try PDCP */
+ pdcp_nr_info *p_pdcp_nr_info = (pdcp_nr_info *)p_get_proto_data(scope, pinfo, proto_pdcp_nr, 0);
+ if (p_pdcp_nr_info != NULL) {
+ return &p_pdcp_nr_info->ueid;
+ }
+ /* Nothing found, give up */
+ return NULL;
+}
+
/* Helper function to get or create a struct that will be actx->private_data */
static nr_rrc_private_data_t*
nr_rrc_get_private_data(asn1_ctx_t *actx)
@@ -211,9 +261,9 @@ nr_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pin
}
static void
-nr_rrc_q_RxLevMin_fmt(gchar *s, guint32 v)
+nr_rrc_q_RxLevMin_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%d dB (%d)", 2*d, d);
}
@@ -236,49 +286,66 @@ static const value_string nr_rrc_warningType_vals[] = {
};
static const fragment_items nr_rrc_sib7_frag_items = {
- &ett_nr_rrc_sib7_fragment,
- &ett_nr_rrc_sib7_fragments,
- &hf_nr_rrc_sib7_fragments,
- &hf_nr_rrc_sib7_fragment,
- &hf_nr_rrc_sib7_fragment_overlap,
- &hf_nr_rrc_sib7_fragment_overlap_conflict,
- &hf_nr_rrc_sib7_fragment_multiple_tails,
- &hf_nr_rrc_sib7_fragment_too_long_fragment,
- &hf_nr_rrc_sib7_fragment_error,
- &hf_nr_rrc_sib7_fragment_count,
- &hf_nr_rrc_sib7_reassembled_in,
- &hf_nr_rrc_sib7_reassembled_length,
- &hf_nr_rrc_sib7_reassembled_data,
- "SIB7 warning message segments"
+ &ett_nr_rrc_sib7_fragment,
+ &ett_nr_rrc_sib7_fragments,
+ &hf_nr_rrc_sib7_fragments,
+ &hf_nr_rrc_sib7_fragment,
+ &hf_nr_rrc_sib7_fragment_overlap,
+ &hf_nr_rrc_sib7_fragment_overlap_conflict,
+ &hf_nr_rrc_sib7_fragment_multiple_tails,
+ &hf_nr_rrc_sib7_fragment_too_long_fragment,
+ &hf_nr_rrc_sib7_fragment_error,
+ &hf_nr_rrc_sib7_fragment_count,
+ &hf_nr_rrc_sib7_reassembled_in,
+ &hf_nr_rrc_sib7_reassembled_length,
+ &hf_nr_rrc_sib7_reassembled_data,
+ "SIB7 warning message segments"
};
static const fragment_items nr_rrc_sib8_frag_items = {
- &ett_nr_rrc_sib8_fragment,
- &ett_nr_rrc_sib8_fragments,
- &hf_nr_rrc_sib8_fragments,
- &hf_nr_rrc_sib8_fragment,
- &hf_nr_rrc_sib8_fragment_overlap,
- &hf_nr_rrc_sib8_fragment_overlap_conflict,
- &hf_nr_rrc_sib8_fragment_multiple_tails,
- &hf_nr_rrc_sib8_fragment_too_long_fragment,
- &hf_nr_rrc_sib8_fragment_error,
- &hf_nr_rrc_sib8_fragment_count,
- &hf_nr_rrc_sib8_reassembled_in,
- &hf_nr_rrc_sib8_reassembled_length,
- &hf_nr_rrc_sib8_reassembled_data,
- "SIB8 warning message segments"
+ &ett_nr_rrc_sib8_fragment,
+ &ett_nr_rrc_sib8_fragments,
+ &hf_nr_rrc_sib8_fragments,
+ &hf_nr_rrc_sib8_fragment,
+ &hf_nr_rrc_sib8_fragment_overlap,
+ &hf_nr_rrc_sib8_fragment_overlap_conflict,
+ &hf_nr_rrc_sib8_fragment_multiple_tails,
+ &hf_nr_rrc_sib8_fragment_too_long_fragment,
+ &hf_nr_rrc_sib8_fragment_error,
+ &hf_nr_rrc_sib8_fragment_count,
+ &hf_nr_rrc_sib8_reassembled_in,
+ &hf_nr_rrc_sib8_reassembled_length,
+ &hf_nr_rrc_sib8_reassembled_data,
+ "SIB8 warning message segments"
+};
+
+static const fragment_items nr_rrc_dcch_segment_frag_items = {
+ &ett_nr_rrc_dcch_segment_fragment,
+ &ett_nr_rrc_dcch_segment_fragments,
+ &hf_nr_rrc_dcch_segment_fragments,
+ &hf_nr_rrc_dcch_segment_fragment,
+ &hf_nr_rrc_dcch_segment_fragment_overlap,
+ &hf_nr_rrc_dcch_segment_fragment_overlap_conflict,
+ &hf_nr_rrc_dcch_segment_fragment_multiple_tails,
+ &hf_nr_rrc_dcch_segment_fragment_too_long_fragment,
+ &hf_nr_rrc_dcch_segment_fragment_error,
+ &hf_nr_rrc_dcch_segment_fragment_count,
+ &hf_nr_rrc_dcch_segment_reassembled_in,
+ &hf_nr_rrc_dcch_segment_reassembled_length,
+ &hf_nr_rrc_dcch_segment_reassembled_data,
+ "DCCH message segments"
};
static void
-dissect_nr_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dataCodingScheme)
+dissect_nr_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, uint8_t dataCodingScheme)
{
- guint32 offset;
- guint8 nb_of_pages, length, *str;
+ uint32_t offset;
+ uint8_t 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);
+ nb_of_pages = tvb_get_uint8(warning_msg_seg_tvb, 0);
ti = proto_tree_add_uint(tree, hf_nr_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_nr_rrc_number_pages_le15,
@@ -286,7 +353,7 @@ dissect_nr_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *
nb_of_pages = 15;
}
for (i = 0, offset = 1; i < nb_of_pages; i++) {
- length = tvb_get_guint8(warning_msg_seg_tvb, offset+82);
+ length = tvb_get_uint8(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) {
@@ -307,9 +374,9 @@ static const value_string nr_rrc_daylightSavingTime_vals[] = {
};
static void
-nr_rrc_localTimeOffset_fmt(gchar *s, guint32 v)
+nr_rrc_localTimeOffset_fmt(char *s, uint32_t v)
{
- gint32 time_offset = (gint32) v;
+ int32_t time_offset = (int32_t) v;
snprintf(s, ITEM_LABEL_LENGTH, "UTC time %c %dhr %dmin (%d)",
(time_offset < 0) ? '-':'+', abs(time_offset) >> 2,
@@ -317,35 +384,35 @@ nr_rrc_localTimeOffset_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_drx_SlotOffset_fmt(gchar *s, guint32 v)
+nr_rrc_drx_SlotOffset_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%g ms (%u)", 1./32 * v, v);
}
static void
-nr_rrc_Hysteresis_fmt(gchar *s, guint32 v)
+nr_rrc_Hysteresis_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%gdB (%u)", 0.5 * v, v);
}
static void
-nr_rrc_msg3_DeltaPreamble_fmt(gchar *s, guint32 v)
+nr_rrc_msg3_DeltaPreamble_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%ddB (%d)", 2 * d, d);
}
static void
-nr_rrc_Q_RxLevMin_fmt(gchar *s, guint32 v)
+nr_rrc_Q_RxLevMin_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%d)", 2 * d, d);
}
static void
-nr_rrc_RSRP_RangeEUTRA_fmt(gchar *s, guint32 v)
+nr_rrc_RSRP_RangeEUTRA_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)");
@@ -357,7 +424,7 @@ nr_rrc_RSRP_RangeEUTRA_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_RSRQ_RangeEUTRA_fmt(gchar *s, guint32 v)
+nr_rrc_RSRQ_RangeEUTRA_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
@@ -369,7 +436,7 @@ nr_rrc_RSRQ_RangeEUTRA_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_SINR_RangeEUTRA_fmt(gchar *s, guint32 v)
+nr_rrc_SINR_RangeEUTRA_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SINR < -23dB (0)");
@@ -381,13 +448,13 @@ nr_rrc_SINR_RangeEUTRA_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_ReselectionThreshold_fmt(gchar *s, guint32 v)
+nr_rrc_ReselectionThreshold_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%udB (%u)", 2 * v, v);
}
static void
-nr_rrc_RSRP_Range_fmt(gchar *s, guint32 v)
+nr_rrc_RSRP_Range_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRP < -156dBm (0)");
@@ -401,7 +468,7 @@ nr_rrc_RSRP_Range_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_RSRQ_Range_fmt(gchar *s, guint32 v)
+nr_rrc_RSRQ_Range_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRQ < -43dB (0)");
@@ -413,7 +480,7 @@ nr_rrc_RSRQ_Range_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_SINR_Range_fmt(gchar *s, guint32 v)
+nr_rrc_SINR_Range_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SS-SINR < -23dB (0)");
@@ -425,19 +492,19 @@ nr_rrc_SINR_Range_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_dl_1024QAM_TotalWeightedLayers_fmt(gchar *s, guint32 v)
+nr_rrc_dl_1024QAM_TotalWeightedLayers_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%u (%u)", 10+(2*v), v);
}
static void
-nr_rrc_timeConnFailure_r16_fmt(gchar *s, guint32 v)
+nr_rrc_timeConnFailure_r16_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%ums (%u)", 100*v, v);
}
static void
-nr_rrc_RSSI_Range_r16_fmt(gchar *s, guint32 v)
+nr_rrc_RSSI_Range_r16_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
@@ -449,9 +516,9 @@ nr_rrc_RSSI_Range_r16_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_RSRQ_RangeEUTRA_r16_fmt(gchar *s, guint32 v)
+nr_rrc_RSRQ_RangeEUTRA_r16_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
if (d == -34) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -36dB (-34)");
@@ -471,9 +538,9 @@ nr_rrc_RSRQ_RangeEUTRA_r16_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_utra_FDD_RSCP_r16_fmt(gchar *s, guint32 v)
+nr_rrc_utra_FDD_RSCP_r16_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
if (d == -5) {
snprintf(s, ITEM_LABEL_LENGTH, "RSCP < -120dBm (-5)");
@@ -485,7 +552,7 @@ nr_rrc_utra_FDD_RSCP_r16_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_utra_FDD_EcN0_r16_fmt(gchar *s, guint32 v)
+nr_rrc_utra_FDD_EcN0_r16_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "Ec/No < -24dB (0)");
@@ -497,27 +564,27 @@ nr_rrc_utra_FDD_EcN0_r16_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_averageDelay_r16_fmt(gchar *s, guint32 v)
+nr_rrc_averageDelay_r16_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/10, v);
}
static void
-nr_rrc_measTriggerQuantity_utra_FDD_RSCP_r16_fmt(gchar *s, guint32 v)
+nr_rrc_measTriggerQuantity_utra_FDD_RSCP_r16_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%d)", d-115, d);
}
static void
-nr_rrc_measTriggerQuantity_utra_FDD_EcN0_r16_fmt(gchar *s, guint32 v)
+nr_rrc_measTriggerQuantity_utra_FDD_EcN0_r16_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", (float)v/2-24.5, v);
}
static void
-nr_rrc_SRS_RSRP_r16_fmt(gchar *s, guint32 v)
+nr_rrc_SRS_RSRP_r16_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "SRS-RSRP < -140dBm (0)");
@@ -531,19 +598,25 @@ nr_rrc_SRS_RSRP_r16_fmt(gchar *s, guint32 v)
}
static void
-nr_rrc_MeasTriggerQuantityOffset_fmt(gchar *s, guint32 v)
+nr_rrc_MeasTriggerQuantityOffset_fmt(char *s, uint32_t v)
{
- gint32 d = (gint32)v;
+ int32_t d = (int32_t)v;
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%d)", (float)d/2, d);
}
static void
-nr_rrc_TimeSinceCHO_Reconfig_r17_fmt(gchar *s, guint32 v)
+nr_rrc_TimeSinceCHO_Reconfig_r17_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fs (%u)", (float)v/10, v);
}
+static void
+nr_rrc_FlightPathUpdateDistanceThr_r18_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%um (%u)", v*5, v);
+}
+
static int
dissect_nr_rrc_cg_configinfo_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_)
{
@@ -796,7 +869,7 @@ dissect_nr_rrc_nr_RLF_Report_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
proto_item_set_hidden(prot_ti);
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, false, pinfo);
offset = dissect_nr_rrc_T_nr_RLF_Report_r16(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_BCCH_DL_SCH_Message_PDU);
offset += 7; offset >>= 3;
return offset;
@@ -808,7 +881,7 @@ dissect_nr_rrc_subCarrierSpacingCommon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
proto_item_set_hidden(prot_ti);
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, false, pinfo);
offset = dissect_nr_rrc_T_subCarrierSpacingCommon(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_BCCH_DL_SCH_Message_PDU);
offset += 7; offset >>= 3;
return offset;
@@ -820,7 +893,7 @@ dissect_nr_rrc_rach_ConfigCommonIAB_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinf
proto_item_set_hidden(prot_ti);
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, false, pinfo);
offset = dissect_nr_rrc_T_rach_ConfigCommonIAB_r16(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_BCCH_DL_SCH_Message_PDU);
offset += 7; offset >>= 3;
return offset;
@@ -954,6 +1027,50 @@ proto_register_nr_rrc(void) {
{ "Reassembled Data", "nr-rrc.warningMessageSegment.reassembled_data",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragments,
+ { "Fragments", "nr-rrc.dedicatedMessageSegment_r16.fragments",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragment,
+ { "Fragment", "nr-rrc.dedicatedMessageSegment_r16.fragment",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragment_overlap,
+ { "Fragment Overlap", "nr-rrc.dedicatedMessageSegment_r16.fragment_overlap",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragment_overlap_conflict,
+ { "Fragment Overlap Conflict", "nr-rrc.dedicatedMessageSegment_r16.fragment_overlap_conflict",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragment_multiple_tails,
+ { "Fragment Multiple Tails", "nr-rrc.dedicatedMessageSegment_r16.fragment_multiple_tails",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragment_too_long_fragment,
+ { "Too Long Fragment", "nr-rrc.dedicatedMessageSegment_r16.fragment_too_long_fragment",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragment_error,
+ { "Fragment Error", "nr-rrc.dedicatedMessageSegment_r16.fragment_error",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_fragment_count,
+ { "Fragment Count", "nr-rrc.dedicatedMessageSegment_r16.fragment_count",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_reassembled_in,
+ { "Reassembled In", "nr-rrc.dedicatedMessageSegment_r16.reassembled_in",
+ FT_FRAMENUM, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_reassembled_length,
+ { "Reassembled Length", "nr-rrc.dedicatedMessageSegment_r16.reassembled_length",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_dcch_segment_reassembled_data,
+ { "Reassembled Data", "nr-rrc.dedicatedMessageSegment_r16.reassembled_data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_utc_time,
{ "UTC time", "nr-rrc.utc_time",
FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0x0,
@@ -968,7 +1085,7 @@ proto_register_nr_rrc(void) {
NULL, HFILL }},
};
- static gint *ett[] = {
+ static int *ett[] = {
&ett_nr_rrc,
#include "packet-nr-rrc-ettarr.c"
&ett_nr_rrc_DedicatedNAS_Message,
@@ -981,6 +1098,8 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_sib7_fragments,
&ett_nr_rrc_sib8_fragment,
&ett_nr_rrc_sib8_fragments,
+ &ett_nr_rrc_dcch_segment_fragment,
+ &ett_nr_rrc_dcch_segment_fragments,
&ett_nr_rrc_warningMessageSegment,
&ett_nr_rrc_timeInfo,
&ett_nr_rrc_capabilityRequestFilter,
@@ -1019,12 +1138,13 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_sl_ParametersEUTRA3_r16,
&ett_nr_rrc_absTimeInfo,
&ett_nr_rrc_assistanceDataSIB_Element_r16,
- &ett_nr_sl_V2X_ConfigCommon_r16,
- &ett_nr_tdd_Config_r16,
- &ett_nr_coarseLocationInfo_r17,
- &ett_nr_sl_MeasResultsCandRelay_r17,
- &ett_nr_sl_MeasResultServingRelay_r17,
- &ett_nr_ReferenceLocation_r17
+ &ett_nr_rrc_sl_V2X_ConfigCommon_r16,
+ &ett_nr_rrc_tdd_Config_r16,
+ &ett_nr_rrc_coarseLocationInfo_r17,
+ &ett_nr_rrc_sl_MeasResultsCandRelay_r17,
+ &ett_nr_rrc_sl_MeasResultServingRelay_r17,
+ &ett_nr_rrc_ReferenceLocation_r17,
+ &ett_nr_rrc_wayPointLocation_r18
};
static ei_register_info ei[] = {
@@ -1066,11 +1186,16 @@ proto_register_nr_rrc(void) {
nr_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(),
g_direct_hash, g_direct_equal);
+ nr_rrc_dcch_segment_ueid_count_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(),
+ g_direct_hash, g_direct_equal);
+ nr_rrc_dcch_segment_id_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
reassembly_table_register(&nr_rrc_sib7_reassembly_table,
&addresses_reassembly_table_functions);
reassembly_table_register(&nr_rrc_sib8_reassembly_table,
&addresses_reassembly_table_functions);
+ reassembly_table_register(&nr_rrc_dcch_segment_reassembly_table,
+ &addresses_reassembly_table_functions);
/* Register configuration preferences */
nr_rrc_module = prefs_register_protocol(proto_nr_rrc, NULL);
@@ -1078,6 +1203,10 @@ proto_register_nr_rrc(void) {
"Show NAS PDU in root packet details",
"Whether the NAS PDU should be shown in the root packet details tree",
&nr_rrc_nas_in_root_tree);
+ prefs_register_bool_preference(nr_rrc_module, "reassemble_dcch_segments",
+ "Try to reassemble DCCH segmented messages",
+ "Whether the NR RRC dissector should attempt to reassemble DCCH segmented messages",
+ &nr_rrc_reassemble_dcch_segments);
}
void
diff --git a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.h b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.h
index adb1fbc4..0241aa16 100644
--- a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.h
+++ b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.h
@@ -1,5 +1,5 @@
/* packet-nr-rrc-template.h
- * Copyright 2018-2023, Pascal Quantin
+ * Copyright 2018-2024, Pascal Quantin
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
diff --git a/epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn b/epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn
index 1bd32594..6380fac9 100644
--- a/epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.455 V17.4.0 (2023-03)
+-- 3GPP TS 38.455 V18.2.0 (2024-06)
-- 9.3.6 Common definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/nrppa/NRPPA-Constants.asn b/epan/dissectors/asn1/nrppa/NRPPA-Constants.asn
index 16541392..7fa4959a 100644
--- a/epan/dissectors/asn1/nrppa/NRPPA-Constants.asn
+++ b/epan/dissectors/asn1/nrppa/NRPPA-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.455 V17.4.0 (2023-03)
+-- 3GPP TS 38.455 V18.2.0 (2024-06)
-- 9.3.7 Constant definitions
-- **************************************************************
--
@@ -48,6 +48,8 @@ id-positioningDeactivation ProcedureCode ::= 18
id-pRSConfigurationExchange ProcedureCode ::= 19
id-measurementPreconfiguration ProcedureCode ::= 20
id-measurementActivation ProcedureCode ::= 21
+id-sRSInformationReservationNotification ProcedureCode ::= 22
+
-- **************************************************************
--
@@ -106,6 +108,16 @@ maxNumResourcesPerAngle INTEGER ::= 24
maxnoAzimuthAngles INTEGER ::= 3600
maxnoElevationAngles INTEGER ::= 1801
maxnoPRSTRPs INTEGER ::= 256
+maxnoVACell INTEGER ::= 32
+maxnoaggregatedPosSRS-Resources INTEGER ::= 3
+maxnoaggregatedPosSRS-ResourceSets INTEGER ::= 48
+maxnoAggPosPRSResourceSets INTEGER ::= 3
+maxnoofTimeWindowSRS INTEGER ::= 16
+maxnoofTimeWindowMeas INTEGER ::= 16
+maxnoPreconfiguredSRS INTEGER ::= 16
+maxnoofHopsMinusOne INTEGER ::= 5
+maxnoAggCombinations INTEGER ::= 2
+
@@ -181,7 +193,7 @@ id-MeasurementPeriodicityExtended ProtocolIE-ID ::= 64
id-PRS-Resource-ID ProtocolIE-ID ::= 65
id-PRSTRPList ProtocolIE-ID ::= 66
id-PRSTransmissionTRPList ProtocolIE-ID ::= 67
-id-OnDemandPRS ProtocolIE-ID ::= 68
+id-OnDemandPRS ProtocolIE-ID ::= 68
id-AoA-SearchWindow ProtocolIE-ID ::= 69
id-TRP-MeasurementUpdateList ProtocolIE-ID ::= 70
id-ZoA ProtocolIE-ID ::= 71
@@ -199,7 +211,7 @@ id-NumberOfTRPRxTEG ProtocolIE-ID ::= 82
id-NumberOfTRPRxTxTEG ProtocolIE-ID ::= 83
id-TRPTxTEGAssociation ProtocolIE-ID ::= 84
id-TRPTEGInformation ProtocolIE-ID ::= 85
-id-TRP-Rx-TEGInformation ProtocolIE-ID ::= 86
+id-TRP-Rx-TEGInformation ProtocolIE-ID ::= 86
id-TRP-PRS-Information-List ProtocolIE-ID ::= 87
id-PRS-Measurements-Info-List ProtocolIE-ID ::= 88
id-PRSConfigRequestType ProtocolIE-ID ::= 89
@@ -220,6 +232,60 @@ id-procedure-code-103-not-to-be-used ProtocolIE-ID ::= 103
id-UETxTimingErrorMargin ProtocolIE-ID ::= 104
id-MeasurementPeriodicityNR-AoA ProtocolIE-ID ::= 105
id-SRSTransmissionStatus ProtocolIE-ID ::= 106
+id-nrofSymbolsExtended ProtocolIE-ID ::= 107
+id-repetitionFactorExtended ProtocolIE-ID ::= 108
+id-StartRBHopping ProtocolIE-ID ::= 109
+id-StartRBIndex ProtocolIE-ID ::= 110
+id-transmissionCombn8 ProtocolIE-ID ::= 111
+id-ExtendedResourceSymbolOffset ProtocolIE-ID ::= 112
+id-NewNRCGI ProtocolIE-ID ::= 113
+id-Mobile-TRP-LocationInformation ProtocolIE-ID ::= 114
+id-Mobile-IAB-MT-UE-ID ProtocolIE-ID ::= 115
+id-MobileAccessPointLocation ProtocolIE-ID ::= 116
+id-CommonTAParameters ProtocolIE-ID ::= 117
+id-UE-Rx-Tx-Time-Diff ProtocolIE-ID ::= 118
+id-SCS-480 ProtocolIE-ID ::= 119
+id-SCS-960 ProtocolIE-ID ::= 120
+id-Bandwidth-Aggregation-Request-Indication ProtocolIE-ID ::= 121
+id-PosSRSResourceSet-Aggregation-List ProtocolIE-ID ::= 122
+id-TimingReportingGranularityFactorExtended ProtocolIE-ID ::= 123
+id-TimeWindowInformation-SRS-List ProtocolIE-ID ::= 124
+id-TimeWindowInformation-Measurement-List ProtocolIE-ID ::= 125
+id-UL-RSCPMeas ProtocolIE-ID ::= 126
+id-SymbolIndex ProtocolIE-ID ::= 127
+id-PosValidityAreaCellList ProtocolIE-ID ::= 128
+id-SRSReservationType ProtocolIE-ID ::= 129
+id-PRSBWAggregationRequestIndication ProtocolIE-ID ::= 130
+id-AggregatedPosSRSResourceID-List ProtocolIE-ID ::= 131
+id-AggregatedPRSResourceSetList ProtocolIE-ID ::= 132
+id-TRPPhaseQuality ProtocolIE-ID ::= 133
+id-NewCellIdentity ProtocolIE-ID ::= 134
+id-ValidityAreaSpecificSRSInformation ProtocolIE-ID ::= 135
+id-RequestedSRSPreconfigurationCharacteristics-List ProtocolIE-ID ::= 136
+id-SRSPreconfiguration-List ProtocolIE-ID ::= 137
+id-SRSInformation ProtocolIE-ID ::= 138
+id-TxHoppingConfiguration ProtocolIE-ID ::= 139
+id-MeasuredFrequencyHops ProtocolIE-ID ::= 140
+id-ReportingGranularitykminus1 ProtocolIE-ID ::= 141
+id-ReportingGranularitykminus2 ProtocolIE-ID ::= 142
+id-ReportingGranularitykminus3 ProtocolIE-ID ::= 143
+id-ReportingGranularitykminus4 ProtocolIE-ID ::= 144
+id-ReportingGranularitykminus5 ProtocolIE-ID ::= 145
+id-ReportingGranularitykminus6 ProtocolIE-ID ::= 146
+id-ReportingGranularitykminus1AdditionalPath ProtocolIE-ID ::= 147
+id-ReportingGranularitykminus2AdditionalPath ProtocolIE-ID ::= 148
+id-ReportingGranularitykminus3AdditionalPath ProtocolIE-ID ::= 149
+id-ReportingGranularitykminus4AdditionalPath ProtocolIE-ID ::= 150
+id-ReportingGranularitykminus5AdditionalPath ProtocolIE-ID ::= 151
+id-ReportingGranularitykminus6AdditionalPath ProtocolIE-ID ::= 152
+id-MeasuredResultsAssociatedInfoList ProtocolIE-ID ::= 153
+id-PointA ProtocolIE-ID ::= 154
+id-NR-PCI ProtocolIE-ID ::= 155
+id-SCS-SpecificCarrier ProtocolIE-ID ::= 156
+id-MeasBasedOnAggregatedResources ProtocolIE-ID ::= 157
+
+
+
diff --git a/epan/dissectors/asn1/nrppa/NRPPA-Containers.asn b/epan/dissectors/asn1/nrppa/NRPPA-Containers.asn
index fbb24742..8f256f1e 100644
--- a/epan/dissectors/asn1/nrppa/NRPPA-Containers.asn
+++ b/epan/dissectors/asn1/nrppa/NRPPA-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.455 V17.4.0 (2023-03)
+-- 3GPP TS 38.455 V18.2.0 (2024-06)
-- 9.3.8 Container definitions
--
-- **************************************************************
diff --git a/epan/dissectors/asn1/nrppa/NRPPA-IEs.asn b/epan/dissectors/asn1/nrppa/NRPPA-IEs.asn
index dda9b4d3..a2649567 100644
--- a/epan/dissectors/asn1/nrppa/NRPPA-IEs.asn
+++ b/epan/dissectors/asn1/nrppa/NRPPA-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.455 V17.4.0 (2023-03)
+-- 3GPP TS 38.455 V18.2.0 (2024-06)
-- 9.3.5 Information Element definitions
-- **************************************************************
--
@@ -81,6 +81,15 @@ IMPORTS
maxNumResourcesPerAngle,
maxnoAzimuthAngles,
maxnoElevationAngles,
+ maxnoVACell,
+ maxnoaggregatedPosSRS-Resources,
+ maxnoaggregatedPosSRS-ResourceSets,
+ maxnoAggPosPRSResourceSets,
+ maxnoofTimeWindowSRS,
+ maxnoofTimeWindowMeas,
+ maxnoPreconfiguredSRS,
+ maxnoofHopsMinusOne,
+ maxnoAggCombinations,
id-Cell-ID,
id-TRPInformationTypeItem,
id-SrsFrequency,
@@ -106,7 +115,50 @@ IMPORTS
id-NR-TADV,
id-pathPower,
id-SRSPortIndex,
- id-UETxTimingErrorMargin
+ id-UETxTimingErrorMargin,
+ id-nrofSymbolsExtended,
+ id-repetitionFactorExtended,
+ id-StartRBHopping,
+ id-StartRBIndex,
+ id-transmissionCombn8,
+ id-ExtendedResourceSymbolOffset,
+ id-Mobile-TRP-LocationInformation,
+ id-Mobile-IAB-MT-UE-ID,
+ id-MobileAccessPointLocation,
+ id-CommonTAParameters,
+ id-UE-Rx-Tx-Time-Diff,
+ id-SCS-480,
+ id-SCS-960,
+ id-UL-RSCPMeas,
+ id-Bandwidth-Aggregation-Request-Indication,
+ id-PosSRSResourceSet-Aggregation-List,
+ id-ReportingGranularitykminus1,
+ id-ReportingGranularitykminus2,
+ id-ReportingGranularitykminus3,
+ id-ReportingGranularitykminus4,
+ id-ReportingGranularitykminus5,
+ id-ReportingGranularitykminus6,
+ id-SymbolIndex,
+ id-TimingReportingGranularityFactorExtended,
+ id-PosValidityAreaCellList,
+ id-PRSBWAggregationRequestIndication,
+ id-AggregatedPosSRSResourceID-List,
+ id-AggregatedPRSResourceSetList,
+ id-TRPPhaseQuality,
+ id-ValidityAreaSpecificSRSInformation,
+ id-TxHoppingConfiguration,
+ id-MeasuredFrequencyHops,
+ id-ReportingGranularitykminus1AdditionalPath,
+ id-ReportingGranularitykminus2AdditionalPath,
+ id-ReportingGranularitykminus3AdditionalPath,
+ id-ReportingGranularitykminus4AdditionalPath,
+ id-ReportingGranularitykminus5AdditionalPath,
+ id-ReportingGranularitykminus6AdditionalPath,
+ id-MeasuredResultsAssociatedInfoList,
+ id-PointA,
+ id-NR-PCI,
+ id-SCS-SpecificCarrier,
+ id-MeasBasedOnAggregatedResources
@@ -143,7 +195,7 @@ AbortTransmission-ExtIEs NRPPA-PROTOCOL-IES ::= {
ActiveULBWP ::= SEQUENCE {
locationAndBandwidth INTEGER (0..37949,...),
- subcarrierSpacing ENUMERATED {kHz15, kHz30, kHz60, kHz120,...},
+ subcarrierSpacing ENUMERATED {kHz15, kHz30, kHz60, kHz120,..., kHz480, kHz960},
cyclicPrefix ENUMERATED {normal, extended},
txDirectCurrentLocation INTEGER (0..3301,...),
shift7dot5kHz ENUMERATED {true, ...} OPTIONAL,
@@ -173,6 +225,47 @@ AdditionalPathListItem-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+AggregatedPosSRSResourceID-List ::= SEQUENCE (SIZE (2..maxnoaggregatedPosSRS-Resources)) OF AggregatedPosSRSResourceID-Item
+
+AggregatedPosSRSResourceID-Item ::= SEQUENCE {
+ sRSPosResource-ID SRSPosResourceID,
+ iE-Extensions ProtocolExtensionContainer { { AggregatedPosSRSResourceID-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AggregatedPosSRSResourceID-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-PointA CRITICALITY ignore EXTENSION PointA PRESENCE mandatory}|
+ { ID id-SCS-SpecificCarrier CRITICALITY ignore EXTENSION SCS-SpecificCarrier PRESENCE mandatory}|
+ { ID id-NR-PCI CRITICALITY ignore EXTENSION NR-PCI PRESENCE optional},
+ ...
+}
+
+
+AggregatedPRSResourceSetList ::= SEQUENCE (SIZE (1..maxnoAggCombinations)) OF AggregatedPRSResourceSet-Item
+
+AggregatedPRSResourceSet-Item ::= SEQUENCE {
+ dl-PRS-ResourceSet-List DL-PRS-ResourceSet-List,
+ iE-Extensions ProtocolExtensionContainer { { AggregatedPRSResourceSet-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AggregatedPRSResourceSet-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-PRS-ResourceSet-List ::= SEQUENCE (SIZE (1..maxnoAggPosPRSResourceSets)) OF DL-PRS-ResourceSet-Item
+
+DL-PRS-ResourceSet-Item ::= SEQUENCE {
+ dl-prs-ResourceSetIndex INTEGER (1..8),
+ iE-Extensions ProtocolExtensionContainer { { DL-PRS-ResourceSet-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-PRS-ResourceSet-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
ExtendedAdditionalPathList ::= SEQUENCE (SIZE (1.. maxNoPathExtended)) OF ExtendedAdditionalPathList-Item
@@ -320,8 +413,8 @@ AssistanceInformationMetaData-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
-- B
BandwidthSRS ::= CHOICE {
- fR1 ENUMERATED {mHz5, mHz10, mHz20, mHz40, mHz50, mHz80, mHz100, ...},
- fR2 ENUMERATED {mHz50, mHz100, mHz200, mHz400, ...},
+ fR1 ENUMERATED {mHz5, mHz10, mHz20, mHz40, mHz50, mHz80, mHz100, ... ,mHz160, mHz200},
+ fR2 ENUMERATED {mHz50, mHz100, mHz200, mHz400, ..., mHz600, mhz800, mHz1600, mHz2000 },
choice-extension ProtocolIE-Single-Container { { BandwidthSRS-ExtIEs } }
}
@@ -329,6 +422,8 @@ BandwidthSRS-ExtIEs NRPPA-PROTOCOL-IES ::= {
...
}
+Bandwidth-Aggregation-Request-Indication ::= ENUMERATED { true, ...}
+
BCCH ::= INTEGER (0..1023, ...)
Broadcast ::= ENUMERATED {
@@ -462,6 +557,17 @@ CriticalityDiagnostics-IE-List-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+CommonTAParameters ::= SEQUENCE {
+ epochTime OCTET STRING,
+ taInfo OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer {{ CommonTAParameters-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CommonTAParameters-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- D
@@ -476,7 +582,7 @@ DL-Bandwidth-EUTRA ::= ENUMERATED {
}
DL-PRS ::= SEQUENCE {
- prsid INTEGER (0..255),
+ prsid PRS-ID,
dl-PRSResourceSetID PRS-Resource-Set-ID,
dl-PRSResourceID PRS-Resource-ID OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {DL-PRS-ExtIEs} } OPTIONAL,
@@ -568,7 +674,9 @@ E-CID-MeasurementResult ::= SEQUENCE {
}
E-CID-MeasurementResult-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
- { ID id-GeographicalCoordinates CRITICALITY ignore EXTENSION GeographicalCoordinates PRESENCE optional},
+ { ID id-GeographicalCoordinates CRITICALITY ignore EXTENSION GeographicalCoordinates PRESENCE optional}|
+ { ID id-MobileAccessPointLocation CRITICALITY ignore EXTENSION Mobile-TRP-LocationInformation PRESENCE optional }|
+ { ID id-MeasuredResultsAssociatedInfoList CRITICALITY ignore EXTENSION MeasuredResultsAssociatedInfoList PRESENCE optional},
...
}
@@ -625,6 +733,12 @@ GNBRxTxTimeDiffMeas ::= CHOICE {
}
GNBRxTxTimeDiffMeas-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ {ID id-ReportingGranularitykminus1 CRITICALITY ignore TYPE ReportingGranularitykminus1 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus2 CRITICALITY ignore TYPE ReportingGranularitykminus2 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus3 CRITICALITY ignore TYPE ReportingGranularitykminus3 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus4 CRITICALITY ignore TYPE ReportingGranularitykminus4 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus5 CRITICALITY ignore TYPE ReportingGranularitykminus5 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus6 CRITICALITY ignore TYPE ReportingGranularitykminus6 PRESENCE mandatory},
...
}
@@ -698,6 +812,8 @@ LoS-NLoSInformation-ExtIEs NRPPA-PROTOCOL-IES ::= {
-- M
+MeasBasedOnAggregatedResources ::= ENUMERATED { true, ... }
+
Measurement-ID ::= INTEGER (1.. 65536, ...)
MeasurementAmount ::= ENUMERATED {ma0, ma1, ma2, ma4, ma8, ma16, ma32, ma64}
@@ -799,7 +915,8 @@ MeasurementQuantitiesValue ::= ENUMERATED {
cSI-RSRP,
cSI-RSRQ,
angleOfArrivalNR,
- timingAdvanceNR
+ timingAdvanceNR,
+ uE-Rx-Tx-Time-Diff
}
MeasurementTimeOccasion ::= ENUMERATED {o1, o4, ...}
@@ -808,6 +925,19 @@ MeasurementCharacteristicsRequestIndicator ::= BIT STRING (SIZE (16))
MeasuredResults ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF MeasuredResultsValue
+MeasuredResultsAssociatedInfoList ::= SEQUENCE (SIZE (1..maxNoMeas)) OF MeasuredResultsAssociatedInfoItem
+
+MeasuredResultsAssociatedInfoItem ::= SEQUENCE {
+ timeStamp TimeStamp OPTIONAL,
+ measurementQuality TrpMeasurementQuality OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MeasuredResultsAssociatedInfoItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasuredResultsAssociatedInfoItem-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
MeasuredResultsValue ::= CHOICE {
valueAngleOfArrival-EUTRA INTEGER (0..719),
valueTimingAdvanceType1-EUTRA INTEGER (0..7690),
@@ -823,10 +953,25 @@ MeasuredResultsValue-ExtensionIE NRPPA-PROTOCOL-IES ::= {
{ ID id-ResultCSI-RSRP CRITICALITY ignore TYPE ResultCSI-RSRP PRESENCE mandatory }|
{ ID id-ResultCSI-RSRQ CRITICALITY ignore TYPE ResultCSI-RSRQ PRESENCE mandatory }|
{ ID id-AngleOfArrivalNR CRITICALITY ignore TYPE UL-AoA PRESENCE mandatory }|
- { ID id-NR-TADV CRITICALITY ignore TYPE NR-TADV PRESENCE mandatory },
+ { ID id-NR-TADV CRITICALITY ignore TYPE NR-TADV PRESENCE mandatory }|
+ { ID id-UE-Rx-Tx-Time-Diff CRITICALITY ignore TYPE UE-Rx-Tx-Time-Diff PRESENCE optional },
+ ...
+}
+
+Mobile-TRP-LocationInformation ::= SEQUENCE {
+ location-Information OCTET STRING,
+ velocity-Information OCTET STRING OPTIONAL,
+ location-time-stamp TimeStamp OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Mobile-TRP-LocationInformation-ExtIEs} } OPTIONAL,
...
}
+Mobile-TRP-LocationInformation-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Mobile-IAB-MT-UE-ID ::= OCTET STRING
+
MultipleULAoA ::= SEQUENCE {
multipleULAoA MultipleULAoA-List,
iE-Extensions ProtocolExtensionContainer { { MultipleULAoA-ExtIEs} } OPTIONAL,
@@ -849,6 +994,7 @@ MultipleULAoA-Item-ExtIEs NRPPA-PROTOCOL-IES ::= {
...
}
+MeasuredFrequencyHops ::= ENUMERATED {singleHop, multiHop, ...}
-- N
@@ -916,6 +1062,8 @@ NR-ARFCN ::= INTEGER (0..3279165)
NRCellIdentifier ::= BIT STRING (SIZE (36))
+NrofSymbolsExtended ::= ENUMERATED {n8, n10, n12, n14, ...}
+
NR-PCI ::= INTEGER (0..1007)
NR-PRS-Beam-Information ::= SEQUENCE {
@@ -1206,8 +1354,22 @@ PosSIB-Type ::= ENUMERATED {
posSibType1-10,
posSibType6-4,
posSibType6-5,
- posSibType6-6
-}
+ posSibType6-6,
+ posSibType1-11,
+ posSibType1-12,
+ posSibType2-17a,
+ posSibType2-18a,
+ posSibType2-20a,
+ posSibType2-26,
+ posSibType2-27,
+ posSibType6-7,
+ posSibType7-1,
+ posSibType7-2,
+ posSibType7-3,
+ posSibType7-4
+}
+
+PRSBWAggregationRequestIndication ::= ENUMERATED {true, ...}
PosSRSResource-List ::= SEQUENCE (SIZE (1..maxnoSRS-PosResources)) OF PosSRSResource-Item
@@ -1227,6 +1389,7 @@ PosSRSResource-Item ::= SEQUENCE {
}
PosSRSResource-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-TxHoppingConfiguration CRITICALITY ignore EXTENSION TxHoppingConfiguration PRESENCE optional},
...
}
@@ -1247,9 +1410,26 @@ PosSRSResourceSet-Item ::= SEQUENCE {
}
PosSRSResourceSet-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-PosSRSResourceSet-Aggregation-List CRITICALITY ignore EXTENSION PosSRSResourceSet-Aggregation-List PRESENCE optional },
+ ...
+}
+
+PosSRSResourceSet-Aggregation-List ::= SEQUENCE (SIZE (1.. maxnoaggregatedPosSRS-ResourceSets)) OF PosSRSResourceSet-Aggregation-Item
+
+
+PosSRSResourceSet-Aggregation-Item ::= SEQUENCE {
+ pointA INTEGER (0..3279165),
+ pCI-NR INTEGER(0..1007) OPTIONAL,
+ possrsResourceSetID INTEGER(0..15),
+ iE-Extensions ProtocolExtensionContainer { { PosSRSResourceSet-Aggregation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PosSRSResourceSet-Aggregation-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+
PosResourceSetType ::= CHOICE {
periodic PosResourceSetTypePeriodic,
semi-persistent PosResourceSetTypeSemi-persistent,
@@ -1319,9 +1499,9 @@ PRSAngleItem-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
}
PRSInformationPos ::= SEQUENCE {
- pRS-IDPos INTEGER(0..255),
- pRS-Resource-Set-IDPos INTEGER(0..7),
- pRS-Resource-IDPos INTEGER(0..63) OPTIONAL,
+ pRS-IDPos PRS-ID,
+ pRS-Resource-Set-IDPos PRS-Resource-Set-ID,
+ pRS-Resource-IDPos PRS-Resource-ID OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { PRSInformationPos-ExtIEs} } OPTIONAL,
...
}
@@ -1339,6 +1519,7 @@ PRSConfiguration ::= SEQUENCE {
}
PRSConfiguration-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-AggregatedPRSResourceSetList CRITICALITY ignore EXTENSION AggregatedPRSResourceSetList PRESENCE optional },
...
}
@@ -1446,9 +1627,12 @@ PRSResource-Item ::= SEQUENCE {
...
}
PRSResource-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-ExtendedResourceSymbolOffset CRITICALITY ignore EXTENSION ExtendedResourceSymbolOffset PRESENCE optional},
...
}
+ExtendedResourceSymbolOffset ::= INTEGER (0..13,...)
+
PRSResource-QCLInfo ::= CHOICE {
qCLSourceSSB PRSResource-QCLSourceSSB,
qCLSourcePRS PRSResource-QCLSourcePRS,
@@ -1492,11 +1676,11 @@ PRSResourceSet-Item ::= SEQUENCE {
pointA INTEGER (0..3279165),
combSize ENUMERATED{n2, n4, n6, n12, ...},
cPType ENUMERATED{normal, extended, ...},
- resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,...},
+ resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,..., n128, n256, n512},
resourceSetSlotOffset INTEGER(0..81919,...),
resourceRepetitionFactor ENUMERATED{rf1,rf2,rf4,rf6,rf8,rf16,rf32,...},
resourceTimeGap ENUMERATED{tg1,tg2,tg4,tg8,tg16,tg32,...},
- resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...},
+ resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...,n1},
pRSMuting PRSMuting OPTIONAL,
pRSResourceTransmitPower INTEGER(-60..50),
pRSResource-List PRSResource-List,
@@ -1575,9 +1759,9 @@ PRSTRPList ::= SEQUENCE (SIZE(1.. maxnoTRPs)) OF PRSTRPItem
PRSTRPItem ::= SEQUENCE {
tRP-ID TRP-ID,
requestedDLPRSTransmissionCharacteristics RequestedDLPRSTransmissionCharacteristics OPTIONAL,
--- The IE shall be present if the PRS Configuration Request Type IE is set to “configure†--
+-- The IE shall be present if the PRS Configuration Request Type IE is set to the value “configure†--
pRSTransmissionOffInformation PRSTransmissionOffInformation OPTIONAL,
--- The IE shall be present if the PRS Configuration Request Type IE is set to “off†--
+-- The IE shall be present if the PRS Configuration Request Type IE is set to the value “off†--
iE-Extensions ProtocolExtensionContainer { { PRSTRPItem-ExtIEs} } OPTIONAL,
...
}
@@ -1601,6 +1785,21 @@ PRSTransmissionTRPItem-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+PosValidityAreaCellList ::= SEQUENCE (SIZE (1..maxnoVACell)) OF PosValidityAreaCell-Item
+
+
+PosValidityAreaCell-Item ::= SEQUENCE {
+ nR-CGI CGI-NR,
+ nR-PCI NR-PCI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PosValidityAreaCell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PosValidityAreaCell-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PointA ::= INTEGER (0..3279165)
-- Q
@@ -1664,22 +1863,44 @@ RelativePathDelay ::= CHOICE {
k0 INTEGER(0..16351),
k1 INTEGER(0..8176),
k2 INTEGER(0..4088),
- k3 INTEGER(0..2044),
+ k3 INTEGER(0..2044),
k4 INTEGER(0..1022),
k5 INTEGER(0..511),
choice-Extension ProtocolIE-Single-Container { { RelativePathDelay-ExtIEs} }
}
RelativePathDelay-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ {ID id-ReportingGranularitykminus1AdditionalPath CRITICALITY ignore TYPE ReportingGranularitykminus1AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus2AdditionalPath CRITICALITY ignore TYPE ReportingGranularitykminus2AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus3AdditionalPath CRITICALITY ignore TYPE ReportingGranularitykminus3AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus4AdditionalPath CRITICALITY ignore TYPE ReportingGranularitykminus4AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus5AdditionalPath CRITICALITY ignore TYPE ReportingGranularitykminus5AdditionalPath PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus6AdditionalPath CRITICALITY ignore TYPE ReportingGranularitykminus6AdditionalPath PRESENCE mandatory},
...
}
+RepetitionFactorExtended ::= ENUMERATED {n3, n5, n6, n7, n8, n10, n12, n14, ...}
+
ReportCharacteristics ::= ENUMERATED {
onDemand,
periodic,
...
}
+ReportingGranularitykminus1 ::= INTEGER(0..3940097)ReportingGranularitykminus2 ::= INTEGER(0..7880193)
+ReportingGranularitykminus3 ::= INTEGER(0..15760385)
+ReportingGranularitykminus4 ::= INTEGER(0..31520769)
+ReportingGranularitykminus5 ::= INTEGER(0..63041537)
+ReportingGranularitykminus6 ::= INTEGER(0..126083073)
+
+ReportingGranularitykminus1AdditionalPath ::= INTEGER(0..32701)
+ReportingGranularitykminus2AdditionalPath ::= INTEGER(0..65401)
+ReportingGranularitykminus3AdditionalPath ::= INTEGER(0..130801)
+ReportingGranularitykminus4AdditionalPath ::= INTEGER(0..261601)
+ReportingGranularitykminus5AdditionalPath ::= INTEGER(0..523201)
+ReportingGranularitykminus6AdditionalPath ::= INTEGER(0..1046401)
+
+
RequestedDLPRSTransmissionCharacteristics ::= SEQUENCE {
requestedDLPRSResourceSet-List RequestedDLPRSResourceSet-List,
numberofFrequencyLayers INTEGER(1..4) OPTIONAL,
@@ -1689,6 +1910,7 @@ RequestedDLPRSTransmissionCharacteristics ::= SEQUENCE {
}
RequestedDLPRSTransmissionCharacteristics-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-PRSBWAggregationRequestIndication CRITICALITY ignore EXTENSION PRSBWAggregationRequestIndication PRESENCE optional},
...
}
@@ -1697,9 +1919,9 @@ RequestedDLPRSResourceSet-List ::= SEQUENCE (SIZE (1..maxnoofPRSresourceSet)) OF
RequestedDLPRSResourceSet-Item ::= SEQUENCE {
pRSbandwidth INTEGER(1..63) OPTIONAL,
combSize ENUMERATED{n2, n4, n6, n12, ...} OPTIONAL,
- resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,...} OPTIONAL,
+ resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,..., n128, n256 ,n512} OPTIONAL,
resourceRepetitionFactor ENUMERATED{rf1,rf2,rf4,rf6,rf8,rf16,rf32,...} OPTIONAL,
- resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...} OPTIONAL,
+ resourceNumberofSymbols ENUMERATED{n2,n4,n6,n12,...,n1} OPTIONAL,
requestedDLPRSResource-List RequestedDLPRSResource-List OPTIONAL,
resourceSetStartTimeAndDuration StartTimeAndDuration OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { RequestedDLPRSResourceSet-Item-ExtIEs} } OPTIONAL,
@@ -1725,7 +1947,7 @@ RequestedDLPRSResource-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
RequestedSRSTransmissionCharacteristics ::= SEQUENCE {
numberOfTransmissions INTEGER (0..500,...) OPTIONAL,
--- The IE shall be present if the Resource Type IE is set to “periodic†--
+-- The IE shall be present if the Resource Type IE is set to the value “periodic†--
resourceType ENUMERATED {periodic, semi-persistent, aperiodic, ...},
bandwidth BandwidthSRS,
listOfSRSResourceSet SEQUENCE (SIZE (1.. maxnoSRS-ResourceSets)) OF SRSResourceSet-Item OPTIONAL,
@@ -1735,7 +1957,35 @@ RequestedSRSTransmissionCharacteristics ::= SEQUENCE {
}
RequestedSRSTransmissionCharacteristics-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
- { ID id-SrsFrequency CRITICALITY ignore EXTENSION SrsFrequency PRESENCE optional },
+ { ID id-SrsFrequency CRITICALITY ignore EXTENSION SrsFrequency PRESENCE optional }|
+ { ID id-Bandwidth-Aggregation-Request-Indication CRITICALITY ignore EXTENSION Bandwidth-Aggregation-Request-Indication PRESENCE optional }|
+ { ID id-PosValidityAreaCellList CRITICALITY ignore EXTENSION PosValidityAreaCellList PRESENCE optional }|
+ { ID id-ValidityAreaSpecificSRSInformation CRITICALITY ignore EXTENSION ValidityAreaSpecificSRSInformation PRESENCE optional },
+ ...
+}
+
+
+ResourceMapping ::= SEQUENCE {
+ startPosition INTEGER (0..13),
+ nrofSumbols ENUMERATED {n1, n2, n4, n8, n12},
+ iE-Extensions ProtocolExtensionContainer { { ResourceMapping-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ResourceMapping-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+RequestedSRSPreconfigurationCharacteristics-List ::= SEQUENCE (SIZE (1..maxnoPreconfiguredSRS)) OF RequestedSRSPreconfigurationCharacteristics-Item
+
+RequestedSRSPreconfigurationCharacteristics-Item ::= SEQUENCE {
+ requestedSRSTransmissionCharacteristics RequestedSRSTransmissionCharacteristics,
+ iE-Extensions ProtocolExtensionContainer {{ RequestedSRSPreconfigurationCharacteristics-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+RequestedSRSPreconfigurationCharacteristics-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
@@ -1855,7 +2105,7 @@ ResourceTypePos-ExtIEs NRPPA-PROTOCOL-IES ::= {
}
ResourceTypePeriodicPos ::= SEQUENCE {
-periodicity ENUMERATED{slot1, slot2, slot4, slot5, slot8, slot10, slot16, slot20, slot32, slot40, slot64, slot80, slot160, slot320, slot640, slot1280, slot2560, slot5120, slot10240, slot40960, slot81920, ..., slot128, slot256, slot512, slot20480},
+sRSPeriodicity SRSPeriodicity,
offset INTEGER(0..81919, ...),
iE-Extensions ProtocolExtensionContainer { { ResourceTypePeriodicPos-ExtIEs} } OPTIONAL,
...
@@ -1866,7 +2116,7 @@ ResourceTypePeriodicPos-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
}
ResourceTypeSemi-persistentPos ::= SEQUENCE {
-periodicity ENUMERATED{slot1, slot2, slot4, slot5, slot8, slot10, slot16, slot20, slot32, slot40, slot64, slot80, slot160, slot320, slot640, slot1280, slot2560, slot5120, slot10240, slot40960, slot81920, ..., slot128, slot256, slot512, slot20480},
+sRSPeriodicity SRSPeriodicity,
offset INTEGER(0..81919, ...),
iE-Extensions ProtocolExtensionContainer { { ResourceTypeSemi-persistentPos-ExtIEs} } OPTIONAL,
...
@@ -2121,9 +2371,13 @@ RxTxTimingErrorMargin ::= ENUMERATED {tc0dot5, tc1, tc2, tc4, tc8, tc12, tc16, t
-- S
+SCS-480 ::= INTEGER(0..319)
+
+SCS-960 ::= INTEGER(0..639)
+
SCS-SpecificCarrier ::= SEQUENCE {
offsetToCarrier INTEGER (0..2199,...),
- subcarrierSpacing ENUMERATED {kHz15, kHz30, kHz60, kHz120,...},
+ subcarrierSpacing ENUMERATED {kHz15, kHz30, kHz60, kHz120,..., kHz480, kHz960},
carrierBandwidth INTEGER (1..275,...),
iE-Extensions ProtocolExtensionContainer { { SCS-SpecificCarrier-ExtIEs } } OPTIONAL,
...
@@ -2153,6 +2407,65 @@ SFNInitialisationTime-EUTRA ::= BIT STRING (SIZE (64))
SlotNumber ::= INTEGER (0..79)
+SlotOffsetForRemainingHopsList ::= SEQUENCE (SIZE (1..maxnoofHopsMinusOne)) OF SlotOffsetForRemainingHopsItem
+
+SlotOffsetForRemainingHopsItem ::= SEQUENCE {
+ slotOffsetRemainingHops SlotOffsetRemainingHops,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetForRemainingHopsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetForRemainingHopsItem-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SlotOffsetRemainingHops ::= CHOICE {
+ aperiodic SlotOffsetRemainingHopsAperiodic,
+ semi-persistent SlotOffsetRemainingHopsSemiPersistent,
+ periodic SlotOffsetRemainingHopsPeriodic,
+ choice-extension ProtocolIE-Single-Container {{ SlotOffsetRemainingHops-ExtIEs }}
+}
+
+SlotOffsetRemainingHops-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ ...
+}
+
+SlotOffsetRemainingHopsAperiodic ::= SEQUENCE {
+ slotOffset INTEGER (1..32) OPTIONAL,
+ startPosition INTEGER (0..13) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetRemainingHopsAperiodic-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetRemainingHopsAperiodic-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SlotOffsetRemainingHopsSemiPersistent ::= SEQUENCE {
+ sRSperiodicity SRSPeriodicity,
+ offset INTEGER(0..81919, ...),
+ startPosition INTEGER (0..13) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetRemainingHopsSemiPersistent-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetRemainingHopsSemiPersistent-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SlotOffsetRemainingHopsPeriodic ::= SEQUENCE {
+ sRSperiodicity SRSPeriodicity,
+ offset INTEGER(0..81919, ...),
+ startPosition INTEGER (0..13) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SlotOffsetRemainingHopsSemiPeriodic-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SlotOffsetRemainingHopsSemiPeriodic-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
SpatialDirectionInformation ::= SEQUENCE {
nR-PRS-Beam-Information NR-PRS-Beam-Information,
iE-Extensions ProtocolExtensionContainer { { SpatialDirectionInformation-ExtIEs } } OPTIONAL,
@@ -2287,6 +2600,11 @@ SRSResource::= SEQUENCE {
}
SRSResource-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-nrofSymbolsExtended CRITICALITY ignore EXTENSION NrofSymbolsExtended PRESENCE optional}|
+ { ID id-repetitionFactorExtended CRITICALITY ignore EXTENSION RepetitionFactorExtended PRESENCE optional}|
+ { ID id-StartRBHopping CRITICALITY ignore EXTENSION StartRBHopping PRESENCE optional}|
+ { ID id-StartRBIndex CRITICALITY ignore EXTENSION StartRBIndex PRESENCE optional},
+
...
}
@@ -2299,7 +2617,7 @@ SRSResourceSet-List ::= SEQUENCE (SIZE (1..maxnoSRS-ResourceSets)) OF SRSResourc
SRSResourceID-List::= SEQUENCE (SIZE (1..maxnoSRS-ResourcePerSet)) OF SRSResourceID
SRSResourceSet::= SEQUENCE {
- sRSResourceSetID INTEGER(0..15),
+ sRSResourceSetID1 INTEGER(0..15),
sRSResourceID-List SRSResourceID-List,
resourceSetType ResourceSetType,
iE-Extensions ProtocolExtensionContainer { { SRSResourceSet-ExtIEs } } OPTIONAL,
@@ -2405,6 +2723,20 @@ SSB-Index ::= INTEGER(0..63)
SSID ::= OCTET STRING (SIZE(1..32))
+
+StartRBIndex ::= CHOICE{
+ freqScalingFactor2 INTEGER(0..1),
+ freqScalingFactor4 INTEGER(0..3),
+ choice-extension ProtocolIE-Single-Container { { StartRBIndex-ExtIEs} }
+}
+
+StartRBIndex-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ ...
+}
+
+StartRBHopping ::= ENUMERATED {enable}
+
+
StartTimeAndDuration ::= SEQUENCE {
startTime RelativeTime1900 OPTIONAL,
duration INTEGER (0..90060, ...) OPTIONAL,
@@ -2416,6 +2748,9 @@ StartTimeAndDuration-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+
+SymbolIndex ::= INTEGER (0..13)
+
SystemFrameNumber ::= INTEGER (0..1023)
SystemInformation ::= SEQUENCE (SIZE (1.. maxNrOfPosSImessage)) OF SEQUENCE {
@@ -2429,6 +2764,24 @@ SystemInformation-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+SRSReservationType::= ENUMERATED {reserve, release, ...}
+
+
+SRSPreconfiguration-List ::= SEQUENCE (SIZE (1.. maxnoPreconfiguredSRS)) OF SRSPreconfiguration-Item
+
+SRSPreconfiguration-Item ::= SEQUENCE {
+ sRSConfiguration SRSConfiguration,
+ posValidityAreaCellList PosValidityAreaCellList,
+ iE-Extensions ProtocolExtensionContainer {{ SRSPreconfiguration-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SRSPreconfiguration-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRSPeriodicity ::= ENUMERATED {slot1, slot2, slot4, slot5, slot8, slot10, slot16, slot20, slot32, slot40, slot64, slot80, slot160, slot320, slot640, slot1280, slot2560, slot5120, slot10240, slot40960, slot81920, ..., slot128, slot256, slot512, slot20480}
+
-- T
@@ -2480,7 +2833,8 @@ TimingErrorMargin ::= ENUMERATED {tc0, tc2, tc4, tc6, tc8, tc12, tc16, tc20, tc2
TF-Configuration ::= SEQUENCE {
sSB-frequency INTEGER (0..3279165),
- sSB-subcarrier-spacing ENUMERATED {kHz15, kHz30, kHz120, kHz240, ..., kHz60},
+ sSB-subcarrier-spacing ENUMERATED {kHz15, kHz30, kHz120, kHz240, ..., kHz60, kHz480, kHz960},
+ -- The value kHz60 is not supported in this version of the specification.
sSB-Transmit-power INTEGER (-60..50),
sSB-periodicity ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160, ...},
sSB-half-frame-offset INTEGER(0..1),
@@ -2505,6 +2859,7 @@ TimeStamp ::= SEQUENCE {
}
TimeStamp-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-SymbolIndex CRITICALITY ignore EXTENSION SymbolIndex PRESENCE optional },
...
}
@@ -2517,9 +2872,82 @@ TimeStampSlotIndex ::= CHOICE {
}
TimeStampSlotIndex-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ { ID id-SCS-480 CRITICALITY reject TYPE SCS-480 PRESENCE mandatory}|
+ { ID id-SCS-960 CRITICALITY reject TYPE SCS-960 PRESENCE mandatory},
+
+ ...
+}
+
+TimeWindowDurationMeasurement ::= CHOICE {
+ durationSlots ENUMERATED {n1, n2, n4, n6, n8, n12, n16, ...},
+ choice-extension ProtocolIE-Single-Container { { TimeWindowDurationMeasurement-ExtIEs} }
+}
+
+TimeWindowDurationMeasurement-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ ...
+}
+
+TimeWindowDurationSRS ::= CHOICE {
+ durationSymbols ENUMERATED {n1, n2, n4, n8, n12, ...},
+ durationSlots ENUMERATED {n1, n2, n4, n6, n8, n12, n16, ...},
+ choice-extension ProtocolIE-Single-Container { { TimeWindowDurationSRS-ExtIEs} }
+}
+
+TimeWindowDurationSRS-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ ...
+}
+
+TimeWindowPeriodicityMeasurement ::= ENUMERATED {ms160, ms320, ms640, ms1280, ms2560, ms5120, ms10240, ms20480, ms40960, ms61440, ms81920, ms368640, ms737280, ms1843200, ...}
+
+TimeWindowPeriodicitySRS ::= ENUMERATED {ms0dot125, ms0dot25, ms0dot5, ms0dot625, ms1, ms1dot25, ms2, ms2dot5, ms4, ms5, ms8, ms10, ms16, ms20, ms32, ms40, ms64, ms80, ms160, ms320, ms640, ms1280, ms2560, ms5120, ms10240, ...}
+
+TimeWindowStartSRS ::= SEQUENCE {
+ systemFrameNumber SystemFrameNumber,
+ slotNumber SlotNumber,
+ symbolIndex INTEGER (0..13),
+ iE-Extension ProtocolExtensionContainer { { TimeWindowStartSRS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeWindowStartSRS-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TimingReportingGranularityFactorExtended ::=INTEGER(-6..-1, ...)
+
+TimeWindowInformation-Measurement-List ::= SEQUENCE (SIZE (1.. maxnoofTimeWindowMeas)) OF TimeWindowInformation-Measurement-Item
+
+TimeWindowInformation-Measurement-Item ::= SEQUENCE {
+ timeWindowDurationMeasurement TimeWindowDurationMeasurement,
+ timeWindowType ENUMERATED {single, periodic, ...},
+ timeWindowPeriodicityMeasurement TimeWindowPeriodicityMeasurement OPTIONAL,
+-- This IE shall be present if the Time Window Type IE is set to the value “periodicâ€. --
+ iE-Extension ProtocolExtensionContainer { { TimeWindowInformation-Measurement-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeWindowInformation-Measurement-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TimeWindowInformation-SRS-List ::= SEQUENCE (SIZE (1.. maxnoofTimeWindowSRS)) OF TimeWindowInformation-SRS-Item
+
+TimeWindowInformation-SRS-Item ::= SEQUENCE {
+ timeWindowStartSRS TimeWindowStartSRS,
+ timeWindowDurationSRS TimeWindowDurationSRS,
+ timeWindowType ENUMERATED {single, periodic, ...},
+ timeWindowPeriodicitySRS TimeWindowPeriodicitySRS OPTIONAL,
+-- This IE shall be present if the Time Window Type IE is set to the value “periodicâ€. --
+ iE-Extension ProtocolExtensionContainer { { TimeWindowInformation-SRS-Item-ExtIEs} } OPTIONAL,
...
}
+TimeWindowInformation-SRS-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
TP-ID-EUTRA ::= INTEGER (0..4095, ...)
@@ -2538,9 +2966,21 @@ TransmissionComb ::= CHOICE {
choice-extension ProtocolIE-Single-Container { { TransmissionComb-ExtIEs} }
}
TransmissionComb-ExtIEs NRPPA-PROTOCOL-IES ::= {
+{ ID id-transmissionCombn8 CRITICALITY reject TYPE TransmissionCombn8 PRESENCE mandatory},
...
}
+TransmissionCombn8 ::= SEQUENCE {
+ combOffset-n8 INTEGER (0..7),
+ cyclicShift-n8 INTEGER (0..5),
+ iE-Extensions ProtocolExtensionContainer { { TransmissionCombn8-ExtIEs } } OPTIONAL
+}
+
+TransmissionCombn8-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
TransmissionCombPos ::= CHOICE {
n2 SEQUENCE {
combOffset-n2 INTEGER (0..1),
@@ -2635,24 +3075,26 @@ TRP-Beam-Power-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
TRPMeasurementQuantities ::= SEQUENCE (SIZE (1..maxnoPosMeas)) OF TRPMeasurementQuantitiesList-Item
TRPMeasurementQuantitiesList-Item ::= SEQUENCE {
- tRPMeasurementQuantities-Item TRPMeasurementQuantities-Item,
+ tRPMeasurementQuantities-Item TRPMeasurementType,
timingReportingGranularityFactor INTEGER (0..5) OPTIONAL,
iE-Extensions ProtocolExtensionContainer {{ TRPMeasurementQuantitiesList-Item-ExtIEs}} OPTIONAL,
...
}
TRPMeasurementQuantitiesList-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ {ID id-TimingReportingGranularityFactorExtended CRITICALITY ignore EXTENSION TimingReportingGranularityFactorExtended PRESENCE optional},
...
}
-TRPMeasurementQuantities-Item ::= ENUMERATED {
+TRPMeasurementType::= ENUMERATED {
gNB-RxTxTimeDiff,
uL-SRS-RSRP,
uL-AoA,
uL-RTOA,
...,
multiple-UL-AoA,
- uL-SRS-RSRPP
+ uL-SRS-RSRPP,
+ ul-RSCP
}
TrpMeasurementResult ::= SEQUENCE (SIZE (1.. maxnoPosMeas)) OF TrpMeasurementResultItem
@@ -2668,7 +3110,11 @@ TrpMeasurementResultItem ::= SEQUENCE {
TrpMeasurementResultItem-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
{ ID id-SRSResourcetype CRITICALITY ignore EXTENSION SRSResourcetype PRESENCE optional}|
{ ID id-ARP-ID CRITICALITY ignore EXTENSION ARP-ID PRESENCE optional}|
- { ID id-LoS-NLoSInformation CRITICALITY ignore EXTENSION LoS-NLoSInformation PRESENCE optional },
+ { ID id-LoS-NLoSInformation CRITICALITY ignore EXTENSION LoS-NLoSInformation PRESENCE optional }|
+ { ID id-Mobile-TRP-LocationInformation CRITICALITY ignore EXTENSION Mobile-TRP-LocationInformation PRESENCE optional }|
+ { ID id-MeasuredFrequencyHops CRITICALITY ignore EXTENSION MeasuredFrequencyHops PRESENCE optional }|
+ { ID id-AggregatedPosSRSResourceID-List CRITICALITY ignore EXTENSION AggregatedPosSRSResourceID-List PRESENCE optional }|
+ { ID id-MeasBasedOnAggregatedResources CRITICALITY ignore EXTENSION MeasBasedOnAggregatedResources PRESENCE optional },
...
}
@@ -2683,7 +3129,8 @@ TrpMeasuredResultsValue ::= CHOICE {
TrpMeasuredResultsValue-ExtIEs NRPPA-PROTOCOL-IES ::= {
{ ID id-ZoA CRITICALITY reject TYPE ZoA PRESENCE mandatory}|
{ ID id-MultipleULAoA CRITICALITY reject TYPE MultipleULAoA PRESENCE mandatory}|
- { ID id-UL-SRS-RSRPP CRITICALITY reject TYPE UL-SRS-RSRPP PRESENCE mandatory},
+ { ID id-UL-SRS-RSRPP CRITICALITY reject TYPE UL-SRS-RSRPP PRESENCE mandatory}|
+ { ID id-UL-RSCPMeas CRITICALITY reject TYPE UL-RSCPMeas PRESENCE mandatory},
...
}
@@ -2695,6 +3142,7 @@ TrpMeasurementQuality ::= CHOICE {
}
TrpMeasurementQuality-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ {ID id-TRPPhaseQuality CRITICALITY ignore TYPE TRPPhaseQuality PRESENCE mandatory },
...
}
@@ -2721,6 +3169,17 @@ TrpMeasurementAngleQuality-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+TRPPhaseQuality ::= SEQUENCE {
+ phaseQualityIndex INTEGER(0..179),
+ resolution ENUMERATED {deg0dot1, deg1, ...},
+ iE-extensions ProtocolExtensionContainer { { TRPPhaseQuality-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TRPPhaseQuality-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
TRP-MeasurementRequestList ::= SEQUENCE (SIZE (1..maxNoOfMeasTRPs)) OF TRP-MeasurementRequestItem
TRP-MeasurementRequestItem ::= SEQUENCE {
@@ -2787,6 +3246,8 @@ TRPInformation ::= SEQUENCE {
}
TRPInformation-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ { ID id-Mobile-IAB-MT-UE-ID CRITICALITY reject EXTENSION Mobile-IAB-MT-UE-ID PRESENCE optional},
+--This IE shall be present if the TRP type IE is set to the value "mobile trp"
...
}
@@ -2805,10 +3266,12 @@ TRPInformationTypeResponseItem ::= CHOICE {
}
TRPInformationTypeResponseItem-ExtIEs NRPPA-PROTOCOL-IES ::= {
- { ID id-TRPType CRITICALITY reject TYPE TRPType PRESENCE mandatory }|
- { ID id-OnDemandPRS CRITICALITY reject TYPE OnDemandPRS-Info PRESENCE mandatory}|
- { ID id-TRPTxTEGAssociation CRITICALITY reject TYPE TRPTxTEGAssociation PRESENCE mandatory}|
- { ID id-TRPBeamAntennaInformation CRITICALITY reject TYPE TRPBeamAntennaInformation PRESENCE mandatory },
+ { ID id-TRPType CRITICALITY reject TYPE TRPType PRESENCE mandatory }|
+ { ID id-OnDemandPRS CRITICALITY reject TYPE OnDemandPRS-Info PRESENCE mandatory}|
+ { ID id-TRPTxTEGAssociation CRITICALITY reject TYPE TRPTxTEGAssociation PRESENCE mandatory}|
+ { ID id-TRPBeamAntennaInformation CRITICALITY reject TYPE TRPBeamAntennaInformation PRESENCE mandatory }|
+ { ID id-Mobile-TRP-LocationInformation CRITICALITY ignore TYPE Mobile-TRP-LocationInformation PRESENCE mandatory }|
+ { ID id-CommonTAParameters CRITICALITY reject TYPE CommonTAParameters PRESENCE mandatory },
...
}
@@ -2835,19 +3298,22 @@ TRPInformationTypeItem ::= ENUMERATED {
trp-type,
ondemandPRSInfo,
trpTxTeg,
- beam-antenna-info
+ beam-antenna-info,
+ mobile-trp-location-info,
+ commonTA
}
TRPList ::= SEQUENCE (SIZE(1.. maxnoTRPs)) OF TRPItem
TRPItem ::= SEQUENCE {
- tRP-ID TRP-ID,
+ tRP-ID TRP-ID,
iE-Extensions ProtocolExtensionContainer { {TRPItem-ExtIEs} } OPTIONAL,
...
}
TRPItem-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
- ...
+ { ID id-PRSBWAggregationRequestIndication CRITICALITY ignore EXTENSION PRSBWAggregationRequestIndication PRESENCE optional},
+ ...
}
TRP-ID ::= INTEGER (1.. maxnoTRPs, ...)
@@ -2985,7 +3451,8 @@ TRPType ::= ENUMERATED {
tp,
rp,
trp,
- ...
+ ...,
+ mobile-trp
}
@@ -2995,6 +3462,20 @@ TypeOfError ::= ENUMERATED {
...
}
+TxHoppingConfiguration ::= SEQUENCE {
+ overlapValue ENUMERATED {rb0, rb1, rb2, rb4},
+ numberOfHops INTEGER (1..6),
+ slotOffsetForRemainingHopsList SlotOffsetForRemainingHopsList,
+ iE-extensions ProtocolExtensionContainer { { TxHoppingConfiguration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+TxHoppingConfiguration-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
-- U
UARFCN ::= INTEGER (0..16383, ...)
@@ -3012,6 +3493,8 @@ UEReportingInformation-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+UE-Rx-Tx-Time-Diff ::= INTEGER (0..61565)
+
UE-TEG-ReportingPeriodicity ::= ENUMERATED {
ms160,
ms320,
@@ -3082,6 +3565,17 @@ UL-RTOAMeasurement-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
...
}
+UL-RSCPMeas ::= SEQUENCE {
+ uLRSCP INTEGER (0..3599),
+ iE-extensions ProtocolExtensionContainer { { UL-RSCPMeas-ExtIEs } } OPTIONAL,
+ ...
+}
+
+UL-RSCPMeas-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
ULRTOAMeas::= CHOICE {
k0 INTEGER (0.. 1970049),
k1 INTEGER (0.. 985025),
@@ -3092,6 +3586,12 @@ ULRTOAMeas::= CHOICE {
choice-extension ProtocolIE-Single-Container { { ULRTOAMeas-ExtIEs } }
}
ULRTOAMeas-ExtIEs NRPPA-PROTOCOL-IES ::= {
+ {ID id-ReportingGranularitykminus1 CRITICALITY ignore TYPE ReportingGranularitykminus1 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus2 CRITICALITY ignore TYPE ReportingGranularitykminus2 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus3 CRITICALITY ignore TYPE ReportingGranularitykminus3 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus4 CRITICALITY ignore TYPE ReportingGranularitykminus4 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus5 CRITICALITY ignore TYPE ReportingGranularitykminus5 PRESENCE mandatory}|
+ {ID id-ReportingGranularitykminus6 CRITICALITY ignore TYPE ReportingGranularitykminus6 PRESENCE mandatory},
...
}
@@ -3125,6 +3625,21 @@ ValueRSRP-NR ::= INTEGER (0..127)
ValueRSRQ-NR ::= INTEGER (0..127)
+ValidityAreaSpecificSRSInformation ::= SEQUENCE {
+ transmissionCombPos TransmissionCombPos OPTIONAL,
+ resourceMapping ResourceMapping OPTIONAL,
+ freqDomainShift INTEGER (0..268) OPTIONAL,
+ c-SRS INTEGER (0..63) OPTIONAL,
+ resourceTypePos ResourceTypePos OPTIONAL,
+ sequenceIDPos INTEGER (0..65535) OPTIONAL,
+ iE-extensions ProtocolExtensionContainer { { ValidityAreaSpecificSRSInformation-ExtIEs } } OPTIONAL,
+ ...
+}
+
+ValidityAreaSpecificSRSInformation-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- W
diff --git a/epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn
index e43a7658..09ed5fcb 100644
--- a/epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn
+++ b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.455 V17.4.0 (2023-03)
+-- 3GPP TS 38.455 V18.2.0 (2024-06)
--9.3.4 PDU Definitions
--
-- **************************************************************
@@ -79,7 +79,17 @@ IMPORTS
RequestType,
UE-TEG-ReportingPeriodicity,
MeasurementPeriodicityNR-AoA,
- SRSTransmissionStatus
+ SRSTransmissionStatus,
+ CGI-NR,
+ TimeWindowInformation-SRS-List,
+ TimeWindowInformation-Measurement-List,
+ PosValidityAreaCellList,
+ SRSReservationType,
+ RequestedSRSPreconfigurationCharacteristics-List,
+ SRSPreconfiguration-List,
+ PosSRSResourceSet-Aggregation-List
+
+
FROM NRPPA-IEs
@@ -158,7 +168,18 @@ FROM NRPPA-Containers
id-RequestType,
id-UE-TEG-ReportingPeriodicity,
id-MeasurementPeriodicityNR-AoA,
- id-SRSTransmissionStatus
+ id-SRSTransmissionStatus,
+ id-NewNRCGI,
+ id-TimeWindowInformation-SRS-List,
+ id-TimeWindowInformation-Measurement-List,
+ id-PosValidityAreaCellList,
+ id-SRSReservationType,
+ id-NewCellIdentity,
+ id-RequestedSRSPreconfigurationCharacteristics-List,
+ id-SRSPreconfiguration-List,
+ id-SRSInformation,
+ id-PosSRSResourceSet-Aggregation-List
+
@@ -180,12 +201,12 @@ E-CIDMeasurementInitiationRequest-IEs NRPPA-PROTOCOL-IES ::= {
{ ID id-LMF-UE-Measurement-ID CRITICALITY reject TYPE UE-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†--
+-- The IE shall be present if the Report Characteritics IE is set to the value “periodic†--
{ ID id-MeasurementQuantities CRITICALITY reject TYPE MeasurementQuantities PRESENCE mandatory}|
{ ID id-OtherRATMeasurementQuantities CRITICALITY ignore TYPE OtherRATMeasurementQuantities PRESENCE optional}|
{ ID id-WLANMeasurementQuantities CRITICALITY ignore TYPE WLANMeasurementQuantities PRESENCE optional}|
{ ID id-MeasurementPeriodicityNR-AoA CRITICALITY reject TYPE MeasurementPeriodicityNR-AoA PRESENCE conditional},
--- The IE shall be present if the Report Characteritics IE is set to “periodic†and the MeasurementQuantities-Item IE in the MeasurementQuantities IE is set to the value "angleOfArrivalNR" --
+-- The IE shall be present if the Report Characteritics IE is set to the value “periodic†and the Measurement Quantities Value IE in the Measurement Quantities IE is set to the value "NR Angle of Arrival" --
...
}
@@ -271,7 +292,7 @@ E-CIDMeasurementReport-IEs NRPPA-PROTOCOL-IES ::= {
-- **************************************************************
--
--- E-CID MEASUREMENT TERMINATION
+-- E-CID MEASUREMENT TERMINATION COMMAND
--
-- **************************************************************
@@ -440,8 +461,10 @@ PositioningInformationRequest-IEs NRPPA-PROTOCOL-IES ::= {
{ ID id-RequestedSRSTransmissionCharacteristics CRITICALITY ignore TYPE RequestedSRSTransmissionCharacteristics PRESENCE optional }|
{ ID id-UEReportingInformation CRITICALITY ignore TYPE UEReportingInformation PRESENCE optional }|
{ ID id-UE-TEG-Info-Request CRITICALITY ignore TYPE UE-TEG-Info-Request PRESENCE optional }|
- { ID id-UE-TEG-ReportingPeriodicity CRITICALITY reject TYPE UE-TEG-ReportingPeriodicity PRESENCE conditional },
--- The IE shall be present if the UE TEG Info Request IE is set to “periodicâ€
+ { ID id-UE-TEG-ReportingPeriodicity CRITICALITY reject TYPE UE-TEG-ReportingPeriodicity PRESENCE conditional }|
+-- This IE shall be present if the UE TEG Information Request IE is set to the value "periodic".
+ { ID id-TimeWindowInformation-SRS-List CRITICALITY reject TYPE TimeWindowInformation-SRS-List PRESENCE optional }|
+ { ID id-RequestedSRSPreconfigurationCharacteristics-List CRITICALITY ignore TYPE RequestedSRSPreconfigurationCharacteristics-List PRESENCE optional },
...
}
@@ -457,10 +480,13 @@ PositioningInformationResponse ::= SEQUENCE {
}
PositioningInformationResponse-IEs NRPPA-PROTOCOL-IES ::= {
- { ID id-SRSConfiguration CRITICALITY ignore TYPE SRSConfiguration PRESENCE optional}|
+ { ID id-SRSConfiguration CRITICALITY ignore TYPE SRSConfiguration PRESENCE optional}|
{ ID id-SFNInitialisationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
- { ID id-UETxTEGAssociationList CRITICALITY ignore TYPE UETxTEGAssociationList PRESENCE optional},
+ { ID id-UETxTEGAssociationList CRITICALITY ignore TYPE UETxTEGAssociationList PRESENCE optional}|
+ { ID id-NewNRCGI CRITICALITY ignore TYPE CGI-NR PRESENCE optional}|
+ { ID id-PosValidityAreaCellList CRITICALITY ignore TYPE PosValidityAreaCellList PRESENCE optional}|
+ { ID id-SRSPreconfiguration-List CRITICALITY ignore TYPE SRSPreconfiguration-List PRESENCE optional},
...
}
@@ -496,7 +522,8 @@ PositioningInformationUpdate-IEs NRPPA-PROTOCOL-IES ::= {
{ ID id-SRSConfiguration CRITICALITY ignore TYPE SRSConfiguration PRESENCE optional}|
{ ID id-SFNInitialisationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional}|
{ ID id-UETxTEGAssociationList CRITICALITY ignore TYPE UETxTEGAssociationList PRESENCE optional}|
- { ID id-SRSTransmissionStatus CRITICALITY ignore TYPE SRSTransmissionStatus PRESENCE optional},
+ { ID id-SRSTransmissionStatus CRITICALITY ignore TYPE SRSTransmissionStatus PRESENCE optional}|
+ { ID id-NewCellIdentity CRITICALITY ignore TYPE CGI-NR PRESENCE optional},
...
}
@@ -516,7 +543,7 @@ MeasurementRequest-IEs NRPPA-PROTOCOL-IES ::= {
{ ID id-TRP-MeasurementRequestList CRITICALITY reject TYPE TRP-MeasurementRequestList 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†–
+-- The IE shall be present if the Report Characteritics IE is set to the value “periodic†–
{ ID id-TRPMeasurementQuantities CRITICALITY reject TYPE TRPMeasurementQuantities PRESENCE mandatory}|
{ ID id-SFNInitialisationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional}|
{ ID id-SRSConfiguration CRITICALITY ignore TYPE SRSConfiguration PRESENCE optional}|
@@ -528,7 +555,8 @@ MeasurementRequest-IEs NRPPA-PROTOCOL-IES ::= {
{ ID id-ResponseTime CRITICALITY ignore TYPE ResponseTime PRESENCE optional}|
{ ID id-MeasurementCharacteristicsRequestIndicator CRITICALITY ignore TYPE MeasurementCharacteristicsRequestIndicator PRESENCE optional}|
{ ID id-MeasurementTimeOccasion CRITICALITY ignore TYPE MeasurementTimeOccasion PRESENCE optional}|
- { ID id-MeasurementAmount CRITICALITY ignore TYPE MeasurementAmount PRESENCE optional},
+ { ID id-MeasurementAmount CRITICALITY ignore TYPE MeasurementAmount PRESENCE optional}|
+ { ID id-TimeWindowInformation-Measurement-List CRITICALITY ignore TYPE TimeWindowInformation-Measurement-List PRESENCE optional },
...
}
@@ -711,7 +739,8 @@ PositioningActivationRequest ::= SEQUENCE {
PositioningActivationRequestIEs NRPPA-PROTOCOL-IES ::= {
{ ID id-SRSType CRITICALITY reject TYPE SRSType PRESENCE mandatory } |
- { ID id-ActivationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional },
+ { ID id-ActivationTime CRITICALITY ignore TYPE RelativeTime1900 PRESENCE optional }|
+ { ID id-PosSRSResourceSet-Aggregation-List CRITICALITY ignore TYPE PosSRSResourceSet-Aggregation-List PRESENCE optional },
...
}
@@ -923,5 +952,23 @@ MeasurementActivation-IEs NRPPA-PROTOCOL-IES ::= {
...
}
+-- **************************************************************
+--
+-- SRS INFORMATION RESERVATION NOTIFICATION
+--
+-- **************************************************************
+
+SRSInformationReservationNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ SRSInformationReservationNotification-IEs}},
+ ...
+}
+
+SRSInformationReservationNotification-IEs NRPPA-PROTOCOL-IES ::= {
+ { ID id-SRSReservationType CRITICALITY ignore TYPE SRSReservationType PRESENCE mandatory}|
+ { ID id-SRSInformation CRITICALITY ignore TYPE RequestedSRSTransmissionCharacteristics PRESENCE optional },
+ ...
+}
+
+
END
diff --git a/epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn
index ec0ea63c..3044a718 100644
--- a/epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.455 V17.4.0 (2023-03)
+-- 3GPP TS 38.455 V18.2.0 (2024-06)
--
-- ASN1START
-- **************************************************************
@@ -66,7 +66,8 @@ FROM NRPPA-CommonDataTypes
MeasurementPreconfigurationRequired,
MeasurementPreconfigurationConfirm,
MeasurementPreconfigurationRefuse,
- MeasurementActivation
+ MeasurementActivation,
+ SRSInformationReservationNotification
FROM NRPPA-PDU-Contents
@@ -92,7 +93,8 @@ FROM NRPPA-PDU-Contents
id-positioningDeactivation,
id-pRSConfigurationExchange,
id-measurementPreconfiguration,
- id-measurementActivation
+ id-measurementActivation,
+ id-sRSInformationReservationNotification
@@ -193,7 +195,8 @@ NRPPA-ELEMENTARY-PROCEDURES-CLASS-2 NRPPA-ELEMENTARY-PROCEDURE ::= {
measurementAbort |
measurementFailureIndication |
positioningDeactivation |
- measurementActivation,
+ measurementActivation |
+ sRSInformationReservationNotification,
...
}
@@ -356,5 +359,11 @@ measurementActivation NRPPA-ELEMENTARY-PROCEDURE ::= {
CRITICALITY ignore
}
+sRSInformationReservationNotification NRPPA-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SRSInformationReservationNotification
+ PROCEDURE CODE id-sRSInformationReservationNotification
+ CRITICALITY reject
+}
+
END
diff --git a/epan/dissectors/asn1/nrppa/nrppa.cnf b/epan/dissectors/asn1/nrppa/nrppa.cnf
index 5064df05..64af4450 100644
--- a/epan/dissectors/asn1/nrppa/nrppa.cnf
+++ b/epan/dissectors/asn1/nrppa/nrppa.cnf
@@ -14,15 +14,16 @@ ProtocolIE-ID
#.OMIT_ASSIGNMENT
Presence
ProtocolIE-ContainerList
-PRS-ID
SRSResourceID-Item
#.EXPORTS
Assistance-Information_PDU
+SRSConfiguration_PDU
#.PDU
Assistance-Information
NRPPA-PDU
+SRSConfiguration
#.TYPE_RENAME
InitiatingMessage/value InitiatingMessage_value
@@ -39,15 +40,17 @@ ProtocolExtensionField/id ext_id
#.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(nrppa_ProtocolIE_ID_vals), "unknown (%d)"));
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2),
+ ": %s",
+ val_to_str(ProtocolIE_ID, VALS(nrppa_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, nrppa_ProcedureCode_vals,
- "unknown message"));
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str_const(ProcedureCode, nrppa_ProcedureCode_vals,
+ "unknown message"));
#.END
#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
@@ -83,220 +86,301 @@ TAC TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX
#.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-assistanceInformationControl ProcedureCode
-id-assistanceInformationFeedback ProcedureCode
-id-positioningInformationExchange ProcedureCode
-id-positioningInformationUpdate ProcedureCode
-id-Measurement ProcedureCode
-id-MeasurementReport ProcedureCode
-id-MeasurementUpdate ProcedureCode
-id-MeasurementAbort ProcedureCode
-id-MeasurementFailureIndication ProcedureCode
-id-tRPInformationExchange ProcedureCode
-id-positioningActivation ProcedureCode
-id-positioningDeactivation ProcedureCode
-id-pRSConfigurationExchange ProcedureCode
-id-measurementPreconfiguration ProcedureCode
-id-measurementActivation 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-assistanceInformationControl ProcedureCode
+id-assistanceInformationFeedback ProcedureCode
+id-positioningInformationExchange ProcedureCode
+id-positioningInformationUpdate ProcedureCode
+id-Measurement ProcedureCode
+id-MeasurementReport ProcedureCode
+id-MeasurementUpdate ProcedureCode
+id-MeasurementAbort ProcedureCode
+id-MeasurementFailureIndication ProcedureCode
+id-tRPInformationExchange ProcedureCode
+id-positioningActivation ProcedureCode
+id-positioningDeactivation ProcedureCode
+id-pRSConfigurationExchange ProcedureCode
+id-measurementPreconfiguration ProcedureCode
+id-measurementActivation ProcedureCode
+id-sRSInformationReservationNotification ProcedureCode
# ProtocolIE-ID
-id-Cause ProtocolIE-ID
-id-CriticalityDiagnostics ProtocolIE-ID
-id-LMF-UE-Measurement-ID ProtocolIE-ID
-id-ReportCharacteristics ProtocolIE-ID
-id-MeasurementPeriodicity ProtocolIE-ID
-id-MeasurementQuantities ProtocolIE-ID
-id-RAN-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-Cell-Portion-ID ProtocolIE-ID
-id-OtherRATMeasurementQuantities ProtocolIE-ID
-id-OtherRATMeasurementQuantities-Item ProtocolIE-ID
-id-OtherRATMeasurementResult ProtocolIE-ID
-id-WLANMeasurementQuantities ProtocolIE-ID
-id-WLANMeasurementQuantities-Item ProtocolIE-ID
-id-WLANMeasurementResult ProtocolIE-ID
-id-TDD-Config-EUTRA-Item ProtocolIE-ID
-id-Assistance-Information ProtocolIE-ID
-id-Broadcast ProtocolIE-ID
-id-AssistanceInformationFailureList ProtocolIE-ID
-id-SRSConfiguration ProtocolIE-ID
-id-MeasurementResult ProtocolIE-ID
-id-TRP-ID ProtocolIE-ID
-id-TRPInformationTypeListTRPReq ProtocolIE-ID
-id-TRPInformationListTRPResp ProtocolIE-ID
-id-MeasurementBeamInfoRequest ProtocolIE-ID
-id-ResultSS-RSRP ProtocolIE-ID
-id-ResultSS-RSRQ ProtocolIE-ID
-id-ResultCSI-RSRP ProtocolIE-ID
-id-ResultCSI-RSRQ ProtocolIE-ID
-id-AngleOfArrivalNR ProtocolIE-ID
-id-GeographicalCoordinates ProtocolIE-ID
-id-PositioningBroadcastCells ProtocolIE-ID
-id-LMF-Measurement-ID ProtocolIE-ID
-id-RAN-Measurement-ID ProtocolIE-ID
-id-TRP-MeasurementRequestList ProtocolIE-ID
-id-TRP-MeasurementResponseList ProtocolIE-ID
-id-TRP-MeasurementReportList ProtocolIE-ID
-id-SRSType ProtocolIE-ID
-id-ActivationTime ProtocolIE-ID
-id-SRSResourceSetID ProtocolIE-ID
-id-TRPList ProtocolIE-ID
-id-SRSSpatialRelation ProtocolIE-ID
-id-SystemFrameNumber ProtocolIE-ID
-id-SlotNumber ProtocolIE-ID
-id-SRSResourceTrigger ProtocolIE-ID
-id-TRPMeasurementQuantities ProtocolIE-ID
-id-AbortTransmission ProtocolIE-ID
-id-SFNInitialisationTime ProtocolIE-ID
-id-ResultNR ProtocolIE-ID
-id-ResultEUTRA ProtocolIE-ID
-id-TRPInformationTypeItem ProtocolIE-ID
-id-CGI-NR ProtocolIE-ID
-id-SFNInitialisationTime-NR ProtocolIE-ID
-id-Cell-ID ProtocolIE-ID
-id-SrsFrequency ProtocolIE-ID
-id-TRPType ProtocolIE-ID
-id-SRSSpatialRelationPerSRSResource ProtocolIE-ID
-id-MeasurementPeriodicityExtended ProtocolIE-ID
-id-PRS-Resource-ID ProtocolIE-ID
-id-PRSTRPList ProtocolIE-ID
-id-PRSTransmissionTRPList ProtocolIE-ID
-id-OnDemandPRS ProtocolIE-ID
-id-AoA-SearchWindow ProtocolIE-ID
-id-TRP-MeasurementUpdateList ProtocolIE-ID
-id-ZoA ProtocolIE-ID
-id-ResponseTime ProtocolIE-ID
-id-UEReportingInformation ProtocolIE-ID
-id-MultipleULAoA ProtocolIE-ID
-id-UL-SRS-RSRPP ProtocolIE-ID
-id-SRSResourcetype ProtocolIE-ID
-id-ExtendedAdditionalPathList ProtocolIE-ID
-id-ARPLocationInfo ProtocolIE-ID
-id-ARP-ID ProtocolIE-ID
-id-LoS-NLoSInformation ProtocolIE-ID
-id-UETxTEGAssociationList ProtocolIE-ID
-id-NumberOfTRPRxTEG ProtocolIE-ID
-id-NumberOfTRPRxTxTEG ProtocolIE-ID
-id-TRPTxTEGAssociation ProtocolIE-ID
-id-TRPTEGInformation ProtocolIE-ID
-id-TRP-Rx-TEGInformation ProtocolIE-ID
-id-TRP-PRS-Information-List ProtocolIE-ID
-id-PRS-Measurements-Info-List ProtocolIE-ID
-id-PRSConfigRequestType ProtocolIE-ID
-id-UE-TEG-Info-Request ProtocolIE-ID
-id-MeasurementTimeOccasion ProtocolIE-ID
-id-MeasurementCharacteristicsRequestIndicator ProtocolIE-ID
-id-TRPBeamAntennaInformation ProtocolIE-ID
-id-NR-TADV ProtocolIE-ID
-id-MeasurementAmount ProtocolIE-ID
-id-pathPower ProtocolIE-ID
-id-PreconfigurationResult ProtocolIE-ID
-id-RequestType ProtocolIE-ID
-id-UE-TEG-ReportingPeriodicity ProtocolIE-ID
-id-SRSPortIndex ProtocolIE-ID
-id-procedure-code-101-not-to-be-used ProtocolIE-ID
-id-procedure-code-102-not-to-be-used ProtocolIE-ID
-id-procedure-code-103-not-to-be-used ProtocolIE-ID
-id-UETxTimingErrorMargin ProtocolIE-ID
-id-MeasurementPeriodicityNR-AoA ProtocolIE-ID
-id-SRSTransmissionStatus ProtocolIE-ID
+id-Cause ProtocolIE-ID
+id-CriticalityDiagnostics ProtocolIE-ID
+id-LMF-UE-Measurement-ID ProtocolIE-ID
+id-ReportCharacteristics ProtocolIE-ID
+id-MeasurementPeriodicity ProtocolIE-ID
+id-MeasurementQuantities ProtocolIE-ID
+id-RAN-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-Cell-Portion-ID ProtocolIE-ID
+id-OtherRATMeasurementQuantities ProtocolIE-ID
+id-OtherRATMeasurementQuantities-Item ProtocolIE-ID
+id-OtherRATMeasurementResult ProtocolIE-ID
+id-WLANMeasurementQuantities ProtocolIE-ID
+id-WLANMeasurementQuantities-Item ProtocolIE-ID
+id-WLANMeasurementResult ProtocolIE-ID
+id-TDD-Config-EUTRA-Item ProtocolIE-ID
+id-Assistance-Information ProtocolIE-ID
+id-Broadcast ProtocolIE-ID
+id-AssistanceInformationFailureList ProtocolIE-ID
+id-SRSConfiguration ProtocolIE-ID
+id-MeasurementResult ProtocolIE-ID
+id-TRP-ID ProtocolIE-ID
+id-TRPInformationTypeListTRPReq ProtocolIE-ID
+id-TRPInformationListTRPResp ProtocolIE-ID
+id-MeasurementBeamInfoRequest ProtocolIE-ID
+id-ResultSS-RSRP ProtocolIE-ID
+id-ResultSS-RSRQ ProtocolIE-ID
+id-ResultCSI-RSRP ProtocolIE-ID
+id-ResultCSI-RSRQ ProtocolIE-ID
+id-AngleOfArrivalNR ProtocolIE-ID
+id-GeographicalCoordinates ProtocolIE-ID
+id-PositioningBroadcastCells ProtocolIE-ID
+id-LMF-Measurement-ID ProtocolIE-ID
+id-RAN-Measurement-ID ProtocolIE-ID
+id-TRP-MeasurementRequestList ProtocolIE-ID
+id-TRP-MeasurementResponseList ProtocolIE-ID
+id-TRP-MeasurementReportList ProtocolIE-ID
+id-SRSType ProtocolIE-ID
+id-ActivationTime ProtocolIE-ID
+id-SRSResourceSetID ProtocolIE-ID
+id-TRPList ProtocolIE-ID
+id-SRSSpatialRelation ProtocolIE-ID
+id-SystemFrameNumber ProtocolIE-ID
+id-SlotNumber ProtocolIE-ID
+id-SRSResourceTrigger ProtocolIE-ID
+id-TRPMeasurementQuantities ProtocolIE-ID
+id-AbortTransmission ProtocolIE-ID
+id-SFNInitialisationTime ProtocolIE-ID
+id-ResultNR ProtocolIE-ID
+id-ResultEUTRA ProtocolIE-ID
+id-TRPInformationTypeItem ProtocolIE-ID
+id-CGI-NR ProtocolIE-ID
+id-SFNInitialisationTime-NR ProtocolIE-ID
+id-Cell-ID ProtocolIE-ID
+id-SrsFrequency ProtocolIE-ID
+id-TRPType ProtocolIE-ID
+id-SRSSpatialRelationPerSRSResource ProtocolIE-ID
+id-MeasurementPeriodicityExtended ProtocolIE-ID
+id-PRS-Resource-ID ProtocolIE-ID
+id-PRSTRPList ProtocolIE-ID
+id-PRSTransmissionTRPList ProtocolIE-ID
+id-OnDemandPRS ProtocolIE-ID
+id-AoA-SearchWindow ProtocolIE-ID
+id-TRP-MeasurementUpdateList ProtocolIE-ID
+id-ZoA ProtocolIE-ID
+id-ResponseTime ProtocolIE-ID
+id-UEReportingInformation ProtocolIE-ID
+id-MultipleULAoA ProtocolIE-ID
+id-UL-SRS-RSRPP ProtocolIE-ID
+id-SRSResourcetype ProtocolIE-ID
+id-ExtendedAdditionalPathList ProtocolIE-ID
+id-ARPLocationInfo ProtocolIE-ID
+id-ARP-ID ProtocolIE-ID
+id-LoS-NLoSInformation ProtocolIE-ID
+id-UETxTEGAssociationList ProtocolIE-ID
+id-NumberOfTRPRxTEG ProtocolIE-ID
+id-NumberOfTRPRxTxTEG ProtocolIE-ID
+id-TRPTxTEGAssociation ProtocolIE-ID
+id-TRPTEGInformation ProtocolIE-ID
+id-TRP-Rx-TEGInformation ProtocolIE-ID
+id-TRP-PRS-Information-List ProtocolIE-ID
+id-PRS-Measurements-Info-List ProtocolIE-ID
+id-PRSConfigRequestType ProtocolIE-ID
+id-UE-TEG-Info-Request ProtocolIE-ID
+id-MeasurementTimeOccasion ProtocolIE-ID
+id-MeasurementCharacteristicsRequestIndicator ProtocolIE-ID
+id-TRPBeamAntennaInformation ProtocolIE-ID
+id-NR-TADV ProtocolIE-ID
+id-MeasurementAmount ProtocolIE-ID
+id-pathPower ProtocolIE-ID
+id-PreconfigurationResult ProtocolIE-ID
+id-RequestType ProtocolIE-ID
+id-UE-TEG-ReportingPeriodicity ProtocolIE-ID
+id-SRSPortIndex ProtocolIE-ID
+id-procedure-code-101-not-to-be-used ProtocolIE-ID
+id-procedure-code-102-not-to-be-used ProtocolIE-ID
+id-procedure-code-103-not-to-be-used ProtocolIE-ID
+id-UETxTimingErrorMargin ProtocolIE-ID
+id-MeasurementPeriodicityNR-AoA ProtocolIE-ID
+id-SRSTransmissionStatus ProtocolIE-ID
+id-nrofSymbolsExtended ProtocolIE-ID
+id-repetitionFactorExtended ProtocolIE-ID
+id-StartRBHopping ProtocolIE-ID
+id-StartRBIndex ProtocolIE-ID
+id-transmissionCombn8 ProtocolIE-ID
+id-ExtendedResourceSymbolOffset ProtocolIE-ID
+id-NewNRCGI ProtocolIE-ID
+id-Mobile-TRP-LocationInformation ProtocolIE-ID
+id-Mobile-IAB-MT-UE-ID ProtocolIE-ID
+id-MobileAccessPointLocation ProtocolIE-ID
+id-CommonTAParameters ProtocolIE-ID
+id-UE-Rx-Tx-Time-Diff ProtocolIE-ID
+id-SCS-480 ProtocolIE-ID
+id-SCS-960 ProtocolIE-ID
+id-Bandwidth-Aggregation-Request-Indication ProtocolIE-ID
+id-PosSRSResourceSet-Aggregation-List ProtocolIE-ID
+id-TimingReportingGranularityFactorExtended ProtocolIE-ID
+id-TimeWindowInformation-SRS-List ProtocolIE-ID
+id-TimeWindowInformation-Measurement-List ProtocolIE-ID
+id-UL-RSCPMeas ProtocolIE-ID
+id-SymbolIndex ProtocolIE-ID
+id-PosValidityAreaCellList ProtocolIE-ID
+id-SRSReservationType ProtocolIE-ID
+id-PRSBWAggregationRequestIndication ProtocolIE-ID
+id-AggregatedPosSRSResourceID-List ProtocolIE-ID
+id-AggregatedPRSResourceSetList ProtocolIE-ID
+id-TRPPhaseQuality ProtocolIE-ID
+id-NewCellIdentity ProtocolIE-ID
+id-ValidityAreaSpecificSRSInformation ProtocolIE-ID
+id-RequestedSRSPreconfigurationCharacteristics-List ProtocolIE-ID
+id-SRSPreconfiguration-List ProtocolIE-ID
+id-SRSInformation ProtocolIE-ID
+id-TxHoppingConfiguration ProtocolIE-ID
+id-MeasuredFrequencyHops ProtocolIE-ID
+id-ReportingGranularitykminus1 ProtocolIE-ID
+id-ReportingGranularitykminus2 ProtocolIE-ID
+id-ReportingGranularitykminus3 ProtocolIE-ID
+id-ReportingGranularitykminus4 ProtocolIE-ID
+id-ReportingGranularitykminus5 ProtocolIE-ID
+id-ReportingGranularitykminus6 ProtocolIE-ID
+id-ReportingGranularitykminus1AdditionalPath ProtocolIE-ID
+id-ReportingGranularitykminus2AdditionalPath ProtocolIE-ID
+id-ReportingGranularitykminus3AdditionalPath ProtocolIE-ID
+id-ReportingGranularitykminus4AdditionalPath ProtocolIE-ID
+id-ReportingGranularitykminus5AdditionalPath ProtocolIE-ID
+id-ReportingGranularitykminus6AdditionalPath ProtocolIE-ID
+id-MeasuredResultsAssociatedInfoList ProtocolIE-ID
+id-PointA ProtocolIE-ID
+id-NR-PCI ProtocolIE-ID
+id-SCS-SpecificCarrier ProtocolIE-ID
+id-MeasBasedOnAggregatedResources ProtocolIE-ID
#.REGISTER
#NRPPA-PROTOCOL-IES
-Cause N nrppa.ies id-Cause
-CriticalityDiagnostics N nrppa.ies id-CriticalityDiagnostics
-UE-Measurement-ID N nrppa.ies id-LMF-UE-Measurement-ID
-ReportCharacteristics N nrppa.ies id-ReportCharacteristics
-MeasurementPeriodicity N nrppa.ies id-MeasurementPeriodicity
-MeasurementQuantities N nrppa.ies id-MeasurementQuantities
-UE-Measurement-ID N nrppa.ies id-RAN-UE-Measurement-ID
-E-CID-MeasurementResult N nrppa.ies id-E-CID-MeasurementResult
-OTDOACells N nrppa.ies id-OTDOACells
-OTDOA-Information-Type N nrppa.ies id-OTDOA-Information-Type-Group
-OTDOA-Information-Type-Item N nrppa.ies id-OTDOA-Information-Type-Item
-MeasurementQuantities-Item N nrppa.ies id-MeasurementQuantities-Item
-RequestedSRSTransmissionCharacteristics N nrppa.ies id-RequestedSRSTransmissionCharacteristics
-Cell-Portion-ID N nrppa.ies id-Cell-Portion-ID
-OtherRATMeasurementQuantities N nrppa.ies id-OtherRATMeasurementQuantities
-OtherRATMeasurementQuantities-Item N nrppa.ies id-OtherRATMeasurementQuantities-Item
-OtherRATMeasurementResult N nrppa.ies id-OtherRATMeasurementResult
-WLANMeasurementQuantities N nrppa.ies id-WLANMeasurementQuantities
-WLANMeasurementQuantities-Item N nrppa.ies id-WLANMeasurementQuantities-Item
-WLANMeasurementResult N nrppa.ies id-WLANMeasurementResult
-TDD-Config-EUTRA-Item N nrppa.ies id-TDD-Config-EUTRA-Item
-Assistance-Information N nrppa.ies id-Assistance-Information
-Broadcast N nrppa.ies id-Broadcast
-AssistanceInformationFailureList N nrppa.ies id-AssistanceInformationFailureList
-SRSConfiguration N nrppa.ies id-SRSConfiguration
-TRPInformationTypeListTRPReq N nrppa.ies id-TRPInformationTypeListTRPReq
-TRPInformationListTRPResp N nrppa.ies id-TRPInformationListTRPResp
-MeasurementBeamInfoRequest N nrppa.ies id-MeasurementBeamInfoRequest
-ResultSS-RSRP N nrppa.ies id-ResultSS-RSRP
-ResultSS-RSRQ N nrppa.ies id-ResultSS-RSRQ
-ResultCSI-RSRP N nrppa.ies id-ResultCSI-RSRP
-ResultCSI-RSRQ N nrppa.ies id-ResultCSI-RSRQ
-UL-AoA N nrppa.ies id-AngleOfArrivalNR
-PositioningBroadcastCells N nrppa.ies id-PositioningBroadcastCells
-Measurement-ID N nrppa.ies id-LMF-Measurement-ID
-Measurement-ID N nrppa.ies id-RAN-Measurement-ID
-TRP-MeasurementRequestList N nrppa.ies id-TRP-MeasurementRequestList
-TRP-MeasurementResponseList N nrppa.ies id-TRP-MeasurementResponseList
-SRSType N nrppa.ies id-SRSType
-RelativeTime1900 N nrppa.ies id-ActivationTime
-TRPList N nrppa.ies id-TRPList
-SystemFrameNumber N nrppa.ies id-SystemFrameNumber
-SlotNumber N nrppa.ies id-SlotNumber
-TRPMeasurementQuantities N nrppa.ies id-TRPMeasurementQuantities
-AbortTransmission N nrppa.ies id-AbortTransmission
-RelativeTime1900 N nrppa.ies id-SFNInitialisationTime
-ResultNR N nrppa.ies id-ResultNR
-ResultEUTRA N nrppa.ies id-ResultEUTRA
-TRPInformationTypeItem N nrppa.ies id-TRPInformationTypeItem
-CGI-NR N nrppa.ies id-CGI-NR
-SFNInitialisationTime-EUTRA N nrppa.ies id-SFNInitialisationTime-NR
-CGI-NR N nrppa.ies id-Cell-ID
-SrsFrequency N nrppa.ies id-SrsFrequency
-TRPType N nrppa.ies id-TRPType
-MeasurementPeriodicityExtended N nrppa.ies id-MeasurementPeriodicityExtended
-PRSTRPList N nrppa.ies id-PRSTRPList
-PRSTransmissionTRPList N nrppa.ies id-PRSTransmissionTRPList
-OnDemandPRS-Info N nrppa.ies id-OnDemandPRS
-TRP-MeasurementUpdateList N nrppa.ies id-TRP-MeasurementUpdateList
-ZoA N nrppa.ies id-ZoA
-ResponseTime N nrppa.ies id-ResponseTime
-UEReportingInformation N nrppa.ies id-UEReportingInformation
-MultipleULAoA N nrppa.ies id-MultipleULAoA
-UL-SRS-RSRPP N nrppa.ies id-UL-SRS-RSRPP
-UETxTEGAssociationList N nrppa.ies id-UETxTEGAssociationList
-TRPTxTEGAssociation N nrppa.ies id-TRPTxTEGAssociation
-TRP-PRS-Information-List N nrppa.ies id-TRP-PRS-Information-List
-PRS-Measurements-Info-List N nrppa.ies id-PRS-Measurements-Info-List
-PRSConfigRequestType N nrppa.ies id-PRSConfigRequestType
-UE-TEG-Info-Request N nrppa.ies id-UE-TEG-Info-Request
-MeasurementTimeOccasion N nrppa.ies id-MeasurementTimeOccasion
-MeasurementCharacteristicsRequestIndicator N nrppa.ies id-MeasurementCharacteristicsRequestIndicator
-TRPBeamAntennaInformation N nrppa.ies id-TRPBeamAntennaInformation
-NR-TADV N nrppa.ies id-NR-TADV
-MeasurementAmount N nrppa.ies id-MeasurementAmount
-PreconfigurationResult N nrppa.ies id-PreconfigurationResult
-RequestType N nrppa.ies id-RequestType
-UE-TEG-ReportingPeriodicity N nrppa.ies id-UE-TEG-ReportingPeriodicity
-MeasurementPeriodicityNR-AoA N nrppa.ies id-MeasurementPeriodicityNR-AoA
-SRSTransmissionStatus N nrppa.ies id-SRSTransmissionStatus
+Cause N nrppa.ies id-Cause
+CriticalityDiagnostics N nrppa.ies id-CriticalityDiagnostics
+UE-Measurement-ID N nrppa.ies id-LMF-UE-Measurement-ID
+ReportCharacteristics N nrppa.ies id-ReportCharacteristics
+MeasurementPeriodicity N nrppa.ies id-MeasurementPeriodicity
+MeasurementQuantities N nrppa.ies id-MeasurementQuantities
+UE-Measurement-ID N nrppa.ies id-RAN-UE-Measurement-ID
+E-CID-MeasurementResult N nrppa.ies id-E-CID-MeasurementResult
+OTDOACells N nrppa.ies id-OTDOACells
+OTDOA-Information-Type N nrppa.ies id-OTDOA-Information-Type-Group
+OTDOA-Information-Type-Item N nrppa.ies id-OTDOA-Information-Type-Item
+MeasurementQuantities-Item N nrppa.ies id-MeasurementQuantities-Item
+RequestedSRSTransmissionCharacteristics N nrppa.ies id-RequestedSRSTransmissionCharacteristics
+Cell-Portion-ID N nrppa.ies id-Cell-Portion-ID
+OtherRATMeasurementQuantities N nrppa.ies id-OtherRATMeasurementQuantities
+OtherRATMeasurementQuantities-Item N nrppa.ies id-OtherRATMeasurementQuantities-Item
+OtherRATMeasurementResult N nrppa.ies id-OtherRATMeasurementResult
+WLANMeasurementQuantities N nrppa.ies id-WLANMeasurementQuantities
+WLANMeasurementQuantities-Item N nrppa.ies id-WLANMeasurementQuantities-Item
+WLANMeasurementResult N nrppa.ies id-WLANMeasurementResult
+TDD-Config-EUTRA-Item N nrppa.ies id-TDD-Config-EUTRA-Item
+Assistance-Information N nrppa.ies id-Assistance-Information
+Broadcast N nrppa.ies id-Broadcast
+AssistanceInformationFailureList N nrppa.ies id-AssistanceInformationFailureList
+SRSConfiguration N nrppa.ies id-SRSConfiguration
+TRPInformationTypeListTRPReq N nrppa.ies id-TRPInformationTypeListTRPReq
+TRPInformationListTRPResp N nrppa.ies id-TRPInformationListTRPResp
+MeasurementBeamInfoRequest N nrppa.ies id-MeasurementBeamInfoRequest
+ResultSS-RSRP N nrppa.ies id-ResultSS-RSRP
+ResultSS-RSRQ N nrppa.ies id-ResultSS-RSRQ
+ResultCSI-RSRP N nrppa.ies id-ResultCSI-RSRP
+ResultCSI-RSRQ N nrppa.ies id-ResultCSI-RSRQ
+UL-AoA N nrppa.ies id-AngleOfArrivalNR
+PositioningBroadcastCells N nrppa.ies id-PositioningBroadcastCells
+Measurement-ID N nrppa.ies id-LMF-Measurement-ID
+Measurement-ID N nrppa.ies id-RAN-Measurement-ID
+TRP-MeasurementRequestList N nrppa.ies id-TRP-MeasurementRequestList
+TRP-MeasurementResponseList N nrppa.ies id-TRP-MeasurementResponseList
+SRSType N nrppa.ies id-SRSType
+RelativeTime1900 N nrppa.ies id-ActivationTime
+TRPList N nrppa.ies id-TRPList
+SystemFrameNumber N nrppa.ies id-SystemFrameNumber
+SlotNumber N nrppa.ies id-SlotNumber
+TRPMeasurementQuantities N nrppa.ies id-TRPMeasurementQuantities
+AbortTransmission N nrppa.ies id-AbortTransmission
+RelativeTime1900 N nrppa.ies id-SFNInitialisationTime
+ResultNR N nrppa.ies id-ResultNR
+ResultEUTRA N nrppa.ies id-ResultEUTRA
+TRPInformationTypeItem N nrppa.ies id-TRPInformationTypeItem
+CGI-NR N nrppa.ies id-CGI-NR
+SFNInitialisationTime-EUTRA N nrppa.ies id-SFNInitialisationTime-NR
+CGI-NR N nrppa.ies id-Cell-ID
+SrsFrequency N nrppa.ies id-SrsFrequency
+TRPType N nrppa.ies id-TRPType
+MeasurementPeriodicityExtended N nrppa.ies id-MeasurementPeriodicityExtended
+PRSTRPList N nrppa.ies id-PRSTRPList
+PRSTransmissionTRPList N nrppa.ies id-PRSTransmissionTRPList
+OnDemandPRS-Info N nrppa.ies id-OnDemandPRS
+TRP-MeasurementUpdateList N nrppa.ies id-TRP-MeasurementUpdateList
+ZoA N nrppa.ies id-ZoA
+ResponseTime N nrppa.ies id-ResponseTime
+UEReportingInformation N nrppa.ies id-UEReportingInformation
+MultipleULAoA N nrppa.ies id-MultipleULAoA
+UL-SRS-RSRPP N nrppa.ies id-UL-SRS-RSRPP
+UETxTEGAssociationList N nrppa.ies id-UETxTEGAssociationList
+TRPTxTEGAssociation N nrppa.ies id-TRPTxTEGAssociation
+TRP-PRS-Information-List N nrppa.ies id-TRP-PRS-Information-List
+PRS-Measurements-Info-List N nrppa.ies id-PRS-Measurements-Info-List
+PRSConfigRequestType N nrppa.ies id-PRSConfigRequestType
+UE-TEG-Info-Request N nrppa.ies id-UE-TEG-Info-Request
+MeasurementTimeOccasion N nrppa.ies id-MeasurementTimeOccasion
+MeasurementCharacteristicsRequestIndicator N nrppa.ies id-MeasurementCharacteristicsRequestIndicator
+TRPBeamAntennaInformation N nrppa.ies id-TRPBeamAntennaInformation
+NR-TADV N nrppa.ies id-NR-TADV
+MeasurementAmount N nrppa.ies id-MeasurementAmount
+PreconfigurationResult N nrppa.ies id-PreconfigurationResult
+RequestType N nrppa.ies id-RequestType
+UE-TEG-ReportingPeriodicity N nrppa.ies id-UE-TEG-ReportingPeriodicity
+MeasurementPeriodicityNR-AoA N nrppa.ies id-MeasurementPeriodicityNR-AoA
+SRSTransmissionStatus N nrppa.ies id-SRSTransmissionStatus
+CGI-NR N nrppa.ies id-NewNRCGI
+Mobile-TRP-LocationInformation N nrppa.ies id-Mobile-TRP-LocationInformation
+CommonTAParameters N nrppa.ies id-CommonTAParameters
+UE-Rx-Tx-Time-Diff N nrppa.ies id-UE-Rx-Tx-Time-Diff
+SCS-480 N nrppa.ies id-SCS-480
+SCS-960 N nrppa.ies id-SCS-960
+PosSRSResourceSet-Aggregation-List N nrppa.ies id-PosSRSResourceSet-Aggregation-List
+TimeWindowInformation-SRS-List N nrppa.ies id-TimeWindowInformation-SRS-List
+TimeWindowInformation-Measurement-List N nrppa.ies id-TimeWindowInformation-Measurement-List
+UL-RSCPMeas N nrppa.ies id-UL-RSCPMeas
+PosValidityAreaCellList N nrppa.ies id-PosValidityAreaCellList
+SRSReservationType N nrppa.ies id-SRSReservationType
+TRPPhaseQuality N nrppa.ies id-TRPPhaseQuality
+CGI-NR N nrppa.ies id-NewCellIdentity
+RequestedSRSPreconfigurationCharacteristics-List N nrppa.ies id-RequestedSRSPreconfigurationCharacteristics-List
+SRSPreconfiguration-List N nrppa.ies id-SRSPreconfiguration-List
+RequestedSRSTransmissionCharacteristics N nrppa.ies id-SRSInformation
+ReportingGranularitykminus1 N nrppa.ies id-ReportingGranularitykminus1
+ReportingGranularitykminus2 N nrppa.ies id-ReportingGranularitykminus2
+ReportingGranularitykminus3 N nrppa.ies id-ReportingGranularitykminus3
+ReportingGranularitykminus4 N nrppa.ies id-ReportingGranularitykminus4
+ReportingGranularitykminus5 N nrppa.ies id-ReportingGranularitykminus5
+ReportingGranularitykminus6 N nrppa.ies id-ReportingGranularitykminus6
+ReportingGranularitykminus1AdditionalPath N nrppa.ies id-ReportingGranularitykminus1AdditionalPath
+ReportingGranularitykminus2AdditionalPath N nrppa.ies id-ReportingGranularitykminus2AdditionalPath
+ReportingGranularitykminus3AdditionalPath N nrppa.ies id-ReportingGranularitykminus3AdditionalPath
+ReportingGranularitykminus4AdditionalPath N nrppa.ies id-ReportingGranularitykminus4AdditionalPath
+ReportingGranularitykminus5AdditionalPath N nrppa.ies id-ReportingGranularitykminus5AdditionalPath
+ReportingGranularitykminus6AdditionalPath N nrppa.ies id-ReportingGranularitykminus6AdditionalPath
#NRPPA-PROTOCOL-EXTENSION
@@ -319,6 +403,31 @@ TRP-Rx-TEGInformation N nrppa.extension id-TRP-Rx-TEGInform
UL-SRS-RSRPP N nrppa.extension id-pathPower
SRSPortIndex N nrppa.extension id-SRSPortIndex
TimingErrorMargin N nrppa.extension id-UETxTimingErrorMargin
+NrofSymbolsExtended N nrppa.extension id-nrofSymbolsExtended
+RepetitionFactorExtended N nrppa.extension id-repetitionFactorExtended
+StartRBHopping N nrppa.extension id-StartRBHopping
+StartRBIndex N nrppa.extension id-StartRBIndex
+TransmissionCombn8 N nrppa.extension id-transmissionCombn8
+ExtendedResourceSymbolOffset N nrppa.extension id-ExtendedResourceSymbolOffset
+Mobile-TRP-LocationInformation N nrppa.extension id-Mobile-TRP-LocationInformation
+Mobile-IAB-MT-UE-ID N nrppa.extension id-Mobile-IAB-MT-UE-ID
+Mobile-TRP-LocationInformation N nrppa.extension id-MobileAccessPointLocation
+Bandwidth-Aggregation-Request-Indication N nrppa.extension id-Bandwidth-Aggregation-Request-Indication
+PosSRSResourceSet-Aggregation-List N nrppa.extension id-PosSRSResourceSet-Aggregation-List
+TimingReportingGranularityFactorExtended N nrppa.extension id-TimingReportingGranularityFactorExtended
+SymbolIndex N nrppa.extension id-SymbolIndex
+PosValidityAreaCellList N nrppa.extension id-PosValidityAreaCellList
+PRSBWAggregationRequestIndication N nrppa.extension id-PRSBWAggregationRequestIndication
+AggregatedPosSRSResourceID-List N nrppa.extension id-AggregatedPosSRSResourceID-List
+AggregatedPRSResourceSetList N nrppa.extension id-AggregatedPRSResourceSetList
+ValidityAreaSpecificSRSInformation N nrppa.extension id-ValidityAreaSpecificSRSInformation
+TxHoppingConfiguration N nrppa.extension id-TxHoppingConfiguration
+MeasuredFrequencyHops N nrppa.extension id-MeasuredFrequencyHops
+MeasuredResultsAssociatedInfoList N nrppa.extension id-MeasuredResultsAssociatedInfoList
+PointA N nrppa.extension id-PointA
+NR-PCI N nrppa.extension id-NR-PCI
+SCS-SpecificCarrier N nrppa.extension id-SCS-SpecificCarrier
+MeasBasedOnAggregatedResources N nrppa.extension id-MeasBasedOnAggregatedResources
#LPPA-ELEMENTARY-PROCEDURE
@@ -381,3 +490,5 @@ MeasurementPreconfigurationConfirm N nrppa.proc.sout id-measurementPreco
MeasurementPreconfigurationRefuse N nrppa.proc.uout id-measurementPreconfiguration
MeasurementActivation N nrppa.proc.imsg id-measurementActivation
+
+SRSInformationReservationNotification N nrppa.proc.imsg id-sRSInformationReservationNotification
diff --git a/epan/dissectors/asn1/nrppa/packet-nrppa-template.c b/epan/dissectors/asn1/nrppa/packet-nrppa-template.c
index 44087784..5af19da0 100644
--- a/epan/dissectors/asn1/nrppa/packet-nrppa-template.c
+++ b/epan/dissectors/asn1/nrppa/packet-nrppa-template.c
@@ -8,14 +8,15 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 38.455 V17.4.0 (2023-03)
- * http://www.3gpp.org
+ * Ref 3GPP TS 38.455 V18.2.0 (2024-06)
+ * https://www.3gpp.org
*/
#include "config.h"
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-nrppa.h"
@@ -28,17 +29,17 @@ void proto_register_nrppa(void);
void proto_reg_handoff_nrppa(void);
/* Initialize the protocol and registered fields */
-static int proto_nrppa = -1;
+static int proto_nrppa;
#include "packet-nrppa-hf.c"
/* Initialize the subtree pointers */
-static gint ett_nrppa = -1;
+static int ett_nrppa;
#include "packet-nrppa-ett.c"
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
/* Dissector tables */
static dissector_table_t nrppa_ies_dissector_table;
@@ -60,27 +61,27 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- return (dissector_try_uint_new(nrppa_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(nrppa_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(nrppa_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(nrppa_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(nrppa_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(nrppa_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(nrppa_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(nrppa_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(nrppa_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(nrppa_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
/*--- proto_register_nrppa -------------------------------------------*/
@@ -88,13 +89,12 @@ void proto_register_nrppa(void) {
/* List of fields */
static hf_register_info hf[] = {
-
#include "packet-nrppa-hfarr.c"
};
/* List of subtrees */
- static gint *ett[] = {
- &ett_nrppa,
+ static int *ett[] = {
+ &ett_nrppa,
#include "packet-nrppa-ettarr.c"
};
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
index 14013c83..40d74dd9 100644
--- 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
@@ -12,6 +12,7 @@
#include "config.h"
#include <epan/packet.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
@@ -23,7 +24,7 @@ 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;
+static int proto_ns_cert_exts;
#include "packet-ns_cert_exts-hf.c"
/* Initialize the subtree pointers */
@@ -41,7 +42,7 @@ void proto_register_ns_cert_exts(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-ns_cert_exts-ettarr.c"
};
diff --git a/epan/dissectors/asn1/ocsp/ocsp.cnf b/epan/dissectors/asn1/ocsp/ocsp.cnf
index 1c9f0425..5f3bc52f 100644
--- a/epan/dissectors/asn1/ocsp/ocsp.cnf
+++ b/epan/dissectors/asn1/ocsp/ocsp.cnf
@@ -38,13 +38,13 @@ Version
#.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;
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
#.FN_BODY ResponseBytes/response
- gint8 appclass;
+ int8_t appclass;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t 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);
diff --git a/epan/dissectors/asn1/ocsp/packet-ocsp-template.c b/epan/dissectors/asn1/ocsp/packet-ocsp-template.c
index 412ee957..75643096 100644
--- a/epan/dissectors/asn1/ocsp/packet-ocsp-template.c
+++ b/epan/dissectors/asn1/ocsp/packet-ocsp-template.c
@@ -12,6 +12,7 @@
#include "config.h"
#include <epan/packet.h>
+#include <wsutil/array.h>
#include <asn1.h>
@@ -33,12 +34,12 @@ static dissector_handle_t ocsp_request_handle;
static dissector_handle_t ocsp_response_handle;
/* Initialize the protocol and registered fields */
-int proto_ocsp = -1;
-static int hf_ocsp_responseType_id = -1;
+int proto_ocsp;
+static int hf_ocsp_responseType_id;
#include "packet-ocsp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_ocsp = -1;
+static int ett_ocsp;
#include "packet-ocsp-ett.c"
#include "packet-ocsp-fn.c"
@@ -50,7 +51,7 @@ dissect_ocsp_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "OCSP");
@@ -62,7 +63,7 @@ dissect_ocsp_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
tree = proto_item_add_subtree(item, ett_ocsp);
}
- return dissect_ocsp_OCSPRequest(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ return dissect_ocsp_OCSPRequest(false, tvb, 0, &asn1_ctx, tree, -1);
}
@@ -72,7 +73,7 @@ dissect_ocsp_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "OCSP");
@@ -84,7 +85,7 @@ dissect_ocsp_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree
tree = proto_item_add_subtree(item, ett_ocsp);
}
- return dissect_ocsp_OCSPResponse(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ return dissect_ocsp_OCSPResponse(false, tvb, 0, &asn1_ctx, tree, -1);
}
/*--- proto_register_ocsp ----------------------------------------------*/
@@ -100,7 +101,7 @@ void proto_register_ocsp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ocsp,
#include "packet-ocsp-ettarr.c"
};
diff --git a/epan/dissectors/asn1/p1/p1.cnf b/epan/dissectors/asn1/p1/p1.cnf
index bed9cab2..4190cd0b 100644
--- a/epan/dissectors/asn1/p1/p1.cnf
+++ b/epan/dissectors/asn1/p1/p1.cnf
@@ -314,12 +314,12 @@ SecurityCategory/type ABBREV=category.type
ExtensionField/type ABBREV=extension.type
TokenData/type ABBREV=token-data-type
-# This table creates the value_sting to name P3 operation codes and errors
+# This table creates the value_string 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[] = {
+static const value_string p3_opr_code_string_vals[] = {
#.TABLE_BODY OPERATION
{ %(&operationCode)s, "%(_ident)s" },
#.TABLE_FTR
@@ -541,7 +541,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
#.FN_BODY AdditionalInformation
proto_item *item = NULL;
int loffset = 0;
- guint32 len = 0;
+ uint32_t len = 0;
/* work out the length */
loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
@@ -630,15 +630,15 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
#.FN_PARS StandardExtension VAL_PTR = &actx->external.indirect_reference
#.FN_BODY StandardExtension
- actx->external.indirect_ref_present = TRUE;
- actx->external.direct_ref_present = FALSE;
+ 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.indirect_ref_present = false;
actx->external.direct_reference = NULL;
%(DEFAULT_BODY)s
- actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
#.FN_PARS ExtendedContentType
FN_VARIANT = _str VAL_PTR = &ctx->content_type_id
@@ -665,7 +665,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
#.FN_PARS BuiltInContentType/_untag VAL_PTR = &ict
#.FN_BODY BuiltInContentType/_untag
- static guint32 ict = -1;
+ static uint32_t ict = -1;
p1_address_ctx_t* ctx;
if (actx->subtree.tree_ctx == NULL)
@@ -1011,7 +1011,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
ctx->oraddress = wmem_strbuf_new(actx->pinfo->pool, "");
actx->subtree.tree = NULL;
- set_do_address(actx, TRUE);
+ set_do_address(actx, true);
%(DEFAULT_BODY)s
@@ -1019,7 +1019,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
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);
+ set_do_address(actx, false);
#.FN_BODY ORName
p1_address_ctx_t* ctx;
@@ -1032,14 +1032,14 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
ctx->oraddress = wmem_strbuf_new(actx->pinfo->pool, "");
actx->subtree.tree = NULL;
- set_do_address(actx, TRUE);
+ 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);
+ set_do_address(actx, false);
#.FN_BODY MessageIdentifier
actx->subtree.tree = NULL;
@@ -1087,19 +1087,19 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
#.FN_BODY MTSIdentifier
- set_do_address(actx, TRUE);
+ set_do_address(actx, true);
%(DEFAULT_BODY)s
- set_do_address(actx, FALSE);
+ set_do_address(actx, false);
#.FN_BODY MTANameAndOptionalGDI
- set_do_address(actx, TRUE);
+ set_do_address(actx, true);
%(DEFAULT_BODY)s
- set_do_address(actx, FALSE);
+ set_do_address(actx, false);
proto_item_append_text(tree, ")");
#.FN_BODY BuiltInStandardAttributes
@@ -1109,36 +1109,36 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
#.FN_BODY TraceInformationElement
- set_do_address(actx, TRUE);
+ set_do_address(actx, true);
%(DEFAULT_BODY)s
- set_do_address(actx, FALSE);
+ set_do_address(actx, false);
#.FN_BODY InternalTraceInformationElement
- set_do_address(actx, TRUE);
+ set_do_address(actx, true);
%(DEFAULT_BODY)s
- set_do_address(actx, FALSE);
+ set_do_address(actx, false);
#.FN_BODY DomainSuppliedInformation
- set_do_address(actx, FALSE);
+ set_do_address(actx, false);
%(DEFAULT_BODY)s
- set_do_address(actx, TRUE);
+ set_do_address(actx, true);
proto_item_append_text(tree, ")");
#.FN_BODY MTASuppliedInformation
- set_do_address(actx, FALSE);
+ set_do_address(actx, false);
%(DEFAULT_BODY)s
- set_do_address(actx, TRUE);
+ set_do_address(actx, true);
proto_item_append_text(tree, ")");
#.FN_PARS Time
@@ -1184,7 +1184,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
VAL_PTR = &credentials
#.FN_BODY Credentials
- gint credentials = -1;
+ int credentials = -1;
%(DEFAULT_BODY)s
@@ -1213,7 +1213,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
#.FN_BODY PerDomainBilateralInformation/bilateral-information
proto_item *item = NULL;
int loffset = 0;
- guint32 len = 0;
+ uint32_t len = 0;
/* work out the length */
loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
@@ -1229,7 +1229,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
VAL_PTR = &apdu
#.FN_BODY MTS-APDU
- gint apdu = -1;
+ int apdu = -1;
%(DEFAULT_BODY)s
@@ -1243,7 +1243,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
VAL_PTR = &report
#.FN_BODY ReportType
- gint report = -1;
+ int report = -1;
%(DEFAULT_BODY)s
@@ -1252,19 +1252,19 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token"
}
#.FN_BODY MessageSubmissionArgument
- p1_initialize_content_globals(actx, tree, TRUE);
+ p1_initialize_content_globals(actx, tree, true);
%(DEFAULT_BODY)s
- p1_initialize_content_globals(actx, NULL, FALSE);
+ p1_initialize_content_globals(actx, NULL, false);
#.FN_BODY MessageDeliveryArgument
- p1_initialize_content_globals(actx, tree, TRUE);
+ p1_initialize_content_globals(actx, tree, true);
%(DEFAULT_BODY)s
- p1_initialize_content_globals(actx, NULL, FALSE);
+ p1_initialize_content_globals(actx, NULL, false);
#.FN_BODY ReportDeliveryArgument
- p1_initialize_content_globals(actx, tree, TRUE);
+ p1_initialize_content_globals(actx, tree, true);
%(DEFAULT_BODY)s
- p1_initialize_content_globals(actx, NULL, FALSE);
+ p1_initialize_content_globals(actx, NULL, false);
#.FN_HDR MTSBindResult
/* TODO: there may be other entry points where this global should be initialized... */
diff --git a/epan/dissectors/asn1/p1/packet-p1-template.c b/epan/dissectors/asn1/p1/packet-p1-template.c
index ff27555f..68204b30 100644
--- a/epan/dissectors/asn1/p1/packet-p1-template.c
+++ b/epan/dissectors/asn1/p1/packet-p1-template.c
@@ -18,6 +18,7 @@
#include <epan/expert.h>
#include <epan/strutil.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -36,33 +37,33 @@
#define PFNAME "p1"
/* Initialize the protocol and registered fields */
-static int proto_p1 = -1;
-static int proto_p3 = -1;
+static int proto_p1;
+static int proto_p3;
-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;
+static int hf_p1_MTS_APDU_PDU;
+static int hf_p1_MTABindArgument_PDU;
+static int hf_p1_MTABindResult_PDU;
+static int hf_p1_MTABindError_PDU;
#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;
+static int ett_p1;
+static int ett_p3;
+static int ett_p1_content_unknown;
+static int ett_p1_bilateral_information;
+static int ett_p1_additional_information;
+static int ett_p1_unknown_standard_extension;
+static int ett_p1_unknown_extension_attribute_type;
+static int ett_p1_unknown_tokendata_type;
#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;
+static expert_field ei_p1_unknown_extension_attribute_type;
+static expert_field ei_p1_unknown_standard_extension;
+static expert_field ei_p1_unknown_built_in_content_type;
+static expert_field ei_p1_unknown_tokendata_type;
+static expert_field ei_p1_unsupported_pdu;
+static expert_field ei_p1_zero_pdu;
/* Dissector tables */
static dissector_table_t p1_extension_dissector_table;
@@ -74,13 +75,13 @@ static dissector_handle_t p1_handle;
#include "packet-p1-table.c" /* operation and error codes */
typedef struct p1_address_ctx {
- gboolean do_address;
+ bool do_address;
const char *content_type_id;
- gboolean report_unknown_content_type;
+ bool report_unknown_content_type;
wmem_strbuf_t* oraddress;
} p1_address_ctx_t;
-static void set_do_address(asn1_ctx_t* actx, gboolean do_address)
+static void set_do_address(asn1_ctx_t* actx, bool do_address)
{
p1_address_ctx_t* ctx;
@@ -160,7 +161,7 @@ static const ros_info_t p3_ros_info = {
p3_err_tab
};
-void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, gboolean report_unknown_cont_type)
+void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, bool report_unknown_cont_type)
{
p1_address_ctx_t* ctx;
@@ -199,10 +200,10 @@ dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
+ 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);
@@ -212,8 +213,8 @@ dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
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);
+ 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);
}
@@ -230,9 +231,9 @@ dissect_p1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* dat
struct SESSION_DATA_STRUCTURE* session;
int (*p1_dissector)(bool 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;
+ int hf_p1_index = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* do we have operation information from the ROS dissector? */
if (data == NULL)
@@ -240,7 +241,7 @@ dissect_p1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* dat
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);
+ p1_initialize_content_globals (&asn1_ctx, parent_tree, true);
asn1_ctx.private_data = session;
@@ -280,13 +281,13 @@ dissect_p1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* dat
while (tvb_reported_length_remaining(tvb, offset) > 0) {
old_offset=offset;
- offset=(*p1_dissector)(FALSE, tvb, offset, &asn1_ctx , tree, hf_p1_index);
+ 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);
+ p1_initialize_content_globals (&asn1_ctx, NULL, false);
return tvb_captured_length(tvb);
}
@@ -321,7 +322,7 @@ void proto_register_p1(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_p1,
&ett_p3,
&ett_p1_content_unknown,
@@ -387,16 +388,16 @@ void proto_reg_handoff_p1(void) {
oid_add_from_string("id-ac-mts-transfer","2.6.0.1.6");
/* ABSTRACT SYNTAXES */
- 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("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);
+ 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);
+ 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);
/* APPLICATION CONTEXT */
@@ -408,16 +409,16 @@ void proto_reg_handoff_p1(void) {
/* 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_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_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_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);
+ 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);
}
diff --git a/epan/dissectors/asn1/p1/packet-p1-template.h b/epan/dissectors/asn1/p1/packet-p1-template.h
index 2336523d..bf60694e 100644
--- a/epan/dissectors/asn1/p1/packet-p1-template.h
+++ b/epan/dissectors/asn1/p1/packet-p1-template.h
@@ -14,7 +14,7 @@
#include "packet-p1-val.h"
-void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, gboolean report_unknown_cont_type);
+void p1_initialize_content_globals (asn1_ctx_t* actx, proto_tree *tree, bool 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"
diff --git a/epan/dissectors/asn1/p22/p22.cnf b/epan/dissectors/asn1/p22/p22.cnf
index 6b610c69..5e706d7c 100644
--- a/epan/dissectors/asn1/p22/p22.cnf
+++ b/epan/dissectors/asn1/p22/p22.cnf
@@ -280,11 +280,11 @@ VideotexData DISPLAY = BASE_NONE
VAL_PTR=&crs
#.FN_BODY CharacterSetRegistration
- guint32 crs;
+ uint32_t crs;
%(DEFAULT_BODY)s
if(actx->created_item)
- proto_item_append_text(actx->created_item, " (%%s)", val_to_str(crs, charsetreg_vals, "unknown"));
+ proto_item_append_text(actx->created_item, " (%%s)", val_to_str_const(crs, charsetreg_vals, "unknown"));
#.FN_BODY Interchange-Data-Element
/* XXX Not implemented yet */
diff --git a/epan/dissectors/asn1/p22/packet-p22-template.c b/epan/dissectors/asn1/p22/packet-p22-template.c
index fe7d4d2d..b806d670 100644
--- a/epan/dissectors/asn1/p22/packet-p22-template.c
+++ b/epan/dissectors/asn1/p22/packet-p22-template.c
@@ -15,6 +15,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -33,7 +34,7 @@
#define PFNAME "p22"
/* Initialize the protocol and registered fields */
-static int proto_p22 = -1;
+static int proto_p22;
static const value_string charsetreg_vals [] = {
{ 1, "C0: (ISO/IEC 6429)"},
@@ -69,7 +70,7 @@ static const value_string charsetreg_vals [] = {
#include "packet-p22-hf.c"
/* Initialize the subtree pointers */
-static gint ett_p22 = -1;
+static int ett_p22;
#include "packet-p22-ett.c"
#include "packet-p22-fn.c"
@@ -84,7 +85,7 @@ dissect_p22(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
@@ -94,7 +95,7 @@ dissect_p22(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
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);
+ dissect_p22_InformationObject(true, tvb, offset, &asn1_ctx , tree, -1);
return tvb_captured_length(tvb);
}
@@ -109,7 +110,7 @@ void proto_register_p22(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_p22,
#include "packet-p22-ettarr.c"
};
diff --git a/epan/dissectors/asn1/p7/p7.cnf b/epan/dissectors/asn1/p7/p7.cnf
index 2fe5f0ba..164e361d 100644
--- a/epan/dissectors/asn1/p7/p7.cnf
+++ b/epan/dissectors/asn1/p7/p7.cnf
@@ -170,12 +170,12 @@ MessageGroupErrorParameter/problem ABBREV=messageGroupErrorParameter.gr
ServiceErrorParameter/problem ABBREV=serviceErrorParameter.problem
ModifyErrorParameter/problem ABBREV=modifyErrorParameter.problem
-# This table creates the value_sting to name P7 operation codes and errors
+# This table creates the value_string 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[] = {
+static const value_string p7_opr_code_string_vals[] = {
#.TABLE_BODY OPERATION
{ %(&operationCode)s, "%(_ident)s" },
#.TABLE_FTR
@@ -407,16 +407,16 @@ RTSE-apdus B "2.6.0.2.10""id-as-ms-rtse"
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (count=%%d)", count);
#.FN_BODY MSMessageSubmissionArgument
- p1_initialize_content_globals (actx, tree, TRUE);
+ p1_initialize_content_globals (actx, tree, true);
%(DEFAULT_BODY)s
- p1_initialize_content_globals (actx, NULL, FALSE);
+ p1_initialize_content_globals (actx, NULL, false);
#.FN_BODY EntryInformation
- p1_initialize_content_globals (actx, NULL, FALSE);
+ p1_initialize_content_globals (actx, NULL, false);
%(DEFAULT_BODY)s
- p1_initialize_content_globals (actx, NULL, FALSE);
+ p1_initialize_content_globals (actx, NULL, false);
#.FN_BODY EntryModification
- p1_initialize_content_globals (actx, NULL, FALSE);
+ p1_initialize_content_globals (actx, NULL, false);
%(DEFAULT_BODY)s
- p1_initialize_content_globals (actx, NULL, FALSE);
+ 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
index 621aa9b0..ce690e46 100644
--- a/epan/dissectors/asn1/p7/packet-p7-template.c
+++ b/epan/dissectors/asn1/p7/packet-p7-template.c
@@ -16,6 +16,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -33,17 +34,17 @@
void proto_register_p7(void);
void proto_reg_handoff_p7(void);
-static int seqno = 0;
+static int seqno;
/* Initialize the protocol and registered fields */
-static int proto_p7 = -1;
+static int proto_p7;
#include "packet-p7-val.h"
#include "packet-p7-hf.c"
/* Initialize the subtree pointers */
-static gint ett_p7 = -1;
+static int ett_p7;
#include "packet-p7-ett.c"
#include "packet-p7-table.c" /* operation and error codes */
@@ -74,7 +75,7 @@ void proto_register_p7(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_p7,
#include "packet-p7-ettarr.c"
};
@@ -112,7 +113,7 @@ void proto_reg_handoff_p7(void) {
/* 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);
+ 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);
}
diff --git a/epan/dissectors/asn1/p772/packet-p772-template.c b/epan/dissectors/asn1/p772/packet-p772-template.c
index 4b20d84e..93f690d5 100644
--- a/epan/dissectors/asn1/p772/packet-p772-template.c
+++ b/epan/dissectors/asn1/p772/packet-p772-template.c
@@ -13,6 +13,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
@@ -31,14 +32,14 @@ void proto_reg_handoff_p772(void);
/* Initialize the protocol and registered fields */
-static int proto_p772 = -1;
+static int proto_p772;
#include "packet-p772-val.h"
#include "packet-p772-hf.c"
/* Initialize the subtree pointers */
-static gint ett_p772 = -1;
+static int ett_p772;
#include "packet-p772-ett.c"
#include "packet-p772-fn.c"
@@ -54,7 +55,7 @@ dissect_p772(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
@@ -64,7 +65,7 @@ dissect_p772(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
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);
+ dissect_p772_InformationObject(true, tvb, offset, &asn1_ctx , tree, -1);
return tvb_captured_length(tvb);
}
@@ -80,7 +81,7 @@ void proto_register_p772(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_p772,
#include "packet-p772-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pcap/packet-pcap-template.c b/epan/dissectors/asn1/pcap/packet-pcap-template.c
index 535423ea..e13513e6 100644
--- a/epan/dissectors/asn1/pcap/packet-pcap-template.c
+++ b/epan/dissectors/asn1/pcap/packet-pcap-template.c
@@ -18,6 +18,7 @@
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <wsutil/array.h>
#include <epan/strutil.h>
#include <epan/asn1.h>
@@ -42,22 +43,22 @@ void proto_reg_handoff_pcap(void);
#include "packet-pcap-val.h"
-static dissector_handle_t pcap_handle = NULL;
+static dissector_handle_t pcap_handle;
/* Initialize the protocol and registered fields */
-static int proto_pcap = -1;
+static int proto_pcap;
#include "packet-pcap-hf.c"
/* Initialize the subtree pointers */
-static int ett_pcap = -1;
+static int ett_pcap;
#include "packet-pcap-ett.c"
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-/*static guint32 ProtocolExtensionID;*/
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
+/*static uint32_t ProtocolExtensionID;*/
/* Dissector tables */
static dissector_table_t pcap_ies_dissector_table;
@@ -144,7 +145,7 @@ void proto_register_pcap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_pcap,
#include "packet-pcap-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pcap/pcap.cnf b/epan/dissectors/asn1/pcap/pcap.cnf
index 346471b0..5d517046 100644
--- a/epan/dissectors/asn1/pcap/pcap.cnf
+++ b/epan/dissectors/asn1/pcap/pcap.cnf
@@ -70,7 +70,8 @@ GANSS-PositioningInstructions/additionalAssistanceDataRequest ABBREV=gANSS-Posit
#.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)"));
+ 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
@@ -83,8 +84,8 @@ GANSS-PositioningInstructions/additionalAssistanceDataRequest ABBREV=gANSS-Posit
#.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"));
+ val_to_str_const(ProcedureCode, pcap_ProcedureCode_vals,
+ "unknown message"));
#.END
#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
diff --git a/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c b/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c
index 4254adb2..6eeb70d6 100644
--- a/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c
+++ b/epan/dissectors/asn1/pkcs1/packet-pkcs1-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pkcs1.h"
@@ -27,7 +28,7 @@ void proto_register_pkcs1(void);
void proto_reg_handoff_pkcs1(void);
/* Initialize the protocol and registered fields */
-static int proto_pkcs1 = -1;
+static int proto_pkcs1;
#include "packet-pkcs1-hf.c"
/* Initialize the subtree pointers */
@@ -44,7 +45,7 @@ void proto_register_pkcs1(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-pkcs1-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkcs10/packet-pkcs10-template.c b/epan/dissectors/asn1/pkcs10/packet-pkcs10-template.c
index eef9654c..bc96ddb2 100644
--- a/epan/dissectors/asn1/pkcs10/packet-pkcs10-template.c
+++ b/epan/dissectors/asn1/pkcs10/packet-pkcs10-template.c
@@ -25,6 +25,7 @@
#include "config.h"
#include <epan/packet.h>
+#include <wsutil/array.h>
#include <epan/oids.h>
#include <epan/asn1.h>
@@ -43,7 +44,7 @@ void proto_register_pkcs10(void);
static dissector_handle_t csr_handle;
/* Initialize the protocol and registered fields */
-static int proto_pkcs10 = -1;
+static int proto_pkcs10;
#include "packet-pkcs10-hf.c"
/* Initialize the subtree pointers */
@@ -59,7 +60,7 @@ void proto_register_pkcs10(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-pkcs10-ettarr.c"
};
/* Register protocol */
@@ -83,5 +84,5 @@ void proto_reg_handoff_pkcs10(void) {
dissector_add_string("media_type", "application/pkcs10", csr_handle); /* RFC 5967 */
dissector_add_string("rfc7468.preeb_label", "CERTIFICATE REQUEST", csr_handle); /* RFC 7468 */
- dissector_add_string("rfc7468.preeb_label", "NEW CERTIFICATE REQUEST", csr_handle); /* RFC 7468 Appendix A. Non-conforming expample*/
+ dissector_add_string("rfc7468.preeb_label", "NEW CERTIFICATE REQUEST", csr_handle); /* RFC 7468 Appendix A. Non-conforming example*/
}
diff --git a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
index faec6b15..290d9bdb 100644
--- a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
+++ b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
@@ -20,6 +20,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/prefs.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pkcs12.h"
@@ -41,20 +42,20 @@ void proto_register_pkcs12(void);
void proto_reg_handoff_pkcs12(void);
/* Initialize the protocol and registered fields */
-static int proto_pkcs12 = -1;
+static int proto_pkcs12;
-static int hf_pkcs12_X509Certificate_PDU = -1;
-static int hf_pkcs12_AuthenticatedSafe_PDU = -1; /* AuthenticatedSafe */
-static gint ett_decrypted_pbe = -1;
+static int hf_pkcs12_X509Certificate_PDU;
+static int hf_pkcs12_AuthenticatedSafe_PDU; /* AuthenticatedSafe */
+static int ett_decrypted_pbe;
-static expert_field ei_pkcs12_octet_string_expected = EI_INIT;
+static expert_field ei_pkcs12_octet_string_expected;
-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 const char *object_identifier_id;
+static int iteration_count;
+static tvbuff_t *salt;
+static const char *password;
+static bool try_null_password;
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);
@@ -101,7 +102,7 @@ generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsi
if (pwlen > 63 / 2)
{
- return FALSE;
+ return false;
}
/* Store salt and password in BUF_I */
@@ -125,7 +126,7 @@ generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsi
err = gcry_md_open(&md, GCRY_MD_SHA1, 0);
if (gcry_err_code(err))
{
- return FALSE;
+ return false;
}
for (i = 0; i < 64; i++)
{
@@ -149,7 +150,7 @@ generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsi
if (cur_keylen == req_keylen)
{
gcry_mpi_release (num_b1);
- return TRUE; /* ready */
+ return true; /* ready */
}
/* need more bytes. */
@@ -162,7 +163,7 @@ generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsi
if (rc != 0)
{
- return FALSE;
+ return false;
}
gcry_mpi_add_ui (num_b1, num_b1, 1);
@@ -176,7 +177,7 @@ generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsi
if (rc != 0)
{
- return FALSE;
+ return false;
}
gcry_mpi_add (num_ij, num_ij, num_b1);
@@ -187,7 +188,7 @@ generate_key_or_iv(packet_info *pinfo, unsigned int id, tvbuff_t *salt_tvb, unsi
rc = gcry_mpi_print (GCRYMPI_FMT_USG, buf_i + i, n, &n, num_ij);
if (rc != 0)
{
- return FALSE;
+ return false;
}
gcry_mpi_release (num_ij);
@@ -215,15 +216,15 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
char *iv = NULL;
char *clear_data = NULL;
tvbuff_t *clear_tvb = NULL;
- const gchar *oidname;
+ const char *oidname;
GString *name;
proto_tree *tree;
char byte;
- gboolean decrypt_ok = TRUE;
+ bool decrypt_ok = true;
- if(((password == NULL) || (*password == '\0')) && (try_null_password == FALSE)) {
+ if(((password == NULL) || (*password == '\0')) && (try_null_password == false)) {
/* we are not configured to decrypt */
- return FALSE;
+ return false;
}
encryption_algorithm = x509af_get_last_algorithm_id();
@@ -248,44 +249,44 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
/* we don't know how to decrypt this */
proto_item_append_text(item, " [Unsupported encryption algorithm]");
- return FALSE;
+ return false;
}
if((iteration_count == 0) || (salt == NULL)) {
proto_item_append_text(item, " [Insufficient parameters]");
- return FALSE;
+ return false;
}
/* allocate buffers */
key = (char *)wmem_alloc(pinfo->pool, keylen);
if(!generate_key_or_iv(pinfo, 1 /*LEY */, salt, iteration_count, password, keylen, key))
- return FALSE;
+ return false;
if(ivlen) {
iv = (char *)wmem_alloc(pinfo->pool, ivlen);
if(!generate_key_or_iv(pinfo, 2 /* IV */, salt, iteration_count, password, ivlen, iv))
- return FALSE;
+ return false;
}
/* now try an internal function */
err = gcry_cipher_open(&cipher, algo, mode, 0);
if (gcry_err_code (err))
- return FALSE;
+ return false;
err = gcry_cipher_setkey (cipher, key, keylen);
if (gcry_err_code (err)) {
gcry_cipher_close (cipher);
- return FALSE;
+ return false;
}
if(ivlen) {
err = gcry_cipher_setiv (cipher, iv, ivlen);
if (gcry_err_code (err)) {
gcry_cipher_close (cipher);
- return FALSE;
+ return false;
}
}
@@ -298,7 +299,7 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
proto_item_append_text(item, " [Failed to decrypt with password preference]");
gcry_cipher_close (cipher);
- return FALSE;
+ return false;
}
gcry_cipher_close (cipher);
@@ -315,7 +316,7 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
for(i = (int)byte; i > 0 ; i--) {
if(clear_data[datalen - i] != byte) {
- decrypt_ok = FALSE;
+ decrypt_ok = false;
break;
}
}
@@ -326,13 +327,13 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
/* 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;
+ decrypt_ok = false;
}
if(!decrypt_ok) {
proto_item_append_text(item, " [Failed to decrypt with supplied password]");
- return FALSE;
+ return false;
}
proto_item_append_text(item, " [Decrypted successfully]");
@@ -341,7 +342,7 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
/* OK - so now clear_data contains the decrypted data */
- clear_tvb = tvb_new_child_real_data(encrypted_tvb,(const guint8 *)clear_data, datalen, datalen);
+ clear_tvb = tvb_new_child_real_data(encrypted_tvb,(const uint8_t *)clear_data, datalen, datalen);
name = g_string_new("");
oidname = oid_resolved_from_string(pinfo->pool, object_identifier_id_param);
@@ -355,17 +356,17 @@ int PBE_decrypt_data(const char *object_identifier_id_param _U_, tvbuff_t *encry
/* now try and decode it */
call_ber_oid_callback(object_identifier_id_param, clear_tvb, 0, actx->pinfo, tree, NULL);
- return TRUE;
+ return true;
}
#include "packet-pkcs12-fn.c"
static int strip_octet_string(tvbuff_t *tvb)
{
- gint8 ber_class;
+ int8_t ber_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
int offset = 0;
/* PKCS#7 encodes the content as OCTET STRING, whereas CMS is just any ANY */
@@ -385,10 +386,10 @@ static int strip_octet_string(tvbuff_t *tvb)
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);
+ 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);
+ 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);
@@ -398,11 +399,11 @@ static int dissect_SafeContents_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinf
{
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
+ dissect_pkcs12_SafeContents(false, tvb, offset, &asn1_ctx, tree, hf_pkcs12_SafeContents_PDU);
return tvb_captured_length(tvb);
}
@@ -410,10 +411,10 @@ static int dissect_X509Certificate_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *p
{
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
+ 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);
@@ -438,7 +439,7 @@ void proto_register_pkcs12(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_decrypted_pbe,
#include "packet-pkcs12-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkinit/PKINIT.asn b/epan/dissectors/asn1/pkinit/PKINIT.asn
index ff25738f..686ff9b4 100644
--- a/epan/dissectors/asn1/pkinit/PKINIT.asn
+++ b/epan/dissectors/asn1/pkinit/PKINIT.asn
@@ -1,8 +1,8 @@
---NOTE: we have to accomodate BOTH existing users of early drafts, such as
+--NOTE: we have to accommodate 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
+--but has been modified to accommodate the Wireshark asn2wrs compiler
--and our environment
--
--new structures are uncommented and added on demand as they are required
@@ -18,13 +18,13 @@
--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.
+--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 ::=
+ security(5) kerberosV5(2) modules(4) pkinit(5) }
+DEFINITIONS EXPLICIT TAGS ::=
BEGIN
diff --git a/epan/dissectors/asn1/pkinit/packet-pkinit-template.c b/epan/dissectors/asn1/pkinit/packet-pkinit-template.c
index ec582729..0070f873 100644
--- a/epan/dissectors/asn1/pkinit/packet-pkinit-template.c
+++ b/epan/dissectors/asn1/pkinit/packet-pkinit-template.c
@@ -13,6 +13,8 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pkinit.h"
@@ -28,7 +30,7 @@ void proto_register_pkinit(void);
void proto_reg_handoff_pkinit(void);
/* Initialize the protocol and registered fields */
-static int proto_pkinit = -1;
+static int proto_pkinit;
#include "packet-pkinit-hf.c"
/* Initialize the subtree pointers */
@@ -43,13 +45,13 @@ static int dissect_pkinit_PKAuthenticator_Win2k(bool implicit_tag _U_, tvbuff_t
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);
+ 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);
+ offset = dissect_pkinit_PaPkAsRep(false, tvb, offset, actx, tree, -1);
return offset;
}
@@ -81,7 +83,7 @@ void proto_register_pkinit(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-pkinit-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkinit/pkinit.cnf b/epan/dissectors/asn1/pkinit/pkinit.cnf
index a64c322c..e8653236 100644
--- a/epan/dissectors/asn1/pkinit/pkinit.cnf
+++ b/epan/dissectors/asn1/pkinit/pkinit.cnf
@@ -13,8 +13,20 @@ PaPkAsRep
PA-PK-AS-REQ-Win2k
PA-PK-AS-REP-Win2k
-#.FN_BODY PKAuthenticator
+#.FN_BODY PA-PK-AS-REQ-Win2k
+ uint8_t v = 1;
+
+ if (kerberos_is_win2k_pkinit(actx)) {
+ p_set_proto_data(actx->pinfo->pool, actx->pinfo, proto_pkinit, 0, &v);
+ }
+%(DEFAULT_BODY)s
if (kerberos_is_win2k_pkinit(actx)) {
+ p_remove_proto_data(actx->pinfo->pool, actx->pinfo, proto_pkinit, 0);
+ }
+
+#.FN_BODY PKAuthenticator
+
+ if (p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_pkinit, 0)) {
return dissect_pkinit_PKAuthenticator_Win2k(implicit_tag, tvb, offset, actx, tree, hf_index);
}
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn b/epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
index 6cc643e6..9ee85d60 100644
--- a/epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
+++ b/epan/dissectors/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
@@ -32,18 +32,18 @@
--
--
--NOTE: This ASN1 definition have been significantly modified from the original
---version in RFC2459 in order to accomodate the featuresets available
+--version in RFC2459 in order to accommodate the feature sets 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
+--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
+--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
+--If you export new types from this file, make sure to update the
--pkix1explicit_exp.cnf file with the proper definitions
@@ -151,7 +151,7 @@ Extensions ::= SEQUENCE OF Extension
Extension ::= SEQUENCE {
extnId OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
- extnValue OCTET STRING
+ extnValue OCTET STRING
}
-- contains a DER encoding of a value of type
@@ -187,7 +187,7 @@ Extension ::= SEQUENCE {
-- Certificate Revocation List
--
--CertificateList ::= SIGNED { SEQUENCE {
--- version Version OPTIONAL,
+-- version Version OPTIONAL,
-- if present, shall be v2
-- signature AlgorithmIdentifier,
-- issuer Name,
@@ -207,7 +207,7 @@ Extension ::= SEQUENCE {
-- extnValue OCTET STRING }
-- contains a DER encoding of a value of type
-- &ExtnType for the
--- extension object identified by extnId
+-- extension object identified by extnId
--
-- The following information object set is defined to constrain the
-- set of legal CRL extensions.
@@ -228,7 +228,7 @@ Extension ::= SEQUENCE {
-- extnValue OCTET STRING }
-- contains a DER encoding of a value of type
-- &ExtnType for the
--- extension object identified by extnId
+-- extension object identified by extnId
--
-- The following information object set is defined to constrain the
-- set of legal CRL entry extensions.
@@ -238,10 +238,10 @@ Extension ::= SEQUENCE {
-- invalidityDate |
-- certificateIssuer }
--
--- information object classes used in the defintion
--- of certificates and CRLs
+-- information object classes used in the definition
+-- of certificates and CRLs
--
--- Parameterized Type SIGNED
+-- Parameterized Type SIGNED
--
-- SIGNED { ToBeSigned } ::= SEQUENCE {
-- toBeSigned ToBeSigned,
@@ -257,7 +257,7 @@ Extension ::= SEQUENCE {
--AlgorithmIdentifier ::= SEQUENCE {
-- algorithm ALGORITHM.&id({SupportedAlgorithms}),
-- parameters ALGORITHM.&Type({SupportedAlgorithms}
--- { @algorithm}) OPTIONAL
+-- { @algorithm}) OPTIONAL
--}
-- Definition of ALGORITHM
@@ -284,7 +284,7 @@ Extension ::= SEQUENCE {
-- the set is specified as extensible, since additional algorithms
-- may be supported
--
---SupportedAlgorithms ALGORITHM-ID ::= { ...,
+--SupportedAlgorithms ALGORITHM-ID ::= { ...,
-- rsaPublicKey |
-- rsaSHA-1 |
-- rsaMD5 |
@@ -334,9 +334,9 @@ 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,
+ p INTEGER,
+ g INTEGER,
+ q INTEGER,
j INTEGER OPTIONAL,
validationParms ValidationParms OPTIONAL }
@@ -355,7 +355,7 @@ ValidationParms ::= SEQUENCE {
-- The ASN.1 in this section supports the Name type
-- and the directoryAttribute extension
--
--- attribute data types
+-- attribute data types
--
--Attribute ::= SEQUENCE {
-- type ATTRIBUTE.&id ({SupportedAttributes}),
@@ -378,8 +378,8 @@ AttributeTypeAndValue ::= SEQUENCE {
-- This one is implemented in the template as just a call to the
-- corresponding function in x509
---Name ::= CHOICE {
--- rdnSequence RDNSequence
+--Name ::= CHOICE {
+-- rdnSequence RDNSequence
--}
@@ -478,11 +478,11 @@ RelativeDistinguishedName ::= SET OF AttributeTypeAndValue
--
-- object identifiers for Name type and directory attribute support
--
--- Object identifier assignments
+-- Object identifier assignments
--
--id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4}
--
--- Attributes
+-- Attributes
--
--id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
--id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
@@ -498,8 +498,8 @@ RelativeDistinguishedName ::= SET OF AttributeTypeAndValue
--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
+-- Directory string type, used extensively in Name types
+--Make it a PrintableString will make it look prettier
DirectoryString ::= PrintableString
--DirectoryString { INTEGER:maxSize } ::= CHOICE {
-- teletexString TeletexString (SIZE (1..maxSize)),
@@ -509,11 +509,11 @@ DirectoryString ::= PrintableString
-- utf8String UTF8String (SIZE(1..maxSize))
-- }
--
--- End of ASN.1 for Name type and directory attribute support
+-- 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.
+-- 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,
@@ -542,7 +542,7 @@ DirectoryString ::= PrintableString
-- personal-name [5] PersonalName OPTIONAL,
-- see also teletex-personal-name
-- organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
--- see also teletex-organizational-unit-names
+-- see also teletex-organizational-unit-names
-- }
--
--CountryName ::= [APPLICATION 1] CHOICE {
diff --git a/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
index 4de46292..ee06c6bc 100644
--- a/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
+++ b/epan/dissectors/asn1/pkix1explicit/packet-pkix1explicit-template.c
@@ -16,6 +16,7 @@
#include <epan/asn1.h>
#include <epan/oids.h>
#include <epan/afn.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pkix1explicit.h"
@@ -34,12 +35,12 @@ 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 proto_pkix1explicit;
+static int hf_pkix1explicit_object_identifier_id;
+static int hf_pkix1explicit_addressFamily_afn;
+static int hf_pkix1explicit_addressFamily_safi;
-static int ett_pkix1explicit_addressFamily = -1;
+static int ett_pkix1explicit_addressFamily;
#include "packet-pkix1explicit-hf.c"
@@ -108,7 +109,7 @@ void proto_register_pkix1explicit(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_pkix1explicit_addressFamily,
#include "packet-pkix1explicit-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf b/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
index c40477d4..ab2cfff4 100644
--- a/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
+++ b/epan/dissectors/asn1/pkix1explicit/pkix1explicit.cnf
@@ -57,13 +57,13 @@ Extensions B "1.2.840.113549.1.9.14" "pkcs-9-at-extensionRequest"
#.FN_BODY Extension/extnId
%(DEFAULT_BODY)s
- actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
#.FN_BODY Extension/extnValue
- gint8 appclass;
+ int8_t appclass;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t 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);
diff --git a/epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn b/epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
index 23b8a402..2856cc7b 100644
--- a/epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
+++ b/epan/dissectors/asn1/pkix1implicit/PKIX1IMPLICIT93.asn
@@ -32,18 +32,18 @@
--
--
--NOTE: This ASN1 definition have been significantly modified from the original
---version in RFC2459 in order to accomodate the featuresets available
+--version in RFC2459 in order to accommodate the feature sets 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
+--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
+--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
+--If you export new types from this file, make sure to update the
--pkix1implicit_exp.cnf file with the proper definitions
@@ -172,7 +172,7 @@ Dummy ::= NULL
-- issuerDomainPolicy CertPolicyId,
-- subjectDomainPolicy CertPolicyId }
--
--- Certificate subject and certificate issuer attributes extensions
+-- Certificate subject and certificate issuer attributes extensions
--
--subjectAltName EXTENSION ::= {
-- SYNTAX GeneralNames
@@ -190,7 +190,7 @@ Dummy ::= NULL
-- ediPartyName [5] EDIPartyName,
-- uniformResourceIdentifier [6] IA5String,
-- iPAddress [7] OCTET STRING,
--- registeredID [8] OBJECT IDENTIFIER
+-- registeredID [8] OBJECT IDENTIFIER
--}
--OTHER-NAME ::= TYPE-IDENTIFIER
@@ -209,7 +209,7 @@ EDIPartyName ::= SEQUENCE {
--
--AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute
--
--- Certification path constraints extensions
+-- Certification path constraints extensions
--
--basicConstraints EXTENSION ::= {
-- SYNTAX BasicConstraintsSyntax
@@ -247,7 +247,7 @@ EDIPartyName ::= SEQUENCE {
--
--SkipCerts ::= INTEGER (0..MAX)
--
--- Basic CRL extensions
+-- Basic CRL extensions
--
--cRLNumber EXTENSION ::= {
-- SYNTAX CRLNumber
@@ -290,7 +290,7 @@ EDIPartyName ::= SEQUENCE {
-- SYNTAX GeneralizedTime
-- IDENTIFIED BY id-ce-invalidityDate }
--
--- CRL distribution points and delta-CRL extensions
+-- CRL distribution points and delta-CRL extensions
--
--cRLDistributionPoints EXTENSION ::= {
--
@@ -338,7 +338,7 @@ EDIPartyName ::= SEQUENCE {
--
--BaseCRLNumber ::= CRLNumber
--
--- Object identifier assignments for ISO certificate extensions
+-- 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}
diff --git a/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c b/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c
index f6aed246..db4f5000 100644
--- a/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c
+++ b/epan/dissectors/asn1/pkix1implicit/packet-pkix1implicit-template.c
@@ -11,6 +11,7 @@
#include "config.h"
#include <epan/packet.h>
+#include <wsutil/array.h>
#include <epan/asn1.h>
#include "packet-ber.h"
@@ -18,7 +19,7 @@
#include "packet-pkix1explicit.h"
#include "packet-x509ce.h"
-#define PNAME "PKIX1Implitit"
+#define PNAME "PKIX1Implicit"
#define PSNAME "PKIX1IMPLICIT"
#define PFNAME "pkix1implicit"
@@ -26,7 +27,7 @@ void proto_register_pkix1implicit(void);
void proto_reg_handoff_pkix1implicit(void);
/* Initialize the protocol and registered fields */
-static int proto_pkix1implicit = -1;
+static int proto_pkix1implicit;
#include "packet-pkix1implicit-hf.c"
/* Initialize the subtree pointers */
@@ -58,7 +59,7 @@ void proto_register_pkix1implicit(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-pkix1implicit-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkixac/packet-pkixac-template.c b/epan/dissectors/asn1/pkixac/packet-pkixac-template.c
index e66153fa..38416baa 100644
--- a/epan/dissectors/asn1/pkixac/packet-pkixac-template.c
+++ b/epan/dissectors/asn1/pkixac/packet-pkixac-template.c
@@ -14,6 +14,7 @@
#include "config.h"
#include <epan/packet.h>
+#include <wsutil/array.h>
#include <epan/asn1.h>
#include "packet-ber.h"
@@ -30,11 +31,11 @@ void proto_register_pkixac(void);
void proto_reg_handoff_pkixac(void);
/* Initialize the protocol and registered fields */
-static int proto_pkixac = -1;
+static int proto_pkixac;
#include "packet-pkixac-hf.c"
/* Initialize the subtree pointers */
-static gint ett_pkixac = -1;
+static int ett_pkixac;
#include "packet-pkixac-ett.c"
static const char *object_identifier_id;
@@ -50,7 +51,7 @@ void proto_register_pkixac(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_pkixac,
#include "packet-pkixac-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c b/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c
index 99fb419b..209d3098 100644
--- a/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c
+++ b/epan/dissectors/asn1/pkixproxy/packet-pkixproxy-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pkixproxy.h"
@@ -26,7 +27,7 @@ void proto_register_pkixproxy(void);
void proto_reg_handoff_pkixproxy(void);
/* Initialize the protocol and registered fields */
-static int proto_pkixproxy = -1;
+static int proto_pkixproxy;
#include "packet-pkixproxy-hf.c"
/* Initialize the subtree pointers */
@@ -44,7 +45,7 @@ void proto_register_pkixproxy(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-pkixproxy-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c b/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c
index 2d4ebc3f..60ad7ea8 100644
--- a/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c
+++ b/epan/dissectors/asn1/pkixqualified/packet-pkixqualified-template.c
@@ -13,6 +13,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pkixqualified.h"
@@ -29,7 +30,7 @@ void proto_reg_handoff_pkixqualified(void);
/* Initialize the protocol and registered fields */
-static int proto_pkixqualified = -1;
+static int proto_pkixqualified;
#include "packet-pkixqualified-hf.c"
/* Initialize the subtree pointers */
@@ -49,7 +50,7 @@ void proto_register_pkixqualified(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-pkixqualified-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c b/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c
index 319e91d9..707085b0 100644
--- a/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c
+++ b/epan/dissectors/asn1/pkixtsp/packet-pkixtsp-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pkixtsp.h"
#include "packet-pkix1explicit.h"
@@ -31,11 +32,11 @@ static dissector_handle_t timestamp_reply_handle;
static dissector_handle_t timestamp_query_handle;
/* Initialize the protocol and registered fields */
-static int proto_pkixtsp = -1;
+static int proto_pkixtsp;
#include "packet-pkixtsp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_pkixtsp = -1;
+static int ett_pkixtsp;
#include "packet-pkixtsp-ett.c"
@@ -48,7 +49,7 @@ dissect_timestamp_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "PKIXTSP");
@@ -60,7 +61,7 @@ dissect_timestamp_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
tree = proto_item_add_subtree(item, ett_pkixtsp);
}
- return dissect_pkixtsp_TimeStampResp(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ return dissect_pkixtsp_TimeStampResp(false, tvb, 0, &asn1_ctx, tree, -1);
}
static int
@@ -69,7 +70,7 @@ dissect_timestamp_query(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
proto_item *item=NULL;
proto_tree *tree=NULL;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "PKIXTSP");
@@ -81,7 +82,7 @@ dissect_timestamp_query(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
tree = proto_item_add_subtree(item, ett_pkixtsp);
}
- return dissect_pkixtsp_TimeStampReq(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ return dissect_pkixtsp_TimeStampReq(false, tvb, 0, &asn1_ctx, tree, -1);
}
@@ -94,7 +95,7 @@ void proto_register_pkixtsp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_pkixtsp,
#include "packet-pkixtsp-ettarr.c"
};
diff --git a/epan/dissectors/asn1/pres/packet-pres-template.c b/epan/dissectors/asn1/pres/packet-pres-template.c
index 1b3c3fc5..d7e7b5c0 100644
--- a/epan/dissectors/asn1/pres/packet-pres-template.c
+++ b/epan/dissectors/asn1/pres/packet-pres-template.c
@@ -18,6 +18,7 @@
#include <epan/conversation.h>
#include <epan/expert.h>
#include <epan/uat.h>
+#include <wsutil/array.h>
#include <epan/asn1.h>
#include <epan/oids.h>
@@ -39,63 +40,63 @@ void proto_register_pres(void);
void proto_reg_handoff_pres(void);
/* Initialize the protocol and registered fields */
-static int proto_pres = -1;
+static int proto_pres;
-/* Initialize the connectionles protocol */
-static int proto_clpres = -1;
+/* Initialize the connectionless protocol */
+static int proto_clpres;
/* pointers for acse dissector */
-proto_tree *global_tree = NULL;
-packet_info *global_pinfo = NULL;
+proto_tree *global_tree;
+packet_info *global_pinfo;
static const char *abstract_syntax_name_oid;
-static guint32 presentation_context_identifier;
+static uint32_t presentation_context_identifier;
/* to keep track of presentation context identifiers and protocol-oids */
typedef struct _pres_ctx_oid_t {
- guint32 ctx_id;
+ uint32_t ctx_id;
char *oid;
- guint32 idx;
+ uint32_t idx;
} pres_ctx_oid_t;
-static wmem_map_t *pres_ctx_oid_table = NULL;
+static wmem_map_t *pres_ctx_oid_table;
typedef struct _pres_user_t {
- guint ctx_id;
+ unsigned ctx_id;
char *oid;
} pres_user_t;
static pres_user_t *pres_users;
-static guint num_pres_users;
+static unsigned 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;
+static int hf_pres_CP_type;
+static int hf_pres_CPA_PPDU;
+static int hf_pres_Abort_type;
+static int hf_pres_CPR_PPDU;
+static int hf_pres_Typed_data_type;
#include "packet-pres-hf.c"
/* Initialize the subtree pointers */
-static gint ett_pres = -1;
+static int ett_pres;
#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;
+static expert_field ei_pres_dissector_not_available;
+static expert_field ei_pres_wrong_spdu_type;
+static expert_field ei_pres_invalid_offset;
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)
+static unsigned
+pres_ctx_oid_hash(const void *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)
+static int
+pres_ctx_oid_equal(const void *k1, const void *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;
@@ -103,7 +104,7 @@ pres_ctx_oid_equal(gconstpointer k1, gconstpointer k2)
}
static void
-register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, const char *oid)
+register_ctx_id_and_oid(packet_info *pinfo _U_, uint32_t idx, const char *oid)
{
pres_ctx_oid_t *pco, *tmppco;
conversation_t *conversation;
@@ -132,9 +133,9 @@ register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, const char *oid)
}
static char *
-find_oid_in_users_table(packet_info *pinfo, guint32 ctx_id)
+find_oid_in_users_table(packet_info *pinfo, uint32_t ctx_id)
{
- guint i;
+ unsigned i;
for (i = 0; i < num_pres_users; i++) {
pres_user_t *u = &(pres_users[i]);
@@ -150,7 +151,7 @@ find_oid_in_users_table(packet_info *pinfo, guint32 ctx_id)
}
char *
-find_oid_by_pres_ctx_id(packet_info *pinfo, guint32 idx)
+find_oid_by_pres_ctx_id(packet_info *pinfo, uint32_t idx)
{
pres_ctx_oid_t pco, *tmppco;
conversation_t *conversation;
@@ -205,7 +206,7 @@ dissect_ppdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, st
proto_tree *pres_tree;
struct SESSION_DATA_STRUCTURE* session;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* do we have spdu type from the session dissector? */
if (local_session == NULL) {
@@ -231,32 +232,32 @@ dissect_ppdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, st
switch (session->spdu_type) {
case SES_CONNECTION_REQUEST:
- offset = dissect_pres_CP_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_CP_type);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset = dissect_pres_CPC_type(false, tvb, offset, &asn1_ctx, pres_tree, hf_pres_user_data);
break;
}
@@ -365,7 +366,7 @@ void proto_register_pres(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_pres,
#include "packet-pres-ettarr.c"
};
@@ -385,7 +386,7 @@ void proto_register_pres(void) {
uat_t* users_uat = uat_new("PRES Users Context List",
sizeof(pres_user_t),
"pres_context_list",
- TRUE,
+ true,
&pres_users,
&num_pres_users,
UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
diff --git a/epan/dissectors/asn1/pres/packet-pres-template.h b/epan/dissectors/asn1/pres/packet-pres-template.h
index b7dd7ac9..21b2581b 100644
--- a/epan/dissectors/asn1/pres/packet-pres-template.h
+++ b/epan/dissectors/asn1/pres/packet-pres-template.h
@@ -13,6 +13,6 @@
/*#include "packet-pres-exp.h"*/
-extern char *find_oid_by_pres_ctx_id(packet_info *pinfo, guint32 idx);
+extern char *find_oid_by_pres_ctx_id(packet_info *pinfo, uint32_t idx);
#endif /* PACKET_PRES_H */
diff --git a/epan/dissectors/asn1/pres/pres.cnf b/epan/dissectors/asn1/pres/pres.cnf
index fecdf0a8..e0fd4279 100644
--- a/epan/dissectors/asn1/pres/pres.cnf
+++ b/epan/dissectors/asn1/pres/pres.cnf
@@ -87,7 +87,7 @@ CPR-PPDU/normal-mode-parameters/provider-reason cPR_PPDU__provider-reason
VAL_PTR = &reason
#.FN_BODY Abort-reason
- guint32 reason;
+ uint32_t reason;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c b/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
index e8074eea..2663d442 100644
--- a/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
+++ b/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
@@ -15,6 +15,7 @@
#include <epan/strutil.h>
#include <epan/asn1.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
@@ -26,24 +27,24 @@ 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;
+static int proto_q932_ros;
#include "packet-q932-ros-hf.c"
/* Initialize the subtree pointers */
#include "packet-q932-ros-ett.c"
-static expert_field ei_ros_undecoded = EI_INIT;
+static expert_field ei_ros_undecoded;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t data_handle = NULL;
+static dissector_handle_t data_handle;
/* Global variables */
static rose_ctx_t *rose_ctx_tmp;
-static guint32 problem_val;
-static gchar problem_str[64];
+static uint32_t problem_val;
+static char problem_str[64];
static tvbuff_t *arg_next_tvb, *res_next_tvb, *err_next_tvb;
@@ -68,7 +69,7 @@ void proto_register_q932_ros(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-q932-ros-ettarr.c"
};
diff --git a/epan/dissectors/asn1/q932-ros/q932-ros.cnf b/epan/dissectors/asn1/q932-ros/q932-ros.cnf
index 1bc11692..ad90299d 100644
--- a/epan/dissectors/asn1/q932-ros/q932-ros.cnf
+++ b/epan/dissectors/asn1/q932-ros/q932-ros.cnf
@@ -65,7 +65,7 @@ ReturnErrorProblem VAL_PTR = &problem_val
Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_NONE
#.FN_BODY Invoke/argument
- gint len;
+ int len;
len = tvb_reported_length_remaining(tvb, offset);
if (len)
@@ -83,7 +83,7 @@ Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_NONE
ReturnResult/result/result TYPE = FT_BYTES DISPLAY = BASE_NONE
#.FN_BODY ReturnResult/result/result
- gint len;
+ int len;
len = tvb_reported_length_remaining(tvb, offset);
if (len)
@@ -103,7 +103,7 @@ ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_NONE
#.FN_BODY ReturnError/parameter
- gint len;
+ int len;
len = tvb_reported_length_remaining(tvb, offset);
if (len)
diff --git a/epan/dissectors/asn1/q932/packet-q932-template.c b/epan/dissectors/asn1/q932/packet-q932-template.c
index cecbfabb..c64b3434 100644
--- a/epan/dissectors/asn1/q932/packet-q932-template.c
+++ b/epan/dissectors/asn1/q932/packet-q932-template.c
@@ -16,6 +16,7 @@
#include <epan/strutil.h>
#include <epan/asn1.h>
#include <epan/prefs.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-q932.h"
@@ -27,23 +28,23 @@
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;
+static int proto_q932;
+static int hf_q932_ie_type;
+static int hf_q932_ie_len;
+static int hf_q932_ie_data;
+static int hf_q932_pp;
+static int hf_q932_nd;
#include "packet-q932-hf.c"
/* Initialize the subtree pointers */
-static gint ett_q932 = -1;
-static gint ett_q932_ie = -1;
+static int ett_q932;
+static int ett_q932_ie;
#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;
+static expert_field ei_q932_dse_not_supported;
+static expert_field ei_q932_acse_not_supported;
+static expert_field ei_q932_unknown_component;
+static expert_field ei_q932_asn1_encoded;
/* Preferences */
@@ -61,7 +62,7 @@ dissector_table_t etsi_err_local_dissector_table;
#define FACILITY_QSIG 0
#define FACILITY_ETSI 1
-static gint g_facility_encoding = FACILITY_QSIG;
+static int g_facility_encoding = FACILITY_QSIG;
void proto_reg_handoff_q932(void);
@@ -135,10 +136,10 @@ static const value_string str_nd[] = {
/*--- 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;
+ int8_t appclass;
bool pc;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
int hoffset, eoffset;
int ie_end;
tvbuff_t *next_tvb;
@@ -218,12 +219,12 @@ dissect_q932_facility_ie(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
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;
+ uint8_t octet = 0;
+ uint32_t value = 0;
proto_item* ti;
while ((remain > 0) && !(octet & 0x80)) {
- octet = tvb_get_guint8(tvb, offset++);
+ octet = tvb_get_uint8(tvb, offset++);
remain--;
value <<= 7;
value |= octet & 0x7F;
@@ -238,18 +239,18 @@ dissect_q932_ni_ie(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
/*--- dissect_q932_ie -------------------------------------------------------*/
static int
dissect_q932_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
- gint offset;
+ int offset;
proto_item *ti;
proto_tree *ie_tree;
- guint8 ie_type, ie_len;
+ uint8_t 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_type = tvb_get_uint8(tvb, offset);
+ ie_len = tvb_get_uint8(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)"));
@@ -304,7 +305,7 @@ void proto_register_q932(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_q932,
&ett_q932_ie,
#include "packet-q932-ettarr.c"
@@ -357,12 +358,12 @@ void proto_register_q932(void) {
prefs_register_enum_preference(q932_module, "facility_encoding",
"Type of Facility encoding",
"Type of Facility encoding",
- &g_facility_encoding, facility_encoding, FALSE);
+ &g_facility_encoding, facility_encoding, false);
}
/*--- proto_reg_handoff_q932 ------------------------------------------------*/
void proto_reg_handoff_q932(void) {
- static gboolean q931_prefs_initialized = FALSE;
+ static bool q931_prefs_initialized = false;
if (!q931_prefs_initialized) {
/* Facility */
@@ -371,7 +372,7 @@ void proto_reg_handoff_q932(void) {
dissector_add_uint("q931.ie", (0x00 << 8) | Q932_IE_NOTIFICATION_INDICATOR, q932_ie_handle);
q932_ros_handle = find_dissector_add_dependency("q932.ros", proto_q932);
- q931_prefs_initialized = TRUE;
+ q931_prefs_initialized = true;
}
if(g_facility_encoding == FACILITY_QSIG){
diff --git a/epan/dissectors/asn1/qsig/packet-qsig-template.c b/epan/dissectors/asn1/qsig/packet-qsig-template.c
index b7d3fb4a..95c2e189 100644
--- a/epan/dissectors/asn1/qsig/packet-qsig-template.c
+++ b/epan/dissectors/asn1/qsig/packet-qsig-template.c
@@ -16,6 +16,7 @@
#include <epan/strutil.h>
#include <epan/asn1.h>
#include <wsutil/strtoi.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-qsig.h"
@@ -138,7 +139,7 @@ static const value_string qsig_str_service_name[] = {
};
#define NO_SRV (-1)
-static const gint32 op2srv_tab[] = {
+static const int32_t op2srv_tab[] = {
/* 0 */ 13868,
/* 1 */ 13868,
/* 2 */ 13868,
@@ -273,17 +274,17 @@ static const value_string qsig_str_error[] = {
};
/* 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;
+static int proto_qsig;
+static int hf_qsig_operation;
+static int hf_qsig_service;
+static int hf_qsig_error;
+static int hf_qsig_ie_type;
+static int hf_qsig_ie_type_cs4;
+static int hf_qsig_ie_type_cs5;
+static int hf_qsig_ie_len;
+static int hf_qsig_ie_data;
+static int hf_qsig_tc;
+static int hf_qsig_pc;
#include "packet-qsig-hf.c"
static int *hf_qsig_ie_type_arr[] = {
@@ -298,23 +299,23 @@ static int *hf_qsig_ie_type_arr[] = {
};
/* Initialize the subtree pointers */
-static gint ett_qsig = -1;
-static gint ett_qsig_ie = -1;
-static gint ett_qsig_unknown_extension = -1;
+static int ett_qsig;
+static int ett_qsig_ie;
+static int ett_qsig_unknown_extension;
#include "packet-qsig-ett.c"
-static gint ett_cnq_PSS1InformationElement = -1;
+static int ett_cnq_PSS1InformationElement;
-/* 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;
+/* static expert_field ei_qsig_unsupported_arg_type; */
+static expert_field ei_qsig_unsupported_result_type;
+static expert_field ei_qsig_unsupported_error_type;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t q931_ie_handle = NULL;
+static dissector_handle_t q931_ie_handle;
/* Global variables */
-static const char *extension_oid = NULL;
+static const char *extension_oid;
/* Dissector tables */
static dissector_table_t extension_dissector_table;
@@ -322,7 +323,7 @@ static dissector_table_t extension_dissector_table;
#include "packet-qsig-fn.c"
typedef struct _qsig_op_t {
- gint32 opcode;
+ int32_t opcode;
dissector_t arg_pdu;
dissector_t res_pdu;
} qsig_op_t;
@@ -332,7 +333,7 @@ static const qsig_op_t qsig_op_tab[] = {
};
typedef struct _qsig_err_t {
- gint32 errcode;
+ int32_t errcode;
dissector_t err_pdu;
} qsig_err_t;
@@ -340,7 +341,7 @@ static const qsig_err_t qsig_err_tab[] = {
#include "packet-qsig-table21.c"
};
-static const qsig_op_t *get_op(gint32 opcode) {
+static const qsig_op_t *get_op(int32_t opcode) {
int i;
/* search from the end to get the last occurrence if the operation is redefined in some newer specification */
@@ -350,13 +351,13 @@ static const qsig_op_t *get_op(gint32 opcode) {
return NULL;
}
-static gint32 get_service(gint32 opcode) {
+static int32_t get_service(int32_t 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) {
+static const qsig_err_t *get_err(int32_t errcode) {
int i;
/* search from the end to get the last occurrence if the operation is redefined in some newer specification */
@@ -371,9 +372,9 @@ 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, oid_num;
+ int32_t opcode = 0, service, oid_num;
const qsig_op_t *op_ptr = NULL;
- const gchar *p, *oid;
+ const char *p, *oid;
proto_item *ti, *ti_tmp;
proto_tree *qsig_tree;
@@ -433,11 +434,11 @@ dissect_qsig_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
/*--- dissect_qsig_res -------------------------------------------------------*/
static int
dissect_qsig_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
- gint offset = 0;
+ int offset = 0;
rose_ctx_t *rctx;
- gint32 opcode, service;
+ int32_t opcode, service;
const qsig_op_t *op_ptr;
- const gchar *p;
+ const char *p;
proto_item *ti, *ti_tmp;
proto_tree *qsig_tree;
@@ -489,9 +490,9 @@ 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;
+ int32_t errcode;
const qsig_err_t *err_ptr;
- const gchar *p;
+ const char *p;
proto_item *ti;
proto_tree *qsig_tree;
@@ -551,18 +552,18 @@ dissect_qsig_party_category_ie(tvbuff_t *tvb, int offset, packet_info *pinfo _U
/*--- dissect_qsig_ie -------------------------------------------------------*/
static void
dissect_qsig_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int codeset) {
- gint offset;
+ int offset;
proto_item *ti, *hidden_item;
proto_tree *ie_tree;
- guint8 ie_type, ie_len;
+ uint8_t 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_type = tvb_get_uint8(tvb, offset);
+ ie_len = tvb_get_uint8(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)"));
@@ -612,7 +613,7 @@ void proto_register_qsig(void) {
FT_UINT16, 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,
+ FT_UINT16, BASE_DEC, VALS(qsig_str_error), 0x0,
NULL, HFILL }},
{ &hf_qsig_ie_type, { "Type", "qsig.ie.type",
FT_UINT8, BASE_HEX, NULL, 0x0,
@@ -639,7 +640,7 @@ void proto_register_qsig(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_qsig,
&ett_qsig_ie,
&ett_qsig_unknown_extension,
@@ -681,7 +682,7 @@ void proto_register_qsig(void) {
/*--- proto_reg_handoff_qsig ------------------------------------------------*/
void proto_reg_handoff_qsig(void) {
int i;
- gchar *oid;
+ char *oid;
dissector_handle_t q931_handle;
q931_handle = find_dissector_add_dependency("q931", proto_qsig);
diff --git a/epan/dissectors/asn1/qsig/qsig.cnf b/epan/dissectors/asn1/qsig/qsig.cnf
index abdd580b..d3d2c541 100644
--- a/epan/dissectors/asn1/qsig/qsig.cnf
+++ b/epan/dissectors/asn1/qsig/qsig.cnf
@@ -146,7 +146,7 @@ NameData TYPE = FT_STRING DISPLAY = BASE_NONE
tvbuff_t *next_tvb;
next_tvb = tvb_new_subset_remaining(tvb, offset);
- if (!dissector_try_string_new(extension_dissector_table, extension_oid, next_tvb, actx->pinfo, tree, FALSE, NULL)) {
+ if (!dissector_try_string_new(extension_dissector_table, extension_oid, next_tvb, actx->pinfo, tree, false, NULL)) {
proto_tree *next_tree;
next_tree=proto_tree_add_subtree_format(tree, next_tvb, 0, -1, ett_qsig_unknown_extension, NULL,
diff --git a/epan/dissectors/asn1/ranap/RANAP-IEs.asn b/epan/dissectors/asn1/ranap/RANAP-IEs.asn
index 3b47d012..7774c6f9 100644
--- a/epan/dissectors/asn1/ranap/RANAP-IEs.asn
+++ b/epan/dissectors/asn1/ranap/RANAP-IEs.asn
@@ -1207,8 +1207,8 @@ 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’
+ -- 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’
...
}
diff --git a/epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn b/epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn
index 840fd695..f41d6555 100644
--- a/epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/ranap/RANAP-PDU-Contents.asn
@@ -802,7 +802,7 @@ RelocationRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
{ 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}|
--- Extension for Release 11 to support rSRVCC in case of network sharing –
+-- Extension for Release 11 to support rSRVCC in case of network sharing –
{ ID id-AnchorPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional}|
{ ID id-PowerSavingIndicator CRITICALITY ignore EXTENSION PowerSavingIndicator PRESENCE optional}|
-- Extension for Release 14 to support QoE function --
@@ -1590,7 +1590,7 @@ EnhancedRelocationCompleteRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
{ 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}|
--- Extensions for Release 11 to enable enhanced relocation from RNC to hybrid cell –
+-- Extensions for Release 11 to enable enhanced relocation from RNC to hybrid cell –
{ ID id-CSG-Id CRITICALITY reject EXTENSION CSG-Id PRESENCE optional}|
{ ID id-Cell-Access-Mode CRITICALITY reject EXTENSION Cell-Access-Mode PRESENCE optional}|
-- Extension for Release 11 to support BBAI --
@@ -1665,7 +1665,7 @@ 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}|
--- Extension for Release 11 to enable ehnahced relocation from RNC to hybrid cell –
+-- Extension for Release 11 to enable ehnahced relocation from RNC to hybrid cell –
{ ID id-CSG-Membership-Status CRITICALITY ignore EXTENSION CSG-Membership-Status PRESENCE optional},
...
}
@@ -2586,7 +2586,7 @@ RANAP-EnhancedRelocationInformationRequestExtensions RANAP-PROTOCOL-EXTENSION ::
{ 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} |
--- Extension for Release 11 to support rSRVCC in case of network sharing –
+-- Extension for Release 11 to support rSRVCC in case of network sharing –
{ ID id-AnchorPLMN-ID CRITICALITY ignore EXTENSION PLMNidentity PRESENCE optional},
...
}
@@ -2729,7 +2729,7 @@ LocationRelatedDataRequest ::= SEQUENCE {
LocationRelatedDataRequestIEs RANAP-PROTOCOL-IES ::= {
{ ID id-LocationRelatedDataRequestType CRITICALITY reject TYPE LocationRelatedDataRequestType PRESENCE optional },
- -- This IE is mandatory for UTRAN, optional for GERAN Iu Mode –-
+ -- This IE is mandatory for UTRAN, optional for GERAN Iu Mode –-
...
}
@@ -2738,7 +2738,7 @@ LocationRelatedDataRequestExtensions RANAP-PROTOCOL-EXTENSION ::= {
{ 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’--
+ -- ‘Dedicated Assistance Data for Assisted GANSS’ or `Dedicated Assistance Data for Assisted GPS and GANSS’--
{ ID id-RequestedGANSSAssistanceData CRITICALITY reject EXTENSION RequestedGANSSAssistanceData PRESENCE conditional },
...
}
diff --git a/epan/dissectors/asn1/ranap/packet-ranap-template.c b/epan/dissectors/asn1/ranap/packet-ranap-template.c
index ce8f0e14..f576345b 100644
--- a/epan/dissectors/asn1/ranap/packet-ranap-template.c
+++ b/epan/dissectors/asn1/ranap/packet-ranap-template.c
@@ -19,6 +19,7 @@
#include <epan/asn1.h>
#include <epan/prefs.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
@@ -51,24 +52,24 @@ void proto_register_ranap(void);
void proto_reg_handoff_ranap(void);
/* Initialize the protocol and registered fields */
-static int proto_ranap = -1;
+static int proto_ranap;
/* 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 dissector_handle_t bssgp_handle = NULL;
+static dissector_handle_t rrc_s_to_trnc_handle;
+static dissector_handle_t rrc_t_to_srnc_handle;
+static dissector_handle_t rrc_ho_to_utran_cmd;
+static dissector_handle_t bssgp_handle;
-static int hf_ranap_transportLayerAddress_ipv4 = -1;
-static int hf_ranap_transportLayerAddress_ipv6 = -1;
-static int hf_ranap_transportLayerAddress_nsap = -1;
+static int hf_ranap_transportLayerAddress_ipv4;
+static int hf_ranap_transportLayerAddress_ipv6;
+static int hf_ranap_transportLayerAddress_nsap;
#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;
+static int ett_ranap;
+static int ett_ranap_transportLayerAddress;
+static int ett_ranap_transportLayerAddress_nsap;
#include "packet-ranap-ett.c"
@@ -81,8 +82,8 @@ static int ett_ranap_transportLayerAddress_nsap = -1;
typedef struct ranap_private_data_t
{
- guint32 transportLayerAddress_ipv4;
- guint16 binding_id_port;
+ uint32_t transportLayerAddress_ipv4;
+ uint16_t binding_id_port;
e212_number_type_t number_type;
} ranap_private_data_t;
@@ -105,25 +106,25 @@ static void ranap_reset_private_data(packet_info *pinfo)
p_remove_proto_data(pinfo->pool, pinfo, proto_ranap, 0);
}
-static guint32 private_data_get_transportLayerAddress_ipv4(asn1_ctx_t *actx)
+static uint32_t private_data_get_transportLayerAddress_ipv4(asn1_ctx_t *actx)
{
ranap_private_data_t *private_data = (ranap_private_data_t*)ranap_get_private_data(actx);
return private_data->transportLayerAddress_ipv4;
}
-static void private_data_set_transportLayerAddress_ipv4(asn1_ctx_t *actx, guint32 transportLayerAddress_ipv4)
+static void private_data_set_transportLayerAddress_ipv4(asn1_ctx_t *actx, uint32_t transportLayerAddress_ipv4)
{
ranap_private_data_t *private_data = (ranap_private_data_t*)ranap_get_private_data(actx);
private_data->transportLayerAddress_ipv4 = transportLayerAddress_ipv4;
}
-static guint16 private_data_get_binding_id_port(asn1_ctx_t *actx)
+static uint16_t private_data_get_binding_id_port(asn1_ctx_t *actx)
{
ranap_private_data_t *private_data = (ranap_private_data_t*)ranap_get_private_data(actx);
return private_data->binding_id_port;
}
-static void private_data_set_binding_id_port(asn1_ctx_t *actx, guint16 binding_id_port)
+static void private_data_set_binding_id_port(asn1_ctx_t *actx, uint16_t binding_id_port)
{
ranap_private_data_t *private_data = (ranap_private_data_t*)ranap_get_private_data(actx);
private_data->binding_id_port = binding_id_port;
@@ -133,10 +134,10 @@ static void private_data_set_binding_id_port(asn1_ctx_t *actx, guint16 binding_i
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-static guint32 ProtocolExtensionID;
-static gboolean glbl_dissect_container = FALSE;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
+static uint32_t ProtocolExtensionID;
+static bool glbl_dissect_container;
static dissector_handle_t ranap_handle;
@@ -163,7 +164,7 @@ static dissector_handle_t ranap_handle;
#define SOUT (2U<<16)
#define SPECIAL (4U<<16)
-int pdu_type = 0; /* 0 means wildcard */
+int pdu_type; /* 0 means wildcard */
/* Dissector tables */
static dissector_table_t ranap_ies_dissector_table;
@@ -203,16 +204,16 @@ dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
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;
+ 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;
+ 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;
+ ret = (dissector_try_uint_new(ranap_ies_dissector_table, key, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
break;
}
@@ -222,28 +223,28 @@ dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
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;
+ 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;
+ 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;
+ 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;
+ bool ret;
pdu_type = IMSG;
- ret = dissector_try_uint_new(ranap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL);
+ 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;
}
@@ -251,10 +252,10 @@ dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
static int
dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- gboolean ret;
+ bool ret;
pdu_type = SOUT;
- ret = dissector_try_uint_new(ranap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE, NULL);
+ 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;
}
@@ -262,13 +263,13 @@ dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
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;
+ 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;
+ return (dissector_try_uint_new(ranap_proc_out_dissector_table, ProcedureCode, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
static int
@@ -302,7 +303,7 @@ dissect_ranap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
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_const(ProcedureCode, ranap_ProcedureCode_vals, "Unknown RANAP");
+ const char* str = val_to_str_const(ProcedureCode, ranap_ProcedureCode_vals, "Unknown RANAP");
sccp_msg_lcl->data.co.label = wmem_strdup(wmem_file_scope(), str);
}
}
@@ -311,12 +312,12 @@ dissect_ranap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
}
#define RANAP_MSG_MIN_LENGTH 7
-static gboolean
+static bool
dissect_sccp_ranap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
- guint8 temp;
- guint16 word;
- guint length;
+ uint8_t temp;
+ uint16_t word;
+ unsigned length;
int offset;
/* Is it a ranap packet?
@@ -334,53 +335,53 @@ dissect_sccp_ranap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
#define CRIT_OFFSET 2
#define MSG_TYPE_OFFSET 1
#define PDU_TYPE_OFFSET 0
- if (tvb_captured_length(tvb) < RANAP_MSG_MIN_LENGTH) { return FALSE; }
+ if (tvb_captured_length(tvb) < RANAP_MSG_MIN_LENGTH) { return false; }
- temp = tvb_get_guint8(tvb, PDU_TYPE_OFFSET);
+ temp = tvb_get_uint8(tvb, PDU_TYPE_OFFSET);
if (temp & 0x1F) {
/* PDU Type byte is not 0x00 (initiatingMessage), 0x20 (succesfulOutcome),
0x40 (unsuccesfulOutcome) or 0x60 (outcome), ignore extension bit (0x80) */
- return FALSE;
+ return false;
}
- temp = tvb_get_guint8(tvb, CRIT_OFFSET);
+ temp = tvb_get_uint8(tvb, CRIT_OFFSET);
if (temp == 0xC0 || temp & 0x3F) {
/* Criticality byte is not 0x00 (reject), 0x40 (ignore) or 0x80 (notify) */
- return FALSE;
+ return false;
}
/* compute aligned PER length determinant without calling dissect_per_length_determinant()
to avoid exceptions and info added to tree, info column and expert info */
offset = LENGTH_OFFSET;
- length = tvb_get_guint8(tvb, offset);
+ length = tvb_get_uint8(tvb, offset);
offset += 1;
if ((length & 0x80) == 0x80) {
if ((length & 0xc0) == 0x80) {
length &= 0x3f;
length <<= 8;
- length += tvb_get_guint8(tvb, offset);
+ length += tvb_get_uint8(tvb, offset);
offset += 1;
} else {
length = 0;
}
}
if (length!= (tvb_reported_length(tvb) - offset)){
- return FALSE;
+ return false;
}
- temp = tvb_get_guint8(tvb, MSG_TYPE_OFFSET);
- if (temp > RANAP_MAX_PC) { return FALSE; }
+ temp = tvb_get_uint8(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;
+ return false;
}
dissect_ranap(tvb, pinfo, tree, data);
- return TRUE;
+ return true;
}
/*--- proto_register_ranap -------------------------------------------*/
@@ -408,7 +409,7 @@ void proto_register_ranap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ranap,
&ett_ranap_transportLayerAddress,
&ett_ranap_transportLayerAddress_nsap,
diff --git a/epan/dissectors/asn1/ranap/ranap.cnf b/epan/dissectors/asn1/ranap/ranap.cnf
index 29b7bd1e..342a8940 100644
--- a/epan/dissectors/asn1/ranap/ranap.cnf
+++ b/epan/dissectors/asn1/ranap/ranap.cnf
@@ -190,13 +190,13 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
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);
+ 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);
+ 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);
@@ -221,7 +221,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
#.FN_BODY RRC-Container VAL_PTR = &rrc_message_tvb
tvbuff_t *rrc_message_tvb=NULL;
- guint8 container_choice=0;
+ uint8_t container_choice=0;
%(DEFAULT_BODY)s
@@ -243,7 +243,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
*/
/* Assume a TargetRNC-ToSourceRNC-Container. Peek the RRC octetstream to guess the choice*/
- container_choice = tvb_get_guint8(rrc_message_tvb, 0) >> 5;
+ container_choice = tvb_get_uint8(rrc_message_tvb, 0) >> 5;
if (container_choice < 7) {
/* Normal case (0-6): dissect as TargetRNC-ToSourceRNC-Container */
call_dissector(rrc_t_to_srnc_handle,rrc_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
@@ -293,11 +293,11 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
private_data->number_type = E212_NONE;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, &parameter_tvb);
+ 3, 3, false, &parameter_tvb);
if (!parameter_tvb)
return offset;
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, false);
#.END
#.FN_BODY CGI
@@ -352,9 +352,9 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
tvbuff_t *parameter_tvb = NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
- guint8 *padded_nsap_bytes;
+ uint8_t *padded_nsap_bytes;
tvbuff_t *nsap_tvb;
- gint tvb_len;
+ int tvb_len;
%(DEFAULT_BODY)s
if (!parameter_tvb)
@@ -377,7 +377,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
if (tvb_len == 7){
/* Unpadded IPv4 NSAP */
/* Creating a new TVB with padding */
- padded_nsap_bytes = (guint8*) wmem_alloc0(actx->pinfo->pool, 20);
+ padded_nsap_bytes = (uint8_t*) wmem_alloc0(actx->pinfo->pool, 20);
tvb_memcpy(parameter_tvb, padded_nsap_bytes, 0, tvb_len);
nsap_tvb = tvb_new_child_real_data(tvb, padded_nsap_bytes, 20, 20);
add_new_data_source(actx->pinfo, nsap_tvb, "Padded NSAP Data");
@@ -451,7 +451,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
/* 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);
+ uint16_t port_number = tvb_get_ntohs(value_tvb, 0);
private_data_set_binding_id_port(actx, port_number);
proto_item_append_text(actx->created_item, " (%%u)", port_number);
}
@@ -465,8 +465,8 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
#.FN_BODY RAB-SetupOrModifyItemFirst
address ipv4_addr;
- guint32 transportLayerAddress_ipv4;
- guint16 binding_id;
+ uint32_t transportLayerAddress_ipv4;
+ uint16_t binding_id;
private_data_set_transportLayerAddress_ipv4(actx, 0);
private_data_set_binding_id_port(actx, 0);
@@ -478,12 +478,12 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
}
set_address(&ipv4_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
/* Set RTP dissector for the UDP stream of this RAB */
- rtp_add_address(actx->pinfo, PT_UDP, &ipv4_addr, binding_id, 0, "RANAP", actx->pinfo->num, FALSE, 0);
+ rtp_add_address(actx->pinfo, PT_UDP, &ipv4_addr, binding_id, 0, "RANAP", actx->pinfo->num, false, 0);
#.FN_BODY RAB-SetupOrModifiedItem
address ipv4_addr;
- guint32 transportLayerAddress_ipv4;
- guint16 binding_id;
+ uint32_t transportLayerAddress_ipv4;
+ uint16_t binding_id;
private_data_set_transportLayerAddress_ipv4(actx, 0);
private_data_set_binding_id_port(actx, 0);
@@ -495,7 +495,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
}
set_address(&ipv4_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
/* Set RTP dissector for the UDP stream of this RAB */
- rtp_add_address(actx->pinfo, PT_UDP, &ipv4_addr, binding_id, 0, "RANAP", actx->pinfo->num, FALSE, 0);
+ rtp_add_address(actx->pinfo, PT_UDP, &ipv4_addr, binding_id, 0, "RANAP", actx->pinfo->num, false, 0);
# Contains the BSSGP RIM PDU as defined in TS 48.018 [36].
#.FN_BODY RIMInformation VAL_PTR=&value_tvb
@@ -1198,8 +1198,6 @@ 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
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-Constants.asn b/epan/dissectors/asn1/rnsap/RNSAP-Constants.asn
index 933f9148..1d30a723 100644
--- a/epan/dissectors/asn1/rnsap/RNSAP-Constants.asn
+++ b/epan/dissectors/asn1/rnsap/RNSAP-Constants.asn
@@ -131,9 +131,9 @@ 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
+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
@@ -158,7 +158,7 @@ maxNrOfTsLCR INTEGER ::= 6
maxNoSat INTEGER ::= 16
maxNoGPSTypes INTEGER ::= 8
maxNrOfMeasNCell INTEGER ::= 96
-maxNrOfMeasNCell-1 INTEGER ::= 95 -- maxNrOfMeasNCell – 1
+maxNrOfMeasNCell-1 INTEGER ::= 95 -- maxNrOfMeasNCell – 1
maxResetContext INTEGER ::= 250
maxResetContextGroup INTEGER ::= 32
maxNrOfHARQProc INTEGER ::= 8
@@ -166,12 +166,12 @@ maxNrOfHSSCCHCodes INTEGER ::= 4
maxNrOfHSSICHs INTEGER ::= 4
maxNrOfHSSICHs-1 INTEGER ::= 3
maxNrOfMACdFlows INTEGER ::= 8
-maxNrOfMACdFlows-1 INTEGER ::= 7 -- maxNrOfMACdFlows – 1
+maxNrOfMACdFlows-1 INTEGER ::= 7 -- maxNrOfMACdFlows – 1
maxNrOfMACdPDUSize INTEGER ::= 32
maxNrOfPDUIndexes INTEGER ::= 8
-maxNrOfPDUIndexes-1 INTEGER ::= 7 -- maxNrOfPDUIndexes – 1
+maxNrOfPDUIndexes-1 INTEGER ::= 7 -- maxNrOfPDUIndexes – 1
maxNrOfPrioQueues INTEGER ::= 8
-maxNrOfPrioQueues-1 INTEGER ::= 7 -- maxNrOfPrioQueues – 1
+maxNrOfPrioQueues-1 INTEGER ::= 7 -- maxNrOfPrioQueues – 1
maxNrOfSNAs INTEGER ::= 65536
maxNrOfSatAlmanac-maxNoSat INTEGER ::= 16
maxNrOfGERANSI INTEGER ::= 8
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-IEs.asn b/epan/dissectors/asn1/rnsap/RNSAP-IEs.asn
index bcdea8a8..68c69a40 100644
--- a/epan/dissectors/asn1/rnsap/RNSAP-IEs.asn
+++ b/epan/dissectors/asn1/rnsap/RNSAP-IEs.asn
@@ -883,7 +883,7 @@ Allowed-Rate-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
}
Allowed-Rate ::= INTEGER (1..maxNrOfTFs)
--- “1”: TFI 0, “2”: TFI 1, “3”: TFI 2, ...
+-- “1â€: TFI 0, “2â€: TFI 1, “3â€: TFI 2, ...
AllowedQueuingTime ::= INTEGER (1..60)
-- seconds
@@ -2023,7 +2023,7 @@ DCH-ENH-Information ::= SEQUENCE {
pO2-SRB PowerOffset,
dl-FET-Mode DL-FET-Mode,
dCH-ENH-Concat DCH-ENH-Concat OPTIONAL
--- This IE shall be present if dl-FET-Mode is equal to “full” --,
+-- This IE shall be present if dl-FET-Mode is equal to “full†--,
iE-Extensions ProtocolExtensionContainer { { DCH-ENH-Information-ExtIEs } } OPTIONAL,
...
}
@@ -2036,7 +2036,7 @@ DCH-ENH-Information-to-Modify ::= SEQUENCE {
pO-SRB PowerOffset OPTIONAL,
dl-FET-Mode DL-FET-Mode OPTIONAL,
dCH-ENH-Concat DCH-ENH-Concat OPTIONAL
--- This IE shall be present if dl-FET-Mode is equal to “full” --,
+-- This IE shall be present if dl-FET-Mode is equal to “full†--,
iE-Extensions ProtocolExtensionContainer { { DCH-ENH-Information-to-Modify-ExtIEs } } OPTIONAL,
...
}
@@ -2317,7 +2317,7 @@ DGANSSCorrections ::= SEQUENCE {
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”
+-- 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)),
@@ -2461,20 +2461,20 @@ DL-DPCH-TimingAdjustment ::= ENUMERATED {
DL-Power ::= INTEGER (-350..150)
-- Value = DL-Power / 10
--- Unit dB, Range –35dB .. +15dB, Step 0.1dB
+-- 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’
+ -- 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’
+ -- 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’
+ -- 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’
+ -- 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’
+ -- This IE shall be present if Power Adjustment Type IE equals to ‘Common’ or ‘Individual’
iE-Extensions ProtocolExtensionContainer { { DL-PowerBalancing-Information-ExtIEs } } OPTIONAL,
...
}
@@ -2933,7 +2933,7 @@ 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”—
+ -- The IE shall be present if the SixteenQAM UL Operation Indicator IE is set to “Activateâ€â€”
{ ID id-SixtyfourQAM-UL-Operation-Indicator CRITICALITY reject EXTENSION SixtyfourQAM-UL-Operation-Indicator PRESENCE optional}|
{ ID id-UL-MIMO-Information CRITICALITY reject EXTENSION UL-MIMO-Information PRESENCE optional}|
{ ID id-UPH-Filtering-Measurement-Forwarding-Request CRITICALITY reject EXTENSION UPH-Filtering-Measurement-Forwarding-Request PRESENCE optional},
@@ -2990,7 +2990,7 @@ EDCH-FDD-Information-To-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
{ 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”—
+-- The IE shall be present if the SixteenQAM UL Operation Indicator IE is set to “Activateâ€â€”
{ ID id-SixtyfourQAM-UL-Operation-Indicator CRITICALITY reject EXTENSION SixtyfourQAM-UL-Operation-Indicator PRESENCE optional}|
{ ID id-UL-MIMO-Information CRITICALITY reject EXTENSION UL-MIMO-Information PRESENCE optional}|
{ ID id-Fast-TTI-switching-Mode-synchronized CRITICALITY reject EXTENSION Fast-TTI-switching-Mode-synchronized PRESENCE optional}|
@@ -4974,7 +4974,7 @@ 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)
+ -- 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}|
{ID id-DBDS-CorrectionsReq CRITICALITY ignore EXTENSION DBDS-CorrectionsReq PRESENCE optional}|
{ID id-BDS-IonosphericGridModelReq CRITICALITY ignore EXTENSION BDS-IonosphericGridModelReq PRESENCE optional},
@@ -5002,7 +5002,7 @@ GANSS-Generic-DataItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
{ 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’)
+ -- 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}|
{ ID id-DBDS-Corrections CRITICALITY ignore EXTENSION DBDS-Corrections PRESENCE optional}|
{ ID id-BDS-Ionospheric-Grid-Model CRITICALITY ignore EXTENSION BDS-Ionospheric-Grid-Model PRESENCE optional},
@@ -5193,7 +5193,7 @@ 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’
+ -- 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)),
@@ -5317,7 +5317,7 @@ GANSS-SAT-Info-Almanac-BDS ::= SEQUENCE {
bdsAlmA0 BIT STRING (SIZE (11)),
bdsAlmA1 BIT STRING (SIZE (11)),
bdsSvHealth BIT STRING (SIZE(9)) OPTIONAL,
--- Mondatory if the IE “Sat ID” is between 0 and 29 and not needed otherwise
+-- Mondatory if the IE “Sat ID†is between 0 and 29 and not needed otherwise
iE-Extensions ProtocolExtensionContainer { { GANSS-SAT-Info-Almanac-BDS-ExtIEs } } OPTIONAL,
...
}
@@ -5663,7 +5663,7 @@ 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. –
+-- 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) --
@@ -5760,7 +5760,7 @@ GPSInformation ::= SEQUENCE (SIZE (1..maxNoGPSTypes)) OF
iE-Extensions ProtocolExtensionContainer { { GPSInformation-ExtIEs} } OPTIONAL,
...
}
--- This IE shall be present if the Information Type IE indicates ‘GPS Information’
+-- This IE shall be present if the Information Type IE indicates ‘GPS Information’
GPSInformation-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
...
@@ -5886,7 +5886,7 @@ Guaranteed-Rate-Information-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
}
Guaranteed-Rate ::= INTEGER (1..maxNrOfTFs)
--- “1”: TFI 0, “2”: TFI 1, “3”: TFI 2, ...
+-- “1â€: TFI 0, “2â€: TFI 1, “3â€: TFI 2, ...
-- H
@@ -6078,7 +6078,7 @@ HS-DSCH-Secondary-Serving-Information-To-Modify-ExtIEs RNSAP-PROTOCOL-EXTENSION
{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”
+-- 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}|
{ID id-power-offset-for-S-CPICH-for-MIMO-Request-Indicator CRITICALITY ignore EXTENSION PowerOffsetForSecondaryCPICHforMIMORequestIndicator PRESENCE optional}|
{ID id-OrdinalNumberOfFrequency CRITICALITY reject EXTENSION OrdinalNumberOfFrequency PRESENCE optional}|
@@ -6999,15 +6999,15 @@ InformationType ::= SEQUENCE {
...
}
--- The GPS Information IE shall be present if the Information Exchange Type IE indicates ‘GPS Information’
+-- 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’
+-- 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’
+-- 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’
+-- 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},
...
}
@@ -7246,7 +7246,7 @@ LABased-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
LAI-List ::= SEQUENCE (SIZE (1..maxNrOfLAIs)) OF
LAI
-LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT (‘0000’H|’FFFE’H))
+LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT (‘0000’H|’FFFE’H))
LAI ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
@@ -7408,7 +7408,7 @@ 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
+-- 1.28Mcps TDD 97 – 224 are unused
MaxNrDLPhysicalchannels768 ::= INTEGER (1..448)
@@ -7745,7 +7745,7 @@ 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”.
+ -- 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,
...
@@ -8316,11 +8316,11 @@ Neighbouring-FDD-CellInformationItem-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
{ 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”.
+ -- 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”.
+-- 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}|
{ ID id-MultipleFrequencyBandsIndicatorList CRITICALITY ignore EXTENSION MultipleFrequencyBandsIndicatorList PRESENCE optional},
@@ -8797,7 +8797,7 @@ PreferredFrequencyLayerInfo-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
PrimaryCPICH-Power ::= INTEGER (-100..500)
--- step 0.1 (Range –10.0..50.0) Unit is dBm
+-- step 0.1 (Range –10.0..50.0) Unit is dBm
PrimaryCPICH-EcNo ::= INTEGER (-30..30)
@@ -9494,7 +9494,7 @@ Secondary-Serving-Cell-List-ExtIEs RNSAP-PROTOCOL-EXTENSION ::= {
...
}
---“maxNrOfHSDSCH-1” represents the maximum number of possible secondary serving cells for a Multi Cell/Dual-Band capable cell when it applies to the range of “Possible-Secondary-Serving-Cell-List”.
+--“maxNrOfHSDSCH-1†represents the maximum number of possible secondary serving cells for a Multi Cell/Dual-Band capable cell when it applies to the range of “Possible-Secondary-Serving-Cell-Listâ€.
Possible-Secondary-Serving-Cell-List ::= SEQUENCE (SIZE (1..maxNrOfHSDSCH-1)) OF Possible-Secondary-Serving-Cell
@@ -9855,7 +9855,7 @@ TAC ::= OCTET STRING (SIZE (2))
TargetID ::= CGI
TDD-AckNack-Power-Offset ::= INTEGER (-7..8,...)
--- Unit dB, Range –7dB .. +8dB, Step 1dB
+-- Unit dB, Range –7dB .. +8dB, Step 1dB
TDD-ChannelisationCode ::= ENUMERATED {
chCode1div1,
@@ -10140,7 +10140,7 @@ 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.
+-- 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
@@ -10223,9 +10223,9 @@ Transmission-Gap-Pattern-Sequence-Information ::= SEQUENCE (SIZE (1..maxTGPS)) O
-- 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”
+ -- 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”
+ -- 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,
@@ -10450,7 +10450,7 @@ 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]
+ -- 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,
...
}
@@ -10513,7 +10513,7 @@ TransportFormatSet-ModeDP ::= CHOICE {
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.
+ -- 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,
...
}
@@ -10548,7 +10548,7 @@ TransportFormatSet-Semi-staticPart ::= SEQUENCE {
transmissionTime TransmissionTimeIntervalSemiStatic,
channelCoding ChannelCodingType,
codingRate CodingRate OPTIONAL
- -- This IE shall be present if channelCoding is ‘convolutional’ or ‘turbo’ --,
+ -- This IE shall be present if channelCoding is ‘convolutional’ or ‘turbo’ --,
rateMatcingAttribute RateMatchingAttribute,
cRC-Size CRC-Size,
mode TransportFormatSet-ModeSSP,
diff --git a/epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn b/epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn
index 1733f81a..d068ab1e 100644
--- a/epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/rnsap/RNSAP-PDU-Contents.asn
@@ -1213,7 +1213,7 @@ RL-InformationItem-RL-SetupRqstFDD ::= SEQUENCE {
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”
+ -- 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,
...
}
@@ -1649,7 +1649,7 @@ RL-InformationResponse-RL-SetupRspTDD ::= SEQUENCE {
cellParameterID CellParameterID OPTIONAL,
syncCase SyncCase OPTIONAL,
sCH-TimeSlot SCH-TimeSlot OPTIONAL,
- -- This IE shall be present if Sync Case IE is equal to “Case2”. --
+ -- This IE shall be present if Sync Case IE is equal to “Case2â€. --
sCTD-Indicator SCTD-Indicator OPTIONAL,
pCCPCH-Power PCCPCH-Power,
timingAdvanceApplied TimingAdvanceApplied,
@@ -2013,7 +2013,7 @@ RL-InformationResponse-RL-SetupRspTDD768 ::= SEQUENCE {
cellParameterID CellParameterID OPTIONAL,
syncCase SyncCase OPTIONAL,
sCH-TimeSlot SCH-TimeSlot OPTIONAL,
- -- This IE shall be present if Sync Case IE is equal to “Case2”. --
+ -- This IE shall be present if Sync Case IE is equal to “Case2â€. --
sCTD-Indicator SCTD-Indicator OPTIONAL,
pCCPCH-Power PCCPCH-Power,
timingAdvanceApplied TimingAdvanceApplied,
@@ -2192,7 +2192,7 @@ UnsuccessfulRL-InformationResponse-RL-SetupFailureFDD ::= SEQUENCE {
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”.
+ -- This IE shall be present if the Cause IE is set to “Continuous Packet Connectivity UE DTX Cycle not Availableâ€.
...
}
@@ -3618,7 +3618,7 @@ RL-Information-RL-ReconfPrepFDD ::= SEQUENCE {
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”
+ -- 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,
...
}
@@ -4742,7 +4742,7 @@ RL-ReconfigurationFailure-RL-ReconfFail ::= SEQUENCE {
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”.
+ -- This IE shall be present if the Cause IE is set to “Continuous Packet Connectivity UE DTX Cycle not Availableâ€.
...
}
@@ -5540,16 +5540,16 @@ DL-PowerControlRequest ::= SEQUENCE {
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’
+ -- 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’
+ -- 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’
+ -- 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’
+ -- 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’
+ -- This IE shall be present if Power Adjustment Type IE equals to ‘Common’ or ‘Individual’
...
}
@@ -8410,7 +8410,7 @@ 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” --
+ -- 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},
diff --git a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
index fc08e17b..1d24d7c7 100644
--- a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
+++ b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
@@ -19,10 +19,12 @@
#include <epan/packet.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-isup.h"
#include "packet-per.h"
#include "packet-ber.h"
+#include "packet-e212.h"
#ifdef _MSC_VER
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
@@ -41,29 +43,30 @@ void proto_register_rnsap(void);
void proto_reg_handoff_rnsap(void);
typedef struct {
- guint32 ProcedureCode;
- guint32 ProtocolIE_ID;
- guint32 ddMode;
+ uint32_t ProcedureCode;
+ uint32_t ProtocolIE_ID;
+ uint32_t ddMode;
const char *ProcedureID;
const char *obj_id;
} rnsap_private_data_t;
-static dissector_handle_t ranap_handle = NULL;
-static dissector_handle_t rrc_dl_ccch_handle = NULL;
-static dissector_handle_t rrc_ul_ccch_handle = NULL;
+static dissector_handle_t ranap_handle;
+static dissector_handle_t rrc_dl_ccch_handle;
+static dissector_handle_t rrc_ul_ccch_handle;
/* Initialize the protocol and registered fields */
-static int proto_rnsap = -1;
+static int proto_rnsap;
-static int hf_rnsap_transportLayerAddress_ipv4 = -1;
-static int hf_rnsap_transportLayerAddress_ipv6 = -1;
-static int hf_rnsap_transportLayerAddress_nsap = -1;
+static int hf_rnsap_transportLayerAddress_ipv4;
+static int hf_rnsap_transportLayerAddress_ipv6;
+static int hf_rnsap_transportLayerAddress_nsap;
#include "packet-rnsap-hf.c"
/* Initialize the subtree pointers */
-static int ett_rnsap = -1;
-static int ett_rnsap_transportLayerAddress = -1;
-static int ett_rnsap_transportLayerAddress_nsap = -1;
+static int ett_rnsap;
+static int ett_rnsap_transportLayerAddress;
+static int ett_rnsap_transportLayerAddress_nsap;
+static int ett_rnsap_IMSI;
#include "packet-rnsap-ett.c"
@@ -161,50 +164,50 @@ dissect_rnsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
/* Highest ProcedureCode value, used in heuristics */
#define RNSAP_MAX_PC 61 /* id-enhancedRelocationResourceRelease = 61*/
#define RNSAP_MSG_MIN_LENGTH 7
-static gboolean
+static bool
dissect_sccp_rnsap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
- guint8 pdu_type;
- guint8 procedure_id;
- guint8 dd_mode;
- guint8 criticality;
- guint8 transaction_id_type;
- guint length;
+ uint8_t pdu_type;
+ uint8_t procedure_id;
+ uint8_t dd_mode;
+ uint8_t criticality;
+ uint8_t transaction_id_type;
+ unsigned length;
int length_field_offset;
#define PDU_TYPE_OFFSET 0
#define PROC_CODE_OFFSET 1
#define DD_CRIT_OFFSET 2
if (tvb_captured_length(tvb) < RNSAP_MSG_MIN_LENGTH) {
- return FALSE;
+ return false;
}
- pdu_type = tvb_get_guint8(tvb, PDU_TYPE_OFFSET);
+ pdu_type = tvb_get_uint8(tvb, PDU_TYPE_OFFSET);
if (pdu_type & 0x1F) {
/* pdu_type is not 0x00 (initiatingMessage), 0x20 (succesfulOutcome),
0x40 (unsuccesfulOutcome) or 0x60 (outcome), ignore extension bit (0x80) */
- return FALSE;
+ return false;
}
- procedure_id = tvb_get_guint8(tvb, PROC_CODE_OFFSET);
+ procedure_id = tvb_get_uint8(tvb, PROC_CODE_OFFSET);
if (procedure_id > RNSAP_MAX_PC) {
- return FALSE;
+ return false;
}
- dd_mode = tvb_get_guint8(tvb, DD_CRIT_OFFSET) >> 5;
+ dd_mode = tvb_get_uint8(tvb, DD_CRIT_OFFSET) >> 5;
if (dd_mode >= 0x03) {
/* dd_mode is not 0x00 (tdd), 0x01 (fdd) or 0x02 (common) */
- return FALSE;
+ return false;
}
- criticality = (tvb_get_guint8(tvb, DD_CRIT_OFFSET) & 0x18) >> 3;
+ criticality = (tvb_get_uint8(tvb, DD_CRIT_OFFSET) & 0x18) >> 3;
if (criticality == 0x03) {
/* criticality is not 0x00 (reject), 0x01 (ignore) or 0x02 (notify) */
- return FALSE;
+ return false;
}
/* Finding the offset for the length field - depends on wether the transaction id is long or short */
- transaction_id_type = (tvb_get_guint8(tvb, DD_CRIT_OFFSET) & 0x04) >> 2;
+ transaction_id_type = (tvb_get_uint8(tvb, DD_CRIT_OFFSET) & 0x04) >> 2;
if(transaction_id_type == 0x00) { /* Short transaction id - 1 byte*/
length_field_offset = 4;
}
@@ -214,25 +217,25 @@ dissect_sccp_rnsap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
/* compute aligned PER length determinant without calling dissect_per_length_determinant()
to avoid exceptions and info added to tree, info column and expert info */
- length = tvb_get_guint8(tvb, length_field_offset);
+ length = tvb_get_uint8(tvb, length_field_offset);
length_field_offset += 1;
if (length & 0x80) {
if ((length & 0xc0) == 0x80) {
length &= 0x3f;
length <<= 8;
- length += tvb_get_guint8(tvb, length_field_offset);
+ length += tvb_get_uint8(tvb, length_field_offset);
length_field_offset += 1;
} else {
length = 0;
}
}
if (length!= (tvb_reported_length(tvb) - length_field_offset)){
- return FALSE;
+ return false;
}
dissect_rnsap(tvb, pinfo, tree, data);
- return TRUE;
+ return true;
}
@@ -257,10 +260,11 @@ void proto_register_rnsap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_rnsap,
&ett_rnsap_transportLayerAddress,
&ett_rnsap_transportLayerAddress_nsap,
+ &ett_rnsap_IMSI,
#include "packet-rnsap-ettarr.c"
};
diff --git a/epan/dissectors/asn1/rnsap/rnsap.cnf b/epan/dissectors/asn1/rnsap/rnsap.cnf
index 060d6ee6..dc1f5aef 100644
--- a/epan/dissectors/asn1/rnsap/rnsap.cnf
+++ b/epan/dissectors/asn1/rnsap/rnsap.cnf
@@ -118,7 +118,7 @@ ProtocolIE-ContainerPairList
switch (pdata->ProcedureCode) {
case RNSAP_ID_DOWNLINKSIGNALLINGTRANSFER:
- /* TODO: seperate into Iur and Iur-g cases: */
+ /* TODO: separate into Iur and Iur-g cases: */
/* For the Iur-g interface, L3 message is a GERAN-RRC message for which a dissector does not currently exist */
/* For the Iur interface, L3 message is a UMTS RRC DL-CCCH message */
parameter_handle = rrc_dl_ccch_handle;
@@ -146,9 +146,9 @@ ProtocolIE-ContainerPairList
return offset;
/* Calling RANAP dissector but preventing changes to the protocol column */
- col_set_writable(actx->pinfo->cinfo, COL_PROTOCOL, FALSE);
+ col_set_writable(actx->pinfo->cinfo, COL_PROTOCOL, false);
call_dissector_only(ranap_handle, parameter_tvb, actx->pinfo, tree, NULL);
- col_set_writable(actx->pinfo->cinfo, COL_PROTOCOL, TRUE);
+ col_set_writable(actx->pinfo->cinfo, COL_PROTOCOL, true);
#.TYPE_ATTR
BLER TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL
@@ -156,7 +156,7 @@ BLER TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL
#.FN_BODY BindingID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
- guint16 binding_id_port;
+ uint16_t binding_id_port;
%(DEFAULT_BODY)s
@@ -174,9 +174,9 @@ BLER TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL
tvbuff_t *parameter_tvb = NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
- guint8 *padded_nsap_bytes;
+ uint8_t *padded_nsap_bytes;
tvbuff_t *nsap_tvb;
- gint tvb_len;
+ int tvb_len;
%(DEFAULT_BODY)s
if (!parameter_tvb)
@@ -198,7 +198,7 @@ BLER TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL
if (tvb_len == 7){
/* Unpadded IPv4 NSAP */
/* Creating a new TVB with padding */
- padded_nsap_bytes = (guint8*) wmem_alloc0(actx->pinfo->pool, 20);
+ padded_nsap_bytes = (uint8_t*) wmem_alloc0(actx->pinfo->pool, 20);
tvb_memcpy(parameter_tvb, padded_nsap_bytes, 0, tvb_len);
nsap_tvb = tvb_new_child_real_data(tvb, padded_nsap_bytes, 20, 20);
add_new_data_source(actx->pinfo, nsap_tvb, "Padded NSAP Data");
@@ -247,6 +247,14 @@ TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
}
+#.FN_BODY IMSI VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_rnsap_IMSI);
+ dissect_e212_imsi(parameter_tvb, actx->pinfo, subtree, 0, tvb_reported_length(parameter_tvb), false);
+ }
+
#.REGISTER
#RNSAP-PROTOCOL-IES
diff --git a/epan/dissectors/asn1/ros/packet-ros-template.c b/epan/dissectors/asn1/ros/packet-ros-template.c
index e7519cda..755481cd 100644
--- a/epan/dissectors/asn1/ros/packet-ros-template.c
+++ b/epan/dissectors/asn1/ros/packet-ros-template.c
@@ -15,6 +15,7 @@
#include <epan/conversation.h>
#include <epan/asn1.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-pres.h"
@@ -28,13 +29,13 @@ void proto_register_ros(void);
void proto_reg_handoff_ros(void);
/* Initialize the protocol and registered fields */
-static int proto_ros = -1;
+static int proto_ros;
-static proto_tree *top_tree=NULL;
-static guint32 opcode;
-static guint32 invokeid;
+static proto_tree *top_tree;
+static uint32_t opcode;
+static uint32_t invokeid;
-static dissector_handle_t ros_handle = NULL;
+static dissector_handle_t ros_handle;
typedef struct ros_conv_info_t {
wmem_map_t *unmatched; /* unmatched operations */
@@ -42,42 +43,42 @@ typedef struct ros_conv_info_t {
} ros_conv_info_t;
typedef struct ros_call_response {
- gboolean is_request;
- guint32 req_frame;
+ bool is_request;
+ uint32_t req_frame;
nstime_t req_time;
- guint32 rep_frame;
- guint invokeId;
+ uint32_t rep_frame;
+ unsigned 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;
+static int hf_ros_response_in;
+static int hf_ros_response_to;
+static int hf_ros_time;
#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;
+static int ett_ros;
+static int ett_ros_unknown;
+static int ett_ros_invoke_argument;
+static int ett_ros_return_result;
+static int ett_ros_bind_invoke;
+static int ett_ros_bind_result;
+static int ett_ros_bind_error;
+static int ett_ros_unbind_invoke;
+static int ett_ros_unbind_result;
+static int ett_ros_unbind_error;
#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 expert_field ei_ros_dissector_oid_not_implemented;
+static expert_field ei_ros_unknown_ros_pdu;
-static dissector_table_t ros_oid_dissector_table=NULL;
+static dissector_table_t ros_oid_dissector_table;
-static wmem_map_t *protocol_table=NULL;
+static wmem_map_t *protocol_table;
void
-register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, gboolean uses_rtse)
+register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, bool uses_rtse)
{
dissector_add_string("ros.oid", oid, dissector);
@@ -87,16 +88,16 @@ register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector,
}
void
-register_ros_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name, gboolean uses_rtse)
+register_ros_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name, bool uses_rtse)
{
- wmem_map_insert(protocol_table, (gpointer)oid, (gpointer)rinfo);
+ wmem_map_insert(protocol_table, (void *)oid, (void *)rinfo);
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)
+static dissector_t ros_lookup_opr_dissector(int32_t opcode_lcl, const ros_opr_t *operations, bool argument)
{
/* we don't know what order asn2wrs/module definition is, so ... */
if(operations) {
@@ -108,7 +109,7 @@ static dissector_t ros_lookup_opr_dissector(gint32 opcode_lcl, const ros_opr_t *
return NULL;
}
-static dissector_t ros_lookup_err_dissector(gint32 errcode, const ros_err_t *errors)
+static dissector_t ros_lookup_err_dissector(int32_t errcode, const ros_err_t *errors)
{
/* we don't know what order asn2wrs/module definition is, so ... */
if(errors) {
@@ -125,9 +126,9 @@ 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;
+ int32_t opcode_lcl = 0;
+ const char *opname = NULL;
+ const char *suffix = NULL;
dissector_t opdissector = NULL;
const value_string *lookup;
proto_item *item=NULL;
@@ -158,11 +159,11 @@ ros_try_string(const char *oid, tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
switch(session->ros_op & ROS_OP_PDU_MASK) {
case ROS_OP_ARGUMENT:
- opdissector = ros_lookup_opr_dissector(opcode_lcl, rinfo->opr_code_dissectors, TRUE);
+ 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);
+ opdissector = ros_lookup_opr_dissector(opcode_lcl, rinfo->opr_code_dissectors, false);
suffix = "_result";
break;
case ROS_OP_ERROR:
@@ -215,16 +216,16 @@ call_ros_oid_callback(const char *oid, tvbuff_t *tvb, int offset, packet_info *p
}
-static guint
-ros_info_hash_matched(gconstpointer k)
+static unsigned
+ros_info_hash_matched(const void *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)
+static int
+ros_info_equal_matched(const void *k1, const void *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;
@@ -241,16 +242,16 @@ ros_info_equal_matched(gconstpointer k1, gconstpointer k2)
return key1->invokeId==key2->invokeId;
}
-static guint
-ros_info_hash_unmatched(gconstpointer k)
+static unsigned
+ros_info_hash_unmatched(const void *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)
+static int
+ros_info_equal_unmatched(const void *k1, const void *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;
@@ -259,7 +260,7 @@ ros_info_equal_unmatched(gconstpointer k1, gconstpointer k2)
}
static ros_call_response_t *
-ros_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint invokeId, gboolean isInvoke)
+ros_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, unsigned invokeId, bool isInvoke)
{
ros_call_response_t rcr, *rcrp=NULL;
ros_conv_info_t *ros_info;
@@ -317,7 +318,7 @@ ros_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
rcrp->req_frame=pinfo->num;
rcrp->req_time=pinfo->abs_ts;
rcrp->rep_frame=0;
- rcrp->is_request=TRUE;
+ rcrp->is_request=true;
wmem_map_insert(ros_info->unmatched, rcrp, rcrp);
return NULL;
@@ -333,7 +334,7 @@ ros_match_call_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
if(!rcrp->rep_frame){
wmem_map_remove(ros_info->unmatched, rcrp);
rcrp->rep_frame=pinfo->num;
- rcrp->is_request=FALSE;
+ rcrp->is_request=false;
wmem_map_insert(ros_info->matched, rcrp, rcrp);
}
}
@@ -375,7 +376,7 @@ dissect_ros(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* do we have application context from the acse dissector? */
if (data == NULL)
@@ -410,7 +411,7 @@ dissect_ros(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* da
while (tvb_reported_length_remaining(tvb, offset) > 0){
old_offset=offset;
- offset=dissect_ros_ROS(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ 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");
@@ -446,7 +447,7 @@ void proto_register_ros(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ros,
&ett_ros_unknown,
&ett_ros_invoke_argument,
diff --git a/epan/dissectors/asn1/ros/packet-ros-template.h b/epan/dissectors/asn1/ros/packet-ros-template.h
index 6c499edb..f1a28685 100644
--- a/epan/dissectors/asn1/ros/packet-ros-template.h
+++ b/epan/dissectors/asn1/ros/packet-ros-template.h
@@ -39,28 +39,28 @@
# define err_ros_bind (-2) /* pseudo error code for asn2wrs generated binds */
typedef struct _ros_opr_t {
- gint32 opcode;
+ int32_t opcode;
dissector_t arg_pdu;
dissector_t res_pdu;
} ros_opr_t;
typedef struct _ros_err_t {
- gint32 errcode;
+ int32_t errcode;
dissector_t err_pdu;
} ros_err_t;
typedef struct _ros_info_t {
- const gchar *name;
+ const char *name;
int *proto;
- gint *ett_proto;
+ int *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);
+void register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, bool uses_rtse);
+void register_ros_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name, bool 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
index 21146da0..61d2f3b6 100644
--- a/epan/dissectors/asn1/ros/ros-err.cnf
+++ b/epan/dissectors/asn1/ros/ros-err.cnf
@@ -4,7 +4,7 @@
#.FN_HDR ReturnError
dissector_handle_t err_handle = NULL;
- const gchar *descr = "";
+ const char *descr = "";
err_next_tvb = NULL;
#.FN_FTR ReturnError
diff --git a/epan/dissectors/asn1/ros/ros-inv.cnf b/epan/dissectors/asn1/ros/ros-inv.cnf
index 24f20053..f3fbfc51 100644
--- a/epan/dissectors/asn1/ros/ros-inv.cnf
+++ b/epan/dissectors/asn1/ros/ros-inv.cnf
@@ -4,7 +4,7 @@
#.FN_HDR Invoke
dissector_handle_t arg_handle = NULL;
- const gchar *descr = "";
+ const char *descr = "";
arg_next_tvb = NULL;
#.FN_FTR Invoke
diff --git a/epan/dissectors/asn1/ros/ros-rej.cnf b/epan/dissectors/asn1/ros/ros-rej.cnf
index 9b7a7639..ba288a8c 100644
--- a/epan/dissectors/asn1/ros/ros-rej.cnf
+++ b/epan/dissectors/asn1/ros/ros-rej.cnf
@@ -3,7 +3,7 @@
# Copyright 2007 Tomas Kukosa
#.FN_HDR Reject
- const gchar *descr;
+ const char *descr;
problem_str[0] = '\0';
#.FN_FTR Reject
diff --git a/epan/dissectors/asn1/ros/ros-res.cnf b/epan/dissectors/asn1/ros/ros-res.cnf
index d8d892bd..ef20a1a2 100644
--- a/epan/dissectors/asn1/ros/ros-res.cnf
+++ b/epan/dissectors/asn1/ros/ros-res.cnf
@@ -4,7 +4,7 @@
#.FN_HDR ReturnResult
dissector_handle_t res_handle = NULL;
- const gchar *descr = "";
+ const char *descr = "";
actx->rose_ctx->d.code = -1;
res_next_tvb = NULL;
diff --git a/epan/dissectors/asn1/ros/ros.cnf b/epan/dissectors/asn1/ros/ros.cnf
index 8511a8e2..f01ca634 100644
--- a/epan/dissectors/asn1/ros/ros.cnf
+++ b/epan/dissectors/asn1/ros/ros.cnf
@@ -34,7 +34,7 @@ Reject/problem/returnResult rejectResult
/* 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);
+ 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! */
@@ -52,7 +52,7 @@ Reject/problem/returnResult rejectResult
/* 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);
+ 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! */
@@ -70,7 +70,7 @@ Reject/problem/returnResult rejectResult
/* 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);
+ 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! */
@@ -168,7 +168,7 @@ Reject/problem/returnResult rejectResult
VAL_PTR = &problem
#.FN_BODY GeneralProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
@@ -178,7 +178,7 @@ Reject/problem/returnResult rejectResult
VAL_PTR = &problem
#.FN_BODY InvokeProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
@@ -188,7 +188,7 @@ Reject/problem/returnResult rejectResult
VAL_PTR = &problem
#.FN_BODY ReturnResultProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
@@ -198,7 +198,7 @@ Reject/problem/returnResult rejectResult
VAL_PTR = &problem
#.FN_BODY ReturnErrorProblem
- guint32 problem;
+ uint32_t problem;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/rrc/packet-rrc-template.c b/epan/dissectors/asn1/rrc/packet-rrc-template.c
index 9df0bb60..3420179d 100644
--- a/epan/dissectors/asn1/rrc/packet-rrc-template.c
+++ b/epan/dissectors/asn1/rrc/packet-rrc-template.c
@@ -27,6 +27,7 @@
#include <epan/expert.h>
#include <epan/proto_data.h>
#include <epan/prefs.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
@@ -52,11 +53,11 @@ extern int proto_fp; /*Handler to FP*/
extern int proto_umts_mac; /*Handler to MAC*/
extern int proto_umts_rlc; /*Handler to RLC*/
-GTree * hsdsch_muxed_flows = NULL;
-GTree * rrc_ciph_info_tree = NULL;
-wmem_tree_t* rrc_global_urnti_crnti_map = NULL;
+GTree * hsdsch_muxed_flows;
+GTree * rrc_ciph_info_tree;
+wmem_tree_t* rrc_global_urnti_crnti_map;
static int msg_type _U_;
-static gboolean rrc_nas_in_root_tree;
+static bool rrc_nas_in_root_tree;
enum rrc_sib_segment_type {
RRC_SIB_SEG_NO_SEGMENT = 0,
@@ -79,21 +80,21 @@ enum rrc_sib_segment_type {
typedef struct umts_rrc_private_data_t
{
- guint32 s_rnc_id; /* The S-RNC ID part of a U-RNTI */
- guint32 s_rnti; /* The S-RNTI part of a U-RNTI */
- guint32 new_u_rnti;
- guint32 current_u_rnti;
- guint32 scrambling_code;
+ uint32_t s_rnc_id; /* The S-RNC ID part of a U-RNTI */
+ uint32_t s_rnti; /* The S-RNTI part of a U-RNTI */
+ uint32_t new_u_rnti;
+ uint32_t current_u_rnti;
+ uint32_t scrambling_code;
enum nas_sys_info_gsm_map cn_domain;
wmem_strbuf_t* digits_strbuf; /* A collection of digits in a string. Used for reconstructing IMSIs or MCC-MNC pairs */
wmem_strbuf_t* last_mcc_strbuf; /* Last seen MCC digits string */
- gboolean digits_strbuf_parsing_failed_flag; /* Whether an error occurred when creating the IMSI/MCC-MNC pair string */
- guint32 rbid;
- guint32 rlc_ciphering_sqn; /* Sequence number where ciphering starts in a given bearer */
+ bool digits_strbuf_parsing_failed_flag; /* Whether an error occurred when creating the IMSI/MCC-MNC pair string */
+ uint32_t rbid;
+ uint32_t rlc_ciphering_sqn; /* Sequence number where ciphering starts in a given bearer */
rrc_ciphering_info* ciphering_info;
enum rrc_ue_state rrc_state_indicator;
enum rrc_sib_segment_type curr_sib_segment_type;
- guint32 curr_sib_type;
+ uint32_t curr_sib_type;
} umts_rrc_private_data_t;
@@ -106,61 +107,61 @@ static umts_rrc_private_data_t* umts_rrc_get_private_data(asn1_ctx_t *actx)
return (umts_rrc_private_data_t*)actx->private_data;
}
-static guint32 private_data_get_s_rnc_id(asn1_ctx_t *actx)
+static uint32_t private_data_get_s_rnc_id(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->s_rnc_id;
}
-static void private_data_set_s_rnc_id(asn1_ctx_t *actx, guint32 s_rnc_id)
+static void private_data_set_s_rnc_id(asn1_ctx_t *actx, uint32_t s_rnc_id)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->s_rnc_id = s_rnc_id;
}
-static guint32 private_data_get_s_rnti(asn1_ctx_t *actx)
+static uint32_t private_data_get_s_rnti(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->s_rnti;
}
-static void private_data_set_s_rnti(asn1_ctx_t *actx, guint32 s_rnti)
+static void private_data_set_s_rnti(asn1_ctx_t *actx, uint32_t s_rnti)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->s_rnti = s_rnti;
}
-static guint32 private_data_get_new_u_rnti(asn1_ctx_t *actx)
+static uint32_t private_data_get_new_u_rnti(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->new_u_rnti;
}
-static void private_data_set_new_u_rnti(asn1_ctx_t *actx, guint32 new_u_rnti)
+static void private_data_set_new_u_rnti(asn1_ctx_t *actx, uint32_t new_u_rnti)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->new_u_rnti = new_u_rnti;
}
-static guint32 private_data_get_current_u_rnti(asn1_ctx_t *actx)
+static uint32_t private_data_get_current_u_rnti(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->current_u_rnti;
}
-static void private_data_set_current_u_rnti(asn1_ctx_t *actx, guint32 current_u_rnti)
+static void private_data_set_current_u_rnti(asn1_ctx_t *actx, uint32_t current_u_rnti)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->current_u_rnti = current_u_rnti;
}
-static guint32 private_data_get_scrambling_code(asn1_ctx_t *actx)
+static uint32_t private_data_get_scrambling_code(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->scrambling_code;
}
-static void private_data_set_scrambling_code(asn1_ctx_t *actx, guint32 scrambling_code)
+static void private_data_set_scrambling_code(asn1_ctx_t *actx, uint32_t scrambling_code)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->scrambling_code = scrambling_code;
@@ -190,13 +191,13 @@ static void private_data_set_digits_strbuf(asn1_ctx_t *actx, wmem_strbuf_t* digi
private_data->digits_strbuf = digits_strbuf;
}
-static gboolean private_data_get_digits_strbuf_parsing_failed_flag(asn1_ctx_t *actx)
+static bool private_data_get_digits_strbuf_parsing_failed_flag(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->digits_strbuf_parsing_failed_flag;
}
-static void private_data_set_digits_strbuf_parsing_failed_flag(asn1_ctx_t *actx, gboolean digits_strbuf_parsing_failed_flag)
+static void private_data_set_digits_strbuf_parsing_failed_flag(asn1_ctx_t *actx, bool digits_strbuf_parsing_failed_flag)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->digits_strbuf_parsing_failed_flag = digits_strbuf_parsing_failed_flag;
@@ -214,25 +215,25 @@ static void private_data_set_last_mcc_strbuf(asn1_ctx_t *actx, wmem_strbuf_t* la
private_data->last_mcc_strbuf = last_mcc_strbuf;
}
-static guint32 private_data_get_rbid(asn1_ctx_t *actx)
+static uint32_t private_data_get_rbid(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->rbid;
}
-static void private_data_set_rbid(asn1_ctx_t *actx, guint32 rbid)
+static void private_data_set_rbid(asn1_ctx_t *actx, uint32_t rbid)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->rbid = rbid;
}
-static guint32 private_data_get_rlc_ciphering_sqn(asn1_ctx_t *actx)
+static uint32_t private_data_get_rlc_ciphering_sqn(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->rlc_ciphering_sqn;
}
-static void private_data_set_rlc_ciphering_sqn(asn1_ctx_t *actx, guint32 rlc_ciphering_sqn)
+static void private_data_set_rlc_ciphering_sqn(asn1_ctx_t *actx, uint32_t rlc_ciphering_sqn)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->rlc_ciphering_sqn = rlc_ciphering_sqn;
@@ -274,13 +275,13 @@ static void private_data_set_curr_sib_segment_type(asn1_ctx_t *actx, enum rrc_si
private_data->curr_sib_segment_type = curr_sib_segment_type;
}
-static guint32 private_data_get_curr_sib_type(asn1_ctx_t *actx)
+static uint32_t private_data_get_curr_sib_type(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->curr_sib_type;
}
-static void private_data_set_curr_sib_type(asn1_ctx_t *actx, guint32 curr_sib_type)
+static void private_data_set_curr_sib_type(asn1_ctx_t *actx, uint32_t curr_sib_type)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->curr_sib_type = curr_sib_type;
@@ -289,16 +290,16 @@ static void private_data_set_curr_sib_type(asn1_ctx_t *actx, guint32 curr_sib_ty
/*****************************************************************************/
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;
+static dissector_handle_t rrc_ue_radio_access_cap_info_handle;
+static dissector_handle_t rrc_pcch_handle;
+static dissector_handle_t rrc_ul_ccch_handle;
+static dissector_handle_t rrc_dl_ccch_handle;
+static dissector_handle_t rrc_ul_dcch_handle;
+static dissector_handle_t rrc_dl_dcch_handle;
+static dissector_handle_t rrc_bcch_fach_handle;
+static dissector_handle_t lte_rrc_ue_eutra_cap_handle;
+static dissector_handle_t lte_rrc_dl_dcch_handle;
+static dissector_handle_t gsm_rlcmac_dl_handle;
/* Forward declarations */
void proto_register_rrc(void);
@@ -312,7 +313,7 @@ static int dissect_SysInfoType22_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tr
#include "packet-rrc-val.h"
/* Initialize the protocol and registered fields */
-int proto_rrc = -1;
+int proto_rrc;
static int hf_test;
static int hf_urnti;
static int hf_urnti_new;
@@ -320,31 +321,31 @@ static int hf_urnti_current;
#include "packet-rrc-hf.c"
/* Initialize the subtree pointers */
-static int ett_rrc = -1;
+static int ett_rrc;
#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 gint ett_rrc_cellIdentity = -1;
-static gint ett_rrc_sib_data_var = -1;
+static int ett_rrc_eutraFeatureGroupIndicators;
+static int ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo;
+static int ett_rrc_ims_info;
+static int ett_rrc_cellIdentity;
+static int ett_rrc_sib_data_var;
-static expert_field ei_rrc_no_hrnti = EI_INIT;
+static expert_field ei_rrc_no_hrnti;
/* 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 int hf_rrc_cellIdentity_rnc_id = -1;
-static int hf_rrc_cellIdentity_c_id = -1;
+static int hf_rrc_eutra_feat_group_ind_1;
+static int hf_rrc_eutra_feat_group_ind_2;
+static int hf_rrc_eutra_feat_group_ind_3;
+static int hf_rrc_eutra_feat_group_ind_4;
+static int hf_rrc_ims_info_atgw_trans_det_cont_type;
+static int hf_rrc_ims_info_atgw_udp_port;
+static int hf_rrc_ims_info_atgw_ipv4;
+static int hf_rrc_ims_info_atgw_ipv6;
+static int hf_rrc_cellIdentity_rnc_id;
+static int hf_rrc_cellIdentity_c_id;
static const true_false_string rrc_eutra_feat_group_ind_1_val = {
"UTRA CELL_PCH to EUTRA RRC_IDLE cell reselection - Supported",
@@ -372,7 +373,7 @@ static int flowd,type;
/*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 uint8_t num_chans_per_flow[RRC_MAX_NUM_HSDHSCH_MACDFLOW];
/**
* Return the maximum counter, useful for initiating counters
@@ -380,10 +381,10 @@ static guint8 num_chans_per_flow[RRC_MAX_NUM_HSDHSCH_MACDFLOW];
#if 0
static int get_max_counter(int com_context){
int i;
- guint32 max = 0;
+ uint32_t max = 0;
rrc_ciphering_info * ciphering_info;
- if( (ciphering_info = g_tree_lookup(rrc_ciph_info_tree, GINT_TO_POINTER((gint)com_context))) == NULL ){
+ if( (ciphering_info = g_tree_lookup(rrc_ciph_info_tree, GINT_TO_POINTER((int)com_context))) == NULL ){
return 0;
}
for(i = 0; i<31; i++){
@@ -394,28 +395,28 @@ static int get_max_counter(int com_context){
}
#endif
/** Utility functions used for various comparisons/cleanups in tree **/
-static gint rrc_key_cmp(gconstpointer b_ptr, gconstpointer a_ptr, gpointer ignore _U_){
+static int rrc_key_cmp(const void *b_ptr, const void *a_ptr, void *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_value(gpointer value ){
+static void rrc_free_value(void *value ){
g_free(value);
}
static rrc_ciphering_info*
get_or_create_cipher_info(fp_info *fpinf, rlc_info *rlcinf) {
rrc_ciphering_info *cipher_info = NULL;
- guint32 ueid;
+ uint32_t ueid;
int i;
if (!fpinf || !rlcinf)
return NULL;
ueid = rlcinf->ueid[fpinf->cur_tb];
- cipher_info = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_info_tree, GINT_TO_POINTER((gint)ueid));
+ cipher_info = (rrc_ciphering_info *)g_tree_lookup(rrc_ciph_info_tree, GINT_TO_POINTER((int)ueid));
if( cipher_info == NULL ){
cipher_info = g_new0(rrc_ciphering_info,1);
@@ -435,16 +436,16 @@ get_or_create_cipher_info(fp_info *fpinf, rlc_info *rlcinf) {
cipher_info->ciphering_algorithm = -1;
cipher_info->integrity_algorithm = -1;
- g_tree_insert(rrc_ciph_info_tree, GINT_TO_POINTER((gint)rlcinf->ueid[fpinf->cur_tb]), cipher_info);
+ g_tree_insert(rrc_ciph_info_tree, GINT_TO_POINTER((int)rlcinf->ueid[fpinf->cur_tb]), cipher_info);
}
return cipher_info;
}
/* Try to find the NBAP C-RNC Context and, if found, pair it with a given U-RNTI */
static void
-rrc_try_map_urnti_to_crncc(guint32 u_rnti, asn1_ctx_t *actx)
+rrc_try_map_urnti_to_crncc(uint32_t u_rnti, asn1_ctx_t *actx)
{
- guint32 scrambling_code, crnc_context;
+ uint32_t scrambling_code, crnc_context;
/* Getting the user's Uplink Scrambling Code*/
scrambling_code = private_data_get_scrambling_code(actx);
if (u_rnti != 0 && scrambling_code != 0) {
@@ -469,22 +470,24 @@ dissect_rrc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
proto_item *rrc_item = NULL;
proto_tree *rrc_tree = NULL;
struct rrc_info *rrcinf;
+ fp_info *fpinf;
top_tree = tree;
rrcinf = (struct rrc_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_rrc, 0);
+ fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_fp, 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);
+ memset(num_chans_per_flow,0,sizeof(uint8_t)*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]) {
+ if (rrcinf && fpinf) {
+ switch (rrcinf->msgtype[fpinf->cur_tb]) {
case RRC_MESSAGE_TYPE_PCCH:
call_dissector(rrc_pcch_handle, tvb, pinfo, rrc_tree);
break;
@@ -522,9 +525,6 @@ rrc_init(void) {
NULL, /* data pointer, optional */
NULL,
rrc_free_value);
-
- /* Global U-RNTI / C-RNTI map to be used in RACH channels */
- rrc_global_urnti_crnti_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
}
static void
@@ -600,7 +600,7 @@ void proto_register_rrc(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_rrc,
#include "packet-rrc-ettarr.c"
&ett_rrc_eutraFeatureGroupIndicators,
@@ -638,6 +638,9 @@ void proto_register_rrc(void) {
"Show NAS PDU in root packet details",
"Whether the NAS PDU should be shown in the root packet details tree",
&rrc_nas_in_root_tree);
+
+ /* Global U-RNTI / C-RNTI map to be used in RACH channels */
+ rrc_global_urnti_crnti_map = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
}
diff --git a/epan/dissectors/asn1/rrc/packet-rrc-template.h b/epan/dissectors/asn1/rrc/packet-rrc-template.h
index 2b38d273..68be7373 100644
--- a/epan/dissectors/asn1/rrc/packet-rrc-template.h
+++ b/epan/dissectors/asn1/rrc/packet-rrc-template.h
@@ -45,19 +45,19 @@ enum rrc_ue_state {
typedef struct rrc_info
{
enum rrc_message_type msgtype[MAX_RRC_FRAMES];
- guint16 hrnti[MAX_RRC_FRAMES];
+ uint16_t hrnti[MAX_RRC_FRAMES];
} rrc_info;
/*Struct for storing ciphering information*/
typedef struct rrc_ciphering_info
{
int seq_no[31][2]; /*Indicates for each Rbid when ciphering starts - Indexers are [BearerID][Direction]*/
- GTree * /*guint32*/ start_cs; /*Start value for CS counter*/
- GTree * /*guint32*/ start_ps; /*Start value for PS counter*/
- gint32 ciphering_algorithm; /*Indicates which type of ciphering algorithm used*/
- gint32 integrity_algorithm; /*Indicates which type of integrity algorithm used*/
- guint32 setup_frame[2]; /*Store which frame contained this information - Indexer is [Direction]*/
- guint32 ps_conf_counters[31][2]; /*This should also be made for CS*/
+ GTree * /*uint32_t*/ start_cs; /*Start value for CS counter*/
+ GTree * /*uint32_t*/ start_ps; /*Start value for PS counter*/
+ int32_t ciphering_algorithm; /*Indicates which type of ciphering algorithm used*/
+ int32_t integrity_algorithm; /*Indicates which type of integrity algorithm used*/
+ uint32_t setup_frame[2]; /*Store which frame contained this information - Indexer is [Direction]*/
+ uint32_t ps_conf_counters[31][2]; /*This should also be made for CS*/
} rrc_ciphering_info;
diff --git a/epan/dissectors/asn1/rrc/rrc.cnf b/epan/dissectors/asn1/rrc/rrc.cnf
index 381c274c..cae29ba9 100644
--- a/epan/dissectors/asn1/rrc/rrc.cnf
+++ b/epan/dissectors/asn1/rrc/rrc.cnf
@@ -234,7 +234,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.FN_BODY CellUpdateConfirm-CCCH
fp_info *fpinf = NULL;
rlc_info *rlcinf = NULL;
- guint32 u_rnti;
+ uint32_t u_rnti;
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm-CCCH");
%(DEFAULT_BODY)s
if(PINFO_FD_VISITED(actx->pinfo)) {
@@ -258,7 +258,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.FN_BODY CellUpdateConfirm
fp_info *fpinf = NULL;
rlc_info *rlcinf = NULL;
- guint32 u_rnti;
+ uint32_t u_rnti;
col_append_str(actx->pinfo->cinfo, COL_INFO, "CellUpdateConfirm");
%(DEFAULT_BODY)s
if(PINFO_FD_VISITED(actx->pinfo)) {
@@ -386,7 +386,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.FN_BODY PhysicalChannelReconfiguration
fp_info *fpinf = NULL;
rlc_info *rlcinf = NULL;
- guint32 u_rnti;
+ uint32_t u_rnti;
col_append_str(actx->pinfo->cinfo, COL_INFO, "PhysicalChannelReconfiguration");
%(DEFAULT_BODY)s
if(PINFO_FD_VISITED(actx->pinfo)) {
@@ -427,7 +427,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.FN_BODY RadioBearerReconfiguration
fp_info *fpinf = NULL;
rlc_info *rlcinf = NULL;
- guint32 u_rnti;
+ uint32_t u_rnti;
col_append_str(actx->pinfo->cinfo, COL_INFO, "RadioBearerReconfiguration");
%(DEFAULT_BODY)s
if(PINFO_FD_VISITED(actx->pinfo)) {
@@ -502,7 +502,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
%(DEFAULT_BODY)s
#.FN_BODY RRCConnectionSetup
- guint32 new_u_rnti;
+ uint32_t new_u_rnti;
col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup");
%(DEFAULT_BODY)s
if (PINFO_FD_VISITED(actx->pinfo)) {
@@ -525,7 +525,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
fp_info *fpinf;
rlc_info *rlcinf;
rrc_ciphering_info *ciphering_info = NULL;
- guint8 direction;
+ uint8_t direction;
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand");
fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
@@ -546,7 +546,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
fp_info *fpinf;
rlc_info *rlcinf;
rrc_ciphering_info *ciphering_info = NULL;
- guint8 direction;
+ uint8_t direction;
col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete");
fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
@@ -592,7 +592,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.FN_BODY TransportChannelReconfiguration
fp_info *fpinf = NULL;
rlc_info *rlcinf = NULL;
- guint32 u_rnti;
+ uint32_t u_rnti;
col_append_str(actx->pinfo->cinfo, COL_INFO, "TransportChannelReconfiguration");
%(DEFAULT_BODY)s
if(PINFO_FD_VISITED(actx->pinfo)) {
@@ -700,7 +700,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.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;
+ unsigned bits_remaining, whole_octets_remaining;
%(DEFAULT_BODY)s
@@ -715,7 +715,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
}
#.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;
+ unsigned bits_remaining, whole_octets_remaining;
%(DEFAULT_BODY)s
@@ -734,7 +734,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
%(DEFAULT_BODY)s
if (parameter_tvb){
- guint8 byte = tvb_get_guint8(parameter_tvb, 0);
+ uint8_t byte = tvb_get_uint8(parameter_tvb, 0);
if (byte == 0x06) {
if (gsm_a_dtap_handle) {
call_dissector(gsm_a_dtap_handle, parameter_tvb, actx->pinfo, tree);
@@ -751,7 +751,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
%(DEFAULT_BODY)s
if (parameter_tvb){
- de_ms_cm_2(parameter_tvb, tree, actx->pinfo, 2, tvb_get_guint8(parameter_tvb,1), NULL, 0);
+ de_ms_cm_2(parameter_tvb, tree, actx->pinfo, 2, tvb_get_uint8(parameter_tvb,1), NULL, 0);
}
#.FN_BODY GSM-Classmark3 VAL_PTR = &parameter_tvb
@@ -808,7 +808,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
if(eutraFeatureGroupIndicators_tvb){
/* Dissect eutraFeatureGroupIndicators */
proto_tree *subtree;
- gint curr_bit_offset = 0;
+ int 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++;
@@ -822,8 +822,8 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.FN_BODY PLMN-Identity
wmem_strbuf_t* mcc_mnc_strbuf;
wmem_strbuf_t* mcc_strbuf;
- guint32 string_len;
- gchar* mcc_mnc_string;
+ uint32_t string_len;
+ char* mcc_mnc_string;
tvbuff_t* mcc_mnc_tvb;
/* Reset the digits string in the private data struct */
@@ -831,7 +831,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
mcc_mnc_strbuf = wmem_strbuf_new_sized(actx->pinfo->pool,7);
private_data_set_digits_strbuf(actx, mcc_mnc_strbuf);
/* Reset parsing failure flag*/
- private_data_set_digits_strbuf_parsing_failed_flag(actx, FALSE);
+ private_data_set_digits_strbuf_parsing_failed_flag(actx, false);
%(DEFAULT_BODY)s
private_data_set_digits_strbuf(actx, NULL);
/* Check for parsing errors */
@@ -840,7 +840,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
}
/* Extracting the string collected in the strbuf */
- string_len = (guint32)wmem_strbuf_get_len(mcc_mnc_strbuf);
+ string_len = (uint32_t)wmem_strbuf_get_len(mcc_mnc_strbuf);
mcc_mnc_string = wmem_strbuf_finalize(mcc_mnc_strbuf);
if(string_len >= 3)
@@ -855,7 +855,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
}
/* Creating TVB from extracted string*/
- mcc_mnc_tvb = tvb_new_child_real_data(tvb, (guint8*)mcc_mnc_string, string_len, string_len);
+ mcc_mnc_tvb = tvb_new_child_real_data(tvb, (uint8_t*)mcc_mnc_string, string_len, string_len);
add_new_data_source(actx->pinfo, mcc_mnc_tvb, "MCC-MNC");
/* Calling E.212 */
@@ -865,8 +865,8 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
wmem_strbuf_t* mcc_mnc_strbuf;
wmem_strbuf_t* temp_strbuf;
wmem_strbuf_t* last_mcc_strbuf;
- guint32 string_len;
- gchar* mcc_mnc_string;
+ uint32_t string_len;
+ char* mcc_mnc_string;
tvbuff_t* mcc_mnc_tvb;
/* Reset the digits string in the private data struct */
@@ -874,7 +874,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
mcc_mnc_strbuf = wmem_strbuf_new_sized(actx->pinfo->pool,7);
private_data_set_digits_strbuf(actx, mcc_mnc_strbuf);
/* Reset parsing failure flag*/
- private_data_set_digits_strbuf_parsing_failed_flag(actx, FALSE);
+ private_data_set_digits_strbuf_parsing_failed_flag(actx, false);
%(DEFAULT_BODY)s
private_data_set_digits_strbuf(actx, NULL);
/* Check for parsing errors */
@@ -883,7 +883,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
}
/* Extracting the string collected in the strbuf */
- string_len = (guint32)wmem_strbuf_get_len(mcc_mnc_strbuf);
+ string_len = (uint32_t)wmem_strbuf_get_len(mcc_mnc_strbuf);
mcc_mnc_string = wmem_strbuf_finalize(mcc_mnc_strbuf);
if (string_len > 3) {
/* 3 MCC digits and at least 1 MNC digit were found, keep MCC for later
@@ -906,7 +906,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
wmem_strbuf_append_printf(temp_strbuf,"%%s",wmem_strbuf_get_str(last_mcc_strbuf));
wmem_strbuf_append_printf(temp_strbuf,"%%s",mcc_mnc_string);
/* Update length of recovered MCC-MNC pair */
- string_len = (guint32)wmem_strbuf_get_len(temp_strbuf);
+ string_len = (uint32_t)wmem_strbuf_get_len(temp_strbuf);
mcc_mnc_string = wmem_strbuf_finalize(temp_strbuf);
}
}
@@ -915,7 +915,7 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
/* optional MCC was present (or restored above), we can call E.212 dissector */
/* Creating TVB from extracted string*/
- mcc_mnc_tvb = tvb_new_child_real_data(tvb, (guint8*)mcc_mnc_string, string_len, string_len);
+ mcc_mnc_tvb = tvb_new_child_real_data(tvb, (uint8_t*)mcc_mnc_string, string_len, string_len);
add_new_data_source(actx->pinfo, mcc_mnc_tvb, "MCC-MNC");
/* Calling E.212 */
@@ -924,15 +924,15 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
#.FN_BODY IMSI-GSM-MAP
wmem_strbuf_t* imsi_strbuf;
- guint32 string_len;
- gchar* imsi_string;
+ uint32_t string_len;
+ char* imsi_string;
tvbuff_t* imsi_tvb;
/* Reset the digits string in the private data struct */
imsi_strbuf = wmem_strbuf_new_sized(actx->pinfo->pool,16);
private_data_set_digits_strbuf(actx, imsi_strbuf);
/* Reset parsing failure flag*/
- private_data_set_digits_strbuf_parsing_failed_flag(actx, FALSE);
+ private_data_set_digits_strbuf_parsing_failed_flag(actx, false);
%(DEFAULT_BODY)s
private_data_set_digits_strbuf(actx, NULL);
/* Check for parsing errors */
@@ -941,18 +941,18 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
}
/* Extracting the string collected in the strbuf */
- string_len = (guint32)wmem_strbuf_get_len(imsi_strbuf);
+ string_len = (uint32_t)wmem_strbuf_get_len(imsi_strbuf);
imsi_string = wmem_strbuf_finalize(imsi_strbuf);
/* Creating TVB from extracted string*/
- imsi_tvb = tvb_new_child_real_data(tvb, (guint8*)imsi_string, string_len, string_len);
+ imsi_tvb = tvb_new_child_real_data(tvb, (uint8_t*)imsi_string, string_len, string_len);
add_new_data_source(actx->pinfo, imsi_tvb, "IMSI");
/* Calling E.212 */
dissect_e212_utf8_imsi(imsi_tvb,actx->pinfo,tree,0,string_len);
#.FN_BODY Digit VAL_PTR = &digit
- guint32 digit;
+ uint32_t digit;
wmem_strbuf_t* digits_strbuf; /* The string of either an IMSI or a MCC-MNC pair */
%(DEFAULT_BODY)s
@@ -962,15 +962,15 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
digits_strbuf = private_data_get_digits_strbuf(actx);
if (digits_strbuf) {
- gchar digit_char;
+ char digit_char;
if(digit > 9) {
- private_data_set_digits_strbuf_parsing_failed_flag(actx, TRUE);
+ private_data_set_digits_strbuf_parsing_failed_flag(actx, true);
return offset;
}
- /* Converting to the matching gchar */
- digit_char = (gchar)(digit + '0');
+ /* Converting to the matching char */
+ digit_char = (char)(digit + '0');
/* Appending to the digits string */
wmem_strbuf_append_c(digits_strbuf, digit_char);
@@ -982,19 +982,19 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
private_data_set_curr_sib_segment_type(actx,RRC_SIB_SEG_NO_SEGMENT); /* Resetting value */
#.FN_BODY SIB-Type VAL_PTR = &sib_type
- guint32 sib_type;
+ uint32_t sib_type;
%(DEFAULT_BODY)s
private_data_set_curr_sib_type(actx,sib_type);
#.FN_BODY SIB-Data-variable VAL_PTR = &sib_data_tvb
tvbuff_t *sib_data_tvb;
- guint32 sib_type;
+ uint32_t sib_type;
proto_tree *subtree;
- guint32 seg_type;
+ uint32_t seg_type;
%(DEFAULT_BODY)s
- seg_type = (guint32)private_data_get_curr_sib_segment_type(actx);
+ seg_type = (uint32_t)private_data_get_curr_sib_segment_type(actx);
if(seg_type != RRC_SIB_SEG_COMP) {
/* TODO: The Dissector only handles 'complete SIBs' right now.
* Reassembly logic should be implemented, taking into acocunt that
@@ -1118,8 +1118,8 @@ HandoverFromUTRANCommand-GSM-r6-IEs/gsm-message/single-GSM-Message single-GSM-Me
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;
+ int curr_offset = 0;
+ uint32_t 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++;
@@ -1149,9 +1149,10 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE
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
- guint32 nas_sys_info;
+ uint32_t nas_sys_info;
%(DEFAULT_BODY)s
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, "(%%s)", val_to_str_const(nas_sys_info,rrc_CN_DomainIdentity_vals,"Unknown"));
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "(%%s)",
+ val_to_str_const(nas_sys_info,rrc_CN_DomainIdentity_vals, "Unknown"));
nas_sys_info++; /* CS = 0, PS = 1 but the enum defines 0 as Unknown and CS = 1, PS = 2 */
private_data_set_cn_domain(actx, (enum nas_sys_info_gsm_map) nas_sys_info);
@@ -1173,7 +1174,7 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE
#.FN_BODY NAS-SystemInformationGSM-MAP VAL_PTR = &nas_sys_info_gsm_map_tvb
tvbuff_t *nas_sys_info_gsm_map_tvb = NULL;
- guint32 length;
+ uint32_t length;
enum nas_sys_info_gsm_map cn_domain;
proto_tree *subtree;
@@ -1220,14 +1221,14 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE
#.FN_BODY U-RNTI
private_data_set_s_rnc_id(actx, 0);
private_data_set_s_rnti(actx, 0);
- guint32 s_rnc_id;
- guint32 s_rnti;
- guint32 u_rnti_value;
- guint32 original_offset;
+ uint32_t s_rnc_id;
+ uint32_t s_rnti;
+ uint32_t u_rnti_value;
+ uint32_t original_offset;
proto_item *ti;
- guint32 item_len;
+ uint32_t item_len;
proto_tree *sub_tree;
- gboolean is_new_urnti;
+ bool is_new_urnti;
int generated_field_hf;
original_offset = offset;
%(DEFAULT_BODY)s
@@ -1268,8 +1269,8 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
fp_fach_channel_info_t *fp_fach_channel_info = NULL;
tvbuff_t * c_rnti_tvb = NULL;
- guint16 c_rnti = 0;
- guint32 u_rnti = 0;
+ uint16_t c_rnti = 0;
+ uint32_t u_rnti = 0;
fp_crnti_allocation_info_t *fp_crnti_allocation_info = NULL;
%(DEFAULT_BODY)s
if (!c_rnti_tvb)
@@ -1331,12 +1332,12 @@ HNBName TYPE=FT_STRING DISPLAY=BASE_NONE
wmem_tree_insert32(rrc_global_urnti_crnti_map, c_rnti, (void *)fp_crnti_allocation_info);
#.FN_BODY UL-ScramblingCode VAL_PTR = &scrambling_code
-guint32 scrambling_code;
+uint32_t scrambling_code;
%(DEFAULT_BODY)s
private_data_set_scrambling_code(actx,scrambling_code);
#.FN_BODY RRC-StateIndicator VAL_PTR = &state_dec
-gint32 state_dec = -1;
+int32_t state_dec = -1;
%(DEFAULT_BODY)s
if(state_dec >= 0 && state_dec <= 3) {
state_dec++; /* Encoded values are 0-based, Values in the enum are 1-based*/
@@ -1359,9 +1360,10 @@ if(state_dec >= 0 && state_dec <= 3) {
#.FN_BODY DL-TransportChannelType-r5 VAL_PTR = &type
/*Here we try to figure out which HS-DSCH channels are multiplexed*/
- guint *flowd_p;
- guint *cur_val=NULL;
+ unsigned *flowd_p;
+ unsigned *cur_val=NULL;
struct rrc_info *rrcinf;
+ fp_info *fpinf;
%(DEFAULT_BODY)s
@@ -1371,16 +1373,17 @@ if(state_dec >= 0 && state_dec <= 3) {
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)){
+ fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
+ if((rrcinf == NULL) || (fpinf == NULL) || (rrcinf->hrnti[fpinf->cur_tb] == 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 ){
+ if( (cur_val=(int *)g_tree_lookup(hsdsch_muxed_flows, GUINT_TO_POINTER((unsigned)rrcinf->hrnti[fpinf->cur_tb]))) == NULL ){
- flowd_p = g_new0(guint, 1);
+ flowd_p = g_new0(unsigned, 1);
*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);
+ g_tree_insert(hsdsch_muxed_flows, GUINT_TO_POINTER((unsigned)rrcinf->hrnti[fpinf->cur_tb]), flowd_p);
}else{
*cur_val = (1U<<flowd) | *cur_val;
@@ -1394,9 +1397,10 @@ if(state_dec >= 0 && state_dec <= 3) {
#.FN_BODY DL-TransportChannelType-r7 VAL_PTR = &type
/*Here we try to figure out which HS-DSCH channels are multiplexed*/
- guint *flowd_p;
- guint *cur_val=NULL;
+ unsigned *flowd_p;
+ unsigned *cur_val=NULL;
struct rrc_info *rrcinf;
+ fp_info *fpinf;
%(DEFAULT_BODY)s
@@ -1407,16 +1411,17 @@ if(state_dec >= 0 && state_dec <= 3) {
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)){
+ fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
+ if((rrcinf == NULL) || (fpinf == NULL) || (rrcinf->hrnti[fpinf->cur_tb] == 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 ){
+ if( (cur_val=(int *)g_tree_lookup(hsdsch_muxed_flows, GUINT_TO_POINTER((unsigned)rrcinf->hrnti[fpinf->cur_tb]))) == NULL ){
- flowd_p = g_new0(guint, 1);
+ flowd_p = g_new0(unsigned, 1);
*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);
+ g_tree_insert(hsdsch_muxed_flows, GUINT_TO_POINTER((unsigned)rrcinf->hrnti[fpinf->cur_tb]), flowd_p);
}else{
*cur_val = (1U<<flowd) | *cur_val;
@@ -1434,22 +1439,26 @@ if(state_dec >= 0 && state_dec <= 3) {
#.FN_BODY H-RNTI VAL_PTR = &hrnti_tvb
tvbuff_t *hrnti_tvb;
struct rrc_info *rrcinf;
+ fp_info *fpinf;
%(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);
+ fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
+ if (fpinf) {
+ 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[fpinf->cur_tb] = tvb_get_ntohs(hrnti_tvb, 0);
}
- 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;
rlc_info *rlcinf;
rrc_ciphering_info * ciphering_info;
- guint32 * start;
+ uint32_t * start;
enum nas_sys_info_gsm_map cn_domain;
%(DEFAULT_BODY)s
@@ -1478,7 +1487,7 @@ if(state_dec >= 0 && state_dec <= 3) {
/*Retrieve and store the value*/
if(ciphering_info && ciphering_info->start_ps) {
- start = g_new(guint32,1);
+ start = g_new(uint32_t,1);
*start = tvb_get_bits32(start_val,0,20,ENC_BIG_ENDIAN);
/*Insert the value based on current frame num since this might vary over time*/
g_tree_insert(ciphering_info->start_ps, GUINT_TO_POINTER(actx->pinfo->num), start);
@@ -1493,9 +1502,9 @@ if(state_dec >= 0 && state_dec <= 3) {
fp_info *fpinf;
rlc_info *rlcinf;
rrc_ciphering_info *ciphering_info;
- guint32 rbid;
- guint32 rlc_ciphering_sqn;
- guint32 direction;
+ uint32_t rbid;
+ uint32_t rlc_ciphering_sqn;
+ uint32_t direction;
fpinf = (fp_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_fp, 0);
rlcinf = (rlc_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_umts_rlc, 0);
@@ -1520,19 +1529,19 @@ if(state_dec >= 0 && state_dec <= 3) {
#.FN_BODY RB-Identity VAL_PTR = &rbid
-guint32 rbid;
+uint32_t rbid;
%(DEFAULT_BODY)s
private_data_set_rbid(actx, rbid);
#.FN_BODY RLC-SequenceNumber VAL_PTR = &rlc_ciphering_sqn
-guint32 rlc_ciphering_sqn;
+uint32_t rlc_ciphering_sqn;
%(DEFAULT_BODY)s
private_data_set_rlc_ciphering_sqn(actx, rlc_ciphering_sqn);
#.FN_BODY CipheringAlgorithm VAL_PTR = &ciphering_algo
rrc_ciphering_info *ciphering_info;
- gint32 ciphering_algo;
+ int32_t ciphering_algo;
%(DEFAULT_BODY)s
@@ -1544,7 +1553,7 @@ private_data_set_rlc_ciphering_sqn(actx, rlc_ciphering_sqn);
#.FN_BODY CipheringAlgorithm-r7 VAL_PTR = &ciphering_algo
rrc_ciphering_info *ciphering_info;
- gint32 ciphering_algo;
+ int32_t ciphering_algo;
%(DEFAULT_BODY)s
@@ -1556,7 +1565,7 @@ private_data_set_rlc_ciphering_sqn(actx, rlc_ciphering_sqn);
#.FN_BODY IntegrityProtectionAlgorithm VAL_PTR = &integrity_algo
rrc_ciphering_info *ciphering_info;
- gint32 integrity_algo;
+ int32_t integrity_algo;
%(DEFAULT_BODY)s
@@ -1568,7 +1577,7 @@ private_data_set_rlc_ciphering_sqn(actx, rlc_ciphering_sqn);
#.FN_BODY IntegrityProtectionAlgorithm-r7 VAL_PTR = &integrity_algo
rrc_ciphering_info *ciphering_info;
- gint32 integrity_algo;
+ int32_t integrity_algo;
%(DEFAULT_BODY)s
@@ -1596,10 +1605,10 @@ private_data_set_rlc_ciphering_sqn(actx, rlc_ciphering_sqn);
%(DEFAULT_BODY)s
#.FN_BODY ReleaseCause VAL_PTR=&value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]",
- val_to_str(value, rrc_ReleaseCause_vals, "Unknown"));
+ val_to_str_const(value, rrc_ReleaseCause_vals, "Unknown"));
#.FN_BODY MasterInformationBlock
col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock");
diff --git a/epan/dissectors/asn1/rrlp/packet-rrlp-template.c b/epan/dissectors/asn1/rrlp/packet-rrlp-template.c
index 622542f0..b77d8a58 100644
--- a/epan/dissectors/asn1/rrlp/packet-rrlp-template.c
+++ b/epan/dissectors/asn1/rrlp/packet-rrlp-template.c
@@ -16,6 +16,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
@@ -36,13 +37,13 @@ void proto_register_rrlp(void);
void proto_reg_handoff_rrlp(void);
/* Initialize the protocol and registered fields */
-static int proto_rrlp = -1;
+static int proto_rrlp;
#include "packet-rrlp-hf.c"
/* Initialize the subtree pointers */
-static gint ett_rrlp = -1;
+static int ett_rrlp;
#include "packet-rrlp-ett.c"
/* Include constants */
@@ -62,7 +63,7 @@ void proto_register_rrlp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_rrlp,
#include "packet-rrlp-ettarr.c"
};
diff --git a/epan/dissectors/asn1/rtse/packet-rtse-template.c b/epan/dissectors/asn1/rtse/packet-rtse-template.c
index 63fc3758..0549e4c7 100644
--- a/epan/dissectors/asn1/rtse/packet-rtse-template.c
+++ b/epan/dissectors/asn1/rtse/packet-rtse-template.c
@@ -18,6 +18,7 @@
#include <epan/asn1.h>
#include <epan/expert.h>
+#include <wsutil/array.h>
#include <wsutil/str_util.h>
#include "packet-ber.h"
@@ -34,46 +35,46 @@ void proto_register_rtse(void);
void proto_reg_handoff_rtse(void);
/* Initialize the protocol and registered fields */
-static int proto_rtse = -1;
+static int proto_rtse;
-static gboolean open_request=FALSE;
-static guint32 app_proto=0;
+static bool open_request=false;
+static uint32_t app_proto=0;
-static proto_tree *top_tree=NULL;
+static proto_tree *top_tree;
/* Preferences */
-static gboolean rtse_reassemble = TRUE;
+static bool rtse_reassemble = true;
#include "packet-rtse-hf.c"
/* Initialize the subtree pointers */
-static gint ett_rtse = -1;
+static int ett_rtse;
#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 expert_field ei_rtse_dissector_oid_not_implemented;
+static expert_field ei_rtse_unknown_rtse_pdu;
+static expert_field ei_rtse_abstract_syntax;
-static dissector_table_t rtse_oid_dissector_table=NULL;
-static dissector_handle_t rtse_handle = NULL;
-static gint ett_rtse_unknown = -1;
+static dissector_table_t rtse_oid_dissector_table;
+static dissector_handle_t rtse_handle;
+static int ett_rtse_unknown;
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 int hf_rtse_segment_data;
+static int hf_rtse_fragments;
+static int hf_rtse_fragment;
+static int hf_rtse_fragment_overlap;
+static int hf_rtse_fragment_overlap_conflicts;
+static int hf_rtse_fragment_multiple_tails;
+static int hf_rtse_fragment_too_long_fragment;
+static int hf_rtse_fragment_error;
+static int hf_rtse_fragment_count;
+static int hf_rtse_reassembled_in;
+static int hf_rtse_reassembled_length;
+
+static int ett_rtse_fragment;
+static int ett_rtse_fragments;
static const fragment_items rtse_frag_items = {
/* Fragment subtrees */
@@ -99,7 +100,7 @@ static const fragment_items rtse_frag_items = {
};
void
-register_rtse_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto, const char *name, gboolean uses_ros)
+register_rtse_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto, const char *name, bool uses_ros)
{
/* XXX: Note that this fcn is called from proto_reg_handoff in *other* dissectors ... */
@@ -117,7 +118,7 @@ register_rtse_oid_dissector_handle(const char *oid, dissector_handle_t dissector
/* and then tell ROS how to dissect the AS*/
if (dissector != NULL)
- register_ros_oid_dissector_handle(oid, dissector, proto, name, TRUE);
+ register_ros_oid_dissector_handle(oid, dissector, proto, name, true);
} else {
/* otherwise we just remember how to dissect the AS */
@@ -188,13 +189,13 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
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;
+ uint32_t fragment_length;
+ uint32_t rtse_id = 0;
+ bool 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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* do we have application context from the acse dissector? */
if (data == NULL)
@@ -218,7 +219,7 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
if (conversation != NULL) {
rtse_id = conversation->conv_index;
}
- session->rtse_reassemble = TRUE;
+ session->rtse_reassemble = true;
}
if (rtse_reassemble && session->spdu_type == SES_MAJOR_SYNC_POINT) {
frag_msg = fragment_end_seq_next (&rtse_reassembly_table,
@@ -232,7 +233,7 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
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);
+ 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);
@@ -241,14 +242,14 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
frag_msg = fragment_add_seq_next (&rtse_reassembly_table,
data_tvb, 0, pinfo,
rtse_id, NULL,
- fragment_length, TRUE);
+ 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;
+ pinfo->fragmented = true;
+ data_handled = true;
} else {
fragment_length = tvb_captured_length_remaining (tvb, offset);
}
@@ -259,21 +260,21 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
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);
+ /*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;
+ 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);
+ 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");
@@ -335,7 +336,7 @@ void proto_register_rtse(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_rtse,
&ett_rtse_unknown,
&ett_rtse_fragment,
diff --git a/epan/dissectors/asn1/rtse/packet-rtse-template.h b/epan/dissectors/asn1/rtse/packet-rtse-template.h
index eb7b0473..09f6486e 100644
--- a/epan/dissectors/asn1/rtse/packet-rtse-template.h
+++ b/epan/dissectors/asn1/rtse/packet-rtse-template.h
@@ -14,6 +14,6 @@
#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);
+void register_rtse_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, bool uses_ros);
#endif /* PACKET_RTSE_H */
diff --git a/epan/dissectors/asn1/rtse/rtse.cnf b/epan/dissectors/asn1/rtse/rtse.cnf
index 8bf5a8c9..ac1fa1ac 100644
--- a/epan/dissectors/asn1/rtse/rtse.cnf
+++ b/epan/dissectors/asn1/rtse/rtse.cnf
@@ -42,9 +42,9 @@ RTSE-apdus
if(session != NULL)
session->ros_op = (ROS_OP_BIND | ROS_OP_ARGUMENT);
- open_request=TRUE;
+ open_request=true;
%(DEFAULT_BODY)s
- open_request=FALSE;
+ open_request=false;
#.FN_BODY RTOACapdu
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
@@ -86,7 +86,7 @@ RTSE-apdus
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);
+ offset = dissect_ber_octet_string(false, actx, tree, tvb, offset, hf_index, &next_tvb);
if(next_tvb) {
@@ -96,13 +96,13 @@ RTSE-apdus
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);
+ 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);
+ offset = dissect_ber_integer(true, actx, tree, tvb, offset, hf_index, &app_proto);
#.FN_BODY SessionConnectionIdentifier
if(open_request){
diff --git a/epan/dissectors/asn1/rua/packet-rua-template.c b/epan/dissectors/asn1/rua/packet-rua-template.c
index cd4ba112..f903201f 100644
--- a/epan/dissectors/asn1/rua/packet-rua-template.c
+++ b/epan/dissectors/asn1/rua/packet-rua-template.c
@@ -17,6 +17,7 @@
#include <epan/sctpppids.h>
#include <epan/asn1.h>
#include <epan/prefs.h>
+#include <wsutil/array.h>
#include "packet-per.h"
@@ -36,12 +37,12 @@ void proto_register_rua(void);
#include "packet-rua-val.h"
/* Initialize the protocol and registered fields */
-static int proto_rua = -1;
+static int proto_rua;
#include "packet-rua-hf.c"
/* Initialize the subtree pointers */
-static int ett_rua = -1;
+static int ett_rua;
/* initialise sub-dissector handles */
static dissector_handle_t ranap_handle = NULL;
@@ -49,8 +50,8 @@ static int ett_rua = -1;
#include "packet-rua-ett.c"
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
/* Dissector tables */
static dissector_table_t rua_ies_dissector_table;
@@ -73,27 +74,27 @@ void proto_reg_handoff_rua(void);
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;
+ 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;
+ 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;
+ 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;
+ 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;
+ return (dissector_try_uint_new(rua_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
static int
@@ -123,7 +124,7 @@ void proto_register_rua(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_rua,
#include "packet-rua-ettarr.c"
};
diff --git a/epan/dissectors/asn1/rua/rua.cnf b/epan/dissectors/asn1/rua/rua.cnf
index f173d7d7..3446eb54 100644
--- a/epan/dissectors/asn1/rua/rua.cnf
+++ b/epan/dissectors/asn1/rua/rua.cnf
@@ -39,7 +39,8 @@ ProtocolIE-Single-Container
#.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)"));
+ 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
@@ -49,7 +50,7 @@ ProtocolIE-Single-Container
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
- if (strcmp(val_to_str(ProcedureCode, rua_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
+ if (strcmp(val_to_str_const(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 */
diff --git a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
index 6f03db3c..a9196bdf 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V18.2.0 (2024-06)
-- 9.3.5 Common Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
index 3e111932..cfe38392 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V18.2.0 (2024-06)
-- 9.3.6 Constant Definitions
-- **************************************************************
--
@@ -535,5 +535,14 @@ id-E-RABToBeUpdatedItem ProtocolIE-ID ::= 342
id-SourceSNID ProtocolIE-ID ::= 343
id-LoggedMDTTrigger ProtocolIE-ID ::= 344
id-SensorMeasurementConfiguration ProtocolIE-ID ::= 345
+id-M4ReportAmount ProtocolIE-ID ::= 346
+id-M5ReportAmount ProtocolIE-ID ::= 347
+id-M6ReportAmount ProtocolIE-ID ::= 348
+id-M7ReportAmount ProtocolIE-ID ::= 349
+id-TimeBasedHandoverInformation ProtocolIE-ID ::= 350
+id-Bearers-SubjectToDLDiscarding-Item ProtocolIE-ID ::= 351
+id-Bearers-SubjectToDLDiscardingList ProtocolIE-ID ::= 352
+
+
END
diff --git a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
index 9b53fe64..d8bf951e 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V18.2.0 (2024-06)
-- 9.3.7 Container Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
index ab6c5a8a..be579490 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V18.2.0 (2024-06)
-- 9.3.4 Information Element Definitions
-- **************************************************************
--
@@ -98,6 +98,13 @@ IMPORTS
id-Direct-Forwarding-Path-Availability,
id-LoggedMDTTrigger,
id-SensorMeasurementConfiguration,
+ id-M4ReportAmount,
+ id-M5ReportAmount,
+ id-M6ReportAmount,
+ id-M7ReportAmount,
+ id-TimeBasedHandoverInformation,
+ id-Bearers-SubjectToDLDiscarding-Item,
+ id-Bearers-SubjectToDLDiscardingList,
maxnoofCSGs,
maxnoofE-RABs,
maxnoofErrors,
@@ -293,6 +300,24 @@ Bearers-SubjectToEarlyStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
...
}
+Bearers-SubjectToDLDiscardingList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToDLDiscarding-ItemIEs } }
+
+Bearers-SubjectToDLDiscarding-ItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Bearers-SubjectToDLDiscarding-Item CRITICALITY ignore TYPE Bearers-SubjectToDLDiscarding-Item PRESENCE mandatory},
+ ...
+}
+
+Bearers-SubjectToDLDiscarding-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Discarding DLDiscarding,
+ iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToDLDiscarding-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+Bearers-SubjectToDLDiscarding-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
BearerType ::= ENUMERATED {
non-IP,
...
@@ -438,7 +463,8 @@ CauseRadioNetwork ::= ENUMERATED {
n26-interface-not-available,
insufficient-ue-capabilities,
maximum-bearer-pre-emption-rate-exceeded,
- up-integrity-protection-not-possible
+ up-integrity-protection-not-possible,
+ release-due-to-discontinuous-coverage
}
@@ -455,7 +481,8 @@ CauseNas ::= ENUMERATED {
unspecified,
...,
csg-subscription-expiry,
- uE-not-in-PLMN-serving-area
+ uE-not-in-PLMN-serving-area,
+ iab-not-authorized
}
CellAccessMode ::= ENUMERATED {
@@ -837,6 +864,13 @@ DLCOUNT-PDCP-SNlength ::= CHOICE {
...
}
+DLDiscarding ::= CHOICE {
+ discardDLCOUNTValuePDCP-SNlength12 COUNTvalue,
+ discardDLCOUNTValuePDCP-SNlength15 COUNTValueExtended,
+ discardDLCOUNTValuePDCP-SNlength18 COUNTvaluePDCP-SNlength18,
+ ...
+}
+
Direct-Forwarding-Path-Availability ::= ENUMERATED {
directPathAvailable,
...
@@ -923,6 +957,7 @@ ENB-EarlyStatusTransfer-TransparentContainer ::= SEQUENCE {
}
ENB-EarlyStatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Bearers-SubjectToDLDiscardingList CRITICALITY ignore EXTENSION Bearers-SubjectToDLDiscardingList PRESENCE optional},
...
}
@@ -994,7 +1029,7 @@ EN-DCSONConfigurationTransfer ::= SEQUENCE {
transfertype EN-DCSONTransferType,
sONInformation SONInformation,
x2TNLConfigInfo X2TNLConfigurationInfo OPTIONAL,
- -- 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" --
+ -- The above IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to the value "X2TNL Configuration Info"
iE-Extensions ProtocolExtensionContainer { {EN-DCSONConfigurationTransfer-ExtIEs} } OPTIONAL,
...
}
@@ -1423,9 +1458,9 @@ ImmediateMDT ::= SEQUENCE {
measurementsToActivate MeasurementsToActivate,
m1reportingTrigger M1ReportingTrigger,
m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
--- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+ -- The above IE shall be present if the Measurements to Activate IE has the first bit set to “1†and the M1 Reporting Trigger IE is set to the value “A2event-triggered†or to “A2event-triggered periodicâ€
m1periodicReporting M1PeriodicReporting OPTIONAL,
--- Included in case of periodic or event-triggered periodic reporting
+ -- The above IE shall be present if the M1 Reporting Trigger IE is set to the value “periodicâ€, or “A2event-triggered periodicâ€
iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL,
...
}
@@ -1699,9 +1734,14 @@ M4Configuration ::= SEQUENCE {
}
M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+{ ID id-M4ReportAmount CRITICALITY ignore EXTENSION M4ReportAmountMDT PRESENCE optional},
+
...
}
+M4ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
+
+
M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
M5Configuration ::= SEQUENCE {
@@ -1712,24 +1752,30 @@ M5Configuration ::= SEQUENCE {
}
M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+{ ID id-M5ReportAmount CRITICALITY ignore EXTENSION M5ReportAmountMDT PRESENCE optional },
...
}
+M5ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
+
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" --
+-- The above IE shall be present if the M6 Links to log IE is set to the value "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 ::= {
+{ ID id-M6ReportAmount CRITICALITY ignore EXTENSION M6ReportAmountMDT PRESENCE optional },
...
}
+M6ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
+
M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... }
M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... }
@@ -1742,9 +1788,12 @@ M7Configuration ::= SEQUENCE {
}
M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+{ ID id-M7ReportAmount CRITICALITY ignore EXTENSION M7ReportAmountMDT PRESENCE optional },
...
}
+M7ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
+
M7period ::= INTEGER(1..60, ...)
MDT-Activation ::= ENUMERATED {
@@ -2544,11 +2593,11 @@ SONConfigurationTransfer ::= SEQUENCE {
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" --}|
+ {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional}|
+ -- The above IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to the value "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 " --},
+ {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional},
+ -- The above IE shall be present if the SON Information IE contains the SON Information Request IE set to the value " Activate Muting "
...
}
@@ -2629,9 +2678,10 @@ SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
{ID id-IntersystemMeasurementConfiguration CRITICALITY ignore EXTENSION IntersystemMeasurementConfiguration PRESENCE optional}|
{ID id-SourceNodeID CRITICALITY ignore EXTENSION SourceNodeID PRESENCE optional}|
{ID id-EmergencyIndicator CRITICALITY ignore EXTENSION EmergencyIndicator PRESENCE optional}|
- {ID id-UEContextReferenceatSourceeNB CRITICALITY ignore EXTENSION ENB-UE-S1AP-ID PRESENCE optional}|
+ {ID id-UEContextReferenceatSourceeNB CRITICALITY ignore EXTENSION ENB-UE-S1AP-ID PRESENCE optional}|
{ID id-SourceSNID CRITICALITY ignore EXTENSION Global-RAN-NODE-ID PRESENCE optional}|
- {ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore EXTENSION Direct-Forwarding-Path-Availability PRESENCE optional},
+ {ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore EXTENSION Direct-Forwarding-Path-Availability PRESENCE optional}|
+ {ID id-TimeBasedHandoverInformation CRITICALITY ignore EXTENSION TimeBasedHandoverInformation PRESENCE optional},
...
}
@@ -2980,6 +3030,21 @@ Threshold-RSRP ::= INTEGER(0..97)
Threshold-RSRQ ::= INTEGER(0..34)
+TimeBasedHandoverInformation ::= SEQUENCE {
+ hOWindowStart HandoverWindowStart,
+ hOWindowDuration HandoverWindowDuration,
+ iE-Extensions ProtocolExtensionContainer { {TimeBasedHandoverInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeBasedHandoverInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HandoverWindowStart ::= INTEGER (0.. 1048575)
+
+HandoverWindowDuration ::= INTEGER (1..6000)
+
TimeToTrigger ::= ENUMERATED {ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, ms5120}
TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
index f781fd7a..849f6944 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V18.2.0 (2024-06)
-- 9.3.3 PDU Definitions
-- **************************************************************
--
@@ -529,7 +529,9 @@ HandoverRequiredIEs S1AP-PROTOCOL-IES ::= {
{ 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}|
+-- The above IE shall be present if the Handover Type IE is set to the value “LTEtoGERAN†and the SRVCC HO Indication IE is present
{ ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}|
+-- The above IE shall be present if the Handover Type IE is set to the value “LTEtoGERAN†and the SRVCC HO Indication IE is present
{ 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},
@@ -552,8 +554,8 @@ 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-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional}|
+ -- The above IE shall be present if Handover Type 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}|
@@ -634,8 +636,8 @@ HandoverRequestIEs S1AP-PROTOCOL-IES ::= {
{ 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-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional}|
+ -- The above 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}|
@@ -1395,6 +1397,7 @@ InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= {
{ 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}|
+ -- The above IE shall be present if the CS Fallback Indicator IE is set to the value “CS Fallback High Priorityâ€
{ 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}|
@@ -1666,6 +1669,7 @@ UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= {
{ 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}|
+ -- The above IE shall be present if the CS Fallback Indicator IE is set to the value “CS Fallback High Priorityâ€
{ ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
{ ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
{ ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}|
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
index f3956daa..a04efadf 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V18.2.0 (2024-06)
-- 9.3.2 Elementary Procedure Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
index 73d734fe..13ed2f5d 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V18.2.0 (2024-06)
-- B.2 ASN.1 definition
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
index a5e2e878..9b1f85dc 100644
--- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
@@ -10,14 +10,13 @@
*
* Based on the RANAP dissector
*
- * References: 3GPP TS 36.413 V17.5.0 (2023-06)
+ * References: 3GPP TS 36.413 V18.2.0 (2024-06)
*/
#include "config.h"
#include <epan/packet.h>
-#include <epan/strutil.h>
#include <epan/asn1.h>
#include <epan/prefs.h>
#include <epan/sctpppids.h>
@@ -26,11 +25,12 @@
#include <epan/proto_data.h>
#include <epan/exceptions.h>
#include <epan/show_exception.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.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"
@@ -66,111 +66,114 @@ static dissector_handle_t nr_rrc_ue_radio_paging_info_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;
-static int hf_s1ap_E_UTRAN_Trace_ID_TraceID = -1;
-static int hf_s1ap_E_UTRAN_Trace_ID_TraceRecordingSessionReference = -1;
-static int hf_s1ap_interfacesToTrace_S1_MME = -1;
-static int hf_s1ap_interfacesToTrace_X2 = -1;
-static int hf_s1ap_interfacesToTrace_Uu = -1;
-static int hf_s1ap_interfacesToTrace_F1_C = -1;
-static int hf_s1ap_interfacesToTrace_E1 = -1;
-static int hf_s1ap_interfacesToTrace_Reserved = -1;
-static int hf_s1ap_encryptionAlgorithms_EEA1 = -1;
-static int hf_s1ap_encryptionAlgorithms_EEA2 = -1;
-static int hf_s1ap_encryptionAlgorithms_EEA3 = -1;
-static int hf_s1ap_encryptionAlgorithms_Reserved = -1;
-static int hf_s1ap_integrityProtectionAlgorithms_EIA1 = -1;
-static int hf_s1ap_integrityProtectionAlgorithms_EIA2 = -1;
-static int hf_s1ap_integrityProtectionAlgorithms_EIA3 = -1;
-static int hf_s1ap_integrityProtectionAlgorithms_EIA7 = -1;
-static int hf_s1ap_integrityProtectionAlgorithms_Reserved = -1;
-static int hf_s1ap_SerialNumber_gs = -1;
-static int hf_s1ap_SerialNumber_msg_code = -1;
-static int hf_s1ap_SerialNumber_upd_nb = -1;
-static int hf_s1ap_WarningType_value = -1;
-static int hf_s1ap_WarningType_emergency_user_alert = -1;
-static int hf_s1ap_WarningType_popup = -1;
-static int hf_s1ap_WarningMessageContents_nb_pages = -1;
-static int hf_s1ap_WarningMessageContents_decoded_page = -1;
-static int hf_s1ap_measurementsToActivate_M1 = -1;
-static int hf_s1ap_measurementsToActivate_M2 = -1;
-static int hf_s1ap_measurementsToActivate_M3 = -1;
-static int hf_s1ap_measurementsToActivate_M4 = -1;
-static int hf_s1ap_measurementsToActivate_M5 = -1;
-static int hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered = -1;
-static int hf_s1ap_measurementsToActivate_M6 = -1;
-static int hf_s1ap_measurementsToActivate_M7 = -1;
-static int hf_s1ap_MDT_Location_Info_GNSS = -1;
-static int hf_s1ap_MDT_Location_Info_E_CID = -1;
-static int hf_s1ap_MDT_Location_Info_Reserved = -1;
-static int hf_s1ap_NRencryptionAlgorithms_NEA1 = -1;
-static int hf_s1ap_NRencryptionAlgorithms_NEA2 = -1;
-static int hf_s1ap_NRencryptionAlgorithms_NEA3 = -1;
-static int hf_s1ap_NRencryptionAlgorithms_Reserved = -1;
-static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA1 = -1;
-static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA2 = -1;
-static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA3 = -1;
-static int hf_s1ap_NRintegrityProtectionAlgorithms_Reserved = -1;
-static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_streaming_service = -1;
-static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service = -1;
-static int hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved = -1;
-static int hf_s1ap_rAT_RestrictionInformation_LEO = -1;
-static int hf_s1ap_rAT_RestrictionInformation_MEO = -1;
-static int hf_s1ap_rAT_RestrictionInformation_GEO = -1;
-static int hf_s1ap_rAT_RestrictionInformation_OTHERSAT = -1;
-static int hf_s1ap_rAT_RestrictionInformation_Reserved = -1;
+static int proto_s1ap;
+
+static int hf_s1ap_transportLayerAddressIPv4;
+static int hf_s1ap_transportLayerAddressIPv6;
+static int hf_s1ap_E_UTRAN_Trace_ID_TraceID;
+static int hf_s1ap_E_UTRAN_Trace_ID_TraceRecordingSessionReference;
+static int hf_s1ap_interfacesToTrace_S1_MME;
+static int hf_s1ap_interfacesToTrace_X2;
+static int hf_s1ap_interfacesToTrace_Uu;
+static int hf_s1ap_interfacesToTrace_F1_C;
+static int hf_s1ap_interfacesToTrace_E1;
+static int hf_s1ap_interfacesToTrace_Reserved;
+static int hf_s1ap_encryptionAlgorithms_EEA1;
+static int hf_s1ap_encryptionAlgorithms_EEA2;
+static int hf_s1ap_encryptionAlgorithms_EEA3;
+static int hf_s1ap_encryptionAlgorithms_Reserved;
+static int hf_s1ap_integrityProtectionAlgorithms_EIA1;
+static int hf_s1ap_integrityProtectionAlgorithms_EIA2;
+static int hf_s1ap_integrityProtectionAlgorithms_EIA3;
+static int hf_s1ap_integrityProtectionAlgorithms_EIA7;
+static int hf_s1ap_integrityProtectionAlgorithms_Reserved;
+static int hf_s1ap_SerialNumber_gs;
+static int hf_s1ap_SerialNumber_msg_code;
+static int hf_s1ap_SerialNumber_upd_nb;
+static int hf_s1ap_WarningType_value;
+static int hf_s1ap_WarningType_emergency_user_alert;
+static int hf_s1ap_WarningType_popup;
+static int hf_s1ap_WarningMessageContents_nb_pages;
+static int hf_s1ap_WarningMessageContents_decoded_page;
+static int hf_s1ap_measurementsToActivate_M1;
+static int hf_s1ap_measurementsToActivate_M2;
+static int hf_s1ap_measurementsToActivate_M3;
+static int hf_s1ap_measurementsToActivate_M4;
+static int hf_s1ap_measurementsToActivate_M5;
+static int hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered;
+static int hf_s1ap_measurementsToActivate_M6;
+static int hf_s1ap_measurementsToActivate_M7;
+static int hf_s1ap_MDT_Location_Info_GNSS;
+static int hf_s1ap_MDT_Location_Info_E_CID;
+static int hf_s1ap_MDT_Location_Info_Reserved;
+static int hf_s1ap_NRencryptionAlgorithms_NEA1;
+static int hf_s1ap_NRencryptionAlgorithms_NEA2;
+static int hf_s1ap_NRencryptionAlgorithms_NEA3;
+static int hf_s1ap_NRencryptionAlgorithms_Reserved;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA2;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA3;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_Reserved;
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_streaming_service;
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service;
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved;
+static int hf_s1ap_rAT_RestrictionInformation_LEO;
+static int hf_s1ap_rAT_RestrictionInformation_MEO;
+static int hf_s1ap_rAT_RestrictionInformation_GEO;
+static int hf_s1ap_rAT_RestrictionInformation_OTHERSAT;
+static int hf_s1ap_rAT_RestrictionInformation_NR_LEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_MEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_GEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT;
#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;
-static int ett_s1ap_UERadioPagingInformation = -1;
-static int ett_s1ap_UE_HistoryInformationFromTheUE = -1;
-static int ett_s1ap_CELevel = -1;
-static int ett_s1ap_UE_RLF_Report_Container = -1;
-static int ett_s1ap_UE_RLF_Report_Container_for_extended_bands = -1;
-static int ett_s1ap_S1_Message = -1;
-static int ett_s1ap_E_UTRAN_Trace_ID = -1;
-static int ett_s1ap_InterfacesToTrace = -1;
-static int ett_s1ap_EncryptionAlgorithms = -1;
-static int ett_s1ap_IntegrityProtectionAlgorithms = -1;
-static int ett_s1ap_LastVisitedNGRANCellInformation = -1;
-static int ett_s1ap_LastVisitedUTRANCellInformation = -1;
-static int ett_s1ap_SerialNumber = -1;
-static int ett_s1ap_WarningType = -1;
-static int ett_s1ap_DataCodingScheme = -1;
-static int ett_s1ap_WarningMessageContents = -1;
-static int ett_s1ap_MSClassmark = -1;
-static int ett_s1ap_MeasurementsToActivate = -1;
-static int ett_s1ap_MDT_Location_Info = -1;
-static int ett_s1ap_IMSI = -1;
-static int ett_s1ap_NASSecurityParameters = -1;
-static int ett_s1ap_NRencryptionAlgorithms = -1;
-static int ett_s1ap_NRintegrityProtectionAlgorithms = -1;
-static int ett_s1ap_UE_Application_Layer_Measurement_Capability = -1;
-static int ett_s1ap_sMTC = -1;
-static int ett_s1ap_threshRS_Index_r15 = -1;
-static int ett_s1ap_sSBToMeasure = -1;
-static int ett_s1ap_sSRSSIMeasurement = -1;
-static int ett_s1ap_quantityConfigNR_R15 = -1;
-static int ett_s1ap_excludedCellsToAddModList = -1;
-static int ett_s1ap_NB_IoT_RLF_Report_Container = -1;
-static int ett_s1ap_MDT_ConfigurationNR = -1;
-static int ett_s1ap_IntersystemSONConfigurationTransfer = -1;
-static int ett_s1ap_rAT_RestrictionInformation = -1;
+static int ett_s1ap;
+static int ett_s1ap_TransportLayerAddress;
+static int ett_s1ap_ToTargetTransparentContainer;
+static int ett_s1ap_ToSourceTransparentContainer;
+static int ett_s1ap_RRCContainer;
+static int ett_s1ap_UERadioCapability;
+static int ett_s1ap_RIMInformation;
+static int ett_s1ap_Cdma2000PDU;
+static int ett_s1ap_Cdma2000SectorID;
+static int ett_s1ap_UERadioPagingInformation;
+static int ett_s1ap_UE_HistoryInformationFromTheUE;
+static int ett_s1ap_CELevel;
+static int ett_s1ap_UE_RLF_Report_Container;
+static int ett_s1ap_UE_RLF_Report_Container_for_extended_bands;
+static int ett_s1ap_S1_Message;
+static int ett_s1ap_E_UTRAN_Trace_ID;
+static int ett_s1ap_InterfacesToTrace;
+static int ett_s1ap_EncryptionAlgorithms;
+static int ett_s1ap_IntegrityProtectionAlgorithms;
+static int ett_s1ap_LastVisitedNGRANCellInformation;
+static int ett_s1ap_LastVisitedUTRANCellInformation;
+static int ett_s1ap_SerialNumber;
+static int ett_s1ap_WarningType;
+static int ett_s1ap_DataCodingScheme;
+static int ett_s1ap_WarningMessageContents;
+static int ett_s1ap_MSClassmark;
+static int ett_s1ap_MeasurementsToActivate;
+static int ett_s1ap_MDT_Location_Info;
+static int ett_s1ap_IMSI;
+static int ett_s1ap_NASSecurityParameters;
+static int ett_s1ap_NRencryptionAlgorithms;
+static int ett_s1ap_NRintegrityProtectionAlgorithms;
+static int ett_s1ap_UE_Application_Layer_Measurement_Capability;
+static int ett_s1ap_sMTC;
+static int ett_s1ap_threshRS_Index_r15;
+static int ett_s1ap_sSBToMeasure;
+static int ett_s1ap_sSRSSIMeasurement;
+static int ett_s1ap_quantityConfigNR_R15;
+static int ett_s1ap_excludedCellsToAddModList;
+static int ett_s1ap_NB_IoT_RLF_Report_Container;
+static int ett_s1ap_MDT_ConfigurationNR;
+static int ett_s1ap_IntersystemSONConfigurationTransfer;
+static int ett_s1ap_rAT_RestrictionInformation;
#include "packet-s1ap-ett.c"
-static expert_field ei_s1ap_number_pages_le15 = EI_INIT;
+static expert_field ei_s1ap_number_pages_le15;
enum{
INITIATING_MESSAGE,
@@ -184,29 +187,29 @@ struct s1ap_conv_info {
};
struct s1ap_supported_ta {
- guint16 tac;
+ uint16_t tac;
wmem_array_t *plmn;
};
struct s1ap_tai {
- guint32 plmn;
- guint16 tac;
+ uint32_t plmn;
+ uint16_t tac;
};
struct s1ap_private_data {
struct s1ap_conv_info *s1ap_conv;
- guint32 procedure_code;
- guint32 protocol_ie_id;
- guint32 protocol_extension_id;
- guint32 handover_type_value;
- guint32 message_type;
- guint8 data_coding_scheme;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
+ uint32_t protocol_extension_id;
+ uint32_t handover_type_value;
+ uint32_t message_type;
+ uint8_t data_coding_scheme;
struct s1ap_supported_ta *supported_ta;
const char *obj_id;
struct s1ap_tai *tai;
- guint16 enb_ue_s1ap_id;
- gboolean srvcc_ho_cs_only;
- guint8 transparent_container_type;
+ uint16_t enb_ue_s1ap_id;
+ bool srvcc_ho_cs_only;
+ uint8_t transparent_container_type;
e212_number_type_t number_type;
};
@@ -229,8 +232,8 @@ enum {
};
/* Global variables */
-static gboolean g_s1ap_dissect_container = TRUE;
-static gint g_s1ap_dissect_lte_container_as = S1AP_LTE_CONTAINER_AUTOMATIC;
+static bool g_s1ap_dissect_container = true;
+static int g_s1ap_dissect_lte_container_as = S1AP_LTE_CONTAINER_AUTOMATIC;
static dissector_handle_t s1ap_handle;
@@ -262,30 +265,25 @@ static int dissect_TargetBSS_ToSourceBSS_TransparentContainer_PDU(tvbuff_t *tvb,
#endif
static void
-s1ap_Threshold_RSRP_fmt(gchar *s, guint32 v)
+s1ap_Threshold_RSRP_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (gint32)v-140, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (int32_t)v-140, v);
}
static void
-s1ap_Threshold_RSRQ_fmt(gchar *s, guint32 v)
+s1ap_Threshold_RSRQ_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-20, v);
}
static void
-s1ap_Hysteresis_fmt(gchar *s, guint32 v)
+s1ap_Hysteresis_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", (float)v/2, v);
}
-static const true_false_string s1ap_tfs_interfacesToTrace = {
- "Should be traced",
- "Should not be traced"
-};
-
static void
-s1ap_Time_UE_StayedInCell_EnhancedGranularity_fmt(gchar *s, guint32 v)
+s1ap_Time_UE_StayedInCell_EnhancedGranularity_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fs", ((float)v)/10);
}
@@ -308,15 +306,15 @@ const value_string s1ap_warningType_vals[] = {
};
void
-dissect_s1ap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dcs, int hf_nb_pages, int hf_decoded_page)
+dissect_s1ap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, uint8_t dcs, int hf_nb_pages, int hf_decoded_page)
{
- guint32 offset;
- guint8 nb_of_pages, length, *str;
+ uint32_t offset;
+ uint8_t 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_tvb, 0);
+ nb_of_pages = tvb_get_uint8(warning_msg_tvb, 0);
ti = proto_tree_add_uint(tree, hf_nb_pages, warning_msg_tvb, 0, 1, nb_of_pages);
if (nb_of_pages > 15) {
expert_add_info_format(pinfo, ti, &ei_s1ap_number_pages_le15,
@@ -324,7 +322,7 @@ dissect_s1ap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree,
nb_of_pages = 15;
}
for (i = 0, offset = 1; i < nb_of_pages; i++) {
- length = tvb_get_guint8(warning_msg_tvb, offset+82);
+ length = tvb_get_uint8(warning_msg_tvb, offset+82);
cb_data_page_tvb = tvb_new_subset_length(warning_msg_tvb, offset, length);
cb_data_tvb = dissect_cbs_data(dcs, cb_data_page_tvb, tree, pinfo, 0);
if (cb_data_tvb) {
@@ -337,40 +335,41 @@ dissect_s1ap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree,
}
static void
-s1ap_EUTRANRoundTripDelayEstimationInfo_fmt(gchar *s, guint32 v)
+s1ap_EUTRANRoundTripDelayEstimationInfo_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%uTs (%u)", 16*v, v);
}
-static const true_false_string s1ap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
static void
-s1ap_Packet_LossRate_fmt(gchar *s, guint32 v)
+s1ap_Packet_LossRate_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v);
}
static void
-s1ap_threshold_nr_rsrp_fmt(gchar *s, guint32 v)
+s1ap_threshold_nr_rsrp_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (gint32)v-156, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (int32_t)v-156, v);
}
static void
-s1ap_threshold_nr_rsrq_fmt(gchar *s, guint32 v)
+s1ap_threshold_nr_rsrq_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-43, v);
}
static void
-s1ap_threshold_nr_sinr_fmt(gchar *s, guint32 v)
+s1ap_threshold_nr_sinr_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-23, v);
}
+static void
+s1ap_handover_window_duration_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%dms (%u)", v*100, v);
+}
+
static struct s1ap_private_data*
s1ap_get_private_data(packet_info *pinfo)
{
@@ -382,15 +381,15 @@ s1ap_get_private_data(packet_info *pinfo)
return s1ap_data;
}
-static gboolean
+static bool
s1ap_is_nbiot_ue(packet_info *pinfo)
{
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo);
if (s1ap_data->s1ap_conv) {
wmem_tree_key_t tree_key[3];
- guint32 *id;
- guint32 enb_ue_s1ap_id = s1ap_data->enb_ue_s1ap_id;
+ uint32_t *id;
+ uint32_t enb_ue_s1ap_id = s1ap_data->enb_ue_s1ap_id;
tree_key[0].length = 1;
tree_key[0].key = &enb_ue_s1ap_id;
@@ -398,12 +397,12 @@ s1ap_is_nbiot_ue(packet_info *pinfo)
tree_key[1].key = &pinfo->num;
tree_key[2].length = 0;
tree_key[2].key = NULL;
- id = (guint32*)wmem_tree_lookup32_array_le(s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id, tree_key);
+ id = (uint32_t*)wmem_tree_lookup32_array_le(s1ap_data->s1ap_conv->nbiot_enb_ue_s1ap_id, tree_key);
if (id && (*id == enb_ue_s1ap_id)) {
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
#include "packet-s1ap-fn.c"
@@ -418,7 +417,7 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
s1ap_ctx.ProtocolIE_ID = s1ap_data->protocol_ie_id;
s1ap_ctx.ProtocolExtensionID = s1ap_data->protocol_extension_id;
- return (dissector_try_uint_new(s1ap_ies_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(s1ap_ies_dissector_table, s1ap_data->protocol_ie_id, tvb, pinfo, tree, false, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0;
}
/* Currently not used
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -446,28 +445,28 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in
s1ap_ctx.ProtocolIE_ID = s1ap_data->protocol_ie_id;
s1ap_ctx.ProtocolExtensionID = s1ap_data->protocol_extension_id;
- return (dissector_try_uint_new(s1ap_extension_dissector_table, s1ap_data->protocol_extension_id, tvb, pinfo, tree, FALSE, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(s1ap_extension_dissector_table, s1ap_data->protocol_extension_id, tvb, pinfo, tree, false, &s1ap_ctx)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(s1ap_proc_imsg_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(s1ap_proc_imsg_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(s1ap_proc_sout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(s1ap_proc_sout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(pinfo);
- return (dissector_try_uint_new(s1ap_proc_uout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(s1ap_proc_uout_dissector_table, s1ap_data->procedure_code, tvb, pinfo, tree, false, data)) ? tvb_captured_length(tvb) : 0;
}
@@ -544,23 +543,23 @@ void proto_register_s1ap(void) {
NULL, HFILL }},
{ &hf_s1ap_interfacesToTrace_S1_MME,
{ "S1-MME", "s1ap.interfacesToTrace.S1_MME",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x80,
NULL, HFILL }},
{ &hf_s1ap_interfacesToTrace_X2,
{ "X2", "s1ap.interfacesToTrace.X2",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x40,
NULL, HFILL }},
{ &hf_s1ap_interfacesToTrace_Uu,
{ "Uu", "s1ap.interfacesToTrace.Uu",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x20,
NULL, HFILL }},
{ &hf_s1ap_interfacesToTrace_F1_C,
{ "F1-C", "s1ap.interfacesToTrace.F1_C",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x10,
NULL, HFILL }},
{ &hf_s1ap_interfacesToTrace_E1,
{ "E1", "s1ap.interfacesToTrace.E1",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x08,
NULL, HFILL }},
{ &hf_s1ap_interfacesToTrace_Reserved,
{ "Reserved", "s1ap.interfacesToTrace.Reserved",
@@ -636,43 +635,43 @@ void proto_register_s1ap(void) {
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M1,
{ "M1", "s1ap.measurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M2,
{ "M2", "s1ap.measurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M3,
{ "M3", "s1ap.measurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M4,
{ "M4", "s1ap.measurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M5,
{ "M5", "s1ap.measurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "s1ap.measurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M6,
{ "M6", "s1ap.measurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M7,
{ "M7", "s1ap.measurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_GNSS,
{ "GNSS", "s1ap.MDT_Location_Info.GNSS",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_E_CID,
{ "E-CID", "s1ap.MDT_Location_Info.E_CID",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_Reserved,
{ "Reserved", "s1ap.MDT_Location_Info.Reserved",
@@ -738,15 +737,27 @@ void proto_register_s1ap(void) {
{ "OTHERSAT", "s1ap.rAT_RestrictionInformation.OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x10,
NULL, HFILL }},
- { &hf_s1ap_rAT_RestrictionInformation_Reserved,
- { "Reserved", "s1ap.rAT_RestrictionInformation.Reserved",
- FT_UINT8, BASE_HEX, NULL, 0x0f,
+ { &hf_s1ap_rAT_RestrictionInformation_NR_LEO,
+ { "NR-LEO", "s1ap.rAT_RestrictionInformation.NR_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x08,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_MEO,
+ { "NR-MEO", "s1ap.rAT_RestrictionInformation.NR_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_GEO,
+ { "NR-GEO", "s1ap.rAT_RestrictionInformation.NR_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT,
+ { "NR-OTHERSAT", "s1ap.rAT_RestrictionInformation.NR_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
NULL, HFILL }},
#include "packet-s1ap-hfarr.c"
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_s1ap,
&ett_s1ap_TransportLayerAddress,
&ett_s1ap_ToTargetTransparentContainer,
@@ -826,7 +837,7 @@ void proto_register_s1ap(void) {
prefs_register_bool_preference(s1ap_module, "dissect_container", "Dissect TransparentContainer", "Dissect TransparentContainers that are opaque to S1AP", &g_s1ap_dissect_container);
prefs_register_enum_preference(s1ap_module, "dissect_lte_container_as", "Dissect LTE TransparentContainer as",
"Select whether LTE TransparentContainer should be dissected as NB-IOT or legacy LTE",
- &g_s1ap_dissect_lte_container_as, s1ap_lte_container_vals, FALSE);
+ &g_s1ap_dissect_lte_container_as, s1ap_lte_container_vals, false);
}
/*
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.h b/epan/dissectors/asn1/s1ap/packet-s1ap-template.h
index a8998971..d2429f75 100644
--- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.h
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.h
@@ -12,16 +12,16 @@
#define PACKET_S1AP_H
typedef struct _s1ap_ctx_t {
- guint32 message_type;
- guint32 ProcedureCode;
- guint32 ProtocolIE_ID;
- guint32 ProtocolExtensionID;
+ uint32_t message_type;
+ uint32_t ProcedureCode;
+ uint32_t ProtocolIE_ID;
+ uint32_t ProtocolExtensionID;
} s1ap_ctx_t;
extern const value_string s1ap_warningType_vals[];
extern const value_string s1ap_serialNumber_gs_vals[];
-void dissect_s1ap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dcs, int hf_nb_pages, int hf_decoded_page);
+void dissect_s1ap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, uint8_t dcs, int hf_nb_pages, int hf_decoded_page);
#include "packet-s1ap-exp.h"
diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf
index 61cde3a2..5cc92201 100644
--- a/epan/dissectors/asn1/s1ap/s1ap.cnf
+++ b/epan/dissectors/asn1/s1ap/s1ap.cnf
@@ -253,15 +253,15 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
s1ap_data->number_type = E212_NONE;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, &parameter_tvb);
+ 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, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, false);
if (s1ap_data->supported_ta) {
- guint32 plmn = tvb_get_ntoh24(parameter_tvb, 0);
+ uint32_t plmn = tvb_get_ntoh24(parameter_tvb, 0);
wmem_array_append_one(s1ap_data->supported_ta->plmn, plmn);
} else if (s1ap_data->tai) {
s1ap_data->tai->plmn = tvb_get_ntoh24(parameter_tvb, 0);
@@ -271,7 +271,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
#.FN_BODY ENBname VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
int length;
- gboolean is_ascii;
+ bool is_ascii;
%(DEFAULT_BODY)s
@@ -287,7 +287,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
#.FN_BODY MMEname VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
int length;
- gboolean is_ascii;
+ bool is_ascii;
%(DEFAULT_BODY)s
@@ -324,7 +324,7 @@ tvbuff_t *parameter_tvb=NULL;
#.FN_BODY TransportLayerAddress VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
- gint tvb_len;
+ int tvb_len;
%(DEFAULT_BODY)s
if (!parameter_tvb)
@@ -376,17 +376,17 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
%(DEFAULT_BODY)s
#.FN_BODY SRVCCHOIndication VAL_PTR = &srvcc_ho_ind
- guint32 srvcc_ho_ind;
+ uint32_t srvcc_ho_ind;
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
if (srvcc_ho_ind == cSonly)
- s1ap_data->srvcc_ho_cs_only = TRUE;
+ s1ap_data->srvcc_ho_cs_only = true;
#Undef the value before use
#.FN_HDR HandoverRequired
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
s1ap_data->handover_type_value = 0xff;
- s1ap_data->srvcc_ho_cs_only = FALSE;
+ s1ap_data->srvcc_ho_cs_only = false;
#.FN_HDR HandoverCommand
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
s1ap_data->handover_type_value = 0xff;
@@ -399,7 +399,7 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
#.FN_BODY SourceeNB-ToTargeteNB-TransparentContainer
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
- volatile guint32 _offset;
+ volatile uint32_t _offset;
s1ap_data->transparent_container_type = SOURCE_TO_TARGET_TRANSPARENT_CONTAINER;
_offset = offset;
@@ -431,7 +431,7 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
if ((g_s1ap_dissect_container)&&(parameter_tvb) && (tvb_reported_length(parameter_tvb) > 0)) {
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
/* Don't want elements inside container to write to info column */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, FALSE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, false);
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_ToTargetTransparentContainer);
switch(s1ap_data->handover_type_value){
@@ -487,12 +487,12 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
break;
}
/* Enable writing of the column again */
- col_set_writable(actx->pinfo->cinfo, COL_INFO, TRUE);
+ col_set_writable(actx->pinfo->cinfo, COL_INFO, true);
}
#.FN_BODY TargeteNB-ToSourceeNB-TransparentContainer
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
- volatile guint32 _offset;
+ volatile uint32_t _offset;
s1ap_data->transparent_container_type = TARGET_TO_SOURCE_TRANSPARENT_CONTAINER;
_offset = offset;
@@ -722,7 +722,10 @@ Hysteresis DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_Hysteresis_fmt)
&hf_s1ap_rAT_RestrictionInformation_MEO,
&hf_s1ap_rAT_RestrictionInformation_GEO,
&hf_s1ap_rAT_RestrictionInformation_OTHERSAT,
- &hf_s1ap_rAT_RestrictionInformation_Reserved,
+ &hf_s1ap_rAT_RestrictionInformation_NR_LEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_MEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_GEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_rAT_RestrictionInformation);
@@ -954,7 +957,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS
if (!parameter_tvb)
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_E_UTRAN_Trace_ID);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, false);
proto_tree_add_item(subtree, hf_s1ap_E_UTRAN_Trace_ID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_s1ap_E_UTRAN_Trace_ID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN);
@@ -985,10 +988,10 @@ IntersystemMeasurementConfiguration/rSRQ DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC
IntersystemMeasurementConfiguration/sINR DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_threshold_nr_sinr_fmt)
#.TYPE_ATTR
-InterSystemMeasurementParameters/measurementDuration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+InterSystemMeasurementParameters/measurementDuration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.FN_BODY InterSystemMeasurementItem/sMTC VAL_PTR = &ssb_mtc_tvb
tvbuff_t *ssb_mtc_tvb = NULL;
@@ -1093,7 +1096,7 @@ MME-Group-ID TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
}
#.TYPE_ATTR
-Time-UE-StayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Time-UE-StayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
Time-UE-StayedInCell-EnhancedGranularity DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_Time_UE_StayedInCell_EnhancedGranularity_fmt)
@@ -1106,13 +1109,13 @@ Time-UE-StayedInCell-EnhancedGranularity DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC
}
#.TYPE_ATTR
-TimeSinceSecondaryNodeRelease TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeSinceSecondaryNodeRelease TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-LastVisitedPSCellInformation/timeStay DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+LastVisitedPSCellInformation/timeStay DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RecommendedCellItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RecommendedCellItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY LastVisitedNGRANCellInformation VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -1175,7 +1178,7 @@ MessageIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
}
#.TYPE_ATTR
-RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY WarningType VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -1199,7 +1202,7 @@ RepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
}
#.TYPE_ATTR
-DataSize DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_bits
+DataSize DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_bits)
#.FN_BODY WarningMessageContents VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -1230,7 +1233,7 @@ DataSize DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_bits
EUTRANRoundTripDelayEstimationInfo DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_EUTRANRoundTripDelayEstimationInfo_fmt)
#.TYPE_ATTR
-ExtendedRepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExtendedRepetitionPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY MeasurementsToActivate VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -1274,10 +1277,10 @@ LHN-ID TYPE=FT_STRING DISPLAY = BASE_NONE
#.END
#.TYPE_ATTR
-ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY E-RABUsageReportItem/startTimestamp VAL_PTR = &timestamp_tvb
tvbuff_t *timestamp_tvb = NULL;
@@ -1298,13 +1301,13 @@ ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
}
#.TYPE_ATTR
-E-RABUsageReportItem/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+E-RABUsageReportItem/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
-E-RABUsageReportItem/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+E-RABUsageReportItem/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
-ExtendedBitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+ExtendedBitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.FN_BODY NRencryptionAlgorithms VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -1420,7 +1423,7 @@ M-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX
%(DEFAULT_BODY)s
if (parameter_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_IMSI);
- dissect_e212_imsi(parameter_tvb, actx->pinfo, subtree, 0, tvb_reported_length(parameter_tvb), FALSE);
+ dissect_e212_imsi(parameter_tvb, actx->pinfo, subtree, 0, tvb_reported_length(parameter_tvb), false);
}
#.FN_BODY NASSecurityParametersfromE-UTRAN VAL_PTR = &parameter_tvb
@@ -1447,29 +1450,29 @@ M-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX
((s1ap_data->procedure_code == id_S1Setup) ||
(s1ap_data->procedure_code == id_ENBConfigurationUpdate))) {
s1ap_data->supported_ta = wmem_new0(actx->pinfo->pool, struct s1ap_supported_ta);
- s1ap_data->supported_ta->plmn = wmem_array_new(actx->pinfo->pool, sizeof(guint32));
+ s1ap_data->supported_ta->plmn = wmem_array_new(actx->pinfo->pool, sizeof(uint32_t));
}
#.FN_FTR SupportedTAs-Item
s1ap_data->supported_ta = NULL;
#.FN_BODY RAT-Type VAL_PTR = &rat_type
- guint32 rat_type = 0xffffffff;
+ uint32_t rat_type = 0xffffffff;
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
if (s1ap_data->s1ap_conv && s1ap_data->supported_ta && rat_type <= nbiot_othersat) {
- guint64 *key;
- guint i;
+ uint64_t *key;
+ unsigned i;
for (i = 0; i < wmem_array_get_count(s1ap_data->supported_ta->plmn); i++) {
- key = wmem_new(wmem_file_scope(), guint64);
- *key = ((*(guint32*)wmem_array_index(s1ap_data->supported_ta->plmn, i)) << 16) | s1ap_data->supported_ta->tac;
+ key = wmem_new(wmem_file_scope(), uint64_t);
+ *key = ((*(uint32_t*)wmem_array_index(s1ap_data->supported_ta->plmn, i)) << 16) | s1ap_data->supported_ta->tac;
wmem_map_insert(s1ap_data->s1ap_conv->nbiot_ta, key, GUINT_TO_POINTER(1));
}
}
#.FN_BODY ENB-UE-S1AP-ID VAL_PTR = &enb_ue_s1ap_id
- guint32 enb_ue_s1ap_id;
+ uint32_t enb_ue_s1ap_id;
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
if (hf_index == hf_s1ap_eNB_UE_S1AP_ID) {
@@ -1478,10 +1481,10 @@ M-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX
proto_item_set_hidden(item);
}
- s1ap_data->enb_ue_s1ap_id = (guint16)enb_ue_s1ap_id;
+ s1ap_data->enb_ue_s1ap_id = (uint16_t)enb_ue_s1ap_id;
#.FN_BODY MME-UE-S1AP-ID VAL_PTR = &mme_ue_s1ap_id
- guint32 mme_ue_s1ap_id;
+ uint32_t mme_ue_s1ap_id;
%(DEFAULT_BODY)s
if (hf_index == hf_s1ap_mME_UE_S1AP_ID) {
proto_item *item;
@@ -1497,11 +1500,11 @@ M-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX
if (!PINFO_FD_VISITED(actx->pinfo) && s1ap_data->s1ap_conv &&
(s1ap_data->message_type == INITIATING_MESSAGE) &&
(s1ap_data->procedure_code == id_initialUEMessage)) {
- guint64 key = (s1ap_data->tai->plmn << 16) | s1ap_data->tai->tac;
+ uint64_t key = (s1ap_data->tai->plmn << 16) | s1ap_data->tai->tac;
if (wmem_map_lookup(s1ap_data->s1ap_conv->nbiot_ta, &key)) {
wmem_tree_key_t tree_key[3];
- guint32 *id = wmem_new(wmem_file_scope(), guint32);
+ uint32_t *id = wmem_new(wmem_file_scope(), uint32_t);
*id = s1ap_data->enb_ue_s1ap_id;
tree_key[0].length = 1;
@@ -1534,16 +1537,16 @@ WLANName TYPE=FT_STRING DISPLAY = BASE_NONE
#.END
#.TYPE_ATTR
-Subscription-Based-UE-DifferentiationInfo/periodicTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Subscription-Based-UE-DifferentiationInfo/periodicTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ScheduledCommunicationTime/timeofDayStart DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ScheduledCommunicationTime/timeofDayStart DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ScheduledCommunicationTime/timeofDayEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ScheduledCommunicationTime/timeofDayEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-TrafficLoadReductionIndication DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+TrafficLoadReductionIndication DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.FN_BODY MDT-ConfigurationNR VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -1563,6 +1566,12 @@ TrafficLoadReductionIndication DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_
dissect_ngap_SONConfigurationTransfer_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
+#.TYPE_ATTR
+HandoverWindowStart DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.TYPE_ATTR
+HandoverWindowDuration DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(s1ap_handover_window_duration_fmt)
+
#.ASSIGN_VALUE_TO_TYPE # S1AP does not have constants assigned to types, they are pure INTEGER
# ProcedureCode
@@ -1958,6 +1967,13 @@ id-E-RABToBeUpdatedItem ProtocolIE-ID
id-SourceSNID ProtocolIE-ID
id-LoggedMDTTrigger ProtocolIE-ID
id-SensorMeasurementConfiguration ProtocolIE-ID
+id-M4ReportAmount ProtocolIE-ID
+id-M5ReportAmount ProtocolIE-ID
+id-M6ReportAmount ProtocolIE-ID
+id-M7ReportAmount ProtocolIE-ID
+id-TimeBasedHandoverInformation ProtocolIE-ID
+id-Bearers-SubjectToDLDiscarding-Item ProtocolIE-ID
+id-Bearers-SubjectToDLDiscardingList ProtocolIE-ID
#.END
@@ -2212,6 +2228,7 @@ E-RABSecurityResultItem N s1ap.ies id-E-RABSecurityResul
LTE-NTN-TAI-Information N s1ap.ies id-LTE-NTN-TAI-Information
E-RABToBeUpdatedList N s1ap.ies id-E-RABToBeUpdatedList
E-RABToBeUpdatedItem N s1ap.ies id-E-RABToBeUpdatedItem
+Bearers-SubjectToDLDiscarding-Item N s1ap.ies id-Bearers-SubjectToDLDiscarding-Item
#S1AP-PROTOCOL-IES-PAIR
#RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem
@@ -2295,6 +2312,12 @@ TransportLayerAddress N s1ap.extension id-SourceNodeTransportL
Global-RAN-NODE-ID N s1ap.extension id-SourceSNID
LoggedMDTTrigger N s1ap.extension id-LoggedMDTTrigger
SensorMeasurementConfiguration N s1ap.extension id-SensorMeasurementConfiguration
+M4ReportAmountMDT N s1ap.extension id-M4ReportAmount
+M5ReportAmountMDT N s1ap.extension id-M5ReportAmount
+M6ReportAmountMDT N s1ap.extension id-M6ReportAmount
+M7ReportAmountMDT N s1ap.extension id-M7ReportAmount
+TimeBasedHandoverInformation N s1ap.extension id-TimeBasedHandoverInformation
+Bearers-SubjectToDLDiscardingList N s1ap.extension id-Bearers-SubjectToDLDiscardingList
#S1AP-ELEMENTARY-PROCEDURE
HandoverRequired N s1ap.proc.imsg id-HandoverPreparation
@@ -2664,27 +2687,27 @@ MMEEarlyStatusTransfer N s1ap.proc.imsg id-MMEEarlyStatusTransf
# Whenever a Cause appears, look up the reason and show it in the Info column
#.FN_BODY CauseRadioNetwork VAL_PTR=&value
- guint32 value;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t 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;
+ uint32_t value;
%(DEFAULT_BODY)s
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [Misc-cause=%%s]", val_to_str_const(value, s1ap_CauseMisc_vals, "Unknown"));
diff --git a/epan/dissectors/asn1/sabp/packet-sabp-template.c b/epan/dissectors/asn1/sabp/packet-sabp-template.c
index 494f96c7..2add95c9 100644
--- a/epan/dissectors/asn1/sabp/packet-sabp-template.c
+++ b/epan/dissectors/asn1/sabp/packet-sabp-template.c
@@ -16,6 +16,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-tcp.h"
#include "packet-per.h"
@@ -35,31 +36,31 @@ void proto_register_sabp(void);
void proto_reg_handoff_sabp(void);
/* Initialize the protocol and registered fields */
-static int proto_sabp = -1;
+static int proto_sabp;
-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;
+static int hf_sabp_no_of_pages;
+static int hf_sabp_cb_inf_len;
+static int hf_sabp_cb_msg_inf_page;
+static int hf_sabp_cbs_page_content;
#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;
+static int ett_sabp;
+static int ett_sabp_e212;
+static int ett_sabp_cbs_data_coding;
+static int ett_sabp_bcast_msg;
+static int ett_sabp_cbs_serial_number;
+static int ett_sabp_cbs_new_serial_number;
+static int ett_sabp_cbs_page;
+static int ett_sabp_cbs_page_content;
#include "packet-sabp-ett.c"
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-static guint32 ProtocolExtensionID;
-static guint8 sms_encoding;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
+static uint32_t ProtocolExtensionID;
+static uint8_t sms_encoding;
#define SABP_PORT 3452
@@ -119,11 +120,11 @@ dissect_sabp_cb_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvbuff_t *page_tvb, *unpacked_tvb;
int offset = 0;
int n;
- guint8 nr_pages, len, cb_inf_msg_len;
+ uint8_t nr_pages, len, cb_inf_msg_len;
/* Octet 1 Number-of-Pages */
- nr_pages = tvb_get_guint8(tvb, offset);
+ nr_pages = tvb_get_uint8(tvb, offset);
proto_tree_add_item(tree, hf_sabp_no_of_pages, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
/*
@@ -138,7 +139,7 @@ dissect_sabp_cb_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
"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);
+ cb_inf_msg_len = tvb_get_uint8(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);
@@ -176,12 +177,12 @@ dissect_sabp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
static int
dissect_sabp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
{
- guint32 type_length, msg_len;
- guint tvb_length;
+ uint32_t type_length, msg_len;
+ unsigned tvb_length;
int bit_offset;
- gboolean is_fragmented;
+ bool is_fragmented;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
tvb_length = tvb_reported_length(tvb);
@@ -239,7 +240,7 @@ void proto_register_sabp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_sabp,
&ett_sabp_e212,
&ett_sabp_cbs_data_coding,
diff --git a/epan/dissectors/asn1/sabp/sabp.cnf b/epan/dissectors/asn1/sabp/sabp.cnf
index 2630514e..67ccf0e4 100644
--- a/epan/dissectors/asn1/sabp/sabp.cnf
+++ b/epan/dissectors/asn1/sabp/sabp.cnf
@@ -42,7 +42,8 @@ MessageStructure/_item/repetitionNumber repetitionNumber1
#.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)"));
+ 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
@@ -55,8 +56,8 @@ MessageStructure/_item/repetitionNumber repetitionNumber1
#.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"));
+ val_to_str_ext_const(ProcedureCode, &sabp_ProcedureCode_vals_ext,
+ "unknown message"));
#.END
#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
@@ -160,12 +161,12 @@ Error-Indication N sabp.proc.imsg id-Error-Indication
proto_tree *subtree;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, &parameter_tvb);
+ 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_SAI, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_SAI, false);
#.FN_BODY Data-Coding-Scheme VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
diff --git a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
index 3b714f3d..5b470786 100644
--- a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
+++ b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
@@ -13,10 +13,13 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/strutil.h>
#include <epan/asn1.h>
#include <epan/sctpppids.h>
#include <epan/proto_data.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-per.h"
@@ -36,30 +39,30 @@ void proto_reg_handoff_sbc_ap(void);
* The registered payload protocol identifier for SBc-AP is 24.
*/
#define SBC_AP_PORT 29168
-static dissector_handle_t sbc_ap_handle=NULL;
+static dissector_handle_t sbc_ap_handle;
#include "packet-sbc-ap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_sbc_ap = -1;
-
-static int hf_sbc_ap_Serial_Number_gs = -1;
-static int hf_sbc_ap_Serial_Number_msg_code = -1;
-static int hf_sbc_ap_Serial_Number_upd_nb = -1;
-static int hf_sbc_ap_Warning_Type_value = -1;
-static int hf_sbc_ap_Warning_Type_emergency_user_alert = -1;
-static int hf_sbc_ap_Warning_Type_popup = -1;
-static int hf_sbc_ap_Warning_Message_Contents_nb_pages = -1;
-static int hf_sbc_ap_Warning_Message_Contents_decoded_page = -1;
+static int proto_sbc_ap;
+
+static int hf_sbc_ap_Serial_Number_gs;
+static int hf_sbc_ap_Serial_Number_msg_code;
+static int hf_sbc_ap_Serial_Number_upd_nb;
+static int hf_sbc_ap_Warning_Type_value;
+static int hf_sbc_ap_Warning_Type_emergency_user_alert;
+static int hf_sbc_ap_Warning_Type_popup;
+static int hf_sbc_ap_Warning_Message_Contents_nb_pages;
+static int hf_sbc_ap_Warning_Message_Contents_decoded_page;
#include "packet-sbc-ap-hf.c"
/* Initialize the subtree pointers */
-static int ett_sbc_ap = -1;
-static int ett_sbc_ap_Serial_Number = -1;
-static int ett_sbc_ap_Warning_Type = -1;
-static int ett_sbc_ap_Data_Coding_Scheme = -1;
-static int ett_sbc_ap_Warning_Message_Contents = -1;
+static int ett_sbc_ap;
+static int ett_sbc_ap_Serial_Number;
+static int ett_sbc_ap_Warning_Type;
+static int ett_sbc_ap_Data_Coding_Scheme;
+static int ett_sbc_ap_Warning_Message_Contents;
#include "packet-sbc-ap-ett.c"
@@ -70,14 +73,14 @@ enum{
};
struct sbc_ap_private_data {
- guint8 data_coding_scheme;
+ uint8_t data_coding_scheme;
e212_number_type_t number_type;
};
/* Global variables */
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-static guint32 ProtocolExtensionID;
+static uint32_t ProcedureCode;
+static uint32_t ProtocolIE_ID;
+static uint32_t ProtocolExtensionID;
static int global_sbc_ap_port = SBC_AP_PORT;
/* Dissector tables */
@@ -203,7 +206,7 @@ void proto_register_sbc_ap(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_sbc_ap,
&ett_sbc_ap_Serial_Number,
&ett_sbc_ap_Warning_Type,
@@ -237,12 +240,12 @@ void proto_register_sbc_ap(void) {
void
proto_reg_handoff_sbc_ap(void)
{
- static gboolean inited = FALSE;
- static guint SctpPort;
+ static bool inited = false;
+ static unsigned SctpPort;
if( !inited ) {
dissector_add_uint("sctp.ppi", SBC_AP_PAYLOAD_PROTOCOL_ID, sbc_ap_handle);
- inited = TRUE;
+ inited = true;
#include "packet-sbc-ap-dis-tab.c"
} else {
if (SctpPort != 0) {
diff --git a/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf b/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf
index 08a2b1f1..1500da7b 100644
--- a/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf
+++ b/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf
@@ -101,13 +101,13 @@ ProtocolIE-Field/value ie_field_value
sbc_ap_data->number_type = E212_NONE;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, &parameter_tvb);
+ 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, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, false);
#.END
#.TYPE_ATTR
@@ -326,10 +326,10 @@ Message-Identifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
}
#.TYPE_ATTR
-Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-Extended-Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Extended-Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY Warning-Type VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
diff --git a/epan/dissectors/asn1/smrse/packet-smrse-template.c b/epan/dissectors/asn1/smrse/packet-smrse-template.c
index d8695f80..05fe1fa1 100644
--- a/epan/dissectors/asn1/smrse/packet-smrse-template.c
+++ b/epan/dissectors/asn1/smrse/packet-smrse-template.c
@@ -13,6 +13,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-smrse.h"
@@ -29,15 +30,15 @@ void proto_reg_handoff_smrse(void);
static dissector_handle_t smrse_handle;
/* 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;
+static int proto_smrse;
+static int hf_smrse_reserved;
+static int hf_smrse_tag;
+static int hf_smrse_length;
+static int hf_smrse_Octet_Format;
#include "packet-smrse-hf.c"
/* Initialize the subtree pointers */
-static gint ett_smrse = -1;
+static int ett_smrse;
#include "packet-smrse-ett.c"
@@ -63,13 +64,13 @@ dissect_smrse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- guint8 reserved, tag;
+ uint8_t reserved, tag;
int offset=0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
- reserved=tvb_get_guint8(tvb, 0);
- tag=tvb_get_guint8(tvb, 3);
+ reserved=tvb_get_uint8(tvb, 0);
+ tag=tvb_get_uint8(tvb, 3);
if( reserved!= 126 )
return 0;
@@ -94,31 +95,31 @@ dissect_smrse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *
offset=4;
break;
case 3:
- offset=dissect_smrse_SMR_Bind(FALSE, tvb, 4, &asn1_ctx, tree, -1);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ 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);
+ offset=dissect_smrse_RPAlertSC(false, tvb, 4, &asn1_ctx, tree, -1);
break;
}
@@ -148,7 +149,7 @@ void proto_register_smrse(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_smrse,
#include "packet-smrse-ettarr.c"
};
diff --git a/epan/dissectors/asn1/smrse/smrse.cnf b/epan/dissectors/asn1/smrse/smrse.cnf
index 7794027c..72290e4e 100644
--- a/epan/dissectors/asn1/smrse/smrse.cnf
+++ b/epan/dissectors/asn1/smrse/smrse.cnf
@@ -17,11 +17,11 @@ SemiOctetString
#.FN_BODY SMS-Address/address-value/octet-format
char *strp,tmpstr[21];
- guint32 i, start_offset;
- gint8 ber_class;
+ uint32_t i, start_offset;
+ int8_t ber_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
static char n2a[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
start_offset=offset;
@@ -34,8 +34,8 @@ SemiOctetString
}
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];
+ *strp++=n2a[tvb_get_uint8(tvb, offset)&0x0f];
+ *strp++=n2a[(tvb_get_uint8(tvb, offset)>>4)&0x0f];
offset++;
}
*strp=0;
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
index 96a4a4ae..03b6aef0 100644
--- a/epan/dissectors/asn1/snmp/packet-snmp-template.c
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c
@@ -50,6 +50,7 @@
#include <epan/oids.h>
#include <epan/srt_table.h>
#include <epan/tap.h>
+#include <wsutil/array.h>
#include "packet-ipx.h"
#include "packet-hpext.h"
#include "packet-ber.h"
@@ -69,27 +70,27 @@
#define SNMP_NUM_PROCEDURES 8
/* Initialize the protocol and registered fields */
-static int snmp_tap = -1;
-static int proto_snmp = -1;
-static int proto_smux = -1;
+static int snmp_tap;
+static int proto_snmp;
+static int proto_smux;
-static gboolean display_oid = TRUE;
-static gboolean snmp_var_in_tree = TRUE;
+static bool display_oid = true;
+static bool 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 void snmp_usm_password_to_key(const snmp_usm_auth_model_t model, const guint8 *password, guint passwordlen,
- const guint8 *engineID, guint engineLength, guint8 *key);
+static void snmp_usm_password_to_key(const snmp_usm_auth_model_t model, const uint8_t *password, unsigned passwordlen,
+ const uint8_t *engineID, unsigned engineLength, uint8_t *key);
-static tvbuff_t* snmp_usm_priv_des(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, gchar const**);
-static tvbuff_t* snmp_usm_priv_aes128(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, gchar const**);
-static tvbuff_t* snmp_usm_priv_aes192(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, gchar const**);
-static tvbuff_t* snmp_usm_priv_aes256(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, gchar const**);
+static tvbuff_t* snmp_usm_priv_des(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, char const**);
+static tvbuff_t* snmp_usm_priv_aes128(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, char const**);
+static tvbuff_t* snmp_usm_priv_aes192(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, char const**);
+static tvbuff_t* snmp_usm_priv_aes256(snmp_usm_params_t*, tvbuff_t*, packet_info *pinfo, char const**);
-static bool snmp_usm_auth(const packet_info *pinfo, const snmp_usm_auth_model_t model, snmp_usm_params_t* p, guint8**, guint*, gchar const**);
+static bool snmp_usm_auth(const packet_info *pinfo, const snmp_usm_auth_model_t model, snmp_usm_params_t* p, uint8_t**, unsigned*, char const**);
static const value_string auth_types[] = {
{SNMP_USM_AUTH_MD5,"MD5"},
@@ -101,7 +102,7 @@ static const value_string auth_types[] = {
{0,NULL}
};
-static const guint auth_hash_len[] = {
+static const unsigned auth_hash_len[] = {
HASH_MD5_LENGTH,
HASH_SHA1_LENGTH,
HASH_SHA2_224_LENGTH,
@@ -110,7 +111,7 @@ static const guint auth_hash_len[] = {
HASH_SHA2_512_LENGTH
};
-static const guint auth_tag_len[] = {
+static const unsigned auth_tag_len[] = {
12,
12,
16,
@@ -147,37 +148,46 @@ static snmp_usm_decoder_t priv_protos[] = {
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;
+#define PRIVKEYEXP_USM_3DESDESEDE_00 0
+#define PRIVKEYEXP_AGENTPP 1
+
+static const value_string priv_key_exp_types[] = {
+ { PRIVKEYEXP_USM_3DESDESEDE_00, "draft-reeder-snmpv3-usm-3desede-00" },
+ { PRIVKEYEXP_AGENTPP, "AGENT++" },
+ { 0, NULL }
+};
+
+static snmp_ue_assoc_t* ueas;
+static unsigned num_ueas;
+static snmp_ue_assoc_t* localized_ues;
+static snmp_ue_assoc_t* unlocalized_ues;
/****/
/* Variables used for handling enterprise specific trap types */
typedef struct _snmp_st_assoc_t {
char *enterprise;
- guint trap;
+ unsigned 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 guint32 RequestID = -1;
+static unsigned num_specific_traps;
+static snmp_st_assoc_t *specific_traps;
+static const char *enterprise_oid;
+static unsigned generic_trap;
+static uint32_t snmp_version;
+static uint32_t RequestID = -1;
-static snmp_usm_params_t usm_p = {FALSE,FALSE,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,FALSE};
+static snmp_usm_params_t usm_p;
#define TH_AUTH 0x01
#define TH_CRYPT 0x02
#define TH_REPORT 0x04
/* desegmentation of SNMP-over-TCP */
-static gboolean snmp_desegment = TRUE;
+static bool snmp_desegment = true;
/* Global variables */
-guint32 MsgSecurityModel;
+uint32_t MsgSecurityModel;
tvbuff_t *oid_tvb=NULL;
tvbuff_t *value_tvb=NULL;
@@ -188,103 +198,103 @@ static dissector_handle_t smux_handle;
static next_tvb_list_t *var_list;
-static int hf_snmp_response_in = -1;
-static int hf_snmp_response_to = -1;
-static int hf_snmp_time = -1;
-
-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;
+static int hf_snmp_response_in;
+static int hf_snmp_response_to;
+static int hf_snmp_time;
+
+static int hf_snmp_v3_flags_auth;
+static int hf_snmp_v3_flags_crypt;
+static int hf_snmp_v3_flags_report;
+
+static int hf_snmp_engineid_conform;
+static int hf_snmp_engineid_enterprise;
+static int hf_snmp_engineid_format;
+static int hf_snmp_engineid_ipv4;
+static int hf_snmp_engineid_ipv6;
+static int hf_snmp_engineid_cisco_type;
+static int hf_snmp_engineid_mac;
+static int hf_snmp_engineid_text;
+static int hf_snmp_engineid_time;
+static int hf_snmp_engineid_data;
+static int hf_snmp_decryptedPDU;
+static int hf_snmp_msgAuthentication;
+
+static int hf_snmp_noSuchObject;
+static int hf_snmp_noSuchInstance;
+static int hf_snmp_endOfMibView;
+static int hf_snmp_unSpecified;
+
+static int hf_snmp_integer32_value;
+static int hf_snmp_octetstring_value;
+static int hf_snmp_oid_value;
+static int hf_snmp_null_value;
+static int hf_snmp_ipv4_value;
+static int hf_snmp_ipv6_value;
+static int hf_snmp_anyaddress_value;
+static int hf_snmp_unsigned32_value;
+static int hf_snmp_unknown_value;
+static int hf_snmp_opaque_value;
+static int hf_snmp_nsap_value;
+static int hf_snmp_counter_value;
+static int hf_snmp_timeticks_value;
+static int hf_snmp_big_counter_value;
+static int hf_snmp_gauge32_value;
+
+static int hf_snmp_objectname;
+static int hf_snmp_scalar_instance_index;
+
+static int hf_snmp_var_bind_str;
+static int hf_snmp_agentid_trailer;
#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;
+static int ett_smux;
+static int ett_snmp;
+static int ett_engineid;
+static int ett_msgFlags;
+static int ett_encryptedPDU;
+static int ett_decrypted;
+static int ett_authParameters;
+static int ett_internet;
+static int ett_varbind;
+static int ett_name;
+static int ett_value;
+static int ett_decoding_error;
#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 expert_field ei_snmp_failed_decrypted_data_pdu;
+static expert_field ei_snmp_decrypted_data_bad_formatted;
+static expert_field ei_snmp_verify_authentication_error;
+static expert_field ei_snmp_authentication_ok;
+static expert_field ei_snmp_authentication_error;
+static expert_field ei_snmp_varbind_not_uni_class_seq;
+static expert_field ei_snmp_varbind_has_indicator;
+static expert_field ei_snmp_objectname_not_oid;
+static expert_field ei_snmp_objectname_has_indicator;
+static expert_field ei_snmp_value_not_primitive_encoding;
+static expert_field ei_snmp_invalid_oid;
+static expert_field ei_snmp_varbind_wrong_tag;
+static expert_field ei_snmp_varbind_response;
+static expert_field ei_snmp_no_instance_subid;
+static expert_field ei_snmp_wrong_num_of_subids;
+static expert_field ei_snmp_index_suboid_too_short;
+static expert_field ei_snmp_unimplemented_instance_index;
+static expert_field ei_snmp_index_suboid_len0;
+static expert_field ei_snmp_index_suboid_too_long;
+static expert_field ei_snmp_index_string_too_long;
+static expert_field ei_snmp_column_parent_not_row;
+static expert_field ei_snmp_uint_too_large;
+static expert_field ei_snmp_int_too_large;
+static expert_field ei_snmp_integral_value0;
+static expert_field ei_snmp_missing_mib;
+static expert_field ei_snmp_varbind_wrong_length_value;
+static expert_field ei_snmp_varbind_wrong_class_tag;
+static expert_field ei_snmp_rfc1910_non_conformant;
+static expert_field ei_snmp_rfc3411_non_conformant;
+static expert_field ei_snmp_version_unknown;
+static expert_field ei_snmp_trap_pdu_obsolete;
static const true_false_string auth_flags = {
"OK",
@@ -325,7 +335,7 @@ static const value_string smux_types[] = {
#endif
/* Procedure names (used in Service Response Time) */
-const value_string snmp_procedure_names[] = {
+static const value_string snmp_procedure_names[] = {
{ 0, "Get" },
{ 1, "GetNext" },
{ 3, "Set" },
@@ -362,7 +372,7 @@ static snmp_conv_info_t*
snmp_find_conversation_and_get_conv_data(packet_info *pinfo);
static snmp_request_response_t *
-snmp_get_request_response_pointer(wmem_map_t *map, guint32 requestId)
+snmp_get_request_response_pointer(wmem_map_t *map, uint32_t requestId)
{
snmp_request_response_t *srrp=(snmp_request_response_t *)wmem_map_lookup(map, &requestId);
if (!srrp) {
@@ -375,7 +385,7 @@ snmp_get_request_response_pointer(wmem_map_t *map, guint32 requestId)
}
static snmp_request_response_t*
-snmp_match_request_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint requestId, guint procedure_id, snmp_conv_info_t *snmp_info)
+snmp_match_request_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, unsigned requestId, unsigned procedure_id, snmp_conv_info_t *snmp_info)
{
snmp_request_response_t *srrp=NULL;
@@ -435,7 +445,7 @@ static void
snmpstat_init(struct register_srt* srt _U_, GArray* srt_array)
{
srt_stat_table *snmp_srt_table;
- guint32 i;
+ uint32_t i;
snmp_srt_table = init_srt_table("SNMP Commands", NULL, srt_array, SNMP_NUM_PROCEDURES, NULL, "snmp.data", NULL);
for (i = 0; i < SNMP_NUM_PROCEDURES; i++)
@@ -448,7 +458,7 @@ snmpstat_init(struct register_srt* srt _U_, GArray* srt_array)
static tap_packet_status
snmpstat_packet(void *psnmp, packet_info *pinfo, epan_dissect_t *edt _U_, const void *psi, tap_flags_t flags _U_)
{
- guint i = 0;
+ unsigned i = 0;
srt_stat_table *snmp_srt_table;
const snmp_request_response_t *snmp=(const snmp_request_response_t *)psi;
srt_data_t *data = (srt_data_t *)psnmp;
@@ -459,10 +469,10 @@ snmpstat_packet(void *psnmp, packet_info *pinfo, epan_dissect_t *edt _U_, const
return TAP_PACKET_REDRAW;
}
-static const gchar *
-snmp_lookup_specific_trap (guint specific_trap)
+static const char *
+snmp_lookup_specific_trap (unsigned specific_trap)
{
- guint i;
+ unsigned i;
for (i = 0; i < num_specific_traps; i++) {
snmp_st_assoc_t *u = &(specific_traps[i]);
@@ -523,27 +533,27 @@ DateAndTime ::= TEXTUAL-CONVENTION
static proto_item *
dissect_snmp_variable_date_and_time(proto_tree *tree, packet_info *pinfo, 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;
+ uint16_t year;
+ uint8_t month;
+ uint8_t day;
+ uint8_t hour;
+ uint8_t minutes;
+ uint8_t seconds;
+ uint8_t deci_seconds;
+ uint8_t hour_from_utc;
+ uint8_t min_from_utc;
+ char *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);
+ month = tvb_get_uint8(tvb,offset+2);
+ day = tvb_get_uint8(tvb,offset+3);
+ hour = tvb_get_uint8(tvb,offset+4);
+ minutes = tvb_get_uint8(tvb,offset+5);
+ seconds = tvb_get_uint8(tvb,offset+6);
+ deci_seconds = tvb_get_uint8(tvb,offset+7);
if(length > 8){
- hour_from_utc = tvb_get_guint8(tvb,offset+9);
- min_from_utc = tvb_get_guint8(tvb,offset+10);
+ hour_from_utc = tvb_get_uint8(tvb,offset+9);
+ min_from_utc = tvb_get_uint8(tvb,offset+10);
str = wmem_strdup_printf(pinfo->pool,
"%u-%u-%u, %u:%u:%u.%u UTC %s%u:%u",
@@ -645,15 +655,15 @@ dissect_snmp_VarBind(bool 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;
+ uint32_t seq_len, name_len, value_len;
+ int8_t ber_class;
bool pc;
- gint32 tag;
+ int32_t tag;
bool ind;
- guint32* subids;
- guint8* oid_bytes;
+ uint32_t* subids;
+ uint8_t* oid_bytes;
oid_info_t* oid_info = NULL;
- guint oid_matched, oid_left;
+ unsigned 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];
@@ -732,10 +742,10 @@ dissect_snmp_VarBind(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
return dissect_unknown_ber(actx->pinfo, tvb, value_start, pt);
}
- /* Now, we know where everithing is */
+ /* Now, we know where everything is */
/* fetch ObjectName and its relative oid_info */
- oid_bytes = (guint8*)tvb_memdup(actx->pinfo->pool, tvb, name_offset, name_len);
+ oid_bytes = (uint8_t*)tvb_memdup(actx->pinfo->pool, tvb, name_offset, name_len);
oid_info = oid_get_from_encoded(actx->pinfo->pool, oid_bytes, name_len, &subids, &oid_matched, &oid_left);
add_oid_debug_subtree(oid_info,pt_name);
@@ -796,7 +806,7 @@ dissect_snmp_VarBind(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
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;
+ oid_info_is_ok = true;
goto indexing_done;
} else if (oid_left == 0) {
if (ber_class == BER_CLASS_UNI && tag == BER_UNI_TAG_NULL) {
@@ -805,21 +815,21 @@ dissect_snmp_VarBind(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
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;
+ 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;
+ 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;
+ unsigned key_start = oid_matched;
+ unsigned 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! */
@@ -829,25 +839,25 @@ dissect_snmp_VarBind(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
if (k) {
for (;k;k = k->next) {
- guint suboid_len;
+ unsigned 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;
+ 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;
+ oid_info_is_ok = false;
goto indexing_done;
}
case OID_KEY_TYPE_INTEGER: {
if (FT_IS_INT(k->ft_type)) {
- proto_tree_add_int(pt_name,k->hfid,tvb,name_offset,name_len,(guint)subids[key_start]);
+ proto_tree_add_int(pt_name,k->hfid,tvb,name_offset,name_len,(unsigned)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]);
+ proto_tree_add_uint64(pt_name,k->hfid,tvb,name_offset,name_len,(unsigned)subids[key_start]);
}
key_start++;
key_len--;
@@ -859,9 +869,9 @@ dissect_snmp_VarBind(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
goto show_oid_index;
case OID_KEY_TYPE_OID: {
- guint8* suboid_buf;
- guint suboid_buf_len;
- guint32* suboid;
+ uint8_t* suboid_buf;
+ unsigned suboid_buf_len;
+ uint32_t* suboid;
suboid_len = subids[key_start++];
key_len--;
@@ -871,13 +881,13 @@ show_oid_index:
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;
+ 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;
+ oid_info_is_ok = false;
goto indexing_done;
}
@@ -892,10 +902,10 @@ show_oid_index:
continue; /* k->next */
}
default: {
- guint8* buf;
- guint buf_len;
- guint32* suboid;
- guint i;
+ uint8_t* buf;
+ unsigned buf_len;
+ uint32_t* suboid;
+ unsigned i;
switch (k->key_type) {
@@ -923,13 +933,13 @@ show_oid_index:
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;
+ oid_info_is_ok = false;
goto indexing_done;
}
- buf = (guint8*)wmem_alloc(actx->pinfo->pool, buf_len+1);
+ buf = (uint8_t*)wmem_alloc(actx->pinfo->pool, buf_len+1);
for (i = 0; i < buf_len; i++)
- buf[i] = (guint8)suboid[i];
+ buf[i] = (uint8_t)suboid[i];
buf[i] = '\0';
switch(k->key_type) {
@@ -946,7 +956,7 @@ show_oid_index:
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;
+ uint32_t* ipv4_p = (uint32_t*)buf;
proto_tree_add_ipv4(pt_name,k->hfid,tvb,name_offset,buf_len, *ipv4_p);
}
break;
@@ -964,17 +974,17 @@ show_oid_index:
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;
+ 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;
+ 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;
+ oid_info_is_ok = false;
goto indexing_done;
}
}
@@ -1014,12 +1024,12 @@ indexing_done:
switch(ber_class|(tag<<4)) {
case BER_CLASS_UNI|(BER_UNI_TAG_INTEGER<<4):
{
- gint64 val=0;
+ int64_t 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) {
+ if (value_len > (unsigned)max_len || value_len < (unsigned)min_len) {
hfid = hf_snmp_integer32_value;
format_error = BER_WRONG_LENGTH;
break;
@@ -1027,11 +1037,11 @@ indexing_done:
if(value_len > 0) {
/* extend sign bit */
- if(tvb_get_guint8(tvb, int_val_offset)&0x80) {
+ if(tvb_get_uint8(tvb, int_val_offset)&0x80) {
val=-1;
}
for(i=0;i<value_len;i++) {
- val=(val<<8)|tvb_get_guint8(tvb, int_val_offset);
+ val=(val<<8)|tvb_get_uint8(tvb, int_val_offset);
int_val_offset++;
}
}
@@ -1048,7 +1058,7 @@ indexing_done:
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;
+ if (value_len < (unsigned)min_len) format_error = BER_WRONG_LENGTH;
hfid = hf_snmp_oid_value;
break;
case BER_CLASS_UNI|(BER_UNI_TAG_NULL<<4):
@@ -1098,7 +1108,7 @@ indexing_done:
* Check if this is an unsigned int64 with
* a big value.
*/
- if (value_len > 9 || tvb_get_guint8(tvb, value_offset) != 0) {
+ if (value_len > 9 || tvb_get_uint8(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;
@@ -1222,6 +1232,7 @@ static const true_false_string tfs_snmp_engineid_conform = {
#define SNMP_ENGINEID_FORMAT_MACADDRESS 0x03
#define SNMP_ENGINEID_FORMAT_TEXT 0x04
#define SNMP_ENGINEID_FORMAT_OCTETS 0x05
+#define SNMP_ENGINEID_FORMAT_LOCAL 0x06
static const value_string snmp_engineid_format_vals[] = {
{ SNMP_ENGINEID_FORMAT_IPV4, "IPv4 address" },
@@ -1229,6 +1240,7 @@ static const value_string snmp_engineid_format_vals[] = {
{ SNMP_ENGINEID_FORMAT_MACADDRESS, "MAC address" },
{ SNMP_ENGINEID_FORMAT_TEXT, "Text, administratively assigned" },
{ SNMP_ENGINEID_FORMAT_OCTETS, "Octets, administratively assigned" },
+ { SNMP_ENGINEID_FORMAT_LOCAL, "Local engine" },
{ 0, NULL }
};
@@ -1249,15 +1261,15 @@ 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;
+ uint8_t conformance, format;
+ uint32_t enterpriseid;
time_t 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);
+ conformance = ((tvb_get_uint8(tvb, offset)>>7) & 0x01);
proto_tree_add_item(tree, hf_snmp_engineid_conform, tvb, offset, 1, ENC_BIG_ENDIAN);
/* 4-byte enterprise number/name */
@@ -1287,7 +1299,7 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
/* 1-byte format specifier */
if (len_remain<1) return offset;
- format = tvb_get_guint8(tvb, offset);
+ format = tvb_get_uint8(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_const(format, snmp_engineid_format_vals, "Reserved/Enterprise-specific"),
format);
@@ -1333,6 +1345,8 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
len_remain=0;
}
break;
+ case SNMP_ENGINEID_FORMAT_LOCAL:
+ break;
case 128:
/* most common enterprise-specific format: (ucd|net)-snmp random */
if ((enterpriseid==2021)||(enterpriseid==8072)) {
@@ -1349,7 +1363,7 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
ts.nsecs = 0;
proto_tree_add_time_format_value(tree, hf_snmp_engineid_time, tvb, offset + 4, len_remain - 4,
&ts, "%s",
- abs_time_secs_to_str(pinfo->pool, seconds, ABSOLUTE_TIME_LOCAL, TRUE));
+ abs_time_secs_to_str(pinfo->pool, seconds, ABSOLUTE_TIME_LOCAL, true));
offset+=len_remain;
len_remain=0;
}
@@ -1359,7 +1373,7 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
case SNMP_ENGINEID_FORMAT_OCTETS:
default:
/* max. 27 bytes, administratively assigned or unknown format */
- if (len_remain<=27) {
+ if (len_remain>0 && len_remain<=27) {
proto_tree_add_item(tree, hf_snmp_engineid_data, tvb, offset, len_remain, ENC_NA);
offset+=len_remain;
len_remain=0;
@@ -1377,9 +1391,9 @@ dissect_snmp_engineid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int o
static void set_ue_keys(snmp_ue_assoc_t* n ) {
- guint key_size = auth_hash_len[n->user.authModel];
+ unsigned const key_size = auth_hash_len[n->user.authModel];
- n->user.authKey.data = (guint8 *)g_malloc(key_size);
+ n->user.authKey.data = (uint8_t *)g_malloc(key_size);
n->user.authKey.len = key_size;
snmp_usm_password_to_key(n->user.authModel,
n->user.authPassword.data,
@@ -1389,18 +1403,18 @@ static void set_ue_keys(snmp_ue_assoc_t* n ) {
n->user.authKey.data);
if (n->priv_proto == PRIV_AES128 || n->priv_proto == PRIV_AES192 || n->priv_proto == PRIV_AES256) {
- guint need_key_len =
+ unsigned 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;
+ unsigned 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.data = (uint8_t *)g_malloc(key_len);
n->user.privKey.len = need_key_len;
snmp_usm_password_to_key(n->user.authModel,
@@ -1414,18 +1428,49 @@ static void set_ue_keys(snmp_ue_assoc_t* n ) {
/* extend key if needed */
while (key_len < need_key_len) {
- snmp_usm_password_to_key(n->user.authModel,
- n->user.privKey.data,
- key_len,
- n->engine.data,
- n->engine.len,
- n->user.privKey.data + key_len);
+ switch (n->priv_key_exp) {
+ /* Baed on draft-reeder-snmpv3-usm-3desede-00, section 2.1 */
+ case PRIVKEYEXP_USM_3DESDESEDE_00:
+ {
+ snmp_usm_password_to_key(n->user.authModel,
+ n->user.privKey.data + (key_len - key_size),
+ key_size,
+ n->engine.data,
+ n->engine.len,
+ n->user.privKey.data + key_len);
+ break;
+ }
+ /* Based on snmp++ method PrivAES::extend_short_key in Agent++ */
+ case PRIVKEYEXP_AGENTPP:
+ {
+ /* Key expansion in Agent++
+ * K1 = key
+ * K2 = hash(K1)
+ * K3 = hash(K1 | K2)
+ * localized_key = K1 | K2 | K3
+ */
+ gcry_md_hd_t hash_handle;
+
+ if (gcry_md_open(&hash_handle, auth_hash_algo[n->user.authModel], 0)) {
+ return;
+ }
+
+ gcry_md_write(hash_handle, n->user.privKey.data, key_len);
+ memcpy(n->user.privKey.data + key_len, gcry_md_read(hash_handle, 0), key_size);
+ gcry_md_close(hash_handle);
+
+ break;
+ }
+
+ default:
+ break;
+ }
key_len += key_size;
}
} else {
- n->user.privKey.data = (guint8 *)g_malloc(key_size);
+ n->user.privKey.data = (uint8_t *)g_malloc(key_size);
n->user.privKey.len = key_size;
snmp_usm_password_to_key(n->user.authModel,
n->user.privPassword.data,
@@ -1445,19 +1490,19 @@ ue_dup(snmp_ue_assoc_t* o)
d->user.privProtocol = o->user.privProtocol;
- d->user.userName.data = (guint8 *)g_memdup2(o->user.userName.data,o->user.userName.len);
+ d->user.userName.data = (uint8_t *)g_memdup2(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_memdup2(o->user.authPassword.data,o->user.authPassword.len) : NULL;
+ d->user.authPassword.data = o->user.authPassword.data ? (uint8_t *)g_memdup2(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_memdup2(o->user.privPassword.data,o->user.privPassword.len) : NULL;
+ d->user.privPassword.data = o->user.privPassword.data ? (uint8_t *)g_memdup2(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_memdup2(o->engine.data,o->engine.len);
+ d->engine.data = (uint8_t *)g_memdup2(o->engine.data,o->engine.len);
set_ue_keys(d);
}
@@ -1477,24 +1522,24 @@ snmp_users_copy_cb(void* dest, const void* orig, size_t len _U_)
d->priv_proto = o->priv_proto;
d->user.privProtocol = priv_protos[o->priv_proto];
- d->user.userName.data = (guint8*)g_memdup2(o->user.userName.data,o->user.userName.len);
+ d->user.userName.data = (uint8_t*)g_memdup2(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_memdup2(o->user.authPassword.data,o->user.authPassword.len) : NULL;
+ d->user.authPassword.data = o->user.authPassword.data ? (uint8_t*)g_memdup2(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_memdup2(o->user.privPassword.data,o->user.privPassword.len) : NULL;
+ d->user.privPassword.data = o->user.privPassword.data ? (uint8_t*)g_memdup2(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_memdup2(o->engine.data,o->engine.len);
+ d->engine.data = (uint8_t*)g_memdup2(o->engine.data,o->engine.len);
}
- d->user.authKey.data = o->user.authKey.data ? (guint8*)g_memdup2(o->user.authKey.data,o->user.authKey.len) : NULL;
+ d->user.authKey.data = o->user.authKey.data ? (uint8_t*)g_memdup2(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_memdup2(o->user.privKey.data,o->user.privKey.len) : NULL;
+ d->user.privKey.data = o->user.privKey.data ? (uint8_t*)g_memdup2(o->user.privKey.data,o->user.privKey.len) : NULL;
d->user.privKey.len = o->user.privKey.len;
return d;
@@ -1554,10 +1599,11 @@ snmp_users_update_cb(void* p _U_, char** err)
if (es->len) {
es = g_string_truncate(es,es->len-1);
*err = g_string_free(es, FALSE);
- return FALSE;
+ return false;
}
- return TRUE;
+ g_string_free(es, TRUE);
+ return true;
}
static void
@@ -1579,7 +1625,7 @@ free_ue_cache(snmp_ue_assoc_t **cache)
static void
init_ue_cache(void)
{
- guint i;
+ unsigned i;
for (i = 0; i < num_ueas; i++) {
snmp_ue_assoc_t* a = ue_dup(&(ueas[i]));
@@ -1611,19 +1657,19 @@ renew_ue_cache(void)
static snmp_ue_assoc_t*
-localize_ue( snmp_ue_assoc_t* o, const guint8* engine, guint engine_len )
+localize_ue( snmp_ue_assoc_t* o, const uint8_t* engine, unsigned engine_len )
{
snmp_ue_assoc_t* n = (snmp_ue_assoc_t*)g_memdup2(o,sizeof(snmp_ue_assoc_t));
- n->user.userName.data = (guint8*)g_memdup2(o->user.userName.data,o->user.userName.len);
+ n->user.userName.data = (uint8_t*)g_memdup2(o->user.userName.data,o->user.userName.len);
n->user.authModel = o->user.authModel;
- n->user.authPassword.data = (guint8*)g_memdup2(o->user.authPassword.data,o->user.authPassword.len);
+ n->user.authPassword.data = (uint8_t*)g_memdup2(o->user.authPassword.data,o->user.authPassword.len);
n->user.authPassword.len = o->user.authPassword.len;
- n->user.privPassword.data = (guint8*)g_memdup2(o->user.privPassword.data,o->user.privPassword.len);
+ n->user.privPassword.data = (uint8_t*)g_memdup2(o->user.privPassword.data,o->user.privPassword.len);
n->user.privPassword.len = o->user.privPassword.len;
- n->user.authKey.data = (guint8*)g_memdup2(o->user.authKey.data,o->user.authKey.len);
- n->user.privKey.data = (guint8*)g_memdup2(o->user.privKey.data,o->user.privKey.len);
- n->engine.data = (guint8*)g_memdup2(engine,engine_len);
+ n->user.authKey.data = (uint8_t*)g_memdup2(o->user.authKey.data,o->user.authKey.len);
+ n->user.privKey.data = (uint8_t*)g_memdup2(o->user.privKey.data,o->user.privKey.len);
+ n->engine.data = (uint8_t*)g_memdup2(engine,engine_len);
n->engine.len = engine_len;
n->priv_proto = o->priv_proto;
@@ -1646,10 +1692,10 @@ static snmp_ue_assoc_t*
get_user_assoc(tvbuff_t* engine_tvb, tvbuff_t* user_tvb, packet_info *pinfo)
{
static snmp_ue_assoc_t* a;
- guint given_username_len;
- guint8* given_username;
- guint given_engine_len = 0;
- guint8* given_engine = NULL;
+ unsigned given_username_len;
+ uint8_t* given_username;
+ unsigned given_engine_len = 0;
+ uint8_t* given_engine = NULL;
if ( ! (localized_ues || unlocalized_ues ) ) return NULL;
@@ -1658,8 +1704,8 @@ get_user_assoc(tvbuff_t* engine_tvb, tvbuff_t* user_tvb, packet_info *pinfo)
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(pinfo->pool,user_tvb,0,-1);
- given_engine = (guint8*)tvb_memdup(pinfo->pool,engine_tvb,0,-1);
+ given_username = (uint8_t*)tvb_memdup(pinfo->pool,user_tvb,0,-1);
+ given_engine = (uint8_t*)tvb_memdup(pinfo->pool,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) ) {
@@ -1679,23 +1725,23 @@ get_user_assoc(tvbuff_t* engine_tvb, tvbuff_t* user_tvb, packet_info *pinfo)
}
static bool
-snmp_usm_auth(const packet_info *pinfo, const snmp_usm_auth_model_t model, snmp_usm_params_t* p, guint8** calc_auth_p,
- guint* calc_auth_len_p, gchar const** error)
+snmp_usm_auth(const packet_info *pinfo, const snmp_usm_auth_model_t model, snmp_usm_params_t* p, uint8_t** calc_auth_p,
+ unsigned* calc_auth_len_p, char 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;
+ int msg_len;
+ uint8_t* msg;
+ unsigned auth_len;
+ uint8_t* auth;
+ uint8_t* key;
+ unsigned key_len;
+ uint8_t *calc_auth;
+ unsigned start;
+ unsigned end;
+ unsigned i;
if (!p->auth_tvb) {
*error = "No Authenticator";
- return FALSE;
+ return false;
}
key = p->user_assoc->user.authKey.data;
@@ -1703,24 +1749,24 @@ snmp_usm_auth(const packet_info *pinfo, const snmp_usm_auth_model_t model, snmp_
if (! key ) {
*error = "User has no authKey";
- return FALSE;
+ return false;
}
auth_len = tvb_captured_length(p->auth_tvb);
if (auth_len != auth_tag_len[model]) {
*error = "Authenticator length wrong";
- return FALSE;
+ return false;
}
msg_len = tvb_captured_length(p->msg_tvb);
if (msg_len <= 0) {
*error = "Not enough data remaining";
- return FALSE;
+ return false;
}
- msg = (guint8*)tvb_memdup(pinfo->pool,p->msg_tvb,0,msg_len);
+ msg = (uint8_t*)tvb_memdup(pinfo->pool,p->msg_tvb,0,msg_len);
- auth = (guint8*)tvb_memdup(pinfo->pool,p->auth_tvb,0,auth_len);
+ auth = (uint8_t*)tvb_memdup(pinfo->pool,p->auth_tvb,0,auth_len);
start = p->auth_offset - p->start_offset;
end = start + auth_len;
@@ -1730,34 +1776,34 @@ snmp_usm_auth(const packet_info *pinfo, const snmp_usm_auth_model_t model, snmp_
msg[i] = '\0';
}
- calc_auth = (guint8*)wmem_alloc(pinfo->pool, auth_hash_len[model]);
+ calc_auth = (uint8_t*)wmem_alloc(pinfo->pool, auth_hash_len[model]);
if (ws_hmac_buffer(auth_hash_algo[model], calc_auth, msg, msg_len, key, key_len)) {
- return FALSE;
+ return false;
}
if (calc_auth_p) *calc_auth_p = calc_auth;
if (calc_auth_len_p) *calc_auth_len_p = auth_len;
- return ( memcmp(auth,calc_auth,auth_len) != 0 ) ? FALSE : TRUE;
+ return ( memcmp(auth,calc_auth,auth_len) != 0 ) ? false : true;
}
static tvbuff_t*
-snmp_usm_priv_des(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, gchar const** error)
+snmp_usm_priv_des(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, char const** error)
{
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;
+ uint8_t* cleartext;
+ uint8_t* des_key = p->user_assoc->user.privKey.data; /* first 8 bytes */
+ uint8_t* pre_iv = &(p->user_assoc->user.privKey.data[8]); /* last 8 bytes */
+ uint8_t* salt;
+ int salt_len;
+ int cryptgrm_len;
+ uint8_t* cryptgrm;
tvbuff_t* clear_tvb;
- guint8 iv[8];
- guint i;
+ uint8_t iv[8];
+ unsigned i;
salt_len = tvb_captured_length(p->priv_tvb);
@@ -1767,7 +1813,7 @@ snmp_usm_priv_des(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pi
return NULL;
}
- salt = (guint8*)tvb_memdup(pinfo->pool,p->priv_tvb,0,salt_len);
+ salt = (uint8_t*)tvb_memdup(pinfo->pool,p->priv_tvb,0,salt_len);
/*
The resulting "salt" is XOR-ed with the pre-IV to obtain the IV.
@@ -1783,9 +1829,9 @@ snmp_usm_priv_des(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pi
return NULL;
}
- cryptgrm = (guint8*)tvb_memdup(pinfo->pool,encryptedData,0,-1);
+ cryptgrm = (uint8_t*)tvb_memdup(pinfo->pool,encryptedData,0,-1);
- cleartext = (guint8*)wmem_alloc(pinfo->pool, cryptgrm_len);
+ cleartext = (uint8_t*)wmem_alloc(pinfo->pool, 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;
@@ -1806,24 +1852,24 @@ snmp_usm_priv_des(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pi
return clear_tvb;
on_gcry_error:
- *error = (const gchar *)gcry_strerror(err);
+ *error = (const char *)gcry_strerror(err);
if (hd) gcry_cipher_close(hd);
return NULL;
}
static tvbuff_t*
-snmp_usm_priv_aes_common(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, gchar const** error, int algo)
+snmp_usm_priv_aes_common(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, char 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;
+ uint8_t* cleartext;
+ uint8_t* 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;
+ uint8_t iv[16];
+ int priv_len;
+ int cryptgrm_len;
+ uint8_t* cryptgrm;
tvbuff_t* clear_tvb;
priv_len = tvb_captured_length(p->priv_tvb);
@@ -1848,9 +1894,9 @@ snmp_usm_priv_aes_common(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_i
*error = "Not enough data remaining";
return NULL;
}
- cryptgrm = (guint8*)tvb_memdup(pinfo->pool,encryptedData,0,-1);
+ cryptgrm = (uint8_t*)tvb_memdup(pinfo->pool,encryptedData,0,-1);
- cleartext = (guint8*)wmem_alloc(pinfo->pool, cryptgrm_len);
+ cleartext = (uint8_t*)wmem_alloc(pinfo->pool, cryptgrm_len);
err = gcry_cipher_open(&hd, algo, GCRY_CIPHER_MODE_CFB, 0);
if (err != GPG_ERR_NO_ERROR) goto on_gcry_error;
@@ -1871,48 +1917,48 @@ snmp_usm_priv_aes_common(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_i
return clear_tvb;
on_gcry_error:
- *error = (const gchar *)gcry_strerror(err);
+ *error = (const char *)gcry_strerror(err);
if (hd) gcry_cipher_close(hd);
return NULL;
}
static tvbuff_t*
-snmp_usm_priv_aes128(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, gchar const** error)
+snmp_usm_priv_aes128(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, char const** error)
{
return snmp_usm_priv_aes_common(p, encryptedData, pinfo, error, GCRY_CIPHER_AES);
}
static tvbuff_t*
-snmp_usm_priv_aes192(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, gchar const** error)
+snmp_usm_priv_aes192(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, char const** error)
{
return snmp_usm_priv_aes_common(p, encryptedData, pinfo, error, GCRY_CIPHER_AES192);
}
static tvbuff_t*
-snmp_usm_priv_aes256(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, gchar const** error)
+snmp_usm_priv_aes256(snmp_usm_params_t* p, tvbuff_t* encryptedData, packet_info *pinfo, char const** error)
{
return snmp_usm_priv_aes_common(p, encryptedData, pinfo, error, GCRY_CIPHER_AES256);
}
-static gboolean
+static bool
check_ScopedPdu(tvbuff_t* tvb)
{
int offset;
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
+ int32_t tag;
int hoffset, eoffset;
- guint32 len;
+ uint32_t 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;
+ )) return false;
- if((tvb_get_guint8(tvb, offset)==0)&&(tvb_get_guint8(tvb, offset+1)==0))
- return TRUE;
+ if((tvb_get_uint8(tvb, offset)==0)&&(tvb_get_uint8(tvb, offset+1)==0))
+ return true;
hoffset = offset;
@@ -1920,14 +1966,14 @@ check_ScopedPdu(tvbuff_t* tvb)
offset = get_ber_length(tvb, offset, &len, NULL);
eoffset = offset + len;
- if (eoffset <= hoffset) return FALSE;
+ 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 false;
- return TRUE;
+ return true;
}
@@ -1969,19 +2015,19 @@ snmp_find_conversation_and_get_conv_data(packet_info *pinfo) {
return snmp_info;
}
-guint
+unsigned
dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
- proto_tree *tree, int proto, gint ett, gboolean is_tcp)
+ proto_tree *tree, int proto, int ett, bool is_tcp)
{
- guint length_remaining;
- gint8 ber_class;
+ unsigned length_remaining;
+ int8_t ber_class;
bool pc, ind = 0;
- gint32 tag;
- guint32 len;
- guint message_length;
+ int32_t tag;
+ uint32_t len;
+ unsigned message_length;
int start_offset = offset;
- guint32 version = 0;
+ uint32_t version = 0;
tvbuff_t *next_tvb;
proto_tree *snmp_tree = NULL;
@@ -1990,7 +2036,7 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
snmp_conv_info_t *snmp_info = snmp_find_conversation_and_get_conv_data(pinfo);
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
asn1_ctx.private_data = snmp_info;
@@ -2003,11 +2049,11 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
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.authenticated = false;
+ usm_p.encrypted = false;
usm_p.boots = 0;
usm_p.snmp_time = 0;
- usm_p.authOK = FALSE;
+ usm_p.authOK = false;
/*
* This will throw an exception if we don't have any data left.
@@ -2063,7 +2109,7 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
message_length = len + offset;
/*Get the SNMP version data*/
- /*offset =*/ dissect_ber_integer(FALSE, &asn1_ctx, 0, tvb, offset, -1, &version);
+ /*offset =*/ dissect_ber_integer(false, &asn1_ctx, 0, tvb, offset, -1, &version);
/*
@@ -2104,14 +2150,14 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
switch (version) {
case 0: /* v1 */
case 1: /* v2c */
- offset = dissect_snmp_Message(FALSE , tvb, start_offset, &asn1_ctx, snmp_tree, -1);
+ 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);
+ 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);
+ offset = dissect_snmp_SNMPv3Message(false , tvb, start_offset, &asn1_ctx, snmp_tree, -1);
break;
default:
/*
@@ -2121,13 +2167,12 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
*/
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)) {
+ if((!is_tcp) && (length_remaining > (unsigned)offset)) {
next_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(data_handle, next_tvb, pinfo, tree);
} else {
@@ -2137,14 +2182,14 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
return offset;
}
-static gint
+static int
dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
int offset;
- gint8 tmp_class;
+ int8_t tmp_class;
bool tmp_pc;
- gint32 tmp_tag;
- guint32 tmp_length;
+ int32_t tmp_tag;
+ uint32_t tmp_length;
bool tmp_ind;
/*
@@ -2170,11 +2215,11 @@ dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
*/
if (!pinfo->fragmented && !pinfo->flags.in_error_pkt) {
if ( pinfo->ptype == PT_UDP ) {
- if(tmp_length>(guint32)tvb_reported_length_remaining(tvb, offset)) {
+ if(tmp_length>(uint32_t)tvb_reported_length_remaining(tvb, offset)) {
return 0;
}
}else{
- if(tmp_length!=(guint32)tvb_reported_length_remaining(tvb, offset)) {
+ if(tmp_length!=(uint32_t)tvb_reported_length_remaining(tvb, offset)) {
return 0;
}
}
@@ -2226,17 +2271,17 @@ dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
}
}
- return dissect_snmp_pdu(tvb, 0, pinfo, tree, proto_snmp, ett_snmp, FALSE);
+ 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;
+ unsigned message_len;
while (tvb_reported_length_remaining(tvb, offset) > 0) {
- message_len = dissect_snmp_pdu(tvb, offset, pinfo, tree, proto_snmp, ett_snmp, TRUE);
+ message_len = dissect_snmp_pdu(tvb, offset, pinfo, tree, proto_snmp, ett_snmp, true);
if (message_len == 0) {
/*
* We don't have all the data for that message,
@@ -2272,14 +2317,14 @@ dissect_smux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
SHA2 Password to Key Algorithm from RFC 7860 9.3
*/
static void
-snmp_usm_password_to_key(const snmp_usm_auth_model_t model, const guint8 *password,
- guint passwordlen, const guint8 *engineID, guint engineLength, guint8 *key)
+snmp_usm_password_to_key(const snmp_usm_auth_model_t model, const uint8_t *password,
+ unsigned passwordlen, const uint8_t *engineID, unsigned engineLength, uint8_t *key)
{
gcry_md_hd_t hash_handle;
- guint8 *cp, password_buf[64];
- guint32 password_index = 0;
- guint32 count = 0, i;
- guint hash_len;
+ uint8_t *cp, password_buf[64];
+ uint32_t password_index = 0;
+ uint32_t count = 0, i;
+ unsigned hash_len;
if (gcry_md_open(&hash_handle, auth_hash_algo[model], 0)) {
return;
@@ -2335,8 +2380,9 @@ UAT_LSTRING_CB_DEF(snmp_users,userName,snmp_ue_assoc_t,user.userName.data,user.u
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")
+UAT_VS_DEF(snmp_users,auth_model,snmp_ue_assoc_t,unsigned,0,"MD5")
+UAT_VS_DEF(snmp_users,priv_proto,snmp_ue_assoc_t,unsigned,0,"DES")
+UAT_VS_DEF(snmp_users,priv_key_exp,snmp_ue_assoc_t,unsigned,0,"draft-reeder-snmpv3-usm-3desede-00")
static void *
snmp_specific_trap_copy_cb(void *dest, const void *orig, size_t len _U_)
@@ -2498,7 +2544,7 @@ void proto_register_snmp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_snmp,
&ett_engineid,
&ett_msgFlags,
@@ -2529,7 +2575,7 @@ void proto_register_snmp(void) {
{ &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_unimplemented_instance_index, { "snmp.unimplemented_instance_index", PI_UNDECODED, PI_WARN, "OID instances 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 }},
@@ -2557,13 +2603,14 @@ void proto_register_snmp(void) {
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_FLD_VS(snmp_users,priv_key_exp,"Key expansion method",priv_key_exp_types,"Privacy protocol key expansion method"),
UAT_END_FIELDS
};
uat_t *assocs_uat = uat_new("SNMP Users",
sizeof(snmp_ue_assoc_t),
"snmp_users",
- TRUE,
+ true,
&ueas,
&num_ueas,
UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
@@ -2575,6 +2622,10 @@ void proto_register_snmp(void) {
NULL,
users_fields);
+ static const char *assocs_uat_defaults[] = {
+ NULL, NULL, NULL, NULL, NULL, NULL, "draft-reeder-snmpv3-usm-3desede-00"};
+ uat_set_default_values(assocs_uat, assocs_uat_defaults);
+
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"),
@@ -2585,7 +2636,7 @@ void proto_register_snmp(void) {
uat_t* specific_traps_uat = uat_new("SNMP Enterprise Specific Trap Types",
sizeof(snmp_st_assoc_t),
"snmp_specific_traps",
- TRUE,
+ true,
&specific_traps,
&num_specific_traps,
UAT_AFFECTS_DISSECTION, /* affects dissection of packets, but not set of named fields */
@@ -2700,7 +2751,7 @@ void proto_reg_handoff_snmp(void) {
void
proto_register_smux(void)
{
- static gint *ett[] = {
+ static int *ett[] = {
&ett_smux,
};
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.h b/epan/dissectors/asn1/snmp/packet-snmp-template.h
index 362114d5..2a7ffc56 100644
--- a/epan/dissectors/asn1/snmp/packet-snmp-template.h
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.h
@@ -24,14 +24,14 @@
#define SNMP_REPORT 8
typedef struct _snmp_usm_key {
- guint8* data;
- guint len;
+ uint8_t* data;
+ unsigned 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 tvbuff_t* (*snmp_usm_decoder_t)(snmp_usm_params_t*, tvbuff_t* encryptedData, packet_info *pinfo, gchar const** error);
+typedef tvbuff_t* (*snmp_usm_decoder_t)(snmp_usm_params_t*, tvbuff_t* encryptedData, packet_info *pinfo, char const** error);
typedef enum _snmp_usm_auth_model_t {
SNMP_USM_AUTH_MD5 = 0,
@@ -55,26 +55,27 @@ typedef struct _snmp_user_t {
} snmp_user_t;
typedef struct {
- guint8* data;
- guint len;
+ uint8_t* data;
+ unsigned 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;
+ unsigned auth_model;
+ unsigned priv_proto;
+ unsigned priv_key_exp;
struct _snmp_ue_assoc_t* next;
};
struct _snmp_usm_params_t {
- gboolean authenticated;
- gboolean encrypted;
- guint start_offset;
- guint auth_offset;
+ bool authenticated;
+ bool encrypted;
+ unsigned start_offset;
+ unsigned auth_offset;
- guint32 boots;
- guint32 snmp_time;
+ uint32_t boots;
+ uint32_t snmp_time;
tvbuff_t* engine_tvb;
tvbuff_t* user_tvb;
proto_item* auth_item;
@@ -83,23 +84,23 @@ struct _snmp_usm_params_t {
tvbuff_t* msg_tvb;
snmp_ue_assoc_t* user_assoc;
- gboolean authOK;
+ bool authOK;
};
typedef struct snmp_request_response {
- guint32 request_frame_id;
- guint32 response_frame_id;
+ uint32_t request_frame_id;
+ uint32_t response_frame_id;
nstime_t request_time;
- guint requestId;
- guint request_procedure_id;
+ unsigned requestId;
+ unsigned request_procedure_id;
} snmp_request_response_t;
/*
* 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 unsigned dissect_snmp_pdu(tvbuff_t *, int, packet_info *, proto_tree *tree,
+ int, int, bool);
extern int dissect_snmp_engineid(proto_tree *, packet_info *, tvbuff_t *, int, int);
/*#include "packet-snmp-exp.h"*/
diff --git a/epan/dissectors/asn1/snmp/snmp.cnf b/epan/dissectors/asn1/snmp/snmp.cnf
index 9c9547aa..fd89055f 100644
--- a/epan/dissectors/asn1/snmp/snmp.cnf
+++ b/epan/dissectors/asn1/snmp/snmp.cnf
@@ -31,7 +31,7 @@ BulkPDU/request-id bulkPDU_request-id
VAL_PTR = &pdu_type
#.FN_BODY PDUs
- gint pdu_type=-1;
+ int pdu_type=-1;
snmp_request_response_t *srrp;
snmp_conv_info_t *snmp_info = (snmp_conv_info_t *)actx->private_data;
@@ -75,12 +75,12 @@ BulkPDU/request-id bulkPDU_request-id
#.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;
+ unsigned specific_trap;
%(DEFAULT_BODY)s
if (generic_trap == 6) { /* enterprise specific */
- const gchar *specific_str = snmp_lookup_specific_trap (specific_trap);
+ const char *specific_str = snmp_lookup_specific_trap (specific_trap);
if (specific_str) {
proto_item_append_text(actx->created_item, " (%%s)", specific_str);
}
@@ -91,7 +91,7 @@ BulkPDU/request-id bulkPDU_request-id
#.FN_PARS EnterpriseOID FN_VARIANT = _str VAL_PTR = &enterprise_oid
#.FN_BODY EnterpriseOID
- const gchar* name;
+ const char* name;
%(DEFAULT_BODY)s
@@ -137,7 +137,7 @@ BulkPDU/request-id bulkPDU_request-id
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);
+ 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);
@@ -147,13 +147,13 @@ BulkPDU/request-id bulkPDU_request-id
#.FN_BODY ScopedPduData/encryptedPDU
tvbuff_t* crypt_tvb;
- offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_snmp_encryptedPDU, &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;
+ const char* 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, actx->pinfo, &error );
@@ -181,7 +181,7 @@ BulkPDU/request-id bulkPDU_request-id
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);
+ dissect_snmp_ScopedPDU(false, cleartext_tvb, 0, actx, decrypted_tree, -1);
}
} else {
col_set_str(actx->pinfo->cinfo, COL_INFO, "encryptedPDU: privKey Unknown");
@@ -193,7 +193,7 @@ BulkPDU/request-id bulkPDU_request-id
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);
+ 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, actx->pinfo);
break;
case SNMP_SEC_ANY: /* 0 */
@@ -208,11 +208,11 @@ BulkPDU/request-id bulkPDU_request-id
if( usm_p.authenticated
&& usm_p.user_assoc ) {
- const gchar* error = NULL;
+ const char* error = NULL;
proto_item* authen_item;
proto_tree* authen_tree = proto_item_add_subtree(usm_p.auth_item,ett_authParameters);
- guint8* calc_auth = NULL;
- guint calc_auth_len = 0;
+ uint8_t* calc_auth = NULL;
+ unsigned calc_auth_len = 0;
usm_p.authOK = snmp_usm_auth(actx->pinfo, usm_p.user_assoc->user.authModel, &usm_p, &calc_auth, &calc_auth_len, &error );
@@ -227,7 +227,7 @@ BulkPDU/request-id bulkPDU_request-id
if (usm_p.authOK) {
expert = &ei_snmp_authentication_ok;
} else {
- const gchar* calc_auth_str = bytes_to_str_punct(actx->pinfo->pool, calc_auth,calc_auth_len,' ');
+ const char* calc_auth_str = bytes_to_str_punct(actx->pinfo->pool, calc_auth,calc_auth_len,' ');
proto_item_append_text(authen_item, " calculated = %s", calc_auth_str);
expert = &ei_snmp_authentication_error;
}
@@ -245,15 +245,15 @@ BulkPDU/request-id bulkPDU_request-id
%(DEFAULT_BODY)s
if (parameter_tvb){
- guint8 v3_flags = tvb_get_guint8(parameter_tvb, 0);
+ uint8_t v3_flags = tvb_get_uint8(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;
+ usm_p.encrypted = v3_flags & TH_CRYPT ? true : false;
+ usm_p.authenticated = v3_flags & TH_AUTH ? true : false;
}
diff --git a/epan/dissectors/asn1/spnego/packet-spnego-template.c b/epan/dissectors/asn1/spnego/packet-spnego-template.c
index 25fcfa08..db2fd6d7 100644
--- a/epan/dissectors/asn1/spnego/packet-spnego-template.c
+++ b/epan/dissectors/asn1/spnego/packet-spnego-template.c
@@ -25,6 +25,7 @@
#include <epan/conversation.h>
#include <epan/proto_data.h>
#include <wsutil/wsgcrypt.h>
+#include <wsutil/array.h>
#include "packet-gssapi.h"
#include "packet-kerberos.h"
#include "packet-ber.h"
@@ -39,46 +40,46 @@ void proto_reg_handoff_spnego(void);
static dissector_handle_t spnego_wrap_handle;
/* Initialize the protocol and registered fields */
-static int proto_spnego = -1;
-static int proto_spnego_krb5 = -1;
+static int proto_spnego;
+static int proto_spnego_krb5;
-static int hf_spnego_wraptoken = -1;
+static int hf_spnego_wraptoken;
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;
+static int hf_spnego_krb5;
+static int hf_spnego_krb5_tok_id;
+static int hf_spnego_krb5_sgn_alg;
+static int hf_spnego_krb5_seal_alg;
+static int hf_spnego_krb5_snd_seq;
+static int hf_spnego_krb5_sgn_cksum;
+static int hf_spnego_krb5_confounder;
+static int hf_spnego_krb5_filler;
+static int hf_spnego_krb5_cfx_flags;
+static int hf_spnego_krb5_cfx_flags_01;
+static int hf_spnego_krb5_cfx_flags_02;
+static int hf_spnego_krb5_cfx_flags_04;
+static int hf_spnego_krb5_cfx_ec;
+static int hf_spnego_krb5_cfx_rrc;
+static int hf_spnego_krb5_cfx_seq;
#include "packet-spnego-hf.c"
/* Global variables */
static const char *MechType_oid;
gssapi_oid_value *next_level_value;
-gboolean saw_mechanism = FALSE;
+bool saw_mechanism;
/* 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;
+static int ett_spnego;
+static int ett_spnego_wraptoken;
+static int ett_spnego_krb5;
+static int ett_spnego_krb5_cfx_flags;
#include "packet-spnego-ett.c"
-static expert_field ei_spnego_decrypted_keytype = EI_INIT;
-static expert_field ei_spnego_unknown_header = EI_INIT;
+static expert_field ei_spnego_decrypted_keytype;
+static expert_field ei_spnego_unknown_header;
static dissector_handle_t spnego_handle;
static dissector_handle_t spnego_krb5_handle;
@@ -111,6 +112,7 @@ static int dissect_spnego_NegTokenInit2(bool implicit_tag, tvbuff_t *tvb,
#define KRB_TOKEN_DELETE_SEC_CONTEXT 0x0201
#define KRB_TOKEN_TGT_REQ 0x0004
#define KRB_TOKEN_TGT_REP 0x0104
+#define KRB_TOKEN_IAKERB_PROXY 0x0105
#define KRB_TOKEN_CFX_GETMIC 0x0404
#define KRB_TOKEN_CFX_WRAP 0x0405
@@ -123,8 +125,9 @@ static const value_string spnego_krb5_tok_id_vals[] = {
{ KRB_TOKEN_DELETE_SEC_CONTEXT, "KRB5_GSS_Delete_sec_context" },
{ KRB_TOKEN_TGT_REQ, "KERB_TGT_REQUEST" },
{ KRB_TOKEN_TGT_REP, "KERB_TGT_REPLY" },
+ { KRB_TOKEN_IAKERB_PROXY, "KRB_TOKEN_IAKERB_PROXY" },
{ KRB_TOKEN_CFX_GETMIC, "KRB_TOKEN_CFX_GetMic" },
- { KRB_TOKEN_CFX_WRAP, "KRB_TOKEN_CFX_WRAP" },
+ { KRB_TOKEN_CFX_WRAP, "KRB_TOKEN_CFX_WRAP" },
{ 0, NULL}
};
@@ -162,11 +165,11 @@ static const value_string spnego_krb5_seal_alg_vals[] = {
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);
+dissect_spnego_krb5_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, uint16_t 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);
+dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, uint16_t token_id, gssapi_encrypt_info_t* gssapi_encrypt);
static int
dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
@@ -174,16 +177,16 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
proto_item *item;
proto_tree *subtree;
int offset = 0;
- guint16 token_id;
+ uint16_t token_id;
const char *oid;
tvbuff_t *krb5_tvb;
- gint8 ber_class;
+ int8_t ber_class;
bool pc, ind = 0;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t 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);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
item = proto_tree_add_item(tree, hf_spnego_krb5, tvb, offset, -1, ENC_NA);
@@ -235,7 +238,7 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
*/
/* Next, the OID */
- offset=dissect_ber_object_identifier_str(FALSE, &asn1_ctx, subtree, tvb, offset, hf_spnego_krb5_oid, &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);
@@ -250,7 +253,7 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
* No token ID - just dissect as a Kerberos message and
* return.
*/
- dissect_kerberos_main(tvb, pinfo, subtree, FALSE, NULL);
+ dissect_kerberos_main(tvb, pinfo, subtree, false, NULL);
return tvb_captured_length(tvb);
default:
@@ -270,17 +273,17 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
switch (token_id) {
case KRB_TOKEN_TGT_REQ:
- offset = dissect_kerberos_TGT_REQ(FALSE, tvb, offset, &asn1_ctx, subtree, -1);
+ offset = dissect_kerberos_TGT_REQ(false, tvb, offset, &asn1_ctx, subtree, -1);
break;
case KRB_TOKEN_TGT_REP:
- offset = dissect_kerberos_TGT_REP(FALSE, tvb, offset, &asn1_ctx, subtree, -1);
+ offset = dissect_kerberos_TGT_REP(false, tvb, offset, &asn1_ctx, subtree, -1);
break;
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);
+ offset += dissect_kerberos_main(krb5_tvb, pinfo, subtree, false, NULL);
break;
case KRB_TOKEN_GETMIC:
@@ -303,6 +306,11 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
offset = dissect_spnego_krb5_cfx_wrap_base(tvb, offset, pinfo, subtree, token_id, encrypt_info);
break;
+ case KRB_TOKEN_IAKERB_PROXY:
+ offset = dissect_spnego_IAKERB_HEADER(false, tvb, offset, &asn1_ctx, subtree, -1);
+ krb5_tvb = tvb_new_subset_remaining(tvb, offset);
+ offset += dissect_kerberos_main(krb5_tvb, pinfo, subtree, false, NULL);
+ break;
default:
break;
@@ -326,15 +334,15 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
#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)
+arcfour_mic_key(const uint8_t *key_data, size_t key_size, int key_type,
+ const uint8_t *cksum_data, size_t cksum_size,
+ uint8_t *key6_data)
{
- guint8 k5_data[HASH_MD5_LENGTH];
- guint8 T[4] = { 0 };
+ uint8_t k5_data[HASH_MD5_LENGTH];
+ uint8_t T[4] = { 0 };
if (key_type == KEYTYPE_ARCFOUR_56) {
- guint8 L40[14] = "fortybits";
+ uint8_t L40[14] = "fortybits";
memcpy(L40 + 10, T, sizeof(T));
if (ws_hmac_buffer(GCRY_MD_MD5, k5_data, L40, 14, key_data, key_size)) {
return 0;
@@ -371,19 +379,19 @@ usage2arcfour(int usage)
}
static int
-arcfour_mic_cksum(guint8 *key_data, int key_length,
+arcfour_mic_cksum(uint8_t *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)
+ uint8_t sgn_cksum[8],
+ const uint8_t *v1, size_t l1,
+ const uint8_t *v2, size_t l2,
+ const uint8_t *v3, size_t l3)
{
- static const guint8 signature[] = "signaturekey";
- guint8 ksign_c[HASH_MD5_LENGTH];
- guint8 t[4];
- guint8 digest[HASH_MD5_LENGTH];
+ static const uint8_t signature[] = "signaturekey";
+ uint8_t ksign_c[HASH_MD5_LENGTH];
+ uint8_t t[4];
+ uint8_t digest[HASH_MD5_LENGTH];
int rc4_usage;
- guint8 cksum[HASH_MD5_LENGTH];
+ uint8_t cksum[HASH_MD5_LENGTH];
gcry_md_hd_t md5_handle;
rc4_usage=usage2arcfour(usage);
@@ -418,11 +426,11 @@ arcfour_mic_cksum(guint8 *key_data, int key_length,
* Verify padding of a gss wrapped message and return its length.
*/
static int
-gssapi_verify_pad(guint8 *wrapped_data, int wrapped_length,
+gssapi_verify_pad(uint8_t *wrapped_data, int wrapped_length,
int datalen,
int *padlen)
{
- guint8 *pad;
+ uint8_t *pad;
int padlength;
int i;
@@ -442,16 +450,16 @@ gssapi_verify_pad(guint8 *wrapped_data, int wrapped_length,
}
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)
+decrypt_arcfour(gssapi_encrypt_info_t* gssapi_encrypt, uint8_t *input_message_buffer, uint8_t *output_message_buffer,
+ uint8_t *key_value, int key_size, int key_type)
{
- guint8 Klocaldata[16];
+ uint8_t Klocaldata[16];
int ret;
int datalen;
- guint8 k6_data[16];
- guint32 SND_SEQ[2];
- guint8 Confounder[8];
- guint8 cksum_data[8];
+ uint8_t k6_data[16];
+ uint32_t SND_SEQ[2];
+ uint8_t Confounder[8];
+ uint8_t cksum_data[8];
int cmp;
int conf_flag;
int padlen = 0;
@@ -488,7 +496,7 @@ decrypt_arcfour(gssapi_encrypt_info_t* gssapi_encrypt, guint8 *input_message_buf
gcry_cipher_close(rc4_handle);
return -13;
}
- gcry_cipher_decrypt(rc4_handle, (guint8 *)SND_SEQ, 8, NULL, 0);
+ gcry_cipher_decrypt(rc4_handle, (uint8_t *)SND_SEQ, 8, NULL, 0);
gcry_cipher_close(rc4_handle);
memset(k6_data, 0, sizeof(k6_data));
@@ -501,10 +509,10 @@ decrypt_arcfour(gssapi_encrypt_info_t* gssapi_encrypt, guint8 *input_message_buf
for (i = 0; i < 16; i++)
- Klocaldata[i] = ((guint8 *)key_value)[i] ^ 0xF0;
+ Klocaldata[i] = ((uint8_t *)key_value)[i] ^ 0xF0;
ret = arcfour_mic_key(Klocaldata,sizeof(Klocaldata),key_type,
- (const guint8 *)SND_SEQ, 4,
+ (const uint8_t *)SND_SEQ, 4,
k6_data);
memset(Klocaldata, 0, sizeof(Klocaldata));
if (ret) {
@@ -570,10 +578,10 @@ decrypt_gssapi_krb_arcfour_wrap(proto_tree *tree _U_, packet_info *pinfo, tvbuff
int ret;
enc_key_t *ek;
int length;
- const guint8 *original_data;
+ const uint8_t *original_data;
- guint8 *cryptocopy=NULL; /* workaround for pre-0.6.1 heimdal bug */
- guint8 *output_message_buffer;
+ uint8_t *cryptocopy=NULL; /* workaround for pre-0.6.1 heimdal bug */
+ uint8_t *output_message_buffer;
length=tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb);
original_data=tvb_get_ptr(gssapi_encrypt->gssapi_encrypted_tvb, 0, length);
@@ -587,8 +595,8 @@ decrypt_gssapi_krb_arcfour_wrap(proto_tree *tree _U_, packet_info *pinfo, tvbuff
/* 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(pinfo->pool, length);
- output_message_buffer=(guint8 *)wmem_alloc(pinfo->pool, length);
+ cryptocopy=(uint8_t *)wmem_alloc(pinfo->pool, length);
+ output_message_buffer=(uint8_t *)wmem_alloc(pinfo->pool, length);
for(ek=enc_key_list;ek;ek=ek->next){
/* shortcircuit and bail out if enctypes are not matching */
@@ -623,9 +631,9 @@ decrypt_gssapi_krb_arcfour_wrap(proto_tree *tree _U_, packet_info *pinfo, tvbuff
/* borrowed from heimdal */
static int
-rrc_rotate(guint8 *data, int len, guint16 rrc, int unrotate)
+rrc_rotate(uint8_t *data, int len, uint16_t rrc, int unrotate)
{
- guint8 *tmp, buf[256];
+ uint8_t *tmp, buf[256];
size_t left;
if (len == 0)
@@ -641,7 +649,7 @@ rrc_rotate(guint8 *data, int len, guint16 rrc, int unrotate)
if (rrc <= sizeof(buf)) {
tmp = buf;
} else {
- tmp = (guint8 *)g_malloc(rrc);
+ tmp = (uint8_t *)g_malloc(rrc);
if (tmp == NULL)
return -1;
}
@@ -668,13 +676,13 @@ decrypt_gssapi_krb_cfx_wrap(proto_tree *tree,
packet_info *pinfo,
tvbuff_t *checksum_tvb,
gssapi_encrypt_info_t* gssapi_encrypt,
- guint16 ec _U_,
- guint16 rrc,
+ uint16_t ec _U_,
+ uint16_t rrc,
int keytype,
unsigned int usage)
{
- guint8 *rotated;
- guint8 *output;
+ uint8_t *rotated;
+ uint8_t *output;
int datalen;
tvbuff_t *next_tvb;
@@ -700,13 +708,13 @@ decrypt_gssapi_krb_cfx_wrap(proto_tree *tree,
datalen = tvb_captured_length(checksum_tvb) + tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb);
- rotated = (guint8 *)wmem_alloc(pinfo->pool, datalen);
+ rotated = (uint8_t *)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));
- rrc_rotate(rotated, datalen, rrc, TRUE);
+ rrc_rotate(rotated, datalen, rrc, true);
next_tvb=tvb_new_child_real_data(gssapi_encrypt->gssapi_encrypted_tvb, rotated,
datalen, datalen);
@@ -715,9 +723,9 @@ decrypt_gssapi_krb_cfx_wrap(proto_tree *tree,
output = decrypt_krb5_data(tree, pinfo, usage, next_tvb, keytype, &datalen);
if (output) {
- guint8 *outdata;
+ uint8_t *outdata;
- outdata = (guint8 *)wmem_memdup(pinfo->pool, output, tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb));
+ outdata = (uint8_t *)wmem_memdup(pinfo->pool, output, tvb_captured_length(gssapi_encrypt->gssapi_encrypted_tvb));
gssapi_encrypt->gssapi_decrypted_tvb=tvb_new_child_real_data(gssapi_encrypt->gssapi_encrypted_tvb,
outdata,
@@ -736,9 +744,9 @@ decrypt_gssapi_krb_cfx_wrap(proto_tree *tree,
* This is for GSSAPI Wrap tokens ...
*/
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)
+dissect_spnego_krb5_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, uint16_t token_id, gssapi_encrypt_info_t* gssapi_encrypt)
{
- guint16 sgn_alg, seal_alg;
+ uint16_t sgn_alg, seal_alg;
#ifdef HAVE_KERBEROS
int start_offset=offset;
#else
@@ -859,7 +867,7 @@ dissect_spnego_krb5_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, pro
static int
dissect_spnego_krb5_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree)
{
- guint16 sgn_alg;
+ uint16_t sgn_alg;
/*
* The KRB5 blob conforms to RFC1964:
@@ -922,7 +930,7 @@ dissect_spnego_krb5_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinfo _U
static int
dissect_spnego_krb5_cfx_flags(tvbuff_t *tvb, int offset,
proto_tree *spnego_krb5_tree,
- guint8 cfx_flags _U_)
+ uint8_t cfx_flags _U_)
{
static int * const flags[] = {
&hf_spnego_krb5_cfx_flags_04,
@@ -939,12 +947,12 @@ dissect_spnego_krb5_cfx_flags(tvbuff_t *tvb, int offset,
* This is for GSSAPI CFX Wrap tokens ...
*/
static int
-dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint16 token_id _U_, gssapi_encrypt_info_t* gssapi_encrypt)
+dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, uint16_t token_id _U_, gssapi_encrypt_info_t* gssapi_encrypt)
{
- guint8 flags;
- guint16 ec;
+ uint8_t flags;
+ uint16_t ec;
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
- guint16 rrc;
+ uint16_t rrc;
#else
(void) pinfo;
#endif
@@ -959,7 +967,7 @@ dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* Now, the sign and seal algorithms ... */
- flags = tvb_get_guint8(tvb, offset);
+ flags = tvb_get_uint8(tvb, offset);
offset = dissect_spnego_krb5_cfx_flags(tvb, offset, tree, flags);
if (gssapi_encrypt != NULL)
@@ -987,7 +995,7 @@ dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo,
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 */
+ if (gssapi_encrypt == NULL) /* Probably shouldn't happen, but just protect ourselves */
return offset;
/* Checksum of plaintext padded data */
@@ -1029,6 +1037,8 @@ dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo,
returned_offset = offset;
gssapi_encrypt->gssapi_wrap_tvb = tvb_new_subset_length(tvb, offset,
inner_token_len);
+ gssapi_encrypt->gssapi_decrypted_tvb = tvb_new_subset_length(tvb, offset,
+ inner_token_len);
offset += inner_token_len;
@@ -1115,7 +1125,7 @@ dissect_spnego_krb5_cfx_wrap_base(tvbuff_t *tvb, int offset, packet_info *pinfo,
static int
dissect_spnego_krb5_cfx_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree)
{
- guint8 flags;
+ uint8_t flags;
int checksum_size;
/*
@@ -1124,7 +1134,7 @@ dissect_spnego_krb5_cfx_getmic_base(tvbuff_t *tvb, int offset, packet_info *pinf
* and so on }
*/
- flags = tvb_get_guint8(tvb, offset);
+ flags = tvb_get_uint8(tvb, offset);
offset = dissect_spnego_krb5_cfx_flags(tvb, offset, tree, flags);
/* Skip the filler */
@@ -1167,7 +1177,7 @@ dissect_spnego_krb5_wrap(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
proto_item *item;
proto_tree *subtree;
int offset = 0;
- guint16 token_id;
+ uint16_t 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);
@@ -1228,7 +1238,7 @@ dissect_spnego_wrap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
proto_tree *subtree;
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
MechType_oid = NULL;
@@ -1250,7 +1260,7 @@ dissect_spnego_wrap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
* ASN1 code addet to spnego.asn to handle this.
*/
- offset = dissect_spnego_InitialContextToken(FALSE, tvb, offset, &asn1_ctx , subtree, -1);
+ offset = dissect_spnego_InitialContextToken(false, tvb, offset, &asn1_ctx , subtree, -1);
return offset;
}
@@ -1264,7 +1274,7 @@ dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
int offset = 0;
conversation_t *conversation;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/*
* We need this later, so lets get it now ...
@@ -1319,7 +1329,7 @@ dissect_spnego(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
* as well. Naughty, naughty.
*
*/
- dissect_spnego_NegotiationToken(FALSE, tvb, offset, &asn1_ctx, subtree, -1);
+ dissect_spnego_NegotiationToken(false, tvb, offset, &asn1_ctx, subtree, -1);
return tvb_captured_length(tvb);
}
@@ -1385,7 +1395,7 @@ void proto_register_spnego(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_spnego,
&ett_spnego_wraptoken,
&ett_spnego_krb5,
@@ -1447,7 +1457,9 @@ void proto_reg_handoff_spnego(void) {
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");
-
+ gssapi_init_oid("1.3.6.1.5.2.5", proto_spnego_krb5, ett_spnego_krb5,
+ spnego_krb5_handle, spnego_krb5_wrap_handle,
+ "KRB5 - IAKERB");
}
/*
diff --git a/epan/dissectors/asn1/spnego/spnego.asn b/epan/dissectors/asn1/spnego/spnego.asn
index b62973df..d70bdbed 100644
--- a/epan/dissectors/asn1/spnego/spnego.asn
+++ b/epan/dissectors/asn1/spnego/spnego.asn
@@ -101,4 +101,21 @@ InnerContextToken ::= ANY
-- END GSS-API DEFINITIONS
+
+-- https://datatracker.ietf.org/doc/html/draft-ietf-kitten-iakerb-03#section-3
+--
+-- Note that MIT Kerberos encodes target-realm as OCTET STRING
+--
+IAKERB-HEADER ::= SEQUENCE {
+ -- Note that the tag numbers start at 1, not 0, which would
+ -- be more conventional for Kerberos.
+ target-realm [1] UTF8String,
+ -- The name of the target realm.
+ cookie [2] OCTET STRING OPTIONAL,
+ -- Opaque data, if sent by the server,
+ -- MUST be copied by the client verbatim into
+ -- the next IAKRB_PROXY message.
+ ...
+}
+
END
diff --git a/epan/dissectors/asn1/spnego/spnego.cnf b/epan/dissectors/asn1/spnego/spnego.cnf
index 7558d0c7..45f9f854 100644
--- a/epan/dissectors/asn1/spnego/spnego.cnf
+++ b/epan/dissectors/asn1/spnego/spnego.cnf
@@ -51,7 +51,7 @@ NegotiationToken
if (!saw_mechanism) {
if (value)
next_level_value = value;
- saw_mechanism = TRUE;
+ saw_mechanism = true;
}
#.FN_BODY InnerContextToken
@@ -101,7 +101,7 @@ NegotiationToken
conversation_t *conversation;
- saw_mechanism = FALSE;
+ saw_mechanism = false;
%(DEFAULT_BODY)s
@@ -135,7 +135,7 @@ NegotiationToken
conversation_t *conversation;
- saw_mechanism = FALSE;
+ saw_mechanism = false;
%(DEFAULT_BODY)s
@@ -199,6 +199,39 @@ NegotiationToken
}
}
+
+#.FN_BODY IAKERB-HEADER/target-realm
+
+ int8_t ber_class;
+ bool pc;
+ int32_t tag;
+
+ /*
+ * MIT Kerberos sends an IAKERB-HEADER like this:
+ *
+ * <30 2B A1 29 04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30>
+ * 0 43: SEQUENCE {
+ * <A1 29 04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30 31 32>
+ * 2 41: [1] {
+ * <04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30 31 32 2D 4C>
+ * 4 39: OCTET STRING 'S2-W2012-L4.S1-W2012-L4.W2012R2-L4.BASE'
+ * : }
+ * : }
+ */
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class == BER_CLASS_UNI && pc == false && tag == BER_UNI_TAG_OCTETSTRING) {
+ proto_tree_add_text_internal(tree, tvb, offset, 1,
+ "target-realm encoded as OCTET STRING: MIT Kerberos?");
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_OCTETSTRING,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+ } else {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+ }
+
#.END
#
diff --git a/epan/dissectors/asn1/sv/packet-sv-template.c b/epan/dissectors/asn1/sv/packet-sv-template.c
index a2d8fc89..f8213f52 100644
--- a/epan/dissectors/asn1/sv/packet-sv-template.c
+++ b/epan/dissectors/asn1/sv/packet-sv-template.c
@@ -17,6 +17,7 @@
#include <epan/expert.h>
#include <epan/prefs.h>
#include <epan/addr_resolv.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -63,51 +64,51 @@ void proto_register_sv(void);
void proto_reg_handoff_sv(void);
/* Data for SV tap */
-static int sv_tap = -1;
+static int sv_tap;
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_reserve1_s_bit = -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;
-static int hf_sv_gmidentity = -1;
-static int hf_sv_gmidentity_manuf = -1;
+static int proto_sv;
+static int hf_sv_appid;
+static int hf_sv_length;
+static int hf_sv_reserve1;
+static int hf_sv_reserve1_s_bit;
+static int hf_sv_reserve2;
+static int hf_sv_phmeas_instmag_i;
+static int hf_sv_phsmeas_q;
+static int hf_sv_phsmeas_q_validity;
+static int hf_sv_phsmeas_q_overflow;
+static int hf_sv_phsmeas_q_outofrange;
+static int hf_sv_phsmeas_q_badreference;
+static int hf_sv_phsmeas_q_oscillatory;
+static int hf_sv_phsmeas_q_failure;
+static int hf_sv_phsmeas_q_olddata;
+static int hf_sv_phsmeas_q_inconsistent;
+static int hf_sv_phsmeas_q_inaccurate;
+static int hf_sv_phsmeas_q_source;
+static int hf_sv_phsmeas_q_test;
+static int hf_sv_phsmeas_q_operatorblocked;
+static int hf_sv_phsmeas_q_derived;
+static int hf_sv_gmidentity;
+static int hf_sv_gmidentity_manuf;
#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;
-static int ett_gmidentity = -1;
-static int ett_reserve1 = -1;
+static int ett_sv;
+static int ett_phsmeas;
+static int ett_phsmeas_q;
+static int ett_gmidentity;
+static int ett_reserve1;
#include "packet-sv-ett.c"
-static expert_field ei_sv_mal_utctime = EI_INIT;
-static expert_field ei_sv_zero_pdu = EI_INIT;
-static expert_field ei_sv_mal_gmidentity = EI_INIT;
+static expert_field ei_sv_mal_utctime;
+static expert_field ei_sv_zero_pdu;
+static expert_field ei_sv_mal_gmidentity;
-static gboolean sv_decode_data_as_phsmeas = FALSE;
+static bool sv_decode_data_as_phsmeas;
static dissector_handle_t sv_handle;
@@ -138,14 +139,14 @@ static const value_string sv_q_source_vals[] = {
static int
dissect_PhsMeas1(bool implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, int hf_id _U_)
{
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t len;
proto_tree *subtree;
- gint32 value;
- guint32 qual;
- guint32 i;
+ int32_t value;
+ uint32_t qual;
+ uint32_t i;
static int * const q_flags[] = {
&hf_sv_phsmeas_q_validity,
@@ -205,7 +206,7 @@ dissect_sv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* dat
{
int offset = 0;
int old_offset;
- guint sv_length = 0;
+ unsigned sv_length = 0;
proto_item *item;
proto_tree *tree;
@@ -216,7 +217,7 @@ dissect_sv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* dat
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ 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);
@@ -242,7 +243,7 @@ dissect_sv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* dat
set_actual_length(tvb, sv_length);
while (tvb_reported_length_remaining(tvb, offset) > 0) {
old_offset = offset;
- offset = dissect_sv_SampledValues(FALSE, tvb, offset, &asn1_ctx , tree, -1);
+ 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;
@@ -331,7 +332,7 @@ void proto_register_sv(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_sv,
&ett_phsmeas,
&ett_phsmeas_q,
diff --git a/epan/dissectors/asn1/sv/packet-sv-template.h b/epan/dissectors/asn1/sv/packet-sv-template.h
index 45ff60da..ea9aae9a 100644
--- a/epan/dissectors/asn1/sv/packet-sv-template.h
+++ b/epan/dissectors/asn1/sv/packet-sv-template.h
@@ -15,16 +15,16 @@
#define IEC61850_SV_MAX_PHSMEAS_ENTRIES 20
typedef struct _sv_phs_meas {
- gint32 value;
- guint32 qual;
+ int32_t value;
+ uint32_t qual;
} sv_phs_meas;
typedef struct _sv_frame_data {
- guint16 smpCnt;
- guint8 smpSynch;
- guint8 num_phsMeas;
+ uint16_t smpCnt;
+ uint8_t smpSynch;
+ uint8_t num_phsMeas;
sv_phs_meas phsMeas[IEC61850_SV_MAX_PHSMEAS_ENTRIES];
- guint16 smpMod;
+ uint16_t smpMod;
} sv_frame_data;
#endif /*__PACKET_SV_H__*/
diff --git a/epan/dissectors/asn1/sv/sv.cnf b/epan/dissectors/asn1/sv/sv.cnf
index 7da1f370..fd2634e0 100644
--- a/epan/dissectors/asn1/sv/sv.cnf
+++ b/epan/dissectors/asn1/sv/sv.cnf
@@ -15,18 +15,18 @@ SampledValues
#.FIELD_RENAME
#.FN_BODY ASDU/smpCnt VAL_PTR = &value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
sv_data.smpCnt = value;
#.END
#.FN_BODY UtcTime
- guint32 len;
- guint32 seconds;
- guint32 fraction;
- guint32 nanoseconds;
+ uint32_t len;
+ uint32_t seconds;
+ uint32_t fraction;
+ uint32_t nanoseconds;
nstime_t ts;
- gchar * ptime;
+ char * ptime;
len = tvb_reported_length_remaining(tvb, offset);
@@ -34,7 +34,7 @@ SampledValues
{
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)
+ if(hf_index > 0)
{
proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
}
@@ -43,14 +43,14 @@ SampledValues
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) ) ;
+ nanoseconds = (uint32_t)( ((uint64_t)fraction * UINT64_C(1000000000)) / UINT64_C(0x100000000) ) ;
ts.secs = seconds;
ts.nsecs = nanoseconds;
- ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+ ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, true);
- if(hf_index >= 0)
+ if(hf_index > 0)
{
proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
}
@@ -61,13 +61,13 @@ SampledValues
UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
#.FN_BODY ASDU/smpSynch VAL_PTR = &value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
sv_data.smpSynch = value;
#.END
#.FN_BODY ASDU/smpMod VAL_PTR = &value
- guint32 value;
+ uint32_t value;
%(DEFAULT_BODY)s
sv_data.smpMod = value;
#.END
@@ -81,10 +81,10 @@ UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
#.END
#.FN_BODY GmidData
- guint32 len;
+ uint32_t len;
proto_item *gmidentity_ti;
proto_tree *gmidentity_tree;
- const gchar *manuf_name;
+ const char *manuf_name;
len = tvb_reported_length_remaining(tvb, offset);
@@ -92,7 +92,7 @@ UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
{
proto_tree_add_expert_format(tree, actx->pinfo, &ei_sv_mal_gmidentity, tvb, offset, len,
"BER Error: malformed gmIdentity encoding, length must be 8 bytes");
- if(hf_index >= 0)
+ if(hf_index > 0)
{
proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
}
diff --git a/epan/dissectors/asn1/t124/packet-t124-template.c b/epan/dissectors/asn1/t124/packet-t124-template.c
index fa29e3a8..95b9f628 100644
--- a/epan/dissectors/asn1/t124/packet-t124-template.c
+++ b/epan/dissectors/asn1/t124/packet-t124-template.c
@@ -15,6 +15,7 @@
#include <epan/packet.h>
#include <epan/exceptions.h>
#include <epan/conversation.h>
+#include <wsutil/array.h>
#include <epan/asn1.h>
#include "packet-per.h"
@@ -34,23 +35,23 @@ 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;
+static int proto_t124;
+static proto_tree *top_tree;
#include "packet-t124-hf.c"
/* Initialize the subtree pointers */
-static int ett_t124 = -1;
-static int ett_t124_connectGCCPDU = -1;
+static int ett_t124;
+static int ett_t124_connectGCCPDU;
-static int hf_t124_ConnectData = -1;
-static int hf_t124_connectGCCPDU = -1;
-static int hf_t124_DomainMCSPDU_PDU = -1;
+static int hf_t124_ConnectData;
+static int hf_t124_connectGCCPDU;
+static int hf_t124_DomainMCSPDU_PDU;
-static guint32 channelId = -1;
+static uint32_t channelId = -1;
-static dissector_table_t t124_ns_dissector_table=NULL;
-static dissector_table_t t124_sd_dissector_table=NULL;
+static dissector_table_t t124_ns_dissector_table;
+static dissector_table_t t124_sd_dissector_table;
#include "packet-t124-ett.c"
@@ -70,7 +71,7 @@ register_t124_ns_dissector(const char *nsKey, dissector_t dissector, int 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)
+void register_t124_sd_dissector(packet_info *pinfo _U_, uint32_t channelId_param, dissector_t dissector, int proto)
{
/* XXX: we should keep the sub-dissectors list per conversation
as the same channels may be used.
@@ -84,7 +85,7 @@ void register_t124_sd_dissector(packet_info *pinfo _U_, guint32 channelId_param,
}
-guint32 t124_get_last_channelId(void)
+uint32_t t124_get_last_channelId(void)
{
return channelId;
}
@@ -97,7 +98,7 @@ void t124_set_top_tree(proto_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);
+ 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;
@@ -119,23 +120,23 @@ dissect_t124(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *d
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);
+ 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_)
+static bool
+dissect_t124_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data)
{
asn1_ctx_t asn1_ctx;
- volatile gboolean failed = FALSE;
+ volatile bool failed = false;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ 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
+ * 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.
@@ -145,17 +146,17 @@ dissect_t124_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
TRY {
(void) dissect_per_sequence(tvb, 0, &asn1_ctx, NULL, hf_t124_connectGCCPDU, -1, t124Heur_sequence);
} CATCH_BOUNDS_ERRORS {
- failed = TRUE;
+ 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 true;
}
- return FALSE;
+ return false;
}
/*--- proto_register_t124 -------------------------------------------*/
@@ -179,7 +180,7 @@ void proto_register_t124(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_t124,
&ett_t124_connectGCCPDU,
#include "packet-t124-ettarr.c"
diff --git a/epan/dissectors/asn1/t124/packet-t124-template.h b/epan/dissectors/asn1/t124/packet-t124-template.h
index 9869ca1d..df0bddbd 100644
--- a/epan/dissectors/asn1/t124/packet-t124-template.h
+++ b/epan/dissectors/asn1/t124/packet-t124-template.h
@@ -16,11 +16,11 @@
#include "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 uint32_t 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);
+extern void register_t124_sd_dissector(packet_info *pinfo, uint32_t channelId, dissector_t dissector, int proto);
#include "packet-t124-exp.h"
diff --git a/epan/dissectors/asn1/t124/t124.cnf b/epan/dissectors/asn1/t124/t124.cnf
index f3281d6b..0ffa391b 100644
--- a/epan/dissectors/asn1/t124/t124.cnf
+++ b/epan/dissectors/asn1/t124/t124.cnf
@@ -97,27 +97,9 @@ TransportAddress
#.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;
@@ -148,7 +130,7 @@ RegistryAllocateHandleResponse/result AllocateHandleResponseResult
#.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;
+ uint8_t *ns = NULL;
%(DEFAULT_BODY)s
@@ -156,7 +138,7 @@ RegistryAllocateHandleResponse/result AllocateHandleResponseResult
ns = tvb_get_string_enc(actx->pinfo->pool, t124NSIdentifier, 0, tvb_reported_length(t124NSIdentifier), ENC_ASCII|ENC_NA);
if(ns != NULL) {
- dissector_try_string_new(t124_ns_dissector_table, ns, next_tvb, actx->pinfo, top_tree, FALSE, NULL);
+ dissector_try_string_new(t124_ns_dissector_table, ns, next_tvb, actx->pinfo, top_tree, false, NULL);
}
}
@@ -169,7 +151,7 @@ RegistryAllocateHandleResponse/result AllocateHandleResponseResult
if(next_tvb) {
- dissector_try_uint_new(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree, FALSE, NULL);
+ dissector_try_uint_new(t124_sd_dissector_table, channelId, next_tvb, actx->pinfo, top_tree, false, NULL);
}
@@ -190,7 +172,7 @@ RegistryAllocateHandleResponse/result AllocateHandleResponseResult
#.FN_BODY DomainMCSPDU VAL_PTR = &domainmcs_value
- gint domainmcs_value;
+ int domainmcs_value;
%(DEFAULT_BODY)s
switch(domainmcs_value) {
@@ -201,7 +183,8 @@ RegistryAllocateHandleResponse/result AllocateHandleResponseResult
/* Do nothing */
break;
default:
- col_prepend_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "%%s ", val_to_str(domainmcs_value, t124_DomainMCSPDU_vals, "Unknown"));
+ col_prepend_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "%%s ",
+ val_to_str_const(domainmcs_value, t124_DomainMCSPDU_vals, "Unknown"));
break;
}
diff --git a/epan/dissectors/asn1/t125/packet-t125-template.c b/epan/dissectors/asn1/t125/packet-t125-template.c
index 8a7e99cb..3f0aab7a 100644
--- a/epan/dissectors/asn1/t125/packet-t125-template.c
+++ b/epan/dissectors/asn1/t125/packet-t125-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/exceptions.h>
+#include <wsutil/array.h>
#include <epan/asn1.h>
#include "packet-ber.h"
@@ -39,12 +40,12 @@ 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;
+static int proto_t125;
+static proto_tree *top_tree;
#include "packet-t125-hf.c"
/* Initialize the subtree pointers */
-static int ett_t125 = -1;
+static int ett_t125;
#include "packet-t125-ett.c"
@@ -57,9 +58,9 @@ dissect_t125(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *d
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
+ int32_t tag;
top_tree = parent_tree;
@@ -81,37 +82,37 @@ dissect_t125(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *d
return tvb_captured_length(tvb);
}
-static gboolean
+static bool
dissect_t125_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
{
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
+ int32_t tag;
volatile bool 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
+ * 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;
+ failed = false;
TRY {
/* could be BER */
get_ber_identifier(tvb, 0, &ber_class, &pc, &tag);
} CATCH_BOUNDS_ERRORS {
- failed = TRUE;
+ failed = true;
} ENDTRY;
if (failed) {
- return FALSE;
+ return false;
}
if (((ber_class==BER_CLASS_APP) && ((tag>=101) && (tag<=104)))) {
dissect_t125(tvb, pinfo, parent_tree, NULL);
- return TRUE;
+ return true;
}
/*
@@ -119,7 +120,7 @@ dissect_t125_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
* This might not be enough, but since t125 only catch COTP packets,
* it should not be a problem.
*/
- guint8 first_byte = tvb_get_guint8(tvb, 0) >> 2;
+ uint8_t first_byte = tvb_get_uint8(tvb, 0) >> 2;
switch (first_byte) {
case HF_T125_ERECT_DOMAIN_REQUEST:
case HF_T125_ATTACH_USER_REQUEST:
@@ -130,10 +131,10 @@ dissect_t125_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
case HF_T125_SEND_DATA_REQUEST:
case HF_T125_SEND_DATA_INDICATION:
dissect_t125(tvb, pinfo, parent_tree, NULL);
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
@@ -146,7 +147,7 @@ void proto_register_t125(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_t125,
#include "packet-t125-ettarr.c"
};
@@ -157,7 +158,7 @@ void proto_register_t125(void) {
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", proto_t125);
+ t125_heur_subdissector_list= register_heur_dissector_list_with_description("t125", "T.125 User data", proto_t125);
register_dissector("t125", dissect_t125, proto_t125);
}
diff --git a/epan/dissectors/asn1/t125/t125.cnf b/epan/dissectors/asn1/t125/t125.cnf
index 012896f6..d7d2b916 100644
--- a/epan/dissectors/asn1/t125/t125.cnf
+++ b/epan/dissectors/asn1/t125/t125.cnf
@@ -77,7 +77,7 @@ ConnectMCSPDU
# dissected in t124
# FN_BODY DomainMCSPDU VAL_PTR = &domainmcs_value
-# gint domainmcs_value;
+# int domainmcs_value;
#
#%(DEFAULT_BODY)s
# switch(domainmcs_value) {
diff --git a/epan/dissectors/asn1/t38/packet-t38-template.c b/epan/dissectors/asn1/t38/packet-t38-template.c
index 852885c1..8244444d 100644
--- a/epan/dissectors/asn1/t38/packet-t38-template.c
+++ b/epan/dissectors/asn1/t38/packet-t38-template.c
@@ -14,12 +14,12 @@
/* 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/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)
+ * 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:
@@ -42,6 +42,7 @@
#include <epan/ipproto.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
+#include <wsutil/array.h>
#include "packet-t38.h"
#include "packet-per.h"
@@ -50,20 +51,20 @@
void proto_register_t38(void);
-static int t38_tap = -1;
+static int t38_tap;
/* dissect using the Pre Corrigendum T.38 ASN.1 specification (1998) */
-static gboolean use_pre_corrigendum_asn1_specification = TRUE;
+static bool 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;
+static bool dissect_possible_rtpv2_packets_as_rtp;
/* Reassembly of T.38 PDUs over TPKT over TCP */
-static gboolean t38_tpkt_reassembly = TRUE;
+static bool 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
@@ -74,7 +75,7 @@ static gboolean t38_tpkt_reassembly = TRUE;
#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 int t38_tpkt_usage = T38_TPKT_MAYBE;
static const enum_val_t t38_tpkt_options[] = {
{"never", "Never", T38_TPKT_NEVER},
@@ -93,44 +94,44 @@ 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 int32_t Type_of_msg_value;
+static uint32_t Data_Field_field_type_value;
+static uint32_t Data_value;
+static uint32_t T30ind_value;
+static uint32_t Data_Field_item_num;
-static int proto_t38 = -1;
-static int proto_acdr = -1;
+static int proto_t38;
+static int proto_acdr;
#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;
+static int hf_t38_setup;
+static int hf_t38_setup_frame;
+static int hf_t38_setup_method;
/* 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;
+static int hf_t38_fragments;
+static int hf_t38_fragment;
+static int hf_t38_fragment_overlap;
+static int hf_t38_fragment_overlap_conflicts;
+static int hf_t38_fragment_multiple_tails;
+static int hf_t38_fragment_too_long_fragment;
+static int hf_t38_fragment_error;
+static int hf_t38_fragment_count;
+static int hf_t38_reassembled_in;
+static int hf_t38_reassembled_length;
+
+static int ett_t38;
#include "packet-t38-ett.c"
-static gint ett_t38_setup = -1;
+static int ett_t38_setup;
-static gint ett_data_fragment = -1;
-static gint ett_data_fragments = -1;
+static int ett_data_fragment;
+static int ett_data_fragments;
-static expert_field ei_t38_malformed = EI_INIT;
+static expert_field ei_t38_malformed;
-static gboolean primary_part = TRUE;
-static guint32 seq_number = 0;
+static bool primary_part = true;
+static uint32_t seq_number;
/* Tables for reassembly of Data fragments. */
static reassembly_table data_reassembly_table;
@@ -161,14 +162,14 @@ static const fragment_items data_frag_items = {
typedef struct _fragment_key {
address src;
address dst;
- guint32 id;
+ uint32_t 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;
+static conversation_t *p_conv;
+static t38_conv *p_t38_conv;
+static t38_conv *p_t38_packet_conv;
+static t38_conv_info *p_t38_conv_info;
+static t38_conv_info *p_t38_packet_conv_info;
/* RTP Version is the first 2 bits of the first octet in the UDP payload*/
#define RTP_VERSION(octet) ((octet) >> 6)
@@ -177,21 +178,21 @@ 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;
+static bool 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 t38_packet_info *t38_info;
/* 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)
+ const char *setup_method, uint32_t setup_frame_number)
{
address null_addr;
conversation_t* p_conversation;
@@ -221,7 +222,7 @@ void t38_add_address(packet_info *pinfo,
*/
if ( !p_conversation || p_conversation->setup_frame != setup_frame_number) {
p_conversation = conversation_new( setup_frame_number, addr, &null_addr, CONVERSATION_UDP,
- (guint32)port, (guint32)other_port,
+ (uint32_t)port, (uint32_t)other_port,
NO_ADDR2 | (!other_port ? NO_PORT2 : 0));
}
@@ -275,13 +276,13 @@ void t38_add_address(packet_info *pinfo,
static fragment_head *
-force_reassemble_seq(reassembly_table *table, packet_info *pinfo, guint32 id)
+force_reassemble_seq(reassembly_table *table, packet_info *pinfo, uint32_t id)
{
fragment_head *fd_head;
fragment_item *fd_i;
fragment_item *last_fd;
- guint32 dfpos, size, packet_lost, burst_lost, seq_num;
- guint8 *data;
+ uint32_t dfpos, size, packet_lost, burst_lost, seq_num;
+ uint8_t *data;
fd_head = fragment_get(table, pinfo, id, NULL);
@@ -325,7 +326,7 @@ force_reassemble_seq(reassembly_table *table, packet_info *pinfo, guint32 id)
last_fd=fd_i;
}
- data = (guint8 *) g_malloc(size);
+ data = (uint8_t *) g_malloc(size);
fd_head->tvb_data = tvb_new_real_data(data, size, size);
tvb_set_free_cb(fd_head->tvb_data, g_free);
fd_head->len = size; /* record size for caller */
@@ -416,7 +417,7 @@ init_t38_info_conv(packet_info *pinfo)
conversation_pt_to_conversation_type(pinfo->ptype),
pinfo->destport, pinfo->srcport, NO_ADDR_B | NO_PORT_B);
- /* create a conv if it doen't exist */
+ /* create a conv if it doesn't exist */
if (!p_conv) {
p_conv = conversation_new(pinfo->num, &pinfo->net_src, &pinfo->net_dst,
conversation_pt_to_conversation_type(pinfo->ptype), pinfo->srcport, pinfo->destport, NO_ADDR2 | NO_PORT2);
@@ -488,16 +489,16 @@ init_t38_info_conv(packet_info *pinfo)
static int
dissect_t38_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- guint8 octet1;
+ uint8_t octet1;
proto_item *it;
proto_tree *tr;
- guint32 offset=0;
+ uint32_t offset=0;
/*
* XXX - heuristic to check for misidentified packets.
*/
if (dissect_possible_rtpv2_packets_as_rtp){
- octet1 = tvb_get_guint8(tvb, offset);
+ octet1 = tvb_get_uint8(tvb, offset);
if (RTP_VERSION(octet1) == 2){
return call_dissector(rtp_handle,tvb,pinfo,tree);
}
@@ -506,7 +507,7 @@ dissect_t38_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.38");
col_clear(pinfo->cinfo, COL_INFO);
- primary_part = TRUE;
+ 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;
@@ -539,14 +540,14 @@ dissect_t38_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
{
proto_item *it;
proto_tree *tr;
- guint32 offset=0;
+ uint32_t offset=0;
tvbuff_t *next_tvb;
- guint16 ifp_packet_number=1;
+ uint16_t ifp_packet_number=1;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "T.38");
col_clear(pinfo->cinfo, COL_INFO);
- primary_part = TRUE;
+ 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;
@@ -588,7 +589,7 @@ dissect_t38_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
static int
dissect_t38_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- primary_part = TRUE;
+ primary_part = true;
if(t38_tpkt_usage == T38_TPKT_ALWAYS){
dissect_tpkt_encap(tvb,pinfo,tree,t38_tpkt_reassembly,t38_tcp_pdu_handle);
@@ -634,13 +635,13 @@ show_setup_info(tvbuff_t *tvb, proto_tree *tree, t38_conv *p_t38_conversation)
}
/* This function tries to understand if the payload is sitting on top of AC DR */
-static gboolean
-dissect_t38_acdr_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+static bool
+dissect_t38_acdr_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
- guint acdr_prot = GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_acdr, 0));
+ unsigned acdr_prot = GPOINTER_TO_UINT(p_get_proto_data(pinfo->pool, pinfo, proto_acdr, 0));
if (acdr_prot == ACDR_T38)
- return dissect_t38_udp(tvb, pinfo, tree, NULL);
- return FALSE;
+ return dissect_t38_udp(tvb, pinfo, tree, data);
+ return false;
}
@@ -694,7 +695,7 @@ proto_register_t38(void)
FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL } },
};
- static gint *ett[] =
+ static int *ett[] =
{
&ett_t38,
#include "packet-t38-ettarr.c"
@@ -747,7 +748,7 @@ proto_register_t38(void)
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);
+ (int *)&t38_tpkt_usage,t38_tpkt_options,false);
prefs_register_bool_preference(t38_module, "show_setup_info",
"Show stream setup information",
diff --git a/epan/dissectors/asn1/t38/packet-t38-template.h b/epan/dissectors/asn1/t38/packet-t38-template.h
index 82ff1483..fa316867 100644
--- a/epan/dissectors/asn1/t38/packet-t38-template.h
+++ b/epan/dissectors/asn1/t38/packet-t38-template.h
@@ -17,17 +17,17 @@
#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 */
+ uint16_t seq_num; /* UDPTLPacket sequence number */
+ int32_t type_msg; /* 0=t30-indicator 1=data */
+ uint32_t t30ind_value;
+ uint32_t data_value; /* standard and speed */
+ uint32_t setup_frame_number;
+ uint32_t Data_Field_field_type_value;
+ uint8_t t30_Facsimile_Control;
+ char desc[MAX_T38_DESC]; /* Description used to be displayed in the frame label Graph Analysis */
+ char desc_comment[MAX_T38_DESC]; /* Description used to be displayed in the Comment Graph Analysis */
double time_first_t4_data;
- guint32 frame_num_first_t4_data;
+ uint32_t frame_num_first_t4_data;
} t38_packet_info;
@@ -39,16 +39,16 @@ typedef struct _t38_conv_info t38_conv_info;
struct _t38_conv_info {
- guint32 reass_ID;
+ uint32_t reass_ID;
int reass_start_seqnum;
- guint32 reass_start_data_field;
- guint32 reass_data_type;
- gint32 last_seqnum; /* used to avoid duplicated seq num shown in the Graph Analysis */
- guint32 packet_lost;
- guint32 burst_lost;
+ uint32_t reass_start_data_field;
+ uint32_t reass_data_type;
+ int32_t last_seqnum; /* used to avoid duplicated seq num shown in the Graph Analysis */
+ uint32_t packet_lost;
+ uint32_t burst_lost;
double time_first_t4_data;
- guint32 additional_hdlc_data_field_counter;
- gint32 seqnum_prev_data_field;
+ uint32_t additional_hdlc_data_field_counter;
+ int32_t seqnum_prev_data_field;
t38_conv_info *next;
};
@@ -56,8 +56,8 @@ struct _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;
+ char setup_method[MAX_T38_SETUP_METHOD_SIZE + 1];
+ uint32_t setup_frame_number;
t38_conv_info src_t38_info;
t38_conv_info dst_t38_info;
} t38_conv;
@@ -67,7 +67,7 @@ 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);
+ const char *setup_method, uint32_t setup_frame_number);
#include "packet-t38-exp.h"
diff --git a/epan/dissectors/asn1/t38/t38.cnf b/epan/dissectors/asn1/t38/t38.cnf
index 7b8fad22..d788f76f 100644
--- a/epan/dissectors/asn1/t38/t38.cnf
+++ b/epan/dissectors/asn1/t38/t38.cnf
@@ -28,7 +28,7 @@ UDPTLPacket
#.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>"));
+ val_to_str_const(T30ind_value,t38_T30_indicator_vals,"<unknown>"));
}
/* info for tap */
@@ -40,7 +40,7 @@ UDPTLPacket
#.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>"));
+ val_to_str_const(Data_value,t38_T30_data_vals,"<unknown>"));
}
@@ -54,30 +54,30 @@ UDPTLPacket
#.END
#.FN_PARS Data-Field/_item/field-type
-EXT=(use_pre_corrigendum_asn1_specification)?FALSE:TRUE
+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>"));
+ val_to_str_const(Data_Field_field_type_value,t38_T_field_type_vals,"<unknown>"));
}
if (primary_part) {
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;
+ bool save_fragmented = actx->pinfo->fragmented;
- actx->pinfo->fragmented = TRUE;
+ 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) {
- guint32 frag_seq_num;
- if (seq_number == (guint32)p_t38_packet_conv_info->reass_start_seqnum) {
- frag_seq_num = (guint32)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num - p_t38_packet_conv_info->reass_start_data_field;
+ uint32_t frag_seq_num;
+ if (seq_number == (uint32_t)p_t38_packet_conv_info->reass_start_seqnum) {
+ frag_seq_num = (uint32_t)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num - p_t38_packet_conv_info->reass_start_data_field;
} else {
- frag_seq_num = seq_number - (guint32)p_t38_packet_conv_info->reass_start_seqnum + (guint32)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num;
+ frag_seq_num = seq_number - (uint32_t)p_t38_packet_conv_info->reass_start_seqnum + (uint32_t)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num;
}
frag_msg = fragment_add_seq(&data_reassembly_table, /* reassembly table */
tvb, offset, actx->pinfo,
@@ -86,7 +86,7 @@ VAL_PTR=&Data_Field_field_type_value
frag_seq_num, /* fragment sequence number */
/*0,*/
0, /* fragment length */
- FALSE, /* More fragments */
+ 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
@@ -135,7 +135,7 @@ VAL_PTR=&Data_Field_field_type_value
* (i.e., a retransmission), we don't expect to have any
* fragment data (we reassembled it in the previous packet).
*/
- if (p_t38_packet_conv && ((gint32) seq_number != p_t38_packet_conv_info->last_seqnum)) {
+ if (p_t38_packet_conv && ((int32_t) seq_number != p_t38_packet_conv_info->last_seqnum)) {
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?]");
@@ -164,7 +164,7 @@ VAL_PTR=&Data_Field_field_type_value
#.FN_BODY Data-Field/_item/field-data VAL_PTR=&value_tvb
tvbuff_t *value_tvb = NULL;
- guint32 value_len;
+ uint32_t value_len;
%(DEFAULT_BODY)s
value_len = tvb_reported_length(value_tvb);
@@ -186,9 +186,9 @@ VAL_PTR=&Data_Field_field_type_value
/* 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;
+ bool save_fragmented = actx->pinfo->fragmented;
- actx->pinfo->fragmented = TRUE;
+ 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_start_seqnum == -1)) {
@@ -208,16 +208,16 @@ VAL_PTR=&Data_Field_field_type_value
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){
+ if (seq_number == (uint32_t)p_t38_packet_conv_info->seqnum_prev_data_field){
if(p_t38_conv){
p_t38_conv_info->additional_hdlc_data_field_counter++;
}
}
- guint32 frag_seq_num;
- if (seq_number == (guint32)p_t38_packet_conv_info->reass_start_seqnum) {
- frag_seq_num = (guint32)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num - (guint32)p_t38_packet_conv_info->reass_start_data_field;
+ uint32_t frag_seq_num;
+ if (seq_number == (uint32_t)p_t38_packet_conv_info->reass_start_seqnum) {
+ frag_seq_num = (uint32_t)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num - (uint32_t)p_t38_packet_conv_info->reass_start_data_field;
} else {
- frag_seq_num = seq_number - (guint32)p_t38_packet_conv_info->reass_start_seqnum + (guint32)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num;
+ frag_seq_num = seq_number - (uint32_t)p_t38_packet_conv_info->reass_start_seqnum + (uint32_t)p_t38_packet_conv_info->additional_hdlc_data_field_counter + Data_Field_item_num;
}
frag_msg = fragment_add_seq(&data_reassembly_table,
value_tvb, 0,
@@ -226,9 +226,9 @@ VAL_PTR=&Data_Field_field_type_value
NULL,
frag_seq_num, /* fragment sequence number */
value_len, /* fragment length */
- TRUE, /* More fragments */
+ true, /* More fragments */
0);
- p_t38_packet_conv_info->seqnum_prev_data_field = (gint32)seq_number;
+ p_t38_packet_conv_info->seqnum_prev_data_field = (int32_t)seq_number;
process_reassembled_data(tvb, offset, actx->pinfo,
"Reassembled T38", frag_msg, &data_frag_items, NULL, tree);
@@ -236,7 +236,7 @@ VAL_PTR=&Data_Field_field_type_value
if (Data_Field_field_type_value == 0) {
col_append_fstr(actx->pinfo->cinfo, COL_INFO," (HDLC fragment %u)", frag_seq_num);
} else {
- col_append_fstr(actx->pinfo->cinfo, COL_INFO," (t4-data fragment %u)", seq_number - (guint32)p_t38_packet_conv_info->reass_start_seqnum);
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO," (t4-data fragment %u)", seq_number - (uint32_t)p_t38_packet_conv_info->reass_start_seqnum);
}
}
@@ -262,19 +262,19 @@ VAL_PTR=&Data_Field_field_type_value
#.END
#.FN_HDR UDPTLPacket/primary-ifp-packet
- primary_part = TRUE;
+ 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) &&
+ if (p_t38_packet_conv && (!actx->pinfo->flags.in_error_pkt) && ((int32_t) 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;
+ if (p_t38_conv) p_t38_conv_info->last_seqnum = (int32_t) seq_number;
#.END
#.FN_HDR UDPTLPacket/error-recovery
- primary_part = FALSE;
+ primary_part = false;
#.FN_FTR UDPTLPacket/error-recovery
- primary_part = TRUE;
+ primary_part = true;
#.END
diff --git a/epan/dissectors/asn1/tcap/packet-tcap-template.c b/epan/dissectors/asn1/tcap/packet-tcap-template.c
index 97485493..d21938ed 100644
--- a/epan/dissectors/asn1/tcap/packet-tcap-template.c
+++ b/epan/dissectors/asn1/tcap/packet-tcap-template.c
@@ -21,6 +21,7 @@
#include <epan/address_types.h>
#include <epan/strutil.h>
#include <epan/show_exception.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-tcap.h"
@@ -32,36 +33,36 @@
#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;
+static int proto_tcap;
+static int hf_tcap_tag;
+static int hf_tcap_length;
+static int hf_tcap_data;
+static int hf_tcap_tid;
+static int hf_tcap_constructor_eoc;
+
+int hf_tcapsrt_SessionId;
+int hf_tcapsrt_Duplicate;
+int hf_tcapsrt_BeginSession;
+int hf_tcapsrt_EndSession;
+int hf_tcapsrt_SessionTime;
#include "packet-tcap-hf.c"
/* Initialize the subtree pointers */
-static gint ett_tcap = -1;
-static gint ett_param = -1;
+static int ett_tcap;
+static int ett_param;
-static gint ett_otid = -1;
-static gint ett_dtid = -1;
-gint ett_tcap_stat = -1;
+static int ett_otid;
+static int ett_dtid;
+int ett_tcap_stat;
static struct tcapsrt_info_t * gp_tcapsrt_info;
-static gboolean tcap_subdissector_used=FALSE;
-static dissector_handle_t requested_subdissector_handle = NULL;
+static bool tcap_subdissector_used=false;
+static dissector_handle_t requested_subdissector_handle;
static int ss7pc_address_type = -1;
-static struct tcaphash_context_t * gp_tcap_context=NULL;
+static struct tcaphash_context_t * gp_tcap_context;
#include "packet-tcap-ett.c"
@@ -78,27 +79,27 @@ static range_t *ssn_range;
/* 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;
+static unsigned gtcap_RepetitionTimeout = 10;
+static unsigned gtcap_LostTimeout = 30;
+static bool gtcap_PersistentSRT=false;
+bool gtcap_DisplaySRT=false;
+bool gtcap_StatSRT=false;
/* Global hash tables*/
-static wmem_map_t *tcaphash_context = NULL;
-static wmem_map_t *tcaphash_begin = NULL;
-static wmem_map_t *tcaphash_cont = NULL;
-static wmem_map_t *tcaphash_end = NULL;
-static wmem_map_t *tcaphash_ansi = NULL;
+static wmem_map_t *tcaphash_context;
+static wmem_map_t *tcaphash_begin;
+static wmem_map_t *tcaphash_cont;
+static wmem_map_t *tcaphash_end;
+static wmem_map_t *tcaphash_ansi;
-static guint32 tcapsrt_global_SessionId=1;
+static uint32_t tcapsrt_global_SessionId=1;
-static dissector_handle_t tcap_handle = NULL;
+static dissector_handle_t tcap_handle;
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 proto_tree * tcap_top_tree;
+static proto_tree * tcap_stat_tree;
static dissector_handle_t data_handle;
static dissector_handle_t ansi_tcap_handle;
@@ -106,35 +107,35 @@ static dissector_handle_t ansi_tcap_handle;
static int dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset);
static bool dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
-static dissector_table_t ansi_sub_dissectors = NULL;
-static dissector_table_t itu_sub_dissectors = NULL;
+static dissector_table_t ansi_sub_dissectors;
+static dissector_table_t itu_sub_dissectors;
-extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
+extern void add_ansi_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector) {
dissector_add_uint("ansi_tcap.ssn",ssn,dissector);
dissector_add_uint("sccp.ssn",ssn,tcap_handle);
}
-extern void add_itu_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
+extern void add_itu_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector) {
dissector_add_uint("itu_tcap.ssn",ssn,dissector);
dissector_add_uint("sccp.ssn",ssn,tcap_handle);
}
-extern void delete_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
+extern void delete_ansi_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector) {
dissector_delete_uint("ansi_tcap.ssn",ssn,dissector);
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_) {
+extern void delete_itu_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector _U_) {
dissector_delete_uint("itu_tcap.ssn",ssn,dissector);
if (!get_ansi_tcap_subdissector(ssn))
dissector_delete_uint("sccp.ssn", ssn,tcap_handle);
}
-dissector_handle_t get_ansi_tcap_subdissector(guint32 ssn) {
+dissector_handle_t get_ansi_tcap_subdissector(uint32_t ssn) {
return dissector_get_uint_handle(ansi_sub_dissectors, ssn);
}
-dissector_handle_t get_itu_tcap_subdissector(guint32 ssn) {
+dissector_handle_t get_itu_tcap_subdissector(uint32_t ssn) {
return dissector_get_uint_handle(itu_sub_dissectors, ssn);
}
@@ -149,10 +150,10 @@ dissector_handle_t get_itu_tcap_subdissector(guint32 ssn) {
#ifdef DEBUG_TCAPSRT
#include <stdio.h>
#include <stdarg.h>
-static guint debug_level = 99;
+static unsigned debug_level = 99;
static void
-dbg(guint level, const char* fmt, ...)
+dbg(unsigned level, const char* fmt, ...)
{
va_list ap;
@@ -163,8 +164,8 @@ dbg(guint level, const char* fmt, ...)
}
#endif
-static gint
-tcaphash_context_equal(gconstpointer k1, gconstpointer k2)
+static int
+tcaphash_context_equal(const void *k1, const void *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;
@@ -173,40 +174,40 @@ tcaphash_context_equal(gconstpointer k1, gconstpointer k2)
}
/* calculate a hash key */
-static guint
-tcaphash_context_calchash(gconstpointer k)
+static unsigned
+tcaphash_context_calchash(const void *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)
+static int
+tcaphash_begin_equal(const void *k1, const void *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 true;
}
- return FALSE;
+ return false;
}
/* calculate a hash key */
-static guint
-tcaphash_begin_calchash(gconstpointer k)
+static unsigned
+tcaphash_begin_calchash(const void *k)
{
const struct tcaphash_begin_info_key_t *key = (const struct tcaphash_begin_info_key_t *) k;
- guint hashkey;
+ unsigned 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)
+static int
+tcaphash_cont_equal(const void *k1, const void *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;
@@ -217,31 +218,31 @@ tcaphash_cont_equal(gconstpointer k1, gconstpointer k2)
(key1->dpc_hash == key2->dpc_hash) &&
(key1->src_tid == key2->src_tid) &&
(key1->dst_tid == key2->dst_tid) ) {
- return TRUE;
+ 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 true;
}
}
- return FALSE;
+ return false;
}
/* calculate a hash key */
-static guint
-tcaphash_cont_calchash(gconstpointer k)
+static unsigned
+tcaphash_cont_calchash(const void *k)
{
const struct tcaphash_cont_info_key_t *key = (const struct tcaphash_cont_info_key_t *) k;
- guint hashkey;
+ unsigned hashkey;
hashkey = key->src_tid + key->dst_tid;
return hashkey;
}
-static gint
-tcaphash_end_equal(gconstpointer k1, gconstpointer k2)
+static int
+tcaphash_end_equal(const void *k1, const void *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;
@@ -250,23 +251,23 @@ tcaphash_end_equal(gconstpointer k1, gconstpointer k2)
if ( (key1->opc_hash == key2->opc_hash) &&
(key1->dpc_hash == key2->dpc_hash) &&
(key1->tid == key2->tid) )
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
/* calculate a hash key */
-static guint
-tcaphash_end_calchash(gconstpointer k)
+static unsigned
+tcaphash_end_calchash(const void *k)
{
const struct tcaphash_end_info_key_t *key = (const struct tcaphash_end_info_key_t *) k;
- guint hashkey;
+ unsigned hashkey;
hashkey = key->tid;
return hashkey;
}
-static gint
-tcaphash_ansi_equal(gconstpointer k1, gconstpointer k2)
+static int
+tcaphash_ansi_equal(const void *k1, const void *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;
@@ -281,17 +282,17 @@ tcaphash_ansi_equal(gconstpointer k1, gconstpointer k2)
(key1->dpc_hash == key2->opc_hash) &&
(key1->tid == key2->tid) )
)
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
/* calculate a hash key */
-static guint
-tcaphash_ansi_calchash(gconstpointer k)
+static unsigned
+tcaphash_ansi_calchash(const void *k)
{
const struct tcaphash_ansi_info_key_t *key = (const struct tcaphash_ansi_info_key_t *) k;
- guint hashkey;
+ unsigned hashkey;
/* hashkey = key->opc_hash<<16 + key->dpc_hash<<8 + key->src_tid; */
hashkey = key->tid;
return hashkey;
@@ -306,7 +307,7 @@ update_tcaphash_begincall(struct tcaphash_begincall_t *p_tcaphash_begincall,
{
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->responded = false;
p_tcaphash_begincall->context->begin_time = pinfo->abs_ts;
}
@@ -331,7 +332,7 @@ append_tcaphash_begincall(struct tcaphash_begincall_t *prev_begincall,
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;
+ p_new_tcaphash_begincall->father=false;
#ifdef DEBUG_TCAPSRT
dbg(10,"+B%d ", p_new_tcaphash_begincall->context->session_id);
@@ -356,7 +357,7 @@ update_tcaphash_ansicall(struct tcaphash_ansicall_t *p_tcaphash_ansicall,
{
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->responded = false;
p_tcaphash_ansicall->context->begin_time = pinfo->abs_ts;
}
@@ -381,7 +382,7 @@ append_tcaphash_ansicall(struct tcaphash_ansicall_t *prev_ansicall,
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;
+ p_new_tcaphash_ansicall->father=false;
#ifdef DEBUG_TCAPSRT
dbg(10,"+A%d ", p_new_tcaphash_ansicall->context->session_id);
@@ -413,7 +414,7 @@ append_tcaphash_contcall(struct tcaphash_contcall_t *prev_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;
+ p_new_tcaphash_contcall->father=false;
#ifdef DEBUG_TCAPSRT
dbg(10,"+C%d ", p_new_tcaphash_contcall->context->session_id);
@@ -439,7 +440,7 @@ append_tcaphash_endcall(struct tcaphash_endcall_t *prev_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;
+ p_new_tcaphash_endcall->father=false;
#ifdef DEBUG_TCAPSRT
dbg(10,"+E%d ", p_new_tcaphash_endcall->context->session_id);
@@ -455,7 +456,7 @@ append_tcaphash_endcall(struct tcaphash_endcall_t *prev_endcall,
*/
static struct tcaphash_begincall_t *
find_tcaphash_begin(struct tcaphash_begin_info_key_t *p_tcaphash_begin_key,
- packet_info *pinfo, gboolean isBegin)
+ packet_info *pinfo, bool isBegin)
{
struct tcaphash_begincall_t *p_tcaphash_begincall = NULL;
p_tcaphash_begincall = (struct tcaphash_begincall_t *)wmem_map_lookup(tcaphash_begin, p_tcaphash_begin_key);
@@ -541,7 +542,7 @@ find_tcaphash_cont(struct tcaphash_cont_info_key_t *p_tcaphash_cont_key,
static struct tcaphash_endcall_t *
find_tcaphash_end(struct tcaphash_end_info_key_t *p_tcaphash_end_key,
- packet_info *pinfo, gboolean isEnd)
+ packet_info *pinfo, bool isEnd)
{
struct tcaphash_endcall_t *p_tcaphash_endcall = NULL;
p_tcaphash_endcall = (struct tcaphash_endcall_t *)wmem_map_lookup(tcaphash_end, p_tcaphash_end_key);
@@ -637,7 +638,7 @@ new_tcaphash_begin(struct tcaphash_begin_info_key_t *p_tcaphash_begin_key,
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->father=true;
p_new_tcaphash_begincall->next_begincall=NULL;
p_new_tcaphash_begincall->previous_begincall=NULL;
@@ -676,7 +677,7 @@ new_tcaphash_cont(struct tcaphash_cont_info_key_t *p_tcaphash_cont_key,
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->father=true;
p_new_tcaphash_contcall->next_contcall=NULL;
p_new_tcaphash_contcall->previous_contcall=NULL;
@@ -713,7 +714,7 @@ new_tcaphash_end(struct tcaphash_end_info_key_t *p_tcaphash_end_key,
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->father=true;
p_new_tcaphash_endcall->next_endcall=NULL;
p_new_tcaphash_endcall->previous_endcall=NULL;
@@ -748,7 +749,7 @@ new_tcaphash_ansi(struct tcaphash_ansi_info_key_t *p_tcaphash_ansi_key,
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->father=true;
p_new_tcaphash_ansicall->next_ansicall=NULL;
p_new_tcaphash_ansicall->previous_ansicall=NULL;
@@ -888,11 +889,11 @@ tcaphash_begin_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
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)
+ && (unsigned) pinfo->abs_ts.secs > (unsigned)(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)
+ && (unsigned)pinfo->abs_ts.secs > (unsigned)(p_tcaphash_begincall->context->begin_time.secs + gtcap_LostTimeout)
)
)
{
@@ -1026,7 +1027,7 @@ tcaphash_cont_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_item *pi;
proto_item *stat_item=NULL;
proto_tree *stat_tree=NULL;
- gboolean use_dst = FALSE;
+ bool use_dst = false;
#ifdef DEBUG_TCAPSRT
dbg(51,"src %s srcTid %lx dst %s dstTid %lx ", address_to_str(pinfo->pool, &pinfo->src), p_tcapsrt_info->src_tid, address_to_str(pinfo->pool, &pinfo->dst), p_tcapsrt_info->dst_tid);
@@ -1080,7 +1081,7 @@ tcaphash_cont_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbg(51,"addr %s ", address_to_str(pinfo->pool, &pinfo->dst));
dbg(51,"Tid %lx \n",tcaphash_begin_key.tid);
#endif
- p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo, FALSE);
+ p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo, false);
if(!p_tcaphash_begincall){
try_src:
/* can this actually happen? */
@@ -1088,7 +1089,7 @@ tcaphash_cont_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbg(12,"BNotFound trying stid,src");
#endif
/* Do we have a continue from the same source? (stid,src) */
- use_dst = TRUE;
+ use_dst = true;
tcaphash_begin_key.tid = p_tcapsrt_info->src_tid;
if (pinfo->src.type == ss7pc_address_type && pinfo->dst.type == ss7pc_address_type)
{
@@ -1104,7 +1105,7 @@ tcaphash_cont_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbg(51,"addr %s ", address_to_str(pinfo->pool, &pinfo->src));
dbg(51,"Tid %lx \n",tcaphash_begin_key.tid);
#endif
- p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo,FALSE);
+ p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo,false);
}
if(p_tcaphash_begincall &&
!p_tcaphash_begincall->context->contcall ) {
@@ -1112,7 +1113,7 @@ tcaphash_cont_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbg(12,"BFound \n");
#endif
p_tcaphash_context=p_tcaphash_begincall->context;
- p_tcaphash_context->responded=TRUE;
+ p_tcaphash_context->responded=true;
#ifdef DEBUG_TCAPSRT
dbg(10,"New Ckey %lx ",tcaphash_cont_key.hashKey);
@@ -1217,7 +1218,7 @@ tcaphash_end_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbg(11,"addr %s ", address_to_str(pinfo->pool, &pinfo->dst));
dbg(51,"Tid %lx ",tcaphash_end_key.tid);
#endif
- p_tcaphash_endcall = find_tcaphash_end(&tcaphash_end_key, pinfo,TRUE);
+ p_tcaphash_endcall = find_tcaphash_end(&tcaphash_end_key, pinfo,true);
if(!p_tcaphash_endcall) {
#ifdef DEBUG_TCAPSRT
@@ -1239,7 +1240,7 @@ tcaphash_end_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
dbg(51,"addr %s ", address_to_str(pinfo->pool, &pinfo->dst));
dbg(51,"Tid %lx ",tcaphash_begin_key.tid);
#endif
- p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo,FALSE);
+ p_tcaphash_begincall = find_tcaphash_begin(&tcaphash_begin_key, pinfo,false);
if(!p_tcaphash_begincall) {
#ifdef DEBUG_TCAPSRT
dbg(12,"BnotFound ");
@@ -1314,7 +1315,7 @@ tcaphash_ansi_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
struct tcaphash_ansi_info_key_t tcaphash_ansi_key;
proto_item *pi;
nstime_t delta;
- gboolean isResponse=FALSE;
+ bool isResponse=false;
proto_tree * stat_tree=NULL;
proto_item * stat_item=NULL;
@@ -1351,7 +1352,7 @@ tcaphash_ansi_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
#ifdef DEBUG_TCAPSRT
dbg(22,"Request already seen ");
#endif
- isResponse=FALSE;
+ isResponse=false;
p_tcaphash_context=p_tcaphash_ansicall->context;
break;
}
@@ -1362,7 +1363,7 @@ tcaphash_ansi_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
#ifdef DEBUG_TCAPSRT
dbg(22,"Response already seen ");
#endif
- isResponse=TRUE;
+ isResponse=true;
p_tcaphash_context=p_tcaphash_ansicall->context;
break;
}
@@ -1377,10 +1378,10 @@ tcaphash_ansi_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
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_ansicall->context->responded = true;
+ p_tcaphash_ansicall->context->closed = true;
p_tcaphash_context=p_tcaphash_ansicall->context;
- isResponse=TRUE;
+ isResponse=true;
if (gtcap_DisplaySRT && tree) {
stat_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_tcap_stat, &stat_item, "Stat");
@@ -1421,11 +1422,11 @@ tcaphash_ansi_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
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)
+ && (unsigned) pinfo->abs_ts.secs > (unsigned)(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)
+ && (unsigned)pinfo->abs_ts.secs > (unsigned)(p_tcaphash_ansicall->context->begin_time.secs + gtcap_LostTimeout)
)
)
{
@@ -1675,10 +1676,10 @@ tcapsrt_close(struct tcaphash_context_t *p_tcaphash_context,
dbg(60,"Force close ");
#endif
if (p_tcaphash_context) {
- p_tcaphash_context->responded=TRUE;
+ 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;
+ p_tcaphash_context->closed=true;
/* If the endkey is present */
if (p_tcaphash_context->endcall
@@ -1822,9 +1823,9 @@ dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
struct tcaphash_context_t * p_tcap_context;
dissector_handle_t subdissector_handle;
asn1_ctx_t asn1_ctx;
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint tag;
+ int tag;
struct tcap_private_t *p_tcap_private;
/* Check if ANSI TCAP and call the ANSI TCAP dissector if that's the case
@@ -1859,7 +1860,7 @@ dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
}
/* ITU TCAP */
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
tcap_top_tree = parent_tree;
tcap_stat_tree = NULL;
@@ -1878,9 +1879,9 @@ dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
p_tcap_private = wmem_new0(pinfo->pool, struct tcap_private_t);
asn1_ctx.value_ptr = p_tcap_private;
gp_tcapsrt_info=tcapsrt_razinfo();
- tcap_subdissector_used=FALSE;
+ tcap_subdissector_used=false;
gp_tcap_context=NULL;
- dissect_tcap_TCMessage(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ dissect_tcap_TCMessage(false, tvb, 0, &asn1_ctx, tree, -1);
if (!tcap_subdissector_used ) {
p_tcap_context=tcapsrt_call_matching(tvb, pinfo, tcap_stat_tree, gp_tcapsrt_info);
@@ -1892,14 +1893,14 @@ dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
if ( p_tcap_context && cur_oid && !p_tcap_context->oid_present ) {
/* Save the application context and the sub dissector */
(void) g_strlcpy(p_tcap_context->oid, cur_oid, sizeof(p_tcap_context->oid));
- p_tcap_context->oid_present=TRUE;
+ 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;
+ p_tcap_context->subdissector_present=true;
}
}
if (p_tcap_context && p_tcap_context->callback) {
- /* Callback fonction for the upper layer */
+ /* Callback function for the upper layer */
(p_tcap_context->callback)(tvb, pinfo, tcap_stat_tree, p_tcap_context);
}
}
@@ -1993,7 +1994,7 @@ proto_register_tcap(void)
};
/* Setup protocol subtree array */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_tcap,
&ett_param,
&ett_otid,
@@ -2025,7 +2026,7 @@ proto_register_tcap(void)
#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);
+ &tcap_standard, tcap_options, false);
#else
prefs_register_obsolete_preference(tcap_module, "standard");
#endif
@@ -2077,14 +2078,14 @@ proto_register_tcap(void)
}
-static void range_delete_callback(guint32 ssn, gpointer ptr _U_)
+static void range_delete_callback(uint32_t ssn, void *ptr _U_)
{
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, gpointer ptr _U_)
+static void range_add_callback(uint32_t ssn, void *ptr _U_)
{
if (ssn && !get_ansi_tcap_subdissector(ssn) && !get_itu_tcap_subdissector(ssn) ) {
dissector_add_uint("sccp.ssn", ssn, tcap_handle);
@@ -2117,15 +2118,15 @@ static int
// NOLINTNEXTLINE(misc-no-recursion)
dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset)
{
- gint tag_offset, saved_offset, len_offset;
+ int tag_offset, saved_offset, len_offset;
tvbuff_t *next_tvb;
proto_tree *subtree;
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
- guint32 len;
- guint32 tag_length;
- guint32 len_length;
+ int32_t tag;
+ uint32_t len;
+ uint32_t tag_length;
+ uint32_t len_length;
bool ind_field;
while (tvb_reported_length_remaining(tvb, offset) > 0)
@@ -2154,9 +2155,9 @@ dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset
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? */
+ if (len - (ind_field ? 2 : 0)) /*should always be positive unless we get an empty constructor pointless? */
{
- next_tvb = tvb_new_subset_length(tvb, offset, len-(2*ind_field));
+ next_tvb = tvb_new_subset_length(tvb, offset, len - (ind_field ? 2 : 0));
increment_dissection_depth(actx->pinfo);
dissect_tcap_param(actx, subtree,next_tvb,0);
decrement_dissection_depth(actx->pinfo);
@@ -2182,7 +2183,7 @@ dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset
if (len) /* check for NULLS */
{
next_tvb = tvb_new_subset_length(tvb, offset, len);
- dissect_ber_octet_string(TRUE, actx, tree, next_tvb, 0,
+ dissect_ber_octet_string(true, actx, tree, next_tvb, 0,
hf_tcap_data, NULL);
}
@@ -2199,7 +2200,7 @@ static bool
dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset _U_, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_)
{
dissector_handle_t subdissector_handle=NULL;
- gboolean is_subdissector=FALSE;
+ bool is_subdissector=false;
struct tcaphash_context_t * p_tcap_context=NULL;
struct tcap_private_t *p_tcap_private = (struct tcap_private_t*)actx->value_ptr;
@@ -2212,7 +2213,7 @@ dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset _
*/
if (!tcap_subdissector_used) {
p_tcap_context=tcapsrt_call_matching(tvb, actx->pinfo, tcap_stat_tree, gp_tcapsrt_info);
- tcap_subdissector_used=TRUE;
+ tcap_subdissector_used=false;
gp_tcap_context=p_tcap_context;
p_tcap_private->context=p_tcap_context;
} else {
@@ -2232,24 +2233,24 @@ dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset _
(void) 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;
+ p_tcap_context->subdissector_present = true;
}
}
} else {
/* We do not have the OID in the TCAP context, so store it */
(void) g_strlcpy(p_tcap_context->oid, cur_oid, sizeof(p_tcap_context->oid));
- p_tcap_context->oid_present = TRUE;
+ 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;
+ 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;
+ p_tcap_context->subdissector_present = true;
}
}
} /* context OID */
@@ -2257,7 +2258,7 @@ dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset _
/* Copy the OID from the TCAP context to the current oid */
if (p_tcap_context->oid_present) {
p_tcap_private->oid = (void*)p_tcap_context->oid;
- p_tcap_private->acv = TRUE;
+ p_tcap_private->acv = true;
}
} /* no OID */
} /* no TCAP context */
@@ -2267,12 +2268,12 @@ dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset _
&& p_tcap_context->subdissector_present) {
/* Take the subdissector from the context */
subdissector_handle = p_tcap_context->subdissector_handle;
- is_subdissector = TRUE;
+ is_subdissector = true;
}
/* Have SccpUsersTable protocol taking precedence over sccp.ssn table */
if (!is_subdissector && requested_subdissector_handle) {
- is_subdissector = TRUE;
+ is_subdissector = true;
subdissector_handle = requested_subdissector_handle;
}
@@ -2288,27 +2289,27 @@ dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset _
if ((subdissector_handle
= dissector_get_string_handle(ber_oid_dissector_table, cur_oid))) {
/* found */
- is_subdissector = TRUE;
+ 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;
+ is_subdissector = true;
} else {
/* Nothing found, take the Data handler */
subdissector_handle = data_handle;
- is_subdissector = TRUE;
+ 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;
+ is_subdissector = true;
} else {
subdissector_handle = data_handle;
- is_subdissector = TRUE;
+ is_subdissector = true;
}
} /* OID */
} else {
@@ -2317,13 +2318,13 @@ dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset _
/* Call the sub dissector if present, and not already called */
if (is_subdissector) {
- gboolean is_active = call_dissector_only(subdissector_handle, tvb, actx->pinfo, tree, actx->value_ptr);
+ bool is_active = call_dissector_only(subdissector_handle, tvb, actx->pinfo, tree, actx->value_ptr);
col_set_fence(actx->pinfo->cinfo, COL_INFO);
if(!is_active){
- return FALSE;
+ return false;
}
}
- return TRUE;
+ return true;
}
void
diff --git a/epan/dissectors/asn1/tcap/packet-tcap-template.h b/epan/dissectors/asn1/tcap/packet-tcap-template.h
index 8e3a6ccd..abd2faef 100644
--- a/epan/dissectors/asn1/tcap/packet-tcap-template.h
+++ b/epan/dissectors/asn1/tcap/packet-tcap-template.h
@@ -49,13 +49,13 @@
#define TC_ANSI_ALL 6
struct tcap_private_t {
- gboolean acv; /* Is the Application Context Version present */
+ bool acv; /* Is the Application Context Version present */
const void * oid;
- guint32 session_id;
+ uint32_t session_id;
void * context;
- gchar *TransactionID_str;
- guint32 src_tid;
- guint32 dst_tid;
+ char *TransactionID_str;
+ uint32_t src_tid;
+ uint32_t dst_tid;
};
/** @file
@@ -66,17 +66,17 @@ struct tcap_private_t {
#define LENGTH_OID 23
struct tcaphash_context_t {
struct tcaphash_context_key_t * key;
- guint32 session_id;
- guint32 first_frame;
- guint32 last_frame;
+ uint32_t session_id;
+ uint32_t first_frame;
+ uint32_t 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;
+ bool responded; /**< true, if request has been responded */
+ bool closed;
+ bool upper_dissector;
+ bool oid_present;
+ char oid[LENGTH_OID+1];
+ bool subdissector_present;
dissector_handle_t subdissector_handle;
void (* callback) (tvbuff_t *,packet_info *, proto_tree *, struct tcaphash_context_t *);
struct tcaphash_begincall_t * begincall;
@@ -88,7 +88,7 @@ struct tcaphash_context_t {
struct tcaphash_begincall_t {
struct tcaphash_begin_info_key_t * beginkey;
struct tcaphash_context_t * context;
- gboolean father;
+ bool father;
struct tcaphash_begincall_t * next_begincall;
struct tcaphash_begincall_t * previous_begincall;
};
@@ -96,7 +96,7 @@ struct tcaphash_begincall_t {
struct tcaphash_contcall_t {
struct tcaphash_cont_info_key_t * contkey;
struct tcaphash_context_t * context;
- gboolean father;
+ bool father;
struct tcaphash_contcall_t * next_contcall;
struct tcaphash_contcall_t * previous_contcall;
};
@@ -104,7 +104,7 @@ struct tcaphash_contcall_t {
struct tcaphash_endcall_t {
struct tcaphash_end_info_key_t * endkey;
struct tcaphash_context_t * context;
- gboolean father;
+ bool father;
struct tcaphash_endcall_t * next_endcall;
struct tcaphash_endcall_t * previous_endcall;
};
@@ -112,7 +112,7 @@ struct tcaphash_endcall_t {
struct tcaphash_ansicall_t {
struct tcaphash_ansi_info_key_t * ansikey;
struct tcaphash_context_t * context;
- gboolean father;
+ bool father;
struct tcaphash_ansicall_t * next_ansicall;
struct tcaphash_ansicall_t * previous_ansicall;
};
@@ -121,44 +121,44 @@ struct tcaphash_ansicall_t {
of the TC_BEGIN containing the InitialDP */
struct tcaphash_context_key_t {
- guint32 session_id;
+ uint32_t session_id;
};
struct tcaphash_begin_info_key_t {
- guint32 hashKey;
- guint32 tid;
- guint32 pc_hash;
+ uint32_t hashKey;
+ uint32_t tid;
+ uint32_t pc_hash;
};
struct tcaphash_cont_info_key_t {
- guint32 hashKey;
- guint32 src_tid;
- guint32 dst_tid;
- guint32 opc_hash;
- guint32 dpc_hash;
+ uint32_t hashKey;
+ uint32_t src_tid;
+ uint32_t dst_tid;
+ uint32_t opc_hash;
+ uint32_t dpc_hash;
};
struct tcaphash_end_info_key_t {
- guint32 hashKey;
- guint32 tid;
- guint32 opc_hash;
- guint32 dpc_hash;
+ uint32_t hashKey;
+ uint32_t tid;
+ uint32_t opc_hash;
+ uint32_t dpc_hash;
};
struct tcaphash_ansi_info_key_t {
- guint32 hashKey;
- guint32 tid;
- guint32 opc_hash;
- guint32 dpc_hash;
+ uint32_t hashKey;
+ uint32_t tid;
+ uint32_t opc_hash;
+ uint32_t 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;
+ uint32_t tcap_session_id;
+ uint32_t src_tid;
+ uint32_t dst_tid;
+ uint8_t ope;
};
/**
@@ -190,22 +190,22 @@ struct tcaphash_context_t * tcapsrt_call_matching(tvbuff_t *tvb,
proto_tree *tree,
struct tcapsrt_info_t * p_tcap_info);
-WS_DLL_PUBLIC gboolean gtcap_StatSRT;
+WS_DLL_PUBLIC bool gtcap_StatSRT;
-extern gint tcap_standard;
+extern int 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 dissector_handle_t get_itu_tcap_subdissector(uint32_t ssn);
+dissector_handle_t get_ansi_tcap_subdissector(uint32_t 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 add_ansi_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector);
+WS_DLL_PUBLIC void add_itu_tcap_subdissector(uint32_t 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 delete_ansi_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector);
+WS_DLL_PUBLIC void delete_itu_tcap_subdissector(uint32_t ssn, dissector_handle_t dissector);
extern void call_tcap_dissector(dissector_handle_t, tvbuff_t*, packet_info*, proto_tree*);
diff --git a/epan/dissectors/asn1/tcap/tcap.cnf b/epan/dissectors/asn1/tcap/tcap.cnf
index 7e52d38c..3b8abe51 100644
--- a/epan/dissectors/asn1/tcap/tcap.cnf
+++ b/epan/dissectors/asn1/tcap/tcap.cnf
@@ -60,7 +60,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
#----------------------------------------------------------------------------------------
#.FN_BODY DialogueOC
- offset = dissect_tcap_ExternalPDU(FALSE /*implicit_tag*/, tvb, offset, actx, tree, -1);
+ offset = dissect_tcap_ExternalPDU(false /*implicit_tag*/, tvb, offset, actx, tree, -1);
#----------------------------------------------------------------------------------------
#.FN_BODY ExternalPDU
@@ -70,7 +70,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
#----------------------------------------------------------------------------------------
#.FN_BODY Dialog1
- offset = dissect_tcap_DialoguePDU(TRUE, tvb, offset, actx, tree, -1);
+ offset = dissect_tcap_DialoguePDU(true, tvb, offset, actx, tree, -1);
#----------------------------------------------------------------------------------------
#.FN_BODY Parameter
@@ -80,11 +80,11 @@ ABRT-apdu/_untag/user-information abrt_user_information
#----------------------------------------------------------------------------------------
#.FN_BODY Component
tvbuff_t *next_tvb;
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint tag;
- guint32 len, comp_offset;
- volatile guint32 _offset;
+ int tag;
+ uint32_t len, comp_offset;
+ volatile uint32_t _offset;
bool ind_field;
comp_offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &ber_class, &pc, &tag);
@@ -118,7 +118,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
%(DEFAULT_BODY)s
if (p_tcap_private) {
p_tcap_private->oid= (const void*) cur_oid;
- p_tcap_private->acv=TRUE;
+ p_tcap_private->acv=true;
}
#----------------------------------------------------------------------------------------
#.FN_BODY AARQ-apdu/_untag/application-context-name FN_VARIANT = _str VAL_PTR = &cur_oid
@@ -126,7 +126,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
%(DEFAULT_BODY)s
if (p_tcap_private) {
p_tcap_private->oid= (const void*) cur_oid;
- p_tcap_private->acv=TRUE;
+ p_tcap_private->acv=true;
}
#----------------------------------------------------------------------------------------
#.FN_BODY AARE-apdu/_untag/application-context-name FN_VARIANT = _str VAL_PTR = &cur_oid
@@ -134,12 +134,12 @@ ABRT-apdu/_untag/user-information abrt_user_information
%(DEFAULT_BODY)s
if (p_tcap_private) {
p_tcap_private->oid= (const void*) cur_oid;
- p_tcap_private->acv=TRUE;
+ p_tcap_private->acv=true;
}
#----------------------------------------------------------------------------------------
#.FN_BODY OrigTransactionID
tvbuff_t *parameter_tvb;
- guint8 len, i;
+ uint8_t len, i;
proto_tree *subtree;
int saved_offset;
struct tcap_private_t *p_tcap_private = (struct tcap_private_t*)actx->value_ptr;
@@ -158,7 +158,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
len = tvb_reported_length_remaining(parameter_tvb, 0);
switch(len) {
case 1:
- gp_tcapsrt_info->src_tid=tvb_get_guint8(parameter_tvb, 0);
+ gp_tcapsrt_info->src_tid=tvb_get_uint8(parameter_tvb, 0);
break;
case 2:
gp_tcapsrt_info->src_tid=tvb_get_ntohs(parameter_tvb, 0);
@@ -179,7 +179,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
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_fstr(actx->pinfo->cinfo, COL_INFO, "%%02x",tvb_get_uint8(parameter_tvb,i));
}
col_append_str(actx->pinfo->cinfo, COL_INFO, ") ");
}
@@ -188,7 +188,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
#----------------------------------------------------------------------------------------
#.FN_BODY DestTransactionID
tvbuff_t *parameter_tvb;
- guint8 len , i;
+ uint8_t len , i;
proto_tree *subtree;
int saved_offset;
struct tcap_private_t *p_tcap_private = (struct tcap_private_t*)actx->value_ptr;
@@ -207,7 +207,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
len = tvb_reported_length_remaining(parameter_tvb, 0);
switch(len) {
case 1:
- gp_tcapsrt_info->dst_tid=tvb_get_guint8(parameter_tvb, 0);
+ gp_tcapsrt_info->dst_tid=tvb_get_uint8(parameter_tvb, 0);
break;
case 2:
gp_tcapsrt_info->dst_tid=tvb_get_ntohs(parameter_tvb, 0);
@@ -228,7 +228,7 @@ ABRT-apdu/_untag/user-information abrt_user_information
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_fstr(actx->pinfo->cinfo, COL_INFO, "%%02x",tvb_get_uint8(parameter_tvb,i));
}
col_append_str(actx->pinfo->cinfo, COL_INFO, ") ");
}
diff --git a/epan/dissectors/asn1/tcg-cp-oids/packet-tcg-cp-oids-template.c b/epan/dissectors/asn1/tcg-cp-oids/packet-tcg-cp-oids-template.c
index ab8bc3d2..3dc0e33f 100644
--- a/epan/dissectors/asn1/tcg-cp-oids/packet-tcg-cp-oids-template.c
+++ b/epan/dissectors/asn1/tcg-cp-oids/packet-tcg-cp-oids-template.c
@@ -12,6 +12,7 @@
#include <epan/packet.h>
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-tcg-cp-oids.h"
#include "packet-ber.h"
@@ -26,9 +27,9 @@ void proto_register_tcg_cp_oids(void);
void proto_reg_handoff_tcg_cp_oids(void);
/* Initialize the protocol and registered fields */
-static int proto_tcg_cp_oids = -1;
+static int proto_tcg_cp_oids;
#include "packet-tcg-cp-oids-hf.c"
-static int hf_tcg_cp_oids_UTF8String_PDU = -1;
+static int hf_tcg_cp_oids_UTF8String_PDU;
/* Initialize the subtree pointers */
#include "packet-tcg-cp-oids-ett.c"
@@ -48,7 +49,7 @@ void proto_register_tcg_cp_oids(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-tcg-cp-oids-ettarr.c"
};
@@ -65,8 +66,8 @@ static int
dissect_tcg_cp_oids_UTF8String_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t actx;
- asn1_ctx_init(&actx, ASN1_ENC_BER, TRUE, pinfo);
- offset = dissect_ber_restricted_string(FALSE, BER_UNI_TAG_UTF8String, &actx, tree, tvb, offset, hf_tcg_cp_oids_UTF8String_PDU, NULL);
+ asn1_ctx_init(&actx, ASN1_ENC_BER, true, pinfo);
+ offset = dissect_ber_restricted_string(false, BER_UNI_TAG_UTF8String, &actx, tree, tvb, offset, hf_tcg_cp_oids_UTF8String_PDU, NULL);
return offset;
}
diff --git a/epan/dissectors/asn1/tetra/packet-tetra-template.c b/epan/dissectors/asn1/tetra/packet-tetra-template.c
index d3be1021..0165bf65 100644
--- a/epan/dissectors/asn1/tetra/packet-tetra-template.c
+++ b/epan/dissectors/asn1/tetra/packet-tetra-template.c
@@ -22,6 +22,7 @@
#include <epan/oids.h>
#include <epan/conversation.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-tetra.h"
@@ -32,50 +33,50 @@ void proto_register_tetra(void);
void proto_reg_handoff_tetra(void);
/* Wireshark ID of the tetra protocol */
-static int proto_tetra = -1;
+static int proto_tetra;
static dissector_handle_t tetra_handle;
#define TETRA_UDP_PORT 7074 /* Not IANA assigned */
/* Whether the capture data include carrier numbers */
-static gboolean include_carrier_number = TRUE;
+static bool 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;
+static int hf_tetra;
+static int hf_tetra_header;
+static int hf_tetra_channels;
+static int hf_tetra_channel1;
+static int hf_tetra_channel2;
+static int hf_tetra_channel3;
+static int hf_tetra_txreg;
+static int hf_tetra_timer;
+static int hf_tetra_pdu;
+static int hf_tetra_rvstr;
+static int hf_tetra_carriernumber;
+static int hf_tetra_rxchannel1;
+static int hf_tetra_rxchannel2;
+static int hf_tetra_rxchannel3;
+static int hf_tetra_crc;
+static int hf_tetra_len0;
#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;
+static int ett_tetra;
+static int ett_tetra_header;
+static int ett_tetra_length;
+static int ett_tetra_txreg;
+static int ett_tetra_text;
#include "packet-tetra-ett.c"
-static expert_field ei_tetra_channels_incorrect = EI_INIT;
+static expert_field ei_tetra_channels_incorrect;
#include "packet-tetra-fn.c"
@@ -113,9 +114,9 @@ static const value_string recvchanneltypenames[] = {
};
/* Get the length of received pdu */
-static gint get_rx_pdu_length(guint32 channel_type)
+static int get_rx_pdu_length(uint32_t channel_type)
{
- gint len = 0;
+ int len = 0;
switch(channel_type) {
case TETRA_CHAN_AACH:
@@ -160,9 +161,9 @@ static gint get_rx_pdu_length(guint32 channel_type)
}
/* Get the length of transmitted pdu */
-static gint get_tx_pdu_length(guint32 channel_type)
+static int get_tx_pdu_length(uint32_t channel_type)
{
- gint len = 0;
+ int len = 0;
switch(channel_type) {
case TETRA_CHAN_AACH:
@@ -204,7 +205,7 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
{
proto_item *tetra_sub_item;
proto_tree *tetra_sub_tree;
- guint8 p;
+ uint8_t p;
tetra_sub_item = proto_tree_add_item(tree, hf_tetra_pdu,
pdu, 0, tvb_captured_length(pdu), ENC_NA);
@@ -216,7 +217,7 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
dissect_AACH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case TETRA_CHAN_SCH_F:
- p = tvb_get_guint8(pdu, 0);
+ p = tvb_get_uint8(pdu, 0);
switch(p >> 6) {
case 0:
if (dir == TETRA_DOWNLINK)
@@ -240,7 +241,7 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
}
break;
case TETRA_CHAN_SCH_D:
- p = tvb_get_guint8(pdu, 0);
+ p = tvb_get_uint8(pdu, 0);
switch(p >> 6) {
case 0:
dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
@@ -257,7 +258,7 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
}
break;
case TETRA_CHAN_SCH_HU:
- p = tvb_get_guint8(pdu, 0);
+ p = tvb_get_uint8(pdu, 0);
switch(p >> 7) {
case 0: /* MAC-ACCESS */
dissect_MAC_ACCESS_PDU(pdu, pinfo, tetra_sub_tree, NULL);
@@ -276,7 +277,7 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
dissect_BNCH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case TETRA_CHAN_STCH:
- p = tvb_get_guint8(pdu, 0);
+ p = tvb_get_uint8(pdu, 0);
switch(p >> 6) {
case 0:
dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
@@ -303,10 +304,10 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
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;
+ uint32_t rxreg = 0;
+ uint32_t channels = 0, i;
+ uint32_t channel_type;
+ int pdu_offset = 0;
proto_item *tetra_sub_item;
proto_tree *tetra_header_tree = NULL;
tvbuff_t *payload_tvb;
@@ -331,8 +332,8 @@ static void dissect_tetra_UNITDATA_IND(tvbuff_t *tvb, packet_info *pinfo, proto_
pdu_offset = offset + 4;
for(i = 0; i < channels; i++) {
- gint byte_len, bits_len, remaining_bits;
- gint hf_channel[3];
+ int byte_len, bits_len, remaining_bits;
+ int hf_channel[3];
hf_channel[0] = hf_tetra_rxchannel1;
hf_channel[1] = hf_tetra_rxchannel2;
@@ -363,10 +364,10 @@ static void dissect_tetra_UNITDATA_IND(tvbuff_t *tvb, packet_info *pinfo, proto_
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;
+ uint32_t txreg = 0;
+ uint32_t channels = 0, i;
+ uint32_t channel_type;
+ int pdu_offset = 0;
proto_item *tetra_sub_item = NULL;
proto_tree *tetra_header_tree = NULL;
tvbuff_t *payload_tvb;
@@ -391,8 +392,8 @@ static void dissect_tetra_UNITDATA_REQ(tvbuff_t *tvb, packet_info *pinfo, proto_
pdu_offset = offset + 4;
for(i = 0; i < channels; i++) {
- gint byte_len, bits_len, remaining_bits;
- gint hf_channel[3];
+ int byte_len, bits_len, remaining_bits;
+ int hf_channel[3];
hf_channel[0] = hf_tetra_channel1;
hf_channel[1] = hf_tetra_channel2;
@@ -421,8 +422,8 @@ dissect_tetra(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
proto_item *tetra_sub_item = NULL;
proto_tree *tetra_tree = NULL;
proto_tree *tetra_header_tree = NULL;
- guint16 type = 0;
- guint8 carriernumber = -1;
+ uint16_t type = 0;
+ uint8_t carriernumber = -1;
col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_TAG_tetra);
/* Clear out stuff in the info column */
@@ -432,10 +433,10 @@ dissect_tetra(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
* 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);
+ type = tvb_get_uint8(tvb, 0);
if(include_carrier_number) {
- carriernumber = tvb_get_guint8(tvb, 1);
+ carriernumber = tvb_get_uint8(tvb, 1);
}
@@ -445,35 +446,35 @@ dissect_tetra(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-REQ, Carrier: %d",
carriernumber);
else
- col_add_fstr(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-REQ");
+ col_set_str(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");
+ col_set_str(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");
+ col_set_str(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");
+ col_set_str(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");
+ col_set_str(pinfo->cinfo, COL_INFO, "Tetra-UNITDATA-REQ Done");
break;
default:
col_add_fstr(pinfo->cinfo, COL_INFO, "Unknown command: %d", type);
@@ -481,9 +482,9 @@ dissect_tetra(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
}
/* if (tree) */ { /* we are being asked for details */
- guint32 offset = 0;
- guint32 txtimer = 0;
- guint32 tslot = 0;
+ uint32_t offset = 0;
+ uint32_t txtimer = 0;
+ uint32_t 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);
@@ -604,7 +605,7 @@ void proto_register_tetra (void)
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_tetra,
&ett_tetra_header,
&ett_tetra_length,
diff --git a/epan/dissectors/asn1/ulp/packet-ulp-template.c b/epan/dissectors/asn1/ulp/packet-ulp-template.c
index f231deb6..2a14fcad 100644
--- a/epan/dissectors/asn1/ulp/packet-ulp-template.c
+++ b/epan/dissectors/asn1/ulp/packet-ulp-template.c
@@ -21,10 +21,12 @@
#include <epan/packet.h>
#include <epan/prefs.h>
#include <epan/asn1.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-per.h"
#include "packet-tcp.h"
-#include "packet-gsm_map.h"
#include "packet-e164.h"
#include "packet-e212.h"
@@ -44,27 +46,27 @@ static dissector_handle_t lpp_handle;
#define ULP_PORT 7275
/* Initialize the protocol and registered fields */
-static int proto_ulp = -1;
+static int proto_ulp;
#define ULP_HEADER_SIZE 2
-static gboolean ulp_desegment = TRUE;
+static bool 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;
+static int hf_ulp_mobile_directory_number;
+static int hf_ulp_ganssTimeModels_bit0;
+static int hf_ulp_ganssTimeModels_bit1;
+static int hf_ulp_ganssTimeModels_bit2;
+static int hf_ulp_ganssTimeModels_bit3;
+static int hf_ulp_ganssTimeModels_bit4;
+static int hf_ulp_ganssTimeModels_spare;
/* 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;
+static int ett_ulp;
+static int ett_ulp_setid;
+static int ett_ulp_thirdPartyId;
+static int ett_ulp_ganssTimeModels;
#include "packet-ulp-ett.c"
static dissector_handle_t ulp_tcp_handle;
@@ -89,7 +91,7 @@ static const value_string ulp_ganss_sbas_id_vals[] = {
};
static void
-ulp_ganssDataBitInterval_fmt(gchar *s, guint32 v)
+ulp_ganssDataBitInterval_fmt(char *s, uint32_t v)
{
if (v == 15) {
snprintf(s, ITEM_LABEL_LENGTH, "Time interval is not specified (15)");
@@ -101,13 +103,13 @@ ulp_ganssDataBitInterval_fmt(gchar *s, guint32 v)
}
static void
-ulp_ExtendedEphemeris_validity_fmt(gchar *s, guint32 v)
+ulp_ExtendedEphemeris_validity_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%uh (%u)", 4*v, v);
}
static void
-ulp_PositionEstimate_latitude_fmt(gchar *s, guint32 v)
+ulp_PositionEstimate_latitude_fmt(char *s, uint32_t v)
{
double latitude = ((double)v*90)/pow(2,23);
@@ -115,15 +117,15 @@ ulp_PositionEstimate_latitude_fmt(gchar *s, guint32 v)
}
static void
-ulp_PositionEstimate_longitude_fmt(gchar *s, guint32 v)
+ulp_PositionEstimate_longitude_fmt(char *s, uint32_t v)
{
- double longitude = ((double)(gint32)v*360)/pow(2,24);
+ double longitude = ((double)(int32_t)v*360)/pow(2,24);
snprintf(s, ITEM_LABEL_LENGTH, "%g degrees (%u)", longitude, v);
}
static void
-ulp_NMRelement_rxLev_fmt(gchar *s, guint32 v)
+ulp_NMRelement_rxLev_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RxLev < -110dBm (0)");
@@ -135,7 +137,7 @@ ulp_NMRelement_rxLev_fmt(gchar *s, guint32 v)
}
static void
-ulp_UTRA_CarrierRSSI_fmt(gchar *s, guint32 v)
+ulp_UTRA_CarrierRSSI_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)");
@@ -149,7 +151,7 @@ ulp_UTRA_CarrierRSSI_fmt(gchar *s, guint32 v)
}
static void
-ulp_PrimaryCCPCH_RSCP_fmt(gchar *s, guint32 v)
+ulp_PrimaryCCPCH_RSCP_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSCP < -115dBm (0)");
@@ -163,7 +165,7 @@ ulp_PrimaryCCPCH_RSCP_fmt(gchar *s, guint32 v)
}
static void
-ulp_CPICH_Ec_N0_fmt(gchar *s, guint32 v)
+ulp_CPICH_Ec_N0_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "CPICH Ec/N0 < -24dB (0)");
@@ -177,7 +179,7 @@ ulp_CPICH_Ec_N0_fmt(gchar *s, guint32 v)
}
static void
-ulp_CPICH_RSCP_fmt(gchar *s, guint32 v)
+ulp_CPICH_RSCP_fmt(char *s, uint32_t v)
{
if (v == 123) {
snprintf(s, ITEM_LABEL_LENGTH, "CPICH RSCP < -120dBm (123)");
@@ -193,7 +195,7 @@ ulp_CPICH_RSCP_fmt(gchar *s, guint32 v)
}
static void
-ulp_QoP_horacc_fmt(gchar *s, guint32 v)
+ulp_QoP_horacc_fmt(char *s, uint32_t v)
{
double uncertainty = 10*(pow(1.1, (double)v)-1);
@@ -205,7 +207,7 @@ ulp_QoP_horacc_fmt(gchar *s, guint32 v)
}
static void
-ulp_QoP_veracc_fmt(gchar *s, guint32 v)
+ulp_QoP_veracc_fmt(char *s, uint32_t v)
{
double uncertainty = 45*(pow(1.025, (double)v)-1);
@@ -213,7 +215,7 @@ ulp_QoP_veracc_fmt(gchar *s, guint32 v)
}
static void
-ulp_QoP_delay_fmt(gchar *s, guint32 v)
+ulp_QoP_delay_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%gs (%u)", pow(2, (double)v), v);
}
@@ -224,13 +226,13 @@ static const true_false_string ulp_vertical_dir_val = {
};
static void
-ulp_RelativeTime_fmt(gchar *s, guint32 v)
+ulp_RelativeTime_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fs (%u)", 0.01*v, v);
}
static void
-ulp_RSRP_Range_fmt(gchar *s, guint32 v)
+ulp_RSRP_Range_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)");
@@ -242,7 +244,7 @@ ulp_RSRP_Range_fmt(gchar *s, guint32 v)
}
static void
-ulp_RSRQ_Range_fmt(gchar *s, guint32 v)
+ulp_RSRQ_Range_fmt(char *s, uint32_t v)
{
if (v == 0) {
snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)");
@@ -254,31 +256,31 @@ ulp_RSRQ_Range_fmt(gchar *s, guint32 v)
}
static void
-ulp_SignalDelta_fmt(gchar *s, guint32 v)
+ulp_SignalDelta_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%sdB (%u)", v ? "0.5" : "0", v);
}
static void
-ulp_locationAccuracy_fmt(gchar *s, guint32 v)
+ulp_locationAccuracy_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fm (%u)", 0.1*v, v);
}
static void
-ulp_WimaxRTD_fmt(gchar *s, guint32 v)
+ulp_WimaxRTD_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.01*v, v);
}
static void
-ulp_WimaxNMR_rssi_fmt(gchar *s, guint32 v)
+ulp_WimaxNMR_rssi_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fdBm (%u)", -103.75+(0.25*v), v);
}
static void
-ulp_UTRAN_gpsReferenceTimeUncertainty_fmt(gchar *s, guint32 v)
+ulp_UTRAN_gpsReferenceTimeUncertainty_fmt(char *s, uint32_t v)
{
double uncertainty = 0.0022*(pow(1.18, (double)v)-1);
@@ -294,22 +296,22 @@ static const value_string ulp_ganss_time_id_vals[] = {
};
static void
-ulp_utran_GANSSTimingOfCell_fmt(gchar *s, guint32 v)
+ulp_utran_GANSSTimingOfCell_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fus (%u)", 0.25*v, v);
}
static void
-ulp_Coordinate_latitude_fmt(gchar *s, guint32 v)
+ulp_Coordinate_latitude_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%u)",
((float)v/8388607.0)*90, v);
}
static void
-ulp_Coordinate_longitude_fmt(gchar *s, guint32 v)
+ulp_Coordinate_longitude_fmt(char *s, uint32_t v)
{
- gint32 longitude = (gint32) v;
+ int32_t longitude = (int32_t) v;
snprintf(s, ITEM_LABEL_LENGTH, "%f degrees (%d)",
((float)longitude/8388608.0)*180, longitude);
@@ -320,8 +322,8 @@ ulp_Coordinate_longitude_fmt(gchar *s, guint32 v)
typedef struct
{
- guint8 notif_enc_type;
- guint8 ganss_req_gen_data_ganss_id;
+ uint8_t notif_enc_type;
+ uint8_t ganss_req_gen_data_ganss_id;
} ulp_private_data_t;
static ulp_private_data_t* ulp_get_private_data(asn1_ctx_t *actx)
@@ -335,7 +337,7 @@ static ulp_private_data_t* ulp_get_private_data(asn1_ctx_t *actx)
#include "packet-ulp-fn.c"
-static guint
+static unsigned
get_ulp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
{
/* PDU length = Message length */
@@ -390,7 +392,7 @@ void proto_register_ulp(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_ulp,
&ett_ulp_setid,
&ett_ulp_thirdPartyId,
diff --git a/epan/dissectors/asn1/ulp/ulp.cnf b/epan/dissectors/asn1/ulp/ulp.cnf
index 69a36d87..5efa44c1 100644
--- a/epan/dissectors/asn1/ulp/ulp.cnf
+++ b/epan/dissectors/asn1/ulp/ulp.cnf
@@ -43,7 +43,7 @@ Coordinate/longitude coordinateLongitude
#.FN_BODY UlpMessage VAL_PTR = &UlpMessage
-guint32 UlpMessage;
+uint32_t UlpMessage;
%(DEFAULT_BODY)s
@@ -58,11 +58,11 @@ guint32 UlpMessage;
%(DEFAULT_BODY)s
#.FN_BODY EncodingType VAL_PTR=&val
- guint32 val;
+ uint32_t val;
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
%(DEFAULT_BODY)s
- ulp_priv->notif_enc_type = (guint8) val;
+ ulp_priv->notif_enc_type = (uint8_t) val;
#.FN_BODY Notification/requestorId VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -129,10 +129,10 @@ Notification/requestorId TYPE=FT_STRING DISPLAY=BASE_NONE
Notification/clientName TYPE=FT_STRING DISPLAY=BASE_NONE
#.TYPE_ATTR
-NavigationModel/gpsToe DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_hours
+NavigationModel/gpsToe DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_hours)
#.TYPE_ATTR
-NavigationModel/toeLimit DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_hours
+NavigationModel/toeLimit DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_hours)
#.FN_BODY PosPayLoad/rrlpPayload VAL_PTR = &rrlp_tvb
tvbuff_t *rrlp_tvb;
@@ -144,19 +144,19 @@ NavigationModel/toeLimit DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_hours
}
#.TYPE_ATTR
-PeriodicParams/intervalBetweenFixes DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+PeriodicParams/intervalBetweenFixes DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-PeriodicParams/startTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+PeriodicParams/startTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-AreaEventParams/startTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+AreaEventParams/startTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-AreaEventParams/stopTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+AreaEventParams/stopTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-RepeatedReportingParams/minimumIntervalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+RepeatedReportingParams/minimumIntervalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY WLANAreaId/apMACAddress VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -173,16 +173,16 @@ WLANAreaId/apMACAddress TYPE=FT_ETHER
GANSSSignalsDescription/ganssId STRINGS=VALS(ulp_ganss_id_vals)
#.TYPE_ATTR
-TimeStamp/relativeTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+TimeStamp/relativeTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ReportingCriteria/minTimeInterval DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ReportingCriteria/minTimeInterval DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-TimeWindow/startTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
+TimeWindow/startTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_minutes)
#.TYPE_ATTR
-TimeWindow/stopTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
+TimeWindow/stopTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_minutes)
#.TYPE_ATTR
GANSSPositionMethod/ganssId STRINGS=VALS(ulp_ganss_id_vals)
@@ -199,11 +199,11 @@ GANSSPositionMethod/ganssId STRINGS=VALS(ulp_ganss_id_vals)
GANSSPositionMethod/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_ganss_sbas_id_vals)
#.FN_BODY GanssReqGenericData/ganssId VAL_PTR=&val
- guint32 val;
+ uint32_t 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;
+ ulp_priv->ganss_req_gen_data_ganss_id = (uint8_t) val;
#.TYPE_ATTR
GanssReqGenericData/ganssId STRINGS=VALS(ulp_ganss_id_vals)
@@ -244,7 +244,7 @@ GanssReqGenericData/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_
}
#.FN_BODY GanssNavigationModelData/ganssToe VAL_PTR=&val
- guint32 val;
+ uint32_t val;
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
%(DEFAULT_BODY)s
@@ -258,7 +258,7 @@ GanssReqGenericData/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_
}
#.FN_BODY GanssNavigationModelData/t-toeLimit VAL_PTR=&val
- guint32 val;
+ uint32_t val;
ulp_private_data_t *ulp_priv = ulp_get_private_data(actx);
%(DEFAULT_BODY)s
@@ -272,7 +272,7 @@ GanssReqGenericData/ganssSBASid TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(ulp_
}
#.TYPE_ATTR
-GanssDataBits/ganssTODmin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+GanssDataBits/ganssTODmin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
ReqDataBitAssistanceList/ganssDataBitInterval DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_ganssDataBitInterval_fmt)
@@ -306,7 +306,7 @@ ExtendedEphemeris/validity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_ExtendedEphem
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
- proto_tree_add_item(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, ENC_BCD_DIGITS_0_9);
+ proto_tree_add_item(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
}
#.FN_BODY SETId/imsi VAL_PTR=&imsi_tvb
@@ -316,7 +316,7 @@ ExtendedEphemeris/validity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_ExtendedEphem
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);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, false);
}
#.TYPE_ATTR
@@ -336,13 +336,13 @@ PositionEstimate/uncertainty/uncertaintySemiMajor DISPLAY=BASE_CUSTOM STRINGS=CF
PositionEstimate/uncertainty/uncertaintySemiMinor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
#.TYPE_ATTR
-PositionEstimate/uncertainty/orientationMajorAxis DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+PositionEstimate/uncertainty/orientationMajorAxis DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.TYPE_ATTR
-PositionEstimate/confidence DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
+PositionEstimate/confidence DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent)
#.TYPE_ATTR
-AltitudeInfo/altitude DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_meters
+AltitudeInfo/altitude DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
#.TYPE_ATTR
AltitudeInfo/altUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_veracc_fmt)
@@ -369,13 +369,13 @@ QoP/horacc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_horacc_fmt)
QoP/veracc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_veracc_fmt)
#.TYPE_ATTR
-QoP/maxLocAge DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+QoP/maxLocAge DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
QoP/delay DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_QoP_delay_fmt)
#.TYPE_ATTR
-QoP/ver2-responseTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+QoP/ver2-responseTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY Horvel/bearing VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -386,7 +386,7 @@ QoP/ver2-responseTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
}
#.TYPE_ATTR
-Horvel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+Horvel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.FN_BODY Horvel/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -397,7 +397,7 @@ Horvel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_d
}
#.TYPE_ATTR
-Horvel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horvel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horandvervel/verdirect VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -419,7 +419,7 @@ Horandvervel/verdirect TYPE=FT_BOOLEAN STRINGS=TFS(&ulp_vertical_dir_val)
}
#.TYPE_ATTR
-Horandvervel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+Horandvervel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.FN_BODY Horandvervel/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -430,7 +430,7 @@ Horandvervel/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
}
#.TYPE_ATTR
-Horandvervel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horandvervel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horandvervel/verspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -441,7 +441,7 @@ Horandvervel/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&
}
#.TYPE_ATTR
-Horandvervel/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horandvervel/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horveluncert/bearing VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -452,7 +452,7 @@ Horandvervel/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
}
#.TYPE_ATTR
-Horveluncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+Horveluncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.FN_BODY Horveluncert/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -463,7 +463,7 @@ Horveluncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
}
#.TYPE_ATTR
-Horveluncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horveluncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horveluncert/uncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -474,7 +474,7 @@ Horveluncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&
}
#.TYPE_ATTR
-Horveluncert/uncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horveluncert/uncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horandveruncert/verdirect VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -496,7 +496,7 @@ Horandveruncert/verdirect TYPE=FT_BOOLEAN STRINGS=TFS(&ulp_vertical_dir_val)
}
#.TYPE_ATTR
-Horandveruncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+Horandveruncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.FN_BODY Horandveruncert/horspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -507,7 +507,7 @@ Horandveruncert/bearing TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS
}
#.TYPE_ATTR
-Horandveruncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horandveruncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horandveruncert/verspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -518,7 +518,7 @@ Horandveruncert/horspeed TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRING
}
#.TYPE_ATTR
-Horandveruncert/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horandveruncert/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horandveruncert/horuncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -529,7 +529,7 @@ Horandveruncert/verspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS
}
#.TYPE_ATTR
-Horandveruncert/horuncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horandveruncert/horuncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.FN_BODY Horandveruncert/veruncertspeed VAL_PTR=&val_tvb HF_INDEX=-1
tvbuff_t *val_tvb;
@@ -540,7 +540,7 @@ Horandveruncert/horuncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING S
}
#.TYPE_ATTR
-Horandveruncert/veruncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kmh
+Horandveruncert/veruncertspeed TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kmh)
#.TYPE_ATTR
RelativeTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RelativeTime_fmt)
@@ -574,28 +574,28 @@ RSRQ-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_RSRQ_Range_fmt)
WlanAPInformation/apMACAddress TYPE=FT_ETHER
#.TYPE_ATTR
-WlanAPInformation/apTransmitPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+WlanAPInformation/apTransmitPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-WlanAPInformation/apAntennaGain DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbi
+WlanAPInformation/apAntennaGain DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbi)
#.TYPE_ATTR
-WlanAPInformation/apSignaltoNoise DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+WlanAPInformation/apSignaltoNoise DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-WlanAPInformation/apSignalStrength DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+WlanAPInformation/apSignalStrength DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-WlanAPInformation/setTransmitPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+WlanAPInformation/setTransmitPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
-WlanAPInformation/setAntennaGain DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbi
+WlanAPInformation/setAntennaGain DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbi)
#.TYPE_ATTR
-WlanAPInformation/setSignaltoNoise DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+WlanAPInformation/setSignaltoNoise DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-WlanAPInformation/setSignalStrength DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
+WlanAPInformation/setSignalStrength DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm)
#.TYPE_ATTR
WlanAPInformation/apSignalStrengthDelta DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_SignalDelta_fmt)
@@ -650,16 +650,16 @@ WimaxNMR/relDelaystd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxRTD_fmt)
WimaxNMR/rssi DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxNMR_rssi_fmt)
#.TYPE_ATTR
-WimaxNMR/rSSIstd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+WimaxNMR/rSSIstd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
WimaxNMR/bSTxPower DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_WimaxNMR_rssi_fmt)
#.TYPE_ATTR
-WimaxNMR/cinr DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+WimaxNMR/cinr DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
-WimaxNMR/cINRstd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
+WimaxNMR/cINRstd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels)
#.TYPE_ATTR
UTRAN-GPSReferenceTimeAssistance/gpsReferenceTimeUncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_UTRAN_gpsReferenceTimeUncertainty_fmt)
@@ -671,7 +671,7 @@ UTRAN-GPSReferenceTimeResult/gpsReferenceTimeUncertainty DISPLAY=BASE_CUSTOM STR
UTRAN-GANSSReferenceTimeAssistance/ganssTimeID STRINGS=VALS(ulp_ganss_time_id_vals)
#.TYPE_ATTR
-UTRAN-GANSSReferenceTime/ganssTOD DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+UTRAN-GANSSReferenceTime/ganssTOD DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
UTRAN-GANSSReferenceTime/utran-GANSSTimingOfCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_utran_GANSSTimingOfCell_fmt)
@@ -698,12 +698,12 @@ SET-GANSSReferenceTime/ganss-TODUncertainty ulp_UTRAN_gpsReferenceTimeUncertaint
#.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,
+ 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,
+ 1, 255, false, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%%#@?", 72,
NULL);
#.FN_BODY ThirdPartyID/mdn VAL_PTR=&mdn_tvb
tvbuff_t *mdn_tvb;
@@ -712,20 +712,20 @@ SET-GANSSReferenceTime/ganss-TODUncertainty ulp_UTRAN_gpsReferenceTimeUncertaint
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_str(actx->pinfo->pool, mdn_tvb, 0, 8, NULL, FALSE));
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_str(actx->pinfo->pool, 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,
+ 1, 255, false, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%%#", 69,
NULL);
#.TYPE_ATTR
-ReportingCap/minInt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ReportingCap/minInt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ReportingCap/maxInt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
+ReportingCap/maxInt DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_minutes)
#.TYPE_ATTR
Coordinate/latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_Coordinate_latitude_fmt)
@@ -734,18 +734,18 @@ Coordinate/latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_Coordinate_latitude_
Coordinate/longitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ulp_Coordinate_longitude_fmt)
#.TYPE_ATTR
-CircularArea/radius DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_meters
+CircularArea/radius DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
#.TYPE_ATTR
-EllipticalArea/semiMajor DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_meters
+EllipticalArea/semiMajor DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
#.TYPE_ATTR
-EllipticalArea/semiMinor DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_meters
+EllipticalArea/semiMinor DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
#.TYPE_ATTR
-EllipticalArea/angle DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_degree_degrees
+EllipticalArea/angle DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_degree_degrees)
#.TYPE_ATTR
-PolygonArea/polygonHysteresis DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_meters
+PolygonArea/polygonHysteresis DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_meters)
#.END
diff --git a/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c b/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c
index 39a0c220..553f8f35 100644
--- a/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c
+++ b/epan/dissectors/asn1/wlancertextn/packet-wlancertextn-template.c
@@ -15,6 +15,8 @@
#include <epan/oids.h>
#include <epan/asn1.h>
+#include <wsutil/array.h>
+
#include "packet-ber.h"
#include "packet-wlancertextn.h"
#include "packet-x509af.h"
@@ -29,7 +31,7 @@ void proto_register_wlancertextn(void);
void proto_reg_handoff_wlancertextn(void);
/* Initialize the protocol and registered fields */
-static int proto_wlancertextn = -1;
+static int proto_wlancertextn;
#include "packet-wlancertextn-hf.c"
/* Initialize the subtree pointers */
@@ -47,7 +49,7 @@ void proto_register_wlancertextn(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-wlancertextn-ettarr.c"
};
diff --git a/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn b/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
index c993cc41..c40ce866 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.5.0 (2023-06)
+-- 3GPP TS 36.423 V18.2.0 (2024-06)
-- 9.3.6 Common definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/x2ap/X2AP-Constants.asn b/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
index 0f406d19..79fa8467 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.5.0 (2023-06)
+-- 3GPP TS 36.423 V18.2.0 (2024-06)
-- 9.3.7 Constant definitions
-- **************************************************************
--
@@ -85,6 +85,7 @@ id-UERadioCapabilityIDMapping ProcedureCode ::= 56
id-accessAndMobilityIndication ProcedureCode ::= 57
id-procedure-code-58-not-to-be-used ProcedureCode ::= 58
id-CPC-cancel ProcedureCode ::= 59
+id-rachIndication ProcedureCode ::= 60
-- **************************************************************
--
@@ -148,7 +149,7 @@ maxnoofSSBAreas INTEGER ::= 64
maxnoofNRSCSs INTEGER ::= 5
maxnoofNRPhysicalResourceBlocks INTEGER ::= 275
maxnoofNonAnchorCarrierFreqConfig INTEGER ::= 15
-maxnoofRACHReports INTEGER ::= 64
+maxnoofRAReports INTEGER ::= 64
maxnoofPSCellsPerSN INTEGER ::= 8
maxnoofPSCellsPerPrimaryCellinUEHistoryInfo INTEGER ::= 8
maxnoofReportedNRCellsPossiblyAggregated INTEGER ::= 16
@@ -160,6 +161,9 @@ maxnoofCSIRSneighbourCells INTEGER ::= 16
maxnoofCSIRSneighbourCellsInMTC INTEGER ::= 16
maxnoofSensorName INTEGER ::= 3
maxnoofTargetSgNBsMinusOne INTEGER ::= 7
+maxnoofUEsforRAReportIndications INTEGER ::= 64
+
+
-- **************************************************************
--
@@ -425,7 +429,7 @@ id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250
id-CellAssistanceInformation ProtocolIE-ID ::= 251
id-Globalen-gNB-ID ProtocolIE-ID ::= 252
id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253
-id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254
+id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254
id-SecondaryRATUsageReport ProtocolIE-ID ::= 255
id-ActivationID ProtocolIE-ID ::= 256
id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257
@@ -586,7 +590,7 @@ id-DirectForwardingPathAvailability ProtocolIE-ID ::= 410
id-sourceNG-RAN-node-id ProtocolIE-ID ::= 411
id-SourceDLForwardingIPAddress ProtocolIE-ID ::= 412
id-SourceNodeDLForwardingIPAddress ProtocolIE-ID ::= 413
-id-NRRACHReportInformation ProtocolIE-ID ::= 414
+id-NRRAReport ProtocolIE-ID ::= 414
id-SCG-UE-HistoryInformation ProtocolIE-ID ::= 415
id-PSCellHistoryInformationRetrieve ProtocolIE-ID ::= 416
id-MeasurementResultforNRCellsPossiblyAggregated ProtocolIE-ID ::= 417
@@ -614,5 +618,14 @@ id-SCGreconfigNotification ProtocolIE-ID ::= 438
id-MIMOPRBusageInformation ProtocolIE-ID ::= 439
id-SensorMeasurementConfiguration ProtocolIE-ID ::= 440
id-AdditionalListofForwardingGTPTunnelEndpoint ProtocolIE-ID ::= 441
+id-M4ReportAmount ProtocolIE-ID ::= 442
+id-M5ReportAmount ProtocolIE-ID ::= 443
+id-M6ReportAmount ProtocolIE-ID ::= 444
+id-M7ReportAmount ProtocolIE-ID ::= 445
+id-CHOTimeBasedInformation ProtocolIE-ID ::= 446
+id-RaReportIndicationList ProtocolIE-ID ::= 447
+id-PSCellListContainer ProtocolIE-ID ::= 448
+id-IABAuthorized ProtocolIE-ID ::= 449
+
END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-Containers.asn b/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
index 31cb1c0e..3d63ea88 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.5.0 (2023-06)
+-- 3GPP TS 36.423 V18.2.0 (2024-06)
-- 9.3.8 Container definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/x2ap/X2AP-IEs.asn b/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
index 4fb6042b..2ef824de 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.5.0 (2023-06)
+-- 3GPP TS 36.423 V18.2.0 (2024-06)
-- 9.3.5 Information Element definitions
-- **************************************************************
--
@@ -95,8 +95,14 @@ IMPORTS
id-Additional-Measurement-Timing-Configuration-List,
id-ServedCellSpecificInfoReq-NR,
id-RAT-Restrictions,
+ id-PSCellListContainer,
id-PSCell-UE-HistoryInformation,
id-SensorMeasurementConfiguration,
+ id-M4ReportAmount,
+ id-M5ReportAmount,
+ id-M6ReportAmount,
+ id-M7ReportAmount,
+ id-CHOTimeBasedInformation,
maxnoofBearers,
maxCellineNB,
@@ -150,7 +156,7 @@ IMPORTS
maxnoofNRSCSs,
maxnoofNRPhysicalResourceBlocks,
maxnoofNonAnchorCarrierFreqConfig,
- maxnoofRACHReports,
+ maxnoofRAReports,
maxnoofPSCellsPerSN,
maxnoofPSCellsPerPrimaryCellinUEHistoryInfo,
maxnoofReportedNRCellsPossiblyAggregated,
@@ -162,7 +168,8 @@ IMPORTS
maxnoofCSIRSneighbourCellsInMTC,
maxCellinengNB,
maxnoofSensorName,
- maxnoofTargetSgNBsMinusOne
+ maxnoofTargetSgNBsMinusOne,
+ maxnoofUEsforRAReportIndications
FROM X2AP-Constants
@@ -550,7 +557,8 @@ CauseRadioNetwork ::= ENUMERATED {
unknown-E-UTRAN-Node-Measurement-ID,
sCG-activation-deactivation-failure,
sCG-deactivation-failure-due-to-data-transmission,
- up-integrity-protection-not-possible
+ up-integrity-protection-not-possible,
+ iAB-not-Authorized
}
@@ -913,7 +921,7 @@ CoverageModification-Item ::= SEQUENCE {
coverageState INTEGER (0..15, ...),
cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL,
cellReplacingInfo CellReplacingInfo OPTIONAL,
--- Included in case the Cell Deployment Status Indicator IE is present
+-- This IE shall be present if the Cell Deployment Status Indicator IE is present.
...
}
@@ -1018,7 +1026,7 @@ CHOtrigger ::= ENUMERATED {
CHOinformation-REQ ::= SEQUENCE {
cho-trigger CHOtrigger,
new-eNB-UE-X2AP-ID UE-X2AP-ID OPTIONAL
- -- This IE shall be present if the cho-trigger IE is present and set to "CHO-replace" --,
+ -- This IE shall be present if the CHO Trigger IE is present and set to "CHO-replace" --,
new-eNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension OPTIONAL,
cHO-EstimatedArrivalProbability CHO-Probability OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { CHOinformation-REQ-ExtIEs} } OPTIONAL,
@@ -1026,6 +1034,18 @@ CHOinformation-REQ ::= SEQUENCE {
}
CHOinformation-REQ-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
+ {ID id-CHOTimeBasedInformation CRITICALITY reject EXTENSION CHOTimeBasedInformation PRESENCE optional},
+ ...
+}
+
+CHOTimeBasedInformation ::= SEQUENCE {
+ cHO-HOWindowStart CHO-HandoverWindowStart,
+ cHO-HOWindowDuration CHO-HandoverWindowDuration,
+ iE-Extensions ProtocolExtensionContainer { {CHOTimeBasedInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CHOTimeBasedInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
@@ -1045,6 +1065,10 @@ CandidateCellsToBeCancelledList ::= SEQUENCE (SIZE (1..maxnoofCellsinCHO)) OF EC
CHO-Probability ::= INTEGER (1..100)
+CHO-HandoverWindowStart ::= INTEGER (0..1048575)
+
+CHO-HandoverWindowDuration ::= INTEGER (1..6000)
+
CHOinformation-AddReq ::= SEQUENCE {
source-eNB-ID GlobalENB-ID,
source-eNB-UE-X2AP-ID UE-X2AP-ID,
@@ -1695,6 +1719,13 @@ HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
IABNodeIndication ::= ENUMERATED {true,...}
+IABAuthorized ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+
IMSvoiceEPSfallbackfrom5G ::= ENUMERATED {
true,
...
@@ -1871,11 +1902,14 @@ M4Configuration ::= SEQUENCE {
}
M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-M4ReportAmount CRITICALITY ignore EXTENSION M4ReportAmountMDT PRESENCE optional},
+
...
}
M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+M4ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
M5Configuration ::= SEQUENCE {
m5period M5period,
@@ -1885,11 +1919,15 @@ M5Configuration ::= SEQUENCE {
}
M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-M5ReportAmount CRITICALITY ignore EXTENSION M5ReportAmountMDT PRESENCE optional },
+
...
}
M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+M5ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
+
M6Configuration ::= SEQUENCE {
m6report-interval M6report-interval,
m6delay-threshold M6delay-threshold OPTIONAL,
@@ -1900,6 +1938,8 @@ M6Configuration ::= SEQUENCE {
}
M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-M6ReportAmount CRITICALITY ignore EXTENSION M6ReportAmountMDT PRESENCE optional },
+
...
}
@@ -1907,6 +1947,8 @@ M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... }
M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... }
+M6ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
+
M7Configuration ::= SEQUENCE {
m7period M7period,
m7-links-to-log Links-to-log,
@@ -1915,11 +1957,15 @@ M7Configuration ::= SEQUENCE {
}
M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-M7ReportAmount CRITICALITY ignore EXTENSION M7ReportAmountMDT PRESENCE optional },
+
...
}
M7period ::= INTEGER(1..60, ...)
+M7ReportAmountMDT ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity, ...}
+
MakeBeforeBreakIndicator::= ENUMERATED {true, ...}
ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...}
@@ -1940,21 +1986,26 @@ MDT-Configuration ::= SEQUENCE {
measurementsToActivate MeasurementsToActivate,
m1reportingTrigger M1ReportingTrigger,
m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
--- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+-- This IE shall be present if the Measurements to Activate IE has the first bit set to "1" and the M1 Reporting Trigger IE is set to "A2event-triggered" or to "A2event-triggered periodic".
m1periodicReporting M1PeriodicReporting OPTIONAL,
--- Included in case of periodic, or event-triggered periodic reporting for measurement M1
+-- This IE shall be present if the M1 Reporting Trigger IE is set to "periodic" or to "A2event-triggered periodic".
iE-Extensions ProtocolExtensionContainer { {MDT-Configuration-ExtIEs} } OPTIONAL,
...
}
MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}|
+-- This IE shall be present if the Measurements to Activate IE has the third bit set to "1". This IE shall be present if the Measurements to Activate IE has the third bit set to "1".--
{ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}|
+-- This IE shall be present if the Measurements to Activate IE has the fourth bit set to "1". --
{ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}|
+-- This IE shall be present if the Measurements to Activate IE has the fifth bit set to "1". --
{ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}|
{ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}|
{ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}|
+-- This IE shall be present if the Measurements to Activate IE has the seventh bit set to "1". --
{ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}|
+-- This IE shall be present if the Measurements to Activate IE has the eighth bit set to "1". --
{ ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}|
{ ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional}|
{ ID id-SensorMeasurementConfiguration CRITICALITY ignore EXTENSION SensorMeasurementConfiguration PRESENCE optional},
@@ -2188,18 +2239,19 @@ NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-NRRACHReportContainer ::= OCTET STRING
+NRRAReportContainer ::= OCTET STRING
-NRRACHReportInformation ::= SEQUENCE (SIZE(1.. maxnoofRACHReports)) OF NRRACHReportList-Item
+NRRAReport ::= SEQUENCE (SIZE(1.. maxnoofRAReports)) OF NRRAReportList-Item
-NRRACHReportList-Item ::= SEQUENCE {
- nRRACHReport NRRACHReportContainer,
+NRRAReportList-Item ::= SEQUENCE {
+ nRRAReport NRRAReportContainer,
uEAssitantIdentifier SgNB-UE-X2AP-ID OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { { NRRACHReportList-Item-ExtIEs} } OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NRRAReportList-Item-ExtIEs} } OPTIONAL,
...
}
-NRRACHReportList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+NRRAReportList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-PSCellListContainer CRITICALITY ignore EXTENSION PSCellListContainer PRESENCE optional},
...
}
@@ -2327,7 +2379,7 @@ NRRadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
}
MIMOPRBusageInformation ::= SEQUENCE {
-dl-GBR-PRB-usage-for-MIMO DL-GBR-PRB-usage-for-MIMO,
+ dl-GBR-PRB-usage-for-MIMO DL-GBR-PRB-usage-for-MIMO,
ul-GBR-PRB-usage-for-MIMO UL-GBR-PRB-usage-for-MIMO,
dl-non-GBR-PRB-usage-for-MIMO DL-non-GBR-PRB-usage-for-MIMO,
ul-non-GBR-PRB-usage-for-MIMO UL-non-GBR-PRB-usage-for-MIMO,
@@ -2636,6 +2688,8 @@ PSCell-UE-HistoryInformation ::= SEQUENCE (SIZE(1.. maxnoofPSCellsPerPrimaryCell
PSCellChangeHistory ::= ENUMERATED {reportingFullHistory,...}
+PSCellListContainer ::= OCTET STRING
+
-- Q
@@ -2894,6 +2948,19 @@ RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
RRCContainer ::= OCTET STRING
+RaReportIndicationList ::= SEQUENCE (SIZE(1..maxnoofUEsforRAReportIndications)) OF RaReportIndicationList-Item
+
+RaReportIndicationList-Item ::= SEQUENCE {
+ meNB-UE-X2AP-ID UE-X2AP-ID,
+ meNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RaReportIndicationList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RaReportIndicationList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION::= {
+ ...
+}
+
-- S
S1TNLLoadIndicator ::= SEQUENCE {
@@ -3101,8 +3168,8 @@ SGNB-Addition-Trigger-Ind ::= ENUMERATED {
}
SNtriggered ::=ENUMERATED{
-true,
-...
+ true,
+ ...
}
SourceOfUEActivityBehaviourInformation ::= ENUMERATED {
@@ -3680,10 +3747,10 @@ UERadioCapability ::= OCTET STRING
UERadioCapabilityID ::= 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 [9]
+-- 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 [9]
UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING
--- This IE is a transparent container and shall be encoded as the RLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9]
+-- This IE is a transparent container and shall be encoded as the rLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9]
UESecurityCapabilities ::= SEQUENCE {
encryptionAlgorithms EncryptionAlgorithms,
diff --git a/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn b/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
index 9f5ca165..b9e767f0 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.5.0 (2023-06)
+-- 3GPP TS 36.423 V18.2.0 (2024-06)
-- 9.3.4 PDU Definitions
-- **************************************************************
--
@@ -238,7 +238,7 @@ IMPORTS
IMSvoiceEPSfallbackfrom5G,
Global-RAN-NODE-ID,
DirectForwardingPathAvailability,
- NRRACHReportInformation,
+ NRRAReport,
SCG-UE-HistoryInformation,
PSCellHistoryInformationRetrieve,
@@ -262,7 +262,9 @@ IMPORTS
SecurityResult,
TraceCollectionEntityIPAddress,
SCGreconfigNotification,
- AdditionalListofForwardingGTPTunnelEndpoint
+ AdditionalListofForwardingGTPTunnelEndpoint,
+ RaReportIndicationList,
+ IABAuthorized
@@ -623,7 +625,7 @@ FROM X2AP-Containers
id-sourceNG-RAN-node-id,
id-SourceDLForwardingIPAddress,
id-SourceNodeDLForwardingIPAddress,
- id-NRRACHReportInformation,
+ id-NRRAReport,
id-SCG-UE-HistoryInformation,
id-PSCellHistoryInformationRetrieve,
id-MeasurementResultforNRCellsPossiblyAggregated,
@@ -645,6 +647,8 @@ FROM X2AP-Containers
id-SecurityResult,
id-SCGreconfigNotification,
id-AdditionalListofForwardingGTPTunnelEndpoint,
+ id-RaReportIndicationList,
+ id-IABAuthorized,
maxCellineNB,
maxnoofBearers,
maxnoofPDCP-SN,
@@ -692,11 +696,11 @@ HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
{ ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
{ ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}|
- { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
{ ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}|
{ ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
{ ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional}|
- { ID id-CHOinformation-REQ CRITICALITY ignore TYPE CHOinformation-REQ PRESENCE optional}|
+ { ID id-CHOinformation-REQ CRITICALITY reject TYPE CHOinformation-REQ PRESENCE optional}|
{ ID id-NRV2XServicesAuthorized CRITICALITY ignore TYPE NRV2XServicesAuthorized PRESENCE optional}|
{ ID id-PC5QoSParameters CRITICALITY ignore TYPE PC5QoSParameters PRESENCE optional }|
{ ID id-IABNodeIndication CRITICALITY reject TYPE IABNodeIndication PRESENCE optional},
@@ -725,7 +729,7 @@ UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ ID id-AdditionalRRMPriorityIndex CRITICALITY ignore EXTENSION AdditionalRRMPriorityIndex PRESENCE optional}|
{ ID id-NRUESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION NRUESidelinkAggregateMaximumBitRate PRESENCE optional}|
{ ID id-UERadioCapabilityID CRITICALITY reject EXTENSION UERadioCapabilityID PRESENCE optional }|
-{ ID id-IMSvoiceEPSfallbackfrom5G CRITICALITY ignore EXTENSION IMSvoiceEPSfallbackfrom5G PRESENCE optional},
+{ ID id-IMSvoiceEPSfallbackfrom5G CRITICALITY ignore EXTENSION IMSvoiceEPSfallbackfrom5G PRESENCE optional},
...
}
@@ -876,13 +880,13 @@ HandoverReport-IEs X2AP-PROTOCOL-IES ::= {
{ 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-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- This IE shall be present if the Handover Report Type IE is set to the value "HO to wrong cell" -- |
+ { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- This IE shall be present if the Handover Report Type IE is set to the value "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}|
{ ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional}|
- { ID id-TargetCellInNGRAN CRITICALITY ignore TYPE TargetCellInNGRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "interSystemPingpong" --,
+ { ID id-TargetCellInNGRAN CRITICALITY ignore TYPE TargetCellInNGRAN PRESENCE conditional} -- This IE shall be present if the Handover Report Type IE is set to the value "Inter-system ping-pong" --,
...
}
@@ -953,7 +957,7 @@ SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}|
{ ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
{ ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
- { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional},
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional},
...
}
@@ -1020,9 +1024,9 @@ 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}|
- { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
- { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
- { ID id-CandidateCellsToBeCancelledList CRITICALITY reject TYPE CandidateCellsToBeCancelledList PRESENCE optional},
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-CandidateCellsToBeCancelledList CRITICALITY reject TYPE CandidateCellsToBeCancelledList PRESENCE optional},
...
}
@@ -1319,7 +1323,7 @@ ResourceStatusRequest ::= SEQUENCE {
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â€, “Partial stop†or to “Addâ€--
+ { 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â€, “Partial stop†or “Addâ€--
{ 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}|
@@ -2554,9 +2558,9 @@ RetrieveUEContextRequest ::= SEQUENCE {
RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
{ ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
--- Allocated at the new eNB.
--- This IE contains an Extended eNB UE X2AP ID, which, together with the New eNB UE X2AP ID IE
--- represents the eNB UE X2AP ID allocated at the new eNB.
+-- Allocated at the new eNB. --
+-- This IE contains an Extended eNB UE X2AP ID, which, together with the New eNB UE X2AP ID IE --
+-- represents the eNB UE X2AP ID allocated at the new eNB. --
{ ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}|
{ ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}|
{ ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}|
@@ -2711,7 +2715,8 @@ SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-PSCellChangeHistory CRITICALITY ignore TYPE PSCellChangeHistory PRESENCE optional}|
{ ID id-CHOinformation-AddReq CRITICALITY reject TYPE CHOinformation-AddReq PRESENCE optional}|
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional}|
- { ID id-CPAinformation-REQ CRITICALITY reject TYPE CPAinformation-REQ PRESENCE optional},
+ { ID id-CPAinformation-REQ CRITICALITY reject TYPE CPAinformation-REQ PRESENCE optional}|
+ { ID id-IABAuthorized CRITICALITY ignore TYPE IABAuthorized PRESENCE optional},
...
}
@@ -2742,10 +2747,10 @@ E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE {
full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL,
--- This IE shall be present if MCG resource and SCG resources IEs in the EN-DC Resource Configuration IE are set to “present†and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE --
+-- This IE shall be present if, for the E-RAB requested to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present", and GBR QoS Information IE is present in the Full E-RAB Level QoS Parameters IE. --
dL-Forwarding DL-Forwarding OPTIONAL,
meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL,
--- This IE shall be present if MCG resource IE in the EN-DC Resource Configuration IE is set to “present†--
+-- This IE shall be present if, for the E-RAB requested to be added, the MCG resources IE in the EN-DC Resource Configuration IE is set to the value "present". --
s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint,
iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
...
@@ -2767,7 +2772,7 @@ E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE {
secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
rlc-Mode RLCMode,
uL-Configuration ULConfiguration OPTIONAL,
--- This IE shall be present if MCG resource and SCG resources IEs in the EN-DC Resource Configuration IE are set to “present†--
+-- This IE shall be present if, for the E-RAB requested to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present". --
iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
...
}
@@ -2834,15 +2839,15 @@ E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE {
s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint,
sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
--- This IE shall be present if MCG resource IE in the EN-DC Resource Configuration IE is set to “present†--
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources IE in the EN-DC Resource Configuration IE is set to the value "present". --
rlc-Mode RLCMode OPTIONAL,
--- This IE shall be present if MCG resource IE in the EN-DC Resource Configuration IE is set to “present†--
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources IE in the EN-DC Resource Configuration IE is set to the value "present". --
dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
--- This IE shall be present if MCG resource and SCG resource IEs in the EN-DC Resource Configuration IE are set to “present†and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE --
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present", and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE. --
uL-Configuration ULConfiguration OPTIONAL,
--- This IE shall be present if MCG resource and SCG resources IEs in the EN-DC Resource Configuration IE are set to “present†--
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present". --
iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
...
}
@@ -2972,7 +2977,8 @@ SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CHOinformation-ModReq CRITICALITY ignore TYPE CHOinformation-ModReq PRESENCE optional}|
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional}|
{ ID id-CPAinformation-MOD CRITICALITY ignore TYPE CPAinformation-MOD PRESENCE optional}|
- { ID id-CPCupdate-MOD CRITICALITY ignore TYPE CPCupdate-MOD PRESENCE optional},
+ { ID id-CPCupdate-MOD CRITICALITY ignore TYPE CPCupdate-MOD PRESENCE optional}|
+ { ID id-IABAuthorized CRITICALITY ignore TYPE IABAuthorized PRESENCE optional},
...
}
@@ -3021,10 +3027,10 @@ E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE {
full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL,
--- This IE shall be present if MCG resource and SCG resources IEs in the EN-DC Resource Configuration IE are set to “present†and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE --
+-- This IE shall be present if, for the E-RAB requested to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present", and GBR QoS Information IE is present in the Full E-RAB Level QoS Parameters IE. --
dL-Forwarding DL-Forwarding OPTIONAL,
meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL,
--- This IE shall be present if MCG resource IE in the EN-DC Resource Configuration IE is set to “present†--
+-- This IE shall be present if, for the E-RAB requested to be added, the MCG resources IE in the EN-DC Resource Configuration IE is set to the value "present". --
s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint,
iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
...
@@ -3045,7 +3051,7 @@ E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE {
secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
rlc-Mode RLCMode,
uL-Configuration ULConfiguration OPTIONAL,
--- This IE shall be present if MCG resource and SCG resources IEs in the EN-DC Resource Configuration IE are set to “present†--
+-- This IE shall be present if, for the E-RAB requested to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present". --
iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
...
}
@@ -3215,15 +3221,15 @@ E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE {
s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint,
sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
--- This IE shall be present if MCG resource IE in the EN-DC Resource Configuration IE are set to “present†--
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources IE in the EN-DC Resource Configuration IE is set to the value "present". --
rlc-Mode RLCMode OPTIONAL,
--- This IE shall be present if MCG resource IE in the EN-DC Resource Configuration IE are set to “present†--
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources IE in the EN-DC Resource Configuration IE is set to the value "present". --
dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
--- This IE shall be present if MCG resource and SCG resource IEs in the EN-DC Resource Configuration IE are set to “present†and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE --
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present", and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE. --
uL-Configuration ULConfiguration OPTIONAL,
--- This IE shall be present if MCG resource and SCG resources IEs in the EN-DC Resource Configuration IE are set to “present†--
+-- This IE shall be present if, for the E-RAB admitted to be added, the MCG resources and SCG resources IEs in the EN-DC Resource Configuration IE are set to the value "present". --
iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
...
}
@@ -3853,7 +3859,7 @@ AccessAndMobilityIndication ::= SEQUENCE {
...
}
AccessAndMobilityIndication-IEs X2AP-PROTOCOL-IES ::= {
- { ID id-NRRACHReportInformation CRITICALITY ignore TYPE NRRACHReportInformation PRESENCE optional},
+ { ID id-NRRAReport CRITICALITY ignore TYPE NRRAReport PRESENCE optional},
...
}
@@ -4399,10 +4405,10 @@ ENDCResourceStatusRequest ::= SEQUENCE {
ENDCResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-UTRAN-Node1-Measurement-ID CRITICALITY reject TYPE Measurement-ID-ENDC PRESENCE mandatory }|
- { ID id-E-UTRAN-Node2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID-ENDC PRESENCE conditional}| -- The IE shall be present if the Registration Request EN-DC IE is set to “Stop†or to “Addâ€
+ { ID id-E-UTRAN-Node2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID-ENDC PRESENCE conditional}| -- This IE shall be present if the Registration Request EN-DC IE is set to the value “Stopâ€, or “Addâ€
{ ID id-Registration-Request CRITICALITY reject TYPE Registration-Request-ENDC PRESENCE mandatory }|
{ ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity-ENDC PRESENCE optional }|
- { ID id-ReportCharacteristics CRITICALITY ignore TYPE ReportCharacteristics-ENDC PRESENCE conditional}| -- The IE shall be present if the Registration Request EN-DC IE is set to “Startâ€
+ { ID id-ReportCharacteristics CRITICALITY ignore TYPE ReportCharacteristics-ENDC PRESENCE conditional}| -- This IE shall be present if the Registration Request EN-DC IE is set to the value “Startâ€
{ ID id-CellToReport-NR-ENDC CRITICALITY ignore TYPE CellToReport-NR-ENDC-List PRESENCE optional } |
{ ID id-InterfaceInstanceIndication CRITICALITY reject TYPE InterfaceInstanceIndication PRESENCE optional }|
{ ID id-CellToReport-E-UTRA-ENDC CRITICALITY ignore TYPE CellToReport-E-UTRA-ENDC-List PRESENCE optional},
@@ -5014,4 +5020,20 @@ CPC-cancel-IEs X2AP-PROTOCOL-IES ::= {
}
+-- **************************************************************
+--
+-- RACH INDICATION
+--
+-- **************************************************************
+
+RachIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ RachIndication-IEs}},
+ ...
+}
+
+RachIndication-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-RaReportIndicationList CRITICALITY reject TYPE RaReportIndicationList PRESENCE mandatory },
+ ...
+}
+
END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn b/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
index cbc5b2e5..8838f0da 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.5.0 (2023-06)
+-- 3GPP TS 36.423 V18.2.0 (2024-06)
-- 9.3.3 Elementary Procedure Definitions
-- **************************************************************
--
@@ -132,7 +132,9 @@ FROM X2AP-CommonDataTypes
UERadioCapabilityIDMappingRequest,
UERadioCapabilityIDMappingResponse,
AccessAndMobilityIndication,
- CPC-cancel
+ CPC-cancel,
+ RachIndication
+
@@ -199,7 +201,8 @@ FROM X2AP-PDU-Contents
id-f1CTrafficTransfer,
id-UERadioCapabilityIDMapping,
id-accessAndMobilityIndication,
- id-CPC-cancel
+ id-CPC-cancel,
+ id-rachIndication
@@ -285,15 +288,15 @@ X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
x2Removal |
retrieveUEContext |
sgNBAdditionPreparation |
- meNBinitiatedSgNBModificationPreparation |
+ meNBinitiatedSgNBModificationPreparation |
sgNBinitiatedSgNBModification |
- meNBinitiatedSgNBRelease |
- sgNBinitiatedSgNBRelease |
+ meNBinitiatedSgNBRelease |
+ sgNBinitiatedSgNBRelease |
sgNBChange |
endcX2Setup |
endcConfigurationUpdate |
endcCellActivation |
- endcPartialReset |
+ endcPartialReset |
eUTRANRCellResourceCoordination |
endcX2Removal |
endcresourceStatusReportingInitiation |
@@ -317,10 +320,10 @@ X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
meNBinitiatedSeNBRelease |
seNBCounterCheck |
sgNBReconfigurationCompletion |
- sgNBCounterCheck |
+ sgNBCounterCheck |
rRCTransfer |
secondaryRATDataUsageReport |
- sgNBActivityNotification |
+ sgNBActivityNotification |
dataForwardingAddressIndication |
gNBStatusIndication |
endcConfigurationTransfer |
@@ -333,7 +336,8 @@ X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
cellTrafficTrace |
f1CTrafficTransfer |
accessAndMobilityIndication |
- cPC-cancel ,
+ cPC-cancel |
+ rachIndication ,
...
}
@@ -752,4 +756,10 @@ cPC-cancel X2AP-ELEMENTARY-PROCEDURE ::= {
}
+rachIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RachIndication
+ PROCEDURE CODE id-rachIndication
+ CRITICALITY ignore
+}
+
END
diff --git a/epan/dissectors/asn1/x2ap/packet-x2ap-template.c b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
index ccae93d0..3629c8d2 100644
--- a/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
+++ b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
@@ -3,7 +3,7 @@
* X2 Application Protocol (X2AP);
* 3GPP TS 36.423 packet dissection
* Copyright 2007-2014, Anders Broman <anders.broman@ericsson.com>
- * Copyright 2016-2023, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2016-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -12,7 +12,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 36.423 V17.5.0 (2023-06)
+ * 3GPP TS 36.423 V18.2.0 (2024-06)
*/
#include "config.h"
@@ -23,6 +23,9 @@
#include <epan/prefs.h>
#include <epan/sctpppids.h>
#include <epan/proto_data.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-x2ap.h"
#include "packet-per.h"
@@ -53,138 +56,142 @@ void proto_register_x2ap(void);
#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;
-static int hf_x2ap_ReportCharacteristics_PRBPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_TNLLoadIndPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_HWLoadIndPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_CompositeAvailableCapacityPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_ABSStatusPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_RSRPMeasurementReportPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_CSIReportPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_Reserved = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_PRBPeriodic = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_TNLLoadIndPeriodic = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_HWLoadIndPeriodic = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_CompositeAvailableCapacityPeriodic = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_ABSStatusPeriodic = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_RSRPMeasurementReportPeriodic = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_CSIReportPeriodic = -1;
-static int hf_x2ap_measurementFailedReportCharacteristics_Reserved = -1;
-static int hf_x2ap_eUTRANTraceID_TraceID = -1;
-static int hf_x2ap_eUTRANTraceID_TraceRecordingSessionReference = -1;
-static int hf_x2ap_interfacesToTrace_S1_MME = -1;
-static int hf_x2ap_interfacesToTrace_X2 = -1;
-static int hf_x2ap_interfacesToTrace_Uu = -1;
-static int hf_x2ap_interfacesToTrace_F1_C = -1;
-static int hf_x2ap_interfacesToTrace_E1 = -1;
-static int hf_x2ap_interfacesToTrace_Reserved = -1;
-static int hf_x2ap_traceCollectionEntityIPAddress_IPv4 = -1;
-static int hf_x2ap_traceCollectionEntityIPAddress_IPv6 = -1;
-static int hf_x2ap_encryptionAlgorithms_EEA1 = -1;
-static int hf_x2ap_encryptionAlgorithms_EEA2 = -1;
-static int hf_x2ap_encryptionAlgorithms_EEA3 = -1;
-static int hf_x2ap_encryptionAlgorithms_Reserved = -1;
-static int hf_x2ap_integrityProtectionAlgorithms_EIA1 = -1;
-static int hf_x2ap_integrityProtectionAlgorithms_EIA2 = -1;
-static int hf_x2ap_integrityProtectionAlgorithms_EIA3 = -1;
-static int hf_x2ap_integrityProtectionAlgorithms_EIA7 = -1;
-static int hf_x2ap_integrityProtectionAlgorithms_Reserved = -1;
-static int hf_x2ap_measurementsToActivate_M1 = -1;
-static int hf_x2ap_measurementsToActivate_M2 = -1;
-static int hf_x2ap_measurementsToActivate_M3 = -1;
-static int hf_x2ap_measurementsToActivate_M4 = -1;
-static int hf_x2ap_measurementsToActivate_M5 = -1;
-static int hf_x2ap_measurementsToActivate_LoggingM1FromEventTriggered = -1;
-static int hf_x2ap_measurementsToActivate_M6 = -1;
-static int hf_x2ap_measurementsToActivate_M7 = -1;
-static int hf_x2ap_MDT_Location_Info_GNSS = -1;
-static int hf_x2ap_MDT_Location_Info_E_CID = -1;
-static int hf_x2ap_MDT_Location_Info_Reserved = -1;
-static int hf_x2ap_MDT_transmissionModes_tm1 = -1;
-static int hf_x2ap_MDT_transmissionModes_tm2 = -1;
-static int hf_x2ap_MDT_transmissionModes_tm3 = -1;
-static int hf_x2ap_MDT_transmissionModes_tm4 = -1;
-static int hf_x2ap_MDT_transmissionModes_tm6 = -1;
-static int hf_x2ap_MDT_transmissionModes_tm8 = -1;
-static int hf_x2ap_MDT_transmissionModes_tm9 = -1;
-static int hf_x2ap_MDT_transmissionModes_tm10 = -1;
-static int hf_x2ap_NRencryptionAlgorithms_NEA1 = -1;
-static int hf_x2ap_NRencryptionAlgorithms_NEA2 = -1;
-static int hf_x2ap_NRencryptionAlgorithms_NEA3 = -1;
-static int hf_x2ap_NRencryptionAlgorithms_Reserved = -1;
-static int hf_x2ap_NRintegrityProtectionAlgorithms_NIA1 = -1;
-static int hf_x2ap_NRintegrityProtectionAlgorithms_NIA2 = -1;
-static int hf_x2ap_NRintegrityProtectionAlgorithms_NIA3 = -1;
-static int hf_x2ap_NRintegrityProtectionAlgorithms_Reserved = -1;
-static int hf_x2ap_ReportCharacteristics_ENDC_PRBPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_ENDC_TNLCapacityIndPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_ENDC_CompositeAvailableCapacityPeriodic = -1;
-static int hf_x2ap_ReportCharacteristics_ENDC_NumberOfActiveUEs = -1;
-static int hf_x2ap_ReportCharacteristics_ENDC_Reserved = -1;
-static int hf_x2ap_Registration_Request_ENDC_PDU = -1;
-static int hf_x2ap_ReportingPeriodicity_ENDC_PDU = -1;
-static int hf_x2ap_ReportCharacteristics_ENDC_PDU = -1;
-static int hf_x2ap_rAT_RestrictionInformation_LEO = -1;
-static int hf_x2ap_rAT_RestrictionInformation_MEO = -1;
-static int hf_x2ap_rAT_RestrictionInformation_GEO = -1;
-static int hf_x2ap_rAT_RestrictionInformation_OTHERSAT = -1;
-static int hf_x2ap_rAT_RestrictionInformation_Reserved = -1;
+static int proto_x2ap;
+static int hf_x2ap_transportLayerAddressIPv4;
+static int hf_x2ap_transportLayerAddressIPv6;
+static int hf_x2ap_ReportCharacteristics_PRBPeriodic;
+static int hf_x2ap_ReportCharacteristics_TNLLoadIndPeriodic;
+static int hf_x2ap_ReportCharacteristics_HWLoadIndPeriodic;
+static int hf_x2ap_ReportCharacteristics_CompositeAvailableCapacityPeriodic;
+static int hf_x2ap_ReportCharacteristics_ABSStatusPeriodic;
+static int hf_x2ap_ReportCharacteristics_RSRPMeasurementReportPeriodic;
+static int hf_x2ap_ReportCharacteristics_CSIReportPeriodic;
+static int hf_x2ap_ReportCharacteristics_Reserved;
+static int hf_x2ap_measurementFailedReportCharacteristics_PRBPeriodic;
+static int hf_x2ap_measurementFailedReportCharacteristics_TNLLoadIndPeriodic;
+static int hf_x2ap_measurementFailedReportCharacteristics_HWLoadIndPeriodic;
+static int hf_x2ap_measurementFailedReportCharacteristics_CompositeAvailableCapacityPeriodic;
+static int hf_x2ap_measurementFailedReportCharacteristics_ABSStatusPeriodic;
+static int hf_x2ap_measurementFailedReportCharacteristics_RSRPMeasurementReportPeriodic;
+static int hf_x2ap_measurementFailedReportCharacteristics_CSIReportPeriodic;
+static int hf_x2ap_measurementFailedReportCharacteristics_Reserved;
+static int hf_x2ap_eUTRANTraceID_TraceID;
+static int hf_x2ap_eUTRANTraceID_TraceRecordingSessionReference;
+static int hf_x2ap_interfacesToTrace_S1_MME;
+static int hf_x2ap_interfacesToTrace_X2;
+static int hf_x2ap_interfacesToTrace_Uu;
+static int hf_x2ap_interfacesToTrace_F1_C;
+static int hf_x2ap_interfacesToTrace_E1;
+static int hf_x2ap_interfacesToTrace_Reserved;
+static int hf_x2ap_traceCollectionEntityIPAddress_IPv4;
+static int hf_x2ap_traceCollectionEntityIPAddress_IPv6;
+static int hf_x2ap_encryptionAlgorithms_EEA1;
+static int hf_x2ap_encryptionAlgorithms_EEA2;
+static int hf_x2ap_encryptionAlgorithms_EEA3;
+static int hf_x2ap_encryptionAlgorithms_Reserved;
+static int hf_x2ap_integrityProtectionAlgorithms_EIA1;
+static int hf_x2ap_integrityProtectionAlgorithms_EIA2;
+static int hf_x2ap_integrityProtectionAlgorithms_EIA3;
+static int hf_x2ap_integrityProtectionAlgorithms_EIA7;
+static int hf_x2ap_integrityProtectionAlgorithms_Reserved;
+static int hf_x2ap_measurementsToActivate_M1;
+static int hf_x2ap_measurementsToActivate_M2;
+static int hf_x2ap_measurementsToActivate_M3;
+static int hf_x2ap_measurementsToActivate_M4;
+static int hf_x2ap_measurementsToActivate_M5;
+static int hf_x2ap_measurementsToActivate_LoggingM1FromEventTriggered;
+static int hf_x2ap_measurementsToActivate_M6;
+static int hf_x2ap_measurementsToActivate_M7;
+static int hf_x2ap_MDT_Location_Info_GNSS;
+static int hf_x2ap_MDT_Location_Info_E_CID;
+static int hf_x2ap_MDT_Location_Info_Reserved;
+static int hf_x2ap_MDT_transmissionModes_tm1;
+static int hf_x2ap_MDT_transmissionModes_tm2;
+static int hf_x2ap_MDT_transmissionModes_tm3;
+static int hf_x2ap_MDT_transmissionModes_tm4;
+static int hf_x2ap_MDT_transmissionModes_tm6;
+static int hf_x2ap_MDT_transmissionModes_tm8;
+static int hf_x2ap_MDT_transmissionModes_tm9;
+static int hf_x2ap_MDT_transmissionModes_tm10;
+static int hf_x2ap_NRencryptionAlgorithms_NEA1;
+static int hf_x2ap_NRencryptionAlgorithms_NEA2;
+static int hf_x2ap_NRencryptionAlgorithms_NEA3;
+static int hf_x2ap_NRencryptionAlgorithms_Reserved;
+static int hf_x2ap_NRintegrityProtectionAlgorithms_NIA1;
+static int hf_x2ap_NRintegrityProtectionAlgorithms_NIA2;
+static int hf_x2ap_NRintegrityProtectionAlgorithms_NIA3;
+static int hf_x2ap_NRintegrityProtectionAlgorithms_Reserved;
+static int hf_x2ap_ReportCharacteristics_ENDC_PRBPeriodic;
+static int hf_x2ap_ReportCharacteristics_ENDC_TNLCapacityIndPeriodic;
+static int hf_x2ap_ReportCharacteristics_ENDC_CompositeAvailableCapacityPeriodic;
+static int hf_x2ap_ReportCharacteristics_ENDC_NumberOfActiveUEs;
+static int hf_x2ap_ReportCharacteristics_ENDC_Reserved;
+static int hf_x2ap_Registration_Request_ENDC_PDU;
+static int hf_x2ap_ReportingPeriodicity_ENDC_PDU;
+static int hf_x2ap_ReportCharacteristics_ENDC_PDU;
+static int hf_x2ap_rAT_RestrictionInformation_LEO;
+static int hf_x2ap_rAT_RestrictionInformation_MEO;
+static int hf_x2ap_rAT_RestrictionInformation_GEO;
+static int hf_x2ap_rAT_RestrictionInformation_OTHERSAT;
+static int hf_x2ap_rAT_RestrictionInformation_NR_LEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_MEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_GEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT;
#include "packet-x2ap-hf.c"
/* Initialize the subtree pointers */
-static int ett_x2ap = -1;
-static int ett_x2ap_TransportLayerAddress = -1;
-static int ett_x2ap_PLMN_Identity = -1;
-static int ett_x2ap_TargeteNBtoSource_eNBTransparentContainer = -1;
-static int ett_x2ap_RRC_Context = -1;
-static int ett_x2ap_UE_HistoryInformationFromTheUE = -1;
-static int ett_x2ap_ReportCharacteristics = -1;
-static int ett_x2ap_measurementFailedReportCharacteristics = -1;
-static int ett_x2ap_UE_RLF_Report_Container = -1;
-static int ett_x2ap_UE_RLF_Report_Container_for_extended_bands = -1;
-static int ett_x2ap_MeNBtoSeNBContainer = -1;
-static int ett_x2ap_SeNBtoMeNBContainer = -1;
-static int ett_x2ap_EUTRANTraceID = -1;
-static int ett_x2ap_InterfacesToTrace = -1;
-static int ett_x2ap_TraceCollectionEntityIPAddress = -1;
-static int ett_x2ap_EncryptionAlgorithms = -1;
-static int ett_x2ap_IntegrityProtectionAlgorithms = -1;
-static int ett_x2ap_MeasurementsToActivate = -1;
-static int ett_x2ap_MDT_Location_Info = -1;
-static int ett_x2ap_transmissionModes = -1;
-static int ett_x2ap_X2AP_Message = -1;
-static int ett_x2ap_MeNBtoSgNBContainer = -1;
-static int ett_x2ap_SgNBtoMeNBContainer = -1;
-static int ett_x2ap_RRCContainer = -1;
-static int ett_x2ap_NRencryptionAlgorithms = -1;
-static int ett_x2ap_NRintegrityProtectionAlgorithms = -1;
-static int ett_x2ap_measurementTimingConfiguration = -1;
-static int ett_x2ap_LastVisitedNGRANCellInformation = -1;
-static int ett_x2ap_LastVisitedUTRANCellInformation = -1;
-static int ett_x2ap_EndcSONConfigurationTransfer = -1;
-static int ett_x2ap_EPCHandoverRestrictionListContainer = -1;
-static int ett_x2ap_NBIoT_RLF_Report_Container = -1;
-static int ett_x2ap_anchorCarrier_NPRACHConfig = -1;
-static int ett_x2ap_anchorCarrier_EDT_NPRACHConfig = -1;
-static int ett_x2ap_anchorCarrier_Format2_NPRACHConfig = -1;
-static int ett_x2ap_anchorCarrier_Format2_EDT_NPRACHConfig = -1;
-static int ett_x2ap_non_anchorCarrier_NPRACHConfig = -1;
-static int ett_x2ap_non_anchorCarrier_Format2_NPRACHConfig = -1;
-static int ett_x2ap_anchorCarrier_NPRACHConfigTDD = -1;
-static int ett_x2ap_non_anchorCarrier_NPRACHConfigTDD = -1;
-static int ett_x2ap_Non_anchorCarrierFrequency = -1;
-static int ett_x2ap_ReportCharacteristics_ENDC = -1;
-static int ett_x2ap_TargetCellInNGRAN = -1;
-static int ett_x2ap_TDDULDLConfigurationCommonNR = -1;
-static int ett_x2ap_MDT_ConfigurationNR = -1;
-static int ett_x2ap_NRCellPRACHConfig = -1;
-static int ett_x2ap_IntendedTDD_DL_ULConfiguration_NR = -1;
-static int ett_x2ap_UERadioCapability = -1;
-static int ett_x2ap_LastVisitedPSCell_Item = -1;
-static int ett_x2ap_NRRACHReportContainer = -1;
-static int ett_x2ap_rAT_RestrictionInformation = -1;
+static int ett_x2ap;
+static int ett_x2ap_TransportLayerAddress;
+static int ett_x2ap_PLMN_Identity;
+static int ett_x2ap_TargeteNBtoSource_eNBTransparentContainer;
+static int ett_x2ap_RRC_Context;
+static int ett_x2ap_UE_HistoryInformationFromTheUE;
+static int ett_x2ap_ReportCharacteristics;
+static int ett_x2ap_measurementFailedReportCharacteristics;
+static int ett_x2ap_UE_RLF_Report_Container;
+static int ett_x2ap_UE_RLF_Report_Container_for_extended_bands;
+static int ett_x2ap_MeNBtoSeNBContainer;
+static int ett_x2ap_SeNBtoMeNBContainer;
+static int ett_x2ap_EUTRANTraceID;
+static int ett_x2ap_InterfacesToTrace;
+static int ett_x2ap_TraceCollectionEntityIPAddress;
+static int ett_x2ap_EncryptionAlgorithms;
+static int ett_x2ap_IntegrityProtectionAlgorithms;
+static int ett_x2ap_MeasurementsToActivate;
+static int ett_x2ap_MDT_Location_Info;
+static int ett_x2ap_transmissionModes;
+static int ett_x2ap_X2AP_Message;
+static int ett_x2ap_MeNBtoSgNBContainer;
+static int ett_x2ap_SgNBtoMeNBContainer;
+static int ett_x2ap_RRCContainer;
+static int ett_x2ap_NRencryptionAlgorithms;
+static int ett_x2ap_NRintegrityProtectionAlgorithms;
+static int ett_x2ap_measurementTimingConfiguration;
+static int ett_x2ap_LastVisitedNGRANCellInformation;
+static int ett_x2ap_LastVisitedUTRANCellInformation;
+static int ett_x2ap_EndcSONConfigurationTransfer;
+static int ett_x2ap_EPCHandoverRestrictionListContainer;
+static int ett_x2ap_NBIoT_RLF_Report_Container;
+static int ett_x2ap_anchorCarrier_NPRACHConfig;
+static int ett_x2ap_anchorCarrier_EDT_NPRACHConfig;
+static int ett_x2ap_anchorCarrier_Format2_NPRACHConfig;
+static int ett_x2ap_anchorCarrier_Format2_EDT_NPRACHConfig;
+static int ett_x2ap_non_anchorCarrier_NPRACHConfig;
+static int ett_x2ap_non_anchorCarrier_Format2_NPRACHConfig;
+static int ett_x2ap_anchorCarrier_NPRACHConfigTDD;
+static int ett_x2ap_non_anchorCarrier_NPRACHConfigTDD;
+static int ett_x2ap_Non_anchorCarrierFrequency;
+static int ett_x2ap_ReportCharacteristics_ENDC;
+static int ett_x2ap_TargetCellInNGRAN;
+static int ett_x2ap_TDDULDLConfigurationCommonNR;
+static int ett_x2ap_MDT_ConfigurationNR;
+static int ett_x2ap_NRCellPRACHConfig;
+static int ett_x2ap_IntendedTDD_DL_ULConfiguration_NR;
+static int ett_x2ap_UERadioCapability;
+static int ett_x2ap_LastVisitedPSCell_Item;
+static int ett_x2ap_NRRAReportContainer;
+static int ett_x2ap_rAT_RestrictionInformation;
+static int ett_x2ap_PSCellListContainer;
#include "packet-x2ap-ett.c"
/* Forward declarations */
@@ -207,9 +214,9 @@ enum{
};
struct x2ap_private_data {
- guint32 procedure_code;
- guint32 protocol_ie_id;
- guint32 message_type;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
+ uint32_t message_type;
rrc_container_type_e rrc_container_type;
e212_number_type_t number_type;
};
@@ -226,7 +233,7 @@ static const enum_val_t x2ap_rrc_context_vals[] = {
};
/* Global variables */
-static gint g_x2ap_dissect_rrc_context_as = X2AP_RRC_CONTEXT_LTE;
+static int g_x2ap_dissect_rrc_context_as = X2AP_RRC_CONTEXT_LTE;
/* Dissector tables */
static dissector_table_t x2ap_ies_dissector_table;
@@ -250,46 +257,42 @@ static const true_false_string x2ap_tfs_failed_succeeded = {
"Succeeded"
};
-static const true_false_string x2ap_tfs_interfacesToTrace = {
- "Should be traced",
- "Should not be traced"
-};
-
-static const true_false_string x2ap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
static void
-x2ap_Time_UE_StayedInCell_EnhancedGranularity_fmt(gchar *s, guint32 v)
+x2ap_Time_UE_StayedInCell_EnhancedGranularity_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fs", ((float)v)/10);
}
static void
-x2ap_handoverTriggerChange_fmt(gchar *s, guint32 v)
+x2ap_handoverTriggerChange_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%d)", ((float)v)/2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%d)", ((float)v)/2, (int32_t)v);
}
static void
-x2ap_Threshold_RSRP_fmt(gchar *s, guint32 v)
+x2ap_Threshold_RSRP_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (gint32)v-140, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (int32_t)v-140, v);
}
static void
-x2ap_Threshold_RSRQ_fmt(gchar *s, guint32 v)
+x2ap_Threshold_RSRQ_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-20, v);
}
static void
-x2ap_Packet_LossRate_fmt(gchar *s, guint32 v)
+x2ap_Packet_LossRate_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v);
}
+static void
+x2ap_cho_handover_window_duration_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%dms (%u)", v*100, v);
+}
+
static struct x2ap_private_data*
x2ap_get_private_data(packet_info *pinfo)
{
@@ -307,14 +310,14 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
{
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(pinfo);
- return (dissector_try_uint_new(x2ap_ies_dissector_table, x2ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(x2ap_ies_dissector_table, x2ap_data->protocol_ie_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_)
{
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(pinfo);
- return (dissector_try_uint_new(x2ap_extension_dissector_table, x2ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(x2ap_extension_dissector_table, x2ap_data->protocol_ie_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_)
@@ -322,7 +325,7 @@ static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, pro
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(pinfo);
x2ap_data->message_type = INITIATING_MESSAGE;
- return (dissector_try_uint_new(x2ap_proc_imsg_dissector_table, x2ap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(x2ap_proc_imsg_dissector_table, x2ap_data->procedure_code, 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_)
@@ -330,7 +333,7 @@ static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, pro
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(pinfo);
x2ap_data->message_type = SUCCESSFUL_OUTCOME;
- return (dissector_try_uint_new(x2ap_proc_sout_dissector_table, x2ap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(x2ap_proc_sout_dissector_table, x2ap_data->procedure_code, 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_)
@@ -338,7 +341,7 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(pinfo);
x2ap_data->message_type = UNSUCCESSFUL_OUTCOME;
- return (dissector_try_uint_new(x2ap_proc_uout_dissector_table, x2ap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(x2ap_proc_uout_dissector_table, x2ap_data->procedure_code, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
static int
@@ -447,23 +450,23 @@ void proto_register_x2ap(void) {
NULL, HFILL }},
{ &hf_x2ap_interfacesToTrace_S1_MME,
{ "S1-MME", "x2ap.interfacesToTrace.S1_MME",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_interfacesToTrace), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x80,
NULL, HFILL }},
{ &hf_x2ap_interfacesToTrace_X2,
{ "X2", "x2ap.interfacesToTrace.X2",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_interfacesToTrace), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x40,
NULL, HFILL }},
{ &hf_x2ap_interfacesToTrace_Uu,
{ "Uu", "x2ap.interfacesToTrace.Uu",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_interfacesToTrace), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x20,
NULL, HFILL }},
{ &hf_x2ap_interfacesToTrace_F1_C,
{ "F1-C", "x2ap.interfacesToTrace.F1_C",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_interfacesToTrace), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x10,
NULL, HFILL }},
{ &hf_x2ap_interfacesToTrace_E1,
{ "E1", "x2ap.interfacesToTrace.E1",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_interfacesToTrace), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_should_be_traced_should_not_be_traced), 0x08,
NULL, HFILL }},
{ &hf_x2ap_interfacesToTrace_Reserved,
{ "Reserved", "x2ap.interfacesToTrace.Reserved",
@@ -515,43 +518,43 @@ void proto_register_x2ap(void) {
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M1,
{ "M1", "x2ap.measurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M2,
{ "M2", "x2ap.measurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M3,
{ "M3", "x2ap.measurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M4,
{ "M4", "x2ap.measurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M5,
{ "M5", "x2ap.measurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "x2ap.measurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M6,
{ "M6", "x2ap.measurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M7,
{ "M7", "x2ap.measurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_GNSS,
{ "GNSS", "x2ap.MDT_Location_Info.GNSS",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_E_CID,
{ "E-CID", "x2ap.MDT_Location_Info.E_CID",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_Reserved,
{ "Reserved", "x2ap.MDT_Location_Info.Reserved",
@@ -669,15 +672,27 @@ void proto_register_x2ap(void) {
{ "OTHERSAT", "x2ap.rAT_RestrictionInformation.OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x10,
NULL, HFILL }},
- { &hf_x2ap_rAT_RestrictionInformation_Reserved,
- { "Reserved", "x2ap.rAT_RestrictionInformation.Reserved",
- FT_UINT8, BASE_HEX, NULL, 0x0f,
+ { &hf_x2ap_rAT_RestrictionInformation_NR_LEO,
+ { "NR-LEO", "x2ap.rAT_RestrictionInformation.NR_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x08,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_MEO,
+ { "NR-MEO", "x2ap.rAT_RestrictionInformation.NR_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_GEO,
+ { "NR-GEO", "x2ap.rAT_RestrictionInformation.NR_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT,
+ { "NR-OTHERSAT", "x2ap.rAT_RestrictionInformation.NR_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
NULL, HFILL }},
#include "packet-x2ap-hfarr.c"
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_x2ap,
&ett_x2ap_TransportLayerAddress,
&ett_x2ap_PLMN_Identity,
@@ -727,8 +742,9 @@ void proto_register_x2ap(void) {
&ett_x2ap_IntendedTDD_DL_ULConfiguration_NR,
&ett_x2ap_UERadioCapability,
&ett_x2ap_LastVisitedPSCell_Item,
- &ett_x2ap_NRRACHReportContainer,
+ &ett_x2ap_NRRAReportContainer,
&ett_x2ap_rAT_RestrictionInformation,
+ &ett_x2ap_PSCellListContainer,
#include "packet-x2ap-ettarr.c"
};
@@ -755,7 +771,7 @@ void proto_register_x2ap(void) {
prefs_register_enum_preference(x2ap_module, "dissect_rrc_context_as", "Dissect RRC Context as",
"Select whether RRC Context should be dissected as legacy LTE or NB-IOT",
- &g_x2ap_dissect_rrc_context_as, x2ap_rrc_context_vals, FALSE);
+ &g_x2ap_dissect_rrc_context_as, x2ap_rrc_context_vals, false);
}
diff --git a/epan/dissectors/asn1/x2ap/x2ap.cnf b/epan/dissectors/asn1/x2ap/x2ap.cnf
index 85488b5c..8d2152aa 100644
--- a/epan/dissectors/asn1/x2ap/x2ap.cnf
+++ b/epan/dissectors/asn1/x2ap/x2ap.cnf
@@ -86,7 +86,7 @@ PrivateIE-Field/value privateIE_Field_value
#.FN_BODY PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference
%(DEFAULT_BODY)s
- actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
+ actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
#.FN_BODY PrivateIE-Field/value
if (actx->external.direct_ref_present){
@@ -183,7 +183,10 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
&hf_x2ap_rAT_RestrictionInformation_MEO,
&hf_x2ap_rAT_RestrictionInformation_GEO,
&hf_x2ap_rAT_RestrictionInformation_OTHERSAT,
- &hf_x2ap_rAT_RestrictionInformation_Reserved,
+ &hf_x2ap_rAT_RestrictionInformation_NR_LEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_MEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_GEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_rAT_RestrictionInformation);
@@ -213,7 +216,7 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
- 32, 32, FALSE, NULL, 0, &parameter_tvb, NULL);
+ 32, 32, false, NULL, 0, &parameter_tvb, NULL);
if(parameter_tvb){
static int * const fields[] = {
@@ -352,7 +355,7 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
if (!parameter_tvb)
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_EUTRANTraceID);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, false);
proto_tree_add_item(subtree, hf_x2ap_eUTRANTraceID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_x2ap_eUTRANTraceID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN);
@@ -463,10 +466,10 @@ FiveGS-TAC TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_PLMN_Identity);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, false);
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.FN_BODY GUMMEI
struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo);
@@ -523,7 +526,7 @@ MME-Group-ID TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
}
#.TYPE_ATTR
-Time-UE-StayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Time-UE-StayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
Time-UE-StayedInCell-EnhancedGranularity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(x2ap_Time_UE_StayedInCell_EnhancedGranularity_fmt)
@@ -577,10 +580,10 @@ Threshold-RSRQ DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(x2ap_Threshold_RSRQ_fmt)
}
#.TYPE_ATTR
-ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
RSRPMeasurementResult/_item/rSRPMeasured DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(x2ap_Threshold_RSRP_fmt)
@@ -620,7 +623,7 @@ LHN-ID TYPE=FT_STRING DISPLAY = BASE_NONE
}
#.TYPE_ATTR
-ExtendedBitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+ExtendedBitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.FN_BODY NRencryptionAlgorithms VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -671,10 +674,10 @@ ExtendedBitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
}
#.TYPE_ATTR
-E-RABUsageReport-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+E-RABUsageReport-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
-E-RABUsageReport-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+E-RABUsageReport-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.FN_BODY ServedNRCell-Information/measurementTimingConfiguration VAL_PTR = &param_tvb
tvbuff_t *param_tvb = NULL;
@@ -721,13 +724,13 @@ WLANName TYPE=FT_STRING DISPLAY = BASE_NONE
#.END
#.TYPE_ATTR
-Subscription-Based-UE-DifferentiationInfo/periodicTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+Subscription-Based-UE-DifferentiationInfo/periodicTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ScheduledCommunicationTime/timeofDayStart DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ScheduledCommunicationTime/timeofDayStart DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ScheduledCommunicationTime/timeofDayEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ScheduledCommunicationTime/timeofDayEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY LastVisitedNGRANCellInformation VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -913,12 +916,12 @@ ScheduledCommunicationTime/timeofDayEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRING
dissect_f1ap_NRPRACHConfig_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
-#.FN_BODY NRRACHReportContainer VAL_PTR = &parameter_tvb
+#.FN_BODY NRRAReportContainer 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_x2ap_NRRACHReportContainer);
+ subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_NRRAReportContainer);
dissect_nr_rrc_RA_ReportList_r16_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
@@ -939,8 +942,23 @@ ScheduledCommunicationTime/timeofDayEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRING
subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_UERadioCapability);
dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
+
+#.TYPE_ATTR
+CHO-HandoverWindowStart DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.TYPE_ATTR
+CHO-HandoverWindowDuration DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(x2ap_cho_handover_window_duration_fmt)
#.END
+#.FN_BODY PSCellListContainer 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_x2ap_PSCellListContainer);
+ dissect_lte_rrc_CellIdListNR_r18_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
#.FN_HDR HandoverRequest
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest");
#.FN_HDR HandoverRequestAcknowledge
@@ -1155,6 +1173,8 @@ ScheduledCommunicationTime/timeofDayEnd DISPLAY=BASE_DEC|BASE_UNIT_STRING STRING
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AccessAndMobilityIndication");
#.FN_HDR CPC-cancel
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CPC-cancel");
+#.FN_HDR RachIndication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RachIndication");
#.ASSIGN_VALUE_TO_TYPE # X2AP does not have constants assigned to types, they are pure INTEGER
# ProcedureCode
@@ -1219,6 +1239,7 @@ id-UERadioCapabilityIDMapping ProcedureCode
id-accessAndMobilityIndication ProcedureCode
id-procedure-code-58-not-to-be-used ProcedureCode
id-CPC-cancel ProcedureCode
+id-rachIndication ProcedureCode
# ProtocolIE-ID
@@ -1626,7 +1647,7 @@ id-DirectForwardingPathAvailability ProtocolIE-ID
id-sourceNG-RAN-node-id ProtocolIE-ID
id-SourceDLForwardingIPAddress ProtocolIE-ID
id-SourceNodeDLForwardingIPAddress ProtocolIE-ID
-id-NRRACHReportInformation ProtocolIE-ID
+id-NRRAReport ProtocolIE-ID
id-SCG-UE-HistoryInformation ProtocolIE-ID
id-PSCellHistoryInformationRetrieve ProtocolIE-ID
id-MeasurementResultforNRCellsPossiblyAggregated ProtocolIE-ID
@@ -1654,6 +1675,14 @@ id-SCGreconfigNotification ProtocolIE-ID
id-MIMOPRBusageInformation ProtocolIE-ID
id-SensorMeasurementConfiguration ProtocolIE-ID
id-AdditionalListofForwardingGTPTunnelEndpoint ProtocolIE-ID
+id-M4ReportAmount ProtocolIE-ID
+id-M5ReportAmount ProtocolIE-ID
+id-M6ReportAmount ProtocolIE-ID
+id-M7ReportAmount ProtocolIE-ID
+id-CHOTimeBasedInformation ProtocolIE-ID
+id-RaReportIndicationList ProtocolIE-ID
+id-PSCellListContainer ProtocolIE-ID
+id-IABAuthorized ProtocolIE-ID
#.REGISTER
@@ -1938,7 +1967,7 @@ CellToReport-E-UTRA-ENDC-Item N x2ap.ies id-CellToReport-E-UTRA-ENDC-Item
CHO-DC-EarlyDataForwarding N x2ap.ies id-CHO-DC-EarlyDataForwarding
DirectForwardingPathAvailability N x2ap.ies id-DirectForwardingPathAvailability
Global-RAN-NODE-ID N x2ap.ies id-sourceNG-RAN-node-id
-NRRACHReportInformation N x2ap.ies id-NRRACHReportInformation
+NRRAReport N x2ap.ies id-NRRAReport
SCG-UE-HistoryInformation N x2ap.ies id-SCG-UE-HistoryInformation
PSCellHistoryInformationRetrieve N x2ap.ies id-PSCellHistoryInformationRetrieve
PSCellChangeHistory N x2ap.ies id-PSCellChangeHistory
@@ -1956,6 +1985,8 @@ CPCinformation-CONF N x2ap.ies id-CPCinformation-CONF
CPCinformation-NOTIFY N x2ap.ies id-CPCinformation-NOTIFY
CPCupdate-MOD N x2ap.ies id-CPCupdate-MOD
SCGreconfigNotification N x2ap.ies id-SCGreconfigNotification
+RaReportIndicationList N x2ap.ies id-RaReportIndicationList
+IABAuthorized N x2ap.ies id-IABAuthorized
#X2AP-PROTOCOL-EXTENSION
Number-of-Antennaports N x2ap.extension id-Number-of-Antennaports
@@ -2091,6 +2122,12 @@ RAT-Restrictions N x2ap.extension id-RAT-Restrictions
MIMOPRBusageInformation N x2ap.extension id-MIMOPRBusageInformation
SensorMeasurementConfiguration N x2ap.extension id-SensorMeasurementConfiguration
AdditionalListofForwardingGTPTunnelEndpoint N x2ap.extension id-AdditionalListofForwardingGTPTunnelEndpoint
+M4ReportAmountMDT N x2ap.extension id-M4ReportAmount
+M5ReportAmountMDT N x2ap.extension id-M5ReportAmount
+M6ReportAmountMDT N x2ap.extension id-M6ReportAmount
+M7ReportAmountMDT N x2ap.extension id-M7ReportAmount
+CHOTimeBasedInformation N x2ap.extension id-CHOTimeBasedInformation
+PSCellListContainer N x2ap.extension id-PSCellListContainer
# X2AP-PDU-Descriptions.asn Interface Elementary Procedures
#X2AP-ELEMENTARY-PROCEDURE
@@ -2259,4 +2296,6 @@ UERadioCapabilityIDMappingResponse N x2ap.proc.sout id-UERadioCapabilityIDMappi
AccessAndMobilityIndication N x2ap.proc.imsg id-accessAndMobilityIndication
CPC-cancel N x2ap.proc.imsg id-CPC-cancel
+
+RachIndication N x2ap.proc.imsg id-rachIndication
#.END
diff --git a/epan/dissectors/asn1/x509af/packet-x509af-template.c b/epan/dissectors/asn1/x509af/packet-x509af-template.c
index 314007f2..ac46594a 100644
--- a/epan/dissectors/asn1/x509af/packet-x509af-template.c
+++ b/epan/dissectors/asn1/x509af/packet-x509af-template.c
@@ -15,6 +15,7 @@
#include <epan/oids.h>
#include <epan/asn1.h>
#include <epan/strutil.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-x509af.h"
@@ -37,15 +38,15 @@ void proto_reg_handoff_x509af(void);
static dissector_handle_t pkix_crl_handle;
/* 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;
+static int proto_x509af;
+static int hf_x509af_algorithm_id;
+static int hf_x509af_extension_id;
#include "packet-x509af-hf.c"
/* Initialize the subtree pointers */
-static gint ett_pkix_crl = -1;
+static int ett_pkix_crl;
#include "packet-x509af-ett.c"
-static const char *algorithm_id = NULL;
+static const char *algorithm_id;
static void
x509af_export_publickey(tvbuff_t *tvb, asn1_ctx_t *actx, int offset, int len);
#include "packet-x509af-fn.c"
@@ -59,7 +60,7 @@ x509af_export_publickey(tvbuff_t *tvb _U_, asn1_ctx_t *actx _U_, int offset _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->data = (unsigned char *) tvb_get_ptr(tvb, offset, len);
subjectPublicKeyInfo->size = len;
actx->private_data = NULL;
}
@@ -76,7 +77,7 @@ dissect_pkix_crl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, voi
{
proto_tree *tree;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "PKIX-CRL");
@@ -85,7 +86,7 @@ dissect_pkix_crl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, voi
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);
+ return dissect_x509af_CertificateList(false, tvb, 0, &asn1_ctx, tree, -1);
}
static void
@@ -111,7 +112,7 @@ void proto_register_x509af(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_pkix_crl,
#include "packet-x509af-ettarr.c"
};
diff --git a/epan/dissectors/asn1/x509af/x509af.cnf b/epan/dissectors/asn1/x509af/x509af.cnf
index 3061ed2c..0bda7a1f 100644
--- a/epan/dissectors/asn1/x509af/x509af.cnf
+++ b/epan/dissectors/asn1/x509af/x509af.cnf
@@ -5,6 +5,9 @@
#.IMPORT ../x509if/x509if-exp.cnf
#.IMPORT ../x509sat/x509sat-exp.cnf
+#.MODULE_EXPORTS EXTERN WS_DLL
+Certificate
+
#.MODULE_EXPORTS
EXTENSION
ACPathData
@@ -14,7 +17,6 @@ AttributeCertificate
AttributeCertificateAssertion
AttributeCertificateInfo
AttributeCertificationPath
-Certificate
Certificate_PDU
Certificates
CertificateList
@@ -100,25 +102,25 @@ CertificateList/signedCertificateList/revokedCertificates/_item/userCertificate
tvbuff_t *bs_tvb = NULL;
# proto_tree *subtree;
- dissect_ber_bitstring(FALSE, actx, NULL, tvb, offset,
+ dissect_ber_bitstring(false, actx, NULL, tvb, offset,
NULL, 0, hf_index, -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);
+ 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);
+# 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);
+# offset += dissect_DHPublicKey(false, bs_tvb, 0, actx, subtree, hf_dh_y);
#
} else {
- offset = dissect_ber_bitstring(FALSE, actx, tree, tvb, offset,
+ offset = dissect_ber_bitstring(false, actx, tree, tvb, offset,
NULL, 0, hf_index, -1, NULL);
}
@@ -137,10 +139,10 @@ CertificateList/signedCertificateList/revokedCertificates/_item/userCertificate
}
#.FN_BODY Extension/extnValue
- gint8 ber_class;
+ int8_t ber_class;
bool pc, ind;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t 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);
@@ -148,11 +150,11 @@ CertificateList/signedCertificateList/revokedCertificates/_item/userCertificate
#.FN_BODY Time/utcTime
char *outstr, *newstr;
- guint32 tvblen;
+ uint32_t tvblen;
/* the 2-digit year can only be in the range 1950..2049 https://tools.ietf.org/html/rfc5280#section-4.1.2.5.1 */
offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index, &outstr, &tvblen);
- if (hf_index >= 0 && outstr) {
+ if (hf_index > 0 && outstr) {
newstr = wmem_strconcat(actx->pinfo->pool, outstr[0] < '5' ? "20": "19", outstr, NULL);
proto_tree_add_string(tree, hf_index, tvb, offset - tvblen, tvblen, newstr);
}
diff --git a/epan/dissectors/asn1/x509ce/packet-x509ce-template.c b/epan/dissectors/asn1/x509ce/packet-x509ce-template.c
index 1817c428..19064a89 100644
--- a/epan/dissectors/asn1/x509ce/packet-x509ce-template.c
+++ b/epan/dissectors/asn1/x509ce/packet-x509ce-template.c
@@ -14,6 +14,7 @@
#include <epan/packet.h>
#include <epan/asn1.h>
#include <epan/oids.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-x509ce.h"
@@ -30,12 +31,15 @@ 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_ipv4 = -1;
-static int hf_x509ce_IPAddress_ipv6 = -1;
+static int proto_x509ce;
+static int hf_x509ce_id_ce_invalidityDate;
+static int hf_x509ce_id_ce_baseUpdateTime;
+static int hf_x509ce_object_identifier_id;
+static int hf_x509ce_IPAddress_ipv4;
+static int hf_x509ce_IPAddress_ipv4_mask;
+static int hf_x509ce_IPAddress_ipv6;
+static int hf_x509ce_IPAddress_ipv6_mask;
+static int hf_x509ce_IPAddress_unknown;
#include "packet-x509ce-hf.c"
/* Initialize the subtree pointers */
@@ -87,17 +91,17 @@ 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);
+ 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);
+ 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);
+ 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 ----------------------------------------------*/
@@ -119,15 +123,24 @@ void proto_register_x509ce(void) {
{ &hf_x509ce_IPAddress_ipv4,
{ "iPAddress", "x509ce.IPAddress.ipv4", FT_IPv4, BASE_NONE, NULL, 0,
"IPv4 address", HFILL }},
+ { &hf_x509ce_IPAddress_ipv4_mask,
+ { "iPAddress Mask", "x509ce.IPAddress.ipv4_mask", FT_IPv4, BASE_NONE, NULL, 0,
+ "IPv4 address Mask", HFILL }},
{ &hf_x509ce_IPAddress_ipv6,
{ "iPAddress", "x509ce.IPAddress.ipv6", FT_IPv6, BASE_NONE, NULL, 0,
"IPv6 address", HFILL }},
+ { &hf_x509ce_IPAddress_ipv6_mask,
+ { "iPAddress Mask", "x509ce.IPAddress.ipv6_mask", FT_IPv6, BASE_NONE, NULL, 0,
+ "IPv6 address Mask", HFILL }},
+ { &hf_x509ce_IPAddress_unknown,
+ { "iPAddress", "x509ce.IPAddress.unknown", FT_BYTES, BASE_NONE, NULL, 0,
+ "Unknown Address", HFILL }},
#include "packet-x509ce-hfarr.c"
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-x509ce-ettarr.c"
};
diff --git a/epan/dissectors/asn1/x509ce/x509ce.cnf b/epan/dissectors/asn1/x509ce/x509ce.cnf
index ae0090a7..758d7a94 100644
--- a/epan/dissectors/asn1/x509ce/x509ce.cnf
+++ b/epan/dissectors/asn1/x509ce/x509ce.cnf
@@ -178,15 +178,32 @@ EnhancedCertificateAssertion/pathToName enhancedPathToName
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
#.FN_BODY GeneralName/iPAddress
- switch (tvb_reported_length(tvb)) {
+ uint32_t len = tvb_reported_length(tvb);
+ switch (len) {
case 4: /* IPv4 */
proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv4, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
break;
+ case 8: /* IPv4 + Mask*/
+ proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv4, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv4_mask, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ break;
case 16: /* IPv6 */
proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv6, tvb, offset, 16, ENC_NA);
offset += 16;
break;
+ case 32: /* IPv6 + Mask */
+ proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv6, tvb, offset, 16, ENC_NA);
+ offset += 16;
+ proto_tree_add_item(tree, hf_x509ce_IPAddress_ipv6_mask, tvb, offset, 16, ENC_NA);
+ offset += 16;
+ break;
+ default: /* Unknown */
+ proto_tree_add_item(tree, hf_x509ce_IPAddress_unknown, tvb, offset, len, ENC_NA);
+ offset += len;
+ break;
}
#.FN_PARS OtherNameType
diff --git a/epan/dissectors/asn1/x509if/packet-x509if-template.c b/epan/dissectors/asn1/x509if/packet-x509if-template.c
index bce87917..aa8e2797 100644
--- a/epan/dissectors/asn1/x509if/packet-x509if-template.c
+++ b/epan/dissectors/asn1/x509if/packet-x509if-template.c
@@ -16,6 +16,7 @@
#include <epan/asn1.h>
#include <epan/proto_data.h>
#include <epan/strutil.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-dap.h"
@@ -31,29 +32,29 @@ 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;
+static int proto_x509if;
+static int hf_x509if_object_identifier_id;
+static int hf_x509if_any_string;
#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 proto_tree *top_of_dn;
+static proto_tree *top_of_rdn;
-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;
+static bool rdn_one_value; /* have we seen one value in an RDN yet */
+static bool dn_one_rdn; /* have we seen one RDN in a DN yet */
+static bool doing_attr;
-static wmem_strbuf_t *last_dn_buf = NULL;
-static wmem_strbuf_t *last_rdn_buf = NULL;
+static wmem_strbuf_t *last_dn_buf;
+static wmem_strbuf_t *last_rdn_buf;
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 char *last_ava;
static void
x509if_frame_end(void)
@@ -61,9 +62,9 @@ x509if_frame_end(void)
top_of_dn = NULL;
top_of_rdn = NULL;
- rdn_one_value = FALSE;
- dn_one_rdn = FALSE;
- doing_attr = FALSE;
+ rdn_one_value = false;
+ dn_one_rdn = false;
+ doing_attr = false;
last_dn_buf = NULL;
last_rdn_buf = NULL;
@@ -77,7 +78,7 @@ const char * x509if_get_last_dn(void)
return last_dn_buf ? wmem_strbuf_get_str(last_dn_buf) : NULL;
}
-gboolean x509if_register_fmt(int hf_index, const gchar *fmt)
+bool x509if_register_fmt(int hf_index, const char *fmt)
{
static int idx = 0;
@@ -91,10 +92,10 @@ gboolean x509if_register_fmt(int hf_index, const gchar *fmt)
fmt_vals[idx].value = 0;
fmt_vals[idx].strptr = NULL;
- return TRUE;
+ return true;
} else
- return FALSE; /* couldn't register it */
+ return false; /* couldn't register it */
}
@@ -119,7 +120,7 @@ void proto_register_x509if(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-x509if-ettarr.c"
};
diff --git a/epan/dissectors/asn1/x509if/packet-x509if-template.h b/epan/dissectors/asn1/x509if/packet-x509if-template.h
index c01f2d7b..12522703 100644
--- a/epan/dissectors/asn1/x509if/packet-x509if-template.h
+++ b/epan/dissectors/asn1/x509if/packet-x509if-template.h
@@ -16,7 +16,7 @@
extern const char * x509if_get_last_dn(void);
-extern gboolean x509if_register_fmt(int hf_index, const gchar *fmt);
+extern bool x509if_register_fmt(int hf_index, const char *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
index 6a9f654e..4ab03993 100644
--- a/epan/dissectors/asn1/x509if/x509if.cnf
+++ b/epan/dissectors/asn1/x509if/x509if.cnf
@@ -235,7 +235,7 @@ DistinguishedName B "2.16.840.1.101.2.2.1.188" "id-at-primaryMember"
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);
+ 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 .... */
@@ -328,7 +328,7 @@ DistinguishedName B "2.16.840.1.101.2.2.1.188" "id-at-primaryMember"
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
#.FN_BODY RelativeDistinguishedName
- rdn_one_value = FALSE;
+ rdn_one_value = false;
top_of_rdn = tree;
last_rdn_buf = wmem_strbuf_new(actx->pinfo->pool, "");
register_frame_end_routine (actx->pinfo, x509if_frame_end);
@@ -367,12 +367,12 @@ DistinguishedName B "2.16.840.1.101.2.2.1.188" "id-at-primaryMember"
%(DEFAULT_BODY)s
- rdn_one_value = TRUE;
+ rdn_one_value = true;
#.FN_BODY RDNSequence
const char *fmt;
- dn_one_rdn = FALSE; /* reset */
+ dn_one_rdn = false; /* reset */
last_dn_buf = wmem_strbuf_new(actx->pinfo->pool, "");
top_of_dn = NULL;
register_frame_end_routine (actx->pinfo, x509if_frame_end);
@@ -399,7 +399,7 @@ DistinguishedName B "2.16.840.1.101.2.2.1.188" "id-at-primaryMember"
%(DEFAULT_BODY)s
- dn_one_rdn = TRUE;
+ dn_one_rdn = true;
#.FN_BODY AttributeValueAssertion
@@ -412,7 +412,7 @@ DistinguishedName B "2.16.840.1.101.2.2.1.188" "id-at-primaryMember"
ava_hf_index=-1;
#.FN_BODY Attribute
- doing_attr = TRUE;
+ doing_attr = true;
register_frame_end_routine (actx->pinfo, x509if_frame_end);
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/x509sat/packet-x509sat-template.c b/epan/dissectors/asn1/x509sat/packet-x509sat-template.c
index c32c5b08..41e9b402 100644
--- a/epan/dissectors/asn1/x509sat/packet-x509sat-template.c
+++ b/epan/dissectors/asn1/x509sat/packet-x509sat-template.c
@@ -16,6 +16,7 @@
#include <epan/asn1.h>
#include <epan/proto_data.h>
#include <epan/strutil.h>
+#include <wsutil/array.h>
#include "packet-ber.h"
#include "packet-p1.h"
@@ -30,7 +31,7 @@ void proto_register_x509sat(void);
void proto_reg_handoff_x509sat(void);
/* Initialize the protocol and registered fields */
-static int proto_x509sat = -1;
+static int proto_x509sat;
#include "packet-x509sat-hf.c"
/* Initialize the subtree pointers */
@@ -48,7 +49,7 @@ void proto_register_x509sat(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
#include "packet-x509sat-ettarr.c"
};
diff --git a/epan/dissectors/asn1/x509sat/x509sat.cnf b/epan/dissectors/asn1/x509sat/x509sat.cnf
index e139e092..8195b9f8 100644
--- a/epan/dissectors/asn1/x509sat/x509sat.cnf
+++ b/epan/dissectors/asn1/x509sat/x509sat.cnf
@@ -183,6 +183,8 @@ 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"
+DirectoryString B "2.5.4.97" "id-at-organizationIdentifier"
+
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"
@@ -376,27 +378,27 @@ XDayOf/fifth fifth_dayof
#.FN_BODY SyntaxUTCTime
char *outstr, *newstr;
- guint32 tvblen;
+ uint32_t tvblen;
/* the 2-digit year can only be in the range 1950..2049 https://tools.ietf.org/html/rfc5280#section-4.1.2.5.1 */
offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index, &outstr, &tvblen);
- if (hf_index >= 0 && outstr) {
+ if (hf_index > 0 && outstr) {
newstr = wmem_strconcat(actx->pinfo->pool, outstr[0] < '5' ? "20": "19", outstr, NULL);
proto_tree_add_string(tree, hf_index, tvb, offset - tvblen, tvblen, newstr);
}
#.FN_BODY GUID
- gint8 ber_class;
+ int8_t ber_class;
bool pc;
- gint32 tag;
- guint32 len;
+ int32_t tag;
+ uint32_t 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);
+ int32_t remaining=tvb_reported_length_remaining(tvb, offset);
len=remaining>0 ? remaining : 0;
}
diff --git a/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn
index 84fc1ec4..37f3d09c 100644
--- a/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.5.0 (2023-06)
+-- 3GPP TS 38.423 V18.2.0 (2024-06)
-- 9.3.6 Common definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/xnap/XnAP-Constants.asn b/epan/dissectors/asn1/xnap/XnAP-Constants.asn
index 27da94af..91789e58 100644
--- a/epan/dissectors/asn1/xnap/XnAP-Constants.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.5.0 (2023-06)
+-- 3GPP TS 38.423 V18.2.0 (2024-06)
-- 9.3.7 Constant definitions
-- **************************************************************
--
@@ -57,13 +57,13 @@ id-traceStart ProcedureCode ::= 28
id-handoverSuccess ProcedureCode ::= 29
id-conditionalHandoverCancel ProcedureCode ::= 30
id-earlyStatusTransfer ProcedureCode ::= 31
-id-failureIndication ProcedureCode ::= 32
+id-failureIndication ProcedureCode ::= 32
id-handoverReport ProcedureCode ::= 33
id-resourceStatusReportingInitiation ProcedureCode ::= 34
id-resourceStatusReporting ProcedureCode ::= 35
id-mobilitySettingsChange ProcedureCode ::= 36
id-accessAndMobilityIndication ProcedureCode ::= 37
-id-cellTrafficTrace ProcedureCode ::= 38
+id-cellTrafficTrace ProcedureCode ::= 38
id-RANMulticastGroupPaging ProcedureCode ::= 39
id-scgFailureInformationReport ProcedureCode ::= 40
id-ProcedureCode41-NotToBeUsed ProcedureCode ::= 41
@@ -75,6 +75,9 @@ id-iABResourceCoordination ProcedureCode ::= 46
id-retrieveUEContextConfirm ProcedureCode ::= 47
id-cPCCancel ProcedureCode ::= 48
id-partialUEContextTransfer ProcedureCode ::= 49
+id-rachIndication ProcedureCode ::= 50
+id-dataCollectionReportingInitiation ProcedureCode ::= 51
+id-dataCollectionReporting ProcedureCode ::= 52
@@ -104,7 +107,7 @@ maxnoofEUTRABPLMNs INTEGER ::= 6
maxnoofEPLMNs INTEGER ::= 15
maxnoofExtSliceItems INTEGER ::= 65535
maxnoofEPLMNsplus1 INTEGER ::= 16
-maxnoofForbiddenTACs INTEGER ::= 4096
+maxnoofForbiddenTACs INTEGER ::= 4096
maxnoofFreqforMDT INTEGER ::= 8
maxnoofMBSFNEUTRA INTEGER ::= 8
maxnoofMDTPLMNs INTEGER ::= 16
@@ -130,7 +133,7 @@ maxnoofsupportedPLMNs INTEGER ::= 12
maxnoofsupportedTACs INTEGER ::= 256
maxnoofTAforMDT INTEGER ::= 8
maxnoofTAI INTEGER ::= 16
-maxnoofTAIsinAoI INTEGER ::= 16
+maxnoofTAIsinAoI INTEGER ::= 16
maxnooftimeperiods INTEGER ::= 2
maxnoofTNLAssociations INTEGER ::= 32
maxnoofUEContexts INTEGER ::= 8192
@@ -142,7 +145,7 @@ maxnoofGTPTLAs INTEGER ::= 16
maxnoofCHOcells INTEGER ::= 8
maxnoofPC5QoSFlows INTEGER ::= 2064
maxnoofSSBAreas INTEGER ::= 64
-maxnoofRACHReports INTEGER ::= 64
+maxnoofRAReports INTEGER ::= 64
maxnoofNRSCSs INTEGER ::= 5
maxnoofPhysicalResourceBlocks INTEGER ::= 275
maxnoofAdditionalPDCPDuplicationTNL INTEGER ::= 2
@@ -155,12 +158,12 @@ maxnoofUEIDIndicesforMBSPaging INTEGER ::= 4096
maxnoofMBSQoSFlows INTEGER ::= 64
maxnoofMRBs INTEGER ::= 32
maxnoofCellsforMBS INTEGER ::= 8192
-maxnoofMBSServiceAreaInformation INTEGER ::= 256
-maxnoofTAIforMBS INTEGER ::= 1024
+maxnoofMBSServiceAreaInformation INTEGER ::= 256
+maxnoofTAIforMBS INTEGER ::= 1024
maxnoofAssociatedMBSSessions INTEGER ::= 32
maxnoofMBSSessions INTEGER ::= 256
maxnoofSuccessfulHOReports INTEGER ::= 64
-maxnoofPSCellsPerSN INTEGER ::= 8
+maxnoofPSCellsPerSN INTEGER ::= 8
maxnoofNR-UChannelIDs INTEGER ::= 16
maxnoofCellsinCHO INTEGER ::= 8
maxnoofCHOexecutioncond INTEGER ::= 2
@@ -178,7 +181,7 @@ maxnoofRBsetsPerCell INTEGER ::= 8
maxnoofRBsetsPerCell1 INTEGER ::= 7
maxnoofChildIABNodes INTEGER ::= 1024
maxnoofPSCellCandidates INTEGER ::= 8
-maxnoofTargetSNs INTEGER ::= 8
+maxnoofTargetSNs INTEGER ::= 8
maxnoofUEAppLayerMeas INTEGER ::= 16
maxnoofSNSSAIforQMC INTEGER ::= 16
maxnoofCellIDforQMC INTEGER ::= 32
@@ -194,6 +197,23 @@ maxnoofSMBR INTEGER ::= 8
maxnoofNSAGs INTEGER ::= 256
maxnoofTargetSNsMinusOne INTEGER ::= 7
maxnoofThresholdsForExcessPacketDelay INTEGER ::= 255
+maxnoofESNPNs INTEGER ::= 15
+maxnoofSuccessfulPSCellChangeReports INTEGER ::= 64
+maxnoofUEsforRAReportIndications INTEGER ::= 64
+maxnoofPSCellsinCPAC INTEGER ::= 8
+maxnoofCPACexecutioncond INTEGER ::= 2
+maxnoofLBTFailureInformation INTEGER ::= 64
+maxnoofCellsTrajectoryPredict INTEGER ::= 16
+maxnoofCellsTrajectory INTEGER ::= 16
+maxFailedCellMeasObjects INTEGER ::= 124
+maxFailedMeasPerNode INTEGER ::= 124
+maxnoofUEReports INTEGER ::= 16
+maxnoofCandidateRelayUEs INTEGER ::= 32
+maxnoofCAGforMDT INTEGER ::= 256
+maxnoofMDTSNPNs INTEGER ::= 16
+maxnoofSecurityConfigurations INTEGER ::= 8
+maxnoofRSPPQoSFlows INTEGER ::= 2048
+
-- **************************************************************
--
@@ -294,12 +314,12 @@ id-UEIdentityIndexValue ProtocolIE-ID ::= 89
id-UERANPagingIdentity ProtocolIE-ID ::= 90
id-UESecurityCapabilities ProtocolIE-ID ::= 91
id-UserPlaneTrafficActivityReport ProtocolIE-ID ::= 92
-id-XnRemovalThreshold ProtocolIE-ID ::= 93
+id-XnRemovalThreshold ProtocolIE-ID ::= 93
id-DesiredActNotificationLevel ProtocolIE-ID ::= 94
-id-AvailableDRBIDs ProtocolIE-ID ::= 95
-id-AdditionalDRBIDs ProtocolIE-ID ::= 96
+id-AvailableDRBIDs ProtocolIE-ID ::= 95
+id-AdditionalDRBIDs ProtocolIE-ID ::= 96
id-SpareDRBIDs ProtocolIE-ID ::= 97
-id-RequiredNumberOfDRBIDs ProtocolIE-ID ::= 98
+id-RequiredNumberOfDRBIDs ProtocolIE-ID ::= 98
id-TNLA-To-Add-List ProtocolIE-ID ::= 99
id-TNLA-To-Update-List ProtocolIE-ID ::= 100
id-TNLA-To-Remove-List ProtocolIE-ID ::= 101
@@ -341,7 +361,7 @@ id-CNTypeRestrictionsForEquivalent ProtocolIE-ID ::= 135
id-CNTypeRestrictionsForServing ProtocolIE-ID ::= 136
id-DRBs-transferred-to-MN ProtocolIE-ID ::= 137
id-ULForwardingProposal ProtocolIE-ID ::= 138
-id-EndpointIPAddressAndPort ProtocolIE-ID ::= 139
+id-EndpointIPAddressAndPort ProtocolIE-ID ::= 139
id-IntendedTDD-DL-ULConfiguration-NR ProtocolIE-ID ::= 140
id-TNLConfigurationInfo ProtocolIE-ID ::= 141
id-PartialListIndicator-NR ProtocolIE-ID ::= 142
@@ -378,7 +398,7 @@ id-NRUESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 172
id-PC5QoSParameters ProtocolIE-ID ::= 173
id-AlternativeQoSParaSetList ProtocolIE-ID ::= 174
id-CurrentQoSParaSetIndex ProtocolIE-ID ::= 175
-id-MobilityInformation ProtocolIE-ID ::= 176
+id-MobilityInformation ProtocolIE-ID ::= 176
id-InitiatingCondition-FailureIndication ProtocolIE-ID ::= 177
id-UEHistoryInformationFromTheUE ProtocolIE-ID ::= 178
id-HandoverReportType ProtocolIE-ID ::= 179
@@ -407,7 +427,7 @@ id-ULCarrierList ProtocolIE-ID ::= 201
id-FrequencyShift7p5khz ProtocolIE-ID ::= 202
id-SSB-PositionsInBurst ProtocolIE-ID ::= 203
id-NRCellPRACHConfig ProtocolIE-ID ::= 204
-id-RACHReportInformation ProtocolIE-ID ::= 205
+id-RAReport ProtocolIE-ID ::= 205
id-IABNodeIndication ProtocolIE-ID ::= 206
id-Redundant-UL-NG-U-TNLatUPF ProtocolIE-ID ::= 207
id-CNPacketDelayBudgetDownlink ProtocolIE-ID ::= 208
@@ -445,7 +465,7 @@ id-QoSFlowsMappedtoDRB-SetupResponse-MNterminated ProtocolIE-ID ::=
id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 240
id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 241
id-SFN-Offset ProtocolIE-ID ::= 242
-id-QoSMonitoringDisabled ProtocolIE-ID ::= 243
+id-QoSMonitoringDisabled ProtocolIE-ID ::= 243
id-ExtendedUEIdentityIndexValue ProtocolIE-ID ::= 244
id-EUTRAPagingeDRXInformation ProtocolIE-ID ::= 245
id-CHO-MRDC-EarlyDataForwarding ProtocolIE-ID ::= 246
@@ -459,7 +479,7 @@ id-DirectForwardingPathAvailability ProtocolIE-ID ::= 253
id-SourceNG-RAN-node-ID ProtocolIE-ID ::= 254
id-SourceDLForwardingIPAddress ProtocolIE-ID ::= 255
id-SourceNodeDLForwardingIPAddress ProtocolIE-ID ::= 256
-id-ExtendedReportIntervalMDT ProtocolIE-ID ::= 257
+id-ExtendedReportIntervalMDT ProtocolIE-ID ::= 257
id-SecurityIndication ProtocolIE-ID ::= 258
id-RRCConnReestab-Indicator ProtocolIE-ID ::= 259
id-TargetNodeID ProtocolIE-ID ::= 260
@@ -542,7 +562,7 @@ id-CPACInformationModRequired ProtocolIE-ID ::= 336
id-QMCConfigInfo ProtocolIE-ID ::= 337
id-ProtocolIE-ID338-NotToBeUsed ProtocolIE-ID ::= 338
id-Additional-Measurement-Timing-Configuration-List ProtocolIE-ID ::= 339
-id-PDUSession-PairID ProtocolIE-ID ::= 340
+id-PDUSession-PairID ProtocolIE-ID ::= 340
id-Local-NG-RAN-Node-Identifier ProtocolIE-ID ::= 341
id-Neighbour-NG-RAN-Node-List ProtocolIE-ID ::= 342
id-Local-NG-RAN-Node-Identifier-Removal ProtocolIE-ID ::= 343
@@ -551,7 +571,7 @@ id-FiveGProSePC5QoSParameters ProtocolIE-ID ::= 345
id-FiveGProSeUEPC5AggregateMaximumBitRate ProtocolIE-ID ::= 346
id-ServedCellSpecificInfoReq-NR ProtocolIE-ID ::= 347
id-NRPagingeDRXInformation ProtocolIE-ID ::= 348
-id-NRPagingeDRXInformationforRRCINACTIVE ProtocolIE-ID ::= 349
+id-NRPagingeDRXInformationforRRCINACTIVE ProtocolIE-ID ::= 349
id-Redcap-Bcast-Information ProtocolIE-ID ::= 350
id-SDTSupportRequest ProtocolIE-ID ::= 351
id-SDT-SRB-between-NewNode-OldNode ProtocolIE-ID ::= 352
@@ -560,7 +580,7 @@ id-SDTPartialUEContextInfo ProtocolIE-ID ::= 354
id-SDTDataForwardingDRBList ProtocolIE-ID ::= 355
id-PagingCause ProtocolIE-ID ::= 356
id-PEIPSassistanceInformation ProtocolIE-ID ::= 357
-id-UESliceMaximumBitRateList ProtocolIE-ID ::= 358
+id-UESliceMaximumBitRateList ProtocolIE-ID ::= 358
id-S-NG-RANnodeUE-Slice-MBR ProtocolIE-ID ::= 359
id-PositioningInformation ProtocolIE-ID ::= 360
id-UEAssistantIdentifier ProtocolIE-ID ::= 361
@@ -570,11 +590,110 @@ id-TAINSAGSupportList ProtocolIE-ID ::= 364
id-SCGreconfigNotification ProtocolIE-ID ::= 365
id-earlyMeasurement ProtocolIE-ID ::= 366
id-BeamMeasurementsReportConfiguration ProtocolIE-ID ::= 367
-id-CoverageModificationCause ProtocolIE-ID ::= 368
+id-CoverageModificationCause ProtocolIE-ID ::= 368
id-AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated ProtocolIE-ID ::= 369
id-UERLFReportContainerLTEExtension ProtocolIE-ID ::= 370
id-ExcessPacketDelayThresholdConfiguration ProtocolIE-ID ::= 371
id-HashedUEIdentityIndexValue ProtocolIE-ID ::= 372
+id-QosFlowMappingIndication ProtocolIE-ID ::= 373
+id-Full-and-Short-I-RNTI-Profile-List ProtocolIE-ID ::= 374
+id-MBS-DataForwarding-Indicator ProtocolIE-ID ::= 375
+id-IABAuthorizationStatus ProtocolIE-ID ::= 376
+id-EquivalentSNPNs ProtocolIE-ID ::= 377
+id-SelectedNID ProtocolIE-ID ::= 378
+id-MT-SDT-Information ProtocolIE-ID ::= 379
+id-PosPartialUEContextInfo ProtocolIE-ID ::= 380
+id-SRSConfiguration ProtocolIE-ID ::= 381
+id-CHOTimeBasedInformation ProtocolIE-ID ::= 382
+id-ChannelOccupancyTimePercentageUL ProtocolIE-ID ::= 383
+id-EnergyDetectionThresholdUL ProtocolIE-ID ::= 384
+id-SuccessfulPSCellChangeReportInformation ProtocolIE-ID ::= 385
+id-PSCellListContainer ProtocolIE-ID ::= 386
+id-RadioResourceStatusNR-U ProtocolIE-ID ::= 387
+id-CPACConfiguration ProtocolIE-ID ::= 388
+id-RaReportIndicationList ProtocolIE-ID ::= 389
+id-SPRAvailability ProtocolIE-ID ::= 390
+id-DLLBTFailureInformationRequest ProtocolIE-ID ::= 391
+id-DLLBTFailureInformationList ProtocolIE-ID ::= 392
+id-TargetCellCRNTI ProtocolIE-ID ::= 393
+id-TimeSinceFailure ProtocolIE-ID ::= 394
+id-AerialUESubscriptionInformation ProtocolIE-ID ::= 395
+id-LTEA2XServicesAuthorized ProtocolIE-ID ::= 396
+id-NRA2XServicesAuthorized ProtocolIE-ID ::= 397
+id-LTEA2XUEPC5AggregateMaximumBitRate ProtocolIE-ID ::= 398
+id-NRA2XUEPC5AggregateMaximumBitRate ProtocolIE-ID ::= 399
+id-A2XPC5QoSParameters ProtocolIE-ID ::= 400
+id-CellBasedUETrajectoryPrediction ProtocolIE-ID ::= 401
+id-DataCollectionID ProtocolIE-ID ::= 402
+id-RequestedPredictionTime ProtocolIE-ID ::= 403
+id-NodeMeasurementInitiationResult-List ProtocolIE-ID ::= 404
+id-CellMeasurementInitiationResult-List ProtocolIE-ID ::= 405
+id-UEAssociatedInfoResult-List ProtocolIE-ID ::= 406
+id-ProtocolIE-ID-407-not-to-be-used ProtocolIE-ID ::= 407
+id-UETrajectoryCollectionConfiguration ProtocolIE-ID ::= 408
+id-UEPerformanceCollectionConfiguration ProtocolIE-ID ::= 409
+id-CellMeasurementResultForDataCollection-List ProtocolIE-ID ::= 410
+id-CellToReportForDataCollection-List ProtocolIE-ID ::= 411
+id-FiveGProSeLayer2Multipath ProtocolIE-ID ::= 412
+id-FiveGProSeLayer2UEtoUERelay ProtocolIE-ID ::= 413
+id-FiveGProSeLayer2UEtoUERemote ProtocolIE-ID ::= 414
+id-CandidateRelayUEInfoList ProtocolIE-ID ::= 415
+id-NRCellsAndSSBsList ProtocolIE-ID ::= 416
+id-ActivatedNRCellsAndSSBsList ProtocolIE-ID ::= 417
+id-ClockQualityReportingControlInfo ProtocolIE-ID ::= 418
+id-CapabilityForBATAdaptation ProtocolIE-ID ::= 419
+id-PNI-NPN-AreaScopeofMDT ProtocolIE-ID ::= 420
+id-PNI-NPNBasedMDT ProtocolIE-ID ::= 421
+id-SNPN-CellBasedMDT ProtocolIE-ID ::= 422
+id-SNPN-TAIBasedMDT ProtocolIE-ID ::= 423
+id-SNPN-BasedMDT ProtocolIE-ID ::= 424
+id-S-CPAC-Request ProtocolIE-ID ::= 425
+id-S-CPAC-Request-Info ProtocolIE-ID ::= 426
+id-S-CPAC-ReferenceConfigRequest ProtocolIE-ID ::= 427
+id-S-CPAC-InterSN-ExecutionNotify ProtocolIE-ID ::= 428
+id-S-CPAC-dataforwardinginfofromSource ProtocolIE-ID ::= 429
+id-CPACcandidatePSCells-wotherInfo-list ProtocolIE-ID ::= 430
+id-eRedcap-Bcast-Information ProtocolIE-ID ::= 431
+id-NRPagingLongeDRXInformationforRRCINACTIVE ProtocolIE-ID ::= 432
+id-MBS-AssistanceInformation ProtocolIE-ID ::= 433
+id-QMCCoordinationRequest ProtocolIE-ID ::= 434
+id-QMCCoordinationResponse ProtocolIE-ID ::= 435
+id-QoE-Measurement-Results ProtocolIE-ID ::= 436
+id-MBSCommServiceType ProtocolIE-ID ::= 437
+id-AssistanceInformationQoE-Meas ProtocolIE-ID ::= 438
+id-ProtocolIE-ID-439-not-to-be-used ProtocolIE-ID ::= 439
+id-QoERVQoEReportingPaths ProtocolIE-ID ::= 440
+id-Src-SN-to-Tgt-SNQMCInfoInquiry ProtocolIE-ID ::= 441
+id-DirectForwardingPathAvailabilityWithSourceMN ProtocolIE-ID ::= 442
+id-CHO-Maxnoof-CondReconfig ProtocolIE-ID ::= 443
+id-accessed-PSCellID ProtocolIE-ID ::= 444
+id-conditional-Reconfig-ToCancel-List ProtocolIE-ID ::= 445
+id-CHOinformation-AddReqAck ProtocolIE-ID ::= 446
+id-CHO-CPAC-Info ProtocolIE-ID ::= 447
+id-PDUSetQoSParameters ProtocolIE-ID ::= 448
+id-N6JitterInformation ProtocolIE-ID ::= 449
+id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID ::= 450
+id-PDUSetbasedHandlingIndicator ProtocolIE-ID ::= 451
+id-TAISliceUnavailableCellList ProtocolIE-ID ::= 452
+id-MobileIAB-AuthorizationStatus ProtocolIE-ID ::= 453
+id-MIAB-MT-BAP-Address ProtocolIE-ID ::= 454
+id-MobileIABCell ProtocolIE-ID ::= 455
+id-sk-Counter ProtocolIE-ID ::= 456
+id-Source-M-NG-RANnodeID ProtocolIE-ID ::= 457
+id-S-CPAC-CompleteConfig-Indicator ProtocolIE-ID ::= 458
+id-SourceSN-to-TargetSN-QMCInfo ProtocolIE-ID ::= 459
+id-RegistrationRequestForDataCollection ProtocolIE-ID ::= 460
+id-ReportCharacteristicsForDataCollection ProtocolIE-ID ::= 461
+id-ReportingPeriodicityForDataCollection ProtocolIE-ID ::= 462
+id-NodeAssociatedInfoResult ProtocolIE-ID ::= 463
+id-SLPositioning-Ranging-Services-Info ProtocolIE-ID ::= 464
+id-XR-Bcast-Information ProtocolIE-ID ::= 465
+id-PDUSessionsListToBeReleased-UPError ProtocolIE-ID ::= 466
+id-MaximumDataBurstVolume ProtocolIE-ID ::= 467
+id-CPAC-Preparation-Type ProtocolIE-ID ::= 468
+id-UserPlaneFailureIndication ProtocolIE-ID ::= 469
+id-MN-only-MDT-collection ProtocolIE-ID ::= 470
+
END
diff --git a/epan/dissectors/asn1/xnap/XnAP-Containers.asn b/epan/dissectors/asn1/xnap/XnAP-Containers.asn
index 097ae2af..3ad1fb03 100644
--- a/epan/dissectors/asn1/xnap/XnAP-Containers.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.5.0 (2023-06)
+-- 3GPP TS 38.423 V18.2.0 (2024-06)
-- 9.3.8 Container definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/xnap/XnAP-IEs.asn b/epan/dissectors/asn1/xnap/XnAP-IEs.asn
index d15c829d..e5d1bb84 100644
--- a/epan/dissectors/asn1/xnap/XnAP-IEs.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.5.0 (2023-06)
+-- 3GPP TS 38.423 V18.2.0 (2024-06)
-- 9.3.5 Information Element definitions
-- **************************************************************
--
@@ -31,6 +31,7 @@ IMPORTS
id-FiveGCMobilityRestrictionListContainer,
id-SecondarydataForwardingInfoFromTarget-List,
id-LastE-UTRANPLMNIdentity,
+ id-LTEA2XUEPC5AggregateMaximumBitRate,
id-IntendedTDD-DL-ULConfiguration-NR,
id-MaxIPrate-DL,
id-SecurityResult,
@@ -52,6 +53,7 @@ IMPORTS
id-NPNMobilityInformation,
id-NPN-Support,
id-LTEUESidelinkAggregateMaximumBitRate,
+ id-NRA2XUEPC5AggregateMaximumBitRate,
id-NRUESidelinkAggregateMaximumBitRate,
id-ExtendedRATRestrictionInformation,
id-QoSMonitoringRequest,
@@ -104,6 +106,7 @@ IMPORTS
id-M7ReportAmount,
id-BeamMeasurementIndicationM1,
id-Supported-MBS-FSA-ID-List,
+ id-MBS-AssistanceInformation,
id-MBS-SessionAssociatedInformation,
id-MBS-SessionInformation-List,
id-SliceRadioResourceStatus-List,
@@ -135,6 +138,48 @@ IMPORTS
id-CoverageModificationCause,
id-UERLFReportContainerLTEExtension,
id-ExcessPacketDelayThresholdConfiguration,
+ id-Full-and-Short-I-RNTI-Profile-List,
+ id-QosFlowMappingIndication,
+ id-EquivalentSNPNs,
+ id-CHOTimeBasedInformation,
+ id-ChannelOccupancyTimePercentageUL,
+ id-EnergyDetectionThresholdUL,
+ id-PSCellListContainer,
+ id-RadioResourceStatusNR-U,
+ id-FiveGProSeLayer2Multipath,
+ id-FiveGProSeLayer2UEtoUERelay,
+ id-FiveGProSeLayer2UEtoUERemote,
+ id-ClockQualityReportingControlInfo,
+ id-CapabilityForBATAdaptation,
+ id-PNI-NPNBasedMDT,
+ id-PNI-NPN-AreaScopeofMDT,
+ id-SNPN-CellBasedMDT,
+ id-SNPN-TAIBasedMDT,
+ id-SNPN-BasedMDT,
+ id-S-CPAC-Request,
+ id-S-CPAC-Request-Info,
+ id-S-CPAC-ReferenceConfigRequest,
+ id-S-CPAC-InterSN-ExecutionNotify,
+ id-S-CPAC-dataforwardinginfofromSource,
+ id-S-CPAC-CompleteConfig-Indicator,
+ id-CPACcandidatePSCells-wotherInfo-list,
+ id-eRedcap-Bcast-Information,
+ id-NRPagingLongeDRXInformationforRRCINACTIVE,
+ id-MBSCommServiceType,
+ id-AssistanceInformationQoE-Meas,
+ id-QoERVQoEReportingPaths,
+ id-DirectForwardingPathAvailability,
+ id-CHO-CPAC-Info,
+ id-CHO-Maxnoof-CondReconfig,
+ id-PDUSetQoSParameters,
+ id-N6JitterInformation,
+ id-ECNMarkingorCongestionInformationReportingRequest,
+ id-TAISliceUnavailableCellList,
+ id-MobileIABCell,
+ id-XR-Bcast-Information,
+ id-MaximumDataBurstVolume,
+ id-CPAC-Preparation-Type,
+ id-MN-only-MDT-collection,
maxEARFCN,
maxnoofAllowedAreas,
maxnoofAMFRegions,
@@ -188,7 +233,7 @@ IMPORTS
maxnoofSSBAreas,
maxnoofNRSCSs,
maxnoofPhysicalResourceBlocks,
- maxnoofRACHReports,
+ maxnoofRAReports,
maxnoofAdditionalPDCPDuplicationTNL,
maxnoofRLCDuplicationstate,
maxnoofBluetoothName,
@@ -244,7 +289,24 @@ IMPORTS
maxnoofNSAGs,
maxnoofRBsetsPerCell1,
maxnoofTargetSNsMinusOne,
- maxnoofThresholdsForExcessPacketDelay
+ maxnoofThresholdsForExcessPacketDelay,
+ maxnoofESNPNs,
+ maxnoofSuccessfulPSCellChangeReports,
+ maxnoofUEsforRAReportIndications,
+ maxnoofPSCellsinCPAC,
+ maxnoofCPACexecutioncond,
+ maxnoofLBTFailureInformation,
+ maxnoofCellsTrajectoryPredict,
+ maxnoofCellsTrajectory,
+ maxFailedCellMeasObjects,
+ maxFailedMeasPerNode,
+ maxnoofUEReports,
+ maxnoofCandidateRelayUEs,
+ maxnoofCAGforMDT,
+ maxnoofMDTSNPNs,
+ maxnoofSecurityConfigurations,
+ maxnoofRSPPQoSFlows
+
FROM XnAP-Constants
@@ -264,6 +326,42 @@ FROM XnAP-Containers;
-- A
+A2XPC5QoSParameters ::= SEQUENCE {
+ a2XPC5QoSFlowList A2XPC5QoSFlowList,
+ aA2XPC5LinkAggregateBitRates BitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { A2XPC5QoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+A2XPC5QoSParameters-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+A2XPC5QoSFlowList ::= SEQUENCE (SIZE(1..maxnoofPC5QoSFlows)) OF A2XPC5QoSFlowItem
+
+A2XPC5QoSFlowItem ::= SEQUENCE {
+ a2XpQI FiveQI,
+ a2Xpc5FlowBitRates A2XPC5FlowBitRates OPTIONAL,
+ a2Xrange Range OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { A2XPC5QoSFlowItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+A2XPC5QoSFlowItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+A2XPC5FlowBitRates ::= SEQUENCE {
+ a2XguaranteedFlowBitRate BitRate,
+ a2XmaximumFlowBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { { A2XPC5FlowBitRates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+A2XPC5FlowBitRates-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated ::= SEQUENCE (SIZE(1..maxnoofTargetSNsMinusOne)) OF AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated-Item
AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated-Item ::= SEQUENCE {
@@ -276,6 +374,20 @@ AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated-Item-ExtIEs XNA
...
}
+AveragePacketDelay ::= SEQUENCE {
+ uL-AveragePacketDelay AveragePacketDelayValue,
+ dL-AveragePacketDelay AveragePacketDelayValue,
+ iE-Extensions ProtocolExtensionContainer { {AveragePacketDelay-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AveragePacketDelay-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AveragePacketDelayValue ::= INTEGER (0..10000)
+
+
AdditionLocationInformation ::= ENUMERATED {
includePSCell,
...
@@ -284,7 +396,7 @@ AdditionLocationInformation ::= ENUMERATED {
Additional-PDCP-Duplication-TNL-List ::= SEQUENCE (SIZE(1..maxnoofAdditionalPDCPDuplicationTNL)) OF Additional-PDCP-Duplication-TNL-Item
Additional-PDCP-Duplication-TNL-Item ::= SEQUENCE {
additional-PDCP-Duplication-UP-TNL-Information UPTransportLayerInformation,
- iE-Extensions ProtocolExtensionContainer { { Additional-PDCP-Duplication-TNL-ExtIEs} } OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Additional-PDCP-Duplication-TNL-ExtIEs} } OPTIONAL,
...
}
Additional-PDCP-Duplication-TNL-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
@@ -331,6 +443,38 @@ Active-MBS-SessionInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+DataCollectionID ::= SEQUENCE {
+ nGRAN-Node1-Measurement-ID Measurement-ID,
+ nGRAN-Node2-Measurement-ID Measurement-ID,
+ iE-Extensions ProtocolExtensionContainer { { DataCollectionID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DataCollectionID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+AerialControllerUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+AerialUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+AerialUESubscriptionInformation ::= ENUMERATED {
+ allowed,
+ not-allowed,
+ ...
+}
+
+
AllocationandRetentionPriority ::= SEQUENCE {
priorityLevel INTEGER (0..15,...),
@@ -379,7 +523,8 @@ AlternativeQoSParaSetItem ::= SEQUENCE {
}
AlternativeQoSParaSetItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- ...
+ { ID id-MaximumDataBurstVolume CRITICALITY ignore EXTENSION MaximumDataBurstVolume PRESENCE optional },
+...
}
@@ -425,8 +570,11 @@ AreaScopeOfMDT-NR ::= CHOICE {
}
AreaScopeOfMDT-NR-ExtIEs XNAP-PROTOCOL-IES ::= {
+ { ID id-PNI-NPNBasedMDT CRITICALITY ignore TYPE PNI-NPNBasedMDT PRESENCE mandatory}|
+ { ID id-SNPN-CellBasedMDT CRITICALITY ignore TYPE SNPN-CellBasedMDT PRESENCE mandatory}|
+ { ID id-SNPN-TAIBasedMDT CRITICALITY ignore TYPE SNPN-TAIBasedMDT PRESENCE mandatory}|
+ { ID id-SNPN-BasedMDT CRITICALITY ignore TYPE SNPN-BasedMDT PRESENCE mandatory},
...
-
}
AreaScopeOfMDT-EUTRA ::= CHOICE {
cellBased CellBasedMDT-EUTRA,
@@ -490,6 +638,8 @@ AssistanceDataForRANPaging-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+AssistanceInformationQoE-Meas ::= INTEGER (1..16, ...)
+
Associated-QoSFlowInfo-List ::= SEQUENCE (SIZE(1..maxnoofMBSQoSFlows)) OF Associated-QoSFlowInfo-Item
Associated-QoSFlowInfo-Item ::= SEQUENCE {
@@ -511,7 +661,7 @@ AvailableRRCConnectionCapacityValue ::= INTEGER (0..100)
AvailableRVQoEMetrics ::= SEQUENCE {
- bufferLevel ENUMERATED {true, ...} OPTIONAL,
+ applicationLayerBufferLevelList ENUMERATED {true, ...} OPTIONAL,
playoutDelayForMediaStartup ENUMERATED {true, ...} OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {AvailableRVQoEMetrics-ExtIEs} } OPTIONAL,
...
@@ -603,9 +753,9 @@ BAPControlPDURLCCH-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
BluetoothMeasurementConfiguration ::= SEQUENCE {
- bluetoothMeasConfig BluetoothMeasConfig,
- bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL,
- bt-rssi ENUMERATED {true, ...} OPTIONAL,
+ bluetoothMeasConfig BluetoothMeasConfig,
+ bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL,
+ bt-rssi ENUMERATED {true, ...} OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { BluetoothMeasurementConfiguration-ExtIEs } } OPTIONAL,
...
}
@@ -697,7 +847,8 @@ BroadcastPLMNinTAISupport-Item ::= SEQUENCE {
BroadcastPLMNinTAISupport-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ ID id-NPN-Support CRITICALITY reject EXTENSION NPN-Support PRESENCE optional}|
{ ID id-ExtendedTAISliceSupportList CRITICALITY reject EXTENSION ExtendedSliceSupportList PRESENCE optional}|
- { ID id-TAINSAGSupportList CRITICALITY ignore EXTENSION TAINSAGSupportList PRESENCE optional },
+ { ID id-TAINSAGSupportList CRITICALITY ignore EXTENSION TAINSAGSupportList PRESENCE optional}|
+ { ID id-TAISliceUnavailableCellList CRITICALITY ignore EXTENSION TAISliceUnavailableCellList PRESENCE optional},
...
}
@@ -737,6 +888,18 @@ BroadcastSNPNID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
CAG-Identifier ::= BIT STRING (SIZE (32))
+CandidateRelayUEInfoList ::= SEQUENCE (SIZE(1..maxnoofCandidateRelayUEs)) OF CandidateRelayUEInfoItem
+
+CandidateRelayUEInfoItem ::= SEQUENCE {
+ candidateRelayUEID BIT STRING(SIZE(24)),
+ iE-Extensions ProtocolExtensionContainer { { CandidateRelayUEInfoItem-ExtIEs } } OPTIONAL,
+ ...
+}
+
+CandidateRelayUEInfoItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
CapacityValue ::= INTEGER (0..100)
@@ -745,7 +908,7 @@ CapacityValue ::= INTEGER (0..100)
CapacityValueInfo ::= SEQUENCE {
capacityValue CapacityValue,
ssbAreaCapacityValueList SSBAreaCapacityValue-List OPTIONAL,
-iE-Extension ProtocolExtensionContainer { {CapacityValueInfo-ExtIEs} } OPTIONAL,
+ iE-Extension ProtocolExtensionContainer { {CapacityValueInfo-ExtIEs} } OPTIONAL,
...
}
@@ -831,12 +994,17 @@ CauseRadioNetworkLayer ::= ENUMERATED {
measurement-temporarily-not-available,
measurement-not-supported-for-the-object,
ue-power-saving,
- unknown-NG-RAN-node2-Measurement-ID,
+ not-existing-NG-RAN-node2-Measurement-ID,
insufficient-ue-capabilities,
normal-release,
value-out-of-allowed-range,
scg-activation-deactivation-failure,
- scg-deactivation-failure-due-to-data-transmission
+ scg-deactivation-failure-due-to-data-transmission,
+ ssb-not-available,
+ lTM-triggered,
+ no-Backhaul-Resource,
+ mIAB-node-not-authorized,
+ iAB-not-authorized
}
CauseTransportLayer ::= ENUMERATED {
@@ -958,12 +1126,12 @@ CellMeasurementResult ::= SEQUENCE (SIZE(1..maxnoofCellsinNG-RANnode)) OF CellMe
CellMeasurementResult-Item ::= SEQUENCE {
cell-ID GlobalNG-RANCell-ID,
-radioResourceStatus RadioResourceStatus OPTIONAL,
-tNLCapacityIndicator TNLCapacityIndicator OPTIONAL,
-compositeAvailableCapacityGroup CompositeAvailableCapacityGroup OPTIONAL,
-sliceAvailableCapacity SliceAvailableCapacity OPTIONAL,
-numberofActiveUEs NumberofActiveUEs OPTIONAL,
-rRCConnections RRCConnections OPTIONAL,
+ radioResourceStatus RadioResourceStatus OPTIONAL,
+ tNLCapacityIndicator TNLCapacityIndicator OPTIONAL,
+ compositeAvailableCapacityGroup CompositeAvailableCapacityGroup OPTIONAL,
+ sliceAvailableCapacity SliceAvailableCapacity OPTIONAL,
+ numberofActiveUEs NumberofActiveUEs OPTIONAL,
+ rRCConnections RRCConnections OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { CellMeasurementResult-Item-ExtIEs} } OPTIONAL,
...
}
@@ -990,8 +1158,8 @@ CellToReport ::= SEQUENCE (SIZE(1..maxnoofCellsinNG-RANnode)) OF CellToReport-It
CellToReport-Item ::= SEQUENCE {
cell-ID GlobalNG-RANCell-ID,
-sSBToReport-List SSBToReport-List OPTIONAL,
-sliceToReport-List SliceToReport-List OPTIONAL,
+ sSBToReport-List SSBToReport-List OPTIONAL,
+ sliceToReport-List SliceToReport-List OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { CellToReport-Item-ExtIEs} } OPTIONAL,
...
}
@@ -1001,6 +1169,48 @@ CellToReport-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+CellToReportForDataCollection-List ::= SEQUENCE (SIZE(1..maxnoofCellsinNG-RANnode)) OF CellToReportForDataCollection-Item
+
+CellToReportForDataCollection-Item ::= SEQUENCE {
+ cell-ID GlobalNG-RANCell-ID,
+ iE-Extensions ProtocolExtensionContainer { { CellToReportForDataCollection-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellToReportForDataCollection-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+CellBasedUETrajectoryPrediction ::= SEQUENCE (SIZE(1..maxnoofCellsTrajectoryPredict)) OF PredictedUETrajectory-Item
+
+
+
+CellMeasurementInitiationResult-List ::= SEQUENCE (SIZE(1..maxnoofCellsinNG-RANnode)) OF CellMeasurementInitiationResult-Item
+
+CellMeasurementInitiationResult-Item ::= SEQUENCE {
+ cellID GlobalNG-RANCell-ID,
+ cellMeasurementFailureCause-List CellMeasurementFailureCause-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CellMeasurementInitiationResult-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+CellMeasurementInitiationResult-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CellMeasurementResultForDataCollection-List ::= SEQUENCE (SIZE(1..maxnoofCellsinNG-RANnode)) OF CellInfoResultForDataCollection-Item
+
+CellInfoResultForDataCollection-Item ::= SEQUENCE {
+ cellID GlobalNG-RANCell-ID,
+ predictedRadioResourceStatus RadioResourceStatus OPTIONAL,
+ predictedNumberofActiveUEs NumberofActiveUEs OPTIONAL,
+ predictedRRCConnections RRCConnections OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CellInfoResultForDataCollection-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+CellInfoResultForDataCollection-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
Cell-Type-Choice ::= CHOICE {
ng-ran-e-utra E-UTRA-Cell-Identity,
@@ -1013,6 +1223,19 @@ Cell-Type-Choice-ExtIEs XNAP-PROTOCOL-IES ::= {
...
}
+CellMeasurementFailureCause-List ::= SEQUENCE (SIZE(1..maxFailedCellMeasObjects)) OF CellMeasurementFailureCause-Item
+
+CellMeasurementFailureCause-Item ::= SEQUENCE {
+ cellmeasurementFailedReportCharacteristics BIT STRING(SIZE(32)),
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { CellMeasurementFailureCause-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellMeasurementFailureCause-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
CHOConfiguration ::= SEQUENCE {
choCandidateCell-List CHOCandidateCell-List,
iE-Extensions ProtocolExtensionContainer { { CHOConfiguration-ExtIEs} } OPTIONAL,
@@ -1050,6 +1273,47 @@ CHOExecutionCondition-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+
+ClockQualityAcceptanceCriteria ::= SEQUENCE {
+ synchronisationState BIT STRING (SIZE(8, ...)) OPTIONAL,
+ traceabletoUTC ENUMERATED {true, ...} OPTIONAL,
+ traceabletoGNSS ENUMERATED {true, ...} OPTIONAL,
+ clockFrequencyStability BIT STRING (SIZE(16)) OPTIONAL,
+ clockAccuracy INTEGER (1..40000000, ...) OPTIONAL,
+ parentTimeSource BIT STRING (SIZE(16, ...)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ClockQualityAcceptanceCriteria-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ClockQualityAcceptanceCriteria-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ClockQualityReportingControlInfo ::= SEQUENCE {
+ clockQualityDetailLevel ClockQualityDetailLevel,
+ iE-Extensions ProtocolExtensionContainer { {ClockQualityReportingControlInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ClockQualityReportingControlInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ClockQualityDetailLevel ::= CHOICE {
+ clockQualityMetrics NULL,
+ acceptanceIndication ClockQualityAcceptanceCriteria,
+ choice-extension ProtocolIE-Single-Container { {ClockQualityDetailLevel-ExtIEs} }
+}
+
+ClockQualityDetailLevel-ExtIEs XNAP-PROTOCOL-IES ::= {
+ ...
+}
+
+
+CapabilityForBATAdaptation ::= ENUMERATED {true, ...}
+
CompositeAvailableCapacityGroup ::= SEQUENCE {
compositeAvailableCapacityDownlink CompositeAvailableCapacity,
compositeAvailableCapacityUplink CompositeAvailableCapacity,
@@ -1064,7 +1328,7 @@ CompositeAvailableCapacityGroup-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
CompositeAvailableCapacity ::= SEQUENCE {
cellCapacityClassValue CellCapacityClassValue OPTIONAL,
- capacityValueInfo CapacityValueInfo, -- this IE represents the IE "CapacityValue" in 9.2.2.a, it’s used to distinguish the "CapacityValue" in 9.2.2.c
+ capacityValueInfo CapacityValueInfo, -- this IE represents the IE "CapacityValue" in 9.2.2.52, it’s used to distinguish the "CapacityValue" in 9.2.2.54
iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} }OPTIONAL,
...
}
@@ -1090,16 +1354,28 @@ CHOtrigger ::= ENUMERATED {
CHOinformation-Req ::= SEQUENCE {
cho-trigger CHOtrigger,
targetNG-RANnodeUEXnAPID NG-RANnodeUEXnAPID OPTIONAL
- -- This IE shall be present if the cho-trigger IE is present and set to "CHO-replace" --,
+ -- This IE shall be present if the CHO Trigger IE is present and set to "CHO-replace" --,
cHO-EstimatedArrivalProbability CHO-Probability OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { CHOinformation-Req-ExtIEs} } OPTIONAL,
...
}
CHOinformation-Req-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ {ID id-CHOTimeBasedInformation CRITICALITY reject EXTENSION CHOTimeBasedInformation PRESENCE optional}|
+ { ID id-CHO-Maxnoof-CondReconfig CRITICALITY reject EXTENSION CHO-Maxnoof-CondReconfig PRESENCE optional },
...
}
+CHOTimeBasedInformation ::= SEQUENCE {
+ cHO-HOWindowStart CHO-HandoverWindowStart,
+ cHO-HOWindowDuration CHO-HandoverWindowDuration,
+ iE-Extensions ProtocolExtensionContainer { {CHOTimeBasedInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CHOTimeBasedInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
CHOinformation-Ack ::= SEQUENCE {
requestedTargetCellGlobalID Target-CGI,
@@ -1109,6 +1385,7 @@ CHOinformation-Ack ::= SEQUENCE {
}
CHOinformation-Ack-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ { ID id-CHO-CPAC-Info CRITICALITY reject EXTENSION CHO-CPAC-Information PRESENCE optional },
...
}
@@ -1125,6 +1402,15 @@ CHOinformation-AddReq-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
...
}
+CHOinformation-AddReqAck ::= SEQUENCE {
+ pCell-ID GlobalNG-RANCell-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CHOinformation-AddReqAck-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CHOinformation-AddReqAck-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ ...
+}
CHOinformation-ModReq ::= SEQUENCE {
conditionalReconfig ENUMERATED {intra-mn-cho, ...},
@@ -1137,11 +1423,76 @@ CHOinformation-ModReq-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
...
}
+CHO-Maxnoof-CondReconfig ::= INTEGER (1..8,...)
+
+CHO-CPAC-Information ::= SEQUENCE {
+ cHO-CPAC-config-indicator CHO-CPAC-Config-Indicator OPTIONAL,
+ cHO-target-SN-node-list CHO-target-SN-node-list,
+ iE-Extensions ProtocolExtensionContainer { {CHO-CPAC-Information-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CHO-CPAC-Information-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
+CHO-CPAC-Config-Indicator ::= ENUMERATED {
+ cho-only-not-prepared,
+ ...
+}
+
CHO-Probability ::= INTEGER (1..100)
+CHO-HandoverWindowStart ::= INTEGER (0.. 549755813887)
+
+CHO-HandoverWindowDuration ::= INTEGER (1..6000)
+
+CHO-target-SN-node-list ::= SEQUENCE (SIZE(1.. maxnoofTargetSNs)) OF CHO-target-SN-node-Item
+
+CHO-target-SN-node-Item ::= SEQUENCE {
+ target-S-NG-RANnodeID GlobalNG-RANNode-ID,
+ pduSessionResourcesAdmittedList PDUSessionResourcesAdmitted-List,
+ cho-Candidate-PSCells-list CHO-Candidate-PSCells-list,
+ iE-Extensions ProtocolExtensionContainer { {CHO-target-SN-node-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CHO-target-SN-node-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
+
+CHO-Candidate-PSCells-list ::= SEQUENCE (SIZE(1..maxnoofPSCellCandidates)) OF CHO-Candidate-PSCells-Item
+
+CHO-Candidate-PSCells-Item ::= SEQUENCE {
+ pscell-id NR-CGI,
+ target2source-NG-RANNode-Container OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer { {CHO-Candidate-PSCells-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CHO-Candidate-PSCells-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
CNsubgroupID ::= INTEGER (0..7, ...)
+CompleteConfig-Indicator ::= ENUMERATED {complete-config, ...}
+
+Conditional-Reconfig-List ::= SEQUENCE (SIZE(1..maxnoofPSCellCandidates)) OF Conditional-Reconfig-Item
+
+Conditional-Reconfig-Item ::= SEQUENCE {
+ pCell-ID Target-CGI,
+ pSCell-ID NR-CGI OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Conditional-Reconfig-Item-ExtIEs} } OPTIONAL,
+ ...
+
+}
+
+Conditional-Reconfig-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
ConfiguredTACIndication ::= ENUMERATED {
true,
@@ -1188,7 +1539,8 @@ COUNT-PDCP-SN18-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
CoverageModificationCause ::= ENUMERATED {
coverage,
cell-edge-capacity,
- ...}
+ ...,
+ network-energy-saving}
Coverage-Modification-List ::= SEQUENCE (SIZE (0..maxnoofCellsinNG-RANnode)) OF Coverage-Modification-List-Item
@@ -1197,7 +1549,7 @@ Coverage-Modification-List-Item ::= SEQUENCE {
cellCoverageState INTEGER (0..63, ...),
cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL,
cellReplacingInfo CellReplacingInfo OPTIONAL,
--- Included in case the Cell Deployment Status Indicator IE is present
+-- This IE shall be present if the Cell Deployment Status Indicator IE is present.
sSB-Coverage-Modification-List SSB-Coverage-Modification-List,
iE-Extension ProtocolExtensionContainer { { Coverage-Modification-List-Item-ExtIEs} } OPTIONAL,
...
@@ -1227,6 +1579,59 @@ CPACcandidatePSCells-item ::= SEQUENCE {
}
CPACcandidatePSCells-item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-S-CPAC-CompleteConfig-Indicator CRITICALITY ignore EXTENSION CompleteConfig-Indicator PRESENCE optional},
+ ...
+}
+
+CPACcandidatePSCells-wotherInfo-list ::= SEQUENCE (SIZE(1..maxnoofPSCellCandidates)) OF CPACcandidatePSCells-wotherInfo-item
+
+CPACcandidatePSCells-wotherInfo-item ::= SEQUENCE {
+ pscell-id NR-CGI,
+ s-CPAC-CompleteConfig-Indicator CompleteConfig-Indicator OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CPACcandidatePSCells-wotherInfo-item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CPACcandidatePSCells-wotherInfo-item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CPACConfiguration ::= SEQUENCE {
+ cpacCandidateCell-List CPACCandidateCell-List,
+ iE-Extensions ProtocolExtensionContainer { { CPACConfiguration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPACConfiguration-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CPACCandidateCell-List ::= SEQUENCE (SIZE(1..maxnoofPSCellsinCPAC)) OF CPACCandidateCell-Item
+
+CPACCandidateCell-Item ::= SEQUENCE {
+ cpacCandidateCellID GlobalNG-RANCell-ID,
+ cpacExecutionCondition-List CPACExecutionCondition-List,
+ iE-Extensions ProtocolExtensionContainer { { CPACCandidateCell-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPACCandidateCell-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+CPACExecutionCondition-List ::= SEQUENCE (SIZE(1..maxnoofCPACexecutioncond)) OF CPACExecutionCondition-Item
+
+CPACExecutionCondition-Item ::= SEQUENCE {
+ measObjectContainer MeasObjectContainer,
+ reportConfigContainer ReportConfigContainer,
+ iE-Extensions ProtocolExtensionContainer { { CPACExecutionCondition-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CPACExecutionCondition-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
@@ -1240,6 +1645,8 @@ CPAInformationRequest ::= SEQUENCE {
}
CPAInformationRequest-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-S-CPAC-Request-Info CRITICALITY reject EXTENSION S-CPAC-Request-Info PRESENCE optional}|
+ { ID id-S-CPAC-ReferenceConfigRequest CRITICALITY ignore EXTENSION S-CPAC-ReferenceConfig-Request PRESENCE optional},
...
}
@@ -1250,6 +1657,7 @@ CPAInformationAck ::= SEQUENCE {
}
CPAInformationAck-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CPACcandidatePSCells-wotherInfo-list CRITICALITY reject EXTENSION CPACcandidatePSCells-wotherInfo-list PRESENCE optional},
...
}
@@ -1260,6 +1668,7 @@ CPCInformationRequired::= SEQUENCE {
}
CPCInformationRequired-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-S-CPAC-Request CRITICALITY reject EXTENSION S-CPAC-Request PRESENCE optional},
...
}
@@ -1301,10 +1710,11 @@ CPC-target-SN-confirm-list-Item ::= SEQUENCE {
}
CPC-target-SN-confirm-list-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CPAC-Preparation-Type CRITICALITY ignore EXTENSION CPAC-Preparation-Type PRESENCE optional},
...
}
-CPAInformationModReq ::= SEQUENCE {
+CPAInformationModReq ::= SEQUENCE {
max-no-of-pscells INTEGER (1..8, ...) OPTIONAL,
cpac-EstimatedArrivalProbability CHO-Probability OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { CPAInformationModReq-ExtIEs} } OPTIONAL,
@@ -1312,21 +1722,26 @@ CPAInformationModReq ::= SEQUENCE {
}
CPAInformationModReq-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-S-CPAC-Request-Info CRITICALITY reject EXTENSION S-CPAC-Request-Info PRESENCE optional}|
+ { ID id-S-CPAC-ReferenceConfigRequest CRITICALITY ignore EXTENSION S-CPAC-ReferenceConfig-Request PRESENCE optional}|
+ { ID id-S-CPAC-InterSN-ExecutionNotify CRITICALITY reject EXTENSION S-CPAC-InterSN-ExecutionNotify PRESENCE optional},
...
}
-CPAInformationModReqAck ::= SEQUENCE {
+CPAInformationModReqAck ::= SEQUENCE {
candidate-pscells CPACcandidatePSCells-list,
iE-Extensions ProtocolExtensionContainer { { CPAInformationModReqAck-ExtIEs} } OPTIONAL,
...
}
CPAInformationModReqAck-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-CPACcandidatePSCells-wotherInfo-list CRITICALITY reject EXTENSION CPACcandidatePSCells-wotherInfo-list PRESENCE optional},
...
}
CPC-DataForwarding-Indicator ::= ENUMERATED {triggered, early-data-transmission-stop, ..., coordination-only}
+CPAC-Preparation-Type ::= ENUMERATED {s-cpac, ...}
CPACInformationModRequired ::= SEQUENCE {
candidate-pscells CPACcandidatePSCells-list,
@@ -1466,6 +1881,19 @@ CSI-RSTransmissionIndication ::= ENUMERATED {
...
}
+CAGListforMDT ::= SEQUENCE (SIZE(1.. maxnoofCAGforMDT))OF CAGListforMDTItem
+
+CAGListforMDTItem ::= SEQUENCE {
+ plmnID PLMN-Identity,
+ cAGID CAG-Identifier,
+ iE-Extensions ProtocolExtensionContainer { {CAGListforMDTItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CAGListforMDTItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
-- D
@@ -1532,6 +1960,7 @@ DataForwardingInfoFromTargetNGRANnode ::= SEQUENCE {
}
DataForwardingInfoFromTargetNGRANnode-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-DirectForwardingPathAvailability CRITICALITY ignore EXTENSION DirectForwardingPathAvailability PRESENCE optional },
...
}
@@ -1644,6 +2073,7 @@ DefaultDRB-Allowed ::= ENUMERATED {true, false, ...}
DirectForwardingPathAvailability ::= ENUMERATED {direct-path-available, ...}
+DirectForwardingPathAvailabilityWithSourceMN ::= ENUMERATED {direct-path-available, ...}
DLCountChoice ::= CHOICE {
count12bits COUNT-PDCP-SN12,
@@ -1678,6 +2108,21 @@ DLF1Terminating-BHInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+DLLBTFailureInformationRequest ::= ENUMERATED {inquiry, ...}
+DLLBTFailureInformationList ::= SEQUENCE (SIZE(1.. maxnoofLBTFailureInformation)) OF DLLBTFailureInformationList-Item
+
+DLLBTFailureInformationList-Item::= SEQUENCE {
+ uEAssistantIdentifier NG-RANnodeUEXnAPID,
+ numberOfDLLBTFailures INTEGER (1..1000,...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { DLLBTFailureInformationList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DLLBTFailureInformationList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
DLNonF1Terminating-BHInfo ::= SEQUENCE {
ingressBAPRoutingID BAPRoutingID,
ingressBHRLCCHID BHRLCChannelID,
@@ -1810,7 +2255,7 @@ DRBToQoSFlowMapping-Item ::= SEQUENCE {
}
DRBToQoSFlowMapping-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- { ID id-DAPSRequestInfo CRITICALITY ignore EXTENSION DAPSRequestInfo PRESENCE optional },
+ { ID id-DAPSRequestInfo CRITICALITY ignore EXTENSION DAPSRequestInfo PRESENCE optional },
...
}
@@ -1873,6 +2318,31 @@ Dynamic5QIDescriptor-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
EarlyMeasurement ::= ENUMERATED {true, ...}
+ECNMarkingorCongestionInformationReportingRequest ::= CHOICE {
+ eCNMarkingAtRANRequest ECNMarkingAtRANRequest,
+ eCNMarkingAtUPFRequest ECNMarkingAtUPFRequest,
+ congestionInformationRequest CongestionInformationRequest,
+ choice-Extensions ProtocolIE-Single-Container { {ECNMarkingorCongestionInformationReportingRequest-ExtIEs} }
+}
+
+ECNMarkingorCongestionInformationReportingRequest-ExtIEs XNAP-PROTOCOL-IES ::= {
+ ...
+
+}
+
+ECNMarkingAtRANRequest ::= ENUMERATED {ul, dl, both, stop,...}
+
+ECNMarkingAtUPFRequest ::= ENUMERATED {ul, dl, both, stop,...}
+
+
+CongestionInformationRequest ::= ENUMERATED {ul, dl, both, stop, ...}
+
+
+EnergyCost ::= INTEGER (0..10000, ...)
+
+
+EquivalentSNPNs ::= SEQUENCE (SIZE(1..maxnoofESNPNs)) OF SNPNIdentity
+
E-RAB-ID ::= INTEGER (0..15, ...)
@@ -1882,6 +2352,7 @@ E-UTRAARFCN ::= INTEGER (0..maxEARFCN)
E-UTRA-Cell-Identity ::= BIT STRING (SIZE(28))
+ERedcap-Bcast-Information ::= BIT STRING(SIZE(8))
E-UTRA-CGI ::= SEQUENCE {
plmn-id PLMN-Identity,
@@ -1936,7 +2407,7 @@ E-UTRAPRACHConfiguration ::= SEQUENCE {
highSpeedFlag ENUMERATED {true, false, ...},
prach-FreqOffset INTEGER (0..94),
prach-ConfigIndex INTEGER (0..63) OPTIONAL,
--- C-ifTDD: This IE shall be present if the EUTRA-Mode-Info IE in the Served Cell Information IE is set to the value "TDD" --
+-- C-ifTDD: This IE shall be present if the EUTRA-Mode-Info IE in the Served Cell Information E-UTRA IE is set to the value "TDD" --
iE-Extensions ProtocolExtensionContainer { {E-UTRAPRACHConfiguration-ExtIEs} } OPTIONAL,
...
}
@@ -2050,7 +2521,7 @@ ExpectedUEActivityBehaviour-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
ExpectedUEBehaviour ::= SEQUENCE {
- expectedUEActivityBehaviour ExpectedUEActivityBehaviour OPTIONAL,
+ expectedUEActivityBehaviour ExpectedUEActivityBehaviour OPTIONAL,
expectedHOInterval ExpectedHOInterval OPTIONAL,
expectedUEMobility ExpectedUEMobility OPTIONAL,
expectedUEMovingTrajectory ExpectedUEMovingTrajectory OPTIONAL,
@@ -2101,7 +2572,7 @@ ExplicitFormat-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
ExtendedRATRestrictionInformation ::= SEQUENCE {
- primaryRATRestriction BIT STRING (SIZE(8, ...)),
+ primaryRATRestriction BIT STRING (SIZE(8, ..., 16)),
secondaryRATRestriction BIT STRING (SIZE(8, ...)),
iE-Extensions ProtocolExtensionContainer { {ExtendedRATRestrictionInformation-ExtIEs} } OPTIONAL,
...
@@ -2121,8 +2592,8 @@ ExtendedUEIdentityIndexValue ::= BIT STRING (SIZE(16))
ExtTLAs ::= SEQUENCE (SIZE(1..maxnoofExtTLAs)) OF ExtTLA-Item
ExtTLA-Item ::= SEQUENCE {
- iPsecTLA TransportLayerAddress OPTIONAL,
- gTPTransportLayerAddresses GTPTLAs OPTIONAL,
+ iPsecTLA TransportLayerAddress OPTIONAL,
+ gTPTransportLayerAddresses GTPTLAs OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {ExtTLA-Item-ExtIEs} } OPTIONAL,
...
}
@@ -2183,7 +2654,7 @@ FiveGCMobilityRestrictionListContainer ::= OCTET STRING
FiveGProSeAuthorized ::= SEQUENCE {
fiveGproSeDirectDiscovery FiveGProSeDirectDiscovery OPTIONAL,
fiveGproSeDirectCommunication FiveGProSeDirectCommunication OPTIONAL,
- fiveGnrProSeLayer2UEtoNetworkRelay FiveGProSeLayer2UEtoNetworkRelay OPTIONAL,
+ fiveGnrProSeLayer2UEtoNetworkRelay FiveGProSeLayer2UEtoNetworkRelay OPTIONAL,
fiveGnrProSeLayer3UEtoNetworkRelay FiveGProSeLayer3UEtoNetworkRelay OPTIONAL,
fiveGnrProSeLayer2RemoteUE FiveGProSeLayer2RemoteUE OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {FiveGProSeAuthorized-ExtIEs} } OPTIONAL,
@@ -2191,6 +2662,9 @@ FiveGProSeAuthorized ::= SEQUENCE {
}
FiveGProSeAuthorized-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-FiveGProSeLayer2Multipath CRITICALITY ignore EXTENSION FiveGProSeLayer2Multipath PRESENCE optional}|
+ { ID id-FiveGProSeLayer2UEtoUERelay CRITICALITY ignore EXTENSION FiveGProSeLayer2UEtoUERelay PRESENCE optional}|
+ { ID id-FiveGProSeLayer2UEtoUERemote CRITICALITY ignore EXTENSION FiveGProSeLayer2UEtoUERemote PRESENCE optional},
...
}
@@ -2224,6 +2698,24 @@ FiveGProSeLayer2RemoteUE ::= ENUMERATED {
...
}
+FiveGProSeLayer2Multipath ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+FiveGProSeLayer2UEtoUERelay ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+FiveGProSeLayer2UEtoUERemote ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
FiveGProSePC5QoSParameters ::= SEQUENCE {
fiveGProSepc5QoSFlowList FiveGProSePC5QoSFlowList,
fiveGproSepc5LinkAggregateBitRates BitRate OPTIONAL,
@@ -2275,7 +2767,7 @@ Flows-Mapped-To-DRB-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
-FreqDomainHSNAconfiguration-List ::= SEQUENCE (SIZE(1.. maxnoofHSNASlots)) OF FreqDomainHSNAconfiguration-List-Item
+FreqDomainHSNAconfiguration-List ::= SEQUENCE (SIZE(1.. maxnoofHSNASlots)) OF FreqDomainHSNAconfiguration-List-Item
FreqDomainHSNAconfiguration-List-Item ::= SEQUENCE {
rBsetIndex INTEGER(0.. maxnoofRBsetsPerCell1, ...),
@@ -2289,7 +2781,7 @@ FreqDomainHSNAconfiguration-List-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
-FreqDomainSlotHSNAconfiguration-List ::= SEQUENCE (SIZE(1.. maxnoofHSNASlots)) OF FreqDomainSlotHSNAconfiguration-List-Item
+FreqDomainSlotHSNAconfiguration-List ::= SEQUENCE (SIZE(1.. maxnoofHSNASlots)) OF FreqDomainSlotHSNAconfiguration-List-Item
FreqDomainSlotHSNAconfiguration-List-Item ::= SEQUENCE {
slotIndex INTEGER(1..maxnoofHSNASlots),
@@ -2731,13 +3223,18 @@ IABTNLAddress-ItemExtIEs XNAP-PROTOCOL-EXTENSION ::= {
ImmediateMDT-NR ::= SEQUENCE {
measurementsToActivate MeasurementsToActivate,
m1Configuration M1Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the first bit set to "1".--
m4Configuration M4Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the fourth bit set to "1".--
m5Configuration M5Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the fifth bit set to "1".--
mDT-Location-Info MDT-Location-Info OPTIONAL,
m6Configuration M6Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the seventh bit set to "1".--
m7Configuration M7Configuration OPTIONAL,
+-- This IE shall be present if the Measurements to Activate IE has the eighth bit set to "1".--
bluetoothMeasurementConfiguration BluetoothMeasurementConfiguration OPTIONAL,
- wLANMeasurementConfiguration WLANMeasurementConfiguration OPTIONAL,
+ wLANMeasurementConfiguration WLANMeasurementConfiguration OPTIONAL,
sensorMeasurementConfiguration SensorMeasurementConfiguration OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-NR-ExtIEs} } OPTIONAL,
...
@@ -2794,6 +3291,12 @@ I-RNTI-ExtIEs XNAP-PROTOCOL-IES ::= {
...
}
+IABAuthorizationStatus ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
-- J
@@ -2811,9 +3314,23 @@ Local-NG-RAN-Node-Identifier ::= CHOICE {
}
Local-NG-RAN-Node-Identifier-ExtIEs XNAP-PROTOCOL-IES ::= {
+ { ID id-Full-and-Short-I-RNTI-Profile-List CRITICALITY ignore TYPE Full-and-Short-I-RNTI-Profile-List PRESENCE mandatory},
+ ...
+}
+
+Full-and-Short-I-RNTI-Profile-List::= SEQUENCE {
+
+ full-I-RNTI-Profile-List Full-I-RNTI-Profile-List,
+ short-I-RNTI-Profile-List Short-I-RNTI-Profile-List,
+ iE-Extensions ProtocolExtensionContainer { { Full-and-Short-I-RNTI-Profile-List-ExtIEs} } OPTIONAL,
...
}
+Full-and-Short-I-RNTI-Profile-List-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
Full-I-RNTI-Profile-List ::= CHOICE {
full-I-RNTI-Profile-0 BIT STRING (SIZE (21)),
full-I-RNTI-Profile-1 BIT STRING (SIZE (18)),
@@ -2961,7 +3478,7 @@ LoggedMDT-NR ::= SEQUENCE {
loggingDuration LoggingDuration,
reportType ReportType,
bluetoothMeasurementConfiguration BluetoothMeasurementConfiguration OPTIONAL,
- wLANMeasurementConfiguration WLANMeasurementConfiguration OPTIONAL,
+ wLANMeasurementConfiguration WLANMeasurementConfiguration OPTIONAL,
sensorMeasurementConfiguration SensorMeasurementConfiguration OPTIONAL,
areaScopeOfNeighCellsList AreaScopeOfNeighCellsList OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {LoggedMDT-NR-ExtIEs} } OPTIONAL,
@@ -2985,6 +3502,17 @@ LowerLayerPresenceStatusChange ::= ENUMERATED {
resume-lower-layers
}
+LTEA2XServicesAuthorized ::= SEQUENCE {
+ aerialUE AerialUE OPTIONAL,
+ aerialControllerUE AerialControllerUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {LTEA2XServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LTEA2XServicesAuthorized-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
LTEV2XServicesAuthorized ::= SEQUENCE {
vehicleUE VehicleUE OPTIONAL,
pedestrianUE PedestrianUE OPTIONAL,
@@ -3012,6 +3540,7 @@ LTEUESidelinkAggregateMaximumBitRate-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
MaxNrofRS-IndexesToReport::= INTEGER (1..64, ...)
+MBSCommServiceType ::= ENUMERATED {multicast, broadcast, ...}
MDTAlignmentInfo ::= CHOICE {
s-BasedMDT S-BasedMDT,
@@ -3029,17 +3558,17 @@ MeasCollectionEntityIPAddress ::= TransportLayerAddress
M1Configuration ::= SEQUENCE {
m1reportingTrigger M1ReportingTrigger,
m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
--- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+-- This IE shall be present if the Measurements to Activate IE has the first bit set to "1" and the M1 Reporting Trigger IE is set to "A2event-triggered" or to "A2event-triggered periodic".
m1periodicReporting M1PeriodicReporting OPTIONAL,
--- Included in case of periodic or event-triggered periodic reporting
+-- This IE shall be present if the M1 Reporting Trigger IE is set to "periodic", or to "A2event-triggered periodic".
iE-Extensions ProtocolExtensionContainer { { M1Configuration-ExtIEs} } OPTIONAL,
...
}
M1Configuration-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ID id-BeamMeasurementIndicationM1 CRITICALITY ignore EXTENSION BeamMeasurementIndicationM1 PRESENCE optional }|
- {ID id-BeamMeasurementsReportConfiguration CRITICALITY ignore EXTENSION BeamMeasurementsReportConfiguration PRESENCE conditional },
--- The above IE shall be present if the BeamMeasurementIndicationM1 IE is set to “trueâ€
+ {ID id-BeamMeasurementsReportConfiguration CRITICALITY ignore EXTENSION BeamMeasurementsReportConfiguration PRESENCE conditional },
+-- This IE shall be present if the Include Beam Measurements Indication IE is set to "true".
...
}
@@ -3204,14 +3733,14 @@ MBSFNSubframeInfo-E-UTRA-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
MBS-FrequencySelectionArea-Identity ::= OCTET STRING (SIZE(3))
-MBS-Area-Session-ID ::= INTEGER (0..65535, ...)
+MBS-Area-Session-ID ::= INTEGER (0..65535, ...)
MBS-MappingandDataForwardingRequestInfofromSource ::= SEQUENCE (SIZE(1..maxnoofMRBs)) OF MBS-MappingandDataForwardingRequestInfofromSource-Item
MBS-MappingandDataForwardingRequestInfofromSource-Item ::= SEQUENCE {
- mRB-ID MRB-ID,
+ mRB-ID MRB-ID,
mBS-QoSFlow-List MBS-QoSFlow-List,
- mRB-ProgressInformation MRB-ProgressInformation OPTIONAL,
+ mRB-ProgressInformation MRB-ProgressInformation OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { MBS-MappingandDataForwardingRequestInfofromSource-Item-ExtIEs} } OPTIONAL,
...
}
@@ -3220,6 +3749,7 @@ MBS-MappingandDataForwardingRequestInfofromSource-Item-ExtIEs XNAP-PROTOCOL-EXTE
...
}
+MBS-DataForwarding-Indicator ::= ENUMERATED{mbs-only, ...}
MBS-DataForwardingResponseInfofromTarget ::= SEQUENCE (SIZE(1..maxnoofMRBs)) OF MBS-DataForwardingResponseInfofromTarget-Item
@@ -3263,7 +3793,7 @@ MBS-ServiceArea-ExtIEs XNAP-PROTOCOL-IES ::= {
MBS-ServiceAreaCell-List ::= SEQUENCE (SIZE(1.. maxnoofCellsforMBS)) OF NR-CGI
MBS-ServiceAreaInformation ::= SEQUENCE {
- mBS-ServiceAreaCell-List MBS-ServiceAreaCell-List OPTIONAL,
+ mBS-ServiceAreaCell-List MBS-ServiceAreaCell-List OPTIONAL,
mBS-ServiceAreaTAI-List MBS-ServiceAreaTAI-List OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {MBS-ServiceAreaInformation-ExtIEs} } OPTIONAL,
...
@@ -3300,8 +3830,8 @@ MBS-ServiceAreaTAI-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
MBS-Session-ID ::= SEQUENCE {
- tMGI TMGI,
- nID NID OPTIONAL,
+ tMGI TMGI,
+ nID NID OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {MBS-Session-ID-ExtIEs} } OPTIONAL,
...
}
@@ -3310,6 +3840,8 @@ MBS-Session-ID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+MBS-AssistanceInformation ::= ENUMERATED {true, ...}
+
MBS-SessionAssociatedInformation ::= SEQUENCE (SIZE(1..maxnoofAssociatedMBSSessions)) OF MBS-SessionAssociatedInformation-Item
MBS-SessionAssociatedInformation-Item ::= SEQUENCE {
@@ -3333,6 +3865,7 @@ MBS-SessionInformation-Item ::= SEQUENCE {
}
MBS-SessionInformation-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MBS-AssistanceInformation CRITICALITY ignore EXTENSION MBS-AssistanceInformation PRESENCE optional },
...
}
@@ -3376,6 +3909,12 @@ iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTION
...
}
MDT-Configuration-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+{ ID id-MN-only-MDT-collection CRITICALITY ignore EXTENSION MN-only-MDT-collection PRESENCE optional },
+ ...
+}
+
+MN-only-MDT-collection ::= ENUMERATED {
+ mN-Only,
...
}
@@ -3383,11 +3922,12 @@ MDT-Configuration-NR ::= SEQUENCE {
mdt-Activation MDT-Activation,
areaScopeOfMDT-NR AreaScopeOfMDT-NR OPTIONAL,
mDTMode-NR MDTMode-NR,
- signallingBasedMDTPLMNList MDTPLMNList OPTIONAL,
+ signallingBasedMDTPLMNList MDTPLMNList OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-NR-ExtIEs} } OPTIONAL,
...
}
MDT-Configuration-NR-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ {ID id-PNI-NPN-AreaScopeofMDT CRITICALITY ignore EXTENSION PNI-NPN-AreaScopeofMDT PRESENCE optional },
...
}
@@ -3447,7 +3987,7 @@ Measurement-ID ::= INTEGER (1..4095,...)
MIMOPRBusageInformation ::= SEQUENCE {
-dl-GBR-PRB-usage-for-MIMO DL-GBR-PRB-usage-for-MIMO,
+ dl-GBR-PRB-usage-for-MIMO DL-GBR-PRB-usage-for-MIMO,
ul-GBR-PRB-usage-for-MIMO UL-GBR-PRB-usage-for-MIMO,
dl-non-GBR-PRB-usage-for-MIMO DL-non-GBR-PRB-usage-for-MIMO,
ul-non-GBR-PRB-usage-for-MIMO UL-non-GBR-PRB-usage-for-MIMO,
@@ -3461,6 +4001,13 @@ MIMOPRBusageInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+MobileIAB-AuthorizationStatus ::= ENUMERATED {authorized, not-authorized,...}
+
+MobileIABCell ::= ENUMERATED {
+ true,
+ ...
+}
+
MobilityInformation ::= BIT STRING (SIZE(32))
MobilityParametersModificationRange ::= SEQUENCE {
@@ -3620,6 +4167,21 @@ MessageOversizeNotification-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
MaximumCellListSize ::= INTEGER(1..16384, ...)
+MT-SDT-Information ::= SEQUENCE {
+ mT-SDT-Indicator MT-SDT-Indicator,
+ mT-SDT-DataSize MT-SDT-DataSize,
+ iE-Extensions ProtocolExtensionContainer { { MT-SDT-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MT-SDT-Information-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MT-SDT-DataSize ::= INTEGER (1..96000, ...)
+
+MT-SDT-Indicator ::= ENUMERATED {true, ...}
+
MultiplexingInfo ::= SEQUENCE{
iAB-MT-Cell-List IAB-MT-Cell-List,
iE-Extensions ProtocolExtensionContainer { {MultiplexingInfo-ExtIEs} } OPTIONAL,
@@ -3631,14 +4193,58 @@ MultiplexingInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
+MeasuredUETrajectory ::= SEQUENCE (SIZE(1..maxnoofCellsTrajectory)) OF MeasuredUETrajectory-Item
+
+MeasuredUETrajectory-Item ::= SEQUENCE{
+ measuredtrajectoryCellInfo MeasuredTrajectoryCellInfo,
+ iE-Extensions ProtocolExtensionContainer { { MeasuredUETrajectory-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasuredUETrajectory-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MeasuredTrajectoryCellInfo ::= CHOICE {
+ nG-RAN-Cell MeasuredTrajectoryNGRANCellInfo,
+ choice-extension ProtocolIE-Single-Container { { MeasuredTrajectoryCellInfo-ExtIEs} }
+}
+
+MeasuredTrajectoryCellInfo-ExtIEs XNAP-PROTOCOL-IES ::= {
+ ...
+}
+
+MeasuredTrajectoryNGRANCellInfo ::= SEQUENCE {
+ globalNG-RANCell-ID GlobalNG-RANCell-ID,
+ timeUEStaysInCell INTEGER (0..4095),
+ iE-Extensions ProtocolExtensionContainer { { MeasuredTrajectoryNGRANCellInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasuredTrajectoryNGRANCellInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- N
-NACellResourceConfigurationList ::= SEQUENCE (SIZE(1..maxnoofHSNASlots)) OF NACellResourceConfiguration-Item
+N6JitterInformation ::= SEQUENCE {
+ n6JitterLowerBound INTEGER (-127..127),
+ n6JitterUpperBound INTEGER (-127..127),
+ iE-Extensions ProtocolExtensionContainer { { N6JitterInformationExtIEs } } OPTIONAL,
+ ...
+}
+N6JitterInformationExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NACellResourceConfigurationList ::= SEQUENCE (SIZE(1..maxnoofHSNASlots)) OF NACellResourceConfiguration-Item
-NACellResourceConfiguration-Item ::= SEQUENCE {
- nAdownlin ENUMERATED {true, false, ...} OPTIONAL,
- nAuplink ENUMERATED {true, false, ...} OPTIONAL,
- nAflexible ENUMERATED {true, false, ...} OPTIONAL,
+NACellResourceConfiguration-Item ::= SEQUENCE {
+ nAdownlink ENUMERATED {true, false, ...} OPTIONAL,
+ nAuplink ENUMERATED {true, false, ...} OPTIONAL,
+ nAflexible ENUMERATED {true, false, ...} OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { NACellResourceConfiguration-Item-ExtIEs} } OPTIONAL,
...
}
@@ -3697,6 +4303,7 @@ NeighbourInformation-NR-Item ::= SEQUENCE {
}
NeighbourInformation-NR-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
+ { ID id-MobileIABCell CRITICALITY ignore EXTENSION MobileIABCell PRESENCE optional},
...
}
@@ -3799,6 +4406,32 @@ NG-RANnodeUEXnAPID ::= INTEGER (0.. 4294967295)
NumberofActiveUEs::= INTEGER(0..16777215, ...)
+NodeAssociatedInfoResult ::= SEQUENCE {
+ energyCost EnergyCost OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NodeAssociatedInfoResult-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NodeAssociatedInfoResult-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+NodeMeasurementInitiationResult-List ::= SEQUENCE (SIZE(1..maxFailedMeasPerNode)) OF NodeMeasurementInitiationResult-Item
+
+
+NodeMeasurementInitiationResult-Item ::= SEQUENCE {
+ nodemeasurementFailedReportCharacteristics BIT STRING(SIZE(32)),
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { NodeMeasurementInitiationResult-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NodeMeasurementInitiationResult-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
NoofRRCConnections ::= INTEGER (1..65536,...)
@@ -3826,8 +4459,8 @@ NG-eNB-RadioResourceStatus ::= SEQUENCE {
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,
+ dL-Total-PRB-usage DL-Total-PRB-usage,
+ uL-Total-PRB-usage UL-Total-PRB-usage,
iE-Extensions ProtocolExtensionContainer { { NG-eNB-RadioResourceStatus-ExtIEs} } OPTIONAL,
...
}
@@ -3844,8 +4477,8 @@ UL-scheduling-PDCCH-CCE-usage ::= INTEGER (0.. 100)
TNLCapacityIndicator ::= SEQUENCE {
dLTNLOfferedCapacity OfferedCapacity,
-dLTNLAvailableCapacity AvailableCapacity,
-uLTNLOfferedCapacity OfferedCapacity,
+ dLTNLAvailableCapacity AvailableCapacity,
+ uLTNLOfferedCapacity OfferedCapacity,
uLTNLAvailableCapacity AvailableCapacity,
iE-Extensions ProtocolExtensionContainer { { TNLCapacityIndicator-ExtIEs} } OPTIONAL,
...
@@ -3941,6 +4574,7 @@ NPNMobilityInformation-SNPN ::= SEQUENCE {
}
NPNMobilityInformation-SNPN-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-EquivalentSNPNs CRITICALITY reject EXTENSION EquivalentSNPNs PRESENCE optional},
...
}
@@ -4084,12 +4718,15 @@ NR-U-Channel-List ::= SEQUENCE (SIZE (1..maxnoofNR-UChannelIDs)) OF NR-U-Channel
NR-U-Channel-Item ::= SEQUENCE {
nR-U-ChannelID NR-U-ChannelID,
channelOccupancyTimePercentageDL ChannelOccupancyTimePercentage,
- energyDetectionThreshold EnergyDetectionThreshold,
+ energyDetectionThresholdDL EnergyDetectionThreshold,
iE-Extension ProtocolExtensionContainer { {NR-U-Channel-Item-ExtIEs} } OPTIONAL,
...
}
NR-U-Channel-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-ChannelOccupancyTimePercentageUL CRITICALITY ignore EXTENSION ChannelOccupancyTimePercentage PRESENCE optional}|
+ { ID id-EnergyDetectionThresholdUL CRITICALITY ignore EXTENSION EnergyDetectionThreshold PRESENCE optional}|
+ { ID id-RadioResourceStatusNR-U CRITICALITY ignore EXTENSION RadioResourceStatusNR-U PRESENCE optional},
...
}
@@ -4115,8 +4752,18 @@ NR-U-ChannelInfo-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
-Bandwidth ::= ENUMERATED{mhz10, mhz20, mhz40, mhz60, mhz80, ...}
+Bandwidth ::= ENUMERATED{mhz10, mhz20, mhz40, mhz60, mhz80, ...,mhz100}
+NRA2XServicesAuthorized ::= SEQUENCE {
+ aerialUE AerialUE OPTIONAL,
+ aerialControllerUE AerialControllerUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {NRA2XServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NRA2XServicesAuthorized-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
NRCyclicPrefix ::= ENUMERATED {normal, extended, ...}
@@ -4143,7 +4790,7 @@ NRFrequencyBandItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
NRFrequencyInfo ::= SEQUENCE {
nrARFCN NRARFCN,
sul-information SUL-Information OPTIONAL,
- frequencyBand-List NRFrequencyBand-List,
+ frequencyBand-List NRFrequencyBand-List,
iE-Extension ProtocolExtensionContainer { {NRFrequencyInfo-ExtIEs} } OPTIONAL,
...
}
@@ -4175,8 +4822,8 @@ NRModeInfoFDD ::= SEQUENCE {
}
NRModeInfoFDD-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- { ID id-ULCarrierList CRITICALITY ignore EXTENSION NRCarrierList PRESENCE optional }|
- { ID id-DLCarrierList CRITICALITY ignore EXTENSION NRCarrierList PRESENCE optional }|
+ { ID id-ULCarrierList CRITICALITY ignore EXTENSION NRCarrierList PRESENCE optional }|
+ { ID id-DLCarrierList CRITICALITY ignore EXTENSION NRCarrierList PRESENCE optional }|
{ ID id-UL-GNB-DU-Cell-Resource-Configuration CRITICALITY ignore EXTENSION GNB-DU-Cell-Resource-Configuration PRESENCE optional }|
{ ID id-DL-GNB-DU-Cell-Resource-Configuration CRITICALITY ignore EXTENSION GNB-DU-Cell-Resource-Configuration PRESENCE optional },
...
@@ -4191,15 +4838,15 @@ NRModeInfoTDD ::= SEQUENCE {
}
NRModeInfoTDD-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- {ID id-IntendedTDD-DL-ULConfiguration-NR CRITICALITY ignore EXTENSION IntendedTDD-DL-ULConfiguration-NR PRESENCE optional }|
- {ID id-TDDULDLConfigurationCommonNR CRITICALITY ignore EXTENSION TDDULDLConfigurationCommonNR PRESENCE optional }|
- { ID id-CarrierList CRITICALITY ignore EXTENSION NRCarrierList PRESENCE optional }|
- {ID id-tdd-GNB-DU-Cell-Resource-Configuration CRITICALITY ignore EXTENSION GNB-DU-Cell-Resource-Configuration PRESENCE optional },
+ { ID id-IntendedTDD-DL-ULConfiguration-NR CRITICALITY ignore EXTENSION IntendedTDD-DL-ULConfiguration-NR PRESENCE optional }|
+ { ID id-TDDULDLConfigurationCommonNR CRITICALITY ignore EXTENSION TDDULDLConfigurationCommonNR PRESENCE optional }|
+ { ID id-CarrierList CRITICALITY ignore EXTENSION NRCarrierList PRESENCE optional }|
+ { ID id-tdd-GNB-DU-Cell-Resource-Configuration CRITICALITY ignore EXTENSION GNB-DU-Cell-Resource-Configuration PRESENCE optional },
...
}
-NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ..., nrb33, nrb62, nrb124, nrb148, nrb248, nrb44, nrb58, nrb92, nrb119, nrb188, nrb242}
+NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ..., nrb33, nrb62, nrb124, nrb148, nrb248, nrb44, nrb58, nrb92, nrb119, nrb188, nrb242, nrb15}
NRPagingeDRXInformation ::= SEQUENCE {
@@ -4246,6 +4893,34 @@ NRPaging-eDRX-Cycle-Inactive ::= ENUMERATED {
...
}
+NRPagingLongeDRXInformationforRRCINACTIVE ::= SEQUENCE {
+ nRPaging-long-eDRX-Cycle-Inactive NRPaging-long-eDRX-Cycle-Inactive,
+ nRPaging-Time-Window-Inactive NRPaging-Time-Window-Inactive,
+ iE-Extensions ProtocolExtensionContainer { {NRPagingLongeDRXInformationforRRCINACTIVE-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NRPagingLongeDRXInformationforRRCINACTIVE-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NRPaging-long-eDRX-Cycle-Inactive ::= ENUMERATED {
+ hf2, hf4, hf8, hf16,
+ hf32, hf64, hf128, hf256,
+ hf512, hf1024,
+ ...
+}
+
+
+NRPaging-Time-Window-Inactive ::= ENUMERATED {
+ s1, s2, s3, s4, s5,
+ s6, s7, s8, s9, s10,
+ s11, s12, s13, s14, s15, s16,
+ s17, s18, s19, s20, s21, s22,
+ s23, s24, s25, s26, s27, s28, s29,
+ s30, s31, s32, ...
+}
+
NRPCI ::= INTEGER (0..1007, ...)
NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ..., scs480, scs960}
@@ -4270,8 +4945,8 @@ NG-RANTraceID ::=OCTET STRING (SIZE (8))
NonGBRResources-Offered ::= ENUMERATED {true, ...}
NRV2XServicesAuthorized ::= SEQUENCE {
- vehicleUE VehicleUE OPTIONAL,
-pedestrianUE PedestrianUE OPTIONAL,
+ vehicleUE VehicleUE OPTIONAL,
+ pedestrianUE PedestrianUE OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {NRV2XServicesAuthorized-ExtIEs} } OPTIONAL,
...
}
@@ -4478,6 +5153,33 @@ PDCPSNLength-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+PDUSetQoSParameters ::= SEQUENCE {
+ ulPDUSetQoSInformation PDUSetQoSInformation OPTIONAL,
+ dlPDUSetQoSInformation PDUSetQoSInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUSetQoSParameters-ExtIEs } } OPTIONAL
+}
+
+PDUSetQoSParameters-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+ }
+
+
+PDUSetQoSInformation ::= SEQUENCE {
+ pduSetDelayBudget ExtendedPacketDelayBudget OPTIONAL,
+ pduSetErrorRate PacketErrorRate OPTIONAL,
+ pduSetIntegratedHandlingInformation ENUMERATED {true, false, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PDUSetQoSInformation-ExtIEs } } OPTIONAL
+}
+
+PDUSetQoSInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PDUSetbasedHandlingIndicator ::= ENUMERATED {
+ supported,
+ ...
+}
+
PDUSessionAggregateMaximumBitRate ::= SEQUENCE {
@@ -4542,6 +5244,19 @@ PDUSession-List-withDataForwardingRequest-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::
}
+PDUSessionsListToBeReleased-UPError ::= SEQUENCE (SIZE (1.. maxnoofPDUSessions)) OF PDUSessionsListToBeReleased-UPError-Item
+
+PDUSessionsListToBeReleased-UPError-Item ::= SEQUENCE {
+ pduSessionId PDUSession-ID,
+ userPlaneErrorIndicator UserPlaneErrorIndicator,
+ iE-Extension ProtocolExtensionContainer { {PDUSessionsListToBeReleased-UPError-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PDUSessionsListToBeReleased-UPError-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- **************************************************************
--
@@ -4621,7 +5336,7 @@ PDUSessionResourcesToBeSetup-Item ::= SEQUENCE {
s-NSSAI S-NSSAI,
pduSessionAMBR PDUSessionAggregateMaximumBitRate OPTIONAL,
uL-NG-U-TNLatUPF UPTransportLayerInformation,
- source-DL-NG-U-TNL-Information UPTransportLayerInformation OPTIONAL,
+ source-DL-NG-U-TNL-Information UPTransportLayerInformation OPTIONAL,
securityIndication SecurityIndication OPTIONAL,
pduSessionType PDUSessionType,
pduSessionNetworkInstance PDUSessionNetworkInstance OPTIONAL,
@@ -4632,13 +5347,13 @@ PDUSessionResourcesToBeSetup-Item ::= SEQUENCE {
}
PDUSessionResourcesToBeSetup-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
-{ ID id-Additional-UL-NG-U-TNLatUPF-List CRITICALITY ignore EXTENSION Additional-UL-NG-U-TNLatUPF-List PRESENCE optional}|
-{ ID id-PDUSessionCommonNetworkInstance CRITICALITY ignore EXTENSION PDUSessionCommonNetworkInstance PRESENCE optional}|
-{ ID id-Redundant-UL-NG-U-TNLatUPF CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional}|
-{ ID id-Additional-Redundant-UL-NG-U-TNLatUPF-List CRITICALITY ignore EXTENSION Additional-UL-NG-U-TNLatUPF-List PRESENCE optional}|
-{ ID id-RedundantCommonNetworkInstance CRITICALITY ignore EXTENSION PDUSessionCommonNetworkInstance PRESENCE optional}|
-{ ID id-RedundantPDUSessionInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional}|
-{ ID id-MBS-SessionAssociatedInformation CRITICALITY ignore EXTENSION MBS-SessionAssociatedInformation PRESENCE optional},
+ { ID id-Additional-UL-NG-U-TNLatUPF-List CRITICALITY ignore EXTENSION Additional-UL-NG-U-TNLatUPF-List PRESENCE optional}|
+ { ID id-PDUSessionCommonNetworkInstance CRITICALITY ignore EXTENSION PDUSessionCommonNetworkInstance PRESENCE optional}|
+ { ID id-Redundant-UL-NG-U-TNLatUPF CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional}|
+ { ID id-Additional-Redundant-UL-NG-U-TNLatUPF-List CRITICALITY ignore EXTENSION Additional-UL-NG-U-TNLatUPF-List PRESENCE optional}|
+ { ID id-RedundantCommonNetworkInstance CRITICALITY ignore EXTENSION PDUSessionCommonNetworkInstance PRESENCE optional}|
+ { ID id-RedundantPDUSessionInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional}|
+ { ID id-MBS-SessionAssociatedInformation CRITICALITY ignore EXTENSION MBS-SessionAssociatedInformation PRESENCE optional},
...
}
@@ -4664,9 +5379,9 @@ PDUSessionResourceSetupInfo-SNterminated ::= SEQUENCE {
PDUSessionResourceSetupInfo-SNterminated-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ ID id-SecurityResult CRITICALITY reject EXTENSION SecurityResult PRESENCE optional}|
{ ID id-PDUSessionCommonNetworkInstance CRITICALITY ignore EXTENSION PDUSessionCommonNetworkInstance PRESENCE optional}|
- {ID id-DefaultDRB-Allowed CRITICALITY ignore EXTENSION DefaultDRB-Allowed PRESENCE optional}|
+ { ID id-DefaultDRB-Allowed CRITICALITY ignore EXTENSION DefaultDRB-Allowed PRESENCE optional}|
{ ID id-SplitSessionIndicator CRITICALITY reject EXTENSION SplitSessionIndicator PRESENCE optional}|
- {ID id-NonGBRResources-Offered CRITICALITY ignore EXTENSION NonGBRResources-Offered PRESENCE optional}|
+ { ID id-NonGBRResources-Offered CRITICALITY ignore EXTENSION NonGBRResources-Offered PRESENCE optional}|
{ ID id-Redundant-UL-NG-U-TNLatUPF CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional}|
{ ID id-RedundantCommonNetworkInstance CRITICALITY ignore EXTENSION PDUSessionCommonNetworkInstance PRESENCE optional}|
{ ID id-RedundantPDUSessionInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional},
@@ -4707,9 +5422,10 @@ PDUSessionResourceSetupResponseInfo-SNterminated ::= SEQUENCE {
}
PDUSessionResourceSetupResponseInfo-SNterminated-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- { ID id-DRB-IDs-takenintouse CRITICALITY reject EXTENSION DRB-List PRESENCE optional}|
- { ID id-Redundant-DL-NG-U-TNLatNG-RAN CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional}|
- { ID id-UsedRSNInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional},
+ { ID id-DRB-IDs-takenintouse CRITICALITY reject EXTENSION DRB-List PRESENCE optional}|
+ { ID id-Redundant-DL-NG-U-TNLatNG-RAN CRITICALITY ignore EXTENSION UPTransportLayerInformation PRESENCE optional}|
+ { ID id-UsedRSNInformation CRITICALITY ignore EXTENSION RedundantPDUSessionInformation PRESENCE optional}|
+ { ID id-S-CPAC-dataforwardinginfofromSource CRITICALITY ignore EXTENSION DataforwardingandOffloadingInfofromSource PRESENCE optional},
...
}
@@ -4721,7 +5437,7 @@ DRBsToBeSetupList-SetupResponse-SNterminated-Item ::= SEQUENCE {
dRB-QoS QoSFlowLevelQoSParameters,
pDCP-SNLength PDCPSNLength OPTIONAL,
rLC-Mode RLCMode,
- uL-Configuration ULConfiguration OPTIONAL,
+ uL-Configuration ULConfiguration OPTIONAL,
secondary-SN-UL-PDCP-UP-TNLInfo UPTransportParameters OPTIONAL,
duplicationActivation DuplicationActivation OPTIONAL,
qoSFlowsMappedtoDRB-SetupResponse-SNterminated QoSFlowsMappedtoDRB-SetupResponse-SNterminated,
@@ -4731,7 +5447,7 @@ DRBsToBeSetupList-SetupResponse-SNterminated-Item ::= SEQUENCE {
DRBsToBeSetupList-SetupResponse-SNterminated-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ ID id-Additional-PDCP-Duplication-TNL-List CRITICALITY ignore EXTENSION Additional-PDCP-Duplication-TNL-List PRESENCE optional}|
- { ID id-RLCDuplicationInformation CRITICALITY ignore EXTENSION RLCDuplicationInformation PRESENCE optional},
+ { ID id-RLCDuplicationInformation CRITICALITY ignore EXTENSION RLCDuplicationInformation PRESENCE optional},
...
}
@@ -4789,7 +5505,7 @@ DRBsToBeSetupList-Setup-MNterminated-Item ::= SEQUENCE {
DRBsToBeSetupList-Setup-MNterminated-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ ID id-Additional-PDCP-Duplication-TNL-List CRITICALITY ignore EXTENSION Additional-PDCP-Duplication-TNL-List PRESENCE optional}|
- { ID id-RLCDuplicationInformation CRITICALITY ignore EXTENSION RLCDuplicationInformation PRESENCE optional},
+ { ID id-RLCDuplicationInformation CRITICALITY ignore EXTENSION RLCDuplicationInformation PRESENCE optional},
...
}
@@ -5148,7 +5864,7 @@ DRBsToBeSetup-List-ModRqd-SNterminated ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF DR
DRBsToBeSetup-List-ModRqd-SNterminated-Item ::= SEQUENCE {
drb-ID DRB-ID,
- pDCP-SNLength PDCPSNLength OPTIONAL,
+ pDCP-SNLength PDCPSNLength OPTIONAL,
sn-UL-PDCP-UPTNLinfo UPTransportParameters,
dRB-QoS QoSFlowLevelQoSParameters,
secondary-SN-UL-PDCP-UP-TNLInfo UPTransportParameters OPTIONAL,
@@ -5177,6 +5893,7 @@ QoSFlowsSetupMappedtoDRB-ModRqd-SNterminated-Item ::= SEQUENCE {
}
QoSFlowsSetupMappedtoDRB-ModRqd-SNterminated-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ {ID id-QosFlowMappingIndication CRITICALITY ignore EXTENSION QoSFlowMappingIndication PRESENCE optional},
...
}
@@ -5212,6 +5929,7 @@ QoSFlowsModifiedMappedtoDRB-ModRqd-SNterminated-Item ::= SEQUENCE {
}
QoSFlowsModifiedMappedtoDRB-ModRqd-SNterminated-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ {ID id-QosFlowMappingIndication CRITICALITY ignore EXTENSION QoSFlowMappingIndication PRESENCE optional},
...
}
@@ -5378,11 +6096,14 @@ PDUSessionCommonNetworkInstance ::= OCTET STRING
PDUSession-PairID ::= INTEGER (0..255, ...)
+
Periodical ::= SEQUENCE {
iE-Extensions ProtocolExtensionContainer { { Periodical-ExtIEs} } OPTIONAL,
...
}
+
+
Periodical-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
@@ -5411,6 +6132,50 @@ PNI-NPN-Restricted-Information ::= ENUMERATED { restriced, not-restricted, ...}
PortNumber ::= BIT STRING (SIZE (16))
+PosPartialUEContextInfo ::= SEQUENCE {
+ requestedSRSTransmissionCharacteristics RequestedSRSTransmissionCharacteristics OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PosPartialUEContextInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PosPartialUEContextInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PredictedUETrajectory-Item ::= SEQUENCE{
+ predictedtrajectoryCellInfo PredictedTrajectoryCellInfo,
+ iE-Extensions ProtocolExtensionContainer { { PredictedUETrajectory-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PredictedUETrajectory-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+PredictedTrajectoryCellInfo::= CHOICE {
+ nG-RAN-Cell-Predicted PredictedTrajectoryNGRANCellInfo,
+ choice-extension ProtocolIE-Single-Container { { PredictedTrajectoryCellInfo-ExtIEs} }
+}
+
+PredictedTrajectoryCellInfo-ExtIEs XNAP-PROTOCOL-IES ::= {
+ ...
+}
+
+PredictedTrajectoryNGRANCellInfo ::= SEQUENCE {
+ globalNG-RANCell-ID GlobalNG-RANCell-ID,
+ predictedTimeUEStaysInCell INTEGER (0..4095) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PredictedTrajectoryNGRANCellInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PredictedTrajectoryNGRANCellInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
PriorityLevelQoS ::= INTEGER (1..127, ...)
@@ -5465,6 +6230,28 @@ PSCellChangeHistory ::= ENUMERATED {reporting-full-history, ...}
PSCellHistoryInformationRetrieve ::= ENUMERATED {query, ...}
+PSCellListContainer ::= OCTET STRING
+
+PNI-NPN-AreaScopeofMDT ::= SEQUENCE {
+ cAGListforMDT CAGListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {PNI-NPN-AreaScopeofMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PNI-NPN-AreaScopeofMDT-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PNI-NPNBasedMDT::= SEQUENCE {
+ cAGListforMDT CAGListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {PNI-NPNBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PNI-NPNBasedMDT-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
-- Q
@@ -5491,6 +6278,144 @@ UEAppLayerMeasInfo-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+QMCCoordinationRequest ::= SEQUENCE {
+ mN-to-SN-QMCCoordRequestList MN-to-SN-QMCCoordRequestList OPTIONAL,
+ sN-to-MN-QMCCoordRequestList SN-to-MN-QMCCoordRequestList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QMCCoordinationRequest-ExtIEs} } OPTIONAL,
+ ...
+}
+
+QMCCoordinationRequest-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MN-to-SN-QMCCoordRequestList ::= SEQUENCE (SIZE(1..maxnoofUEAppLayerMeas)) OF MN-to-SN-QMCCoordRequestList-Item
+
+
+MN-to-SN-QMCCoordRequestList-Item ::= SEQUENCE {
+ qOEReference QOEReference,
+ qOEMeasConfigAppLayerID QOEMeasConfAppLayerID OPTIONAL,
+ measCollectionEntityIPAddress MeasCollectionEntityIPAddress OPTIONAL,
+ qoEReportingPathRequest ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ rVQoEReportingPathRequest ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ furtherRVQoEInterestInquiry ENUMERATED{true, ...} OPTIONAL,
+ furtherRVQoEReportingPathInquiry ENUMERATED{true, ...} OPTIONAL,
+ currentRVQoEConfig RVQoEConfig OPTIONAL,
+ availableRVQoEMetrics AvailableRVQoEMetrics OPTIONAL,
+ configReleaseIndication ENUMERATED{rvqoe,qoe-and-rvqoe, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MN-to-SN-QMCCoordRequestList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MN-to-SN-QMCCoordRequestList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SN-to-MN-QMCCoordRequestList ::= SEQUENCE (SIZE(1..maxnoofUEAppLayerMeas)) OF SN-to-MN-QMCCoordRequestList-Item
+
+
+SN-to-MN-QMCCoordRequestList-Item ::= SEQUENCE {
+ qOEReference QOEReference,
+ measCollectionEntityIPAddress MeasCollectionEntityIPAddress OPTIONAL,
+ qoEReportingPathRequest ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ rVQoEReportingPathRequest ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ furtherRVQoEInterestInquiry ENUMERATED{true, ...} OPTIONAL,
+ furtherRVQoEReportingPathInquiry ENUMERATED{true, ...} OPTIONAL,
+ currentRVQoEConfig RVQoEConfig OPTIONAL,
+ availableRVQoEMetrics AvailableRVQoEMetrics OPTIONAL,
+ configReleaseIndication ENUMERATED{rvqoe,qoe-and-rvqoe, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SN-to-MN-QMCCoordRequestList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SN-to-MN-QMCCoordRequestList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+QMCCoordinationResponse ::= SEQUENCE {
+ mN-to-SN-QMCCoordResponseList MN-to-SN-QMCCoordResponseList OPTIONAL,
+ sN-to-MN-QMCCoordResponseList SN-to-MN-QMCCoordResponseList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QMCCoordinationResponse-ExtIEs} } OPTIONAL,
+ ...
+}
+
+QMCCoordinationResponse-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+MN-to-SN-QMCCoordResponseList ::= SEQUENCE (SIZE(1..maxnoofUEAppLayerMeas)) OF MN-to-SN-QMCCoordResponseList-Item
+
+
+MN-to-SN-QMCCoordResponseList-Item ::= SEQUENCE {
+ qOEReference QOEReference,
+ qOEMeasConfigAppLayerID QOEMeasConfAppLayerID OPTIONAL,
+ qoEConfigSendingPath ENUMERATED{mn, sn, ...} OPTIONAL,
+ qoEReportingPathResponse ENUMERATED{accepted, rejected, ...} OPTIONAL,
+ rVQoEReportingPathResponse ENUMERATED{accepted, rejected, ...} OPTIONAL,
+ furtherRVQoEInterestResponse ENUMERATED{interested, not-interested, ...} OPTIONAL,
+ furtherRVQoEReportingPathResponse ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ preferredRVQoEConfig RVQoEConfig OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { MN-to-SN-QMCCoordResponseList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MN-to-SN-QMCCoordResponseList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SN-to-MN-QMCCoordResponseList ::= SEQUENCE (SIZE(1..maxnoofUEAppLayerMeas)) OF SN-to-MN-QMCCoordResponseList-Item
+
+
+SN-to-MN-QMCCoordResponseList-Item ::= SEQUENCE {
+ qOEReference QOEReference,
+ qoEReportingPathResponse ENUMERATED{accepted, rejected, ...} OPTIONAL,
+ rVQoEReportingPathResponse ENUMERATED{accepted, rejected, ...} OPTIONAL,
+ furtherRVQoEInterestResponse ENUMERATED{interested, not-interested, ...} OPTIONAL,
+ furtherRVQoEReportingPathResponse ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ preferredRVQoEConfig RVQoEConfig OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SN-to-MN-QMCCoordResponseList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SN-to-MN-QMCCoordResponseList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+QoERVQoEReportingPaths ::= SEQUENCE {
+ qoEReportingPath ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ rVQoEReportingPath ENUMERATED{srb4, srb5, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QoERVQoEReportingPaths-ExtIEs} },
+ ...
+}
+
+QoERVQoEReportingPaths-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RVQoEConfig ::= SEQUENCE {
+ availableRANVisibleQoEMetrics AvailableRVQoEMetrics OPTIONAL,
+ reportingPeriodicity RVQoEReportingPeriodicity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RVQoEConfig-ExtIEs} },
+ ...
+}
+
+RVQoEConfig-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RVQoEReportingPeriodicity ::= ENUMERATED {
+ ms120,
+ ms240,
+ ms480,
+ ms640,
+ ms1024,
+ ...
+}
+
QOEMeasConfAppLayerID ::= INTEGER (0..15, ...)
QOEMeasStatus ::= ENUMERATED {ongoing, ...}
@@ -5522,9 +6447,10 @@ QoSFlowLevelQoSParameters ::= SEQUENCE {
}
QoSFlowLevelQoSParameters-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- {ID id-QoSMonitoringRequest CRITICALITY ignore EXTENSION QosMonitoringRequest PRESENCE optional}|
- {ID id-QosMonitoringReportingFrequency CRITICALITY ignore EXTENSION QosMonitoringReportingFrequency PRESENCE optional}|
- {ID id-QoSMonitoringDisabled CRITICALITY ignore EXTENSION QoSMonitoringDisabled PRESENCE optional},
+ {ID id-QoSMonitoringRequest CRITICALITY ignore EXTENSION QosMonitoringRequest PRESENCE optional}|
+ {ID id-QosMonitoringReportingFrequency CRITICALITY ignore EXTENSION QosMonitoringReportingFrequency PRESENCE optional}|
+ {ID id-QoSMonitoringDisabled CRITICALITY ignore EXTENSION QoSMonitoringDisabled PRESENCE optional}|
+ {ID id-PDUSetQoSParameters CRITICALITY ignore EXTENSION PDUSetQoSParameters PRESENCE optional},
...
}
@@ -5579,10 +6505,10 @@ QoSFlowwithCause-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
QoS-Mapping-Information ::= SEQUENCE {
-dscp BIT STRING (SIZE(6)) OPTIONAL,
-flow-label BIT STRING (SIZE(20)) OPTIONAL,
-iE-Extensions ProtocolExtensionContainer { {QoS-Mapping-Information-ExtIEs} } OPTIONAL,
-...
+ dscp BIT STRING (SIZE(6)) OPTIONAL,
+ flow-label BIT STRING (SIZE(20)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QoS-Mapping-Information-ExtIEs} } OPTIONAL,
+ ...
}
QoS-Mapping-Information-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
@@ -5618,8 +6544,9 @@ QoSFlowsToBeSetup-Item ::= SEQUENCE {
}
QoSFlowsToBeSetup-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- { ID id-TSCTrafficCharacteristics CRITICALITY ignore EXTENSION TSCTrafficCharacteristics PRESENCE optional}|
- { ID id-RedundantQoSFlowIndicator CRITICALITY ignore EXTENSION RedundantQoSFlowIndicator PRESENCE optional},
+ { ID id-TSCTrafficCharacteristics CRITICALITY ignore EXTENSION TSCTrafficCharacteristics PRESENCE optional}|
+ { ID id-RedundantQoSFlowIndicator CRITICALITY ignore EXTENSION RedundantQoSFlowIndicator PRESENCE optional}|
+ { ID id-ECNMarkingorCongestionInformationReportingRequest CRITICALITY ignore EXTENSION ECNMarkingorCongestionInformationReportingRequest PRESENCE optional},
...
}
@@ -5647,19 +6574,20 @@ RACH-Config-Common ::= OCTET STRING
RACH-Config-Common-IAB ::= OCTET STRING
-RACHReportInformation ::= SEQUENCE (SIZE(1.. maxnoofRACHReports)) OF RACHReportList-Item
-RACHReportList-Item ::= SEQUENCE {
- rACHReport RACHReportContainer,
- iE-Extensions ProtocolExtensionContainer { { RACHReportList-Item-ExtIEs} } OPTIONAL,
+RAReport ::= SEQUENCE (SIZE(1.. maxnoofRAReports)) OF RAReportList-Item
+RAReportList-Item ::= SEQUENCE {
+ rAReport RAReportContainer,
+ iE-Extensions ProtocolExtensionContainer { { RAReportList-Item-ExtIEs} } OPTIONAL,
...
}
-RACHReportList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- { ID id-UEAssistantIdentifier CRITICALITY ignore EXTENSION NG-RANnodeUEXnAPID PRESENCE optional},
+RAReportList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-UEAssistantIdentifier CRITICALITY ignore EXTENSION NG-RANnodeUEXnAPID PRESENCE optional}|
+ { ID id-PSCellListContainer CRITICALITY ignore EXTENSION PSCellListContainer PRESENCE optional},
...
}
-RACHReportContainer ::= OCTET STRING
+RAReportContainer ::= OCTET STRING
RadioResourceStatus ::= CHOICE {
@@ -5745,7 +6673,7 @@ RBsetConfiguration-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
-Redcap-Bcast-Information ::= BIT STRING(SIZE(8))
+Redcap-Bcast-Information ::= BIT STRING(SIZE(8))
RedundantQoSFlowIndicator ::= ENUMERATED {true, false}
@@ -5813,21 +6741,38 @@ ExtendedReportIntervalMDT ::= ENUMERATED {
}
-ReportCharacteristics ::= BIT STRING(SIZE(32))
+ReportCharacteristics ::= BIT STRING(SIZE(32))
+
+ReportCharacteristicsForDataCollection ::= BIT STRING(SIZE(32))
+
ReportingPeriodicity ::= ENUMERATED {
half-thousand-ms,
-one-thousand-ms,
+ one-thousand-ms,
two-thousand-ms,
five-thousand-ms,
ten-thousand-ms,
...
}
+ReportingPeriodicityForDataCollection ::= ENUMERATED {
+ half-thousand-ms,
+ one-thousand-ms,
+ two-thousand-ms,
+ five-thousand-ms,
+ ten-thousand-ms,
+ ...
+}
+
+RequestedPredictionTime ::= INTEGER (1..60, ...)
+
RegistrationRequest ::= ENUMERATED {start, stop, add, ... }
+RegistrationRequestForDataCollection ::= ENUMERATED {start, stop, ... }
+
+
RequestReferenceID ::= INTEGER (1..64, ...)
@@ -5989,7 +6934,7 @@ RRCConfigIndication ::= ENUMERATED {
RRCConnections::= SEQUENCE {
noofRRCConnections NoofRRCConnections,
- availableRRCConnectionCapacityValue AvailableRRCConnectionCapacityValue,
+ availableRRCConnectionCapacityValue AvailableRRCConnectionCapacityValue,
iE-Extensions ProtocolExtensionContainer { { RRCConnections-ExtIEs} } OPTIONAL,
...
}
@@ -6082,6 +7027,32 @@ RRCResumeCause ::= ENUMERATED {
}
+RaReportIndicationList ::= SEQUENCE (SIZE(1..maxnoofUEsforRAReportIndications)) OF RaReportIndicationList-Item
+
+RaReportIndicationList-Item ::= SEQUENCE {
+ m-NG-RAN-node-UE-XnAP-ID NG-RANnodeUEXnAPID,
+ iE-Extensions ProtocolExtensionContainer { { RaReportIndicationList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RaReportIndicationList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+RadioResourceStatusNR-U ::= SEQUENCE {
+ dL-Total-PRB-usage INTEGER (0..100),
+ uL-Total-PRB-usage INTEGER (0..100),
+ iE-Extensions ProtocolExtensionContainer {{ RadioResourceStatusNR-U-ExtIEs}} OPTIONAL,
+ ...
+}
+
+RadioResourceStatusNR-U-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- S
SCGreconfigNotification ::= ENUMERATED {executed, ... , executed-deleted, deleted }
@@ -6098,6 +7069,49 @@ S-BasedMDT-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+S-CPAC-Request ::= ENUMERATED {initiation, ...}
+
+S-CPAC-Request-Info ::= SEQUENCE {
+ s-CPAC-Security-Config-List S-CPAC-SecurityConfig-List,
+ s-CPAC-MultiTargetSN-List S-CPAC-MultiTargetSN-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {S-CPAC-Request-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-CPAC-Request-Info-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+S-CPAC-ReferenceConfig-Request ::= ENUMERATED {request, ...}
+
+S-CPAC-SecurityConfig-List ::= SEQUENCE (SIZE(1..maxnoofSecurityConfigurations)) OF S-CPAC-SecurityConfig-Item
+
+S-CPAC-SecurityConfig-Item ::= SEQUENCE {
+ s-ng-RANnode-SecurityKey S-NG-RANnode-SecurityKey,
+ sk-counter SK-COUNTER,
+ iE-Extensions ProtocolExtensionContainer { {S-CPAC-SecurityConfig-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-CPAC-SecurityConfig-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+S-CPAC-MultiTargetSN-List ::= SEQUENCE (SIZE(1..maxnoofTargetSNsMinusOne)) OF S-CPAC-MultiTargetSN-Item
+
+S-CPAC-MultiTargetSN-Item ::= SEQUENCE {
+ target-S-NG-RANnodeID GlobalNG-RANNode-ID,
+ recommendedCandidatePSCells OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer { {S-CPAC-MultiTargetSN-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-CPAC-MultiTargetSN-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+S-CPAC-InterSN-ExecutionNotify ::= ENUMERATED {executed, ...}
+
ServiceType ::= ENUMERATED{
qMC-for-streaming-service,
qMC-for-MTSI-service,
@@ -6142,7 +7156,7 @@ SDTIndicator ::= ENUMERATED {true, ...}
SDTAssistantInfo ::= ENUMERATED {single-packet, multiple-packets, ...}
-SDT-Termination-Request ::= ENUMERATED {radio-link-problem, normal, ...}
+SDT-Termination-Request ::= ENUMERATED {radio-link-problem, normal, ..., large-sdt-volume-from-BSR}
SDTPartialUEContextInfo ::= SEQUENCE {
dRBsToBeSetup SDT-DRBsToBeSetupList OPTIONAL,
@@ -6253,9 +7267,9 @@ SensorMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofSensorName)) OF SensorName
SensorMeasConfig::= ENUMERATED {setup,...}
SensorName ::= SEQUENCE {
- uncompensatedBarometricConfig ENUMERATED {true, ...} OPTIONAL,
- ueSpeedConfig ENUMERATED {true, ...} OPTIONAL,
- ueOrientationConfig ENUMERATED {true, ...} OPTIONAL,
+ uncompensatedBarometricConfig ENUMERATED {true, ...} OPTIONAL,
+ ueSpeedConfig ENUMERATED {true, ...} OPTIONAL,
+ ueOrientationConfig ENUMERATED {true, ...} OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {SensorNameConfig-ExtIEs} } OPTIONAL,
...
}
@@ -6366,7 +7380,7 @@ ServedCells-E-UTRA-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
ServedCellsToUpdate-E-UTRA ::= SEQUENCE {
served-Cells-ToAdd-E-UTRA ServedCells-E-UTRA OPTIONAL,
served-Cells-ToModify-E-UTRA ServedCells-ToModify-E-UTRA OPTIONAL,
- served-Cells-ToDelete-E-UTRA SEQUENCE (SIZE (1..maxnoofCellsinNG-RANnode)) OF E-UTRA-CGI OPTIONAL,
+ served-Cells-ToDelete-E-UTRA SEQUENCE (SIZE (1..maxnoofCellsinNG-RANnode)) OF E-UTRA-CGI OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {ServedCellsToUpdate-E-UTRA-ExtIEs} } OPTIONAL,
...
}
@@ -6416,12 +7430,15 @@ ServedCellInformation-NR-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ ID id-SSB-PositionsInBurst CRITICALITY ignore EXTENSION SSB-PositionsInBurst PRESENCE optional }|
{ ID id-NRCellPRACHConfig CRITICALITY ignore EXTENSION NRCellPRACHConfig PRESENCE optional }|
{ ID id-NPN-Broadcast-Information CRITICALITY reject EXTENSION NPN-Broadcast-Information PRESENCE optional }|
- { ID id-CSI-RSTransmissionIndication CRITICALITY ignore EXTENSION CSI-RSTransmissionIndication PRESENCE optional } |
+ { ID id-CSI-RSTransmissionIndication CRITICALITY ignore EXTENSION CSI-RSTransmissionIndication PRESENCE optional }|
{ ID id-SFN-Offset CRITICALITY ignore EXTENSION SFN-Offset PRESENCE optional }|
{ ID id-Supported-MBS-FSA-ID-List CRITICALITY ignore EXTENSION Supported-MBS-FSA-ID-List PRESENCE optional }|
- { ID id-NR-U-ChannelInfo-List CRITICALITY ignore EXTENSION NR-U-ChannelInfo-List PRESENCE optional }|
+ { ID id-NR-U-ChannelInfo-List CRITICALITY ignore EXTENSION NR-U-ChannelInfo-List PRESENCE optional }|
{ ID id-Additional-Measurement-Timing-Configuration-List CRITICALITY ignore EXTENSION Additional-Measurement-Timing-Configuration-List PRESENCE optional }|
- { ID id-Redcap-Bcast-Information CRITICALITY ignore EXTENSION Redcap-Bcast-Information PRESENCE optional },
+ { ID id-Redcap-Bcast-Information CRITICALITY ignore EXTENSION Redcap-Bcast-Information PRESENCE optional }|
+ { ID id-eRedcap-Bcast-Information CRITICALITY ignore EXTENSION ERedcap-Bcast-Information PRESENCE optional }|
+ { ID id-MobileIABCell CRITICALITY ignore EXTENSION MobileIABCell PRESENCE optional }|
+ { ID id-XR-Bcast-Information CRITICALITY ignore EXTENSION XR-Bcast-Information PRESENCE optional },
...
}
@@ -6484,7 +7501,7 @@ ServedCellSpecificInfoReq-NR-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
ServedCellsToUpdate-NR ::= SEQUENCE {
served-Cells-ToAdd-NR ServedCells-NR OPTIONAL,
served-Cells-ToModify-NR ServedCells-ToModify-NR OPTIONAL,
- served-Cells-ToDelete-NR SEQUENCE (SIZE (1..maxnoofCellsinNG-RANnode)) OF NR-CGI OPTIONAL,
+ served-Cells-ToDelete-NR SEQUENCE (SIZE (1..maxnoofCellsinNG-RANnode)) OF NR-CGI OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {ServedCellsToUpdate-NR-ExtIEs} } OPTIONAL,
...
}
@@ -6566,6 +7583,8 @@ SharedResourceType-ULDL-Sharing-DL-ResourcesChanged-ExtIEs XNAP-PROTOCOL-EXTENSI
...
}
+SK-COUNTER ::= INTEGER (0..65535)
+
SliceAvailableCapacity ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF SliceAvailableCapacity-Item
SliceAvailableCapacity-Item ::= SEQUENCE {
@@ -6606,6 +7625,57 @@ SliceRadioResourceStatus-Item ::= SEQUENCE {
SliceRadioResourceStatus-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+SLPositioning-Ranging-Services-Info::= SEQUENCE{
+ sLPositioning-Ranging-Authorized SLPositioning-Ranging-Authorized,
+ rSPP-transport-QoS-parameters RSPP-transport-QoS-parameters OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SLPositioning-Ranging-Services-Info-ExtIEs} } OPTIONAL
+}
+
+SLPositioning-Ranging-Services-Info-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SLPositioning-Ranging-Authorized ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+RSPP-transport-QoS-parameters ::= SEQUENCE {
+ rSPPQoSFlowList RSPPQoSFlowList,
+ rSPPLinkAggregateBitRates BitRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RSPP-transport-QoS-parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPP-transport-QoS-parameters-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+RSPPQoSFlowList ::= SEQUENCE (SIZE(1..maxnoofRSPPQoSFlows)) OF RSPPQoSFlowItem
+
+RSPPQoSFlowItem ::= SEQUENCE {
+ pQI FiveQI,
+ rSPPFlowBitRates RSPPFlowBitRates OPTIONAL,
+ range Range OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RSPPQoSFlowItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPPQoSFlowItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+RSPPFlowBitRates ::= SEQUENCE {
+ guaranteedFlowBitRate BitRate,
+ maximumFlowBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { { RSPPFlowBitRates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RSPPFlowBitRates-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
SNSSAIRadioResourceStatus-List ::= SEQUENCE (SIZE(1..maxnoofSliceItems)) OF SNSSAIRadioResourceStatus-Item
@@ -6701,9 +7771,21 @@ S-NSSAI-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
SNMobilityInformation ::= BIT STRING (SIZE(32))
+SNPNIdentity ::= SEQUENCE {
+ plmnID PLMN-Identity,
+ nid NID,
+ iE-Extensions ProtocolExtensionContainer { {SNPNIdentity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPNIdentity-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
SNTriggered ::=ENUMERATED{
-true,
-...
+ true,
+ ...
}
SpecialSubframeInfo-E-UTRA ::= SEQUENCE {
@@ -6744,11 +7826,15 @@ SplitSessionIndicator ::= ENUMERATED {
SplitSRBsTypes ::= ENUMERATED {srb1, srb2, srb1and2, ...}
+SPRAvailability ::= ENUMERATED {spr-available, ...}
+
+SRSConfiguration ::= OCTET STRING
+
SSBAreaCapacityValue-List ::= SEQUENCE (SIZE(1..maxnoofSSBAreas)) OF SSBAreaCapacityValue-List-Item
SSBAreaCapacityValue-List-Item ::= SEQUENCE {
-sSBIndex INTEGER(0..63),
-ssbAreaCapacityValue INTEGER (0..100),
+ sSBIndex INTEGER(0..63),
+ ssbAreaCapacityValue INTEGER (0..100),
iE-Extensions ProtocolExtensionContainer { { SSBAreaCapacityValue-List-Item-ExtIEs} } OPTIONAL,
...
}
@@ -6763,9 +7849,9 @@ SSBAreaRadioResourceStatus-List ::= SEQUENCE (SIZE(1..maxnoofSSBAreas)) OF SSBAr
SSBAreaRadioResourceStatus-List-Item ::= SEQUENCE {
sSBIndex INTEGER(0..63),
-ssb-Area-DL-GBR-PRB-usage DL-GBR-PRB-usage,
-ssb-Area-UL-GBR-PRB-usage UL-GBR-PRB-usage,
-ssb-Area-dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage,
+ ssb-Area-DL-GBR-PRB-usage DL-GBR-PRB-usage,
+ ssb-Area-UL-GBR-PRB-usage UL-GBR-PRB-usage,
+ ssb-Area-dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage,
ssb-Area-uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage,
ssb-Area-dL-Total-PRB-usage DL-Total-PRB-usage,
ssb-Area-uL-Total-PRB-usage UL-Total-PRB-usage,
@@ -6809,7 +7895,7 @@ SSB-PositionsInBurst-ExtIEs XNAP-PROTOCOL-IES ::= {
SSB-freqInfo ::= INTEGER (0..maxNRARFCN)
-SSB-subcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz120, kHz240, spare3, spare2, spare1, ...}
+SSB-subcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz120, kHz240, spare3, spare2, spare1, ...}
SSBOffsets-List ::= SEQUENCE (SIZE(1..maxnoofSSBAreas)) OF SSBOffsets-Item
@@ -6889,6 +7975,21 @@ SuccessfulHOReportList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
SuccessfulHOReportContainer ::= OCTET STRING
+SuccessfulPSCellChangeReportInformation ::= SEQUENCE (SIZE(1.. maxnoofSuccessfulPSCellChangeReports)) OF SuccessfulPSCellChangeReportList-Item
+SuccessfulPSCellChangeReportList-Item ::= SEQUENCE {
+ successfulPSCellChangeReport SuccessfulPSCellChangeReportContainer,
+ sNMobilityInformation SNMobilityInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { SuccessfulPSCellChangeReportList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SuccessfulPSCellChangeReportList-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SuccessfulPSCellChangeReportContainer ::= OCTET STRING
+
+
SUL-FrequencyBand ::= INTEGER (1..1024)
@@ -6968,6 +8069,80 @@ SymbolAllocation-in-Slot-BothDLandUL-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
+SNPN-CellBasedMDT::= SEQUENCE {
+ sNPN-CellIdListforMDT SNPN-CellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-CellBasedMDT-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNPN-CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF SNPN-CellIdforMDT-Item
+
+SNPN-CellIdforMDT-Item ::= SEQUENCE {
+ nRCGI NR-CGI,
+ nID NID,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-CellIdforMDT-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-CellIdforMDT-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SNPN-TAIBasedMDT ::= SEQUENCE {
+ sNPN-TAIListforMDT SNPN-TAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-TAIBasedMDT-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNPN-TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF SNPN-TAIforMDT-Item
+
+SNPN-TAIforMDT-Item ::= SEQUENCE {
+ plmn-ID PLMN-Identity,
+ tAC TAC,
+ nID NID,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-TAIforMDT-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-TAIforMDT-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+SNPN-BasedMDT::= SEQUENCE {
+ sNPNListforMDT SNPNListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {SNPN-BasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SNPN-BasedMDT-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SNPNListforMDT ::= SEQUENCE (SIZE(1.. maxnoofMDTSNPNs)) OF SNPNforMDT-Item
+
+SNPNforMDT-Item ::= SEQUENCE {
+ plmn-ID PLMN-Identity,
+ nID NID,
+ iE-Extensions ProtocolExtensionContainer {{SNPNforMDT-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SNPNforMDT-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
-- T
@@ -7022,6 +8197,58 @@ TAINSAGSupportItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+
+TAISliceUnavailableCellList ::= SEQUENCE (SIZE(1..maxnoofExtSliceItems)) OF TAISliceUnavailableCellItem
+
+TAISliceUnavailableCellItem ::= SEQUENCE {
+ sNSSAI S-NSSAI,
+ sliceAvailabilityList SliceAvailabilityList,
+ iE-Extensions ProtocolExtensionContainer { {TAISliceUnavailableCellItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAISliceUnavailableCellItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SliceAvailabilityList ::= CHOICE {
+ unavailableCellList UnavailableCellList,
+ availableCellList AvailableCellList,
+ choice-extension ProtocolIE-Single-Container { {SliceAvailabilityList-ExtIEs} },
+ ...
+}
+
+SliceAvailabilityList-ExtIEs XNAP-PROTOCOL-IES ::= {
+ ...
+}
+
+
+AvailableCellList ::= SEQUENCE {
+ availableNRCellList AvailableNRCellList,
+ iE-Extensions ProtocolExtensionContainer { {AvailableCellList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AvailableCellList-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AvailableNRCellList ::= SEQUENCE (SIZE (1..maxnoofCellsinNG-RANnode)) OF NR-CGI
+
+UnavailableCellList ::= SEQUENCE {
+ unavailableNRCellList UnavailableNRCellList,
+ iE-Extensions ProtocolExtensionContainer { {UnavailableCellList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UnavailableCellList-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UnavailableNRCellList ::= SEQUENCE (SIZE (1..maxnoofCellsinNG-RANnode)) OF NR-CGI
+
+
TAISupport-List ::= SEQUENCE (SIZE(1..maxnoofsupportedTACs)) OF TAISupport-Item
TAISupport-Item ::= SEQUENCE {
@@ -7076,7 +8303,7 @@ TAI-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
-TargetCellinEUTRAN ::= OCTET STRING -- This IE is to be encoded according to Global Cell ID in the Last Visited E-UTRAN Cell Information IE, as defined in in TS 36.413 [31]
+TargetCellinEUTRAN ::= OCTET STRING -- This IE is to be encoded according to Global Cell ID in the Last Visited E-UTRAN Cell Information IE, as defined in TS 36.413 [31]
@@ -7109,15 +8336,19 @@ Threshold-RSRQ ::= INTEGER(0..127)
Threshold-RSRP ::= INTEGER(0..127)
Threshold-SINR ::= INTEGER(0..127)
+TimeSinceFailure ::= INTEGER (0..172800, ...)
+
TimeSynchronizationAssistanceInformation ::= SEQUENCE {
timeDistributionIndication ENUMERATED {enabled, disabled, ...},
uuTimeSynchronizationErrorBudget INTEGER (0..1000000, ...) OPTIONAL,
- -- The above IE shall be present if the Time Distribution Indication IE is set to the value “enabledâ€
+ -- This IE shall be present if the Time Distribution Indication IE is set to “enabledâ€.
ie-Extension ProtocolExtensionContainer { { TimeSynchronizationAssistanceInformation-ExtIEs} } OPTIONAL,
...
}
TimeSynchronizationAssistanceInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+
+ { ID id-ClockQualityReportingControlInfo CRITICALITY ignore EXTENSION ClockQualityReportingControlInfo PRESENCE optional},
...
}
@@ -7135,7 +8366,7 @@ TimeToWait ::= ENUMERATED {
}
-TMGI ::= OCTET STRING (SIZE(6))
+TMGI ::= OCTET STRING (SIZE(6))
TNLConfigurationInfo ::= SEQUENCE {
@@ -7315,7 +8546,9 @@ TSCAssistanceInformation ::= SEQUENCE {
}
TSCAssistanceInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
- { ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional},
+ { ID id-SurvivalTime CRITICALITY ignore EXTENSION SurvivalTime PRESENCE optional}|
+ { ID id-CapabilityForBATAdaptation CRITICALITY ignore EXTENSION CapabilityForBATAdaptation PRESENCE optional}|
+ { ID id-N6JitterInformation CRITICALITY ignore EXTENSION N6JitterInformation PRESENCE optional},
...
}
@@ -7358,6 +8591,9 @@ UEAppLayerMeasConfigInfo ::= SEQUENCE {
}
UEAppLayerMeasConfigInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-MBSCommServiceType CRITICALITY ignore EXTENSION MBSCommServiceType PRESENCE optional }|
+ { ID id-AssistanceInformationQoE-Meas CRITICALITY ignore EXTENSION AssistanceInformationQoE-Meas PRESENCE optional }|
+ { ID id-QoERVQoEReportingPaths CRITICALITY ignore EXTENSION QoERVQoEReportingPaths PRESENCE optional },
...
}
@@ -7424,7 +8660,9 @@ UEContextInfoRetrUECtxtResp-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ ID id-NoPDUSessionIndication CRITICALITY ignore EXTENSION NoPDUSessionIndication PRESENCE optional }|
{ ID id-FiveGProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore EXTENSION NRUESidelinkAggregateMaximumBitRate PRESENCE optional }|
{ ID id-UESliceMaximumBitRateList CRITICALITY ignore EXTENSION UESliceMaximumBitRateList PRESENCE optional }|
- { ID id-PositioningInformation CRITICALITY ignore EXTENSION PositioningInformation PRESENCE optional },
+ { ID id-PositioningInformation CRITICALITY ignore EXTENSION PositioningInformation PRESENCE optional }|
+ { ID id-NRA2XUEPC5AggregateMaximumBitRate CRITICALITY ignore EXTENSION NRUESidelinkAggregateMaximumBitRate PRESENCE optional }|
+ { ID id-LTEA2XUEPC5AggregateMaximumBitRate CRITICALITY ignore EXTENSION LTEUESidelinkAggregateMaximumBitRate PRESENCE optional },
...
}
@@ -7508,12 +8746,12 @@ UERLFReportContainer ::= CHOICE {
choice-Extension ProtocolIE-Single-Container { {UERLFReportContainer-ExtIEs} }
}
UERLFReportContainer-ExtIEs XNAP-PROTOCOL-IES ::= {
- {ID id-UERLFReportContainerLTEExtension CRITICALITY ignore TYPE UERLFReportContainerLTEExtension PRESENCE mandatory},
+ {ID id-UERLFReportContainerLTEExtension CRITICALITY ignore TYPE UERLFReportContainerLTEExtension PRESENCE mandatory},
...
}
UERLFReportContainerLTE ::= OCTET STRING
--- This IE is a transparent container and includes the RLF-Report-r9 IE contained in the UEInformationResponse message as defined in TS 36.331 [14].
+-- This IE is a transparent container and includes the rlf-Report-r9 contained in the UEInformationResponse message as defined in TS 36.331 [14].
UERLFReportContainerLTEExtension ::= SEQUENCE {
@@ -7525,7 +8763,7 @@ UERLFReportContainerLTEExtension ::= SEQUENCE {
UERLFReportContainerLTEExtendBand ::= OCTET STRING
--- This IE is a transparent container and includes the rLF-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [14].
+-- This IE is a transparent container and includes the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [14].
UERLFReportContainerLTEExtension-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
@@ -7534,7 +8772,7 @@ UERLFReportContainerLTEExtension-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
UERLFReportContainerNR ::= OCTET STRING
--- This IE is a transparent container and includes the nr-RLF-Report-r16 IE contained in the UEInformationResponse message as defined in TS 38.331 [10].
+-- This IE is a transparent container and includes the nr-RLF-Report IE contained in the UEInformationResponse message as defined in TS 38.331 [10].
UESliceMaximumBitRateList ::= SEQUENCE (SIZE(1.. maxnoofSMBR)) OF UESliceMaximumBitRate-Item
@@ -7660,11 +8898,79 @@ UPTransportParametersItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+UserPlaneErrorIndicator ::= ENUMERATED {gtpu-error-indication-received, ...}
UserPlaneTrafficActivityReport ::= ENUMERATED {inactive, re-activated, ...}
+UserPlaneFailureIndication ::= SEQUENCE {
+ userPlaneFailureType UserPlaneFailureType,
+ dL-NG-U-TNLatNG-RAN UPTransportLayerInformation,
+ uL-NG-U-TNLatNG-RAN UPTransportLayerInformation,
+ iE-Extensions ProtocolExtensionContainer {{ UserPlaneFailureIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserPlaneFailureIndication-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UserPlaneFailureType ::= ENUMERATED {
+ gtp-u-error-indication-received,
+ up-path-failure,
+ ...
+}
+
URIaddress ::= VisibleString
+UEAssociatedInfoResult-List ::= SEQUENCE (SIZE(1..maxnoofUEReports)) OF UEAssociatedInfoResult-Item
+
+UEAssociatedInfoResult-Item ::= SEQUENCE {
+ uEAssistantIdentifier NG-RANnodeUEXnAPID,
+ uEPerformance UEPerformance OPTIONAL,
+ measuredUETrajectory MeasuredUETrajectory OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UEAssociatedInfoResult-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAssociatedInfoResult-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEPerformance ::= SEQUENCE {
+ dL-UE-AverageThroughput BitRate OPTIONAL,
+ uL-UE-AverageThroughput BitRate OPTIONAL,
+ uE-AveragePacketDelay AveragePacketDelay OPTIONAL,
+ uE-AveragePacketLossDL PacketLossRate OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UEPerformance-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEPerformance-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEPerformanceCollectionConfiguration ::= SEQUENCE {
+ collectionTimeDurationForUEPerformance INTEGER(1..5000, ...),
+ iE-Extensions ProtocolExtensionContainer { { UEPerformanceCollectionConfiguration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEPerformanceCollectionConfiguration-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UETrajectoryCollectionConfiguration ::= SEQUENCE {
+ collectionTimeDurationForUETrajectory INTEGER (1..4096, ...),
+ numberOfVisitedCells INTEGER (1..16, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UETrajectoryCollectionConfiguration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UETrajectoryCollectionConfiguration-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- V
VehicleUE ::= ENUMERATED {
@@ -7676,7 +8982,7 @@ VehicleUE ::= ENUMERATED {
VolumeTimedReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF VolumeTimedReport-Item
VolumeTimedReport-Item ::= SEQUENCE {
- startTimeStamp OCTET STRING (SIZE(4)),
+ startTimeStamp OCTET STRING (SIZE(4)),
endTimeStamp OCTET STRING (SIZE(4)),
usageCountUL INTEGER (0..18446744073709551615),
usageCountDL INTEGER (0..18446744073709551615),
@@ -7714,6 +9020,8 @@ WLANName ::= OCTET STRING (SIZE (1..32))
XnBenefitValue ::= INTEGER (1..8, ...)
+XR-Bcast-Information ::= ENUMERATED {true,...}
+
-- Y
diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn
index 842a1adb..f643e515 100644
--- a/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.5.0 (2023-06)
+-- 3GPP TS 38.423 V18.2.0 (2024-06)
-- 9.3.4 PDU Definitions
-- **************************************************************
--
@@ -27,6 +27,8 @@ IMPORTS
AMF-UE-NGAP-ID,
AS-SecurityInformation,
AssistanceDataForRANPaging,
+ AerialUESubscriptionInformation,
+ A2XPC5QoSParameters,
BitRate,
Cause,
CellAndCapacityAssistanceInfo-EUTRA,
@@ -36,6 +38,7 @@ IMPORTS
CHOinformation-Req,
CHOinformation-Ack,
CHOinformation-AddReq,
+ CHOinformation-AddReqAck,
CHOinformation-ModReq,
CHO-MRDC-EarlyDataForwarding,
CHO-MRDC-Indicator,
@@ -73,6 +76,7 @@ IMPORTS
LocationInformationSNReporting,
LocationReportingInformation,
LowerLayerPresenceStatusChange,
+ LTEA2XServicesAuthorized,
LTEUESidelinkAggregateMaximumBitRate,
LTEV2XServicesAuthorized,
MR-DC-ResourceCoordinationInfo,
@@ -90,6 +94,7 @@ IMPORTS
NG-RANnodeUEXnAPID,
NR-CGI,
NE-DC-TDM-Pattern,
+ NRA2XServicesAuthorized,
NRUESidelinkAggregateMaximumBitRate,
NRV2XServicesAuthorized,
PagingDRX,
@@ -181,7 +186,7 @@ IMPORTS
UEHistoryInformationFromTheUE,
MobilityParametersInformation,
MobilityParametersModificationRange,
- RACHReportInformation,
+ RAReport,
IABNodeIndication,
SNTriggered,
SCGIndicator,
@@ -246,7 +251,49 @@ IMPORTS
F1-terminatingIAB-donorIndicator,
SRB-ID,
AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated,
- HashedUEIdentityIndexValue
+ HashedUEIdentityIndexValue,
+ MBS-DataForwarding-Indicator,
+ IABAuthorizationStatus,
+ NID,
+ MT-SDT-Information,
+ PosPartialUEContextInfo,
+ SRSConfiguration,
+ RaReportIndicationList,
+ SuccessfulPSCellChangeReportInformation,
+ CPACConfiguration,
+ TimeSinceFailure,
+ SPRAvailability,
+ DLLBTFailureInformationRequest,
+ DLLBTFailureInformationList,
+ CellBasedUETrajectoryPrediction,
+ DataCollectionID,
+ RequestedPredictionTime,
+ NodeMeasurementInitiationResult-List,
+ CellMeasurementInitiationResult-List,
+ UEAssociatedInfoResult-List,
+ UETrajectoryCollectionConfiguration,
+ UEPerformanceCollectionConfiguration,
+ CellMeasurementResultForDataCollection-List,
+ CellToReportForDataCollection-List,
+ CandidateRelayUEInfoList,
+ NRPagingLongeDRXInformationforRRCINACTIVE,
+ QMCCoordinationRequest,
+ QMCCoordinationResponse,
+ DirectForwardingPathAvailabilityWithSourceMN,
+ Conditional-Reconfig-List,
+ PDUSetbasedHandlingIndicator,
+ MobileIAB-AuthorizationStatus,
+ BAPAddress,
+ S-CPAC-Request,
+ SK-COUNTER,
+ RegistrationRequestForDataCollection,
+ ReportCharacteristicsForDataCollection,
+ ReportingPeriodicityForDataCollection,
+ NodeAssociatedInfoResult,
+ SLPositioning-Ranging-Services-Info,
+ PDUSessionsListToBeReleased-UPError,
+ UserPlaneFailureIndication
+
FROM XnAP-IEs
@@ -265,9 +312,11 @@ FROM XnAP-IEs
FROM XnAP-Containers
+ id-A2XPC5QoSParameters,
id-ActivatedServedCells,
id-ActivationIDforCellActivation,
id-AdditionalDRBIDs,
+ id-AerialUESubscriptionInformation,
id-AMF-Region-Information,
id-AMF-Region-Information-To-Add,
id-AMF-Region-Information-To-Delete,
@@ -295,6 +344,8 @@ FROM XnAP-Containers
id-LocationInformationSN,
id-LocationInformationSNReporting,
id-LocationReportingInformation,
+ id-LTEA2XServicesAuthorized,
+ id-LTEA2XUEPC5AggregateMaximumBitRate,
id-LTEUESidelinkAggregateMaximumBitRate,
id-LTEV2XServicesAuthorized,
id-MAC-I,
@@ -306,6 +357,8 @@ FROM XnAP-Containers
id-M-NG-RANnodeUEXnAPID,
id-new-NG-RAN-Cell-Identity,
id-newNG-RANnodeUEXnAPID,
+ id-NRA2XServicesAuthorized,
+ id-NRA2XUEPC5AggregateMaximumBitRate,
id-NRUESidelinkAggregateMaximumBitRate,
id-NRV2XServicesAuthorized,
id-oldNG-RANnodeUEXnAPID,
@@ -445,7 +498,7 @@ FROM XnAP-Containers
id-NG-RANnode1MobilityParameters,
id-NG-RANnode2ProposedMobilityParameters,
id-MobilityParametersModificationRange,
- id-RACHReportInformation,
+ id-RAReport,
id-IABNodeIndication,
id-UERadioCapabilityID,
id-SCGIndicator,
@@ -499,6 +552,7 @@ FROM XnAP-Containers
id-ParentNodeCellsList,
id-IABTNLAddressException,
id-CHOinformation-AddReq,
+ id-CHOinformation-AddReqAck,
id-CHOinformation-ModReq,
id-TimeSynchronizationAssistanceInformation,
id-SCGActivationRequest,
@@ -534,6 +588,56 @@ FROM XnAP-Containers
id-F1-terminatingIAB-donorIndicator,
id-AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated,
id-HashedUEIdentityIndexValue,
+ id-MBS-DataForwarding-Indicator,
+ id-IABAuthorizationStatus,
+ id-SelectedNID,
+ id-MT-SDT-Information,
+ id-PosPartialUEContextInfo,
+ id-SRSConfiguration,
+ id-RaReportIndicationList,
+ id-SuccessfulPSCellChangeReportInformation,
+ id-CPACConfiguration,
+ id-TargetCellCRNTI,
+ id-TimeSinceFailure,
+ id-SPRAvailability,
+ id-DLLBTFailureInformationRequest,
+ id-DLLBTFailureInformationList,
+ id-CellBasedUETrajectoryPrediction,
+ id-DataCollectionID,
+ id-RequestedPredictionTime,
+ id-NodeMeasurementInitiationResult-List,
+ id-CellMeasurementInitiationResult-List,
+ id-UEAssociatedInfoResult-List,
+ id-UETrajectoryCollectionConfiguration,
+ id-UEPerformanceCollectionConfiguration,
+ id-CellMeasurementResultForDataCollection-List,
+ id-CellToReportForDataCollection-List,
+ id-CandidateRelayUEInfoList,
+ id-NRCellsAndSSBsList,
+ id-ActivatedNRCellsAndSSBsList,
+ id-NRPagingLongeDRXInformationforRRCINACTIVE,
+ id-QMCCoordinationRequest,
+ id-QMCCoordinationResponse,
+ id-QoE-Measurement-Results,
+ id-Src-SN-to-Tgt-SNQMCInfoInquiry,
+ id-DirectForwardingPathAvailabilityWithSourceMN,
+ id-accessed-PSCellID,
+ id-conditional-Reconfig-ToCancel-List,
+ id-PDUSetbasedHandlingIndicator,
+ id-MobileIAB-AuthorizationStatus,
+ id-MIAB-MT-BAP-Address,
+ id-S-CPAC-Request,
+ id-sk-Counter,
+ id-Source-M-NG-RANnodeID,
+ id-SourceSN-to-TargetSN-QMCInfo,
+ id-RegistrationRequestForDataCollection,
+ id-ReportCharacteristicsForDataCollection,
+ id-ReportingPeriodicityForDataCollection,
+ id-NodeAssociatedInfoResult,
+ id-SLPositioning-Ranging-Services-Info,
+ id-PDUSessionsListToBeReleased-UPError,
+ id-UserPlaneFailureIndication,
+
@@ -545,7 +649,8 @@ FROM XnAP-Containers
maxnoofTrafficIndexEntries,
maxnoofTLAsIAB,
maxnoofBAPControlPDURLCCHs,
- maxnoofServingCells
+ maxnoofServingCells,
+ maxnoofSSBAreas
FROM XnAP-Constants;
@@ -581,7 +686,19 @@ HandoverRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-TimeSynchronizationAssistanceInformation CRITICALITY ignore TYPE TimeSynchronizationAssistanceInformation PRESENCE optional }|
{ ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
{ ID id-FiveGProSeAuthorized CRITICALITY ignore TYPE FiveGProSeAuthorized PRESENCE optional }|
- { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional },
+ { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional }|
+ { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional }|
+ { ID id-DLLBTFailureInformationRequest CRITICALITY ignore TYPE DLLBTFailureInformationRequest PRESENCE optional }|
+ { ID id-AerialUESubscriptionInformation CRITICALITY ignore TYPE AerialUESubscriptionInformation PRESENCE optional }|
+ { ID id-NRA2XServicesAuthorized CRITICALITY ignore TYPE NRA2XServicesAuthorized PRESENCE optional }|
+ { ID id-LTEA2XServicesAuthorized CRITICALITY ignore TYPE LTEA2XServicesAuthorized PRESENCE optional }|
+ { ID id-A2XPC5QoSParameters CRITICALITY ignore TYPE A2XPC5QoSParameters PRESENCE optional }|
+ { ID id-CellBasedUETrajectoryPrediction CRITICALITY ignore TYPE CellBasedUETrajectoryPrediction PRESENCE optional }|
+ { ID id-DataCollectionID CRITICALITY ignore TYPE DataCollectionID PRESENCE optional }|
+ { ID id-CandidateRelayUEInfoList CRITICALITY reject TYPE CandidateRelayUEInfoList PRESENCE optional }|
+ { ID id-SourceSN-to-TargetSN-QMCInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
+ { ID id-MobileIAB-AuthorizationStatus CRITICALITY reject TYPE MobileIAB-AuthorizationStatus PRESENCE optional }|
+ { ID id-SLPositioning-Ranging-Services-Info CRITICALITY ignore TYPE SLPositioning-Ranging-Services-Info PRESENCE optional },
...
}
@@ -608,7 +725,9 @@ UEContextInfoHORequest-ExtIEs XNAP-PROTOCOL-EXTENSION ::={
{ ID id-UERadioCapabilityID CRITICALITY reject EXTENSION UERadioCapabilityID PRESENCE optional }|
{ ID id-MBS-SessionInformation-List CRITICALITY ignore EXTENSION MBS-SessionInformation-List PRESENCE optional }|
{ ID id-FiveGProSeUEPC5AggregateMaximumBitRate CRITICALITY ignore EXTENSION NRUESidelinkAggregateMaximumBitRate PRESENCE optional }|
- { ID id-UESliceMaximumBitRateList CRITICALITY ignore EXTENSION UESliceMaximumBitRateList PRESENCE optional },
+ { ID id-UESliceMaximumBitRateList CRITICALITY ignore EXTENSION UESliceMaximumBitRateList PRESENCE optional }|
+ { ID id-NRA2XUEPC5AggregateMaximumBitRate CRITICALITY ignore EXTENSION NRUESidelinkAggregateMaximumBitRate PRESENCE optional }|
+ { ID id-LTEA2XUEPC5AggregateMaximumBitRate CRITICALITY ignore EXTENSION LTEUESidelinkAggregateMaximumBitRate PRESENCE optional },
...
}
@@ -650,7 +769,9 @@ HandoverRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-DRBs-transferred-to-MN CRITICALITY ignore TYPE DRB-List PRESENCE optional }|
{ ID id-DAPSResponseInfo-List CRITICALITY reject TYPE DAPSResponseInfo-List PRESENCE optional }|
{ ID id-CHOinformation-Ack CRITICALITY reject TYPE CHOinformation-Ack PRESENCE optional }|
- { ID id-MBS-SessionInformationResponse-List CRITICALITY ignore TYPE MBS-SessionInformationResponse-List PRESENCE optional },
+ { ID id-MBS-SessionInformationResponse-List CRITICALITY ignore TYPE MBS-SessionInformationResponse-List PRESENCE optional }|
+ { ID id-RRCConfigIndication CRITICALITY ignore TYPE RRCConfigIndication PRESENCE optional }|
+ { ID id-PDUSetbasedHandlingIndicator CRITICALITY ignore TYPE PDUSetbasedHandlingIndicator PRESENCE optional },
...
}
@@ -743,7 +864,8 @@ HandoverSuccess ::= SEQUENCE {
HandoverSuccess-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-sourceNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-targetNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-requestedTargetCellGlobalID CRITICALITY reject TYPE Target-CGI PRESENCE mandatory},
+ { ID id-requestedTargetCellGlobalID CRITICALITY reject TYPE Target-CGI PRESENCE mandatory}|
+ { ID id-accessed-PSCellID CRITICALITY ignore TYPE NR-CGI PRESENCE optional},
...
}
@@ -762,7 +884,8 @@ ConditionalHandoverCancel-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-sourceNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-targetNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
- { ID id-targetCellsToCancel CRITICALITY reject TYPE TargetCellList PRESENCE optional},
+ { ID id-targetCellsToCancel CRITICALITY reject TYPE TargetCellList PRESENCE optional}|
+ { ID id-conditional-Reconfig-ToCancel-List CRITICALITY reject TYPE Conditional-Reconfig-List PRESENCE optional},
...
}
@@ -826,21 +949,23 @@ RANPaging ::= SEQUENCE {
}
RANPaging-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-UEIdentityIndexValue CRITICALITY reject TYPE UEIdentityIndexValue PRESENCE mandatory}|
- { ID id-UERANPagingIdentity CRITICALITY ignore TYPE UERANPagingIdentity PRESENCE mandatory}|
- { ID id-PagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
- { ID id-RANPagingArea CRITICALITY reject TYPE RANPagingArea PRESENCE mandatory}|
- { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional }|
- { ID id-AssistanceDataForRANPaging CRITICALITY ignore TYPE AssistanceDataForRANPaging PRESENCE optional }|
- { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional }|
- { ID id-ExtendedUEIdentityIndexValue CRITICALITY ignore TYPE ExtendedUEIdentityIndexValue PRESENCE optional }|
- { ID id-EUTRAPagingeDRXInformation CRITICALITY ignore TYPE EUTRAPagingeDRXInformation PRESENCE optional }|
- { ID id-UESpecificDRX CRITICALITY ignore TYPE UESpecificDRX PRESENCE optional }|
- { ID id-NRPagingeDRXInformation CRITICALITY ignore TYPE NRPagingeDRXInformation PRESENCE optional }|
- { ID id-NRPagingeDRXInformationforRRCINACTIVE CRITICALITY ignore TYPE NRPagingeDRXInformationforRRCINACTIVE PRESENCE optional }|
- { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional }|
- { ID id-PEIPSassistanceInformation CRITICALITY ignore TYPE PEIPSassistanceInformation PRESENCE optional }|
- { ID id-HashedUEIdentityIndexValue CRITICALITY ignore TYPE HashedUEIdentityIndexValue PRESENCE optional },
+ { ID id-UEIdentityIndexValue CRITICALITY reject TYPE UEIdentityIndexValue PRESENCE mandatory}|
+ { ID id-UERANPagingIdentity CRITICALITY ignore TYPE UERANPagingIdentity PRESENCE mandatory}|
+ { ID id-PagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
+ { ID id-RANPagingArea CRITICALITY reject TYPE RANPagingArea PRESENCE mandatory}|
+ { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional }|
+ { ID id-AssistanceDataForRANPaging CRITICALITY ignore TYPE AssistanceDataForRANPaging PRESENCE optional }|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional }|
+ { ID id-ExtendedUEIdentityIndexValue CRITICALITY ignore TYPE ExtendedUEIdentityIndexValue PRESENCE optional }|
+ { ID id-EUTRAPagingeDRXInformation CRITICALITY ignore TYPE EUTRAPagingeDRXInformation PRESENCE optional }|
+ { ID id-UESpecificDRX CRITICALITY ignore TYPE UESpecificDRX PRESENCE optional }|
+ { ID id-NRPagingeDRXInformation CRITICALITY ignore TYPE NRPagingeDRXInformation PRESENCE optional }|
+ { ID id-NRPagingeDRXInformationforRRCINACTIVE CRITICALITY ignore TYPE NRPagingeDRXInformationforRRCINACTIVE PRESENCE optional }|
+ { ID id-PagingCause CRITICALITY ignore TYPE PagingCause PRESENCE optional }|
+ { ID id-PEIPSassistanceInformation CRITICALITY ignore TYPE PEIPSassistanceInformation PRESENCE optional }|
+ { ID id-HashedUEIdentityIndexValue CRITICALITY ignore TYPE HashedUEIdentityIndexValue PRESENCE optional }|
+ { ID id-MT-SDT-Information CRITICALITY ignore TYPE MT-SDT-Information PRESENCE optional }|
+ { ID id-NRPagingLongeDRXInformationforRRCINACTIVE CRITICALITY ignore TYPE NRPagingLongeDRXInformationforRRCINACTIVE PRESENCE optional},
...
}
@@ -877,26 +1002,32 @@ RetrieveUEContextResponse ::= SEQUENCE {
}
RetrieveUEContextResponse-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-GUAMI CRITICALITY reject TYPE GUAMI PRESENCE mandatory}|
- { ID id-UEContextInfoRetrUECtxtResp CRITICALITY reject TYPE UEContextInfoRetrUECtxtResp PRESENCE mandatory}|
- { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
- { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }|
- { ID id-LocationReportingInformation CRITICALITY ignore TYPE LocationReportingInformation PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
- { ID id-NRV2XServicesAuthorized CRITICALITY ignore TYPE NRV2XServicesAuthorized PRESENCE optional }|
- { ID id-LTEV2XServicesAuthorized CRITICALITY ignore TYPE LTEV2XServicesAuthorized PRESENCE optional }|
- { ID id-PC5QoSParameters CRITICALITY ignore TYPE PC5QoSParameters PRESENCE optional }|
- { ID id-UEHistoryInformation CRITICALITY ignore TYPE UEHistoryInformation PRESENCE optional }|
- { ID id-UEHistoryInformationFromTheUE CRITICALITY ignore TYPE UEHistoryInformationFromTheUE PRESENCE optional }|
- { ID id-MDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional }|
- { ID id-IABNodeIndication CRITICALITY reject TYPE IABNodeIndication PRESENCE optional }|
- { ID id-UEContextRefAtSN-HORequest CRITICALITY ignore TYPE UEContextRefAtSN-HORequest PRESENCE optional }|
- { ID id-TimeSynchronizationAssistanceInformation CRITICALITY ignore TYPE TimeSynchronizationAssistanceInformation PRESENCE optional }|
- { ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
- { ID id-FiveGProSeAuthorized CRITICALITY ignore TYPE FiveGProSeAuthorized PRESENCE optional }|
- { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional },
+ { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-GUAMI CRITICALITY reject TYPE GUAMI PRESENCE mandatory}|
+ { ID id-UEContextInfoRetrUECtxtResp CRITICALITY reject TYPE UEContextInfoRetrUECtxtResp PRESENCE mandatory}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }|
+ { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }|
+ { ID id-LocationReportingInformation CRITICALITY ignore TYPE LocationReportingInformation PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-NRV2XServicesAuthorized CRITICALITY ignore TYPE NRV2XServicesAuthorized PRESENCE optional }|
+ { ID id-LTEV2XServicesAuthorized CRITICALITY ignore TYPE LTEV2XServicesAuthorized PRESENCE optional }|
+ { ID id-PC5QoSParameters CRITICALITY ignore TYPE PC5QoSParameters PRESENCE optional }|
+ { ID id-UEHistoryInformation CRITICALITY ignore TYPE UEHistoryInformation PRESENCE optional }|
+ { ID id-UEHistoryInformationFromTheUE CRITICALITY ignore TYPE UEHistoryInformationFromTheUE PRESENCE optional }|
+ { ID id-MDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional }|
+ { ID id-IABNodeIndication CRITICALITY reject TYPE IABNodeIndication PRESENCE optional }|
+ { ID id-UEContextRefAtSN-HORequest CRITICALITY ignore TYPE UEContextRefAtSN-HORequest PRESENCE optional }|
+ { ID id-TimeSynchronizationAssistanceInformation CRITICALITY ignore TYPE TimeSynchronizationAssistanceInformation PRESENCE optional }|
+ { ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
+ { ID id-FiveGProSeAuthorized CRITICALITY ignore TYPE FiveGProSeAuthorized PRESENCE optional }|
+ { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional }|
+ { ID id-AerialUESubscriptionInformation CRITICALITY ignore TYPE AerialUESubscriptionInformation PRESENCE optional }|
+ { ID id-NRA2XServicesAuthorized CRITICALITY ignore TYPE NRA2XServicesAuthorized PRESENCE optional }|
+ { ID id-LTEA2XServicesAuthorized CRITICALITY ignore TYPE LTEA2XServicesAuthorized PRESENCE optional }|
+ { ID id-A2XPC5QoSParameters CRITICALITY ignore TYPE A2XPC5QoSParameters PRESENCE optional }|
+ { ID id-MobileIAB-AuthorizationStatus CRITICALITY reject TYPE MobileIAB-AuthorizationStatus PRESENCE optional }|
+ { ID id-SLPositioning-Ranging-Services-Info CRITICALITY ignore TYPE SLPositioning-Ranging-Services-Info PRESENCE optional },
...
}
@@ -956,12 +1087,15 @@ XnUAddressIndication ::= SEQUENCE {
}
XnUAddressIndication-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-XnUAddressInfoperPDUSession-List CRITICALITY reject TYPE XnUAddressInfoperPDUSession-List PRESENCE mandatory}|
- { ID id-CHO-MRDC-Indicator CRITICALITY reject TYPE CHO-MRDC-Indicator PRESENCE optional }|
- { ID id-CHO-MRDC-EarlyDataForwarding CRITICALITY ignore TYPE CHO-MRDC-EarlyDataForwarding PRESENCE optional }|
- { ID id-CPC-DataForwarding-Indicator CRITICALITY reject TYPE CPC-DataForwarding-Indicator PRESENCE optional },
+ { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-XnUAddressInfoperPDUSession-List CRITICALITY reject TYPE XnUAddressInfoperPDUSession-List PRESENCE mandatory}|
+ { ID id-CHO-MRDC-Indicator CRITICALITY reject TYPE CHO-MRDC-Indicator PRESENCE optional }|
+ { ID id-CHO-MRDC-EarlyDataForwarding CRITICALITY ignore TYPE CHO-MRDC-EarlyDataForwarding PRESENCE optional }|
+ { ID id-CPC-DataForwarding-Indicator CRITICALITY reject TYPE CPC-DataForwarding-Indicator PRESENCE optional }|
+ { ID id-MBS-DataForwarding-Indicator CRITICALITY ignore TYPE MBS-DataForwarding-Indicator PRESENCE optional }|
+ { ID id-MBS-SessionInformationResponse-List CRITICALITY ignore TYPE MBS-SessionInformationResponse-List PRESENCE optional }|
+ { ID id-PDUSetbasedHandlingIndicator CRITICALITY ignore TYPE PDUSetbasedHandlingIndicator PRESENCE optional },
...
}
@@ -997,7 +1131,7 @@ SNodeAdditionRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-PCellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE optional }|
{ ID id-DesiredActNotificationLevel CRITICALITY ignore TYPE DesiredActNotificationLevel PRESENCE optional }|
{ ID id-AvailableDRBIDs CRITICALITY reject TYPE DRB-List PRESENCE conditional}
- -- The IE shall be present if there is at least one PDUSessionResourceSetupInfo-SNterminated included --|
+-- This IE shall be present if there is at least one PDU Session Resource Setup Info – SN terminated in the PDU Session Resources To Be Added List IE. --|
{ ID id-S-NG-RANnodeMaxIPDataRate-UL CRITICALITY reject TYPE BitRate PRESENCE optional }|
{ ID id-S-NG-RANnodeMaxIPDataRate-DL CRITICALITY reject TYPE BitRate PRESENCE optional }|
{ ID id-LocationInformationSNReporting CRITICALITY ignore TYPE LocationInformationSNReporting PRESENCE optional }|
@@ -1018,8 +1152,13 @@ SNodeAdditionRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-CHOinformation-AddReq CRITICALITY reject TYPE CHOinformation-AddReq PRESENCE optional }|
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional }|
{ ID id-CPAInformationRequest CRITICALITY reject TYPE CPAInformationRequest PRESENCE optional }|
- { ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY reject TYPE UESliceMaximumBitRateList PRESENCE optional }|
- { ID id-F1-terminatingIAB-donorIndicator CRITICALITY reject TYPE F1-terminatingIAB-donorIndicator PRESENCE optional },
+ { ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY reject TYPE UESliceMaximumBitRateList PRESENCE optional }|
+ { ID id-F1-terminatingIAB-donorIndicator CRITICALITY reject TYPE F1-terminatingIAB-donorIndicator PRESENCE optional }|
+ { ID id-SelectedNID CRITICALITY ignore TYPE NID PRESENCE optional }|
+ { ID id-QMCCoordinationRequest CRITICALITY ignore TYPE QMCCoordinationRequest PRESENCE optional }|
+ { ID id-SourceSN-to-TargetSN-QMCInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
+ { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional }|
+ { ID id-Source-M-NG-RANnodeID CRITICALITY ignore TYPE GlobalNG-RANNode-ID PRESENCE optional },
...
}
@@ -1074,14 +1213,18 @@ SNodeAdditionRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-AvailableFastMCGRecoveryViaSRB3 CRITICALITY ignore TYPE AvailableFastMCGRecoveryViaSRB3 PRESENCE optional }|
{ ID id-DirectForwardingPathAvailability CRITICALITY ignore TYPE DirectForwardingPathAvailability PRESENCE optional }|
{ ID id-SCGActivationStatus CRITICALITY ignore TYPE SCGActivationStatus PRESENCE optional }|
- { ID id-CPAInformationAck CRITICALITY ignore TYPE CPAInformationAck PRESENCE optional },
+ { ID id-CPAInformationAck CRITICALITY ignore TYPE CPAInformationAck PRESENCE optional }|
+ { ID id-SNMobilityInformation CRITICALITY ignore TYPE SNMobilityInformation PRESENCE optional }|
+ { ID id-QMCCoordinationResponse CRITICALITY ignore TYPE QMCCoordinationResponse PRESENCE optional }|
+ { ID id-CHOinformation-AddReqAck CRITICALITY reject TYPE CHOinformation-AddReqAck PRESENCE optional }|
+ { ID id-DirectForwardingPathAvailabilityWithSourceMN CRITICALITY ignore TYPE DirectForwardingPathAvailabilityWithSourceMN PRESENCE optional },
...
}
PDUSessionAdmittedAddedAddReqAck ::= SEQUENCE (SIZE(1..maxnoofPDUSessions)) OF PDUSessionAdmittedAddedAddReqAck-Item
PDUSessionAdmittedAddedAddReqAck-Item ::= SEQUENCE {
- pduSessionId PDUSession-ID,
+ pduSessionId PDUSession-ID,
sn-terminated PDUSessionResourceSetupResponseInfo-SNterminated OPTIONAL,
mn-terminated PDUSessionResourceSetupResponseInfo-MNterminated OPTIONAL,
-- NOTE: If neither the PDU Session Resource Setup Response Info – SN terminated IE
@@ -1123,7 +1266,8 @@ SNodeAdditionRequestReject-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-M-NG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-S-NG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-PCellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE optional },
...
}
@@ -1172,6 +1316,7 @@ Configuration-successfully-applied ::= SEQUENCE {
}
Configuration-successfully-applied-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-sk-Counter CRITICALITY ignore EXTENSION SK-COUNTER PRESENCE optional},
...
}
@@ -1230,8 +1375,12 @@ SNodeModificationRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional }|
{ ID id-CPAInformationModReq CRITICALITY ignore TYPE CPAInformationModReq PRESENCE optional }|
{ ID id-CPCInformationUpdate CRITICALITY ignore TYPE CPCInformationUpdate PRESENCE optional }|
- { ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
- { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional },
+ { ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
+ { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional }|
+ { ID id-SelectedNID CRITICALITY ignore TYPE NID PRESENCE optional }|
+ { ID id-QMCCoordinationRequest CRITICALITY ignore TYPE QMCCoordinationRequest PRESENCE optional }|
+ { ID id-Src-SN-to-Tgt-SNQMCInfoInquiry CRITICALITY ignore TYPE Src-SN-to-Tgt-SNQMCInfoInquiry PRESENCE optional }|
+ { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional },
...
}
@@ -1288,7 +1437,8 @@ PDUSessionsToBeModified-SNModRequest-Item ::= SEQUENCE {
PDUSessionsToBeModified-SNModRequest-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
{ID id-S-NSSAI CRITICALITY reject EXTENSION S-NSSAI PRESENCE optional}|
- {ID id-PDUSessionExpectedUEActivityBehaviour CRITICALITY ignore EXTENSION ExpectedUEActivityBehaviour PRESENCE optional},
+ {ID id-PDUSessionExpectedUEActivityBehaviour CRITICALITY ignore EXTENSION ExpectedUEActivityBehaviour PRESENCE optional }|
+ {ID id-UserPlaneFailureIndication CRITICALITY ignore EXTENSION UserPlaneFailureIndication PRESENCE optional },
...
}
@@ -1304,6 +1454,8 @@ PDUSessionsToBeReleased-SNModRequest-List-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
RequestedFastMCGRecoveryViaSRB3Release ::= ENUMERATED {true, ...}
+Src-SN-to-Tgt-SNQMCInfoInquiry ::= ENUMERATED {true, ...}
+
-- **************************************************************
--
-- S-NODE MODIFICATION REQUEST ACKNOWLEDGE
@@ -1316,31 +1468,33 @@ SNodeModificationRequestAcknowledge ::= SEQUENCE {
}
SNodeModificationRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-M-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-S-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-PDUSessionAdmitted-SNModResponse CRITICALITY ignore TYPE PDUSessionAdmitted-SNModResponse PRESENCE optional }|
- { ID id-PDUSessionNotAdmitted-SNModResponse CRITICALITY ignore TYPE PDUSessionNotAdmitted-SNModResponse PRESENCE optional }|
+ { ID id-M-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-S-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-PDUSessionAdmitted-SNModResponse CRITICALITY ignore TYPE PDUSessionAdmitted-SNModResponse PRESENCE optional }|
+ { ID id-PDUSessionNotAdmitted-SNModResponse CRITICALITY ignore TYPE PDUSessionNotAdmitted-SNModResponse PRESENCE optional }|
-- WS modification: define a dedicated type
--- { ID id-SN-to-MN-Container CRITICALITY ignore TYPE OCTET STRING PRESENCE optional }|
- { ID id-SN-to-MN-Container CRITICALITY ignore TYPE SN-to-MN-Container PRESENCE optional }|
- { ID id-admittedSplitSRB CRITICALITY ignore TYPE SplitSRBsTypes PRESENCE optional }|
- { ID id-admittedSplitSRBrelease CRITICALITY ignore TYPE SplitSRBsTypes PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
- { ID id-LocationInformationSN CRITICALITY ignore TYPE Target-CGI PRESENCE optional }|
- { ID id-MR-DC-ResourceCoordinationInfo CRITICALITY ignore TYPE MR-DC-ResourceCoordinationInfo PRESENCE optional }|
- { ID id-PDUSessionDataForwarding-SNModResponse CRITICALITY ignore TYPE PDUSessionDataForwarding-SNModResponse PRESENCE optional }|
- { ID id-RRCConfigIndication CRITICALITY reject TYPE RRCConfigIndication PRESENCE optional }|
- { ID id-AvailableFastMCGRecoveryViaSRB3 CRITICALITY ignore TYPE AvailableFastMCGRecoveryViaSRB3 PRESENCE optional }|
- { ID id-ReleaseFastMCGRecoveryViaSRB3 CRITICALITY ignore TYPE ReleaseFastMCGRecoveryViaSRB3 PRESENCE optional }|
- { ID id-DirectForwardingPathAvailability CRITICALITY ignore TYPE DirectForwardingPathAvailability PRESENCE optional }|
- { ID id-SCGUEHistoryInformation CRITICALITY ignore TYPE SCGUEHistoryInformation PRESENCE optional }|
- { ID id-SCGActivationStatus CRITICALITY ignore TYPE SCGActivationStatus PRESENCE optional }|
- { ID id-CPAInformationModReqAck CRITICALITY ignore TYPE CPAInformationModReqAck PRESENCE optional },
+-- { ID id-SN-to-MN-Container CRITICALITY ignore TYPE OCTET STRING PRESENCE optional }|
+ { ID id-SN-to-MN-Container CRITICALITY ignore TYPE SN-to-MN-Container PRESENCE optional }|
+ { ID id-admittedSplitSRB CRITICALITY ignore TYPE SplitSRBsTypes PRESENCE optional }|
+ { ID id-admittedSplitSRBrelease CRITICALITY ignore TYPE SplitSRBsTypes PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-LocationInformationSN CRITICALITY ignore TYPE Target-CGI PRESENCE optional }|
+ { ID id-MR-DC-ResourceCoordinationInfo CRITICALITY ignore TYPE MR-DC-ResourceCoordinationInfo PRESENCE optional }|
+ { ID id-PDUSessionDataForwarding-SNModResponse CRITICALITY ignore TYPE PDUSessionDataForwarding-SNModResponse PRESENCE optional }|
+ { ID id-RRCConfigIndication CRITICALITY reject TYPE RRCConfigIndication PRESENCE optional }|
+ { ID id-AvailableFastMCGRecoveryViaSRB3 CRITICALITY ignore TYPE AvailableFastMCGRecoveryViaSRB3 PRESENCE optional }|
+ { ID id-ReleaseFastMCGRecoveryViaSRB3 CRITICALITY ignore TYPE ReleaseFastMCGRecoveryViaSRB3 PRESENCE optional }|
+ { ID id-DirectForwardingPathAvailability CRITICALITY ignore TYPE DirectForwardingPathAvailability PRESENCE optional }|
+ { ID id-SCGUEHistoryInformation CRITICALITY ignore TYPE SCGUEHistoryInformation PRESENCE optional }|
+ { ID id-SCGActivationStatus CRITICALITY ignore TYPE SCGActivationStatus PRESENCE optional }|
+ { ID id-CPAInformationModReqAck CRITICALITY ignore TYPE CPAInformationModReqAck PRESENCE optional }|
+ { ID id-QMCCoordinationResponse CRITICALITY ignore TYPE QMCCoordinationResponse PRESENCE optional }|
+ { ID id-SourceSN-to-TargetSN-QMCInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional },
...
}
PDUSessionAdmitted-SNModResponse ::= SEQUENCE {
- pduSessionResourcesAdmittedToBeAdded PDUSessionAdmittedToBeAddedSNModResponse OPTIONAL,
- pduSessionResourcesAdmittedToBeModified PDUSessionAdmittedToBeModifiedSNModResponse OPTIONAL,
+ pduSessionResourcesAdmittedToBeAdded PDUSessionAdmittedToBeAddedSNModResponse OPTIONAL,
+ pduSessionResourcesAdmittedToBeModified PDUSessionAdmittedToBeModifiedSNModResponse OPTIONAL,
pduSessionResourcesAdmittedToBeReleased PDUSessionAdmittedToBeReleasedSNModResponse OPTIONAL,
iE-Extension ProtocolExtensionContainer { {PDUSessionAdmitted-SNModResponse-ExtIEs} } OPTIONAL,
...
@@ -1400,6 +1554,7 @@ PDUSessionNotAdmitted-SNModResponse ::= SEQUENCE {
}
PDUSessionNotAdmitted-SNModResponse-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PDUSessionResourcesNotAdmitted-List CRITICALITY ignore EXTENSION PDUSessionResourcesNotAdmitted-List PRESENCE optional },
...
}
@@ -1469,10 +1624,14 @@ SNodeModificationRequired-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-SCGUEHistoryInformation CRITICALITY ignore TYPE SCGUEHistoryInformation PRESENCE optional }|
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional }|
{ ID id-CPACInformationModRequired CRITICALITY ignore TYPE CPACInformationModRequired PRESENCE optional }|
- { ID id-SCGreconfigNotification CRITICALITY ignore TYPE SCGreconfigNotification PRESENCE optional },
+ { ID id-SCGreconfigNotification CRITICALITY ignore TYPE SCGreconfigNotification PRESENCE optional }|
+ { ID id-SPRAvailability CRITICALITY ignore TYPE SPRAvailability PRESENCE optional }|
+ { ID id-QMCCoordinationRequest CRITICALITY ignore TYPE QMCCoordinationRequest PRESENCE optional }|
+ { ID id-SourceSN-to-TargetSN-QMCInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
+ { ID id-S-CPAC-Request CRITICALITY reject TYPE S-CPAC-Request PRESENCE optional },
...
}
-PDUSessionToBeModifiedSNModRequired::= SEQUENCE (SIZE (1.. maxnoofPDUSessions)) OF PDUSessionToBeModifiedSNModRequired-Item
+PDUSessionToBeModifiedSNModRequired::= SEQUENCE (SIZE (1.. maxnoofPDUSessions)) OF PDUSessionToBeModifiedSNModRequired-Item
PDUSessionToBeModifiedSNModRequired-Item ::= SEQUENCE {
pduSessionId PDUSession-ID,
@@ -1486,6 +1645,7 @@ PDUSessionToBeModifiedSNModRequired-Item ::= SEQUENCE {
}
PDUSessionToBeModifiedSNModRequired-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PDUSessionsListToBeReleased-UPError CRITICALITY ignore EXTENSION PDUSessionsListToBeReleased-UPError PRESENCE optional },
...
}
@@ -1521,7 +1681,8 @@ SNodeModificationConfirm-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-MN-to-SN-Container CRITICALITY ignore TYPE MN-to-SN-Container PRESENCE optional }|
{ ID id-AdditionalDRBIDs CRITICALITY reject TYPE DRB-List PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
- { ID id-MR-DC-ResourceCoordinationInfo CRITICALITY ignore TYPE MR-DC-ResourceCoordinationInfo PRESENCE optional },
+ { ID id-MR-DC-ResourceCoordinationInfo CRITICALITY ignore TYPE MR-DC-ResourceCoordinationInfo PRESENCE optional }|
+ { ID id-QMCCoordinationResponse CRITICALITY ignore TYPE QMCCoordinationResponse PRESENCE optional },
...
}
@@ -1617,7 +1778,8 @@ SNodeReleaseRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-S-NG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE optional }|
{ ID id-PDUSessionToBeReleased-RelReqAck CRITICALITY ignore TYPE PDUSessionToBeReleasedList-RelReqAck PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
- { ID id-SCGUEHistoryInformation CRITICALITY ignore TYPE SCGUEHistoryInformation PRESENCE optional },
+ { ID id-SCGUEHistoryInformation CRITICALITY ignore TYPE SCGUEHistoryInformation PRESENCE optional }|
+ { ID id-SNMobilityInformation CRITICALITY ignore TYPE SNMobilityInformation PRESENCE optional },
...
}
@@ -1680,6 +1842,7 @@ PDUSessionToBeReleasedList-RelRqd ::= SEQUENCE {
}
PDUSessionToBeReleasedList-RelRqd-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+{ ID id-PDUSessionsListToBeReleased-UPError CRITICALITY ignore EXTENSION PDUSessionsListToBeReleased-UPError PRESENCE optional },
...
}
@@ -1770,7 +1933,8 @@ SNodeChangeRequired-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-SCGUEHistoryInformation CRITICALITY ignore TYPE SCGUEHistoryInformation PRESENCE optional }|
{ ID id-SNMobilityInformation CRITICALITY ignore TYPE SNMobilityInformation PRESENCE optional }|
{ ID id-SourcePSCellID CRITICALITY ignore TYPE GlobalNG-RANCell-ID PRESENCE optional }|
- { ID id-CPCInformationRequired CRITICALITY ignore TYPE CPCInformationRequired PRESENCE optional },
+ { ID id-CPCInformationRequired CRITICALITY ignore TYPE CPCInformationRequired PRESENCE optional }|
+ { ID id-SourceSN-to-TargetSN-QMCInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional },
...
}
@@ -1816,7 +1980,7 @@ SNodeChangeConfirm-IEs XNAP-PROTOCOL-IES ::= {
PDUSession-SNChangeConfirm-List ::= SEQUENCE (SIZE(1..maxnoofPDUSessions)) OF PDUSession-SNChangeConfirm-Item
PDUSession-SNChangeConfirm-Item ::= SEQUENCE {
- pduSessionId PDUSession-ID,
+ pduSessionId PDUSession-ID,
sn-terminated PDUSessionResourceChangeConfirmInfo-SNterminated OPTIONAL,
mn-terminated PDUSessionResourceChangeConfirmInfo-MNterminated OPTIONAL,
-- NOTE: If the PDU Session Resource Change Confirm Info – SN terminated IE is not present,
@@ -1868,7 +2032,8 @@ RRCTransfer-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-UEReportRRCTransfer CRITICALITY reject TYPE UEReportRRCTransfer PRESENCE optional }|
{ ID id-FastMCGRecoveryRRCTransfer-SN-to-MN CRITICALITY ignore TYPE FastMCGRecoveryRRCTransfer PRESENCE optional }|
{ ID id-FastMCGRecoveryRRCTransfer-MN-to-SN CRITICALITY ignore TYPE FastMCGRecoveryRRCTransfer PRESENCE optional }|
- { ID id-SDT-SRB-between-NewNode-OldNode CRITICALITY ignore TYPE SDT-SRB-between-NewNode-OldNode PRESENCE optional },
+ { ID id-SDT-SRB-between-NewNode-OldNode CRITICALITY ignore TYPE SDT-SRB-between-NewNode-OldNode PRESENCE optional }|
+ { ID id-QoE-Measurement-Results CRITICALITY ignore TYPE QoE-Measurement-Results PRESENCE optional },
...
}
@@ -1915,6 +2080,20 @@ SDT-SRB-between-NewNode-OldNode-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
+QoE-Measurement-Results ::= SEQUENCE {
+ qOEReference OCTET STRING (SIZE(6)),
+ rrcContainerForRVQoEReport OCTET STRING OPTIONAL,
+ rrcContainerForQoEReport OCTET STRING OPTIONAL,
+ appLayerSessionStatus ENUMERATED {started, stopped, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {QoE-Measurement-Results-ExtIEs} } OPTIONAL,
+ ...
+}
+
+QoE-Measurement-Results-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- **************************************************************
--
-- NOTIFICATION CONTROL INDICATION
@@ -2119,10 +2298,10 @@ ConfigurationUpdate-gNB XNAP-PROTOCOL-IES ::= {
ConfigurationUpdate-ng-eNB XNAP-PROTOCOL-IES ::= {
- { ID id-servedCellsToUpdate-E-UTRA CRITICALITY ignore TYPE ServedCellsToUpdate-E-UTRA PRESENCE optional }|
- { ID id-cellAssistanceInfo-NR CRITICALITY ignore TYPE CellAssistanceInfo-NR PRESENCE optional }|
+ { ID id-servedCellsToUpdate-E-UTRA CRITICALITY ignore TYPE ServedCellsToUpdate-E-UTRA PRESENCE optional }|
+ { ID id-cellAssistanceInfo-NR CRITICALITY ignore TYPE CellAssistanceInfo-NR PRESENCE optional }|
{ ID id-cellAssistanceInfo-EUTRA CRITICALITY ignore TYPE CellAssistanceInfo-EUTRA PRESENCE optional },
- ...
+ ...
}
@@ -2208,7 +2387,7 @@ NGRANNodeConfigurationUpdateFailure-IEs XNAP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- E-UTRA NR CELL RESOURCE COORDINATION REQUEST
+-- E-UTRA - NR CELL RESOURCE COORDINATION REQUEST
--
-- **************************************************************
@@ -2262,7 +2441,7 @@ ResourceCoordRequest-gNB-initiated-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
-- **************************************************************
--
--- E-UTRA NR CELL RESOURCE COORDINATION RESPONSE
+-- E-UTRA - NR CELL RESOURCE COORDINATION RESPONSE
--
-- **************************************************************
@@ -2272,7 +2451,7 @@ E-UTRA-NR-CellResourceCoordinationResponse::= SEQUENCE {
}
E-UTRA-NR-CellResourceCoordinationResponse-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-respondingNodeType-ResourceCoordResponse CRITICALITY reject TYPE RespondingNodeType-ResourceCoordResponse PRESENCE mandatory}|
+ { ID id-respondingNodeType-ResourceCoordResponse CRITICALITY reject TYPE RespondingNodeType-ResourceCoordResponse PRESENCE mandatory}|
{ ID id-InterfaceInstanceIndication CRITICALITY reject TYPE InterfaceInstanceIndication PRESENCE optional },
...
}
@@ -2410,6 +2589,30 @@ ServedCellsToActivate ::= CHOICE {
}
ServedCellsToActivate-ExtIEs XNAP-PROTOCOL-IES ::= {
+ { ID id-NRCellsAndSSBsList CRITICALITY ignore TYPE ToBeActivatedNRCellsAndSSBsList PRESENCE mandatory},
+ ...
+}
+
+ToBeActivatedNRCellsAndSSBsList ::= SEQUENCE (SIZE(1..maxnoofCellsinNG-RANnode)) OF ToBeActivatedNRCellsAndSSBs-Item
+
+ToBeActivatedNRCellsAndSSBs-Item ::= SEQUENCE {
+ nrCGI NR-CGI,
+ sSBstobeActivatedList SEQUENCE (SIZE(1.. maxnoofSSBAreas)) OF SSBsToBeActivated-Item OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ToBeActivatedNRCellsAndSSBs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ToBeActivatedNRCellsAndSSBs-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SSBsToBeActivated-Item ::= SEQUENCE {
+ ssbIndex INTEGER(0..63),
+ iE-Extensions ProtocolExtensionContainer { { SSBsToBeActivated-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SSBsToBeActivated-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
@@ -2440,6 +2643,30 @@ ActivatedServedCells ::= CHOICE {
}
ActivatedServedCells-ExtIEs XNAP-PROTOCOL-IES ::= {
+ { ID id-ActivatedNRCellsAndSSBsList CRITICALITY ignore TYPE ActivatedNRCellsAndSSBsList PRESENCE mandatory},
+ ...
+}
+
+ActivatedNRCellsAndSSBsList ::= SEQUENCE (SIZE(1..maxnoofCellsinNG-RANnode)) OF ActivatedNRCellsAndSSBs-Item
+
+ActivatedNRCellsAndSSBs-Item ::= SEQUENCE {
+ nrCGI NR-CGI,
+ sSBsActivatedList SEQUENCE (SIZE(1..maxnoofSSBAreas)) OF SSBsActivated-Item OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ActivatedNRCellsAndSSBs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ActivatedNRCellsAndSSBs-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SSBsActivated-Item ::= SEQUENCE {
+ ssbIndex INTEGER(0..63),
+ iE-Extensions ProtocolExtensionContainer { {SSBsActivated-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SSBsActivated-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
...
}
@@ -2605,12 +2832,14 @@ HandoverReport-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-TargetCellCGI CRITICALITY ignore TYPE GlobalNG-RANCell-ID PRESENCE mandatory }|
{ ID id-ReEstablishmentCellCGI CRITICALITY ignore TYPE GlobalCell-ID PRESENCE conditional }|
-- This IE shall be present if the Handover Report Type IE is set to the value "HO to wrong cell"
- { ID id-TargetCellinEUTRAN CRITICALITY ignore TYPE TargetCellinEUTRAN PRESENCE conditional }|
+ { ID id-TargetCellinEUTRAN CRITICALITY ignore TYPE TargetCellinEUTRAN PRESENCE conditional }|
-- This IE shall be present if the Handover Report Type IE is set to the value "Inter-system ping-pong"
{ ID id-SourceCellCRNTI CRITICALITY ignore TYPE C-RNTI PRESENCE optional }|
{ ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional }|
{ ID id-UERLFReportContainer CRITICALITY ignore TYPE UERLFReportContainer PRESENCE optional }|
- { ID id-CHOConfiguration CRITICALITY ignore TYPE CHOConfiguration PRESENCE optional},
+ { ID id-CHOConfiguration CRITICALITY ignore TYPE CHOConfiguration PRESENCE optional}|
+ { ID id-TargetCellCRNTI CRITICALITY ignore TYPE C-RNTI PRESENCE optional}|
+ { ID id-TimeSinceFailure CRITICALITY ignore TYPE TimeSinceFailure PRESENCE optional},
...
}
@@ -2691,7 +2920,7 @@ ResourceStatusUpdate ::= SEQUENCE {
ResourceStatusUpdate-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-NGRAN-Node1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-NGRAN-Node2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
-{ ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult PRESENCE mandatory},
+ { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult PRESENCE mandatory},
...
}
@@ -2707,10 +2936,10 @@ MobilityChangeRequest ::= SEQUENCE {
}
MobilityChangeRequest-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-NG-RANnode1CellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE mandatory}|
+ { ID id-NG-RANnode1CellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE mandatory}|
{ ID id-NG-RANnode2CellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE mandatory}|
- { ID id-NG-RANnode1MobilityParameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE optional}|
- { ID id-NG-RANnode2ProposedMobilityParameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}|
+ { ID id-NG-RANnode1MobilityParameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE optional}|
+ { ID id-NG-RANnode2ProposedMobilityParameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
{ ID id-SSBOffsets-List CRITICALITY ignore TYPE SSBOffsets-List PRESENCE optional},
...
@@ -2749,9 +2978,9 @@ MobilityChangeFailure ::= SEQUENCE {
MobilityChangeFailure-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-NG-RANnode1CellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE mandatory}|
- { ID id-NG-RANnode2CellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE mandatory}|
+ { ID id-NG-RANnode2CellID CRITICALITY reject TYPE GlobalNG-RANCell-ID PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
- { ID id-MobilityParametersModificationRange CRITICALITY reject TYPE MobilityParametersModificationRange PRESENCE optional}|
+ { ID id-MobilityParametersModificationRange CRITICALITY reject TYPE MobilityParametersModificationRange PRESENCE optional}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
{ ID id-NG-RANnode2SSBOffsetsModificationRange CRITICALITY ignore TYPE NG-RANnode2SSBOffsetsModificationRange PRESENCE optional},
...
@@ -2769,8 +2998,10 @@ AccessAndMobilityIndication ::= SEQUENCE {
...
}
AccessAndMobilityIndication-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-RACHReportInformation CRITICALITY ignore TYPE RACHReportInformation PRESENCE optional}|
- { ID id-SuccessfulHOReportInformation CRITICALITY ignore TYPE SuccessfulHOReportInformation PRESENCE optional},
+ { ID id-RAReport CRITICALITY ignore TYPE RAReport PRESENCE optional}|
+ { ID id-SuccessfulHOReportInformation CRITICALITY ignore TYPE SuccessfulHOReportInformation PRESENCE optional}|
+ { ID id-SuccessfulPSCellChangeReportInformation CRITICALITY ignore TYPE SuccessfulPSCellChangeReportInformation PRESENCE optional}|
+ { ID id-DLLBTFailureInformationList CRITICALITY ignore TYPE DLLBTFailureInformationList PRESENCE optional},
...
}
@@ -2788,10 +3019,10 @@ CellTrafficTrace ::= SEQUENCE {
CellTrafficTraceIEs XNAP-PROTOCOL-IES ::= {
{ ID id-M-NG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-S-NG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-NG-RANTraceID CRITICALITY ignore TYPE NG-RANTraceID PRESENCE mandatory }|
- { ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }|
- { ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }|
-{ ID id-TraceCollectionEntityURI CRITICALITY ignore TYPE URIaddress PRESENCE optional},
+ { ID id-NG-RANTraceID CRITICALITY ignore TYPE NG-RANTraceID PRESENCE mandatory}|
+ { ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory}|
+ { ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional }|
+ { ID id-TraceCollectionEntityURI CRITICALITY ignore TYPE URIaddress PRESENCE optional },
...
}
@@ -2808,7 +3039,7 @@ RANMulticastGroupPaging ::= SEQUENCE {
RANMulticastGroupPaging-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-MBS-Session-ID CRITICALITY reject TYPE MBS-Session-ID PRESENCE mandatory}|
- { ID id-UEIdentityIndexList-MBSGroupPaging CRITICALITY reject TYPE UEIdentityIndexList-MBSGroupPaging PRESENCE mandatory}|
+ { ID id-UEIdentityIndexList-MBSGroupPaging CRITICALITY reject TYPE UEIdentityIndexList-MBSGroupPaging PRESENCE mandatory}|
{ ID id-MulticastRANPagingArea CRITICALITY reject TYPE RANPagingArea PRESENCE mandatory},
...
}
@@ -2825,12 +3056,13 @@ ScgFailureInformationReport ::= SEQUENCE {
}
ScgFailureInformationReport-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-M-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory }|
- { ID id-S-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory }|
- { ID id-SourcePSCellCGI CRITICALITY ignore TYPE GlobalNG-RANCell-ID PRESENCE optional }|
- { ID id-FailedPSCellCGI CRITICALITY ignore TYPE GlobalNG-RANCell-ID PRESENCE optional }|
- { ID id-SCGFailureReportContainer CRITICALITY ignore TYPE SCGFailureReportContainer PRESENCE mandatory }|
- { ID id-SNMobilityInformation CRITICALITY ignore TYPE SNMobilityInformation PRESENCE optional },
+ { ID id-M-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-S-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-SourcePSCellCGI CRITICALITY ignore TYPE GlobalNG-RANCell-ID PRESENCE optional }|
+ { ID id-FailedPSCellCGI CRITICALITY ignore TYPE GlobalNG-RANCell-ID PRESENCE optional }|
+ { ID id-SCGFailureReportContainer CRITICALITY ignore TYPE SCGFailureReportContainer PRESENCE mandatory}|
+ { ID id-SNMobilityInformation CRITICALITY ignore TYPE SNMobilityInformation PRESENCE optional }|
+ { ID id-CPACConfiguration CRITICALITY ignore TYPE CPACConfiguration PRESENCE optional },
...
}
@@ -2845,8 +3077,8 @@ ScgFailureTransfer ::= SEQUENCE {
...
}
ScgFailureTransfer-IEs XNAP-PROTOCOL-IES ::= {
- { ID id-M-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory }|
- { ID id-S-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory },
+ { ID id-M-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
+ { ID id-S-NG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory},
...
}
@@ -2889,7 +3121,8 @@ IABTransportMigrationManagementRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-TrafficToBeModifiedList CRITICALITY reject TYPE TrafficToBeModifiedList PRESENCE optional }|
{ ID id-TrafficToBeReleaseInformation CRITICALITY reject TYPE TrafficToBeReleaseInformation PRESENCE optional }|
{ ID id-IAB-TNL-Address-Request CRITICALITY reject TYPE IAB-TNL-Address-Request PRESENCE optional }|
- { ID id-IABTNLAddressException CRITICALITY reject TYPE IABTNLAddressException PRESENCE optional },
+ { ID id-IABTNLAddressException CRITICALITY reject TYPE IABTNLAddressException PRESENCE optional }|
+ { ID id-MIAB-MT-BAP-Address CRITICALITY reject TYPE BAPAddress PRESENCE optional },
...
}
@@ -3048,7 +3281,9 @@ IABTransportMigrationModificationRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-TrafficRequiredToBeModifiedList CRITICALITY reject TYPE TrafficRequiredToBeModifiedList PRESENCE optional }|
{ ID id-TrafficToBeReleaseInformation CRITICALITY reject TYPE TrafficToBeReleaseInformation PRESENCE optional }|
{ ID id-IABTNLAddressToBeAdded CRITICALITY reject TYPE IAB-TNL-Address-Response PRESENCE optional }|
- { ID id-IABTNLAddressToBeReleasedList CRITICALITY reject TYPE IABTNLAddressToBeReleasedList PRESENCE optional },
+ { ID id-IABTNLAddressToBeReleasedList CRITICALITY reject TYPE IABTNLAddressToBeReleasedList PRESENCE optional }|
+ { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional }|
+ { ID id-MobileIAB-AuthorizationStatus CRITICALITY ignore TYPE MobileIAB-AuthorizationStatus PRESENCE optional },
...
}
@@ -3208,7 +3443,8 @@ PartialUEContextTransfer ::= SEQUENCE {
PartialUEContextTransfer-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-newNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
- { ID id-SDTPartialUEContextInfo CRITICALITY ignore TYPE SDTPartialUEContextInfo PRESENCE mandatory},
+ { ID id-SDTPartialUEContextInfo CRITICALITY ignore TYPE SDTPartialUEContextInfo PRESENCE mandatory}|
+ { ID id-PosPartialUEContextInfo CRITICALITY ignore TYPE PosPartialUEContextInfo PRESENCE optional },
...
}
@@ -3226,7 +3462,8 @@ PartialUEContextTransferAcknowledge-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}|
{ ID id-SDTDataForwardingDRBList CRITICALITY ignore TYPE SDTDataForwardingDRBList PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-SRSConfiguration CRITICALITY ignore TYPE SRSConfiguration PRESENCE optional },
...
}
@@ -3250,4 +3487,109 @@ PartialUEContextTransferFailure-IEs XNAP-PROTOCOL-IES ::= {
}
+-- **************************************************************
+--
+-- RACH INDICATION
+--
+-- **************************************************************
+
+RachIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ RachIndication-IEs}},
+ ...
+}
+
+RachIndication-IEs XNAP-PROTOCOL-IES ::= {
+ { ID id-RaReportIndicationList CRITICALITY reject TYPE RaReportIndicationList PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA COLLECTION REQUEST
+--
+-- **************************************************************
+
+DataCollectionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DataCollectionRequest-IEs}},
+ ...
+}
+
+DataCollectionRequest-IEs XNAP-PROTOCOL-IES ::= {
+ { ID id-NGRAN-Node1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-NGRAN-Node2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|
+-- This IE shall be present if the Registration Request for Data Collection IE is set to the value "stop".
+ { ID id-RegistrationRequestForDataCollection CRITICALITY reject TYPE RegistrationRequestForDataCollection PRESENCE mandatory}|
+ { ID id-ReportCharacteristicsForDataCollection CRITICALITY reject TYPE ReportCharacteristicsForDataCollection PRESENCE conditional}|
+-- This IE shall be present if the Registration Request for Data Collection IE is set to the value "start".
+ { ID id-CellToReportForDataCollection-List CRITICALITY ignore TYPE CellToReportForDataCollection-List PRESENCE optional}|
+ { ID id-ReportingPeriodicityForDataCollection CRITICALITY ignore TYPE ReportingPeriodicityForDataCollection PRESENCE optional}|
+ { ID id-RequestedPredictionTime CRITICALITY ignore TYPE RequestedPredictionTime PRESENCE optional}|
+ { ID id-UETrajectoryCollectionConfiguration CRITICALITY ignore TYPE UETrajectoryCollectionConfiguration PRESENCE optional}|
+ { ID id-UEPerformanceCollectionConfiguration CRITICALITY ignore TYPE UEPerformanceCollectionConfiguration PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- DATA COLLECTION RESPONSE
+--
+-- **************************************************************
+
+DataCollectionResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DataCollectionResponse-IEs}},
+ ...
+}
+
+DataCollectionResponse-IEs XNAP-PROTOCOL-IES ::= {
+ { ID id-NGRAN-Node1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-NGRAN-Node2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-NodeMeasurementInitiationResult-List CRITICALITY reject TYPE NodeMeasurementInitiationResult-List PRESENCE optional}|
+ { ID id-CellMeasurementInitiationResult-List CRITICALITY reject TYPE CellMeasurementInitiationResult-List PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- DATA COLLECTION FAILURE
+--
+-- **************************************************************
+
+DataCollectionFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DataCollectionFailure-IEs}},
+ ...
+}
+
+DataCollectionFailure-IEs XNAP-PROTOCOL-IES ::= {
+ { ID id-NGRAN-Node1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-NGRAN-Node2-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},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- DATA COLLECTION UPDATE
+--
+-- **************************************************************
+
+DataCollectionUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DataCollectionUpdate-IEs}},
+ ...
+}
+
+DataCollectionUpdate-IEs XNAP-PROTOCOL-IES ::= {
+ { ID id-NGRAN-Node1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-NGRAN-Node2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-CellMeasurementResultForDataCollection-List CRITICALITY ignore TYPE CellMeasurementResultForDataCollection-List PRESENCE optional }|
+ { ID id-UEAssociatedInfoResult-List CRITICALITY ignore TYPE UEAssociatedInfoResult-List PRESENCE optional }|
+ { ID id-NodeAssociatedInfoResult CRITICALITY ignore TYPE NodeAssociatedInfoResult PRESENCE optional },
+ ...
+}
+
+
END
diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn
index a3af5271..84763333 100644
--- a/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.5.0 (2023-06)
+-- 3GPP TS 38.423 V18.2.0 (2024-06)
-- 9.3.3 Elementary Procedure Definitions
-- **************************************************************
--
@@ -109,7 +109,13 @@ FROM XnAP-CommonDataTypes
CPCCancel,
PartialUEContextTransfer,
PartialUEContextTransferAcknowledge,
- PartialUEContextTransferFailure
+ PartialUEContextTransferFailure,
+ RachIndication,
+ DataCollectionRequest,
+ DataCollectionResponse,
+ DataCollectionFailure,
+ DataCollectionUpdate
+
FROM XnAP-PDU-Contents
@@ -162,7 +168,12 @@ FROM XnAP-PDU-Contents
id-iABResourceCoordination,
id-retrieveUEContextConfirm,
id-cPCCancel,
- id-partialUEContextTransfer
+ id-partialUEContextTransfer,
+ id-rachIndication,
+ id-dataCollectionReportingInitiation,
+ id-dataCollectionReporting
+
+
FROM XnAP-Constants;
@@ -250,7 +261,8 @@ XNAP-ELEMENTARY-PROCEDURES-CLASS-1 XNAP-ELEMENTARY-PROCEDURE ::= {
iABTransportMigrationManagement |
iABTransportMigrationModification |
iABResourceCoordination |
- partialUEContextTransfer ,
+ partialUEContextTransfer |
+ dataCollectionReportingInitiation,
...
}
@@ -267,7 +279,7 @@ XNAP-ELEMENTARY-PROCEDURES-CLASS-2 XNAP-ELEMENTARY-PROCEDURE ::= {
privateMessage |
notificationControl |
activityNotification |
- secondaryRATDataUsageReport |
+ secondaryRATDataUsageReport |
deactivateTrace |
traceStart |
handoverSuccess |
@@ -277,13 +289,15 @@ XNAP-ELEMENTARY-PROCEDURES-CLASS-2 XNAP-ELEMENTARY-PROCEDURE ::= {
handoverReport |
resourceStatusReporting |
accessAndMobilityIndication |
- cellTrafficTrace |
+ cellTrafficTrace |
rANMulticastGroupPaging |
scgFailureInformationReport |
scgFailureTransfer |
f1CTrafficTransfer |
retrieveUEContextConfirm |
- cPCCancel ,
+ cPCCancel |
+ rachIndication |
+ dataCollectionReporting,
...
}
@@ -579,9 +593,9 @@ mobilitySettingsChange XNAP-ELEMENTARY-PROCEDURE ::= {
accessAndMobilityIndication XNAP-ELEMENTARY-PROCEDURE ::={
- INITIATING MESSAGE AccessAndMobilityIndication
+ INITIATING MESSAGE AccessAndMobilityIndication
PROCEDURE CODE id-accessAndMobilityIndication
- CRITICALITY ignore
+ CRITICALITY ignore
}
cellTrafficTrace XNAP-ELEMENTARY-PROCEDURE ::= {
@@ -593,19 +607,19 @@ cellTrafficTrace XNAP-ELEMENTARY-PROCEDURE ::= {
rANMulticastGroupPaging XNAP-ELEMENTARY-PROCEDURE ::={
INITIATING MESSAGE RANMulticastGroupPaging
PROCEDURE CODE id-RANMulticastGroupPaging
- CRITICALITY reject
+ CRITICALITY reject
}
scgFailureInformationReport XNAP-ELEMENTARY-PROCEDURE ::={
INITIATING MESSAGE ScgFailureInformationReport
PROCEDURE CODE id-scgFailureInformationReport
- CRITICALITY ignore
+ CRITICALITY ignore
}
scgFailureTransfer XNAP-ELEMENTARY-PROCEDURE ::={
- INITIATING MESSAGE ScgFailureTransfer
+ INITIATING MESSAGE ScgFailureTransfer
PROCEDURE CODE id-scgFailureTransfer
- CRITICALITY ignore
+ CRITICALITY ignore
}
f1CTrafficTransfer XNAP-ELEMENTARY-PROCEDURE ::= {
@@ -637,15 +651,35 @@ iABResourceCoordination XNAP-ELEMENTARY-PROCEDURE ::={
}
retrieveUEContextConfirm XNAP-ELEMENTARY-PROCEDURE ::={
- INITIATING MESSAGE RetrieveUEContextConfirm
+ INITIATING MESSAGE RetrieveUEContextConfirm
PROCEDURE CODE id-retrieveUEContextConfirm
- CRITICALITY ignore
+ CRITICALITY ignore
}
cPCCancel XNAP-ELEMENTARY-PROCEDURE ::={
- INITIATING MESSAGE CPCCancel
+ INITIATING MESSAGE CPCCancel
PROCEDURE CODE id-cPCCancel
- CRITICALITY ignore
+ CRITICALITY ignore
+}
+
+rachIndication XNAP-ELEMENTARY-PROCEDURE ::={
+ INITIATING MESSAGE RachIndication
+ PROCEDURE CODE id-rachIndication
+ CRITICALITY ignore
+}
+
+dataCollectionReportingInitiation XNAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataCollectionRequest
+ SUCCESSFUL OUTCOME DataCollectionResponse
+ UNSUCCESSFUL OUTCOME DataCollectionFailure
+ PROCEDURE CODE id-dataCollectionReportingInitiation
+ CRITICALITY reject
+}
+
+dataCollectionReporting XNAP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataCollectionUpdate
+ PROCEDURE CODE id-dataCollectionReporting
+ CRITICALITY ignore
}
diff --git a/epan/dissectors/asn1/xnap/packet-xnap-template.c b/epan/dissectors/asn1/xnap/packet-xnap-template.c
index 5249e74b..d768c55e 100644
--- a/epan/dissectors/asn1/xnap/packet-xnap-template.c
+++ b/epan/dissectors/asn1/xnap/packet-xnap-template.c
@@ -1,7 +1,7 @@
/* packet-xnap.c
* Routines for dissecting NG-RAN Xn application protocol (XnAP)
* 3GPP TS 38.423 packet dissection
- * Copyright 2018-2023, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2018-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -10,7 +10,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 38.423 V17.5.0 (2023-06)
+ * 3GPP TS 38.423 V18.2.0 (2024-06)
*/
#include "config.h"
@@ -21,7 +21,10 @@
#include <epan/sctpppids.h>
#include <epan/proto_data.h>
#include <epan/conversation.h>
+#include <epan/tfs.h>
+#include <epan/unit_strings.h>
+#include <wsutil/array.h>
#include "packet-xnap.h"
#include "packet-per.h"
#include "packet-lte-rrc.h"
@@ -32,6 +35,7 @@
#include "packet-ranap.h"
#include "packet-ntp.h"
#include "packet-f1ap.h"
+#include "packet-nrppa.h"
#ifdef _MSC_VER
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
@@ -48,92 +52,125 @@
#include "packet-xnap-val.h"
/* Initialize the protocol and registered fields */
-static int proto_xnap = -1;
-static int hf_xnap_transportLayerAddressIPv4 = -1;
-static int hf_xnap_transportLayerAddressIPv6 = -1;
-static int hf_xnap_NG_RANTraceID_TraceID = -1;
-static int hf_xnap_NG_RANTraceID_TraceRecordingSessionReference = -1;
-static int hf_xnap_primaryRATRestriction_e_UTRA = -1;
-static int hf_xnap_primaryRATRestriction_nR = -1;
-static int hf_xnap_primaryRATRestriction_nR_unlicensed = -1;
-static int hf_xnap_primaryRATRestriction_nR_LEO = -1;
-static int hf_xnap_primaryRATRestriction_nR_MEO = -1;
-static int hf_xnap_primaryRATRestriction_nR_GEO = -1;
-static int hf_xnap_primaryRATRestriction_nR_OTHERSAT = -1;
-static int hf_xnap_primaryRATRestriction_reserved = -1;
-static int hf_xnap_secondaryRATRestriction_e_UTRA = -1;
-static int hf_xnap_secondaryRATRestriction_nR = -1;
-static int hf_xnap_secondaryRATRestriction_e_UTRA_unlicensed = -1;
-static int hf_xnap_secondaryRATRestriction_nR_unlicensed = -1;
-static int hf_xnap_secondaryRATRestriction_reserved = -1;
-static int hf_xnap_MDT_Location_Info_GNSS = -1;
-static int hf_xnap_MDT_Location_Info_reserved = -1;
-static int hf_xnap_MeasurementsToActivate_M1 = -1;
-static int hf_xnap_MeasurementsToActivate_M2 = -1;
-static int hf_xnap_MeasurementsToActivate_M3 = -1;
-static int hf_xnap_MeasurementsToActivate_M4 = -1;
-static int hf_xnap_MeasurementsToActivate_M5 = -1;
-static int hf_xnap_MeasurementsToActivate_LoggingM1FromEventTriggered = -1;
-static int hf_xnap_MeasurementsToActivate_M6 = -1;
-static int hf_xnap_MeasurementsToActivate_M7 = -1;
-static int hf_xnap_ReportCharacteristics_PRBPeriodic = -1;
-static int hf_xnap_ReportCharacteristics_TNLCapacityIndPeriodic = -1;
-static int hf_xnap_ReportCharacteristics_CompositeAvailableCapacityPeriodic = -1;
-static int hf_xnap_ReportCharacteristics_NumberOfActiveUEs = -1;
-static int hf_xnap_ReportCharacteristics_Reserved = -1;
+static int proto_xnap;
+static int hf_xnap_transportLayerAddressIPv4;
+static int hf_xnap_transportLayerAddressIPv6;
+static int hf_xnap_NG_RANTraceID_TraceID;
+static int hf_xnap_NG_RANTraceID_TraceRecordingSessionReference;
+static int hf_xnap_primaryRATRestriction_e_UTRA;
+static int hf_xnap_primaryRATRestriction_nR;
+static int hf_xnap_primaryRATRestriction_nR_unlicensed;
+static int hf_xnap_primaryRATRestriction_nR_LEO;
+static int hf_xnap_primaryRATRestriction_nR_MEO;
+static int hf_xnap_primaryRATRestriction_nR_GEO;
+static int hf_xnap_primaryRATRestriction_nR_OTHERSAT;
+static int hf_xnap_primaryRATRestriction_e_UTRA_LEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_MEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_GEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT;
+static int hf_xnap_primaryRATRestriction_reserved;
+static int hf_xnap_secondaryRATRestriction_e_UTRA;
+static int hf_xnap_secondaryRATRestriction_nR;
+static int hf_xnap_secondaryRATRestriction_e_UTRA_unlicensed;
+static int hf_xnap_secondaryRATRestriction_nR_unlicensed;
+static int hf_xnap_secondaryRATRestriction_reserved;
+static int hf_xnap_MDT_Location_Info_GNSS;
+static int hf_xnap_MDT_Location_Info_reserved;
+static int hf_xnap_MeasurementsToActivate_M1;
+static int hf_xnap_MeasurementsToActivate_M2;
+static int hf_xnap_MeasurementsToActivate_M3;
+static int hf_xnap_MeasurementsToActivate_M4;
+static int hf_xnap_MeasurementsToActivate_M5;
+static int hf_xnap_MeasurementsToActivate_LoggingM1FromEventTriggered;
+static int hf_xnap_MeasurementsToActivate_M6;
+static int hf_xnap_MeasurementsToActivate_M7;
+static int hf_xnap_ReportCharacteristics_PRBPeriodic;
+static int hf_xnap_ReportCharacteristics_TNLCapacityIndPeriodic;
+static int hf_xnap_ReportCharacteristics_CompositeAvailableCapacityPeriodic;
+static int hf_xnap_ReportCharacteristics_NumberOfActiveUEsPeriodic;
+static int hf_xnap_ReportCharacteristics_RRCconnectionsPeriodic;
+static int hf_xnap_ReportCharacteristics_NR_UChannelListPeriodic;
+static int hf_xnap_ReportCharacteristics_Reserved;
+static int hf_xnap_ReportCharacteristicsForDataCollection_PredictedRadioResourceStatus;
+static int hf_xnap_ReportCharacteristicsForDataCollection_PredictedNumberofActiveUEs;
+static int hf_xnap_ReportCharacteristicsForDataCollection_PredictedRRCConnections;
+static int hf_xnap_ReportCharacteristicsForDataCollection_AverageUEThroughputDL;
+static int hf_xnap_ReportCharacteristicsForDataCollection_AverageUEThroughputUL;
+static int hf_xnap_ReportCharacteristicsForDataCollection_AveragePacketDelay;
+static int hf_xnap_ReportCharacteristicsForDataCollection_AveragePacketLossDL;
+static int hf_xnap_ReportCharacteristicsForDataCollection_EnergyCost;
+static int hf_xnap_ReportCharacteristicsForDataCollection_MeasuredUETrajectory;
+static int hf_xnap_ReportCharacteristicsForDataCollection_Reserved;
+static int hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedRadioResourceStatus;
+static int hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedNumberofActiveUEs;
+static int hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedRRCConnections;
+static int hf_xnap_cellmeasurementFailedReportCharacteristics_Reserved;
+static int hf_xnap_nodemeasurementFailedReportCharacteristics_EnergyCost;
+static int hf_xnap_nodemeasurementFailedReportCharacteristics_AverageUEThroughputDL;
+static int hf_xnap_nodemeasurementFailedReportCharacteristics_AverageUEThroughputUL;
+static int hf_xnap_nodemeasurementFailedReportCharacteristics_AveragePacketDelay;
+static int hf_xnap_nodemeasurementFailedReportCharacteristics_AveragePacketLossDL;
+static int hf_xnap_nodemeasurementFailedReportCharacteristics_MeasuredUETrajectory;
+static int hf_xnap_nodemeasurementFailedReportCharacteristics_Reserved;
#include "packet-xnap-hf.c"
/* Initialize the subtree pointers */
-static gint ett_xnap = -1;
-static gint ett_xnap_RRC_Context = -1;
-static gint ett_nxap_container = -1;
-static gint ett_xnap_PLMN_Identity = -1;
-static gint ett_xnap_measurementTimingConfiguration = -1;
-static gint ett_xnap_TransportLayerAddress = -1;
-static gint ett_xnap_NG_RANTraceID = -1;
-static gint ett_xnap_LastVisitedEUTRANCellInformation = -1;
-static gint ett_xnap_LastVisitedNGRANCellInformation = -1;
-static gint ett_xnap_LastVisitedUTRANCellInformation = -1;
-static gint ett_xnap_LastVisitedGERANCellInformation = -1;
-static gint ett_xnap_UERadioCapabilityForPagingOfNR = -1;
-static gint ett_xnap_UERadioCapabilityForPagingOfEUTRA = -1;
-static gint ett_xnap_FiveGCMobilityRestrictionListContainer = -1;
-static gint ett_xnap_primaryRATRestriction = -1;
-static gint ett_xnap_secondaryRATRestriction = -1;
-static gint ett_xnap_ImmediateMDT_EUTRA = -1;
-static gint ett_xnap_MDT_Location_Info = -1;
-static gint ett_xnap_MeasurementsToActivate = -1;
-static gint ett_xnap_NRMobilityHistoryReport = -1;
-static gint ett_xnap_RACHReportContainer = -1;
-static gint ett_xnap_TargetCellinEUTRAN = -1;
-static gint ett_xnap_TDDULDLConfigurationCommonNR = -1;
-static gint ett_xnap_UERLFReportContainerLTE = -1;
-static gint ett_xnap_UERLFReportContainerNR = -1;
-static gint ett_xnap_burstArrivalTime = -1;
-static gint ett_xnap_ReportCharacteristics = -1;
-static gint ett_xnap_NRCellPRACHConfig = -1;
-static gint ett_xnap_anchorCarrier_NPRACHConfig = -1;
-static gint ett_xnap_anchorCarrier_EDT_NPRACHConfig = -1;
-static gint ett_xnap_anchorCarrier_Format2_NPRACHConfig = -1;
-static gint ett_xnap_anchorCarrier_Format2_EDT_NPRACHConfig = -1;
-static gint ett_xnap_non_anchorCarrier_NPRACHConfig = -1;
-static gint ett_xnap_non_anchorCarrier_Format2_NPRACHConfig = -1;
-static gint ett_xnap_anchorCarrier_NPRACHConfigTDD = -1;
-static gint ett_xnap_non_anchorCarrier_NPRACHConfigTDD = -1;
-static gint ett_xnap_non_anchorCarrierFrequency = -1;
-static gint ett_xnap_cSI_RS_Configuration = -1;
-static gint ett_xnap_sR_Configuration = -1;
-static gint ett_xnap_pDCCH_ConfigSIB1 = -1;
-static gint ett_xnap_sCS_Common = -1;
-static gint ett_xnap_LastVisitedPSCellInformation = -1;
-static gint ett_xnap_MeasObjectContainer = -1;
-static gint ett_xnap_RACH_Config_Common = -1;
-static gint ett_xnap_RACH_Config_Common_IAB = -1;
-static gint ett_xnap_ReportConfigContainer = -1;
-static gint ett_xnap_RLC_Bearer_Configuration = -1;
-static gint ett_xnap_SuccessfulHOReportContainer = -1;
-static gint ett_xnap_UERLFReportContainerLTEExtendBand = -1;
-static gint ett_xnap_MDTMode_EUTRA = -1;
+static int ett_xnap;
+static int ett_xnap_RRC_Context;
+static int ett_xnap_container;
+static int ett_xnap_PLMN_Identity;
+static int ett_xnap_measurementTimingConfiguration;
+static int ett_xnap_TransportLayerAddress;
+static int ett_xnap_NG_RANTraceID;
+static int ett_xnap_LastVisitedEUTRANCellInformation;
+static int ett_xnap_LastVisitedNGRANCellInformation;
+static int ett_xnap_LastVisitedUTRANCellInformation;
+static int ett_xnap_LastVisitedGERANCellInformation;
+static int ett_xnap_UERadioCapabilityForPagingOfNR;
+static int ett_xnap_UERadioCapabilityForPagingOfEUTRA;
+static int ett_xnap_FiveGCMobilityRestrictionListContainer;
+static int ett_xnap_primaryRATRestriction;
+static int ett_xnap_secondaryRATRestriction;
+static int ett_xnap_ImmediateMDT_EUTRA;
+static int ett_xnap_MDT_Location_Info;
+static int ett_xnap_MeasurementsToActivate;
+static int ett_xnap_NRMobilityHistoryReport;
+static int ett_xnap_RAReportContainer;
+static int ett_xnap_TargetCellinEUTRAN;
+static int ett_xnap_TDDULDLConfigurationCommonNR;
+static int ett_xnap_UERLFReportContainerLTE;
+static int ett_xnap_UERLFReportContainerNR;
+static int ett_xnap_burstArrivalTime;
+static int ett_xnap_ReportCharacteristics;
+static int ett_xnap_NRCellPRACHConfig;
+static int ett_xnap_anchorCarrier_NPRACHConfig;
+static int ett_xnap_anchorCarrier_EDT_NPRACHConfig;
+static int ett_xnap_anchorCarrier_Format2_NPRACHConfig;
+static int ett_xnap_anchorCarrier_Format2_EDT_NPRACHConfig;
+static int ett_xnap_non_anchorCarrier_NPRACHConfig;
+static int ett_xnap_non_anchorCarrier_Format2_NPRACHConfig;
+static int ett_xnap_anchorCarrier_NPRACHConfigTDD;
+static int ett_xnap_non_anchorCarrier_NPRACHConfigTDD;
+static int ett_xnap_non_anchorCarrierFrequency;
+static int ett_xnap_cSI_RS_Configuration;
+static int ett_xnap_sR_Configuration;
+static int ett_xnap_pDCCH_ConfigSIB1;
+static int ett_xnap_sCS_Common;
+static int ett_xnap_LastVisitedPSCellInformation;
+static int ett_xnap_MeasObjectContainer;
+static int ett_xnap_RACH_Config_Common;
+static int ett_xnap_RACH_Config_Common_IAB;
+static int ett_xnap_ReportConfigContainer;
+static int ett_xnap_RLC_Bearer_Configuration;
+static int ett_xnap_SuccessfulHOReportContainer;
+static int ett_xnap_UERLFReportContainerLTEExtendBand;
+static int ett_xnap_MDTMode_EUTRA;
+static int ett_xnap_cellmeasurementFailedReportCharacteristics;
+static int ett_xnap_nodemeasurementFailedReportCharacteristics;
+static int ett_xnap_ReportCharacteristicsForDataCollection;
+static int ett_xnap_SRSConfiguration;
+static int ett_xnap_PSCellListContainer;
+static int ett_xnap_SuccessfulPSCellChangeReportContainer;
#include "packet-xnap-ett.c"
enum {
@@ -161,8 +198,8 @@ static const enum_val_t xnap_lte_rrc_context_vals[] = {
};
/* Global variables */
-static gint xnap_dissect_target_ng_ran_container_as = XNAP_NG_RAN_CONTAINER_AUTOMATIC;
-static gint xnap_dissect_lte_rrc_context_as = XNAP_LTE_RRC_CONTEXT_LTE;
+static int xnap_dissect_target_ng_ran_container_as = XNAP_NG_RAN_CONTAINER_AUTOMATIC;
+static int xnap_dissect_lte_rrc_context_as = XNAP_LTE_RRC_CONTEXT_LTE;
/* Dissector tables */
static dissector_table_t xnap_ies_dissector_table;
@@ -183,51 +220,58 @@ static int dissect_XnAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
static dissector_handle_t xnap_handle;
static void
-xnap_PacketLossRate_fmt(gchar *s, guint32 v)
+xnap_PacketLossRate_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1f%% (%u)", (float)v/10, v);
}
static void
-xnap_PacketDelayBudget_fmt(gchar *s, guint32 v)
+xnap_PacketDelayBudget_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
}
static void
-xnap_ExtendedPacketDelayBudget_fmt(gchar *s, guint32 v)
+xnap_ExtendedPacketDelayBudget_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.2fms (%u)", (float)v/100, v);
}
static void
-xnap_handoverTriggerChange_fmt(gchar *s, guint32 v)
+xnap_handoverTriggerChange_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%d)", ((float)v)/2, (gint32)v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%d)", ((float)v)/2, (int32_t)v);
}
static void
-xnap_Threshold_RSRP_fmt(gchar *s, guint32 v)
+xnap_Threshold_RSRP_fmt(char *s, uint32_t v)
{
- snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (gint32)v-156, v);
+ snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", (int32_t)v-156, v);
}
static void
-xnap_Threshold_RSRQ_fmt(gchar *s, guint32 v)
+xnap_Threshold_RSRQ_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-43, v);
}
static void
-xnap_Threshold_SINR_fmt(gchar *s, guint32 v)
+xnap_Threshold_SINR_fmt(char *s, uint32_t v)
{
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-23, v);
}
-static const true_false_string xnap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
+static void
+xnap_AveragePacketDelayValue_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/10, v);
+}
+
+static void
+xnap_N6Jitter_fmt(char *s, uint32_t v)
+{
+ snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%d)", (float)v/2, (int32_t)v);
+}
typedef enum {
INITIATING_MESSAGE,
@@ -237,18 +281,18 @@ typedef enum {
struct xnap_conv_info {
address addr_a;
- guint32 port_a;
+ uint32_t port_a;
GlobalNG_RANNode_ID_enum ranmode_id_a;
address addr_b;
- guint32 port_b;
+ uint32_t port_b;
GlobalNG_RANNode_ID_enum ranmode_id_b;
};
struct xnap_private_data {
struct xnap_conv_info *xnap_conv;
xnap_message_type message_type;
- guint32 procedure_code;
- guint32 protocol_ie_id;
+ uint32_t procedure_code;
+ uint32_t protocol_ie_id;
e212_number_type_t number_type;
};
@@ -264,7 +308,7 @@ xnap_get_private_data(packet_info *pinfo)
}
static GlobalNG_RANNode_ID_enum
-xnap_get_ranmode_id(address *addr, guint32 port, packet_info *pinfo)
+xnap_get_ranmode_id(address *addr, uint32_t port, packet_info *pinfo)
{
struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo);
GlobalNG_RANNode_ID_enum ranmode_id = (GlobalNG_RANNode_ID_enum)-1;
@@ -285,35 +329,35 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
{
struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo);
- return (dissector_try_uint_new(xnap_ies_dissector_table, xnap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(xnap_ies_dissector_table, xnap_data->protocol_ie_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_)
{
struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo);
- return (dissector_try_uint_new(xnap_extension_dissector_table, xnap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(xnap_extension_dissector_table, xnap_data->protocol_ie_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_)
{
struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo);
- return (dissector_try_uint_new(xnap_proc_imsg_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(xnap_proc_imsg_dissector_table, xnap_data->procedure_code, 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_)
{
struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo);
- return (dissector_try_uint_new(xnap_proc_sout_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(xnap_proc_sout_dissector_table, xnap_data->procedure_code, 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_)
{
struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo);
- return (dissector_try_uint_new(xnap_proc_uout_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ return (dissector_try_uint_new(xnap_proc_uout_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, false, NULL)) ? tvb_captured_length(tvb) : 0;
}
static int
@@ -394,12 +438,28 @@ void proto_register_xnap(void) {
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
NULL, HFILL }},
{ &hf_xnap_primaryRATRestriction_nR_OTHERSAT,
- { "nR-unlicensed", "xnap.primaryRATRestriction.nR_unlicensed",
+ { "nR-unlicensed", "xnap.primaryRATRestriction.nR_OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_LEO,
+ { "e-UTRA-LEO", "xnap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_MEO,
+ { "e-UTRA-MEO", "xnap.primaryRATRestriction.e_UTRA_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_GEO,
+ { "e-UTRA-GEO", "xnap.primaryRATRestriction.e_UTRA_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT,
+ { "e-UTRA-unlicensed", "xnap.primaryRATRestriction.e_UTRA_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20,
+ NULL, HFILL }},
{ &hf_xnap_primaryRATRestriction_reserved,
{ "reserved", "xnap.primaryRATRestriction.reserved",
- FT_UINT8, BASE_HEX, NULL, 0x01,
+ FT_UINT8, BASE_HEX, NULL, 0x1f,
NULL, HFILL }},
{ &hf_xnap_secondaryRATRestriction_e_UTRA,
{ "e-UTRA", "xnap.secondaryRATRestriction.e_UTRA",
@@ -431,35 +491,35 @@ void proto_register_xnap(void) {
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M1,
{ "M1", "xnap.MeasurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M2,
{ "M2", "xnap.MeasurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M3,
{ "M3", "xnap.MeasurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M4,
{ "M4", "xnap.MeasurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M5,
{ "M5", "xnap.MeasurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "xnap.MeasurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M6,
{ "M6", "xnap.MeasurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M7,
{ "M7", "xnap.MeasurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_xnap_ReportCharacteristics_PRBPeriodic,
{ "PRBPeriodic", "xnap.ReportCharacteristics.PRBPeriodic",
@@ -473,22 +533,114 @@ void proto_register_xnap(void) {
{ "CompositeAvailableCapacityPeriodic", "xnap.ReportCharacteristics.CompositeAvailableCapacityPeriodic",
FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x20000000,
NULL, HFILL }},
- { &hf_xnap_ReportCharacteristics_NumberOfActiveUEs,
- { "NumberOfActiveUEs", "xnap.ReportCharacteristics.NumberOfActiveUEs",
+ { &hf_xnap_ReportCharacteristics_NumberOfActiveUEsPeriodic,
+ { "NumberOfActiveUEsPeriodic", "xnap.ReportCharacteristics.NumberOfActiveUEsPeriodic",
FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x10000000,
NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristics_RRCconnectionsPeriodic,
+ { "RRCconnectionsPeriodic", "xnap.ReportCharacteristics.RRCconnectionsPeriodic",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x08000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristics_NR_UChannelListPeriodic,
+ { "NR-UChannelListPeriodic", "xnap.ReportCharacteristics.NR_UChannelListPeriodic",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x04000000,
+ NULL, HFILL }},
{ &hf_xnap_ReportCharacteristics_Reserved,
{ "Reserved", "xnap.ReportCharacteristics.Reserved",
- FT_UINT32, BASE_HEX, NULL, 0x0fffffff,
+ FT_UINT32, BASE_HEX, NULL, 0x03ffffff,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_PredictedRadioResourceStatus,
+ { "PredictedRadioResourceStatus", "xnap.ReportCharacteristicsForDataCollection.PredictedRadioResourceStatus",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x80000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_PredictedNumberofActiveUEs,
+ { "PredictedNumberofActiveUEs", "xnap.ReportCharacteristicsForDataCollection.PredictedNumberofActiveUEs",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x40000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_PredictedRRCConnections,
+ { "PredictedRRCConnections", "xnap.ReportCharacteristicsForDataCollection.PredictedRRCConnections",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x20000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_AverageUEThroughputDL,
+ { "AverageUEThroughputDL", "xnap.ReportCharacteristicsForDataCollection.AverageUEThroughputDL",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x10000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_AverageUEThroughputUL,
+ { "AverageUEThroughputUL", "xnap.ReportCharacteristicsForDataCollection.AverageUEThroughputUL",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x08000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_AveragePacketDelay,
+ { "AveragePacketDelay", "xnap.ReportCharacteristicsForDataCollection.AveragePacketDelay",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x04000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_AveragePacketLossDL,
+ { "AveragePacketLossDL", "xnap.ReportCharacteristicsForDataCollection.AveragePacketLossDL",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x02000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_EnergyCost,
+ { "EnergyCost", "xnap.ReportCharacteristicsForDataCollection.EnergyCost",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x01000000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_MeasuredUETrajectory,
+ { "MeasuredUETrajectory", "xnap.ReportCharacteristicsForDataCollection.MeasuredUETrajectory",
+ FT_BOOLEAN, 32, TFS(&tfs_requested_not_requested), 0x00800000,
+ NULL, HFILL }},
+ { &hf_xnap_ReportCharacteristicsForDataCollection_Reserved,
+ { "Reserved", "xnap.ReportCharacteristicsForDataCollection.Reserved",
+ FT_UINT32, BASE_HEX, NULL, 0x007fffff,
+ NULL, HFILL }},
+ { &hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedRadioResourceStatus,
+ { "PredictedRadioResourceStatus", "xnap.cellmeasurementFailedReportCharacteristics.PredictedRadioResourceStatus",
+ FT_BOOLEAN, 32, NULL, 0x80000000,
+ NULL, HFILL }},
+ { &hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedNumberofActiveUEs,
+ { "PredictedNumberofActiveUEs", "xnap.cellmeasurementFailedReportCharacteristics.PredictedNumberofActiveUEs",
+ FT_BOOLEAN, 32, NULL, 0x40000000,
+ NULL, HFILL }},
+ { &hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedRRCConnections,
+ { "PredictedRRCConnections", "xnap.cellmeasurementFailedReportCharacteristics.PredictedRRCConnections",
+ FT_BOOLEAN, 32, NULL, 0x20000000,
+ NULL, HFILL }},
+ { &hf_xnap_cellmeasurementFailedReportCharacteristics_Reserved,
+ { "Reserved", "xnap.cellmeasurementFailedReportCharacteristics.Reserved",
+ FT_UINT32, BASE_HEX, NULL, 0x1fffffff,
+ NULL, HFILL }},
+ { &hf_xnap_nodemeasurementFailedReportCharacteristics_EnergyCost,
+ { "EnergyCost", "xnap.nodemeasurementFailedReportCharacteristics.EnergyCost",
+ FT_BOOLEAN, 32, NULL, 0x80000000,
+ NULL, HFILL }},
+ { &hf_xnap_nodemeasurementFailedReportCharacteristics_AverageUEThroughputDL,
+ { "AverageUEThroughputDL", "xnap.nodemeasurementFailedReportCharacteristics.AverageUEThroughputDL",
+ FT_BOOLEAN, 32, NULL, 0x40000000,
+ NULL, HFILL }},
+ { &hf_xnap_nodemeasurementFailedReportCharacteristics_AverageUEThroughputUL,
+ { "AverageUEThroughputUL", "xnap.nodemeasurementFailedReportCharacteristics.AverageUEThroughputUL",
+ FT_BOOLEAN, 32, NULL, 0x20000000,
+ NULL, HFILL }},
+ { &hf_xnap_nodemeasurementFailedReportCharacteristics_AveragePacketDelay,
+ { "AveragePacketDelay", "xnap.nodemeasurementFailedReportCharacteristics.AveragePacketDelay",
+ FT_BOOLEAN, 32, NULL, 0x10000000,
+ NULL, HFILL }},
+ { &hf_xnap_nodemeasurementFailedReportCharacteristics_AveragePacketLossDL,
+ { "AveragePacketLossDL", "xnap.nodemeasurementFailedReportCharacteristics.AveragePacketLossDL",
+ FT_BOOLEAN, 32, NULL, 0x08000000,
+ NULL, HFILL }},
+ { &hf_xnap_nodemeasurementFailedReportCharacteristics_MeasuredUETrajectory,
+ { "MeasuredUETrajectory", "xnap.nodemeasurementFailedReportCharacteristics.MeasuredUETrajectory",
+ FT_BOOLEAN, 32, NULL, 0x04000000,
+ NULL, HFILL }},
+ { &hf_xnap_nodemeasurementFailedReportCharacteristics_Reserved,
+ { "Reserved", "xnap.nodemeasurementFailedReportCharacteristics.Reserved",
+ FT_UINT32, BASE_HEX, NULL, 0x03ffffff,
NULL, HFILL }},
#include "packet-xnap-hfarr.c"
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_xnap,
&ett_xnap_RRC_Context,
- &ett_nxap_container,
+ &ett_xnap_container,
&ett_xnap_PLMN_Identity,
&ett_xnap_measurementTimingConfiguration,
&ett_xnap_TransportLayerAddress,
@@ -506,7 +658,7 @@ void proto_register_xnap(void) {
&ett_xnap_MDT_Location_Info,
&ett_xnap_MeasurementsToActivate,
&ett_xnap_NRMobilityHistoryReport,
- &ett_xnap_RACHReportContainer,
+ &ett_xnap_RAReportContainer,
&ett_xnap_TargetCellinEUTRAN,
&ett_xnap_TDDULDLConfigurationCommonNR,
&ett_xnap_UERLFReportContainerLTE,
@@ -536,6 +688,12 @@ void proto_register_xnap(void) {
&ett_xnap_SuccessfulHOReportContainer,
&ett_xnap_UERLFReportContainerLTEExtendBand,
&ett_xnap_MDTMode_EUTRA,
+ &ett_xnap_cellmeasurementFailedReportCharacteristics,
+ &ett_xnap_nodemeasurementFailedReportCharacteristics,
+ &ett_xnap_ReportCharacteristicsForDataCollection,
+ &ett_xnap_SRSConfiguration,
+ &ett_xnap_PSCellListContainer,
+ &ett_xnap_SuccessfulPSCellChangeReportContainer,
#include "packet-xnap-ettarr.c"
};
@@ -558,10 +716,10 @@ void proto_register_xnap(void) {
prefs_register_enum_preference(xnap_module, "dissect_target_ng_ran_container_as", "Dissect target NG-RAN container as",
"Select whether target NG-RAN container should be decoded automatically"
" (based on Xn Setup procedure) or manually",
- &xnap_dissect_target_ng_ran_container_as, xnap_target_ng_ran_container_vals, FALSE);
+ &xnap_dissect_target_ng_ran_container_as, xnap_target_ng_ran_container_vals, false);
prefs_register_enum_preference(xnap_module, "dissect_lte_rrc_context_as", "Dissect LTE RRC Context as",
"Select whether LTE RRC Context should be dissected as legacy LTE or NB-IOT",
- &xnap_dissect_lte_rrc_context_as, xnap_lte_rrc_context_vals, FALSE);
+ &xnap_dissect_lte_rrc_context_as, xnap_lte_rrc_context_vals, false);
}
diff --git a/epan/dissectors/asn1/xnap/xnap.cnf b/epan/dissectors/asn1/xnap/xnap.cnf
index cc3b855f..ff9ce472 100644
--- a/epan/dissectors/asn1/xnap/xnap.cnf
+++ b/epan/dissectors/asn1/xnap/xnap.cnf
@@ -1,6 +1,6 @@
# xnap.cnf
# xnap conformation file
-# Copyright 2018-2023 Pascal Quantin
+# Copyright 2018-2024 Pascal Quantin
#.OPT
PER
@@ -86,7 +86,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
#.END
#.FN_BODY GlobalNG-RANNode-ID VAL_PTR = &value
- gint value;
+ int value;
struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
@@ -132,7 +132,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
proto_tree *subtree;
GlobalNG_RANNode_ID_enum source_ranmode_id = xnap_get_ranmode_id(&actx->pinfo->src, actx->pinfo->srcport, actx->pinfo);
- subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container);
+ subtree = proto_item_add_subtree(actx->created_item, ett_xnap_container);
if ((xnap_dissect_target_ng_ran_container_as == XNAP_NG_RAN_CONTAINER_AUTOMATIC &&
source_ranmode_id == GlobalNG_RANNode_ID_gNB) ||
(xnap_dissect_target_ng_ran_container_as == XNAP_NG_RAN_CONTAINER_GNB)) {
@@ -153,7 +153,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo);
GlobalNG_RANNode_ID_enum target_ranmode_id = xnap_get_ranmode_id(&actx->pinfo->dst, actx->pinfo->destport, actx->pinfo);
- subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container);
+ subtree = proto_item_add_subtree(actx->created_item, ett_xnap_container);
if ((xnap_data->procedure_code == id_sNGRANnodeAdditionPreparation &&
xnap_data->message_type == INITIATING_MESSAGE) ||
(xnap_data->procedure_code == id_mNGRANnodeinitiatedSNGRANnodeModificationPreparation &&
@@ -187,7 +187,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
if (parameter_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container);
+ subtree = proto_item_add_subtree(actx->created_item, ett_xnap_container);
dissect_nr_rrc_CG_Config_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
@@ -199,7 +199,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
proto_tree *subtree;
GlobalNG_RANNode_ID_enum target_ranmode_id = xnap_get_ranmode_id(&actx->pinfo->dst, actx->pinfo->destport, actx->pinfo);
- subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container);
+ subtree = proto_item_add_subtree(actx->created_item, ett_xnap_container);
if ((xnap_dissect_target_ng_ran_container_as == XNAP_NG_RAN_CONTAINER_AUTOMATIC &&
target_ranmode_id == GlobalNG_RANNode_ID_gNB) ||
(xnap_dissect_target_ng_ran_container_as == XNAP_NG_RAN_CONTAINER_GNB)) {
@@ -218,7 +218,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
if (parameter_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container);
+ subtree = proto_item_add_subtree(actx->created_item, ett_xnap_container);
dissect_nr_rrc_CG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
@@ -229,7 +229,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
if (parameter_tvb) {
proto_tree *subtree;
- subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container);
+ subtree = proto_item_add_subtree(actx->created_item, ett_xnap_container);
dissect_nr_rrc_CG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
@@ -264,7 +264,7 @@ ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS =
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_xnap_PLMN_Identity);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, number_type, false);
#.TYPE_ATTR
PortNumber TYPE = FT_UINT16 DISPLAY = BASE_DEC
@@ -375,10 +375,10 @@ NG-RAN-Cell-Identity/e-utra ABBREV=E_UTRA_Cell_Identity TYPE=FT_UINT32 DISPLAY=B
}
#.TYPE_ATTR
-SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+SurvivalTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_bit_sec)
#.TYPE_ATTR
PacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(xnap_PacketLossRate_fmt)
@@ -387,10 +387,10 @@ PacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(xnap_PacketLossRate_fmt)
PacketDelayBudget DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(xnap_PacketDelayBudget_fmt)
#.TYPE_ATTR
-AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds
+AveragingWindow DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds)
#.TYPE_ATTR
-MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_bytes
+MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
#.FN_BODY TransportLayerAddress VAL_PTR = &parameter_tvb LEN_PTR = &len
tvbuff_t *parameter_tvb = NULL;
@@ -422,7 +422,7 @@ MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_byt
if (!parameter_tvb)
return offset;
subtree = proto_item_add_subtree(actx->created_item, ett_xnap_NG_RANTraceID);
- dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, false);
proto_tree_add_item(subtree, hf_xnap_NG_RANTraceID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_xnap_NG_RANTraceID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN);
@@ -472,13 +472,13 @@ MaximumDataBurstVolume DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_byte_byt
}
#.TYPE_ATTR
-ExpectedUEMovingTrajectoryItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedUEMovingTrajectoryItem/timeStayedInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.TYPE_ATTR
-ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY VolumeTimedReport-Item/startTimeStamp VAL_PTR = &timestamp_tvb
tvbuff_t *timestamp_tvb = NULL;
@@ -499,10 +499,10 @@ ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
}
#.TYPE_ATTR
-VolumeTimedReport-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+VolumeTimedReport-Item/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.TYPE_ATTR
-VolumeTimedReport-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+VolumeTimedReport-Item/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_octet_octets)
#.FN_BODY UERadioCapabilityForPagingOfNR VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -607,11 +607,20 @@ BluetoothName TYPE=FT_STRING DISPLAY = BASE_NONE
&hf_xnap_primaryRATRestriction_nR_MEO,
&hf_xnap_primaryRATRestriction_nR_GEO,
&hf_xnap_primaryRATRestriction_nR_OTHERSAT,
+ &hf_xnap_primaryRATRestriction_e_UTRA_LEO,
+ NULL
+ };
+ static int * const fields2[] = {
+ &hf_xnap_primaryRATRestriction_e_UTRA_MEO,
+ &hf_xnap_primaryRATRestriction_e_UTRA_GEO,
+ &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT,
&hf_xnap_primaryRATRestriction_reserved,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_primaryRATRestriction);
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ if (tvb_reported_length(parameter_tvb) >= 2)
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN);
}
#.FN_BODY ExtendedRATRestrictionInformation/secondaryRATRestriction VAL_PTR=&parameter_tvb
@@ -634,7 +643,7 @@ BluetoothName TYPE=FT_STRING DISPLAY = BASE_NONE
ExtendedPacketDelayBudget DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(xnap_ExtendedPacketDelayBudget_fmt)
#.TYPE_ATTR
-M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_minutes
+M7period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_minutes)
#.FN_BODY MDT-Location-Info VAL_PTR=&parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -694,7 +703,7 @@ MobilityParametersModificationRange/handoverTriggerChange DISPLAY=BASE_CUSTOM ST
}
#.TYPE_ATTR
-OfferedCapacity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kbps
+OfferedCapacity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_kbps)
#.FN_BODY RACH-Config-Common VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -712,11 +721,11 @@ OfferedCapacity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kbps
dissect_nr_rrc_rach_ConfigCommonIAB_r16_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
-#.FN_BODY RACHReportContainer VAL_PTR = &parameter_tvb
+#.FN_BODY RAReportContainer VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
%(DEFAULT_BODY)s
if (parameter_tvb) {
- proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RACHReportContainer);
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RAReportContainer);
dissect_nr_rrc_RA_ReportList_r16_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
}
@@ -811,7 +820,7 @@ WLANName TYPE=FT_STRING DISPLAY = BASE_NONE
}
#.TYPE_ATTR
-TSCAssistanceInformation/periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_microseconds
+TSCAssistanceInformation/periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_microseconds)
#.FN_BODY ReportCharacteristics VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
@@ -821,7 +830,9 @@ TSCAssistanceInformation/periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&
&hf_xnap_ReportCharacteristics_PRBPeriodic,
&hf_xnap_ReportCharacteristics_TNLCapacityIndPeriodic,
&hf_xnap_ReportCharacteristics_CompositeAvailableCapacityPeriodic,
- &hf_xnap_ReportCharacteristics_NumberOfActiveUEs,
+ &hf_xnap_ReportCharacteristics_NumberOfActiveUEsPeriodic,
+ &hf_xnap_ReportCharacteristics_RRCconnectionsPeriodic,
+ &hf_xnap_ReportCharacteristics_NR_UChannelListPeriodic,
&hf_xnap_ReportCharacteristics_Reserved,
NULL
};
@@ -829,6 +840,27 @@ TSCAssistanceInformation/periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 4, fields, ENC_BIG_ENDIAN);
}
+#.FN_BODY ReportCharacteristicsForDataCollection VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if(parameter_tvb){
+ static int * const fields[] = {
+ &hf_xnap_ReportCharacteristicsForDataCollection_PredictedRadioResourceStatus,
+ &hf_xnap_ReportCharacteristicsForDataCollection_PredictedNumberofActiveUEs,
+ &hf_xnap_ReportCharacteristicsForDataCollection_PredictedRRCConnections,
+ &hf_xnap_ReportCharacteristicsForDataCollection_AverageUEThroughputDL,
+ &hf_xnap_ReportCharacteristicsForDataCollection_AverageUEThroughputUL,
+ &hf_xnap_ReportCharacteristicsForDataCollection_AveragePacketDelay,
+ &hf_xnap_ReportCharacteristicsForDataCollection_AveragePacketLossDL,
+ &hf_xnap_ReportCharacteristicsForDataCollection_EnergyCost,
+ &hf_xnap_ReportCharacteristicsForDataCollection_MeasuredUETrajectory,
+ &hf_xnap_ReportCharacteristicsForDataCollection_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_ReportCharacteristicsForDataCollection);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 4, fields, ENC_BIG_ENDIAN);
+ }
+
#.FN_BODY NRCellPRACHConfig VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb = NULL;
proto_tree *subtree;
@@ -920,7 +952,7 @@ TSCAssistanceInformation/periodicity DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&
}
#.TYPE_ATTR
-QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
#.FN_BODY MDTMode-EUTRA VAL_PTR = &mdt_mode_eutra_tvb
tvbuff_t *mdt_mode_eutra_tvb = NULL;
@@ -930,6 +962,86 @@ QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units
dissect_s1ap_MDTMode_PDU(mdt_mode_eutra_tvb, actx->pinfo, subtree, NULL);
}
+#.TYPE_ATTR
+AveragePacketDelayValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(xnap_AveragePacketDelayValue_fmt)
+
+#.FN_BODY CellMeasurementFailureCause-Item/cellmeasurementFailedReportCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if(parameter_tvb){
+ static int * const fields[] = {
+ &hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedRadioResourceStatus,
+ &hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedNumberofActiveUEs,
+ &hf_xnap_cellmeasurementFailedReportCharacteristics_PredictedRRCConnections,
+ &hf_xnap_cellmeasurementFailedReportCharacteristics_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_cellmeasurementFailedReportCharacteristics);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 4, fields, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY NodeMeasurementInitiationResult-Item/nodemeasurementFailedReportCharacteristics VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if(parameter_tvb){
+ static int * const fields[] = {
+ &hf_xnap_nodemeasurementFailedReportCharacteristics_EnergyCost,
+ &hf_xnap_nodemeasurementFailedReportCharacteristics_AverageUEThroughputDL,
+ &hf_xnap_nodemeasurementFailedReportCharacteristics_AverageUEThroughputUL,
+ &hf_xnap_nodemeasurementFailedReportCharacteristics_AveragePacketDelay,
+ &hf_xnap_nodemeasurementFailedReportCharacteristics_AveragePacketLossDL,
+ &hf_xnap_nodemeasurementFailedReportCharacteristics_MeasuredUETrajectory,
+ &hf_xnap_nodemeasurementFailedReportCharacteristics_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_nodemeasurementFailedReportCharacteristics);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 4, fields, ENC_BIG_ENDIAN);
+ }
+
+#.TYPE_ATTR
+MT-SDT-DataSize DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_byte_bytes)
+
+#.TYPE_ATTR
+MeasuredTrajectoryNGRANCellInfo/timeUEStaysInCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterLowerBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(xnap_N6Jitter_fmt)
+
+#.TYPE_ATTR
+N6JitterInformation/n6JitterUpperBound DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(xnap_N6Jitter_fmt)
+
+#.TYPE_ATTR
+RequestedPredictionTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.FN_BODY SRSConfiguration 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_xnap_SRSConfiguration);
+ dissect_nrppa_SRSConfiguration_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.TYPE_ATTR
+TimeSinceFailure DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds)
+
+#.FN_BODY PSCellListContainer 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_xnap_PSCellListContainer);
+ dissect_lte_rrc_CellIdListNR_r18_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
+#.FN_BODY SuccessfulPSCellChangeReportContainer VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_SuccessfulPSCellChangeReportContainer);
+ dissect_nr_rrc_SuccessPSCell_Report_r18_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
+ }
+
#.END
#.FN_HDR HandoverRequest
@@ -1100,6 +1212,16 @@ QosMonitoringReportingFrequency DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextConfirm");
#.FN_HDR CPCCancel
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CPCCancel");
+#.FN_HDR RachIndication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RachIndication");
+#.FN_HDR DataCollectionRequest
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataCollectionRequest");
+#.FN_HDR DataCollectionResponse
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataCollectionResponse");
+#.FN_HDR DataCollectionFailure
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataCollectionFailure");
+#.FN_HDR DataCollectionUpdate
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataCollectionUpdate");
#.ASSIGN_VALUE_TO_TYPE # XnAP does not have constants assigned to types, they are pure INTEGER
# ProcedureCode
@@ -1153,6 +1275,9 @@ id-iABResourceCoordination ProcedureCode
id-retrieveUEContextConfirm ProcedureCode
id-cPCCancel ProcedureCode
id-partialUEContextTransfer ProcedureCode
+id-rachIndication ProcedureCode
+id-dataCollectionReportingInitiation ProcedureCode
+id-dataCollectionReporting ProcedureCode
# ProtocolIE-ID
id-ActivatedServedCells ProtocolIE-ID
@@ -1359,7 +1484,7 @@ id-ULCarrierList ProtocolIE-I
id-FrequencyShift7p5khz ProtocolIE-ID
id-SSB-PositionsInBurst ProtocolIE-ID
id-NRCellPRACHConfig ProtocolIE-ID
-id-RACHReportInformation ProtocolIE-ID
+id-RAReport ProtocolIE-ID
id-IABNodeIndication ProtocolIE-ID
id-Redundant-UL-NG-U-TNLatUPF ProtocolIE-ID
id-CNPacketDelayBudgetDownlink ProtocolIE-ID
@@ -1527,6 +1652,105 @@ id-AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated ProtocolIE-I
id-UERLFReportContainerLTEExtension ProtocolIE-ID
id-ExcessPacketDelayThresholdConfiguration ProtocolIE-ID
id-HashedUEIdentityIndexValue ProtocolIE-ID
+id-QosFlowMappingIndication ProtocolIE-ID
+id-Full-and-Short-I-RNTI-Profile-List ProtocolIE-ID
+id-MBS-DataForwarding-Indicator ProtocolIE-ID
+id-IABAuthorizationStatus ProtocolIE-ID
+id-EquivalentSNPNs ProtocolIE-ID
+id-SelectedNID ProtocolIE-ID
+id-MT-SDT-Information ProtocolIE-ID
+id-PosPartialUEContextInfo ProtocolIE-ID
+id-SRSConfiguration ProtocolIE-ID
+id-CHOTimeBasedInformation ProtocolIE-ID
+id-ChannelOccupancyTimePercentageUL ProtocolIE-ID
+id-EnergyDetectionThresholdUL ProtocolIE-ID
+id-SuccessfulPSCellChangeReportInformation ProtocolIE-ID
+id-PSCellListContainer ProtocolIE-ID
+id-RadioResourceStatusNR-U ProtocolIE-ID
+id-CPACConfiguration ProtocolIE-ID
+id-RaReportIndicationList ProtocolIE-ID
+id-SPRAvailability ProtocolIE-ID
+id-DLLBTFailureInformationRequest ProtocolIE-ID
+id-DLLBTFailureInformationList ProtocolIE-ID
+id-TargetCellCRNTI ProtocolIE-ID
+id-TimeSinceFailure ProtocolIE-ID
+id-AerialUESubscriptionInformation ProtocolIE-ID
+id-LTEA2XServicesAuthorized ProtocolIE-ID
+id-NRA2XServicesAuthorized ProtocolIE-ID
+id-LTEA2XUEPC5AggregateMaximumBitRate ProtocolIE-ID
+id-NRA2XUEPC5AggregateMaximumBitRate ProtocolIE-ID
+id-A2XPC5QoSParameters ProtocolIE-ID
+id-CellBasedUETrajectoryPrediction ProtocolIE-ID
+id-DataCollectionID ProtocolIE-ID
+id-RequestedPredictionTime ProtocolIE-ID
+id-NodeMeasurementInitiationResult-List ProtocolIE-ID
+id-CellMeasurementInitiationResult-List ProtocolIE-ID
+id-UEAssociatedInfoResult-List ProtocolIE-ID
+id-ProtocolIE-ID-407-not-to-be-used ProtocolIE-ID
+id-UETrajectoryCollectionConfiguration ProtocolIE-ID
+id-UEPerformanceCollectionConfiguration ProtocolIE-ID
+id-CellMeasurementResultForDataCollection-List ProtocolIE-ID
+id-CellToReportForDataCollection-List ProtocolIE-ID
+id-FiveGProSeLayer2Multipath ProtocolIE-ID
+id-FiveGProSeLayer2UEtoUERelay ProtocolIE-ID
+id-FiveGProSeLayer2UEtoUERemote ProtocolIE-ID
+id-CandidateRelayUEInfoList ProtocolIE-ID
+id-NRCellsAndSSBsList ProtocolIE-ID
+id-ActivatedNRCellsAndSSBsList ProtocolIE-ID
+id-ClockQualityReportingControlInfo ProtocolIE-ID
+id-CapabilityForBATAdaptation ProtocolIE-ID
+id-PNI-NPN-AreaScopeofMDT ProtocolIE-ID
+id-PNI-NPNBasedMDT ProtocolIE-ID
+id-SNPN-CellBasedMDT ProtocolIE-ID
+id-SNPN-TAIBasedMDT ProtocolIE-ID
+id-SNPN-BasedMDT ProtocolIE-ID
+id-S-CPAC-Request ProtocolIE-ID
+id-S-CPAC-Request-Info ProtocolIE-ID
+id-S-CPAC-ReferenceConfigRequest ProtocolIE-ID
+id-S-CPAC-InterSN-ExecutionNotify ProtocolIE-ID
+id-S-CPAC-dataforwardinginfofromSource ProtocolIE-ID
+id-CPACcandidatePSCells-wotherInfo-list ProtocolIE-ID
+id-eRedcap-Bcast-Information ProtocolIE-ID
+id-NRPagingLongeDRXInformationforRRCINACTIVE ProtocolIE-ID
+id-MBS-AssistanceInformation ProtocolIE-ID
+id-QMCCoordinationRequest ProtocolIE-ID
+id-QMCCoordinationResponse ProtocolIE-ID
+id-QoE-Measurement-Results ProtocolIE-ID
+id-MBSCommServiceType ProtocolIE-ID
+id-AssistanceInformationQoE-Meas ProtocolIE-ID
+id-ProtocolIE-ID-439-not-to-be-used ProtocolIE-ID
+id-QoERVQoEReportingPaths ProtocolIE-ID
+id-Src-SN-to-Tgt-SNQMCInfoInquiry ProtocolIE-ID
+id-DirectForwardingPathAvailabilityWithSourceMN ProtocolIE-ID
+id-CHO-Maxnoof-CondReconfig ProtocolIE-ID
+id-accessed-PSCellID ProtocolIE-ID
+id-conditional-Reconfig-ToCancel-List ProtocolIE-ID
+id-CHOinformation-AddReqAck ProtocolIE-ID
+id-CHO-CPAC-Info ProtocolIE-ID
+id-PDUSetQoSParameters ProtocolIE-ID
+id-N6JitterInformation ProtocolIE-ID
+id-ECNMarkingorCongestionInformationReportingRequest ProtocolIE-ID
+id-PDUSetbasedHandlingIndicator ProtocolIE-ID
+id-TAISliceUnavailableCellList ProtocolIE-ID
+id-MobileIAB-AuthorizationStatus ProtocolIE-ID
+id-MIAB-MT-BAP-Address ProtocolIE-ID
+id-MobileIABCell ProtocolIE-ID
+id-sk-Counter ProtocolIE-ID
+id-Source-M-NG-RANnodeID ProtocolIE-ID
+id-S-CPAC-CompleteConfig-Indicator ProtocolIE-ID
+id-SourceSN-to-TargetSN-QMCInfo ProtocolIE-ID
+id-RegistrationRequestForDataCollection ProtocolIE-ID
+id-ReportCharacteristicsForDataCollection ProtocolIE-ID
+id-ReportingPeriodicityForDataCollection ProtocolIE-ID
+id-NodeAssociatedInfoResult ProtocolIE-ID
+id-SLPositioning-Ranging-Services-Info ProtocolIE-ID
+id-XR-Bcast-Information ProtocolIE-ID
+id-PDUSessionsListToBeReleased-UPError ProtocolIE-ID
+id-MaximumDataBurstVolume ProtocolIE-ID
+id-CPAC-Preparation-Type ProtocolIE-ID
+id-UserPlaneFailureIndication ProtocolIE-ID
+id-MN-only-MDT-collection ProtocolIE-ID
+
#.REGISTER
@@ -1698,7 +1922,7 @@ GlobalNG-RANCell-ID N xnap.ies id-NG-RANnode2CellI
MobilityParametersInformation N xnap.ies id-NG-RANnode1MobilityParameters
MobilityParametersInformation N xnap.ies id-NG-RANnode2ProposedMobilityParameters
MobilityParametersModificationRange N xnap.ies id-MobilityParametersModificationRange
-RACHReportInformation N xnap.ies id-RACHReportInformation
+RAReport N xnap.ies id-RAReport
IABNodeIndication N xnap.ies id-IABNodeIndication
MDTPLMNList N xnap.ies id-MDTPLMNList
UERadioCapabilityID N xnap.ies id-UERadioCapabilityID
@@ -1789,6 +2013,61 @@ F1-terminatingIAB-donorIndicator N xnap.ies id-F1-terminatingIA
SCGreconfigNotification N xnap.ies id-SCGreconfigNotification
UERLFReportContainerLTEExtension N xnap.ies id-UERLFReportContainerLTEExtension
HashedUEIdentityIndexValue N xnap.ies id-HashedUEIdentityIndexValue
+Full-and-Short-I-RNTI-Profile-List N xnap.ies id-Full-and-Short-I-RNTI-Profile-List
+MBS-DataForwarding-Indicator N xnap.ies id-MBS-DataForwarding-Indicator
+IABAuthorizationStatus N xnap.ies id-IABAuthorizationStatus
+NID N xnap.ies id-SelectedNID
+MT-SDT-Information N xnap.ies id-MT-SDT-Information
+PosPartialUEContextInfo N xnap.ies id-PosPartialUEContextInfo
+SRSConfiguration N xnap.ies id-SRSConfiguration
+SuccessfulPSCellChangeReportInformation N xnap.ies id-SuccessfulPSCellChangeReportInformation
+CPACConfiguration N xnap.ies id-CPACConfiguration
+RaReportIndicationList N xnap.ies id-RaReportIndicationList
+SPRAvailability N xnap.ies id-SPRAvailability
+DLLBTFailureInformationRequest N xnap.ies id-DLLBTFailureInformationRequest
+DLLBTFailureInformationList N xnap.ies id-DLLBTFailureInformationList
+C-RNTI N xnap.ies id-TargetCellCRNTI
+TimeSinceFailure N xnap.ies id-TimeSinceFailure
+AerialUESubscriptionInformation N xnap.ies id-AerialUESubscriptionInformation
+LTEA2XServicesAuthorized N xnap.ies id-LTEA2XServicesAuthorized
+NRA2XServicesAuthorized N xnap.ies id-NRA2XServicesAuthorized
+A2XPC5QoSParameters N xnap.ies id-A2XPC5QoSParameters
+CellBasedUETrajectoryPrediction N xnap.ies id-CellBasedUETrajectoryPrediction
+DataCollectionID N xnap.ies id-DataCollectionID
+RequestedPredictionTime N xnap.ies id-RequestedPredictionTime
+NodeMeasurementInitiationResult-List N xnap.ies id-NodeMeasurementInitiationResult-List
+CellMeasurementInitiationResult-List N xnap.ies id-CellMeasurementInitiationResult-List
+UEAssociatedInfoResult-List N xnap.ies id-UEAssociatedInfoResult-List
+UETrajectoryCollectionConfiguration N xnap.ies id-UETrajectoryCollectionConfiguration
+UEPerformanceCollectionConfiguration N xnap.ies id-UEPerformanceCollectionConfiguration
+CellMeasurementResultForDataCollection-List N xnap.ies id-CellMeasurementResultForDataCollection-List
+CellToReportForDataCollection-List N xnap.ies id-CellToReportForDataCollection-List
+CandidateRelayUEInfoList N xnap.ies id-CandidateRelayUEInfoList
+ToBeActivatedNRCellsAndSSBsList N xnap.ies id-NRCellsAndSSBsList
+ActivatedNRCellsAndSSBsList N xnap.ies id-ActivatedNRCellsAndSSBsList
+PNI-NPNBasedMDT N xnap.ies id-PNI-NPNBasedMDT
+SNPN-CellBasedMDT N xnap.ies id-SNPN-CellBasedMDT
+SNPN-TAIBasedMDT N xnap.ies id-SNPN-TAIBasedMDT
+SNPN-BasedMDT N xnap.ies id-SNPN-BasedMDT
+NRPagingLongeDRXInformationforRRCINACTIVE N xnap.ies id-NRPagingLongeDRXInformationforRRCINACTIVE
+QMCCoordinationRequest N xnap.ies id-QMCCoordinationRequest
+QMCCoordinationResponse N xnap.ies id-QMCCoordinationResponse
+QoE-Measurement-Results N xnap.ies id-QoE-Measurement-Results
+Src-SN-to-Tgt-SNQMCInfoInquiry N xnap.ies id-Src-SN-to-Tgt-SNQMCInfoInquiry
+DirectForwardingPathAvailabilityWithSourceMN N xnap.ies id-DirectForwardingPathAvailabilityWithSourceMN
+NR-CGI N xnap.ies id-accessed-PSCellID
+Conditional-Reconfig-List N xnap.ies id-conditional-Reconfig-ToCancel-List
+CHOinformation-AddReqAck N xnap.ies id-CHOinformation-AddReqAck
+PDUSetbasedHandlingIndicator N xnap.ies id-PDUSetbasedHandlingIndicator
+MobileIAB-AuthorizationStatus N xnap.ies id-MobileIAB-AuthorizationStatus
+BAPAddress N xnap.ies id-MIAB-MT-BAP-Address
+GlobalNG-RANNode-ID N xnap.ies id-Source-M-NG-RANnodeID
+QMCConfigInfo N xnap.ies id-SourceSN-to-TargetSN-QMCInfo
+RegistrationRequestForDataCollection N xnap.ies id-RegistrationRequestForDataCollection
+ReportCharacteristicsForDataCollection N xnap.ies id-ReportCharacteristicsForDataCollection
+ReportingPeriodicityForDataCollection N xnap.ies id-ReportingPeriodicityForDataCollection
+NodeAssociatedInfoResult N xnap.ies id-NodeAssociatedInfoResult
+SLPositioning-Ranging-Services-Info N xnap.ies id-SLPositioning-Ranging-Services-Info
#XNAP-PROTOCOL-EXTENSION
Additional-UL-NG-U-TNLatUPF-List N xnap.extension id-Additional-UL-NG-U-TNLatUPF-List
@@ -1907,6 +2186,48 @@ BeamMeasurementsReportConfiguration N xnap.extensio
CoverageModificationCause N xnap.extension id-CoverageModificationCause
AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated N xnap.extension id-AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated
ExcessPacketDelayThresholdConfiguration N xnap.extension id-ExcessPacketDelayThresholdConfiguration
+QoSFlowMappingIndication N xnap.extension id-QosFlowMappingIndication
+PDUSessionResourcesNotAdmitted-List N xnap.extension id-PDUSessionResourcesNotAdmitted-List
+EquivalentSNPNs N xnap.extension id-EquivalentSNPNs
+CHOTimeBasedInformation N xnap.extension id-CHOTimeBasedInformation
+ChannelOccupancyTimePercentage N xnap.extension id-ChannelOccupancyTimePercentageUL
+EnergyDetectionThreshold N xnap.extension id-EnergyDetectionThresholdUL
+PSCellListContainer N xnap.extension id-PSCellListContainer
+RadioResourceStatusNR-U N xnap.extension id-RadioResourceStatusNR-U
+LTEUESidelinkAggregateMaximumBitRate N xnap.extension id-LTEA2XUEPC5AggregateMaximumBitRate
+NRUESidelinkAggregateMaximumBitRate N xnap.extension id-NRA2XUEPC5AggregateMaximumBitRate
+FiveGProSeLayer2Multipath N xnap.extension id-FiveGProSeLayer2Multipath
+FiveGProSeLayer2UEtoUERelay N xnap.extension id-FiveGProSeLayer2UEtoUERelay
+FiveGProSeLayer2UEtoUERemote N xnap.extension id-FiveGProSeLayer2UEtoUERemote
+ClockQualityReportingControlInfo N xnap.extension id-ClockQualityReportingControlInfo
+CapabilityForBATAdaptation N xnap.extension id-CapabilityForBATAdaptation
+PNI-NPN-AreaScopeofMDT N xnap.extension id-PNI-NPN-AreaScopeofMDT
+S-CPAC-Request N xnap.extension id-S-CPAC-Request
+S-CPAC-Request-Info N xnap.extension id-S-CPAC-Request-Info
+S-CPAC-ReferenceConfig-Request N xnap.extension id-S-CPAC-ReferenceConfigRequest
+S-CPAC-InterSN-ExecutionNotify N xnap.extension id-S-CPAC-InterSN-ExecutionNotify
+DataforwardingandOffloadingInfofromSource N xnap.extension id-S-CPAC-dataforwardinginfofromSource
+CPACcandidatePSCells-wotherInfo-list N xnap.extension id-CPACcandidatePSCells-wotherInfo-list
+ERedcap-Bcast-Information N xnap.extension id-eRedcap-Bcast-Information
+MBS-AssistanceInformation N xnap.extension id-MBS-AssistanceInformation
+MBSCommServiceType N xnap.extension id-MBSCommServiceType
+AssistanceInformationQoE-Meas N xnap.extension id-AssistanceInformationQoE-Meas
+QoERVQoEReportingPaths N xnap.extension id-QoERVQoEReportingPaths
+CHO-Maxnoof-CondReconfig N xnap.extension id-CHO-Maxnoof-CondReconfig
+CHO-CPAC-Information N xnap.extension id-CHO-CPAC-Info
+PDUSetQoSParameters N xnap.extension id-PDUSetQoSParameters
+N6JitterInformation N xnap.extension id-N6JitterInformation
+ECNMarkingorCongestionInformationReportingRequest N xnap.extension id-ECNMarkingorCongestionInformationReportingRequest
+TAISliceUnavailableCellList N xnap.extension id-TAISliceUnavailableCellList
+MobileIABCell N xnap.extension id-MobileIABCell
+SK-COUNTER N xnap.extension id-sk-Counter
+CompleteConfig-Indicator N xnap.extension id-S-CPAC-CompleteConfig-Indicator
+XR-Bcast-Information N xnap.extension id-XR-Bcast-Information
+PDUSessionsListToBeReleased-UPError N xnap.extension id-PDUSessionsListToBeReleased-UPError
+MaximumDataBurstVolume N xnap.extension id-MaximumDataBurstVolume
+CPAC-Preparation-Type N xnap.extension id-CPAC-Preparation-Type
+UserPlaneFailureIndication N xnap.extension id-UserPlaneFailureIndication
+MN-only-MDT-collection N xnap.extension id-MN-only-MDT-collection
#XNAP-ELEMENTARY-PROCEDURE
HandoverRequest N xnap.proc.imsg id-handoverPreparation
@@ -2041,4 +2362,12 @@ IABResourceCoordinationResponse N xnap.proc.sout id-iABResourceCoordi
RetrieveUEContextConfirm N xnap.proc.imsg id-retrieveUEContextConfirm
CPCCancel N xnap.proc.imsg id-cPCCancel
+
+RachIndication N xnap.proc.imsg id-rachIndication
+
+DataCollectionRequest N xnap.proc.imsg id-dataCollectionReportingInitiation
+DataCollectionResponse N xnap.proc.sout id-dataCollectionReportingInitiation
+DataCollectionFailure N xnap.proc.uout id-dataCollectionReportingInitiation
+
+DataCollectionUpdate N xnap.proc.imsg id-dataCollectionReporting
#.END
diff --git a/epan/dissectors/asn1/z3950/packet-z3950-template.c b/epan/dissectors/asn1/z3950/packet-z3950-template.c
index 947a46c2..2dceb702 100644
--- a/epan/dissectors/asn1/z3950/packet-z3950-template.c
+++ b/epan/dissectors/asn1/z3950/packet-z3950-template.c
@@ -14,12 +14,12 @@
*
* References:
* ISO 2709: https://www.iso.org/standard/41319.html
- * MARC21: http://www.loc.gov/marc/bibliographic/
- * Z39.50 Maintenance Agency: http://www.loc.gov/z3950/agency/
- * Z39.50 2003 standard: http://www.loc.gov/z3950/agency/Z39-50-2003.pdf
+ * MARC21: https://www.loc.gov/marc/bibliographic/
+ * Z39.50 Maintenance Agency: https://www.loc.gov/z3950/agency/
+ * Z39.50 2003 standard: https://www.loc.gov/z3950/agency/Z39-50-2003.pdf
* Z39.50 1995 ASN.1: https://www.loc.gov/z3950/agency/asn1.html
* Registered Z39.50 Object Identifiers:
- * http://www.loc.gov/z3950/agency/defns/oids.html
+ * https://www.loc.gov/z3950/agency/defns/oids.html
* Bib-1 Attribute Set: https://www.loc.gov/z3950/agency/defns/bib1.html
* Bib-1 Diagnostics: https://www.loc.gov/z3950/agency/defns/bib1diag.html
* RFC for Z39.50 over TCP/IP: https://tools.ietf.org/html/rfc1729
@@ -36,19 +36,20 @@
#include <epan/proto_data.h>
#include <wsutil/str_util.h>
+
#include <string.h>
#include "packet-ber.h"
#include "packet-tcp.h"
typedef struct z3950_atinfo_t {
- gint atsetidx;
- gint attype;
+ int atsetidx;
+ int attype;
} z3950_atinfo_t;
typedef struct z3950_diaginfo_t {
- gint diagsetidx;
- gint diagcondition;
+ int diagsetidx;
+ int diagcondition;
} z3950_diaginfo_t;
#define PNAME "Z39.50 Protocol"
@@ -94,20 +95,20 @@ typedef struct z3950_diaginfo_t {
#define marc_char_to_int(x) ((x) - '0')
typedef struct marc_directory_entry {
- guint32 tag;
- guint32 length;
- guint32 starting_character;
+ uint32_t tag;
+ uint32_t length;
+ uint32_t starting_character;
} marc_directory_entry;
-static dissector_handle_t z3950_handle=NULL;
+static dissector_handle_t z3950_handle;
void proto_reg_handoff_z3950(void);
void proto_register_z3950(void);
/* Initialize the protocol and registered fields */
-static int proto_z3950 = -1;
+static int proto_z3950;
static int global_z3950_port = Z3950_PORT;
-static gboolean z3950_desegment = TRUE;
+static bool z3950_desegment = true;
static const value_string z3950_bib1_att_types[] = {
{ Z3950_BIB1_AT_USE, "Use" },
@@ -293,7 +294,7 @@ static const value_string z3950_bib1_at_use[] = {
{ 1108, "DC-Source" },
{ 1109, "DC-Relation" },
{ 1110, "DC-Coverage" },
- { 1111, "DC-RightsManagment" },
+ { 1111, "DC-RightsManagement" },
{ 1112, "GILS Controlled Subject Index" },
{ 1113, "GILS Subject Thesaurus" },
{ 1114, "GILS Index Terms -- Controlled" },
@@ -653,11 +654,11 @@ static const value_string z3950_bib1_diagconditions[] = {
#include "packet-z3950-hf.c"
-static int hf_z3950_referenceId_printable = -1;
-static int hf_z3950_general_printable = -1;
+static int hf_z3950_referenceId_printable;
+static int hf_z3950_general_printable;
/* Initialize the subtree pointers */
-static int ett_z3950 = -1;
+static int ett_z3950;
#include "packet-z3950-ett.c"
@@ -666,52 +667,52 @@ static int ett_z3950 = -1;
static int dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * data _U_);
/* MARC fields */
-static int hf_marc_record = -1;
-static int hf_marc_record_terminator = -1;
-static int hf_marc_leader = -1;
-static int hf_marc_leader_length = -1;
-static int hf_marc_leader_status = -1;
-static int hf_marc_leader_type = -1;
-static int hf_marc_leader_biblevel = -1;
-static int hf_marc_leader_control = -1;
-static int hf_marc_leader_encoding = -1;
-static int hf_marc_leader_indicator_count = -1;
-static int hf_marc_leader_subfield_count = -1;
-static int hf_marc_leader_data_offset = -1;
-static int hf_marc_leader_encoding_level = -1;
-static int hf_marc_leader_descriptive_cataloging = -1;
-static int hf_marc_leader_multipart_level = -1;
-static int hf_marc_leader_length_of_field_length = -1;
-static int hf_marc_leader_starting_character_position_length = -1;
-static int hf_marc_leader_implementation_defined_length = -1;
-static int hf_marc_directory = -1;
-static int hf_marc_directory_entry = -1;
-static int hf_marc_directory_entry_tag = -1;
-static int hf_marc_directory_entry_length = -1;
-static int hf_marc_directory_entry_starting_position = -1;
-static int hf_marc_directory_terminator = -1;
-static int hf_marc_fields = -1;
-static int hf_marc_field = -1;
-static int hf_marc_field_control = -1;
-static int hf_marc_field_terminator = -1;
-static int hf_marc_field_indicator1 = -1;
-static int hf_marc_field_indicator2 = -1;
-static int hf_marc_field_subfield_indicator = -1;
-static int hf_marc_field_subfield_tag = -1;
-static int hf_marc_field_subfield = -1;
+static int hf_marc_record;
+static int hf_marc_record_terminator;
+static int hf_marc_leader;
+static int hf_marc_leader_length;
+static int hf_marc_leader_status;
+static int hf_marc_leader_type;
+static int hf_marc_leader_biblevel;
+static int hf_marc_leader_control;
+static int hf_marc_leader_encoding;
+static int hf_marc_leader_indicator_count;
+static int hf_marc_leader_subfield_count;
+static int hf_marc_leader_data_offset;
+static int hf_marc_leader_encoding_level;
+static int hf_marc_leader_descriptive_cataloging;
+static int hf_marc_leader_multipart_level;
+static int hf_marc_leader_length_of_field_length;
+static int hf_marc_leader_starting_character_position_length;
+static int hf_marc_leader_implementation_defined_length;
+static int hf_marc_directory;
+static int hf_marc_directory_entry;
+static int hf_marc_directory_entry_tag;
+static int hf_marc_directory_entry_length;
+static int hf_marc_directory_entry_starting_position;
+static int hf_marc_directory_terminator;
+static int hf_marc_fields;
+static int hf_marc_field;
+static int hf_marc_field_control;
+static int hf_marc_field_terminator;
+static int hf_marc_field_indicator1;
+static int hf_marc_field_indicator2;
+static int hf_marc_field_subfield_indicator;
+static int hf_marc_field_subfield_tag;
+static int hf_marc_field_subfield;
/* MARC subtree pointers */
-static int ett_marc_record = -1;
-static int ett_marc_leader = -1;
-static int ett_marc_directory = -1;
-static int ett_marc_directory_entry = -1;
-static int ett_marc_fields = -1;
-static int ett_marc_field = -1;
+static int ett_marc_record;
+static int ett_marc_leader;
+static int ett_marc_directory;
+static int ett_marc_directory_entry;
+static int ett_marc_fields;
+static int ett_marc_field;
/* MARC expert fields */
-static expert_field ei_marc_invalid_length = EI_INIT;
-static expert_field ei_marc_invalid_value = EI_INIT;
-static expert_field ei_marc_invalid_record_length = EI_INIT;
+static expert_field ei_marc_invalid_length;
+static expert_field ei_marc_invalid_value;
+static expert_field ei_marc_invalid_record_length;
/* MARC value strings */
@@ -884,8 +885,8 @@ static const value_string marc_tag_names[] = {
static int
dissect_z3950_printable_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *next_tvb = NULL;
- int hf_alternate = -1;
- guint old_offset = offset;
+ int hf_alternate = 0;
+ unsigned old_offset = offset;
if (hf_index == hf_z3950_referenceId) {
hf_alternate = hf_z3950_referenceId_printable;
@@ -926,7 +927,7 @@ dissect_z3950(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U
proto_tree *z3950_tree = NULL;
int offset = 0;
asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
/* make entry in the Protocol column on summary display */
@@ -936,14 +937,14 @@ dissect_z3950(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U
z3950_item = proto_tree_add_item(tree, proto_z3950, tvb, 0, -1, ENC_NA);
z3950_tree = proto_item_add_subtree(z3950_item, ett_z3950);
- return dissect_z3950_PDU(FALSE, tvb, offset, &asn1_ctx, z3950_tree, -1);
+ return dissect_z3950_PDU(false, tvb, offset, &asn1_ctx, z3950_tree, -1);
}
-static guint
+static unsigned
get_z3950_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
{
- guint plen;
- guint ber_offset;
+ unsigned plen;
+ unsigned ber_offset;
TRY {
/* Skip past identifier */
ber_offset = get_ber_identifier(tvb, offset, NULL, NULL, NULL);
@@ -962,7 +963,7 @@ static int
dissect_z3950_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * data _U_)
{
- /* Min length of 8 assumes 3 for identifer and 5 for length. */
+ /* Min length of 8 assumes 3 for identifier and 5 for length. */
tcp_dissect_pdus(tvb, pinfo, tree, z3950_desegment, 8, get_z3950_pdu_len, dissect_z3950, data);
return tvb_captured_length(tvb);
}
@@ -1121,7 +1122,7 @@ void proto_register_z3950(void) {
};
/* List of subtrees */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_z3950,
/* MARC etts */
&ett_marc_record,
@@ -1276,9 +1277,9 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
*directory_tree,
*fields_tree;
marc_directory_entry *marc_directory;
- guint len = tvb_reported_length(tvb);
- const guint8 *marc_value_str;
- guint record_length = 0,
+ unsigned len = tvb_reported_length(tvb);
+ const uint8_t *marc_value_str;
+ unsigned record_length = 0,
data_offset = 0,
length_of_field_size,
starting_character_position_size,
@@ -1286,7 +1287,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
directory_entry_count,
dir_index,
offset = 0;
- guint32 marc_value_char;
+ uint32_t marc_value_char;
record_item = proto_tree_add_item(tree, hf_marc_record,
tvb, 0, len, ENC_NA);
@@ -1308,7 +1309,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
if (marc_value_str) {
if (isdigit_string(marc_value_str)) {
- record_length = (guint)strtoul(marc_value_str, NULL, 10);
+ record_length = (unsigned)strtoul(marc_value_str, NULL, 10);
}
else {
expert_add_info_format(pinfo, item,
@@ -1376,7 +1377,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
offset += 5;
if (marc_value_str) {
if (isdigit_string(marc_value_str)) {
- data_offset = (guint)strtoul(marc_value_str, NULL, 10);
+ data_offset = (unsigned)strtoul(marc_value_str, NULL, 10);
}
else {
expert_add_info_format(pinfo, item,
@@ -1459,7 +1460,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
dir_index = 0;
/* Minus one for the terminator character */
while (offset < (data_offset - 1)) {
- guint32 tag_value = 0,
+ uint32_t tag_value = 0,
length_value = 0,
starting_char_value = 0;
proto_item *length_item;
@@ -1477,7 +1478,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
offset += 3;
if (marc_value_str) {
if (isdigit_string(marc_value_str)) {
- tag_value = (guint)strtoul(marc_value_str, NULL, 10);
+ tag_value = (unsigned)strtoul(marc_value_str, NULL, 10);
}
else {
expert_add_info_format(pinfo, item,
@@ -1494,7 +1495,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
offset += length_of_field_size;
if (marc_value_str) {
if (isdigit_string(marc_value_str)) {
- length_value = (guint)strtoul(marc_value_str, NULL, 10);
+ length_value = (unsigned)strtoul(marc_value_str, NULL, 10);
}
else {
expert_add_info_format(pinfo, length_item,
@@ -1510,7 +1511,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
offset += starting_character_position_size;
if (marc_value_str) {
if (isdigit_string(marc_value_str)) {
- starting_char_value = (guint)strtoul(marc_value_str, NULL, 10);
+ starting_char_value = (unsigned)strtoul(marc_value_str, NULL, 10);
}
else {
expert_add_info_format(pinfo, item,
@@ -1546,7 +1547,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
fields_tree = proto_item_add_subtree(fields_item, ett_marc_fields);
for (dir_index = 0; dir_index < directory_entry_count; dir_index++) {
- const gchar *tag_str;
+ const char *tag_str;
proto_item *field_item;
proto_tree *field_tree;
@@ -1573,7 +1574,7 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
offset += 1;
}
else {
- guint next_offset = offset + marc_directory[dir_index].length - 1;
+ unsigned next_offset = offset + marc_directory[dir_index].length - 1;
proto_tree_add_item(field_tree, hf_marc_field_indicator1,
tvb, offset, 1, ENC_ASCII);
offset += 1;
@@ -1581,14 +1582,14 @@ dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
tvb, offset, 1, ENC_ASCII);
offset += 1;
do {
- gint next_subfield;
+ int next_subfield;
proto_tree_add_item(field_tree, hf_marc_field_subfield_indicator,
tvb, offset, 1, ENC_ASCII);
offset += 1;
proto_tree_add_item(field_tree, hf_marc_field_subfield_tag,
tvb, offset, 1, ENC_ASCII);
offset += 1;
- next_subfield = tvb_find_guint8(tvb, offset, next_offset - offset,
+ next_subfield = tvb_find_uint8(tvb, offset, next_offset - offset,
MARC_SUBFIELD_INDICATOR);
if (next_subfield >= 0) {
proto_tree_add_item(field_tree, hf_marc_field_subfield,
diff --git a/epan/dissectors/asn1/z3950/z3950.cnf b/epan/dissectors/asn1/z3950/z3950.cnf
index d735affd..6cc56ae4 100644
--- a/epan/dissectors/asn1/z3950/z3950.cnf
+++ b/epan/dissectors/asn1/z3950/z3950.cnf
@@ -124,12 +124,12 @@ SearchInfoReport B "1.2.840.10003.10.1" "SearchResult-1"
OCLC-UserInformation B "1.2.840.10003.10.1000.17.1" "OCLC-UserInfo-1"
#.FN_HDR PDU
- gint choice;
+ int choice;
#.FN_PARS PDU VAL_PTR=&choice
#.FN_FTR PDU
if (choice >= 0) {
packet_info *pinfo = actx->pinfo;
- gint32 tag = PDU_choice[choice].tag;
+ int32_t tag = PDU_choice[choice].tag;
col_set_str(pinfo->cinfo, COL_INFO,
val_to_str_const(tag, z3950_PDU_vals, "Unknown Z39.50 PDU"));
@@ -140,12 +140,12 @@ OCLC-UserInformation B "1.2.840.10003.10.1000.17.1" "OCLC-UserInfo-1"
#.FN_BODY ReferenceId
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_CON, 2, TRUE,
+ hf_index, BER_CLASS_CON, 2, true,
dissect_z3950_printable_OCTET_STRING);
#.FN_BODY Term/general
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_CON, 2, TRUE,
+ hf_index, BER_CLASS_CON, 2, true,
dissect_z3950_printable_OCTET_STRING);
#.FN_HDR AttributeSetId
@@ -155,10 +155,10 @@ OCLC-UserInformation B "1.2.840.10003.10.1000.17.1" "OCLC-UserInfo-1"
#.FN_FTR AttributeSetId
if (oid_tvb) {
packet_info *pinfo = actx->pinfo;
- guint len = tvb_reported_length_remaining(oid_tvb, 0);
- gchar *oid_str = oid_encoded2string(pinfo->pool,
+ unsigned len = tvb_reported_length_remaining(oid_tvb, 0);
+ char *oid_str = oid_encoded2string(pinfo->pool,
tvb_get_ptr(oid_tvb, 0, len), len);
- gint attribute_set_idx = Z3950_ATSET_UNKNOWN;
+ int attribute_set_idx = Z3950_ATSET_UNKNOWN;
z3950_atinfo_t *atinfo_data;
if (g_strcmp0(oid_str, Z3950_ATSET_BIB1_OID) == 0) {
@@ -177,7 +177,7 @@ OCLC-UserInformation B "1.2.840.10003.10.1000.17.1" "OCLC-UserInfo-1"
}
#.FN_HDR AttributeElement/attributeType
- gint att_type=0;
+ int att_type=0;
packet_info *pinfo = actx->pinfo;
z3950_atinfo_t *atinfo_data;
#.FN_PARS AttributeElement/attributeType VAL_PTR=&att_type
@@ -189,7 +189,7 @@ OCLC-UserInformation B "1.2.840.10003.10.1000.17.1" "OCLC-UserInfo-1"
atinfo_data->attype = att_type;
}
#.FN_HDR AttributeElement/attributeValue/numeric
- gint att_value=0;
+ int att_value=0;
packet_info *pinfo = actx->pinfo;
z3950_atinfo_t *atinfo_data;
const value_string *att_value_string = NULL;
@@ -231,10 +231,10 @@ OCLC-UserInformation B "1.2.840.10003.10.1000.17.1" "OCLC-UserInfo-1"
#.FN_FTR DefaultDiagFormat/diagnosticSetId
if (oid_tvb) {
packet_info *pinfo = actx->pinfo;
- guint len = tvb_reported_length_remaining(oid_tvb, 0);
- gchar *oid_str = oid_encoded2string(pinfo->pool,
+ unsigned len = tvb_reported_length_remaining(oid_tvb, 0);
+ char *oid_str = oid_encoded2string(pinfo->pool,
tvb_get_ptr(oid_tvb, 0, len), len);
- gint diagset_idx = Z3950_DIAGSET_UNKNOWN;
+ int diagset_idx = Z3950_DIAGSET_UNKNOWN;
z3950_diaginfo_t *diaginfo_data;
if (g_strcmp0(oid_str, Z3950_DIAGSET_BIB1_OID) == 0) {
@@ -253,7 +253,7 @@ OCLC-UserInformation B "1.2.840.10003.10.1000.17.1" "OCLC-UserInfo-1"
}
#.FN_HDR DefaultDiagFormat/condition
- gint diag_condition=0;
+ int diag_condition=0;
packet_info *pinfo = actx->pinfo;
z3950_diaginfo_t *diaginfo_data;
#.FN_PARS DefaultDiagFormat/condition VAL_PTR=&diag_condition