diff options
author | Anders Broman <anders.broman@ericsson.com> | 2019-06-14 01:12:18 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2019-06-17 13:12:20 +0000 |
commit | c1c0a2911ba1ef01adc6a6c9058b4daa38204461 (patch) | |
tree | 6c68cc5eebe00e7a1e8f0426c8fc6c327d6af31e | |
parent | 94b211977acebf6730a07275554430e640a5679c (diff) |
NRPPa: Add dissector for TS 38.455 V15.2.1
Change-Id: I66da8ced410163c872af1d4161f2c9fc38f72ff8
Reviewed-on: https://code.wireshark.org/review/33590
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | docbook/release-notes.adoc | 1 | ||||
-rw-r--r-- | epan/dissectors/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/ngap/ngap.cnf | 9 | ||||
-rw-r--r-- | epan/dissectors/asn1/ngap/packet-ngap-template.c | 2 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/CMakeLists.txt | 39 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn | 51 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/NRPPA-Constants.asn | 82 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/NRPPA-Containers.asn | 152 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/NRPPA-IEs.asn | 685 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn | 297 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn | 195 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/nrppa.cnf | 146 | ||||
-rw-r--r-- | epan/dissectors/asn1/nrppa/packet-nrppa-template.c | 113 | ||||
-rw-r--r-- | epan/dissectors/packet-ngap.c | 178 | ||||
-rw-r--r-- | epan/dissectors/packet-nrppa.c | 3652 |
16 files changed, 5521 insertions, 83 deletions
diff --git a/docbook/release-notes.adoc b/docbook/release-notes.adoc index 870899835b..d577da4442 100644 --- a/docbook/release-notes.adoc +++ b/docbook/release-notes.adoc @@ -65,6 +65,7 @@ Graylog Extended Log Format over UDP (GELF) FTDI FT USB Bridging Devices (FTDI FT) CableLabs Layer-3 Protocol IEEE EtherType 0xb4e3 (CL3) Dual Channel Wi-Fi (CL3DCW) +NR Positioning Protocol A (NRPPa) TS 38.455 -- === Updated Protocol Support diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt index 5489022372..c74f3b5bfa 100644 --- a/epan/dissectors/CMakeLists.txt +++ b/epan/dissectors/CMakeLists.txt @@ -140,6 +140,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC ${CMAKE_CURRENT_SOURCE_DIR}/packet-ngap.c ${CMAKE_CURRENT_SOURCE_DIR}/packet-nist-csor.c ${CMAKE_CURRENT_SOURCE_DIR}/packet-novell_pkis.c + ${CMAKE_CURRENT_SOURCE_DIR}/packet-nrppa.c ${CMAKE_CURRENT_SOURCE_DIR}/packet-nr-rrc.c ${CMAKE_CURRENT_SOURCE_DIR}/packet-ns_cert_exts.c ${CMAKE_CURRENT_SOURCE_DIR}/packet-ocsp.c diff --git a/epan/dissectors/asn1/CMakeLists.txt b/epan/dissectors/asn1/CMakeLists.txt index 5874ddfdcc..0df6bfcc57 100644 --- a/epan/dissectors/asn1/CMakeLists.txt +++ b/epan/dissectors/asn1/CMakeLists.txt @@ -78,6 +78,7 @@ set(ASN1_SRC_DIRS ngap nist-csor nr-rrc + nrppa ns_cert_exts novell_pkis ocsp diff --git a/epan/dissectors/asn1/ngap/ngap.cnf b/epan/dissectors/asn1/ngap/ngap.cnf index 58a0ba88d5..f971f0640b 100644 --- a/epan/dissectors/asn1/ngap/ngap.cnf +++ b/epan/dissectors/asn1/ngap/ngap.cnf @@ -721,6 +721,15 @@ PeriodicRegistrationUpdateTimer TYPE=FT_UINT8 DISPLAY=BASE_CUSTOM STRINGS=CF_FUN proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0)); } +#.FN_BODY NRPPa-PDU VAL_PTR = ¶meter_tvb + + tvbuff_t *parameter_tvb=NULL; + +%(DEFAULT_BODY)s + + if ((tvb_reported_length(parameter_tvb)>0)&&(nrppa_handle)) + 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 diff --git a/epan/dissectors/asn1/ngap/packet-ngap-template.c b/epan/dissectors/asn1/ngap/packet-ngap-template.c index 3913360055..1416f51812 100644 --- a/epan/dissectors/asn1/ngap/packet-ngap-template.c +++ b/epan/dissectors/asn1/ngap/packet-ngap-template.c @@ -54,6 +54,7 @@ static dissector_handle_t nas_5gs_handle; static dissector_handle_t nr_rrc_ue_radio_paging_info_handle; static dissector_handle_t nr_rrc_ue_radio_access_cap_info_handle; static dissector_handle_t lte_rrc_ue_radio_paging_info_handle; +static dissector_handle_t nrppa_handle; static int proto_json = -1; @@ -553,6 +554,7 @@ proto_reg_handoff_ngap(void) } } + nrppa_handle = find_dissector_add_dependency("nrppa", proto_ngap); proto_json = proto_get_id_by_filter_name("json"); SctpPort=gbl_ngapSctpPort; diff --git a/epan/dissectors/asn1/nrppa/CMakeLists.txt b/epan/dissectors/asn1/nrppa/CMakeLists.txt new file mode 100644 index 0000000000..915f43c775 --- /dev/null +++ b/epan/dissectors/asn1/nrppa/CMakeLists.txt @@ -0,0 +1,39 @@ +# CMakeLists.txt +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# SPDX-License-Identifier: GPL-2.0-or-later +# + +set( PROTOCOL_NAME nrppa ) + +set( PROTO_OPT ) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + NRPPA-CommonDataTypes.asn + NRPPA-Constants.asn + NRPPA-Containers.asn + NRPPA-PDU-Descriptions.asn + NRPPA-IEs.asn + NRPPA-PDU-Contents.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS ) + +ASN2WRS() diff --git a/epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn b/epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn new file mode 100644 index 0000000000..edbd393c25 --- /dev/null +++ b/epan/dissectors/asn1/nrppa/NRPPA-CommonDataTypes.asn @@ -0,0 +1,51 @@ +-- 3GPP TS 38.455 V15.2.1 (2019-01-14) +-- 9.3.6 Common definitions +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +NRPPA-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) nrppa (4) version1 (1) nrppa-CommonDataTypes (3)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +NRPPATransactionID ::= INTEGER (0..32767) + + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END diff --git a/epan/dissectors/asn1/nrppa/NRPPA-Constants.asn b/epan/dissectors/asn1/nrppa/NRPPA-Constants.asn new file mode 100644 index 0000000000..ab61e36462 --- /dev/null +++ b/epan/dissectors/asn1/nrppa/NRPPA-Constants.asn @@ -0,0 +1,82 @@ +-- 3GPP TS 38.455 V15.2.1 (2019-01-14) +-- 9.3.7 Constant definitions +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +NRPPA-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) nrppa (4) version1 (1) nrppa-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + ProcedureCode, + ProtocolIE-ID +FROM NRPPA-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-errorIndication ProcedureCode ::= 0 +id-privateMessage ProcedureCode ::= 1 +id-e-CIDMeasurementInitiation ProcedureCode ::= 2 +id-e-CIDMeasurementFailureIndication ProcedureCode ::= 3 +id-e-CIDMeasurementReport ProcedureCode ::= 4 +id-e-CIDMeasurementTermination ProcedureCode ::= 5 +id-oTDOAInformationExchange ProcedureCode ::= 6 + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxNrOfErrors INTEGER ::= 256 +maxCellinRANnode INTEGER ::= 3840 +maxNoMeas INTEGER ::= 63 +maxCellReport INTEGER ::= 9 +maxnoOTDOAtypes INTEGER ::= 63 +maxServCell INTEGER ::= 5 +maxGERANMeas INTEGER ::= 8 +maxUTRANMeas INTEGER ::= 8 +maxWLANchannels INTEGER ::= 16 +maxnoFreqHoppingBandsMinusOne INTEGER ::= 7 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-Cause ProtocolIE-ID ::= 0 +id-CriticalityDiagnostics ProtocolIE-ID ::= 1 +id-LMF-UE-Measurement-ID ProtocolIE-ID ::= 2 +id-ReportCharacteristics ProtocolIE-ID ::= 3 +id-MeasurementPeriodicity ProtocolIE-ID ::= 4 +id-MeasurementQuantities ProtocolIE-ID ::= 5 +id-RAN-UE-Measurement-ID ProtocolIE-ID ::= 6 +id-E-CID-MeasurementResult ProtocolIE-ID ::= 7 +id-OTDOACells ProtocolIE-ID ::= 8 +id-OTDOA-Information-Type-Group ProtocolIE-ID ::= 9 +id-OTDOA-Information-Type-Item ProtocolIE-ID ::= 10 +id-MeasurementQuantities-Item ProtocolIE-ID ::= 11 +id-RequestedSRSTransmissionCharacteristics ProtocolIE-ID ::= 12 +id-Cell-Portion-ID ProtocolIE-ID ::= 14 +id-OtherRATMeasurementQuantities ProtocolIE-ID ::= 15 +id-OtherRATMeasurementQuantities-Item ProtocolIE-ID ::= 16 +id-OtherRATMeasurementResult ProtocolIE-ID ::= 17 +id-WLANMeasurementQuantities ProtocolIE-ID ::= 19 +id-WLANMeasurementQuantities-Item ProtocolIE-ID ::= 20 +id-WLANMeasurementResult ProtocolIE-ID ::= 21 +id-TDD-Config-EUTRA-Item ProtocolIE-ID ::= 22 + +END diff --git a/epan/dissectors/asn1/nrppa/NRPPA-Containers.asn b/epan/dissectors/asn1/nrppa/NRPPA-Containers.asn new file mode 100644 index 0000000000..0261d0033c --- /dev/null +++ b/epan/dissectors/asn1/nrppa/NRPPA-Containers.asn @@ -0,0 +1,152 @@ +-- 3GPP TS 38.455 V15.2.1 (2019-01-14) +-- 9.3.8 Container definitions +-- +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +NRPPA-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) nrppa (4) version1 (1) nrppa-Containers (5)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM NRPPA-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +NRPPA-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +NRPPA-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +NRPPA-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container { NRPPA-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container { NRPPA-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field { NRPPA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id NRPPA-PROTOCOL-IES.&id ({IEsSetParam}), + criticality NRPPA-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value NRPPA-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, NRPPA-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer { NRPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField { NRPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id NRPPA-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality NRPPA-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue NRPPA-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container { NRPPA-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field { NRPPA-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id NRPPA-PRIVATE-IES.&id ({IEsSetParam}), + criticality NRPPA-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value NRPPA-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/epan/dissectors/asn1/nrppa/NRPPA-IEs.asn b/epan/dissectors/asn1/nrppa/NRPPA-IEs.asn new file mode 100644 index 0000000000..a533b9f8d5 --- /dev/null +++ b/epan/dissectors/asn1/nrppa/NRPPA-IEs.asn @@ -0,0 +1,685 @@ +-- 3GPP TS 38.455 V15.2.1 (2019-01-14) +-- 9.3.5 Information Element definitions +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +NRPPA-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) nrppa (4) version1 (1) nrppa-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-MeasurementQuantities-Item, + maxCellinRANnode, + maxCellReport, + maxNrOfErrors, + maxNoMeas, + maxnoOTDOAtypes, + maxServCell, + id-OtherRATMeasurementQuantities-Item, + id-WLANMeasurementQuantities-Item, + maxGERANMeas, + maxUTRANMeas, + maxWLANchannels, + maxnoFreqHoppingBandsMinusOne, + id-TDD-Config-EUTRA-Item + + +FROM NRPPA-Constants + + Criticality, + NRPPATransactionID, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage + +FROM NRPPA-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + NRPPA-PROTOCOL-EXTENSION, + NRPPA-PROTOCOL-IES + +FROM NRPPA-Containers; + +-- A + +-- B + +BCCH ::= INTEGER (0..1023, ...) + +BSSID ::= OCTET STRING (SIZE(6)) + +-- C + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + protocol CauseProtocol, + misc CauseMisc, + cause-Extension ProtocolIE-Single-Container {{ Cause-ExtensionIE }} +} + +Cause-ExtensionIE NRPPA-PROTOCOL-IES ::= { + ... +} + +CauseMisc ::= ENUMERATED { + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + requested-item-not-supported, + requested-item-temporarily-not-available, + ... + +} + +Cell-Portion-ID ::= INTEGER (0..4095,...) + +CGI-EUTRA ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRAcellIdentifier EUTRACellIdentifier, + iE-Extensions ProtocolExtensionContainer { {CGI-EUTRA-ExtIEs} } OPTIONAL, + ... +} + +CGI-EUTRA-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +CPLength-EUTRA ::= ENUMERATED { + normal, + extended, + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + nrppatransactionID NRPPATransactionID OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + + +-- D + +DL-Bandwidth-EUTRA ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +-- E + +E-CID-MeasurementResult ::= SEQUENCE { + servingCell-ID NG-RAN-CGI, + servingCellTAC TAC, + nG-RANAccessPointPosition NG-RANAccessPointPosition OPTIONAL, + measuredResults MeasuredResults OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-CID-MeasurementResult-ExtIEs} } OPTIONAL, + ... +} + +E-CID-MeasurementResult-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRACellIdentifier ::= BIT STRING (SIZE (28)) + +EARFCN ::= INTEGER (0..262143, ...) + +-- F + +-- G + +-- H + +HESSID ::= OCTET STRING (SIZE(6)) + +-- I + +-- J + +-- K + +-- L + +-- M + +Measurement-ID ::= INTEGER (1..15, ...) + +MeasurementPeriodicity ::= ENUMERATED { + ms120, + ms240, + ms480, + ms640, + ms1024, + ms2048, + ms5120, + ms10240, + min1, + min6, + min12, + min30, + min60, + ... +} + +MeasurementQuantities ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF ProtocolIE-Single-Container { {MeasurementQuantities-ItemIEs} } + +MeasurementQuantities-ItemIEs NRPPA-PROTOCOL-IES ::= { + { ID id-MeasurementQuantities-Item CRITICALITY reject TYPE MeasurementQuantities-Item PRESENCE mandatory} +} + +MeasurementQuantities-Item ::= SEQUENCE { + measurementQuantitiesValue MeasurementQuantitiesValue, + iE-Extensions ProtocolExtensionContainer { { MeasurementQuantitiesValue-ExtIEs} } OPTIONAL, + ... +} + +MeasurementQuantitiesValue-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementQuantitiesValue ::= ENUMERATED { + cell-ID, + angleOfArrival, + timingAdvanceType1, + timingAdvanceType2, + rSRP, + rSRQ, + ... +} + +MeasuredResults ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF MeasuredResultsValue + +MeasuredResultsValue ::= CHOICE { + valueAngleOfArrival-EUTRA INTEGER (0..719), + valueTimingAdvanceType1-EUTRA INTEGER (0..7690), + valueTimingAdvanceType2-EUTRA INTEGER (0..7690), + resultRSRP-EUTRA ResultRSRP-EUTRA, + resultRSRQ-EUTRA ResultRSRQ-EUTRA, + measuredResultsValue-Extension ProtocolIE-Single-Container {{ MeasuredResultsValue-ExtensionIE }} +} + +MeasuredResultsValue-ExtensionIE NRPPA-PROTOCOL-IES ::= { + ... +} + +-- N + +NarrowBandIndex ::= INTEGER (0..15,...) + +NG-RANAccessPointPosition ::= SEQUENCE { + latitudeSign ENUMERATED {north, south}, + latitude INTEGER (0..8388607), + longitude INTEGER (-8388608..8388607), + directionOfAltitude ENUMERATED {height, depth}, + altitude INTEGER (0..32767), + uncertaintySemi-major INTEGER (0..127), + uncertaintySemi-minor INTEGER (0..127), + orientationOfMajorAxis INTEGER (0..179), + uncertaintyAltitude INTEGER (0..127), + confidence INTEGER (0..100), + iE-Extensions ProtocolExtensionContainer { { NG-RANAccessPointPosition-ExtIEs} } OPTIONAL, + ... +} + +NG-RANAccessPointPosition-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +NG-RAN-CGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + nG-RANcell NG-RANCell, + iE-Extensions ProtocolExtensionContainer { {NG-RAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +NG-RAN-CGI-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +NG-RANCell ::= CHOICE { + eUTRA-CellID EUTRACellIdentifier, + nR-CellID NRCellIdentifier, + nG-RANCell-Extension ProtocolIE-Single-Container {{ NG-RANCell-ExtensionIE }} +} + +NG-RANCell-ExtensionIE NRPPA-PROTOCOL-IES ::= { + ... +} + +NRCellIdentifier ::= BIT STRING (SIZE (36)) + +NumberOfAntennaPorts-EUTRA ::= ENUMERATED { + n1-or-n2, + n4, + ... +} + +NumberOfDlFrames-EUTRA ::= ENUMERATED { + sf1, + sf2, + sf4, + sf6, + ... +} + +NumberOfDlFrames-Extended-EUTRA ::= INTEGER (1..160,...) + +NumberOfFrequencyHoppingBands ::= ENUMERATED { + twobands, + fourbands, + ... +} + +-- O + +OTDOACells ::= SEQUENCE (SIZE (1.. maxCellinRANnode)) OF SEQUENCE { + oTDOACellInfo OTDOACell-Information, + iE-Extensions ProtocolExtensionContainer { {OTDOACells-ExtIEs} } OPTIONAL, + ... +} + +OTDOACells-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +OTDOACell-Information ::= SEQUENCE (SIZE (1..maxnoOTDOAtypes)) OF OTDOACell-Information-Item + +OTDOACell-Information-Item ::= CHOICE { + pCI-EUTRA PCI-EUTRA, + cGI-EUTRA CGI-EUTRA, + tAC TAC, + eARFCN EARFCN, + pRS-Bandwidth-EUTRA PRS-Bandwidth-EUTRA, + pRS-ConfigurationIndex-EUTRA PRS-ConfigurationIndex-EUTRA, + cPLength-EUTRA CPLength-EUTRA, + numberOfDlFrames-EUTRA NumberOfDlFrames-EUTRA, + numberOfAntennaPorts-EUTRA NumberOfAntennaPorts-EUTRA, + sFNInitialisationTime-EUTRA SFNInitialisationTime-EUTRA, + nG-RANAccessPointPosition NG-RANAccessPointPosition, + pRSMutingConfiguration-EUTRA PRSMutingConfiguration-EUTRA, + prsid-EUTRA PRS-ID-EUTRA, + tpid-EUTRA TP-ID-EUTRA, + tpType-EUTRA TP-Type-EUTRA, + numberOfDlFrames-Extended-EUTRA NumberOfDlFrames-Extended-EUTRA, + crsCPlength-EUTRA CPLength-EUTRA, + dL-Bandwidth-EUTRA DL-Bandwidth-EUTRA, + pRSOccasionGroup-EUTRA PRSOccasionGroup-EUTRA, + pRSFrequencyHoppingConfiguration-EUTRA PRSFrequencyHoppingConfiguration-EUTRA, + oTDOACell-Information-Item-Extension ProtocolIE-Single-Container {{ OTDOACell-Information-Item-ExtensionIE }} +} + +OTDOACell-Information-Item-ExtensionIE NRPPA-PROTOCOL-IES ::= { + { ID id-TDD-Config-EUTRA-Item CRITICALITY ignore TYPE TDD-Config-EUTRA-Item PRESENCE optional }, + ... +} + +OTDOA-Information-Item ::= ENUMERATED { + pci, + cGI, + tac, + earfcn, + prsBandwidth, + prsConfigIndex, + cpLength, + noDlFrames, + noAntennaPorts, + sFNInitTime, + nG-RANAccessPointPosition, + prsmutingconfiguration, + prsid, + tpid, + tpType, + crsCPlength, + dlBandwidth, + multipleprsConfigurationsperCell, + prsOccasionGroup, + prsFrequencyHoppingConfiguration, + ..., + tddConfig +} + +OtherRATMeasurementQuantities ::= SEQUENCE (SIZE (0.. maxNoMeas)) OF ProtocolIE-Single-Container { {OtherRATMeasurementQuantities-ItemIEs} } + +OtherRATMeasurementQuantities-ItemIEs NRPPA-PROTOCOL-IES ::= { + { ID id-OtherRATMeasurementQuantities-Item CRITICALITY reject TYPE OtherRATMeasurementQuantities-Item PRESENCE mandatory}} + +OtherRATMeasurementQuantities-Item ::= SEQUENCE { + otherRATMeasurementQuantitiesValue OtherRATMeasurementQuantitiesValue, + iE-Extensions ProtocolExtensionContainer { { OtherRATMeasurementQuantitiesValue-ExtIEs} } OPTIONAL, + ... +} + +OtherRATMeasurementQuantitiesValue-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +OtherRATMeasurementQuantitiesValue ::= ENUMERATED { + geran, + utran, + ... +} + +OtherRATMeasurementResult ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF OtherRATMeasuredResultsValue + +OtherRATMeasuredResultsValue ::= CHOICE { + resultGERAN ResultGERAN, + resultUTRAN ResultUTRAN, + otherRATMeasuredResultsValue-Extension ProtocolIE-Single-Container {{ OtherRATMeasuredResultsValue-ExtensionIE }} +} + + +OtherRATMeasuredResultsValue-ExtensionIE NRPPA-PROTOCOL-IES ::= { + ... +} + +-- P + +PCI-EUTRA ::= INTEGER (0..503, ...) + +PhysCellIDGERAN ::= INTEGER (0..63, ...) + +PhysCellIDUTRA-FDD ::= INTEGER (0..511, ...) + +PhysCellIDUTRA-TDD ::= INTEGER (0..127, ...) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +PRS-Bandwidth-EUTRA ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +PRS-ConfigurationIndex-EUTRA ::= INTEGER (0..4095, ...) + +PRS-ID-EUTRA ::= INTEGER (0..4095, ...) + +PRSMutingConfiguration-EUTRA ::= CHOICE { + two BIT STRING (SIZE (2)), + four BIT STRING (SIZE (4)), + eight BIT STRING (SIZE (8)), + sixteen BIT STRING (SIZE (16)), + thirty-two BIT STRING (SIZE (32)), + sixty-four BIT STRING (SIZE (64)), + one-hundred-and-twenty-eight BIT STRING (SIZE (128)), + two-hundred-and-fifty-six BIT STRING (SIZE (256)), + five-hundred-and-twelve BIT STRING (SIZE (512)), + one-thousand-and-twenty-four BIT STRING (SIZE (1024)), + pRSMutingConfiguration-EUTRA-Extension ProtocolIE-Single-Container {{ PRSMutingConfiguration-EUTRA-ExtensionIE }} +} + +PRSMutingConfiguration-EUTRA-ExtensionIE NRPPA-PROTOCOL-IES ::= { + ... +} + +PRSOccasionGroup-EUTRA ::= ENUMERATED { + og2, + og4, + og8, + og16, + og32, + og64, + og128, + ... +} + +PRSFrequencyHoppingConfiguration-EUTRA ::= SEQUENCE { + noOfFreqHoppingBands NumberOfFrequencyHoppingBands, + bandPositions SEQUENCE(SIZE (1..maxnoFreqHoppingBandsMinusOne)) OF NarrowBandIndex, + iE-Extensions ProtocolExtensionContainer { { PRSFrequencyHoppingConfiguration-EUTRA-Item-IEs} } OPTIONAL, + ... +} + +PRSFrequencyHoppingConfiguration-EUTRA-Item-IEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- Q + +-- R + +ReportCharacteristics ::= ENUMERATED { + onDemand, + periodic, + ... +} + +RequestedSRSTransmissionCharacteristics ::= SEQUENCE { + numberOfTransmissions INTEGER (0..500, ...), + bandwidth INTEGER (1..100, ...), + iE-Extensions ProtocolExtensionContainer { { RequestedSRSTransmissionCharacteristics-ExtIEs} } OPTIONAL, + ... +} + +RequestedSRSTransmissionCharacteristics-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +ResultRSRP-EUTRA ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRP-EUTRA-Item + +ResultRSRP-EUTRA-Item ::= SEQUENCE { + pCI-EUTRA PCI-EUTRA, + eARFCN EARFCN, + cGI-EUTRA CGI-EUTRA OPTIONAL, + valueRSRP-EUTRA ValueRSRP-EUTRA, + iE-Extensions ProtocolExtensionContainer { { ResultRSRP-EUTRA-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultRSRP-EUTRA-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +ResultRSRQ-EUTRA ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRQ-EUTRA-Item + +ResultRSRQ-EUTRA-Item ::= SEQUENCE { + pCI-EUTRA PCI-EUTRA, + eARFCN EARFCN, + cGI-UTRA CGI-EUTRA OPTIONAL, + valueRSRQ-EUTRA ValueRSRQ-EUTRA, + iE-Extensions ProtocolExtensionContainer { { ResultRSRQ-EUTRA-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultRSRQ-EUTRA-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +ResultGERAN ::= SEQUENCE (SIZE (1.. maxGERANMeas)) OF ResultGERAN-Item + +ResultGERAN-Item ::= SEQUENCE { + bCCH BCCH, + physCellIDGERAN PhysCellIDGERAN, + rSSI RSSI, + iE-Extensions ProtocolExtensionContainer { { ResultGERAN-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultGERAN-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +ResultUTRAN ::= SEQUENCE (SIZE (1.. maxUTRANMeas)) OF ResultUTRAN-Item + +ResultUTRAN-Item ::= SEQUENCE { + uARFCN UARFCN, + physCellIDUTRAN CHOICE { + physCellIDUTRA-FDD PhysCellIDUTRA-FDD, + physCellIDUTRA-TDD PhysCellIDUTRA-TDD + }, + uTRA-RSCP UTRA-RSCP OPTIONAL, + uTRA-EcN0 UTRA-EcN0 OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResultUTRAN-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultUTRAN-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +RSSI ::= INTEGER (0..63, ...) + +-- S + +SFNInitialisationTime-EUTRA ::= BIT STRING (SIZE (64)) + +SSID ::= OCTET STRING (SIZE(1..32)) + +-- T + +TAC ::= OCTET STRING (SIZE(3)) + +TDD-Config-EUTRA-Item ::= SEQUENCE { + subframeAssignment ENUMERATED { sa0, sa1, sa2, sa3, sa4, sa5, sa6, ... }, + iE-Extensions ProtocolExtensionContainer { { TDD-Config-EUTRA-Item-Item-ExtIEs } } OPTIONAL, + ... +} + +TDD-Config-EUTRA-Item-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +TP-ID-EUTRA ::= INTEGER (0..4095, ...) + +TP-Type-EUTRA ::= ENUMERATED { prs-only-tp, ... } + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +-- U + +UARFCN ::= INTEGER (0..16383, ...) + +UTRA-EcN0 ::= INTEGER (0..49, ...) + +UTRA-RSCP ::= INTEGER (-5..91, ...) + +-- V + +ValueRSRP-EUTRA ::= INTEGER (0..97, ...) + +ValueRSRQ-EUTRA ::= INTEGER (0..34, ...) + +-- W + +WLANMeasurementQuantities ::= SEQUENCE (SIZE (0.. maxNoMeas)) OF ProtocolIE-Single-Container { {WLANMeasurementQuantities-ItemIEs} } + +WLANMeasurementQuantities-ItemIEs NRPPA-PROTOCOL-IES ::= { + { ID id-WLANMeasurementQuantities-Item CRITICALITY reject TYPE WLANMeasurementQuantities-Item PRESENCE mandatory}} + +WLANMeasurementQuantities-Item ::= SEQUENCE { + wLANMeasurementQuantitiesValue WLANMeasurementQuantitiesValue, + iE-Extensions ProtocolExtensionContainer { { WLANMeasurementQuantitiesValue-ExtIEs} } OPTIONAL, + ... +} + +WLANMeasurementQuantitiesValue-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +WLANMeasurementQuantitiesValue ::= ENUMERATED { + wlan, + ... +} + +WLANMeasurementResult ::= SEQUENCE (SIZE (1..maxNoMeas)) OF WLANMeasurementResult-Item + +WLANMeasurementResult-Item ::= SEQUENCE { + wLAN-RSSI WLAN-RSSI, + sSID SSID OPTIONAL, + bSSID BSSID OPTIONAL, + hESSID HESSID OPTIONAL, + operatingClass WLANOperatingClass OPTIONAL, + countryCode WLANCountryCode OPTIONAL, + wLANChannelList WLANChannelList OPTIONAL, + wLANBand WLANBand OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { WLANMeasurementResult-Item-ExtIEs } } OPTIONAL, + ... +} + +WLANMeasurementResult-Item-ExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +WLAN-RSSI ::= INTEGER (0..141, ...) + +WLANBand ::= ENUMERATED {band2dot4, band5, ...} + +WLANChannelList ::= SEQUENCE (SIZE (1..maxWLANchannels)) OF WLANChannel + +WLANChannel ::= INTEGER (0..255) + +WLANCountryCode ::= ENUMERATED { + unitedStates, + europe, + japan, + global, + ... +} + +WLANOperatingClass ::= INTEGER (0..255) + +-- X + +-- Y + +-- Z + +END diff --git a/epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn new file mode 100644 index 0000000000..58202189ca --- /dev/null +++ b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Contents.asn @@ -0,0 +1,297 @@ +-- 3GPP TS 38.455 V15.2.1 (2019-01-14) +--9.3.4 PDU Definitions +-- +-- ************************************************************** +-- +-- PDU definitions for NRPPa. +-- +-- ************************************************************** + +NRPPA-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) nrppa (4) version1 (1) nrppa-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + Cause, + CriticalityDiagnostics, + E-CID-MeasurementResult, + OTDOACells, + OTDOA-Information-Item, + Measurement-ID, + MeasurementPeriodicity, + MeasurementQuantities, + ReportCharacteristics, + RequestedSRSTransmissionCharacteristics, + Cell-Portion-ID, + OtherRATMeasurementQuantities, + OtherRATMeasurementResult, + WLANMeasurementQuantities, + WLANMeasurementResult + +FROM NRPPA-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-Single-Container{}, + NRPPA-PRIVATE-IES, + NRPPA-PROTOCOL-EXTENSION, + NRPPA-PROTOCOL-IES +FROM NRPPA-Containers + + + maxnoOTDOAtypes, + id-Cause, + id-CriticalityDiagnostics, + id-LMF-UE-Measurement-ID, + id-OTDOACells, + id-OTDOA-Information-Type-Group, + id-OTDOA-Information-Type-Item, + id-ReportCharacteristics, + id-MeasurementPeriodicity, + id-MeasurementQuantities, + id-RAN-UE-Measurement-ID, + id-E-CID-MeasurementResult, + id-RequestedSRSTransmissionCharacteristics, + id-Cell-Portion-ID, + id-OtherRATMeasurementQuantities, + id-OtherRATMeasurementResult, + id-WLANMeasurementQuantities, + id-WLANMeasurementResult + +FROM NRPPA-Constants; + +-- ************************************************************** +-- +-- E-CID MEASUREMENT INITIATION REQUEST +-- +-- ************************************************************** + +E-CIDMeasurementInitiationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationRequest-IEs}}, + ... +} + +E-CIDMeasurementInitiationRequest-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-LMF-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory}| + { ID id-MeasurementPeriodicity CRITICALITY reject TYPE MeasurementPeriodicity PRESENCE conditional}| +-- The IE shall be present if the Report Characteritics IE is set to “periodic” -- + { ID id-MeasurementQuantities CRITICALITY reject TYPE MeasurementQuantities PRESENCE mandatory}| + { ID id-OtherRATMeasurementQuantities CRITICALITY ignore TYPE OtherRATMeasurementQuantities PRESENCE optional}| + { ID id-WLANMeasurementQuantities CRITICALITY ignore TYPE WLANMeasurementQuantities PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT INITIATION RESPONSE +-- +-- ************************************************************** + +E-CIDMeasurementInitiationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationResponse-IEs}}, + ... +} + +E-CIDMeasurementInitiationResponse-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-LMF-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-RAN-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Cell-Portion-ID CRITICALITY ignore TYPE Cell-Portion-ID PRESENCE optional}| + { ID id-OtherRATMeasurementResult CRITICALITY ignore TYPE OtherRATMeasurementResult PRESENCE optional}| + { ID id-WLANMeasurementResult CRITICALITY ignore TYPE WLANMeasurementResult PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT INITIATION FAILURE +-- +-- ************************************************************** + +E-CIDMeasurementInitiationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationFailure-IEs}}, + ... +} + + +E-CIDMeasurementInitiationFailure-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-LMF-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT FAILURE INDICATION +-- +-- ************************************************************** + +E-CIDMeasurementFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementFailureIndication-IEs}}, + ... +} + + +E-CIDMeasurementFailureIndication-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-LMF-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-RAN-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT REPORT +-- +-- ************************************************************** + +E-CIDMeasurementReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementReport-IEs}}, + ... +} + + +E-CIDMeasurementReport-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-LMF-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-RAN-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE mandatory}| + { ID id-Cell-Portion-ID CRITICALITY ignore TYPE Cell-Portion-ID PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT TERMINATION +-- +-- ************************************************************** + +E-CIDMeasurementTerminationCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementTerminationCommand-IEs}}, + ... +} + + +E-CIDMeasurementTerminationCommand-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-LMF-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-RAN-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- OTDOA INFORMATION REQUEST +-- +-- ************************************************************** + +OTDOAInformationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationRequest-IEs}}, + ... +} + +OTDOAInformationRequest-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-OTDOA-Information-Type-Group CRITICALITY reject TYPE OTDOA-Information-Type PRESENCE mandatory}, + ... +} + +OTDOA-Information-Type ::= SEQUENCE (SIZE(1..maxnoOTDOAtypes)) OF ProtocolIE-Single-Container { { OTDOA-Information-TypeIEs} } + +OTDOA-Information-TypeIEs NRPPA-PROTOCOL-IES ::= { + { ID id-OTDOA-Information-Type-Item CRITICALITY reject TYPE OTDOA-Information-Type-Item PRESENCE mandatory}, + ... +} + +OTDOA-Information-Type-Item ::= SEQUENCE { + oTDOA-Information-Type-Item OTDOA-Information-Item, + iE-Extensions ProtocolExtensionContainer { { OTDOA-Information-Type-ItemExtIEs} } OPTIONAL, + ... +} + +OTDOA-Information-Type-ItemExtIEs NRPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- OTDOA INFORMATION RESPONSE +-- +-- ************************************************************** + +OTDOAInformationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationResponse-IEs}}, + ... +} + +OTDOAInformationResponse-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-OTDOACells CRITICALITY ignore TYPE OTDOACells PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- OTDOA INFORMATION FAILURE +-- +-- ************************************************************** + +OTDOAInformationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationFailure-IEs}}, + ... +} + + +OTDOAInformationFailure-IEs NRPPA-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs NRPPA-PROTOCOL-IES ::= { + + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs NRPPA-PRIVATE-IES ::= { + ... +} + +END diff --git a/epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn new file mode 100644 index 0000000000..2e64347cf0 --- /dev/null +++ b/epan/dissectors/asn1/nrppa/NRPPA-PDU-Descriptions.asn @@ -0,0 +1,195 @@ +-- 3GPP TS 38.455 V15.2.1 (2019-01-14) +-- +-- ASN1START +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +NRPPA-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) nrppa (4) version1 (1) nrppa-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode, + NRPPATransactionID + +FROM NRPPA-CommonDataTypes + + + ErrorIndication, + PrivateMessage, + E-CIDMeasurementInitiationRequest, + E-CIDMeasurementInitiationResponse, + E-CIDMeasurementInitiationFailure, + E-CIDMeasurementFailureIndication, + E-CIDMeasurementReport, + E-CIDMeasurementTerminationCommand, + OTDOAInformationRequest, + OTDOAInformationResponse, + OTDOAInformationFailure + + +FROM NRPPA-PDU-Contents + + id-errorIndication, + id-privateMessage, + id-e-CIDMeasurementInitiation, + id-e-CIDMeasurementFailureIndication, + id-e-CIDMeasurementReport, + id-e-CIDMeasurementTermination, + id-oTDOAInformationExchange + + +FROM NRPPA-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +NRPPA-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +NRPPA-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode NRPPA-ELEMENTARY-PROCEDURE.&procedureCode ({NRPPA-ELEMENTARY-PROCEDURES}), + criticality NRPPA-ELEMENTARY-PROCEDURE.&criticality ({NRPPA-ELEMENTARY-PROCEDURES}{@procedureCode}), + nrppatransactionID NRPPATransactionID, + value NRPPA-ELEMENTARY-PROCEDURE.&InitiatingMessage ({NRPPA-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode NRPPA-ELEMENTARY-PROCEDURE.&procedureCode ({NRPPA-ELEMENTARY-PROCEDURES}), + criticality NRPPA-ELEMENTARY-PROCEDURE.&criticality ({NRPPA-ELEMENTARY-PROCEDURES}{@procedureCode}), + nrppatransactionID NRPPATransactionID, + value NRPPA-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({NRPPA-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode NRPPA-ELEMENTARY-PROCEDURE.&procedureCode ({NRPPA-ELEMENTARY-PROCEDURES}), + criticality NRPPA-ELEMENTARY-PROCEDURE.&criticality ({NRPPA-ELEMENTARY-PROCEDURES}{@procedureCode}), + nrppatransactionID NRPPATransactionID, + value NRPPA-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({NRPPA-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +NRPPA-ELEMENTARY-PROCEDURES NRPPA-ELEMENTARY-PROCEDURE ::= { + NRPPA-ELEMENTARY-PROCEDURES-CLASS-1 | + NRPPA-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +NRPPA-ELEMENTARY-PROCEDURES-CLASS-1 NRPPA-ELEMENTARY-PROCEDURE ::= { + e-CIDMeasurementInitiation | + oTDOAInformationExchange , + ... +} + +NRPPA-ELEMENTARY-PROCEDURES-CLASS-2 NRPPA-ELEMENTARY-PROCEDURE ::= { + e-CIDMeasurementFailureIndication | + e-CIDMeasurementReport | + e-CIDMeasurementTermination | + errorIndication | + privateMessage , + ... +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +e-CIDMeasurementInitiation NRPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementInitiationRequest + SUCCESSFUL OUTCOME E-CIDMeasurementInitiationResponse + UNSUCCESSFUL OUTCOME E-CIDMeasurementInitiationFailure + PROCEDURE CODE id-e-CIDMeasurementInitiation + CRITICALITY reject +} + +e-CIDMeasurementFailureIndication NRPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementFailureIndication + PROCEDURE CODE id-e-CIDMeasurementFailureIndication + CRITICALITY ignore +} + +e-CIDMeasurementReport NRPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementReport + PROCEDURE CODE id-e-CIDMeasurementReport + CRITICALITY ignore +} + +e-CIDMeasurementTermination NRPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementTerminationCommand + PROCEDURE CODE id-e-CIDMeasurementTermination + CRITICALITY reject +} + +oTDOAInformationExchange NRPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OTDOAInformationRequest + SUCCESSFUL OUTCOME OTDOAInformationResponse + UNSUCCESSFUL OUTCOME OTDOAInformationFailure + PROCEDURE CODE id-oTDOAInformationExchange + CRITICALITY reject +} + +errorIndication NRPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + + +privateMessage NRPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +END diff --git a/epan/dissectors/asn1/nrppa/nrppa.cnf b/epan/dissectors/asn1/nrppa/nrppa.cnf new file mode 100644 index 0000000000..ecb35accff --- /dev/null +++ b/epan/dissectors/asn1/nrppa/nrppa.cnf @@ -0,0 +1,146 @@ +# nrppa.cnf +# nrppa conformation file +# Copyright 2019 Anders Broman + +#.OPT +PER +ALIGNED +#.END + +#.MAKE_ENUM +ProcedureCode +ProtocolIE-ID + +#.OMIT_ASSIGNMENT +Presence +ProtocolIE-ContainerList +ProtocolIE-ContainerPairList +ProtocolIE-FieldPair +RequestedSRSTransmissionCharacteristics + +#.PDU +NRPPA-PDU + +#.TYPE_RENAME +InitiatingMessage/value InitiatingMessage_value +SuccessfulOutcome/value SuccessfulOutcome_value +UnsuccessfulOutcome/value UnsuccessfulOutcome_value + +#.FIELD_RENAME +InitiatingMessage/value initiatingMessagevalue +UnsuccessfulOutcome/value unsuccessfulOutcome_value +SuccessfulOutcome/value successfulOutcome_value +ProtocolIE-Field/value ie_field_value + +#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID +#.FN_FTR ProtocolIE-ID + if (tree) { + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(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")); +#.END + +#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue + +#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue + +#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue + +#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue + +#.FN_HDR NRPPA-PDU + + proto_tree_add_item(tree, proto_nrppa, tvb, 0, -1, ENC_NA); + + col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "NRPPa"); +#.END + +#.TYPE_ATTR + +#.TYPE_ATTR + +#.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 + +# 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 + +#.REGISTER +#NRPPA-PROTOCOL-IES + +Cause N nrppa.ies id-Cause +CriticalityDiagnostics N nrppa.ies id-CriticalityDiagnostics +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 +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 +# 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 + + +#LPPA-ELEMENTARY-PROCEDURE +ErrorIndication N nrppa.proc.imsg id-errorIndication + +PrivateMessage N nrppa.proc.imsg id-privateMessage + +E-CIDMeasurementInitiationRequest N nrppa.proc.imsg id-e-CIDMeasurementInitiation +E-CIDMeasurementInitiationResponse N nrppa.proc.sout id-e-CIDMeasurementInitiation +E-CIDMeasurementInitiationFailure N nrppa.proc.uout id-e-CIDMeasurementInitiation + +E-CIDMeasurementFailureIndication N nrppa.proc.imsg id-e-CIDMeasurementFailureIndication + +E-CIDMeasurementReport N nrppa.proc.imsg id-e-CIDMeasurementReport + +E-CIDMeasurementTerminationCommand N nrppa.proc.imsg id-e-CIDMeasurementTermination + +OTDOAInformationRequest N nrppa.proc.imsg id-oTDOAInformationExchange +OTDOAInformationResponse N nrppa.proc.sout id-oTDOAInformationExchange +OTDOAInformationFailure N nrppa.proc.uout id-oTDOAInformationExchange + diff --git a/epan/dissectors/asn1/nrppa/packet-nrppa-template.c b/epan/dissectors/asn1/nrppa/packet-nrppa-template.c new file mode 100644 index 0000000000..13dc5221e8 --- /dev/null +++ b/epan/dissectors/asn1/nrppa/packet-nrppa-template.c @@ -0,0 +1,113 @@ +/* packet-nrppa.c + * Routines for 3GPP NR Positioning Protocol A (NRPPa) packet dissection + * Copyright 2019, Anders Broman <anders.broman@ericsson.com> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Ref 3GPP TS 38.455 V15.2.1 (2019-01-14) + * http://www.3gpp.org + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/asn1.h> + +#include "packet-per.h" + +#define PNAME "NR Positioning Protocol A (NRPPa)" +#define PSNAME "NRPPa" +#define PFNAME "nrppa" + +void proto_register_nrppa(void); +void proto_reg_handoff_nrppa(void); + +/* Initialize the protocol and registered fields */ +static int proto_nrppa = -1; + +#include "packet-nrppa-hf.c" + +/* Initialize the subtree pointers */ +static gint ett_nrppa = -1; +#include "packet-nrppa-ett.c" + +/* Global variables */ +static guint32 ProcedureCode; +static guint32 ProtocolIE_ID; + +/* Dissector tables */ +static dissector_table_t nrppa_ies_dissector_table; +static dissector_table_t nrppa_proc_imsg_dissector_table; +static dissector_table_t nrppa_proc_sout_dissector_table; +static dissector_table_t nrppa_proc_uout_dissector_table; + +/* Include constants */ +#include "packet-nrppa-val.h" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); + +#include "packet-nrppa-fn.c" + +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; +} + +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; +} + +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; +} + +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; +} + +/*--- proto_register_nrppa -------------------------------------------*/ +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, +#include "packet-nrppa-ettarr.c" + }; + + /* Register protocol */ + proto_nrppa = proto_register_protocol(PNAME, PSNAME, PFNAME); + register_dissector("nrppa", dissect_NRPPA_PDU_PDU, proto_nrppa); + + /* Register fields and subtrees */ + proto_register_field_array(proto_nrppa, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + /* Register dissector tables */ + nrppa_ies_dissector_table = register_dissector_table("nrppa.ies", "NRPPA-PROTOCOL-IES", proto_nrppa, FT_UINT32, BASE_DEC); + nrppa_proc_imsg_dissector_table = register_dissector_table("nrppa.proc.imsg", "NRPPA-ELEMENTARY-PROCEDURE InitiatingMessage", proto_nrppa, FT_UINT32, BASE_DEC); + nrppa_proc_sout_dissector_table = register_dissector_table("nrppa.proc.sout", "NRPPA-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_nrppa, FT_UINT32, BASE_DEC); + nrppa_proc_uout_dissector_table = register_dissector_table("nrppa.proc.uout", "NRPPA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_nrppa, FT_UINT32, BASE_DEC); +} + +/*--- proto_reg_handoff_nrppa ---------------------------------------*/ +void +proto_reg_handoff_nrppa(void) +{ +#include "packet-nrppa-dis-tab.c" +} diff --git a/epan/dissectors/packet-ngap.c b/epan/dissectors/packet-ngap.c index f556e9f938..95ef26800e 100644 --- a/epan/dissectors/packet-ngap.c +++ b/epan/dissectors/packet-ngap.c @@ -62,6 +62,7 @@ static dissector_handle_t nas_5gs_handle; static dissector_handle_t nr_rrc_ue_radio_paging_info_handle; static dissector_handle_t nr_rrc_ue_radio_access_cap_info_handle; static dissector_handle_t lte_rrc_ue_radio_paging_info_handle; +static dissector_handle_t nrppa_handle; static int proto_json = -1; @@ -346,7 +347,7 @@ typedef enum _HandoverType_enum { } HandoverType_enum; /*--- End of included file: packet-ngap-val.h ---*/ -#line 61 "./asn1/ngap/packet-ngap-template.c" +#line 62 "./asn1/ngap/packet-ngap-template.c" /* Initialize the protocol and registered fields */ static int proto_ngap = -1; @@ -1109,7 +1110,7 @@ static int hf_ngap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */ static int hf_ngap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */ /*--- End of included file: packet-ngap-hf.c ---*/ -#line 96 "./asn1/ngap/packet-ngap-template.c" +#line 97 "./asn1/ngap/packet-ngap-template.c" /* Initialize the subtree pointers */ static gint ett_ngap = -1; @@ -1569,7 +1570,7 @@ static gint ett_ngap_SuccessfulOutcome = -1; static gint ett_ngap_UnsuccessfulOutcome = -1; /*--- End of included file: packet-ngap-ett.c ---*/ -#line 124 "./asn1/ngap/packet-ngap-template.c" +#line 125 "./asn1/ngap/packet-ngap-template.c" static expert_field ei_ngap_number_pages_le15 = EI_INIT; @@ -6712,8 +6713,18 @@ dissect_ngap_NRintegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, static int dissect_ngap_NRPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 725 "./asn1/ngap/ngap.cnf" + + tvbuff_t *parameter_tvb=NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); + + + if ((tvb_reported_length(parameter_tvb)>0)&&(nrppa_handle)) + call_dissector(nrppa_handle, parameter_tvb, actx->pinfo, tree); + + return offset; } @@ -10498,7 +10509,7 @@ static const per_sequence_t PDUSessionResourceSetupRequest_sequence[] = { static int dissect_ngap_PDUSessionResourceSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1404 "./asn1/ngap/ngap.cnf" +#line 1413 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupRequest"); @@ -10516,7 +10527,7 @@ static const per_sequence_t PDUSessionResourceSetupResponse_sequence[] = { static int dissect_ngap_PDUSessionResourceSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1407 "./asn1/ngap/ngap.cnf" +#line 1416 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupResponse"); @@ -10534,7 +10545,7 @@ static const per_sequence_t PDUSessionResourceReleaseCommand_sequence[] = { static int dissect_ngap_PDUSessionResourceReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1398 "./asn1/ngap/ngap.cnf" +#line 1407 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseCommand"); @@ -10552,7 +10563,7 @@ static const per_sequence_t PDUSessionResourceReleaseResponse_sequence[] = { static int dissect_ngap_PDUSessionResourceReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1401 "./asn1/ngap/ngap.cnf" +#line 1410 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseResponse"); @@ -10570,7 +10581,7 @@ static const per_sequence_t PDUSessionResourceModifyRequest_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1383 "./asn1/ngap/ngap.cnf" +#line 1392 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyRequest"); @@ -10588,7 +10599,7 @@ static const per_sequence_t PDUSessionResourceModifyResponse_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1386 "./asn1/ngap/ngap.cnf" +#line 1395 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyResponse"); @@ -10606,7 +10617,7 @@ static const per_sequence_t PDUSessionResourceNotify_sequence[] = { static int dissect_ngap_PDUSessionResourceNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1395 "./asn1/ngap/ngap.cnf" +#line 1404 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceNotify"); @@ -10624,7 +10635,7 @@ static const per_sequence_t PDUSessionResourceModifyIndication_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1389 "./asn1/ngap/ngap.cnf" +#line 1398 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyIndication"); @@ -10642,7 +10653,7 @@ static const per_sequence_t PDUSessionResourceModifyConfirm_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1392 "./asn1/ngap/ngap.cnf" +#line 1401 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyConfirm"); @@ -10660,7 +10671,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = { static int dissect_ngap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1326 "./asn1/ngap/ngap.cnf" +#line 1335 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); @@ -10678,7 +10689,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = { static int dissect_ngap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1329 "./asn1/ngap/ngap.cnf" +#line 1338 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); @@ -10696,7 +10707,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = { static int dissect_ngap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1332 "./asn1/ngap/ngap.cnf" +#line 1341 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); @@ -10714,7 +10725,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_ngap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1464 "./asn1/ngap/ngap.cnf" +#line 1473 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); @@ -10732,7 +10743,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_ngap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1458 "./asn1/ngap/ngap.cnf" +#line 1467 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); @@ -10750,7 +10761,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_ngap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1461 "./asn1/ngap/ngap.cnf" +#line 1470 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); @@ -10768,7 +10779,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_ngap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1449 "./asn1/ngap/ngap.cnf" +#line 1458 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); @@ -10786,7 +10797,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_ngap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1452 "./asn1/ngap/ngap.cnf" +#line 1461 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); @@ -10804,7 +10815,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_ngap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1455 "./asn1/ngap/ngap.cnf" +#line 1464 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); @@ -10822,7 +10833,7 @@ static const per_sequence_t RRCInactiveTransitionReport_sequence[] = { static int dissect_ngap_RRCInactiveTransitionReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1437 "./asn1/ngap/ngap.cnf" +#line 1446 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCInactiveTransitionReport"); @@ -10840,7 +10851,7 @@ static const per_sequence_t HandoverRequired_sequence[] = { static int dissect_ngap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1308 "./asn1/ngap/ngap.cnf" +#line 1317 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); @@ -10858,7 +10869,7 @@ static const per_sequence_t HandoverCommand_sequence[] = { static int dissect_ngap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1311 "./asn1/ngap/ngap.cnf" +#line 1320 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); @@ -10876,7 +10887,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = { static int dissect_ngap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1314 "./asn1/ngap/ngap.cnf" +#line 1323 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); @@ -10915,7 +10926,7 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { static int dissect_ngap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1320 "./asn1/ngap/ngap.cnf" +#line 1329 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); @@ -10933,7 +10944,7 @@ static const per_sequence_t HandoverFailure_sequence[] = { static int dissect_ngap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1323 "./asn1/ngap/ngap.cnf" +#line 1332 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); @@ -10951,7 +10962,7 @@ static const per_sequence_t HandoverNotify_sequence[] = { static int dissect_ngap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1305 "./asn1/ngap/ngap.cnf" +#line 1314 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); @@ -10969,7 +10980,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = { static int dissect_ngap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1374 "./asn1/ngap/ngap.cnf" +#line 1383 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); @@ -10987,7 +10998,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = { static int dissect_ngap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1377 "./asn1/ngap/ngap.cnf" +#line 1386 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); @@ -11005,7 +11016,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = { static int dissect_ngap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1380 "./asn1/ngap/ngap.cnf" +#line 1389 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); @@ -11023,7 +11034,7 @@ static const per_sequence_t HandoverCancel_sequence[] = { static int dissect_ngap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1299 "./asn1/ngap/ngap.cnf" +#line 1308 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); @@ -11041,7 +11052,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = { static int dissect_ngap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1302 "./asn1/ngap/ngap.cnf" +#line 1311 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); @@ -11059,7 +11070,7 @@ static const per_sequence_t UplinkRANStatusTransfer_sequence[] = { static int dissect_ngap_UplinkRANStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1488 "./asn1/ngap/ngap.cnf" +#line 1497 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkRANStatusTransfer"); @@ -11077,7 +11088,7 @@ static const per_sequence_t DownlinkRANStatusTransfer_sequence[] = { static int dissect_ngap_DownlinkRANStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1290 "./asn1/ngap/ngap.cnf" +#line 1299 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkRANStatusTransfer"); @@ -11095,7 +11106,7 @@ static const per_sequence_t Paging_sequence[] = { static int dissect_ngap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1371 "./asn1/ngap/ngap.cnf" +#line 1380 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); @@ -11176,7 +11187,7 @@ static const per_sequence_t NASNonDeliveryIndication_sequence[] = { static int dissect_ngap_NASNonDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1347 "./asn1/ngap/ngap.cnf" +#line 1356 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); @@ -11194,7 +11205,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = { static int dissect_ngap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1434 "./asn1/ngap/ngap.cnf" +#line 1443 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); @@ -11234,7 +11245,7 @@ static const per_sequence_t NGSetupRequest_sequence[] = { static int dissect_ngap_NGSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1356 "./asn1/ngap/ngap.cnf" +#line 1365 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupRequest"); @@ -11252,7 +11263,7 @@ static const per_sequence_t NGSetupResponse_sequence[] = { static int dissect_ngap_NGSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1359 "./asn1/ngap/ngap.cnf" +#line 1368 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupResponse"); @@ -11270,7 +11281,7 @@ static const per_sequence_t NGSetupFailure_sequence[] = { static int dissect_ngap_NGSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1362 "./asn1/ngap/ngap.cnf" +#line 1371 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupFailure"); @@ -11288,7 +11299,7 @@ static const per_sequence_t RANConfigurationUpdate_sequence[] = { static int dissect_ngap_RANConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1425 "./asn1/ngap/ngap.cnf" +#line 1434 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdate"); @@ -11306,7 +11317,7 @@ static const per_sequence_t RANConfigurationUpdateAcknowledge_sequence[] = { static int dissect_ngap_RANConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1428 "./asn1/ngap/ngap.cnf" +#line 1437 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdateAcknowledge"); @@ -11324,7 +11335,7 @@ static const per_sequence_t RANConfigurationUpdateFailure_sequence[] = { static int dissect_ngap_RANConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1431 "./asn1/ngap/ngap.cnf" +#line 1440 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdateFailure"); @@ -11342,7 +11353,7 @@ static const per_sequence_t AMFConfigurationUpdate_sequence[] = { static int dissect_ngap_AMFConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1263 "./asn1/ngap/ngap.cnf" +#line 1272 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdate"); @@ -11360,7 +11371,7 @@ static const per_sequence_t AMFConfigurationUpdateAcknowledge_sequence[] = { static int dissect_ngap_AMFConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1266 "./asn1/ngap/ngap.cnf" +#line 1275 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdateAcknowledge"); @@ -11378,7 +11389,7 @@ static const per_sequence_t AMFConfigurationUpdateFailure_sequence[] = { static int dissect_ngap_AMFConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1269 "./asn1/ngap/ngap.cnf" +#line 1278 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdateFailure"); @@ -11396,7 +11407,7 @@ static const per_sequence_t AMFStatusIndication_sequence[] = { static int dissect_ngap_AMFStatusIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1272 "./asn1/ngap/ngap.cnf" +#line 1281 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFStatusIndication"); @@ -11414,7 +11425,7 @@ static const per_sequence_t NGReset_sequence[] = { static int dissect_ngap_NGReset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1350 "./asn1/ngap/ngap.cnf" +#line 1359 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGReset"); @@ -11432,7 +11443,7 @@ static const per_sequence_t NGResetAcknowledge_sequence[] = { static int dissect_ngap_NGResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1353 "./asn1/ngap/ngap.cnf" +#line 1362 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGResetAcknowledge"); @@ -11450,7 +11461,7 @@ static const per_sequence_t ErrorIndication_sequence[] = { static int dissect_ngap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1296 "./asn1/ngap/ngap.cnf" +#line 1305 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication"); @@ -11468,7 +11479,7 @@ static const per_sequence_t OverloadStart_sequence[] = { static int dissect_ngap_OverloadStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1365 "./asn1/ngap/ngap.cnf" +#line 1374 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); @@ -11486,7 +11497,7 @@ static const per_sequence_t OverloadStop_sequence[] = { static int dissect_ngap_OverloadStop(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1368 "./asn1/ngap/ngap.cnf" +#line 1377 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); @@ -11504,7 +11515,7 @@ static const per_sequence_t UplinkRANConfigurationTransfer_sequence[] = { static int dissect_ngap_UplinkRANConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1485 "./asn1/ngap/ngap.cnf" +#line 1494 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkRANConfigurationTransfer"); @@ -11522,7 +11533,7 @@ static const per_sequence_t DownlinkRANConfigurationTransfer_sequence[] = { static int dissect_ngap_DownlinkRANConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1287 "./asn1/ngap/ngap.cnf" +#line 1296 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkRANConfigurationTransfer"); @@ -11540,7 +11551,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_ngap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1494 "./asn1/ngap/ngap.cnf" +#line 1503 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); @@ -11558,7 +11569,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_ngap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1497 "./asn1/ngap/ngap.cnf" +#line 1506 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); @@ -11577,7 +11588,7 @@ static const per_sequence_t PWSCancelRequest_sequence[] = { static int dissect_ngap_PWSCancelRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1413 "./asn1/ngap/ngap.cnf" +#line 1422 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelRequest"); @@ -11595,7 +11606,7 @@ static const per_sequence_t PWSCancelResponse_sequence[] = { static int dissect_ngap_PWSCancelResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1416 "./asn1/ngap/ngap.cnf" +#line 1425 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelResponse"); @@ -11613,7 +11624,7 @@ static const per_sequence_t PWSRestartIndication_sequence[] = { static int dissect_ngap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1422 "./asn1/ngap/ngap.cnf" +#line 1431 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); @@ -11631,7 +11642,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = { static int dissect_ngap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1419 "./asn1/ngap/ngap.cnf" +#line 1428 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); @@ -11649,7 +11660,7 @@ static const per_sequence_t DownlinkUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_DownlinkUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1293 "./asn1/ngap/ngap.cnf" +#line 1302 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedNRPPaTransport"); @@ -11667,7 +11678,7 @@ static const per_sequence_t UplinkUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_UplinkUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1491 "./asn1/ngap/ngap.cnf" +#line 1500 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedNRPPaTransport"); @@ -11685,7 +11696,7 @@ static const per_sequence_t DownlinkNonUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_DownlinkNonUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1284 "./asn1/ngap/ngap.cnf" +#line 1293 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedNRPPaTransport"); @@ -11703,7 +11714,7 @@ static const per_sequence_t UplinkNonUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_UplinkNonUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1482 "./asn1/ngap/ngap.cnf" +#line 1491 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedNRPPaTransport"); @@ -11721,7 +11732,7 @@ static const per_sequence_t TraceStart_sequence[] = { static int dissect_ngap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1446 "./asn1/ngap/ngap.cnf" +#line 1455 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); @@ -11739,7 +11750,7 @@ static const per_sequence_t TraceFailureIndication_sequence[] = { static int dissect_ngap_TraceFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1443 "./asn1/ngap/ngap.cnf" +#line 1452 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); @@ -11757,7 +11768,7 @@ static const per_sequence_t DeactivateTrace_sequence[] = { static int dissect_ngap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1278 "./asn1/ngap/ngap.cnf" +#line 1287 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); @@ -11775,7 +11786,7 @@ static const per_sequence_t CellTrafficTrace_sequence[] = { static int dissect_ngap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1275 "./asn1/ngap/ngap.cnf" +#line 1284 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); @@ -11793,7 +11804,7 @@ static const per_sequence_t LocationReportingControl_sequence[] = { static int dissect_ngap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1341 "./asn1/ngap/ngap.cnf" +#line 1350 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); @@ -11811,7 +11822,7 @@ static const per_sequence_t LocationReportingFailureIndication_sequence[] = { static int dissect_ngap_LocationReportingFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1344 "./asn1/ngap/ngap.cnf" +#line 1353 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); @@ -11829,7 +11840,7 @@ static const per_sequence_t LocationReport_sequence[] = { static int dissect_ngap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1338 "./asn1/ngap/ngap.cnf" +#line 1347 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); @@ -11847,7 +11858,7 @@ static const per_sequence_t UETNLABindingReleaseRequest_sequence[] = { static int dissect_ngap_UETNLABindingReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1473 "./asn1/ngap/ngap.cnf" +#line 1482 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UETNLABindingReleaseRequest"); @@ -11865,7 +11876,7 @@ static const per_sequence_t UERadioCapabilityInfoIndication_sequence[] = { static int dissect_ngap_UERadioCapabilityInfoIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1476 "./asn1/ngap/ngap.cnf" +#line 1485 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityInfoIndication"); @@ -11883,7 +11894,7 @@ static const per_sequence_t UERadioCapabilityCheckRequest_sequence[] = { static int dissect_ngap_UERadioCapabilityCheckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1467 "./asn1/ngap/ngap.cnf" +#line 1476 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityCheckRequest"); @@ -11901,7 +11912,7 @@ static const per_sequence_t UERadioCapabilityCheckResponse_sequence[] = { static int dissect_ngap_UERadioCapabilityCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1470 "./asn1/ngap/ngap.cnf" +#line 1479 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityCheckResponse"); @@ -11919,7 +11930,7 @@ static const per_sequence_t PrivateMessage_sequence[] = { static int dissect_ngap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1410 "./asn1/ngap/ngap.cnf" +#line 1419 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); @@ -11937,7 +11948,7 @@ static const per_sequence_t SecondaryRATDataUsageReport_sequence[] = { static int dissect_ngap_SecondaryRATDataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1440 "./asn1/ngap/ngap.cnf" +#line 1449 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SecondaryRATDataUsageReport"); @@ -14109,7 +14120,7 @@ static int dissect_PDUSessionResourceReleaseCommandTransfer_PDU(tvbuff_t *tvb _U /*--- End of included file: packet-ngap-fn.c ---*/ -#line 330 "./asn1/ngap/packet-ngap-template.c" +#line 331 "./asn1/ngap/packet-ngap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { @@ -14580,7 +14591,7 @@ proto_reg_handoff_ngap(void) /*--- End of included file: packet-ngap-dis-tab.c ---*/ -#line 548 "./asn1/ngap/packet-ngap-template.c" +#line 549 "./asn1/ngap/packet-ngap-template.c" dissector_add_string("media_type", "application/vnd.3gpp.ngap", ngap_media_type_handle); } else { @@ -14589,6 +14600,7 @@ proto_reg_handoff_ngap(void) } } + nrppa_handle = find_dissector_add_dependency("nrppa", proto_ngap); proto_json = proto_get_id_by_filter_name("json"); SctpPort=gbl_ngapSctpPort; @@ -17624,7 +17636,7 @@ void proto_register_ngap(void) { "UnsuccessfulOutcome_value", HFILL }}, /*--- End of included file: packet-ngap-hfarr.c ---*/ -#line 695 "./asn1/ngap/packet-ngap-template.c" +#line 697 "./asn1/ngap/packet-ngap-template.c" }; /* List of subtrees */ @@ -18086,7 +18098,7 @@ void proto_register_ngap(void) { &ett_ngap_UnsuccessfulOutcome, /*--- End of included file: packet-ngap-ettarr.c ---*/ -#line 725 "./asn1/ngap/packet-ngap-template.c" +#line 727 "./asn1/ngap/packet-ngap-template.c" }; static ei_register_info ei[] = { diff --git a/epan/dissectors/packet-nrppa.c b/epan/dissectors/packet-nrppa.c new file mode 100644 index 0000000000..cbdb301b70 --- /dev/null +++ b/epan/dissectors/packet-nrppa.c @@ -0,0 +1,3652 @@ +/* Do not modify this file. Changes will be overwritten. */ +/* Generated automatically by the ASN.1 to Wireshark dissector compiler */ +/* packet-nrppa.c */ +/* asn2wrs.py -p nrppa -c ./nrppa.cnf -s ./packet-nrppa-template -D . -O ../.. NRPPA-CommonDataTypes.asn NRPPA-Constants.asn NRPPA-Containers.asn NRPPA-PDU-Descriptions.asn NRPPA-IEs.asn NRPPA-PDU-Contents.asn */ + +/* Input file: packet-nrppa-template.c */ + +#line 1 "./asn1/nrppa/packet-nrppa-template.c" +/* packet-nrppa.c + * Routines for 3GPP NR Positioning Protocol A (NRPPa) packet dissection + * Copyright 2019, Anders Broman <anders.broman@ericsson.com> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Ref 3GPP TS 38.455 V15.2.1 (2019-01-14) + * http://www.3gpp.org + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/asn1.h> + +#include "packet-per.h" + +#define PNAME "NR Positioning Protocol A (NRPPa)" +#define PSNAME "NRPPa" +#define PFNAME "nrppa" + +void proto_register_nrppa(void); +void proto_reg_handoff_nrppa(void); + +/* Initialize the protocol and registered fields */ +static int proto_nrppa = -1; + + +/*--- Included file: packet-nrppa-hf.c ---*/ +#line 1 "./asn1/nrppa/packet-nrppa-hf.c" +static int hf_nrppa_NRPPA_PDU_PDU = -1; /* NRPPA_PDU */ +static int hf_nrppa_Cause_PDU = -1; /* Cause */ +static int hf_nrppa_Cell_Portion_ID_PDU = -1; /* Cell_Portion_ID */ +static int hf_nrppa_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */ +static int hf_nrppa_E_CID_MeasurementResult_PDU = -1; /* E_CID_MeasurementResult */ +static int hf_nrppa_Measurement_ID_PDU = -1; /* Measurement_ID */ +static int hf_nrppa_MeasurementPeriodicity_PDU = -1; /* MeasurementPeriodicity */ +static int hf_nrppa_MeasurementQuantities_PDU = -1; /* MeasurementQuantities */ +static int hf_nrppa_MeasurementQuantities_Item_PDU = -1; /* MeasurementQuantities_Item */ +static int hf_nrppa_OTDOACells_PDU = -1; /* OTDOACells */ +static int hf_nrppa_OtherRATMeasurementQuantities_PDU = -1; /* OtherRATMeasurementQuantities */ +static int hf_nrppa_OtherRATMeasurementQuantities_Item_PDU = -1; /* OtherRATMeasurementQuantities_Item */ +static int hf_nrppa_OtherRATMeasurementResult_PDU = -1; /* OtherRATMeasurementResult */ +static int hf_nrppa_ReportCharacteristics_PDU = -1; /* ReportCharacteristics */ +static int hf_nrppa_TDD_Config_EUTRA_Item_PDU = -1; /* TDD_Config_EUTRA_Item */ +static int hf_nrppa_WLANMeasurementQuantities_PDU = -1; /* WLANMeasurementQuantities */ +static int hf_nrppa_WLANMeasurementQuantities_Item_PDU = -1; /* WLANMeasurementQuantities_Item */ +static int hf_nrppa_WLANMeasurementResult_PDU = -1; /* WLANMeasurementResult */ +static int hf_nrppa_E_CIDMeasurementInitiationRequest_PDU = -1; /* E_CIDMeasurementInitiationRequest */ +static int hf_nrppa_E_CIDMeasurementInitiationResponse_PDU = -1; /* E_CIDMeasurementInitiationResponse */ +static int hf_nrppa_E_CIDMeasurementInitiationFailure_PDU = -1; /* E_CIDMeasurementInitiationFailure */ +static int hf_nrppa_E_CIDMeasurementFailureIndication_PDU = -1; /* E_CIDMeasurementFailureIndication */ +static int hf_nrppa_E_CIDMeasurementReport_PDU = -1; /* E_CIDMeasurementReport */ +static int hf_nrppa_E_CIDMeasurementTerminationCommand_PDU = -1; /* E_CIDMeasurementTerminationCommand */ +static int hf_nrppa_OTDOAInformationRequest_PDU = -1; /* OTDOAInformationRequest */ +static int hf_nrppa_OTDOA_Information_Type_PDU = -1; /* OTDOA_Information_Type */ +static int hf_nrppa_OTDOA_Information_Type_Item_PDU = -1; /* OTDOA_Information_Type_Item */ +static int hf_nrppa_OTDOAInformationResponse_PDU = -1; /* OTDOAInformationResponse */ +static int hf_nrppa_OTDOAInformationFailure_PDU = -1; /* OTDOAInformationFailure */ +static int hf_nrppa_ErrorIndication_PDU = -1; /* ErrorIndication */ +static int hf_nrppa_PrivateMessage_PDU = -1; /* PrivateMessage */ +static int hf_nrppa_local = -1; /* INTEGER_0_maxPrivateIEs */ +static int hf_nrppa_global = -1; /* OBJECT_IDENTIFIER */ +static int hf_nrppa_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */ +static int hf_nrppa_id = -1; /* ProtocolIE_ID */ +static int hf_nrppa_criticality = -1; /* Criticality */ +static int hf_nrppa_ie_field_value = -1; /* T_ie_field_value */ +static int hf_nrppa_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */ +static int hf_nrppa_extensionValue = -1; /* T_extensionValue */ +static int hf_nrppa_PrivateIE_Container_item = -1; /* PrivateIE_Field */ +static int hf_nrppa_id_01 = -1; /* PrivateIE_ID */ +static int hf_nrppa_value = -1; /* T_value */ +static int hf_nrppa_initiatingMessage = -1; /* InitiatingMessage */ +static int hf_nrppa_successfulOutcome = -1; /* SuccessfulOutcome */ +static int hf_nrppa_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */ +static int hf_nrppa_procedureCode = -1; /* ProcedureCode */ +static int hf_nrppa_nrppatransactionID = -1; /* NRPPATransactionID */ +static int hf_nrppa_initiatingMessagevalue = -1; /* InitiatingMessage_value */ +static int hf_nrppa_successfulOutcome_value = -1; /* SuccessfulOutcome_value */ +static int hf_nrppa_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */ +static int hf_nrppa_radioNetwork = -1; /* CauseRadioNetwork */ +static int hf_nrppa_protocol = -1; /* CauseProtocol */ +static int hf_nrppa_misc = -1; /* CauseMisc */ +static int hf_nrppa_cause_Extension = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_pLMN_Identity = -1; /* PLMN_Identity */ +static int hf_nrppa_eUTRAcellIdentifier = -1; /* EUTRACellIdentifier */ +static int hf_nrppa_iE_Extensions = -1; /* ProtocolExtensionContainer */ +static int hf_nrppa_triggeringMessage = -1; /* TriggeringMessage */ +static int hf_nrppa_procedureCriticality = -1; /* Criticality */ +static int hf_nrppa_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */ +static int hf_nrppa_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_List_item */ +static int hf_nrppa_iECriticality = -1; /* Criticality */ +static int hf_nrppa_iE_ID = -1; /* ProtocolIE_ID */ +static int hf_nrppa_typeOfError = -1; /* TypeOfError */ +static int hf_nrppa_servingCell_ID = -1; /* NG_RAN_CGI */ +static int hf_nrppa_servingCellTAC = -1; /* TAC */ +static int hf_nrppa_nG_RANAccessPointPosition = -1; /* NG_RANAccessPointPosition */ +static int hf_nrppa_measuredResults = -1; /* MeasuredResults */ +static int hf_nrppa_MeasurementQuantities_item = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_measurementQuantitiesValue = -1; /* MeasurementQuantitiesValue */ +static int hf_nrppa_MeasuredResults_item = -1; /* MeasuredResultsValue */ +static int hf_nrppa_valueAngleOfArrival_EUTRA = -1; /* INTEGER_0_719 */ +static int hf_nrppa_valueTimingAdvanceType1_EUTRA = -1; /* INTEGER_0_7690 */ +static int hf_nrppa_valueTimingAdvanceType2_EUTRA = -1; /* INTEGER_0_7690 */ +static int hf_nrppa_resultRSRP_EUTRA = -1; /* ResultRSRP_EUTRA */ +static int hf_nrppa_resultRSRQ_EUTRA = -1; /* ResultRSRQ_EUTRA */ +static int hf_nrppa_measuredResultsValue_Extension = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_latitudeSign = -1; /* T_latitudeSign */ +static int hf_nrppa_latitude = -1; /* INTEGER_0_8388607 */ +static int hf_nrppa_longitude = -1; /* INTEGER_M8388608_8388607 */ +static int hf_nrppa_directionOfAltitude = -1; /* T_directionOfAltitude */ +static int hf_nrppa_altitude = -1; /* INTEGER_0_32767 */ +static int hf_nrppa_uncertaintySemi_major = -1; /* INTEGER_0_127 */ +static int hf_nrppa_uncertaintySemi_minor = -1; /* INTEGER_0_127 */ +static int hf_nrppa_orientationOfMajorAxis = -1; /* INTEGER_0_179 */ +static int hf_nrppa_uncertaintyAltitude = -1; /* INTEGER_0_127 */ +static int hf_nrppa_confidence = -1; /* INTEGER_0_100 */ +static int hf_nrppa_nG_RANcell = -1; /* NG_RANCell */ +static int hf_nrppa_eUTRA_CellID = -1; /* EUTRACellIdentifier */ +static int hf_nrppa_nR_CellID = -1; /* NRCellIdentifier */ +static int hf_nrppa_nG_RANCell_Extension = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_OTDOACells_item = -1; /* OTDOACells_item */ +static int hf_nrppa_oTDOACellInfo = -1; /* OTDOACell_Information */ +static int hf_nrppa_OTDOACell_Information_item = -1; /* OTDOACell_Information_Item */ +static int hf_nrppa_pCI_EUTRA = -1; /* PCI_EUTRA */ +static int hf_nrppa_cGI_EUTRA = -1; /* CGI_EUTRA */ +static int hf_nrppa_tAC = -1; /* TAC */ +static int hf_nrppa_eARFCN = -1; /* EARFCN */ +static int hf_nrppa_pRS_Bandwidth_EUTRA = -1; /* PRS_Bandwidth_EUTRA */ +static int hf_nrppa_pRS_ConfigurationIndex_EUTRA = -1; /* PRS_ConfigurationIndex_EUTRA */ +static int hf_nrppa_cPLength_EUTRA = -1; /* CPLength_EUTRA */ +static int hf_nrppa_numberOfDlFrames_EUTRA = -1; /* NumberOfDlFrames_EUTRA */ +static int hf_nrppa_numberOfAntennaPorts_EUTRA = -1; /* NumberOfAntennaPorts_EUTRA */ +static int hf_nrppa_sFNInitialisationTime_EUTRA = -1; /* SFNInitialisationTime_EUTRA */ +static int hf_nrppa_pRSMutingConfiguration_EUTRA = -1; /* PRSMutingConfiguration_EUTRA */ +static int hf_nrppa_prsid_EUTRA = -1; /* PRS_ID_EUTRA */ +static int hf_nrppa_tpid_EUTRA = -1; /* TP_ID_EUTRA */ +static int hf_nrppa_tpType_EUTRA = -1; /* TP_Type_EUTRA */ +static int hf_nrppa_numberOfDlFrames_Extended_EUTRA = -1; /* NumberOfDlFrames_Extended_EUTRA */ +static int hf_nrppa_crsCPlength_EUTRA = -1; /* CPLength_EUTRA */ +static int hf_nrppa_dL_Bandwidth_EUTRA = -1; /* DL_Bandwidth_EUTRA */ +static int hf_nrppa_pRSOccasionGroup_EUTRA = -1; /* PRSOccasionGroup_EUTRA */ +static int hf_nrppa_pRSFrequencyHoppingConfiguration_EUTRA = -1; /* PRSFrequencyHoppingConfiguration_EUTRA */ +static int hf_nrppa_oTDOACell_Information_Item_Extension = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_OtherRATMeasurementQuantities_item = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_otherRATMeasurementQuantitiesValue = -1; /* OtherRATMeasurementQuantitiesValue */ +static int hf_nrppa_OtherRATMeasurementResult_item = -1; /* OtherRATMeasuredResultsValue */ +static int hf_nrppa_resultGERAN = -1; /* ResultGERAN */ +static int hf_nrppa_resultUTRAN = -1; /* ResultUTRAN */ +static int hf_nrppa_otherRATMeasuredResultsValue_Extension = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_two = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nrppa_four = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nrppa_eight = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nrppa_sixteen = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nrppa_thirty_two = -1; /* BIT_STRING_SIZE_32 */ +static int hf_nrppa_sixty_four = -1; /* BIT_STRING_SIZE_64 */ +static int hf_nrppa_one_hundred_and_twenty_eight = -1; /* BIT_STRING_SIZE_128 */ +static int hf_nrppa_two_hundred_and_fifty_six = -1; /* BIT_STRING_SIZE_256 */ +static int hf_nrppa_five_hundred_and_twelve = -1; /* BIT_STRING_SIZE_512 */ +static int hf_nrppa_one_thousand_and_twenty_four = -1; /* BIT_STRING_SIZE_1024 */ +static int hf_nrppa_pRSMutingConfiguration_EUTRA_Extension = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_noOfFreqHoppingBands = -1; /* NumberOfFrequencyHoppingBands */ +static int hf_nrppa_bandPositions = -1; /* SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex */ +static int hf_nrppa_bandPositions_item = -1; /* NarrowBandIndex */ +static int hf_nrppa_ResultRSRP_EUTRA_item = -1; /* ResultRSRP_EUTRA_Item */ +static int hf_nrppa_valueRSRP_EUTRA = -1; /* ValueRSRP_EUTRA */ +static int hf_nrppa_ResultRSRQ_EUTRA_item = -1; /* ResultRSRQ_EUTRA_Item */ +static int hf_nrppa_cGI_UTRA = -1; /* CGI_EUTRA */ +static int hf_nrppa_valueRSRQ_EUTRA = -1; /* ValueRSRQ_EUTRA */ +static int hf_nrppa_ResultGERAN_item = -1; /* ResultGERAN_Item */ +static int hf_nrppa_bCCH = -1; /* BCCH */ +static int hf_nrppa_physCellIDGERAN = -1; /* PhysCellIDGERAN */ +static int hf_nrppa_rSSI = -1; /* RSSI */ +static int hf_nrppa_ResultUTRAN_item = -1; /* ResultUTRAN_Item */ +static int hf_nrppa_uARFCN = -1; /* UARFCN */ +static int hf_nrppa_physCellIDUTRAN = -1; /* T_physCellIDUTRAN */ +static int hf_nrppa_physCellIDUTRA_FDD = -1; /* PhysCellIDUTRA_FDD */ +static int hf_nrppa_physCellIDUTRA_TDD = -1; /* PhysCellIDUTRA_TDD */ +static int hf_nrppa_uTRA_RSCP = -1; /* UTRA_RSCP */ +static int hf_nrppa_uTRA_EcN0 = -1; /* UTRA_EcN0 */ +static int hf_nrppa_subframeAssignment = -1; /* T_subframeAssignment */ +static int hf_nrppa_WLANMeasurementQuantities_item = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_wLANMeasurementQuantitiesValue = -1; /* WLANMeasurementQuantitiesValue */ +static int hf_nrppa_WLANMeasurementResult_item = -1; /* WLANMeasurementResult_Item */ +static int hf_nrppa_wLAN_RSSI = -1; /* WLAN_RSSI */ +static int hf_nrppa_sSID = -1; /* SSID */ +static int hf_nrppa_bSSID = -1; /* BSSID */ +static int hf_nrppa_hESSID = -1; /* HESSID */ +static int hf_nrppa_operatingClass = -1; /* WLANOperatingClass */ +static int hf_nrppa_countryCode = -1; /* WLANCountryCode */ +static int hf_nrppa_wLANChannelList = -1; /* WLANChannelList */ +static int hf_nrppa_wLANBand = -1; /* WLANBand */ +static int hf_nrppa_WLANChannelList_item = -1; /* WLANChannel */ +static int hf_nrppa_protocolIEs = -1; /* ProtocolIE_Container */ +static int hf_nrppa_OTDOA_Information_Type_item = -1; /* ProtocolIE_Single_Container */ +static int hf_nrppa_oTDOA_Information_Type_Item = -1; /* OTDOA_Information_Item */ +static int hf_nrppa_privateIEs = -1; /* PrivateIE_Container */ + +/*--- End of included file: packet-nrppa-hf.c ---*/ +#line 33 "./asn1/nrppa/packet-nrppa-template.c" + +/* Initialize the subtree pointers */ +static gint ett_nrppa = -1; + +/*--- Included file: packet-nrppa-ett.c ---*/ +#line 1 "./asn1/nrppa/packet-nrppa-ett.c" +static gint ett_nrppa_PrivateIE_ID = -1; +static gint ett_nrppa_ProtocolIE_Container = -1; +static gint ett_nrppa_ProtocolIE_Field = -1; +static gint ett_nrppa_ProtocolExtensionContainer = -1; +static gint ett_nrppa_ProtocolExtensionField = -1; +static gint ett_nrppa_PrivateIE_Container = -1; +static gint ett_nrppa_PrivateIE_Field = -1; +static gint ett_nrppa_NRPPA_PDU = -1; +static gint ett_nrppa_InitiatingMessage = -1; +static gint ett_nrppa_SuccessfulOutcome = -1; +static gint ett_nrppa_UnsuccessfulOutcome = -1; +static gint ett_nrppa_Cause = -1; +static gint ett_nrppa_CGI_EUTRA = -1; +static gint ett_nrppa_CriticalityDiagnostics = -1; +static gint ett_nrppa_CriticalityDiagnostics_IE_List = -1; +static gint ett_nrppa_CriticalityDiagnostics_IE_List_item = -1; +static gint ett_nrppa_E_CID_MeasurementResult = -1; +static gint ett_nrppa_MeasurementQuantities = -1; +static gint ett_nrppa_MeasurementQuantities_Item = -1; +static gint ett_nrppa_MeasuredResults = -1; +static gint ett_nrppa_MeasuredResultsValue = -1; +static gint ett_nrppa_NG_RANAccessPointPosition = -1; +static gint ett_nrppa_NG_RAN_CGI = -1; +static gint ett_nrppa_NG_RANCell = -1; +static gint ett_nrppa_OTDOACells = -1; +static gint ett_nrppa_OTDOACells_item = -1; +static gint ett_nrppa_OTDOACell_Information = -1; +static gint ett_nrppa_OTDOACell_Information_Item = -1; +static gint ett_nrppa_OtherRATMeasurementQuantities = -1; +static gint ett_nrppa_OtherRATMeasurementQuantities_Item = -1; +static gint ett_nrppa_OtherRATMeasurementResult = -1; +static gint ett_nrppa_OtherRATMeasuredResultsValue = -1; +static gint ett_nrppa_PRSMutingConfiguration_EUTRA = -1; +static gint ett_nrppa_PRSFrequencyHoppingConfiguration_EUTRA = -1; +static gint ett_nrppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex = -1; +static gint ett_nrppa_ResultRSRP_EUTRA = -1; +static gint ett_nrppa_ResultRSRP_EUTRA_Item = -1; +static gint ett_nrppa_ResultRSRQ_EUTRA = -1; +static gint ett_nrppa_ResultRSRQ_EUTRA_Item = -1; +static gint ett_nrppa_ResultGERAN = -1; +static gint ett_nrppa_ResultGERAN_Item = -1; +static gint ett_nrppa_ResultUTRAN = -1; +static gint ett_nrppa_ResultUTRAN_Item = -1; +static gint ett_nrppa_T_physCellIDUTRAN = -1; +static gint ett_nrppa_TDD_Config_EUTRA_Item = -1; +static gint ett_nrppa_WLANMeasurementQuantities = -1; +static gint ett_nrppa_WLANMeasurementQuantities_Item = -1; +static gint ett_nrppa_WLANMeasurementResult = -1; +static gint ett_nrppa_WLANMeasurementResult_Item = -1; +static gint ett_nrppa_WLANChannelList = -1; +static gint ett_nrppa_E_CIDMeasurementInitiationRequest = -1; +static gint ett_nrppa_E_CIDMeasurementInitiationResponse = -1; +static gint ett_nrppa_E_CIDMeasurementInitiationFailure = -1; +static gint ett_nrppa_E_CIDMeasurementFailureIndication = -1; +static gint ett_nrppa_E_CIDMeasurementReport = -1; +static gint ett_nrppa_E_CIDMeasurementTerminationCommand = -1; +static gint ett_nrppa_OTDOAInformationRequest = -1; +static gint ett_nrppa_OTDOA_Information_Type = -1; +static gint ett_nrppa_OTDOA_Information_Type_Item = -1; +static gint ett_nrppa_OTDOAInformationResponse = -1; +static gint ett_nrppa_OTDOAInformationFailure = -1; +static gint ett_nrppa_ErrorIndication = -1; +static gint ett_nrppa_PrivateMessage = -1; + +/*--- End of included file: packet-nrppa-ett.c ---*/ +#line 37 "./asn1/nrppa/packet-nrppa-template.c" + +/* Global variables */ +static guint32 ProcedureCode; +static guint32 ProtocolIE_ID; + +/* Dissector tables */ +static dissector_table_t nrppa_ies_dissector_table; +static dissector_table_t nrppa_proc_imsg_dissector_table; +static dissector_table_t nrppa_proc_sout_dissector_table; +static dissector_table_t nrppa_proc_uout_dissector_table; + +/* Include constants */ + +/*--- Included file: packet-nrppa-val.h ---*/ +#line 1 "./asn1/nrppa/packet-nrppa-val.h" +#define maxPrivateIEs 65535 +#define maxProtocolExtensions 65535 +#define maxProtocolIEs 65535 +#define maxNrOfErrors 256 +#define maxCellinRANnode 3840 +#define maxNoMeas 63 +#define maxCellReport 9 +#define maxnoOTDOAtypes 63 +#define maxServCell 5 +#define maxGERANMeas 8 +#define maxUTRANMeas 8 +#define maxWLANchannels 16 +#define maxnoFreqHoppingBandsMinusOne 7 + +typedef enum _ProcedureCode_enum { + id_errorIndication = 0, + id_privateMessage = 1, + id_e_CIDMeasurementInitiation = 2, + id_e_CIDMeasurementFailureIndication = 3, + id_e_CIDMeasurementReport = 4, + id_e_CIDMeasurementTermination = 5, + id_oTDOAInformationExchange = 6 +} ProcedureCode_enum; + +typedef enum _ProtocolIE_ID_enum { + id_Cause = 0, + id_CriticalityDiagnostics = 1, + id_LMF_UE_Measurement_ID = 2, + id_ReportCharacteristics = 3, + id_MeasurementPeriodicity = 4, + id_MeasurementQuantities = 5, + id_RAN_UE_Measurement_ID = 6, + id_E_CID_MeasurementResult = 7, + id_OTDOACells = 8, + id_OTDOA_Information_Type_Group = 9, + id_OTDOA_Information_Type_Item = 10, + id_MeasurementQuantities_Item = 11, + id_RequestedSRSTransmissionCharacteristics = 12, + id_Cell_Portion_ID = 14, + id_OtherRATMeasurementQuantities = 15, + id_OtherRATMeasurementQuantities_Item = 16, + id_OtherRATMeasurementResult = 17, + id_WLANMeasurementQuantities = 19, + id_WLANMeasurementQuantities_Item = 20, + id_WLANMeasurementResult = 21, + id_TDD_Config_EUTRA_Item = 22 +} ProtocolIE_ID_enum; + +/*--- End of included file: packet-nrppa-val.h ---*/ +#line 50 "./asn1/nrppa/packet-nrppa-template.c" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +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 *); + + +/*--- Included file: packet-nrppa-fn.c ---*/ +#line 1 "./asn1/nrppa/packet-nrppa-fn.c" + +static const value_string nrppa_Criticality_vals[] = { + { 0, "reject" }, + { 1, "ignore" }, + { 2, "notify" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_Criticality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_NRPPATransactionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 32767U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_maxPrivateIEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxPrivateIEs, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const value_string nrppa_PrivateIE_ID_vals[] = { + { 0, "local" }, + { 1, "global" }, + { 0, NULL } +}; + +static const per_choice_t PrivateIE_ID_choice[] = { + { 0, &hf_nrppa_local , ASN1_NO_EXTENSIONS , dissect_nrppa_INTEGER_0_maxPrivateIEs }, + { 1, &hf_nrppa_global , ASN1_NO_EXTENSIONS , dissect_nrppa_OBJECT_IDENTIFIER }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_PrivateIE_ID, PrivateIE_ID_choice, + NULL); + + return offset; +} + + +static const value_string nrppa_ProcedureCode_vals[] = { + { id_errorIndication, "id-errorIndication" }, + { id_privateMessage, "id-privateMessage" }, + { id_e_CIDMeasurementInitiation, "id-e-CIDMeasurementInitiation" }, + { id_e_CIDMeasurementFailureIndication, "id-e-CIDMeasurementFailureIndication" }, + { id_e_CIDMeasurementReport, "id-e-CIDMeasurementReport" }, + { id_e_CIDMeasurementTermination, "id-e-CIDMeasurementTermination" }, + { id_oTDOAInformationExchange, "id-oTDOAInformationExchange" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, &ProcedureCode, FALSE); + +#line 44 "./asn1/nrppa/nrppa.cnf" + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", + val_to_str(ProcedureCode, nrppa_ProcedureCode_vals, + "unknown message")); + + return offset; +} + + +static const value_string nrppa_ProtocolIE_ID_vals[] = { + { id_Cause, "id-Cause" }, + { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" }, + { id_LMF_UE_Measurement_ID, "id-LMF-UE-Measurement-ID" }, + { id_ReportCharacteristics, "id-ReportCharacteristics" }, + { id_MeasurementPeriodicity, "id-MeasurementPeriodicity" }, + { id_MeasurementQuantities, "id-MeasurementQuantities" }, + { id_RAN_UE_Measurement_ID, "id-RAN-UE-Measurement-ID" }, + { id_E_CID_MeasurementResult, "id-E-CID-MeasurementResult" }, + { id_OTDOACells, "id-OTDOACells" }, + { id_OTDOA_Information_Type_Group, "id-OTDOA-Information-Type-Group" }, + { id_OTDOA_Information_Type_Item, "id-OTDOA-Information-Type-Item" }, + { id_MeasurementQuantities_Item, "id-MeasurementQuantities-Item" }, + { id_RequestedSRSTransmissionCharacteristics, "id-RequestedSRSTransmissionCharacteristics" }, + { id_Cell_Portion_ID, "id-Cell-Portion-ID" }, + { id_OtherRATMeasurementQuantities, "id-OtherRATMeasurementQuantities" }, + { id_OtherRATMeasurementQuantities_Item, "id-OtherRATMeasurementQuantities-Item" }, + { id_OtherRATMeasurementResult, "id-OtherRATMeasurementResult" }, + { id_WLANMeasurementQuantities, "id-WLANMeasurementQuantities" }, + { id_WLANMeasurementQuantities_Item, "id-WLANMeasurementQuantities-Item" }, + { id_WLANMeasurementResult, "id-WLANMeasurementResult" }, + { id_TDD_Config_EUTRA_Item, "id-TDD-Config-EUTRA-Item" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxProtocolIEs, &ProtocolIE_ID, FALSE); + +#line 37 "./asn1/nrppa/nrppa.cnf" + 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)")); + } + + return offset; +} + + +static const value_string nrppa_TriggeringMessage_vals[] = { + { 0, "initiating-message" }, + { 1, "successful-outcome" }, + { 2, "unsuccessful-outcome" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_TriggeringMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_T_ie_field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue); + + return offset; +} + + +static const per_sequence_t ProtocolIE_Field_sequence[] = { + { &hf_nrppa_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_ID }, + { &hf_nrppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_Criticality }, + { &hf_nrppa_ie_field_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_T_ie_field_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_ProtocolIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_ProtocolIE_Field, ProtocolIE_Field_sequence); + + return offset; +} + + +static const per_sequence_t ProtocolIE_Container_sequence_of[1] = { + { &hf_nrppa_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Field }, +}; + +static int +dissect_nrppa_ProtocolIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_ProtocolIE_Container, ProtocolIE_Container_sequence_of, + 0, maxProtocolIEs, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_ProtocolIE_Single_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nrppa_ProtocolIE_Field(tvb, offset, actx, tree, hf_index); + + return offset; +} + + + +static int +dissect_nrppa_T_extensionValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const per_sequence_t ProtocolExtensionField_sequence[] = { + { &hf_nrppa_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_ID }, + { &hf_nrppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_Criticality }, + { &hf_nrppa_extensionValue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_T_extensionValue }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_ProtocolExtensionField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_ProtocolExtensionField, ProtocolExtensionField_sequence); + + return offset; +} + + +static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = { + { &hf_nrppa_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolExtensionField }, +}; + +static int +dissect_nrppa_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of, + 1, maxProtocolExtensions, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const per_sequence_t PrivateIE_Field_sequence[] = { + { &hf_nrppa_id_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_PrivateIE_ID }, + { &hf_nrppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_Criticality }, + { &hf_nrppa_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_T_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_PrivateIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_PrivateIE_Field, PrivateIE_Field_sequence); + + return offset; +} + + +static const per_sequence_t PrivateIE_Container_sequence_of[1] = { + { &hf_nrppa_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_PrivateIE_Field }, +}; + +static int +dissect_nrppa_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_PrivateIE_Container, PrivateIE_Container_sequence_of, + 1, maxPrivateIEs, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue); + + return offset; +} + + +static const per_sequence_t InitiatingMessage_sequence[] = { + { &hf_nrppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProcedureCode }, + { &hf_nrppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_Criticality }, + { &hf_nrppa_nrppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_NRPPATransactionID }, + { &hf_nrppa_initiatingMessagevalue, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_InitiatingMessage_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_InitiatingMessage, InitiatingMessage_sequence); + + return offset; +} + + + +static int +dissect_nrppa_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue); + + return offset; +} + + +static const per_sequence_t SuccessfulOutcome_sequence[] = { + { &hf_nrppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProcedureCode }, + { &hf_nrppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_Criticality }, + { &hf_nrppa_nrppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_NRPPATransactionID }, + { &hf_nrppa_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_SuccessfulOutcome_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_SuccessfulOutcome, SuccessfulOutcome_sequence); + + return offset; +} + + + +static int +dissect_nrppa_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue); + + return offset; +} + + +static const per_sequence_t UnsuccessfulOutcome_sequence[] = { + { &hf_nrppa_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProcedureCode }, + { &hf_nrppa_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_Criticality }, + { &hf_nrppa_nrppatransactionID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_NRPPATransactionID }, + { &hf_nrppa_unsuccessfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_UnsuccessfulOutcome_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_UnsuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence); + + return offset; +} + + +static const value_string nrppa_NRPPA_PDU_vals[] = { + { 0, "initiatingMessage" }, + { 1, "successfulOutcome" }, + { 2, "unsuccessfulOutcome" }, + { 0, NULL } +}; + +static const per_choice_t NRPPA_PDU_choice[] = { + { 0, &hf_nrppa_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_nrppa_InitiatingMessage }, + { 1, &hf_nrppa_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_nrppa_SuccessfulOutcome }, + { 2, &hf_nrppa_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_nrppa_UnsuccessfulOutcome }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_NRPPA_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 58 "./asn1/nrppa/nrppa.cnf" + + proto_tree_add_item(tree, proto_nrppa, tvb, 0, -1, ENC_NA); + + col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "NRPPa"); + + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_NRPPA_PDU, NRPPA_PDU_choice, + NULL); + + return offset; +} + + + +static int +dissect_nrppa_BCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1023U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_BSSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 6, 6, FALSE, NULL); + + return offset; +} + + +static const value_string nrppa_CauseRadioNetwork_vals[] = { + { 0, "unspecified" }, + { 1, "requested-item-not-supported" }, + { 2, "requested-item-temporarily-not-available" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nrppa_CauseProtocol_vals[] = { + { 0, "transfer-syntax-error" }, + { 1, "abstract-syntax-error-reject" }, + { 2, "abstract-syntax-error-ignore-and-notify" }, + { 3, "message-not-compatible-with-receiver-state" }, + { 4, "semantic-error" }, + { 5, "unspecified" }, + { 6, "abstract-syntax-error-falsely-constructed-message" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 7, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nrppa_CauseMisc_vals[] = { + { 0, "unspecified" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nrppa_Cause_vals[] = { + { 0, "radioNetwork" }, + { 1, "protocol" }, + { 2, "misc" }, + { 3, "cause-Extension" }, + { 0, NULL } +}; + +static const per_choice_t Cause_choice[] = { + { 0, &hf_nrppa_radioNetwork , ASN1_NO_EXTENSIONS , dissect_nrppa_CauseRadioNetwork }, + { 1, &hf_nrppa_protocol , ASN1_NO_EXTENSIONS , dissect_nrppa_CauseProtocol }, + { 2, &hf_nrppa_misc , ASN1_NO_EXTENSIONS , dissect_nrppa_CauseMisc }, + { 3, &hf_nrppa_cause_Extension, ASN1_NO_EXTENSIONS , dissect_nrppa_ProtocolIE_Single_Container }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_Cause, Cause_choice, + NULL); + + return offset; +} + + + +static int +dissect_nrppa_Cell_Portion_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4095U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 3, 3, FALSE, NULL); + + return offset; +} + + + +static int +dissect_nrppa_EUTRACellIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 28, 28, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t CGI_EUTRA_sequence[] = { + { &hf_nrppa_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_PLMN_Identity }, + { &hf_nrppa_eUTRAcellIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_EUTRACellIdentifier }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_CGI_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_CGI_EUTRA, CGI_EUTRA_sequence); + + return offset; +} + + +static const value_string nrppa_CPLength_EUTRA_vals[] = { + { 0, "normal" }, + { 1, "extended" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_CPLength_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nrppa_TypeOfError_vals[] = { + { 0, "not-understood" }, + { 1, "missing" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = { + { &hf_nrppa_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_Criticality }, + { &hf_nrppa_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_ID }, + { &hf_nrppa_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_TypeOfError }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence); + + return offset; +} + + +static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = { + { &hf_nrppa_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_CriticalityDiagnostics_IE_List_item }, +}; + +static int +dissect_nrppa_CriticalityDiagnostics_IE_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of, + 1, maxNrOfErrors, FALSE); + + return offset; +} + + +static const per_sequence_t CriticalityDiagnostics_sequence[] = { + { &hf_nrppa_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProcedureCode }, + { &hf_nrppa_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_TriggeringMessage }, + { &hf_nrppa_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_Criticality }, + { &hf_nrppa_nrppatransactionID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_NRPPATransactionID }, + { &hf_nrppa_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_CriticalityDiagnostics_IE_List }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_CriticalityDiagnostics, CriticalityDiagnostics_sequence); + + return offset; +} + + +static const value_string nrppa_DL_Bandwidth_EUTRA_vals[] = { + { 0, "bw6" }, + { 1, "bw15" }, + { 2, "bw25" }, + { 3, "bw50" }, + { 4, "bw75" }, + { 5, "bw100" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_DL_Bandwidth_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_NRCellIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 36, 36, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const value_string nrppa_NG_RANCell_vals[] = { + { 0, "eUTRA-CellID" }, + { 1, "nR-CellID" }, + { 2, "nG-RANCell-Extension" }, + { 0, NULL } +}; + +static const per_choice_t NG_RANCell_choice[] = { + { 0, &hf_nrppa_eUTRA_CellID , ASN1_NO_EXTENSIONS , dissect_nrppa_EUTRACellIdentifier }, + { 1, &hf_nrppa_nR_CellID , ASN1_NO_EXTENSIONS , dissect_nrppa_NRCellIdentifier }, + { 2, &hf_nrppa_nG_RANCell_Extension, ASN1_NO_EXTENSIONS , dissect_nrppa_ProtocolIE_Single_Container }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_NG_RANCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_NG_RANCell, NG_RANCell_choice, + NULL); + + return offset; +} + + +static const per_sequence_t NG_RAN_CGI_sequence[] = { + { &hf_nrppa_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_PLMN_Identity }, + { &hf_nrppa_nG_RANcell , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_NG_RANCell }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_NG_RAN_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_NG_RAN_CGI, NG_RAN_CGI_sequence); + + return offset; +} + + + +static int +dissect_nrppa_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 3, 3, FALSE, NULL); + + return offset; +} + + +static const value_string nrppa_T_latitudeSign_vals[] = { + { 0, "north" }, + { 1, "south" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 8388607U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_M8388608_8388607(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -8388608, 8388607U, NULL, FALSE); + + return offset; +} + + +static const value_string nrppa_T_directionOfAltitude_vals[] = { + { 0, "height" }, + { 1, "depth" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_T_directionOfAltitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 32767U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 127U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_179(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 179U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_100(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 100U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t NG_RANAccessPointPosition_sequence[] = { + { &hf_nrppa_latitudeSign , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_T_latitudeSign }, + { &hf_nrppa_latitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_0_8388607 }, + { &hf_nrppa_longitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_M8388608_8388607 }, + { &hf_nrppa_directionOfAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_T_directionOfAltitude }, + { &hf_nrppa_altitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_0_32767 }, + { &hf_nrppa_uncertaintySemi_major, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_0_127 }, + { &hf_nrppa_uncertaintySemi_minor, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_0_127 }, + { &hf_nrppa_orientationOfMajorAxis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_0_179 }, + { &hf_nrppa_uncertaintyAltitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_0_127 }, + { &hf_nrppa_confidence , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_INTEGER_0_100 }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_NG_RANAccessPointPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_NG_RANAccessPointPosition, NG_RANAccessPointPosition_sequence); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_719(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 719U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_INTEGER_0_7690(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 7690U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_PCI_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 503U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_EARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 262143U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_ValueRSRP_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 97U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t ResultRSRP_EUTRA_Item_sequence[] = { + { &hf_nrppa_pCI_EUTRA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_PCI_EUTRA }, + { &hf_nrppa_eARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_EARFCN }, + { &hf_nrppa_cGI_EUTRA , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_CGI_EUTRA }, + { &hf_nrppa_valueRSRP_EUTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ValueRSRP_EUTRA }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_ResultRSRP_EUTRA_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultRSRP_EUTRA_Item, ResultRSRP_EUTRA_Item_sequence); + + return offset; +} + + +static const per_sequence_t ResultRSRP_EUTRA_sequence_of[1] = { + { &hf_nrppa_ResultRSRP_EUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ResultRSRP_EUTRA_Item }, +}; + +static int +dissect_nrppa_ResultRSRP_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultRSRP_EUTRA, ResultRSRP_EUTRA_sequence_of, + 1, maxCellReport, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_ValueRSRQ_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 34U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t ResultRSRQ_EUTRA_Item_sequence[] = { + { &hf_nrppa_pCI_EUTRA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_PCI_EUTRA }, + { &hf_nrppa_eARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_EARFCN }, + { &hf_nrppa_cGI_UTRA , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_CGI_EUTRA }, + { &hf_nrppa_valueRSRQ_EUTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ValueRSRQ_EUTRA }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_ResultRSRQ_EUTRA_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultRSRQ_EUTRA_Item, ResultRSRQ_EUTRA_Item_sequence); + + return offset; +} + + +static const per_sequence_t ResultRSRQ_EUTRA_sequence_of[1] = { + { &hf_nrppa_ResultRSRQ_EUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ResultRSRQ_EUTRA_Item }, +}; + +static int +dissect_nrppa_ResultRSRQ_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultRSRQ_EUTRA, ResultRSRQ_EUTRA_sequence_of, + 1, maxCellReport, FALSE); + + return offset; +} + + +static const value_string nrppa_MeasuredResultsValue_vals[] = { + { 0, "valueAngleOfArrival-EUTRA" }, + { 1, "valueTimingAdvanceType1-EUTRA" }, + { 2, "valueTimingAdvanceType2-EUTRA" }, + { 3, "resultRSRP-EUTRA" }, + { 4, "resultRSRQ-EUTRA" }, + { 5, "measuredResultsValue-Extension" }, + { 0, NULL } +}; + +static const per_choice_t MeasuredResultsValue_choice[] = { + { 0, &hf_nrppa_valueAngleOfArrival_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_INTEGER_0_719 }, + { 1, &hf_nrppa_valueTimingAdvanceType1_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_INTEGER_0_7690 }, + { 2, &hf_nrppa_valueTimingAdvanceType2_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_INTEGER_0_7690 }, + { 3, &hf_nrppa_resultRSRP_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_ResultRSRP_EUTRA }, + { 4, &hf_nrppa_resultRSRQ_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_ResultRSRQ_EUTRA }, + { 5, &hf_nrppa_measuredResultsValue_Extension, ASN1_NO_EXTENSIONS , dissect_nrppa_ProtocolIE_Single_Container }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_MeasuredResultsValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_MeasuredResultsValue, MeasuredResultsValue_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasuredResults_sequence_of[1] = { + { &hf_nrppa_MeasuredResults_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_MeasuredResultsValue }, +}; + +static int +dissect_nrppa_MeasuredResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_MeasuredResults, MeasuredResults_sequence_of, + 1, maxNoMeas, FALSE); + + return offset; +} + + +static const per_sequence_t E_CID_MeasurementResult_sequence[] = { + { &hf_nrppa_servingCell_ID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_NG_RAN_CGI }, + { &hf_nrppa_servingCellTAC, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_TAC }, + { &hf_nrppa_nG_RANAccessPointPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_NG_RANAccessPointPosition }, + { &hf_nrppa_measuredResults, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_MeasuredResults }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_E_CID_MeasurementResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_E_CID_MeasurementResult, E_CID_MeasurementResult_sequence); + + return offset; +} + + + +static int +dissect_nrppa_HESSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 6, 6, FALSE, NULL); + + return offset; +} + + + +static int +dissect_nrppa_Measurement_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 15U, NULL, TRUE); + + return offset; +} + + +static const value_string nrppa_MeasurementPeriodicity_vals[] = { + { 0, "ms120" }, + { 1, "ms240" }, + { 2, "ms480" }, + { 3, "ms640" }, + { 4, "ms1024" }, + { 5, "ms2048" }, + { 6, "ms5120" }, + { 7, "ms10240" }, + { 8, "min1" }, + { 9, "min6" }, + { 10, "min12" }, + { 11, "min30" }, + { 12, "min60" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_MeasurementPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 13, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t MeasurementQuantities_sequence_of[1] = { + { &hf_nrppa_MeasurementQuantities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Single_Container }, +}; + +static int +dissect_nrppa_MeasurementQuantities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_MeasurementQuantities, MeasurementQuantities_sequence_of, + 1, maxNoMeas, FALSE); + + return offset; +} + + +static const value_string nrppa_MeasurementQuantitiesValue_vals[] = { + { 0, "cell-ID" }, + { 1, "angleOfArrival" }, + { 2, "timingAdvanceType1" }, + { 3, "timingAdvanceType2" }, + { 4, "rSRP" }, + { 5, "rSRQ" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_MeasurementQuantitiesValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t MeasurementQuantities_Item_sequence[] = { + { &hf_nrppa_measurementQuantitiesValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_MeasurementQuantitiesValue }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_MeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_MeasurementQuantities_Item, MeasurementQuantities_Item_sequence); + + return offset; +} + + + +static int +dissect_nrppa_NarrowBandIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, TRUE); + + return offset; +} + + +static const value_string nrppa_NumberOfAntennaPorts_EUTRA_vals[] = { + { 0, "n1-or-n2" }, + { 1, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_NumberOfAntennaPorts_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nrppa_NumberOfDlFrames_EUTRA_vals[] = { + { 0, "sf1" }, + { 1, "sf2" }, + { 2, "sf4" }, + { 3, "sf6" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_NumberOfDlFrames_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_NumberOfDlFrames_Extended_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 160U, NULL, TRUE); + + return offset; +} + + +static const value_string nrppa_NumberOfFrequencyHoppingBands_vals[] = { + { 0, "twobands" }, + { 1, "fourbands" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_NumberOfFrequencyHoppingBands(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nrppa_PRS_Bandwidth_EUTRA_vals[] = { + { 0, "bw6" }, + { 1, "bw15" }, + { 2, "bw25" }, + { 3, "bw50" }, + { 4, "bw75" }, + { 5, "bw100" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_PRS_Bandwidth_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_PRS_ConfigurationIndex_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4095U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_SFNInitialisationTime_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 64, 64, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 2, 2, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 4, 4, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 32, 32, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 64, 64, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 128, 128, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 256, 256, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 512, 512, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_nrppa_BIT_STRING_SIZE_1024(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1024, 1024, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const value_string nrppa_PRSMutingConfiguration_EUTRA_vals[] = { + { 0, "two" }, + { 1, "four" }, + { 2, "eight" }, + { 3, "sixteen" }, + { 4, "thirty-two" }, + { 5, "sixty-four" }, + { 6, "one-hundred-and-twenty-eight" }, + { 7, "two-hundred-and-fifty-six" }, + { 8, "five-hundred-and-twelve" }, + { 9, "one-thousand-and-twenty-four" }, + { 10, "pRSMutingConfiguration-EUTRA-Extension" }, + { 0, NULL } +}; + +static const per_choice_t PRSMutingConfiguration_EUTRA_choice[] = { + { 0, &hf_nrppa_two , ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_2 }, + { 1, &hf_nrppa_four , ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_4 }, + { 2, &hf_nrppa_eight , ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_8 }, + { 3, &hf_nrppa_sixteen , ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_16 }, + { 4, &hf_nrppa_thirty_two , ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_32 }, + { 5, &hf_nrppa_sixty_four , ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_64 }, + { 6, &hf_nrppa_one_hundred_and_twenty_eight, ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_128 }, + { 7, &hf_nrppa_two_hundred_and_fifty_six, ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_256 }, + { 8, &hf_nrppa_five_hundred_and_twelve, ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_512 }, + { 9, &hf_nrppa_one_thousand_and_twenty_four, ASN1_NO_EXTENSIONS , dissect_nrppa_BIT_STRING_SIZE_1024 }, + { 10, &hf_nrppa_pRSMutingConfiguration_EUTRA_Extension, ASN1_NO_EXTENSIONS , dissect_nrppa_ProtocolIE_Single_Container }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_PRSMutingConfiguration_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_PRSMutingConfiguration_EUTRA, PRSMutingConfiguration_EUTRA_choice, + NULL); + + return offset; +} + + + +static int +dissect_nrppa_PRS_ID_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4095U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_TP_ID_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4095U, NULL, TRUE); + + return offset; +} + + +static const value_string nrppa_TP_Type_EUTRA_vals[] = { + { 0, "prs-only-tp" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_TP_Type_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nrppa_PRSOccasionGroup_EUTRA_vals[] = { + { 0, "og2" }, + { 1, "og4" }, + { 2, "og8" }, + { 3, "og16" }, + { 4, "og32" }, + { 5, "og64" }, + { 6, "og128" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_PRSOccasionGroup_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 7, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex_sequence_of[1] = { + { &hf_nrppa_bandPositions_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_NarrowBandIndex }, +}; + +static int +dissect_nrppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex, SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex_sequence_of, + 1, maxnoFreqHoppingBandsMinusOne, FALSE); + + return offset; +} + + +static const per_sequence_t PRSFrequencyHoppingConfiguration_EUTRA_sequence[] = { + { &hf_nrppa_noOfFreqHoppingBands, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_NumberOfFrequencyHoppingBands }, + { &hf_nrppa_bandPositions , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_PRSFrequencyHoppingConfiguration_EUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_PRSFrequencyHoppingConfiguration_EUTRA, PRSFrequencyHoppingConfiguration_EUTRA_sequence); + + return offset; +} + + +static const value_string nrppa_OTDOACell_Information_Item_vals[] = { + { 0, "pCI-EUTRA" }, + { 1, "cGI-EUTRA" }, + { 2, "tAC" }, + { 3, "eARFCN" }, + { 4, "pRS-Bandwidth-EUTRA" }, + { 5, "pRS-ConfigurationIndex-EUTRA" }, + { 6, "cPLength-EUTRA" }, + { 7, "numberOfDlFrames-EUTRA" }, + { 8, "numberOfAntennaPorts-EUTRA" }, + { 9, "sFNInitialisationTime-EUTRA" }, + { 10, "nG-RANAccessPointPosition" }, + { 11, "pRSMutingConfiguration-EUTRA" }, + { 12, "prsid-EUTRA" }, + { 13, "tpid-EUTRA" }, + { 14, "tpType-EUTRA" }, + { 15, "numberOfDlFrames-Extended-EUTRA" }, + { 16, "crsCPlength-EUTRA" }, + { 17, "dL-Bandwidth-EUTRA" }, + { 18, "pRSOccasionGroup-EUTRA" }, + { 19, "pRSFrequencyHoppingConfiguration-EUTRA" }, + { 20, "oTDOACell-Information-Item-Extension" }, + { 0, NULL } +}; + +static const per_choice_t OTDOACell_Information_Item_choice[] = { + { 0, &hf_nrppa_pCI_EUTRA , ASN1_NO_EXTENSIONS , dissect_nrppa_PCI_EUTRA }, + { 1, &hf_nrppa_cGI_EUTRA , ASN1_NO_EXTENSIONS , dissect_nrppa_CGI_EUTRA }, + { 2, &hf_nrppa_tAC , ASN1_NO_EXTENSIONS , dissect_nrppa_TAC }, + { 3, &hf_nrppa_eARFCN , ASN1_NO_EXTENSIONS , dissect_nrppa_EARFCN }, + { 4, &hf_nrppa_pRS_Bandwidth_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_PRS_Bandwidth_EUTRA }, + { 5, &hf_nrppa_pRS_ConfigurationIndex_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_PRS_ConfigurationIndex_EUTRA }, + { 6, &hf_nrppa_cPLength_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_CPLength_EUTRA }, + { 7, &hf_nrppa_numberOfDlFrames_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_NumberOfDlFrames_EUTRA }, + { 8, &hf_nrppa_numberOfAntennaPorts_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_NumberOfAntennaPorts_EUTRA }, + { 9, &hf_nrppa_sFNInitialisationTime_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_SFNInitialisationTime_EUTRA }, + { 10, &hf_nrppa_nG_RANAccessPointPosition, ASN1_NO_EXTENSIONS , dissect_nrppa_NG_RANAccessPointPosition }, + { 11, &hf_nrppa_pRSMutingConfiguration_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_PRSMutingConfiguration_EUTRA }, + { 12, &hf_nrppa_prsid_EUTRA , ASN1_NO_EXTENSIONS , dissect_nrppa_PRS_ID_EUTRA }, + { 13, &hf_nrppa_tpid_EUTRA , ASN1_NO_EXTENSIONS , dissect_nrppa_TP_ID_EUTRA }, + { 14, &hf_nrppa_tpType_EUTRA , ASN1_NO_EXTENSIONS , dissect_nrppa_TP_Type_EUTRA }, + { 15, &hf_nrppa_numberOfDlFrames_Extended_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_NumberOfDlFrames_Extended_EUTRA }, + { 16, &hf_nrppa_crsCPlength_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_CPLength_EUTRA }, + { 17, &hf_nrppa_dL_Bandwidth_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_DL_Bandwidth_EUTRA }, + { 18, &hf_nrppa_pRSOccasionGroup_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_PRSOccasionGroup_EUTRA }, + { 19, &hf_nrppa_pRSFrequencyHoppingConfiguration_EUTRA, ASN1_NO_EXTENSIONS , dissect_nrppa_PRSFrequencyHoppingConfiguration_EUTRA }, + { 20, &hf_nrppa_oTDOACell_Information_Item_Extension, ASN1_NO_EXTENSIONS , dissect_nrppa_ProtocolIE_Single_Container }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_OTDOACell_Information_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOACell_Information_Item, OTDOACell_Information_Item_choice, + NULL); + + return offset; +} + + +static const per_sequence_t OTDOACell_Information_sequence_of[1] = { + { &hf_nrppa_OTDOACell_Information_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_OTDOACell_Information_Item }, +}; + +static int +dissect_nrppa_OTDOACell_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOACell_Information, OTDOACell_Information_sequence_of, + 1, maxnoOTDOAtypes, FALSE); + + return offset; +} + + +static const per_sequence_t OTDOACells_item_sequence[] = { + { &hf_nrppa_oTDOACellInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_OTDOACell_Information }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_OTDOACells_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOACells_item, OTDOACells_item_sequence); + + return offset; +} + + +static const per_sequence_t OTDOACells_sequence_of[1] = { + { &hf_nrppa_OTDOACells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_OTDOACells_item }, +}; + +static int +dissect_nrppa_OTDOACells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOACells, OTDOACells_sequence_of, + 1, maxCellinRANnode, FALSE); + + return offset; +} + + +static const value_string nrppa_OTDOA_Information_Item_vals[] = { + { 0, "pci" }, + { 1, "cGI" }, + { 2, "tac" }, + { 3, "earfcn" }, + { 4, "prsBandwidth" }, + { 5, "prsConfigIndex" }, + { 6, "cpLength" }, + { 7, "noDlFrames" }, + { 8, "noAntennaPorts" }, + { 9, "sFNInitTime" }, + { 10, "nG-RANAccessPointPosition" }, + { 11, "prsmutingconfiguration" }, + { 12, "prsid" }, + { 13, "tpid" }, + { 14, "tpType" }, + { 15, "crsCPlength" }, + { 16, "dlBandwidth" }, + { 17, "multipleprsConfigurationsperCell" }, + { 18, "prsOccasionGroup" }, + { 19, "prsFrequencyHoppingConfiguration" }, + { 20, "tddConfig" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_OTDOA_Information_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 20, NULL, TRUE, 1, NULL); + + return offset; +} + + +static const per_sequence_t OtherRATMeasurementQuantities_sequence_of[1] = { + { &hf_nrppa_OtherRATMeasurementQuantities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Single_Container }, +}; + +static int +dissect_nrppa_OtherRATMeasurementQuantities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_OtherRATMeasurementQuantities, OtherRATMeasurementQuantities_sequence_of, + 0, maxNoMeas, FALSE); + + return offset; +} + + +static const value_string nrppa_OtherRATMeasurementQuantitiesValue_vals[] = { + { 0, "geran" }, + { 1, "utran" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_OtherRATMeasurementQuantitiesValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t OtherRATMeasurementQuantities_Item_sequence[] = { + { &hf_nrppa_otherRATMeasurementQuantitiesValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_OtherRATMeasurementQuantitiesValue }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_OtherRATMeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_OtherRATMeasurementQuantities_Item, OtherRATMeasurementQuantities_Item_sequence); + + return offset; +} + + + +static int +dissect_nrppa_PhysCellIDGERAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_RSSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t ResultGERAN_Item_sequence[] = { + { &hf_nrppa_bCCH , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_BCCH }, + { &hf_nrppa_physCellIDGERAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_PhysCellIDGERAN }, + { &hf_nrppa_rSSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_RSSI }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_ResultGERAN_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultGERAN_Item, ResultGERAN_Item_sequence); + + return offset; +} + + +static const per_sequence_t ResultGERAN_sequence_of[1] = { + { &hf_nrppa_ResultGERAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ResultGERAN_Item }, +}; + +static int +dissect_nrppa_ResultGERAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultGERAN, ResultGERAN_sequence_of, + 1, maxGERANMeas, FALSE); + + return offset; +} + + + +static int +dissect_nrppa_UARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 16383U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_PhysCellIDUTRA_FDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 511U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_PhysCellIDUTRA_TDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 127U, NULL, TRUE); + + return offset; +} + + +static const value_string nrppa_T_physCellIDUTRAN_vals[] = { + { 0, "physCellIDUTRA-FDD" }, + { 1, "physCellIDUTRA-TDD" }, + { 0, NULL } +}; + +static const per_choice_t T_physCellIDUTRAN_choice[] = { + { 0, &hf_nrppa_physCellIDUTRA_FDD, ASN1_NO_EXTENSIONS , dissect_nrppa_PhysCellIDUTRA_FDD }, + { 1, &hf_nrppa_physCellIDUTRA_TDD, ASN1_NO_EXTENSIONS , dissect_nrppa_PhysCellIDUTRA_TDD }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_T_physCellIDUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_T_physCellIDUTRAN, T_physCellIDUTRAN_choice, + NULL); + + return offset; +} + + + +static int +dissect_nrppa_UTRA_RSCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -5, 91U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_UTRA_EcN0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 49U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t ResultUTRAN_Item_sequence[] = { + { &hf_nrppa_uARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_UARFCN }, + { &hf_nrppa_physCellIDUTRAN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_T_physCellIDUTRAN }, + { &hf_nrppa_uTRA_RSCP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_UTRA_RSCP }, + { &hf_nrppa_uTRA_EcN0 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_UTRA_EcN0 }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_ResultUTRAN_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultUTRAN_Item, ResultUTRAN_Item_sequence); + + return offset; +} + + +static const per_sequence_t ResultUTRAN_sequence_of[1] = { + { &hf_nrppa_ResultUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ResultUTRAN_Item }, +}; + +static int +dissect_nrppa_ResultUTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_ResultUTRAN, ResultUTRAN_sequence_of, + 1, maxUTRANMeas, FALSE); + + return offset; +} + + +static const value_string nrppa_OtherRATMeasuredResultsValue_vals[] = { + { 0, "resultGERAN" }, + { 1, "resultUTRAN" }, + { 2, "otherRATMeasuredResultsValue-Extension" }, + { 0, NULL } +}; + +static const per_choice_t OtherRATMeasuredResultsValue_choice[] = { + { 0, &hf_nrppa_resultGERAN , ASN1_NO_EXTENSIONS , dissect_nrppa_ResultGERAN }, + { 1, &hf_nrppa_resultUTRAN , ASN1_NO_EXTENSIONS , dissect_nrppa_ResultUTRAN }, + { 2, &hf_nrppa_otherRATMeasuredResultsValue_Extension, ASN1_NO_EXTENSIONS , dissect_nrppa_ProtocolIE_Single_Container }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nrppa_OtherRATMeasuredResultsValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nrppa_OtherRATMeasuredResultsValue, OtherRATMeasuredResultsValue_choice, + NULL); + + return offset; +} + + +static const per_sequence_t OtherRATMeasurementResult_sequence_of[1] = { + { &hf_nrppa_OtherRATMeasurementResult_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_OtherRATMeasuredResultsValue }, +}; + +static int +dissect_nrppa_OtherRATMeasurementResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_OtherRATMeasurementResult, OtherRATMeasurementResult_sequence_of, + 1, maxNoMeas, FALSE); + + return offset; +} + + +static const value_string nrppa_ReportCharacteristics_vals[] = { + { 0, "onDemand" }, + { 1, "periodic" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_ReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_SSID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, 32, FALSE, NULL); + + return offset; +} + + +static const value_string nrppa_T_subframeAssignment_vals[] = { + { 0, "sa0" }, + { 1, "sa1" }, + { 2, "sa2" }, + { 3, "sa3" }, + { 4, "sa4" }, + { 5, "sa5" }, + { 6, "sa6" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_T_subframeAssignment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 7, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t TDD_Config_EUTRA_Item_sequence[] = { + { &hf_nrppa_subframeAssignment, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_T_subframeAssignment }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_TDD_Config_EUTRA_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_TDD_Config_EUTRA_Item, TDD_Config_EUTRA_Item_sequence); + + return offset; +} + + +static const per_sequence_t WLANMeasurementQuantities_sequence_of[1] = { + { &hf_nrppa_WLANMeasurementQuantities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Single_Container }, +}; + +static int +dissect_nrppa_WLANMeasurementQuantities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_WLANMeasurementQuantities, WLANMeasurementQuantities_sequence_of, + 0, maxNoMeas, FALSE); + + return offset; +} + + +static const value_string nrppa_WLANMeasurementQuantitiesValue_vals[] = { + { 0, "wlan" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_WLANMeasurementQuantitiesValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t WLANMeasurementQuantities_Item_sequence[] = { + { &hf_nrppa_wLANMeasurementQuantitiesValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_WLANMeasurementQuantitiesValue }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_WLANMeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_WLANMeasurementQuantities_Item, WLANMeasurementQuantities_Item_sequence); + + return offset; +} + + + +static int +dissect_nrppa_WLAN_RSSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 141U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_nrppa_WLANOperatingClass(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + +static const value_string nrppa_WLANCountryCode_vals[] = { + { 0, "unitedStates" }, + { 1, "europe" }, + { 2, "japan" }, + { 3, "global" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_WLANCountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_nrppa_WLANChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t WLANChannelList_sequence_of[1] = { + { &hf_nrppa_WLANChannelList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_WLANChannel }, +}; + +static int +dissect_nrppa_WLANChannelList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_WLANChannelList, WLANChannelList_sequence_of, + 1, maxWLANchannels, FALSE); + + return offset; +} + + +static const value_string nrppa_WLANBand_vals[] = { + { 0, "band2dot4" }, + { 1, "band5" }, + { 0, NULL } +}; + + +static int +dissect_nrppa_WLANBand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t WLANMeasurementResult_Item_sequence[] = { + { &hf_nrppa_wLAN_RSSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_WLAN_RSSI }, + { &hf_nrppa_sSID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_SSID }, + { &hf_nrppa_bSSID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_BSSID }, + { &hf_nrppa_hESSID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_HESSID }, + { &hf_nrppa_operatingClass, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_WLANOperatingClass }, + { &hf_nrppa_countryCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_WLANCountryCode }, + { &hf_nrppa_wLANChannelList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_WLANChannelList }, + { &hf_nrppa_wLANBand , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_WLANBand }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_WLANMeasurementResult_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_WLANMeasurementResult_Item, WLANMeasurementResult_Item_sequence); + + return offset; +} + + +static const per_sequence_t WLANMeasurementResult_sequence_of[1] = { + { &hf_nrppa_WLANMeasurementResult_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_WLANMeasurementResult_Item }, +}; + +static int +dissect_nrppa_WLANMeasurementResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_WLANMeasurementResult, WLANMeasurementResult_sequence_of, + 1, maxNoMeas, FALSE); + + return offset; +} + + +static const per_sequence_t E_CIDMeasurementInitiationRequest_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_E_CIDMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_E_CIDMeasurementInitiationRequest, E_CIDMeasurementInitiationRequest_sequence); + + return offset; +} + + +static const per_sequence_t E_CIDMeasurementInitiationResponse_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_E_CIDMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_E_CIDMeasurementInitiationResponse, E_CIDMeasurementInitiationResponse_sequence); + + return offset; +} + + +static const per_sequence_t E_CIDMeasurementInitiationFailure_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_E_CIDMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_E_CIDMeasurementInitiationFailure, E_CIDMeasurementInitiationFailure_sequence); + + return offset; +} + + +static const per_sequence_t E_CIDMeasurementFailureIndication_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_E_CIDMeasurementFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_E_CIDMeasurementFailureIndication, E_CIDMeasurementFailureIndication_sequence); + + return offset; +} + + +static const per_sequence_t E_CIDMeasurementReport_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_E_CIDMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_E_CIDMeasurementReport, E_CIDMeasurementReport_sequence); + + return offset; +} + + +static const per_sequence_t E_CIDMeasurementTerminationCommand_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_E_CIDMeasurementTerminationCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_E_CIDMeasurementTerminationCommand, E_CIDMeasurementTerminationCommand_sequence); + + return offset; +} + + +static const per_sequence_t OTDOAInformationRequest_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_OTDOAInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOAInformationRequest, OTDOAInformationRequest_sequence); + + return offset; +} + + +static const per_sequence_t OTDOA_Information_Type_sequence_of[1] = { + { &hf_nrppa_OTDOA_Information_Type_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Single_Container }, +}; + +static int +dissect_nrppa_OTDOA_Information_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOA_Information_Type, OTDOA_Information_Type_sequence_of, + 1, maxnoOTDOAtypes, FALSE); + + return offset; +} + + +static const per_sequence_t OTDOA_Information_Type_Item_sequence[] = { + { &hf_nrppa_oTDOA_Information_Type_Item, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_OTDOA_Information_Item }, + { &hf_nrppa_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nrppa_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_OTDOA_Information_Type_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOA_Information_Type_Item, OTDOA_Information_Type_Item_sequence); + + return offset; +} + + +static const per_sequence_t OTDOAInformationResponse_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_OTDOAInformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOAInformationResponse, OTDOAInformationResponse_sequence); + + return offset; +} + + +static const per_sequence_t OTDOAInformationFailure_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_OTDOAInformationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_OTDOAInformationFailure, OTDOAInformationFailure_sequence); + + return offset; +} + + +static const per_sequence_t ErrorIndication_sequence[] = { + { &hf_nrppa_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_ErrorIndication, ErrorIndication_sequence); + + return offset; +} + + +static const per_sequence_t PrivateMessage_sequence[] = { + { &hf_nrppa_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nrppa_PrivateIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nrppa_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nrppa_PrivateMessage, PrivateMessage_sequence); + + return offset; +} + +/*--- PDUs ---*/ + +static int dissect_NRPPA_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_NRPPA_PDU(tvb, offset, &asn1_ctx, tree, hf_nrppa_NRPPA_PDU_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_Cause(tvb, offset, &asn1_ctx, tree, hf_nrppa_Cause_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_Cell_Portion_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_Cell_Portion_ID(tvb, offset, &asn1_ctx, tree, hf_nrppa_Cell_Portion_ID_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_nrppa_CriticalityDiagnostics_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_E_CID_MeasurementResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_E_CID_MeasurementResult(tvb, offset, &asn1_ctx, tree, hf_nrppa_E_CID_MeasurementResult_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_Measurement_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_Measurement_ID(tvb, offset, &asn1_ctx, tree, hf_nrppa_Measurement_ID_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MeasurementPeriodicity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_MeasurementPeriodicity(tvb, offset, &asn1_ctx, tree, hf_nrppa_MeasurementPeriodicity_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MeasurementQuantities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_MeasurementQuantities(tvb, offset, &asn1_ctx, tree, hf_nrppa_MeasurementQuantities_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MeasurementQuantities_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_MeasurementQuantities_Item(tvb, offset, &asn1_ctx, tree, hf_nrppa_MeasurementQuantities_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OTDOACells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OTDOACells(tvb, offset, &asn1_ctx, tree, hf_nrppa_OTDOACells_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OtherRATMeasurementQuantities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OtherRATMeasurementQuantities(tvb, offset, &asn1_ctx, tree, hf_nrppa_OtherRATMeasurementQuantities_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OtherRATMeasurementQuantities_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OtherRATMeasurementQuantities_Item(tvb, offset, &asn1_ctx, tree, hf_nrppa_OtherRATMeasurementQuantities_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OtherRATMeasurementResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OtherRATMeasurementResult(tvb, offset, &asn1_ctx, tree, hf_nrppa_OtherRATMeasurementResult_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ReportCharacteristics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_ReportCharacteristics(tvb, offset, &asn1_ctx, tree, hf_nrppa_ReportCharacteristics_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_TDD_Config_EUTRA_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_TDD_Config_EUTRA_Item(tvb, offset, &asn1_ctx, tree, hf_nrppa_TDD_Config_EUTRA_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_WLANMeasurementQuantities_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_WLANMeasurementQuantities(tvb, offset, &asn1_ctx, tree, hf_nrppa_WLANMeasurementQuantities_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_WLANMeasurementQuantities_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_WLANMeasurementQuantities_Item(tvb, offset, &asn1_ctx, tree, hf_nrppa_WLANMeasurementQuantities_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_WLANMeasurementResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_WLANMeasurementResult(tvb, offset, &asn1_ctx, tree, hf_nrppa_WLANMeasurementResult_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_E_CIDMeasurementInitiationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_E_CIDMeasurementInitiationRequest(tvb, offset, &asn1_ctx, tree, hf_nrppa_E_CIDMeasurementInitiationRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_E_CIDMeasurementInitiationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_E_CIDMeasurementInitiationResponse(tvb, offset, &asn1_ctx, tree, hf_nrppa_E_CIDMeasurementInitiationResponse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_E_CIDMeasurementInitiationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_E_CIDMeasurementInitiationFailure(tvb, offset, &asn1_ctx, tree, hf_nrppa_E_CIDMeasurementInitiationFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_E_CIDMeasurementFailureIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_E_CIDMeasurementFailureIndication(tvb, offset, &asn1_ctx, tree, hf_nrppa_E_CIDMeasurementFailureIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_E_CIDMeasurementReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_E_CIDMeasurementReport(tvb, offset, &asn1_ctx, tree, hf_nrppa_E_CIDMeasurementReport_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_E_CIDMeasurementTerminationCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_E_CIDMeasurementTerminationCommand(tvb, offset, &asn1_ctx, tree, hf_nrppa_E_CIDMeasurementTerminationCommand_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OTDOAInformationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OTDOAInformationRequest(tvb, offset, &asn1_ctx, tree, hf_nrppa_OTDOAInformationRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OTDOA_Information_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OTDOA_Information_Type(tvb, offset, &asn1_ctx, tree, hf_nrppa_OTDOA_Information_Type_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OTDOA_Information_Type_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OTDOA_Information_Type_Item(tvb, offset, &asn1_ctx, tree, hf_nrppa_OTDOA_Information_Type_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OTDOAInformationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OTDOAInformationResponse(tvb, offset, &asn1_ctx, tree, hf_nrppa_OTDOAInformationResponse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_OTDOAInformationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_OTDOAInformationFailure(tvb, offset, &asn1_ctx, tree, hf_nrppa_OTDOAInformationFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_nrppa_ErrorIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_nrppa_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_nrppa_PrivateMessage_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/*--- End of included file: packet-nrppa-fn.c ---*/ +#line 57 "./asn1/nrppa/packet-nrppa-template.c" + +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; +} + +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; +} + +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; +} + +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; +} + +/*--- proto_register_nrppa -------------------------------------------*/ +void proto_register_nrppa(void) { + + /* List of fields */ + static hf_register_info hf[] = { + + +/*--- Included file: packet-nrppa-hfarr.c ---*/ +#line 1 "./asn1/nrppa/packet-nrppa-hfarr.c" + { &hf_nrppa_NRPPA_PDU_PDU, + { "NRPPA-PDU", "nrppa.NRPPA_PDU", + FT_UINT32, BASE_DEC, VALS(nrppa_NRPPA_PDU_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_Cause_PDU, + { "Cause", "nrppa.Cause", + FT_UINT32, BASE_DEC, VALS(nrppa_Cause_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_Cell_Portion_ID_PDU, + { "Cell-Portion-ID", "nrppa.Cell_Portion_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_CriticalityDiagnostics_PDU, + { "CriticalityDiagnostics", "nrppa.CriticalityDiagnostics_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_E_CID_MeasurementResult_PDU, + { "E-CID-MeasurementResult", "nrppa.E_CID_MeasurementResult_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_Measurement_ID_PDU, + { "Measurement-ID", "nrppa.Measurement_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_MeasurementPeriodicity_PDU, + { "MeasurementPeriodicity", "nrppa.MeasurementPeriodicity", + FT_UINT32, BASE_DEC, VALS(nrppa_MeasurementPeriodicity_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_MeasurementQuantities_PDU, + { "MeasurementQuantities", "nrppa.MeasurementQuantities", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_MeasurementQuantities_Item_PDU, + { "MeasurementQuantities-Item", "nrppa.MeasurementQuantities_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OTDOACells_PDU, + { "OTDOACells", "nrppa.OTDOACells", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OtherRATMeasurementQuantities_PDU, + { "OtherRATMeasurementQuantities", "nrppa.OtherRATMeasurementQuantities", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OtherRATMeasurementQuantities_Item_PDU, + { "OtherRATMeasurementQuantities-Item", "nrppa.OtherRATMeasurementQuantities_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OtherRATMeasurementResult_PDU, + { "OtherRATMeasurementResult", "nrppa.OtherRATMeasurementResult", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_ReportCharacteristics_PDU, + { "ReportCharacteristics", "nrppa.ReportCharacteristics", + FT_UINT32, BASE_DEC, VALS(nrppa_ReportCharacteristics_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_TDD_Config_EUTRA_Item_PDU, + { "TDD-Config-EUTRA-Item", "nrppa.TDD_Config_EUTRA_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_WLANMeasurementQuantities_PDU, + { "WLANMeasurementQuantities", "nrppa.WLANMeasurementQuantities", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_WLANMeasurementQuantities_Item_PDU, + { "WLANMeasurementQuantities-Item", "nrppa.WLANMeasurementQuantities_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_WLANMeasurementResult_PDU, + { "WLANMeasurementResult", "nrppa.WLANMeasurementResult", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_E_CIDMeasurementInitiationRequest_PDU, + { "E-CIDMeasurementInitiationRequest", "nrppa.E_CIDMeasurementInitiationRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_E_CIDMeasurementInitiationResponse_PDU, + { "E-CIDMeasurementInitiationResponse", "nrppa.E_CIDMeasurementInitiationResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_E_CIDMeasurementInitiationFailure_PDU, + { "E-CIDMeasurementInitiationFailure", "nrppa.E_CIDMeasurementInitiationFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_E_CIDMeasurementFailureIndication_PDU, + { "E-CIDMeasurementFailureIndication", "nrppa.E_CIDMeasurementFailureIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_E_CIDMeasurementReport_PDU, + { "E-CIDMeasurementReport", "nrppa.E_CIDMeasurementReport_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_E_CIDMeasurementTerminationCommand_PDU, + { "E-CIDMeasurementTerminationCommand", "nrppa.E_CIDMeasurementTerminationCommand_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OTDOAInformationRequest_PDU, + { "OTDOAInformationRequest", "nrppa.OTDOAInformationRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OTDOA_Information_Type_PDU, + { "OTDOA-Information-Type", "nrppa.OTDOA_Information_Type", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OTDOA_Information_Type_Item_PDU, + { "OTDOA-Information-Type-Item", "nrppa.OTDOA_Information_Type_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OTDOAInformationResponse_PDU, + { "OTDOAInformationResponse", "nrppa.OTDOAInformationResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_OTDOAInformationFailure_PDU, + { "OTDOAInformationFailure", "nrppa.OTDOAInformationFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_ErrorIndication_PDU, + { "ErrorIndication", "nrppa.ErrorIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_PrivateMessage_PDU, + { "PrivateMessage", "nrppa.PrivateMessage_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_local, + { "local", "nrppa.local", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxPrivateIEs", HFILL }}, + { &hf_nrppa_global, + { "global", "nrppa.global", + FT_OID, BASE_NONE, NULL, 0, + "OBJECT_IDENTIFIER", HFILL }}, + { &hf_nrppa_ProtocolIE_Container_item, + { "ProtocolIE-Field", "nrppa.ProtocolIE_Field_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_id, + { "id", "nrppa.id", + FT_UINT32, BASE_DEC, VALS(nrppa_ProtocolIE_ID_vals), 0, + "ProtocolIE_ID", HFILL }}, + { &hf_nrppa_criticality, + { "criticality", "nrppa.criticality", + FT_UINT32, BASE_DEC, VALS(nrppa_Criticality_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_ie_field_value, + { "value", "nrppa.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_ie_field_value", HFILL }}, + { &hf_nrppa_ProtocolExtensionContainer_item, + { "ProtocolExtensionField", "nrppa.ProtocolExtensionField_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_extensionValue, + { "extensionValue", "nrppa.extensionValue_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_PrivateIE_Container_item, + { "PrivateIE-Field", "nrppa.PrivateIE_Field_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_id_01, + { "id", "nrppa.id", + FT_UINT32, BASE_DEC, VALS(nrppa_PrivateIE_ID_vals), 0, + "PrivateIE_ID", HFILL }}, + { &hf_nrppa_value, + { "value", "nrppa.value_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_initiatingMessage, + { "initiatingMessage", "nrppa.initiatingMessage_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_successfulOutcome, + { "successfulOutcome", "nrppa.successfulOutcome_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_unsuccessfulOutcome, + { "unsuccessfulOutcome", "nrppa.unsuccessfulOutcome_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_procedureCode, + { "procedureCode", "nrppa.procedureCode", + FT_UINT32, BASE_DEC, VALS(nrppa_ProcedureCode_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_nrppatransactionID, + { "nrppatransactionID", "nrppa.nrppatransactionID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_initiatingMessagevalue, + { "value", "nrppa.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "InitiatingMessage_value", HFILL }}, + { &hf_nrppa_successfulOutcome_value, + { "value", "nrppa.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "SuccessfulOutcome_value", HFILL }}, + { &hf_nrppa_unsuccessfulOutcome_value, + { "value", "nrppa.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "UnsuccessfulOutcome_value", HFILL }}, + { &hf_nrppa_radioNetwork, + { "radioNetwork", "nrppa.radioNetwork", + FT_UINT32, BASE_DEC, VALS(nrppa_CauseRadioNetwork_vals), 0, + "CauseRadioNetwork", HFILL }}, + { &hf_nrppa_protocol, + { "protocol", "nrppa.protocol", + FT_UINT32, BASE_DEC, VALS(nrppa_CauseProtocol_vals), 0, + "CauseProtocol", HFILL }}, + { &hf_nrppa_misc, + { "misc", "nrppa.misc", + FT_UINT32, BASE_DEC, VALS(nrppa_CauseMisc_vals), 0, + "CauseMisc", HFILL }}, + { &hf_nrppa_cause_Extension, + { "cause-Extension", "nrppa.cause_Extension_element", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolIE_Single_Container", HFILL }}, + { &hf_nrppa_pLMN_Identity, + { "pLMN-Identity", "nrppa.pLMN_Identity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_eUTRAcellIdentifier, + { "eUTRAcellIdentifier", "nrppa.eUTRAcellIdentifier", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_iE_Extensions, + { "iE-Extensions", "nrppa.iE_Extensions", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolExtensionContainer", HFILL }}, + { &hf_nrppa_triggeringMessage, + { "triggeringMessage", "nrppa.triggeringMessage", + FT_UINT32, BASE_DEC, VALS(nrppa_TriggeringMessage_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_procedureCriticality, + { "procedureCriticality", "nrppa.procedureCriticality", + FT_UINT32, BASE_DEC, VALS(nrppa_Criticality_vals), 0, + "Criticality", HFILL }}, + { &hf_nrppa_iEsCriticalityDiagnostics, + { "iEsCriticalityDiagnostics", "nrppa.iEsCriticalityDiagnostics", + FT_UINT32, BASE_DEC, NULL, 0, + "CriticalityDiagnostics_IE_List", HFILL }}, + { &hf_nrppa_CriticalityDiagnostics_IE_List_item, + { "CriticalityDiagnostics-IE-List item", "nrppa.CriticalityDiagnostics_IE_List_item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_iECriticality, + { "iECriticality", "nrppa.iECriticality", + FT_UINT32, BASE_DEC, VALS(nrppa_Criticality_vals), 0, + "Criticality", HFILL }}, + { &hf_nrppa_iE_ID, + { "iE-ID", "nrppa.iE_ID", + FT_UINT32, BASE_DEC, VALS(nrppa_ProtocolIE_ID_vals), 0, + "ProtocolIE_ID", HFILL }}, + { &hf_nrppa_typeOfError, + { "typeOfError", "nrppa.typeOfError", + FT_UINT32, BASE_DEC, VALS(nrppa_TypeOfError_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_servingCell_ID, + { "servingCell-ID", "nrppa.servingCell_ID_element", + FT_NONE, BASE_NONE, NULL, 0, + "NG_RAN_CGI", HFILL }}, + { &hf_nrppa_servingCellTAC, + { "servingCellTAC", "nrppa.servingCellTAC", + FT_BYTES, BASE_NONE, NULL, 0, + "TAC", HFILL }}, + { &hf_nrppa_nG_RANAccessPointPosition, + { "nG-RANAccessPointPosition", "nrppa.nG_RANAccessPointPosition_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_measuredResults, + { "measuredResults", "nrppa.measuredResults", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_MeasurementQuantities_item, + { "ProtocolIE-Single-Container", "nrppa.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_measurementQuantitiesValue, + { "measurementQuantitiesValue", "nrppa.measurementQuantitiesValue", + FT_UINT32, BASE_DEC, VALS(nrppa_MeasurementQuantitiesValue_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_MeasuredResults_item, + { "MeasuredResultsValue", "nrppa.MeasuredResultsValue", + FT_UINT32, BASE_DEC, VALS(nrppa_MeasuredResultsValue_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_valueAngleOfArrival_EUTRA, + { "valueAngleOfArrival-EUTRA", "nrppa.valueAngleOfArrival_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_719", HFILL }}, + { &hf_nrppa_valueTimingAdvanceType1_EUTRA, + { "valueTimingAdvanceType1-EUTRA", "nrppa.valueTimingAdvanceType1_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7690", HFILL }}, + { &hf_nrppa_valueTimingAdvanceType2_EUTRA, + { "valueTimingAdvanceType2-EUTRA", "nrppa.valueTimingAdvanceType2_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7690", HFILL }}, + { &hf_nrppa_resultRSRP_EUTRA, + { "resultRSRP-EUTRA", "nrppa.resultRSRP_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_resultRSRQ_EUTRA, + { "resultRSRQ-EUTRA", "nrppa.resultRSRQ_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_measuredResultsValue_Extension, + { "measuredResultsValue-Extension", "nrppa.measuredResultsValue_Extension_element", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolIE_Single_Container", HFILL }}, + { &hf_nrppa_latitudeSign, + { "latitudeSign", "nrppa.latitudeSign", + FT_UINT32, BASE_DEC, VALS(nrppa_T_latitudeSign_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_latitude, + { "latitude", "nrppa.latitude", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_8388607", HFILL }}, + { &hf_nrppa_longitude, + { "longitude", "nrppa.longitude", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M8388608_8388607", HFILL }}, + { &hf_nrppa_directionOfAltitude, + { "directionOfAltitude", "nrppa.directionOfAltitude", + FT_UINT32, BASE_DEC, VALS(nrppa_T_directionOfAltitude_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_altitude, + { "altitude", "nrppa.altitude", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_32767", HFILL }}, + { &hf_nrppa_uncertaintySemi_major, + { "uncertaintySemi-major", "nrppa.uncertaintySemi_major", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_nrppa_uncertaintySemi_minor, + { "uncertaintySemi-minor", "nrppa.uncertaintySemi_minor", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_nrppa_orientationOfMajorAxis, + { "orientationOfMajorAxis", "nrppa.orientationOfMajorAxis", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_179", HFILL }}, + { &hf_nrppa_uncertaintyAltitude, + { "uncertaintyAltitude", "nrppa.uncertaintyAltitude", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_nrppa_confidence, + { "confidence", "nrppa.confidence", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_100", HFILL }}, + { &hf_nrppa_nG_RANcell, + { "nG-RANcell", "nrppa.nG_RANcell", + FT_UINT32, BASE_DEC, VALS(nrppa_NG_RANCell_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_eUTRA_CellID, + { "eUTRA-CellID", "nrppa.eUTRA_CellID", + FT_BYTES, BASE_NONE, NULL, 0, + "EUTRACellIdentifier", HFILL }}, + { &hf_nrppa_nR_CellID, + { "nR-CellID", "nrppa.nR_CellID", + FT_BYTES, BASE_NONE, NULL, 0, + "NRCellIdentifier", HFILL }}, + { &hf_nrppa_nG_RANCell_Extension, + { "nG-RANCell-Extension", "nrppa.nG_RANCell_Extension_element", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolIE_Single_Container", HFILL }}, + { &hf_nrppa_OTDOACells_item, + { "OTDOACells item", "nrppa.OTDOACells_item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_oTDOACellInfo, + { "oTDOACellInfo", "nrppa.oTDOACellInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "OTDOACell_Information", HFILL }}, + { &hf_nrppa_OTDOACell_Information_item, + { "OTDOACell-Information-Item", "nrppa.OTDOACell_Information_Item", + FT_UINT32, BASE_DEC, VALS(nrppa_OTDOACell_Information_Item_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_pCI_EUTRA, + { "pCI-EUTRA", "nrppa.pCI_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_cGI_EUTRA, + { "cGI-EUTRA", "nrppa.cGI_EUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_tAC, + { "tAC", "nrppa.tAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_eARFCN, + { "eARFCN", "nrppa.eARFCN", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_pRS_Bandwidth_EUTRA, + { "pRS-Bandwidth-EUTRA", "nrppa.pRS_Bandwidth_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_PRS_Bandwidth_EUTRA_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_pRS_ConfigurationIndex_EUTRA, + { "pRS-ConfigurationIndex-EUTRA", "nrppa.pRS_ConfigurationIndex_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_cPLength_EUTRA, + { "cPLength-EUTRA", "nrppa.cPLength_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_CPLength_EUTRA_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_numberOfDlFrames_EUTRA, + { "numberOfDlFrames-EUTRA", "nrppa.numberOfDlFrames_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_NumberOfDlFrames_EUTRA_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_numberOfAntennaPorts_EUTRA, + { "numberOfAntennaPorts-EUTRA", "nrppa.numberOfAntennaPorts_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_NumberOfAntennaPorts_EUTRA_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_sFNInitialisationTime_EUTRA, + { "sFNInitialisationTime-EUTRA", "nrppa.sFNInitialisationTime_EUTRA", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_pRSMutingConfiguration_EUTRA, + { "pRSMutingConfiguration-EUTRA", "nrppa.pRSMutingConfiguration_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_PRSMutingConfiguration_EUTRA_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_prsid_EUTRA, + { "prsid-EUTRA", "nrppa.prsid_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "PRS_ID_EUTRA", HFILL }}, + { &hf_nrppa_tpid_EUTRA, + { "tpid-EUTRA", "nrppa.tpid_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "TP_ID_EUTRA", HFILL }}, + { &hf_nrppa_tpType_EUTRA, + { "tpType-EUTRA", "nrppa.tpType_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_TP_Type_EUTRA_vals), 0, + "TP_Type_EUTRA", HFILL }}, + { &hf_nrppa_numberOfDlFrames_Extended_EUTRA, + { "numberOfDlFrames-Extended-EUTRA", "nrppa.numberOfDlFrames_Extended_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_crsCPlength_EUTRA, + { "crsCPlength-EUTRA", "nrppa.crsCPlength_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_CPLength_EUTRA_vals), 0, + "CPLength_EUTRA", HFILL }}, + { &hf_nrppa_dL_Bandwidth_EUTRA, + { "dL-Bandwidth-EUTRA", "nrppa.dL_Bandwidth_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_DL_Bandwidth_EUTRA_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_pRSOccasionGroup_EUTRA, + { "pRSOccasionGroup-EUTRA", "nrppa.pRSOccasionGroup_EUTRA", + FT_UINT32, BASE_DEC, VALS(nrppa_PRSOccasionGroup_EUTRA_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_pRSFrequencyHoppingConfiguration_EUTRA, + { "pRSFrequencyHoppingConfiguration-EUTRA", "nrppa.pRSFrequencyHoppingConfiguration_EUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_oTDOACell_Information_Item_Extension, + { "oTDOACell-Information-Item-Extension", "nrppa.oTDOACell_Information_Item_Extension_element", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolIE_Single_Container", HFILL }}, + { &hf_nrppa_OtherRATMeasurementQuantities_item, + { "ProtocolIE-Single-Container", "nrppa.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_otherRATMeasurementQuantitiesValue, + { "otherRATMeasurementQuantitiesValue", "nrppa.otherRATMeasurementQuantitiesValue", + FT_UINT32, BASE_DEC, VALS(nrppa_OtherRATMeasurementQuantitiesValue_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_OtherRATMeasurementResult_item, + { "OtherRATMeasuredResultsValue", "nrppa.OtherRATMeasuredResultsValue", + FT_UINT32, BASE_DEC, VALS(nrppa_OtherRATMeasuredResultsValue_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_resultGERAN, + { "resultGERAN", "nrppa.resultGERAN", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_resultUTRAN, + { "resultUTRAN", "nrppa.resultUTRAN", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_otherRATMeasuredResultsValue_Extension, + { "otherRATMeasuredResultsValue-Extension", "nrppa.otherRATMeasuredResultsValue_Extension_element", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolIE_Single_Container", HFILL }}, + { &hf_nrppa_two, + { "two", "nrppa.two", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nrppa_four, + { "four", "nrppa.four", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nrppa_eight, + { "eight", "nrppa.eight", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nrppa_sixteen, + { "sixteen", "nrppa.sixteen", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nrppa_thirty_two, + { "thirty-two", "nrppa.thirty_two", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_32", HFILL }}, + { &hf_nrppa_sixty_four, + { "sixty-four", "nrppa.sixty_four", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_64", HFILL }}, + { &hf_nrppa_one_hundred_and_twenty_eight, + { "one-hundred-and-twenty-eight", "nrppa.one_hundred_and_twenty_eight", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_128", HFILL }}, + { &hf_nrppa_two_hundred_and_fifty_six, + { "two-hundred-and-fifty-six", "nrppa.two_hundred_and_fifty_six", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_256", HFILL }}, + { &hf_nrppa_five_hundred_and_twelve, + { "five-hundred-and-twelve", "nrppa.five_hundred_and_twelve", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_512", HFILL }}, + { &hf_nrppa_one_thousand_and_twenty_four, + { "one-thousand-and-twenty-four", "nrppa.one_thousand_and_twenty_four", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1024", HFILL }}, + { &hf_nrppa_pRSMutingConfiguration_EUTRA_Extension, + { "pRSMutingConfiguration-EUTRA-Extension", "nrppa.pRSMutingConfiguration_EUTRA_Extension_element", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolIE_Single_Container", HFILL }}, + { &hf_nrppa_noOfFreqHoppingBands, + { "noOfFreqHoppingBands", "nrppa.noOfFreqHoppingBands", + FT_UINT32, BASE_DEC, VALS(nrppa_NumberOfFrequencyHoppingBands_vals), 0, + "NumberOfFrequencyHoppingBands", HFILL }}, + { &hf_nrppa_bandPositions, + { "bandPositions", "nrppa.bandPositions", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex", HFILL }}, + { &hf_nrppa_bandPositions_item, + { "NarrowBandIndex", "nrppa.NarrowBandIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_ResultRSRP_EUTRA_item, + { "ResultRSRP-EUTRA-Item", "nrppa.ResultRSRP_EUTRA_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_valueRSRP_EUTRA, + { "valueRSRP-EUTRA", "nrppa.valueRSRP_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_ResultRSRQ_EUTRA_item, + { "ResultRSRQ-EUTRA-Item", "nrppa.ResultRSRQ_EUTRA_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_cGI_UTRA, + { "cGI-UTRA", "nrppa.cGI_UTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + "CGI_EUTRA", HFILL }}, + { &hf_nrppa_valueRSRQ_EUTRA, + { "valueRSRQ-EUTRA", "nrppa.valueRSRQ_EUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_ResultGERAN_item, + { "ResultGERAN-Item", "nrppa.ResultGERAN_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_bCCH, + { "bCCH", "nrppa.bCCH", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_physCellIDGERAN, + { "physCellIDGERAN", "nrppa.physCellIDGERAN", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_rSSI, + { "rSSI", "nrppa.rSSI", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_ResultUTRAN_item, + { "ResultUTRAN-Item", "nrppa.ResultUTRAN_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_uARFCN, + { "uARFCN", "nrppa.uARFCN", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_physCellIDUTRAN, + { "physCellIDUTRAN", "nrppa.physCellIDUTRAN", + FT_UINT32, BASE_DEC, VALS(nrppa_T_physCellIDUTRAN_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_physCellIDUTRA_FDD, + { "physCellIDUTRA-FDD", "nrppa.physCellIDUTRA_FDD", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_physCellIDUTRA_TDD, + { "physCellIDUTRA-TDD", "nrppa.physCellIDUTRA_TDD", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_uTRA_RSCP, + { "uTRA-RSCP", "nrppa.uTRA_RSCP", + FT_INT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_uTRA_EcN0, + { "uTRA-EcN0", "nrppa.uTRA_EcN0", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_subframeAssignment, + { "subframeAssignment", "nrppa.subframeAssignment", + FT_UINT32, BASE_DEC, VALS(nrppa_T_subframeAssignment_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_WLANMeasurementQuantities_item, + { "ProtocolIE-Single-Container", "nrppa.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_wLANMeasurementQuantitiesValue, + { "wLANMeasurementQuantitiesValue", "nrppa.wLANMeasurementQuantitiesValue", + FT_UINT32, BASE_DEC, VALS(nrppa_WLANMeasurementQuantitiesValue_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_WLANMeasurementResult_item, + { "WLANMeasurementResult-Item", "nrppa.WLANMeasurementResult_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_wLAN_RSSI, + { "wLAN-RSSI", "nrppa.wLAN_RSSI", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_sSID, + { "sSID", "nrppa.sSID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_bSSID, + { "bSSID", "nrppa.bSSID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_hESSID, + { "hESSID", "nrppa.hESSID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_operatingClass, + { "operatingClass", "nrppa.operatingClass", + FT_UINT32, BASE_DEC, NULL, 0, + "WLANOperatingClass", HFILL }}, + { &hf_nrppa_countryCode, + { "countryCode", "nrppa.countryCode", + FT_UINT32, BASE_DEC, VALS(nrppa_WLANCountryCode_vals), 0, + "WLANCountryCode", HFILL }}, + { &hf_nrppa_wLANChannelList, + { "wLANChannelList", "nrppa.wLANChannelList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_wLANBand, + { "wLANBand", "nrppa.wLANBand", + FT_UINT32, BASE_DEC, VALS(nrppa_WLANBand_vals), 0, + NULL, HFILL }}, + { &hf_nrppa_WLANChannelList_item, + { "WLANChannel", "nrppa.WLANChannel", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_protocolIEs, + { "protocolIEs", "nrppa.protocolIEs", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolIE_Container", HFILL }}, + { &hf_nrppa_OTDOA_Information_Type_item, + { "ProtocolIE-Single-Container", "nrppa.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nrppa_oTDOA_Information_Type_Item, + { "oTDOA-Information-Type-Item", "nrppa.oTDOA_Information_Type_Item", + FT_UINT32, BASE_DEC, VALS(nrppa_OTDOA_Information_Item_vals), 0, + "OTDOA_Information_Item", HFILL }}, + { &hf_nrppa_privateIEs, + { "privateIEs", "nrppa.privateIEs", + FT_UINT32, BASE_DEC, NULL, 0, + "PrivateIE_Container", HFILL }}, + +/*--- End of included file: packet-nrppa-hfarr.c ---*/ +#line 85 "./asn1/nrppa/packet-nrppa-template.c" + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_nrppa, + +/*--- Included file: packet-nrppa-ettarr.c ---*/ +#line 1 "./asn1/nrppa/packet-nrppa-ettarr.c" + &ett_nrppa_PrivateIE_ID, + &ett_nrppa_ProtocolIE_Container, + &ett_nrppa_ProtocolIE_Field, + &ett_nrppa_ProtocolExtensionContainer, + &ett_nrppa_ProtocolExtensionField, + &ett_nrppa_PrivateIE_Container, + &ett_nrppa_PrivateIE_Field, + &ett_nrppa_NRPPA_PDU, + &ett_nrppa_InitiatingMessage, + &ett_nrppa_SuccessfulOutcome, + &ett_nrppa_UnsuccessfulOutcome, + &ett_nrppa_Cause, + &ett_nrppa_CGI_EUTRA, + &ett_nrppa_CriticalityDiagnostics, + &ett_nrppa_CriticalityDiagnostics_IE_List, + &ett_nrppa_CriticalityDiagnostics_IE_List_item, + &ett_nrppa_E_CID_MeasurementResult, + &ett_nrppa_MeasurementQuantities, + &ett_nrppa_MeasurementQuantities_Item, + &ett_nrppa_MeasuredResults, + &ett_nrppa_MeasuredResultsValue, + &ett_nrppa_NG_RANAccessPointPosition, + &ett_nrppa_NG_RAN_CGI, + &ett_nrppa_NG_RANCell, + &ett_nrppa_OTDOACells, + &ett_nrppa_OTDOACells_item, + &ett_nrppa_OTDOACell_Information, + &ett_nrppa_OTDOACell_Information_Item, + &ett_nrppa_OtherRATMeasurementQuantities, + &ett_nrppa_OtherRATMeasurementQuantities_Item, + &ett_nrppa_OtherRATMeasurementResult, + &ett_nrppa_OtherRATMeasuredResultsValue, + &ett_nrppa_PRSMutingConfiguration_EUTRA, + &ett_nrppa_PRSFrequencyHoppingConfiguration_EUTRA, + &ett_nrppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex, + &ett_nrppa_ResultRSRP_EUTRA, + &ett_nrppa_ResultRSRP_EUTRA_Item, + &ett_nrppa_ResultRSRQ_EUTRA, + &ett_nrppa_ResultRSRQ_EUTRA_Item, + &ett_nrppa_ResultGERAN, + &ett_nrppa_ResultGERAN_Item, + &ett_nrppa_ResultUTRAN, + &ett_nrppa_ResultUTRAN_Item, + &ett_nrppa_T_physCellIDUTRAN, + &ett_nrppa_TDD_Config_EUTRA_Item, + &ett_nrppa_WLANMeasurementQuantities, + &ett_nrppa_WLANMeasurementQuantities_Item, + &ett_nrppa_WLANMeasurementResult, + &ett_nrppa_WLANMeasurementResult_Item, + &ett_nrppa_WLANChannelList, + &ett_nrppa_E_CIDMeasurementInitiationRequest, + &ett_nrppa_E_CIDMeasurementInitiationResponse, + &ett_nrppa_E_CIDMeasurementInitiationFailure, + &ett_nrppa_E_CIDMeasurementFailureIndication, + &ett_nrppa_E_CIDMeasurementReport, + &ett_nrppa_E_CIDMeasurementTerminationCommand, + &ett_nrppa_OTDOAInformationRequest, + &ett_nrppa_OTDOA_Information_Type, + &ett_nrppa_OTDOA_Information_Type_Item, + &ett_nrppa_OTDOAInformationResponse, + &ett_nrppa_OTDOAInformationFailure, + &ett_nrppa_ErrorIndication, + &ett_nrppa_PrivateMessage, + +/*--- End of included file: packet-nrppa-ettarr.c ---*/ +#line 91 "./asn1/nrppa/packet-nrppa-template.c" + }; + + /* Register protocol */ + proto_nrppa = proto_register_protocol(PNAME, PSNAME, PFNAME); + register_dissector("nrppa", dissect_NRPPA_PDU_PDU, proto_nrppa); + + /* Register fields and subtrees */ + proto_register_field_array(proto_nrppa, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + /* Register dissector tables */ + nrppa_ies_dissector_table = register_dissector_table("nrppa.ies", "NRPPA-PROTOCOL-IES", proto_nrppa, FT_UINT32, BASE_DEC); + nrppa_proc_imsg_dissector_table = register_dissector_table("nrppa.proc.imsg", "NRPPA-ELEMENTARY-PROCEDURE InitiatingMessage", proto_nrppa, FT_UINT32, BASE_DEC); + nrppa_proc_sout_dissector_table = register_dissector_table("nrppa.proc.sout", "NRPPA-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_nrppa, FT_UINT32, BASE_DEC); + nrppa_proc_uout_dissector_table = register_dissector_table("nrppa.proc.uout", "NRPPA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_nrppa, FT_UINT32, BASE_DEC); +} + +/*--- proto_reg_handoff_nrppa ---------------------------------------*/ +void +proto_reg_handoff_nrppa(void) +{ + +/*--- Included file: packet-nrppa-dis-tab.c ---*/ +#line 1 "./asn1/nrppa/packet-nrppa-dis-tab.c" + dissector_add_uint("nrppa.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_LMF_UE_Measurement_ID, create_dissector_handle(dissect_Measurement_ID_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_ReportCharacteristics, create_dissector_handle(dissect_ReportCharacteristics_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_MeasurementPeriodicity, create_dissector_handle(dissect_MeasurementPeriodicity_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_MeasurementQuantities, create_dissector_handle(dissect_MeasurementQuantities_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_RAN_UE_Measurement_ID, create_dissector_handle(dissect_Measurement_ID_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_E_CID_MeasurementResult, create_dissector_handle(dissect_E_CID_MeasurementResult_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_OTDOACells, create_dissector_handle(dissect_OTDOACells_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_OTDOA_Information_Type_Group, create_dissector_handle(dissect_OTDOA_Information_Type_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_OTDOA_Information_Type_Item, create_dissector_handle(dissect_OTDOA_Information_Type_Item_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_MeasurementQuantities_Item, create_dissector_handle(dissect_MeasurementQuantities_Item_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_Cell_Portion_ID, create_dissector_handle(dissect_Cell_Portion_ID_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_OtherRATMeasurementQuantities, create_dissector_handle(dissect_OtherRATMeasurementQuantities_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_OtherRATMeasurementQuantities_Item, create_dissector_handle(dissect_OtherRATMeasurementQuantities_Item_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_OtherRATMeasurementResult, create_dissector_handle(dissect_OtherRATMeasurementResult_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_WLANMeasurementQuantities, create_dissector_handle(dissect_WLANMeasurementQuantities_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_WLANMeasurementQuantities_Item, create_dissector_handle(dissect_WLANMeasurementQuantities_Item_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_WLANMeasurementResult, create_dissector_handle(dissect_WLANMeasurementResult_PDU, proto_nrppa)); + dissector_add_uint("nrppa.ies", id_TDD_Config_EUTRA_Item, create_dissector_handle(dissect_TDD_Config_EUTRA_Item_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.imsg", id_errorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.imsg", id_privateMessage, create_dissector_handle(dissect_PrivateMessage_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.imsg", id_e_CIDMeasurementInitiation, create_dissector_handle(dissect_E_CIDMeasurementInitiationRequest_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.sout", id_e_CIDMeasurementInitiation, create_dissector_handle(dissect_E_CIDMeasurementInitiationResponse_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.uout", id_e_CIDMeasurementInitiation, create_dissector_handle(dissect_E_CIDMeasurementInitiationFailure_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.imsg", id_e_CIDMeasurementFailureIndication, create_dissector_handle(dissect_E_CIDMeasurementFailureIndication_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.imsg", id_e_CIDMeasurementReport, create_dissector_handle(dissect_E_CIDMeasurementReport_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.imsg", id_e_CIDMeasurementTermination, create_dissector_handle(dissect_E_CIDMeasurementTerminationCommand_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.imsg", id_oTDOAInformationExchange, create_dissector_handle(dissect_OTDOAInformationRequest_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.sout", id_oTDOAInformationExchange, create_dissector_handle(dissect_OTDOAInformationResponse_PDU, proto_nrppa)); + dissector_add_uint("nrppa.proc.uout", id_oTDOAInformationExchange, create_dissector_handle(dissect_OTDOAInformationFailure_PDU, proto_nrppa)); + + +/*--- End of included file: packet-nrppa-dis-tab.c ---*/ +#line 113 "./asn1/nrppa/packet-nrppa-template.c" +} |