diff options
Diffstat (limited to '')
-rw-r--r-- | epan/dissectors/asn1/lppa/CMakeLists.txt | 40 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn | 53 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/LPPA-Constants.asn | 101 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/LPPA-Containers.asn | 197 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/LPPA-IEs.asn | 971 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn | 415 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn | 235 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/lppa.cnf | 179 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/packet-lppa-template.c | 165 | ||||
-rw-r--r-- | epan/dissectors/asn1/lppa/packet-lppa-template.h | 37 |
10 files changed, 2393 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/lppa/CMakeLists.txt b/epan/dissectors/asn1/lppa/CMakeLists.txt new file mode 100644 index 00000000..2057cab1 --- /dev/null +++ b/epan/dissectors/asn1/lppa/CMakeLists.txt @@ -0,0 +1,40 @@ +# 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 lppa ) + +set( PROTO_OPT ) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + LPPA-CommonDataTypes.asn + LPPA-Constants.asn + LPPA-Containers.asn + LPPA-IEs.asn + LPPA-PDU-Contents.asn + LPPA-PDU-Descriptions.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + packet-${PROTOCOL_NAME}-template.h + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS ) + +ASN2WRS() diff --git a/epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn b/epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn new file mode 100644 index 00000000..8b7dcd09 --- /dev/null +++ b/epan/dissectors/asn1/lppa/LPPA-CommonDataTypes.asn @@ -0,0 +1,53 @@ +-- 3GPP TS 36.455 V16.1.0 (2020-09) +-- + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +LPPA-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) lppa (6) version1 (1) lppa-CommonDataTypes (3)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +LPPATransactionID ::= INTEGER (0..32767) + + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END diff --git a/epan/dissectors/asn1/lppa/LPPA-Constants.asn b/epan/dissectors/asn1/lppa/LPPA-Constants.asn new file mode 100644 index 00000000..92d49b7c --- /dev/null +++ b/epan/dissectors/asn1/lppa/LPPA-Constants.asn @@ -0,0 +1,101 @@ +-- 3GPP TS 36.455 V16.1.0 (2020-09) +-- + +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +LPPA-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) lppa (6) version1 (1) lppa-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM LPPA-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-errorIndication ProcedureCode ::= 0 +id-privateMessage ProcedureCode ::= 1 +id-e-CIDMeasurementInitiation ProcedureCode ::= 2 +id-e-CIDMeasurementFailureIndication ProcedureCode ::= 3 +id-e-CIDMeasurementReport ProcedureCode ::= 4 +id-e-CIDMeasurementTermination ProcedureCode ::= 5 +id-oTDOAInformationExchange ProcedureCode ::= 6 +id-uTDOAInformationExchange ProcedureCode ::= 7 +id-uTDOAInformationUpdate ProcedureCode ::= 8 +id-assistanceInformationControl ProcedureCode ::= 9 +id-assistanceInformationFeedback ProcedureCode ::= 10 + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxNrOfErrors INTEGER ::= 256 +maxCellineNB INTEGER ::= 256 +maxNoMeas INTEGER ::= 63 +maxCellReport INTEGER ::= 9 +maxnoOTDOAtypes INTEGER ::= 63 +maxServCell INTEGER ::= 5 +maxGERANMeas INTEGER ::= 8 +maxUTRANMeas INTEGER ::= 8 +maxCellineNB-ext INTEGER ::= 3840 +maxMBSFN-Allocations INTEGER ::= 8 +maxWLANchannels INTEGER ::= 16 +maxnoFreqHoppingBandsMinusOne INTEGER ::= 7 +maxNrOfPosSImessage INTEGER ::= 32 +maxnoAssistInfoFailureListItems INTEGER ::= 32 +maxNrOfSegments INTEGER ::= 64 +maxNrOfPosSIBs INTEGER ::= 32 +maxNRmeas INTEGER ::= 32 +maxResultsPerSSBIndex INTEGER ::= 64 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-Cause ProtocolIE-ID ::= 0 +id-CriticalityDiagnostics ProtocolIE-ID ::= 1 +id-E-SMLC-UE-Measurement-ID ProtocolIE-ID ::= 2 +id-ReportCharacteristics ProtocolIE-ID ::= 3 +id-MeasurementPeriodicity ProtocolIE-ID ::= 4 +id-MeasurementQuantities ProtocolIE-ID ::= 5 +id-eNB-UE-Measurement-ID ProtocolIE-ID ::= 6 +id-E-CID-MeasurementResult ProtocolIE-ID ::= 7 +id-OTDOACells ProtocolIE-ID ::= 8 +id-OTDOA-Information-Type-Group ProtocolIE-ID ::= 9 +id-OTDOA-Information-Type-Item ProtocolIE-ID ::= 10 +id-MeasurementQuantities-Item ProtocolIE-ID ::= 11 +id-RequestedSRSTransmissionCharacteristics ProtocolIE-ID ::= 12 +id-ULConfiguration ProtocolIE-ID ::= 13 +id-Cell-Portion-ID ProtocolIE-ID ::= 14 +id-InterRATMeasurementQuantities ProtocolIE-ID ::= 15 +id-InterRATMeasurementQuantities-Item ProtocolIE-ID ::= 16 +id-InterRATMeasurementResult ProtocolIE-ID ::= 17 +id-AddOTDOACells ProtocolIE-ID ::= 18 +id-WLANMeasurementQuantities ProtocolIE-ID ::= 19 +id-WLANMeasurementQuantities-Item ProtocolIE-ID ::= 20 +id-WLANMeasurementResult ProtocolIE-ID ::= 21 +id-Assistance-Information ProtocolIE-ID ::= 22 +id-Broadcast ProtocolIE-ID ::= 23 +id-AssistanceInformationFailureList ProtocolIE-ID ::= 24 +id-ResultsPerSSB-Index-List ProtocolIE-ID ::= 25 +id-ResultsPerSSB-Index-Item ProtocolIE-ID ::= 26 +id-NR-CGI ProtocolIE-ID ::= 27 + +END diff --git a/epan/dissectors/asn1/lppa/LPPA-Containers.asn b/epan/dissectors/asn1/lppa/LPPA-Containers.asn new file mode 100644 index 00000000..11d94b56 --- /dev/null +++ b/epan/dissectors/asn1/lppa/LPPA-Containers.asn @@ -0,0 +1,197 @@ +-- 3GPP TS 36.455 V16.1.0 (2020-09) +-- + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +LPPA-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) lppa (6) version1 (1) lppa-Containers (5)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM LPPA-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +LPPA-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +LPPA-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +LPPA-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +LPPA-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container { LPPA-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container { LPPA-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field { LPPA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id LPPA-PROTOCOL-IES.&id ({IEsSetParam}), + criticality LPPA-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value LPPA-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair { LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair { LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id LPPA-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality LPPA-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue LPPA-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality LPPA-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue LPPA-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, LPPA-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, LPPA-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer { LPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField { LPPA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id LPPA-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality LPPA-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue LPPA-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container { LPPA-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field { LPPA-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id LPPA-PRIVATE-IES.&id ({IEsSetParam}), + criticality LPPA-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value LPPA-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/epan/dissectors/asn1/lppa/LPPA-IEs.asn b/epan/dissectors/asn1/lppa/LPPA-IEs.asn new file mode 100644 index 00000000..ccc24203 --- /dev/null +++ b/epan/dissectors/asn1/lppa/LPPA-IEs.asn @@ -0,0 +1,971 @@ +-- 3GPP TS 36.455 V16.1.0 (2020-09) +-- + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +LPPA-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) lppa (6) version1 (1) lppa-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-MeasurementQuantities-Item, + id-ResultsPerSSB-Index-List, + id-ResultsPerSSB-Index-Item, + id-NR-CGI, + maxCellineNB, + maxCellReport, + maxNrOfErrors, + maxNoMeas, + maxnoOTDOAtypes, + maxServCell, + id-InterRATMeasurementQuantities-Item, + id-WLANMeasurementQuantities-Item, + maxGERANMeas, + maxUTRANMeas, + maxNRmeas, + maxResultsPerSSBIndex, + maxCellineNB-ext, + maxWLANchannels, + maxMBSFN-Allocations, + maxnoFreqHoppingBandsMinusOne, + maxNrOfPosSImessage, + maxnoAssistInfoFailureListItems, + maxNrOfSegments, + maxNrOfPosSIBs + +FROM LPPA-Constants + + Criticality, + LPPATransactionID, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage + +FROM LPPA-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + LPPA-PROTOCOL-EXTENSION, + LPPA-PROTOCOL-IES +FROM LPPA-Containers; + +-- A + +Add-OTDOACells ::= SEQUENCE (SIZE (1.. maxCellineNB-ext)) OF SEQUENCE { + add-OTDOACellInfo Add-OTDOACell-Information, + iE-Extensions ProtocolExtensionContainer { {Add-OTDOACells-ExtIEs} } OPTIONAL, + ... +} + +Add-OTDOACells-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +Add-OTDOACell-Information ::= SEQUENCE (SIZE (1..maxnoOTDOAtypes)) OF OTDOACell-Information-Item + +Assistance-Information ::= SEQUENCE { + systemInformation SystemInformation, + iE-Extensions ProtocolExtensionContainer { { Assistance-Information-ExtIEs} } OPTIONAL, + ... +} + +Assistance-Information-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceInformationFailureList ::= SEQUENCE (SIZE (1..maxnoAssistInfoFailureListItems)) OF SEQUENCE { + posSIB-Type PosSIB-Type, + outcome Outcome, + iE-Extensions ProtocolExtensionContainer { {AssistanceInformationFailureList-ExtIEs} } OPTIONAL, + ... +} + +AssistanceInformationFailureList-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +AssistanceInformationMetaData ::= SEQUENCE { + encrypted ENUMERATED {true, ...} OPTIONAL, + gNSSID ENUMERATED {gps, sbas, gzss, galileo, glonass, bds, ..., navic} OPTIONAL, + sBASID ENUMERATED {waas, egnos, msas, gagan, ...} OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { AssistanceInformationMetaData-ExtIEs} } OPTIONAL, + ... +} + +AssistanceInformationMetaData-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- B + +BCCH ::= INTEGER (0..1023, ...) + +BitmapsforNPRS ::= CHOICE { + ten BIT STRING(SIZE (10)), + forty BIT STRING(SIZE (40)), + ..., + ten-tdd BIT STRING(SIZE (8)), + forty-tdd BIT STRING(SIZE (32))} + +Broadcast ::= ENUMERATED { + start, + stop, + ... +} + +BroadcastPeriodicity ::= ENUMERATED { + ms80, + ms160, + ms320, + ms640, + ms1280, + ms2560, + ms5120, + ... +} + +BSSID ::= OCTET STRING (SIZE(6)) + + +-- C + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + requested-item-not-supported, + requested-item-temporarily-not-available, + ... + +} + +Cell-Portion-ID ::= INTEGER (0..255,... , 256..4095) + +CPLength ::= ENUMERATED { + normal, + extended, + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + lppatransactionID LPPATransactionID OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- D + +DL-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +-- E + +E-CID-MeasurementResult ::= SEQUENCE { + servingCell-ID ECGI, + servingCellTAC TAC, + e-UTRANAccessPointPosition E-UTRANAccessPointPosition OPTIONAL, + measuredResults MeasuredResults OPTIONAL, + ... +} + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EARFCN ::= INTEGER (0..65535, ..., 65536..262143) + +E-UTRANAccessPointPosition ::= SEQUENCE { + latitudeSign ENUMERATED {north, south}, + latitude INTEGER (0..8388607), + longitude INTEGER (-8388608..8388607), + directionOfAltitude ENUMERATED {height, depth}, + altitude INTEGER (0..32767), + uncertaintySemi-major INTEGER (0..127), + uncertaintySemi-minor INTEGER (0..127), + orientationOfMajorAxis INTEGER (0..179), + uncertaintyAltitude INTEGER (0..127), + confidence INTEGER (0..100), + ... +} + +-- F +-- G +-- H + +HESSID ::= OCTET STRING (SIZE(6)) + + +-- I + +InterRATMeasurementQuantities ::= SEQUENCE (SIZE (0.. maxNoMeas)) OF ProtocolIE-Single-Container { {InterRATMeasurementQuantities-ItemIEs} } + +InterRATMeasurementQuantities-ItemIEs LPPA-PROTOCOL-IES ::= { + { ID id-InterRATMeasurementQuantities-Item CRITICALITY reject TYPE InterRATMeasurementQuantities-Item PRESENCE mandatory}} + +InterRATMeasurementQuantities-Item ::= SEQUENCE { + interRATMeasurementQuantitiesValue InterRATMeasurementQuantitiesValue, + iE-Extensions ProtocolExtensionContainer { { InterRATMeasurementQuantitiesValue-ExtIEs} } OPTIONAL, + ... +} + +InterRATMeasurementQuantitiesValue-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +InterRATMeasurementQuantitiesValue ::= ENUMERATED { + geran, + utran, + ..., + nr +} + +InterRATMeasurementResult ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF InterRATMeasuredResultsValue + +InterRATMeasuredResultsValue ::= CHOICE { + resultGERAN ResultGERAN, + resultUTRAN ResultUTRAN, + ..., + resultNR ResultNR +} + +-- J +-- K +-- L +-- M + +Measurement-ID ::= INTEGER (1..15, ...) + +MeasurementPeriodicity ::= ENUMERATED { + ms120, + ms240, + ms480, + ms640, + ms1024, + ms2048, + ms5120, + ms10240, + min1, + min6, + min12, + min30, + min60, + ... +} + +MeasurementQuantities ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF ProtocolIE-Single-Container { {MeasurementQuantities-ItemIEs} } + +MeasurementQuantities-ItemIEs LPPA-PROTOCOL-IES ::= { + { ID id-MeasurementQuantities-Item CRITICALITY reject TYPE MeasurementQuantities-Item PRESENCE mandatory} +} + +MeasurementQuantities-Item ::= SEQUENCE { + measurementQuantitiesValue MeasurementQuantitiesValue, + iE-Extensions ProtocolExtensionContainer { { MeasurementQuantitiesValue-ExtIEs} } OPTIONAL, + ... +} + +MeasurementQuantitiesValue-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementQuantitiesValue ::= ENUMERATED { + cell-ID, + angleOfArrival, + timingAdvanceType1, + timingAdvanceType2, + rSRP, + rSRQ, + ... +} + +MeasuredResults ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF MeasuredResultsValue + + +MeasuredResultsValue ::= CHOICE { + valueAngleOfArrival INTEGER (0..719), + valueTimingAdvanceType1 INTEGER (0..7690), + valueTimingAdvanceType2 INTEGER (0..7690), + resultRSRP ResultRSRP, + resultRSRQ ResultRSRQ, + ... +} + +MBSFNsubframeConfiguration ::= SEQUENCE (SIZE (1.. maxMBSFN-Allocations)) OF MBSFNsubframeConfigurationValue + +MBSFNsubframeConfigurationValue ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation Subframeallocation +} + + +-- N + +NarrowBandIndex ::= INTEGER (0..15,...) + +NRCellIdentity ::= BIT STRING (SIZE(36)) + +NR-CGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + nRCellIdentity NRCellIdentity, + iE-Extensions ProtocolExtensionContainer { {NR-CGI-ExtIEs} } OPTIONAL, + ... +} + +NR-CGI-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +NPRSConfiguration ::= SEQUENCE { + nPRSSubframePartA NPRSSubframePartA OPTIONAL, + nPRSSubframePartB NPRSSubframePartB OPTIONAL, + ... +} + +NPRSMutingConfiguration ::= CHOICE { + two BIT STRING (SIZE (2)), + four BIT STRING (SIZE (4)), + eight BIT STRING (SIZE (8)), + sixteen BIT STRING (SIZE (16)), + ... +} + +NPRSSubframePartA ::= SEQUENCE { + bitmapsforNPRS BitmapsforNPRS, + nPRSMutingConfiguration NPRSMutingConfiguration OPTIONAL, + ... +} + +NPRSSubframePartB ::= SEQUENCE { + numberofNPRSOneOccasion ENUMERATED {sf10, sf20, sf40, sf80, sf160, sf320, sf640, sf1280, ..., sf2560}, + periodicityofNPRS ENUMERATED {sf160, sf320, sf640, sf1280, ..., sf2560}, + startingsubframeoffset ENUMERATED {zero, one-Eighth, two-Eighths, three-Eighths, four-Eighths, five-Eighths, six-Eighths, seven-Eighths, ...}, + nPRSMutingConfiguration NPRSMutingConfiguration OPTIONAL, + ..., + sIB1-NB-Subframe-TDD ENUMERATED { sf0, sf4, sf0and5, ...} OPTIONAL + +} + +NumberOfAntennaPorts ::= ENUMERATED { + n1-or-n2, + n4, + ... +} + +NumberOfDlFrames ::= ENUMERATED { + sf1, + sf2, + sf4, + sf6, + ... +} + + +NumberOfDlFrames-Extended ::= INTEGER (1..160,...) + +NumberOfFrequencyHoppingBands ::= ENUMERATED { + twobands, + fourbands, + ... +} + +NPRSSequenceInfo ::= INTEGER (0..174,...) + + +NRARFCN ::= INTEGER (0.. 3279165) + +NRPCI ::= INTEGER (0..1007) + +-- O + +OffsetNBChanneltoEARFCN ::= ENUMERATED { + minusTen, + minusNine, + minusEight, + minusSeven, + minusSix, + minusFive, + minusFour, + minusThree, + minusTwo, + minusOne, + minusZeroDotFive, + zero, + one, + two, + three, + four, + five, + six, + seven, + eight, + nine, + ... +} + +OperationModeInfo ::= ENUMERATED { + inband, + guardband, + standalone, + ... +} + +OTDOACells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + oTDOACellInfo OTDOACell-Information, + iE-Extensions ProtocolExtensionContainer { {OTDOACells-ExtIEs} } OPTIONAL, + ... +} + +OTDOACells-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +OTDOACell-Information ::= SEQUENCE (SIZE (1..maxnoOTDOAtypes)) OF OTDOACell-Information-Item + +OTDOACell-Information-Item ::= CHOICE { + pCI PCI, + cellId ECGI, + tAC TAC, + eARFCN EARFCN, + pRS-Bandwidth PRS-Bandwidth, + pRS-ConfigurationIndex PRS-Configuration-Index, + cPLength CPLength, + numberOfDlFrames NumberOfDlFrames, + numberOfAntennaPorts NumberOfAntennaPorts, + sFNInitialisationTime SFNInitialisationTime, + e-UTRANAccessPointPosition E-UTRANAccessPointPosition, + ..., + pRSMutingConfiguration PRSMutingConfiguration, + prsid PRS-ID, + tpid TP-ID, + tpType TP-Type, + numberOfDlFrames-Extended NumberOfDlFrames-Extended, + crsCPlength CPLength, + mBSFNsubframeConfiguration MBSFNsubframeConfiguration, + nPRSConfiguration NPRSConfiguration, + offsetNBChanneltoEARFCN OffsetNBChanneltoEARFCN, + operationModeInfo OperationModeInfo, + nPRS-ID INTEGER (0..4095, ...), + dL-Bandwidth DL-Bandwidth, + pRSOccasionGroup PRSOccasionGroup, + pRSFreqHoppingConfig PRSFrequencyHoppingConfiguration, + repetitionNumberofSIB1-NB RepetitionNumberofSIB1-NB, + nPRSSequenceInfo NPRSSequenceInfo, + nPRSType2 NPRSConfiguration, + tddConfiguration TDDConfiguration +} + +OTDOA-Information-Item ::= ENUMERATED { + pci, + cellid, + tac, + earfcn, + prsBandwidth, + prsConfigIndex, + cpLength, + noDlFrames, + noAntennaPorts, + sFNInitTime, + ..., + e-UTRANAccessPointPosition, + prsmutingconfiguration, + prsid, + tpid, + tpType, + crsCPlength, + mBSFNsubframeConfiguration, + nPRSConfiguration, + offsetNBChannelNumbertoEARFCN, + operationModeInfo, + nPRS-ID, + dlBandwidth, + multipleprsConfigurationsperCell, + prsOccasionGroup, + prsFrequencyHoppingConfiguration, + repetitionNumberofSIB1-NB, + nPRSSequenceInfo, + nPRSType2, + tddConfig +} + +Outcome ::= ENUMERATED { + failed, + ... +} + +-- P + +PCI ::= INTEGER (0..503, ...) + +PhysCellIDGERAN ::= INTEGER (0..63, ...) + +PhysCellIDUTRA-FDD ::= INTEGER (0..511, ...) + +PhysCellIDUTRA-TDD ::= INTEGER (0..127, ...) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +PosSIBs ::= SEQUENCE (SIZE (1.. maxNrOfPosSIBs)) OF SEQUENCE { + posSIB-Type PosSIB-Type, + posSIB-Segments PosSIB-Segments, + assistanceInformationMetaData AssistanceInformationMetaData OPTIONAL, + broadcastPriority INTEGER (1..16,...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { PosSIBs-ExtIEs} } OPTIONAL, + ... +} + +PosSIBs-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +PosSIB-Segments ::= SEQUENCE (SIZE (1.. maxNrOfSegments)) OF SEQUENCE { + assistanceDataSIBelement OCTET STRING, + iE-Extensions ProtocolExtensionContainer { { PosSIB-Segments-ExtIEs} } OPTIONAL, + ... +} + +PosSIB-Segments-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + + +PosSIB-Type ::= ENUMERATED { + posSibType1-1, + posSibType1-2, + posSibType1-3, + posSibType1-4, + posSibType1-5, + posSibType1-6, + posSibType1-7, + posSibType2-1, + posSibType2-2, + posSibType2-3, + posSibType2-4, + posSibType2-5, + posSibType2-6, + posSibType2-7, + posSibType2-8, + posSibType2-9, + posSibType2-10, + posSibType2-11, + posSibType2-12, + posSibType2-13, + posSibType2-14, + posSibType2-15, + posSibType2-16, + posSibType2-17, + posSibType2-18, + posSibType2-19, + posSibType3-1, + ..., + posSibType4-1, + posSibType5-1, + posSibType2-24, + posSibType2-25 +} + +PRS-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +PRS-Configuration-Index ::= INTEGER (0..4095, ...) + +PRS-ID ::= INTEGER (0..4095, ...) + +PRSMutingConfiguration ::= CHOICE { + two BIT STRING (SIZE (2)), + four BIT STRING (SIZE (4)), + eight BIT STRING (SIZE (8)), + sixteen BIT STRING (SIZE (16)), + ..., + 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)) +} + +PRSOccasionGroup ::= ENUMERATED { + og2, + og4, + og8, + og16, + og32, + og64, + og128, + ... +} + +PRSFrequencyHoppingConfiguration ::= SEQUENCE { + noOfFreqHoppingBands NumberOfFrequencyHoppingBands, + bandPositions SEQUENCE(SIZE (1..maxnoFreqHoppingBandsMinusOne)) OF NarrowBandIndex, + iE-Extensions ProtocolExtensionContainer { { PRSFrequencyHoppingConfiguration-Item-IEs} } OPTIONAL, + ... +} + +PRSFrequencyHoppingConfiguration-Item-IEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- Q +-- R + +RepetitionNumberofSIB1-NB ::= ENUMERATED { + r4, + r8, + r16, + ... +} + +ReportCharacteristics ::= ENUMERATED { + onDemand, + periodic, + ... +} + +RequestedSRSTransmissionCharacteristics ::= SEQUENCE { + numberOfTransmissions INTEGER (0..500, ...), + bandwidth INTEGER (1..100, ...), + ... +} + +ResultRSRP ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRP-Item + +ResultRSRP-Item ::= SEQUENCE { + pCI PCI, + eARFCN EARFCN, + eCGI ECGI OPTIONAL, + valueRSRP ValueRSRP, + iE-Extensions ProtocolExtensionContainer { { ResultRSRP-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultRSRP-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +ResultRSRQ ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRQ-Item + +ResultRSRQ-Item ::= SEQUENCE { + pCI PCI, + eARFCN EARFCN, + eCGI ECGI OPTIONAL, + valueRSRQ ValueRSRQ, + iE-Extensions ProtocolExtensionContainer { { ResultRSRQ-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultRSRQ-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +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 LPPA-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 LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +ResultNR ::= SEQUENCE (SIZE (1.. maxNRmeas)) OF ResultNR-Item + +ResultNR-Item ::= SEQUENCE { + nRARFCN NRARFCN, + nRPCI NRPCI, + sS-NRRSRP SS-NRRSRP OPTIONAL, + sS-NRRSRQ SS-NRRSRQ OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResultNR-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultNR-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + { ID id-ResultsPerSSB-Index-List CRITICALITY ignore EXTENSION ResultsPerSSB-Index-List PRESENCE optional}| + { ID id-NR-CGI CRITICALITY ignore EXTENSION NR-CGI PRESENCE optional}, + ... +} + + +ResultsPerSSB-Index-List ::= SEQUENCE (SIZE(1..maxResultsPerSSBIndex)) OF ResultsPerSSB-Index-Item + +ResultsPerSSB-Index-Item ::=SEQUENCE { + sSB-Index SSB-Index, + sS-NRRSRPBeamValue SS-NRRSRP OPTIONAL, + sS-NRRSRQBeamValue SS-NRRSRQ OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { ResultsPerSSB-Index-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultsPerSSB-Index-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +RSSI ::= INTEGER (0..63, ...) + + +-- S + +SFNInitialisationTime ::= BIT STRING (SIZE (64)) + +SRSConfigurationForAllCells ::= SEQUENCE (SIZE (1.. maxServCell)) OF SRSConfigurationForOneCell + +SRSConfigurationForOneCell ::= SEQUENCE { + pci PCI, + ul-earfcn EARFCN, + ul-bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}, + ul-cyclicPrefixLength CPLength, + srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7}, + srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3}, + srs-AntennaPort ENUMERATED {an1, an2, an4, ...}, + srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3}, + srs-cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}, + srs-ConfigIndex INTEGER (0..1023), + maxUpPts ENUMERATED {true} OPTIONAL, -- Cond ifTDD + transmissionComb INTEGER (0..1), + freqDomainPosition INTEGER (0..23), + groupHoppingEnabled BOOLEAN, + deltaSS INTEGER (0..29) OPTIONAL, + sfnInitialisationTime SFNInitialisationTime, + ... +} + + +Subframeallocation ::= CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) +} + +SS-NRRSRP ::= INTEGER (0..127) + +SS-NRRSRQ ::= INTEGER (0..127) + +SSB-Index ::= INTEGER (0..63) + +SSID ::= OCTET STRING (SIZE(1..32)) + +SystemInformation ::= SEQUENCE (SIZE (1.. maxNrOfPosSImessage)) OF SEQUENCE { + broadcastPeriodicity BroadcastPeriodicity, + posSIBs PosSIBs, + iE-Extensions ProtocolExtensionContainer { { SystemInformation-ExtIEs} } OPTIONAL, + ... +} + +SystemInformation-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- T + +TAC ::= OCTET STRING (SIZE(2)) + +TDDConfiguration ::= SEQUENCE { + subframeAssignment ENUMERATED { sa0, sa1, sa2, sa3, sa4, sa5, sa6, ... }, + iE-Extensions ProtocolExtensionContainer { { TDDConfiguration-ExtIEs} } OPTIONAL, + ... +} + +TDDConfiguration-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + + +TP-ID ::= INTEGER (0..4095, ...) + +TP-Type ::= ENUMERATED { prs-only-tp, ... } + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + + +-- U + +ULConfiguration ::= SEQUENCE { + pci PCI, + ul-earfcn EARFCN, + timingAdvanceType1 INTEGER (0..7690) OPTIONAL, + timingAdvanceType2 INTEGER (0..7690) OPTIONAL, + numberOfTransmissions INTEGER (0..500,...), + srsConfiguration SRSConfigurationForAllCells, + ... +} + +UARFCN ::= INTEGER (0..16383, ...) + +UTRA-EcN0 ::= INTEGER (0..49, ...) + +UTRA-RSCP ::= INTEGER (-5..91, ...) + +-- V + +ValueRSRP ::= INTEGER (0..97, ...) + +ValueRSRQ ::= INTEGER (0..34, ...) + +-- W + +WLANMeasurementQuantities ::= SEQUENCE (SIZE (0.. maxNoMeas)) OF ProtocolIE-Single-Container { {WLANMeasurementQuantities-ItemIEs} } + +WLANMeasurementQuantities-ItemIEs LPPA-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 LPPA-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 LPPA-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/lppa/LPPA-PDU-Contents.asn b/epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn new file mode 100644 index 00000000..81c60b68 --- /dev/null +++ b/epan/dissectors/asn1/lppa/LPPA-PDU-Contents.asn @@ -0,0 +1,415 @@ +-- 3GPP TS 36.455 V16.1.0 (2020-09) +-- + +-- ************************************************************** +-- +-- PDU definitions for LPPa. +-- +-- ************************************************************** + +LPPA-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) lppa (6) version1 (1) lppa-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + Cause, + CriticalityDiagnostics, + E-CID-MeasurementResult, + OTDOACells, + OTDOA-Information-Item, + Measurement-ID, + MeasurementPeriodicity, + MeasurementQuantities, + ReportCharacteristics, + RequestedSRSTransmissionCharacteristics, + ULConfiguration, + Cell-Portion-ID, + InterRATMeasurementQuantities, + InterRATMeasurementResult, + Add-OTDOACells, + WLANMeasurementQuantities, + WLANMeasurementResult, + Assistance-Information, + Broadcast, + AssistanceInformationFailureList + +FROM LPPA-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + LPPA-PRIVATE-IES, + LPPA-PROTOCOL-EXTENSION, + LPPA-PROTOCOL-IES, + LPPA-PROTOCOL-IES-PAIR +FROM LPPA-Containers + maxnoOTDOAtypes, + id-Cause, + id-CriticalityDiagnostics, + id-E-SMLC-UE-Measurement-ID, + id-OTDOACells, + id-OTDOA-Information-Type-Group, + id-OTDOA-Information-Type-Item, + id-ReportCharacteristics, + id-MeasurementPeriodicity, + id-MeasurementQuantities, + id-eNB-UE-Measurement-ID, + id-E-CID-MeasurementResult, + id-RequestedSRSTransmissionCharacteristics, + id-ULConfiguration, + id-Cell-Portion-ID, + id-InterRATMeasurementQuantities, + id-InterRATMeasurementResult, + id-AddOTDOACells, + id-WLANMeasurementQuantities, + id-WLANMeasurementResult, + id-Assistance-Information, + id-Broadcast, + id-AssistanceInformationFailureList + +FROM LPPA-Constants; + +-- ************************************************************** +-- +-- E-CID MEASUREMENT INITIATION REQUEST +-- +-- ************************************************************** + +E-CIDMeasurementInitiationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationRequest-IEs}}, + ... +} + +E-CIDMeasurementInitiationRequest-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory}| + { ID id-MeasurementPeriodicity CRITICALITY reject TYPE MeasurementPeriodicity PRESENCE conditional}| +-- The IE shall be present if the Report Characteritics IE is set to “periodic” -- + { ID id-MeasurementQuantities CRITICALITY reject TYPE MeasurementQuantities PRESENCE mandatory}| + { ID id-InterRATMeasurementQuantities CRITICALITY ignore TYPE InterRATMeasurementQuantities 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 LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-Cell-Portion-ID CRITICALITY ignore TYPE Cell-Portion-ID PRESENCE optional}| + { ID id-InterRATMeasurementResult CRITICALITY ignore TYPE InterRATMeasurementResult 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 LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + +-- ************************************************************** +-- +-- E-CID MEASUREMENT FAILURE INDICATION +-- +-- ************************************************************** + +E-CIDMeasurementFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementFailureIndication-IEs}}, + ... +} + + +E-CIDMeasurementFailureIndication-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT REPORT +-- +-- ************************************************************** + +E-CIDMeasurementReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementReport-IEs}}, + ... +} + + +E-CIDMeasurementReport-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE mandatory}| + { 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 LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- OTDOA INFORMATION REQUEST +-- +-- ************************************************************** + +OTDOAInformationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationRequest-IEs}}, + ... +} + +OTDOAInformationRequest-IEs LPPA-PROTOCOL-IES ::= { + { ID id-OTDOA-Information-Type-Group CRITICALITY reject TYPE OTDOA-Information-Type PRESENCE mandatory}, + ... +} + +OTDOA-Information-Type ::= SEQUENCE (SIZE(1..maxnoOTDOAtypes)) OF ProtocolIE-Single-Container { { OTDOA-Information-TypeIEs} } + +OTDOA-Information-TypeIEs LPPA-PROTOCOL-IES ::= { + { ID id-OTDOA-Information-Type-Item CRITICALITY reject TYPE OTDOA-Information-Type-Item PRESENCE mandatory}, + ... +} + +OTDOA-Information-Type-Item ::= SEQUENCE { + oTDOA-Information-Type-Item OTDOA-Information-Item, + iE-Extensions ProtocolExtensionContainer { { OTDOA-Information-Type-ItemExtIEs} } OPTIONAL, + ... +} + +OTDOA-Information-Type-ItemExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- OTDOA INFORMATION RESPONSE +-- +-- ************************************************************** + +OTDOAInformationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationResponse-IEs}}, + ... +} + +OTDOAInformationResponse-IEs LPPA-PROTOCOL-IES ::= { + { ID id-OTDOACells CRITICALITY ignore TYPE OTDOACells PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-AddOTDOACells CRITICALITY ignore TYPE Add-OTDOACells PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- OTDOA INFORMATION FAILURE +-- +-- ************************************************************** + +OTDOAInformationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationFailure-IEs}}, + ... +} + + +OTDOAInformationFailure-IEs LPPA-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UTDOA INFORMATION REQUEST +-- +-- ************************************************************** + +UTDOAInformationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UTDOAInformationRequest-IEs}}, + ... +} + +UTDOAInformationRequest-IEs LPPA-PROTOCOL-IES ::= { + { ID id-RequestedSRSTransmissionCharacteristics CRITICALITY ignore TYPE RequestedSRSTransmissionCharacteristics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UTDOA INFORMATION RESPONSE +-- +-- ************************************************************** + +UTDOAInformationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UTDOAInformationResponse-IEs}}, + ... +} + +UTDOAInformationResponse-IEs LPPA-PROTOCOL-IES ::= { + { ID id-ULConfiguration CRITICALITY reject TYPE ULConfiguration PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UTDOA INFORMATION FAILURE +-- +-- ************************************************************** + +UTDOAInformationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UTDOAInformationFailure-IEs}}, + ... +} + + +UTDOAInformationFailure-IEs LPPA-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- UTDOA INFORMATION UPDATE +-- +-- ************************************************************** + +UTDOAInformationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UTDOAInformationUpdate-IEs}}, + ... +} + +UTDOAInformationUpdate-IEs LPPA-PROTOCOL-IES ::= { + { ID id-ULConfiguration CRITICALITY ignore TYPE ULConfiguration PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ASSISTANCE INFORMATION CONTROL +-- +-- ************************************************************** + +AssistanceInformationControl ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{AssistanceInformationControl-IEs}}, + ... +} + +AssistanceInformationControl-IEs LPPA-PROTOCOL-IES ::= { + { ID id-Assistance-Information CRITICALITY reject TYPE Assistance-Information PRESENCE optional}| + { ID id-Broadcast CRITICALITY reject TYPE Broadcast PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ASSISTANCE INFORMATION FEEDBACK +-- +-- ************************************************************** + +AssistanceInformationFeedback ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{AssistanceInformationFeedback-IEs}}, + ... +} + +AssistanceInformationFeedback-IEs LPPA-PROTOCOL-IES ::= { + { ID id-AssistanceInformationFailureList CRITICALITY reject TYPE AssistanceInformationFailureList PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs LPPA-PROTOCOL-IES ::= { + + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs LPPA-PRIVATE-IES ::= { + ... +} + +END diff --git a/epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn b/epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn new file mode 100644 index 00000000..e35d1aa2 --- /dev/null +++ b/epan/dissectors/asn1/lppa/LPPA-PDU-Descriptions.asn @@ -0,0 +1,235 @@ +-- 3GPP TS 36.455 V16.1.0 (2020-09) +-- + +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +LPPA-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) lppa (6) version1 (1) lppa-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode, + LPPATransactionID + +FROM LPPA-CommonDataTypes + + + ErrorIndication, + PrivateMessage, + E-CIDMeasurementInitiationRequest, + E-CIDMeasurementInitiationResponse, + E-CIDMeasurementInitiationFailure, + E-CIDMeasurementFailureIndication, + E-CIDMeasurementReport, + E-CIDMeasurementTerminationCommand, + OTDOAInformationRequest, + OTDOAInformationResponse, + OTDOAInformationFailure, + UTDOAInformationRequest, + UTDOAInformationResponse, + UTDOAInformationFailure, + UTDOAInformationUpdate, + AssistanceInformationControl, + AssistanceInformationFeedback + + +FROM LPPA-PDU-Contents + + id-errorIndication, + id-privateMessage, + id-e-CIDMeasurementInitiation, + id-e-CIDMeasurementFailureIndication, + id-e-CIDMeasurementReport, + id-e-CIDMeasurementTermination, + id-oTDOAInformationExchange, + id-uTDOAInformationExchange, + id-uTDOAInformationUpdate, + id-assistanceInformationControl, + id-assistanceInformationFeedback + + +FROM LPPA-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +LPPA-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +LPPA-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode LPPA-ELEMENTARY-PROCEDURE.&procedureCode ({LPPA-ELEMENTARY-PROCEDURES}), + criticality LPPA-ELEMENTARY-PROCEDURE.&criticality ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}), + lppatransactionID LPPATransactionID, + value LPPA-ELEMENTARY-PROCEDURE.&InitiatingMessage ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode LPPA-ELEMENTARY-PROCEDURE.&procedureCode ({LPPA-ELEMENTARY-PROCEDURES}), + criticality LPPA-ELEMENTARY-PROCEDURE.&criticality ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}), + lppatransactionID LPPATransactionID, + value LPPA-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode LPPA-ELEMENTARY-PROCEDURE.&procedureCode ({LPPA-ELEMENTARY-PROCEDURES}), + criticality LPPA-ELEMENTARY-PROCEDURE.&criticality ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}), + lppatransactionID LPPATransactionID, + value LPPA-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({LPPA-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +LPPA-ELEMENTARY-PROCEDURES LPPA-ELEMENTARY-PROCEDURE ::= { + LPPA-ELEMENTARY-PROCEDURES-CLASS-1 | + LPPA-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +LPPA-ELEMENTARY-PROCEDURES-CLASS-1 LPPA-ELEMENTARY-PROCEDURE ::= { + e-CIDMeasurementInitiation | + oTDOAInformationExchange , + ..., + uTDOAInformationExchange +} + +LPPA-ELEMENTARY-PROCEDURES-CLASS-2 LPPA-ELEMENTARY-PROCEDURE ::= { + e-CIDMeasurementFailureIndication | + e-CIDMeasurementReport | + e-CIDMeasurementTermination | + errorIndication | + privateMessage , + ..., + uTDOAInformationUpdate | + assistanceInformationControl | + assistanceInformationFeedback +} + + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +e-CIDMeasurementInitiation LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementInitiationRequest + SUCCESSFUL OUTCOME E-CIDMeasurementInitiationResponse + UNSUCCESSFUL OUTCOME E-CIDMeasurementInitiationFailure + PROCEDURE CODE id-e-CIDMeasurementInitiation + CRITICALITY reject +} + +e-CIDMeasurementFailureIndication LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementFailureIndication + PROCEDURE CODE id-e-CIDMeasurementFailureIndication + CRITICALITY ignore +} + +e-CIDMeasurementReport LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementReport + PROCEDURE CODE id-e-CIDMeasurementReport + CRITICALITY ignore +} + +e-CIDMeasurementTermination LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE E-CIDMeasurementTerminationCommand + PROCEDURE CODE id-e-CIDMeasurementTermination + CRITICALITY reject +} + +oTDOAInformationExchange LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE OTDOAInformationRequest + SUCCESSFUL OUTCOME OTDOAInformationResponse + UNSUCCESSFUL OUTCOME OTDOAInformationFailure + PROCEDURE CODE id-oTDOAInformationExchange + CRITICALITY reject +} + +uTDOAInformationExchange LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UTDOAInformationRequest + SUCCESSFUL OUTCOME UTDOAInformationResponse + UNSUCCESSFUL OUTCOME UTDOAInformationFailure + PROCEDURE CODE id-uTDOAInformationExchange + CRITICALITY reject +} + +uTDOAInformationUpdate LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UTDOAInformationUpdate + PROCEDURE CODE id-uTDOAInformationUpdate + CRITICALITY ignore +} + +assistanceInformationControl LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE AssistanceInformationControl + PROCEDURE CODE id-assistanceInformationControl + CRITICALITY reject +} + +assistanceInformationFeedback LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE AssistanceInformationFeedback + PROCEDURE CODE id-assistanceInformationFeedback + CRITICALITY reject +} + +errorIndication LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + + +privateMessage LPPA-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +END diff --git a/epan/dissectors/asn1/lppa/lppa.cnf b/epan/dissectors/asn1/lppa/lppa.cnf new file mode 100644 index 00000000..a0a4381c --- /dev/null +++ b/epan/dissectors/asn1/lppa/lppa.cnf @@ -0,0 +1,179 @@ +# lppa.cnf +# llpa conformation file +# Copyright 2011-2020 Pascal Quantin + +#.OPT +PER +ALIGNED +#.END + +#.MAKE_ENUM +ProcedureCode +ProtocolIE-ID + +#.OMIT_ASSIGNMENT +Presence +ProtocolIE-ContainerList +ProtocolIE-ContainerPairList +ProtocolIE-ContainerPair +ProtocolIE-FieldPair + +#.PDU +LPPA-PDU + +#.TYPE_RENAME +InitiatingMessage/value InitiatingMessage_value +SuccessfulOutcome/value SuccessfulOutcome_value +UnsuccessfulOutcome/value UnsuccessfulOutcome_value + +#.FIELD_RENAME +InitiatingMessage/value initiatingMessagevalue +UnsuccessfulOutcome/value unsuccessfulOutcome_value +SuccessfulOutcome/value successfulOutcome_value +ProtocolIE-Field/value ie_field_value +ProtocolExtensionField/id ext_id + +#.FN_BODY ProtocolIE-ID VAL_PTR=&lppa_data->protocol_ie_id + struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s + +#.FN_FTR ProtocolIE-ID + if (tree) { + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(lppa_data->protocol_ie_id, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)")); + } +#.END + +#.FN_BODY ProcedureCode VAL_PTR = &lppa_data->procedure_code + struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo); + +%(DEFAULT_BODY)s + + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%%s ", + val_to_str(lppa_data->procedure_code, lppa_ProcedureCode_vals, + "unknown message")); +#.END + +#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue + +#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue + +#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue +#.FN_HDR InitiatingMessage/value + struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo); + lppa_data->message_type = INITIATING_MESSAGE; +#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue +#.FN_HDR SuccessfulOutcome/value + struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo); + lppa_data->message_type = SUCCESSFUL_OUTCOME; +#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue +#.FN_HDR UnsuccessfulOutcome/value + struct lppa_private_data *lppa_data = lppa_get_private_data(actx->pinfo); + lppa_data->message_type = UNSUCCESSFUL_OUTCOME; + +#.FN_HDR LPPA-PDU + + proto_tree_add_item(tree, proto_lppa, tvb, 0, -1, ENC_NA); + + col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "LPPa"); +#.END + +#.TYPE_ATTR +BSSID TYPE=FT_ETHER + +#.TYPE_ATTR +HESSID TYPE=FT_ETHER + +#.TYPE_ATTR +# ProcedureCode +id-errorIndication ProcedureCode +id-privateMessage ProcedureCode +id-e-CIDMeasurementInitiation ProcedureCode +id-e-CIDMeasurementFailureIndication ProcedureCode +id-e-CIDMeasurementReport ProcedureCode +id-e-CIDMeasurementTermination ProcedureCode +id-oTDOAInformationExchange ProcedureCode +id-uTDOAInformationExchange ProcedureCode +id-uTDOAInformationUpdate ProcedureCode +id-assistanceInformationControl ProcedureCode +id-assistanceInformationFeedback ProcedureCode + +# ProtocolIE-ID +id-Cause ProtocolIE-ID +id-CriticalityDiagnostics ProtocolIE-ID +id-E-SMLC-UE-Measurement-ID ProtocolIE-ID +id-ReportCharacteristics ProtocolIE-ID +id-MeasurementPeriodicity ProtocolIE-ID +id-MeasurementQuantities ProtocolIE-ID +id-eNB-UE-Measurement-ID ProtocolIE-ID +id-E-CID-MeasurementResult ProtocolIE-ID +id-OTDOACells ProtocolIE-ID +id-OTDOA-Information-Type-Group ProtocolIE-ID +id-OTDOA-Information-Type-Item ProtocolIE-ID +id-MeasurementQuantities-Item ProtocolIE-ID +id-RequestedSRSTransmissionCharacteristics ProtocolIE-ID +id-ULConfiguration ProtocolIE-ID +id-Cell-Portion-ID ProtocolIE-ID +id-InterRATMeasurementQuantities ProtocolIE-ID +id-InterRATMeasurementQuantities-Item ProtocolIE-ID +id-InterRATMeasurementResult ProtocolIE-ID +id-AddOTDOACells ProtocolIE-ID +id-WLANMeasurementQuantities ProtocolIE-ID +id-WLANMeasurementQuantities-Item ProtocolIE-ID +id-WLANMeasurementResult ProtocolIE-ID +id-Assistance-Information ProtocolIE-ID +id-Broadcast ProtocolIE-ID +id-AssistanceInformationFailureList ProtocolIE-ID +id-ResultsPerSSB-Index-List ProtocolIE-ID +id-ResultsPerSSB-Index-Item ProtocolIE-ID +id-NR-CGI ProtocolIE-ID + +#.REGISTER +#LPPA-PROTOCOL-IES +MeasurementQuantities-Item N lppa.ies id-MeasurementQuantities-Item +ReportCharacteristics N lppa.ies id-ReportCharacteristics +MeasurementPeriodicity N lppa.ies id-MeasurementPeriodicity +MeasurementQuantities N lppa.ies id-MeasurementQuantities +E-CID-MeasurementResult N lppa.ies id-E-CID-MeasurementResult +OTDOA-Information-Type N lppa.ies id-OTDOA-Information-Type-Group +OTDOA-Information-Type-Item N lppa.ies id-OTDOA-Information-Type-Item +OTDOACells N lppa.ies id-OTDOACells +Cause N lppa.ies id-Cause +CriticalityDiagnostics N lppa.ies id-CriticalityDiagnostics +Measurement-ID N lppa.ies id-E-SMLC-UE-Measurement-ID +Measurement-ID N lppa.ies id-eNB-UE-Measurement-ID +RequestedSRSTransmissionCharacteristics N lppa.ies id-RequestedSRSTransmissionCharacteristics +ULConfiguration N lppa.ies id-ULConfiguration +InterRATMeasurementQuantities N lppa.ies id-InterRATMeasurementQuantities +Cell-Portion-ID N lppa.ies id-Cell-Portion-ID +InterRATMeasurementResult N lppa.ies id-InterRATMeasurementResult +InterRATMeasurementQuantities-Item N lppa.ies id-InterRATMeasurementQuantities-Item +WLANMeasurementQuantities N lppa.ies id-WLANMeasurementQuantities +WLANMeasurementResult N lppa.ies id-WLANMeasurementResult +Add-OTDOACells N lppa.ies id-AddOTDOACells +WLANMeasurementQuantities-Item N lppa.ies id-WLANMeasurementQuantities-Item +Assistance-Information N lppa.ies id-Assistance-Information +Broadcast N lppa.ies id-Broadcast +AssistanceInformationFailureList N lppa.ies id-AssistanceInformationFailureList + +#LPPA-PROTOCOL-EXTENSION +ResultsPerSSB-Index-List N lppa.extension id-ResultsPerSSB-Index-List +NR-CGI N lppa.extension id-NR-CGI + +#LPPA-ELEMENTARY-PROCEDURE +E-CIDMeasurementInitiationRequest N lppa.proc.imsg id-e-CIDMeasurementInitiation +E-CIDMeasurementInitiationResponse N lppa.proc.sout id-e-CIDMeasurementInitiation +E-CIDMeasurementInitiationFailure N lppa.proc.uout id-e-CIDMeasurementInitiation +E-CIDMeasurementFailureIndication N lppa.proc.imsg id-e-CIDMeasurementFailureIndication +E-CIDMeasurementReport N lppa.proc.imsg id-e-CIDMeasurementReport +E-CIDMeasurementTerminationCommand N lppa.proc.imsg id-e-CIDMeasurementTermination +OTDOAInformationRequest N lppa.proc.imsg id-oTDOAInformationExchange +OTDOAInformationResponse N lppa.proc.sout id-oTDOAInformationExchange +OTDOAInformationFailure N lppa.proc.uout id-oTDOAInformationExchange +ErrorIndication N lppa.proc.imsg id-errorIndication +PrivateMessage N lppa.proc.imsg id-privateMessage +UTDOAInformationRequest N lppa.proc.imsg id-uTDOAInformationExchange +UTDOAInformationResponse N lppa.proc.sout id-uTDOAInformationExchange +UTDOAInformationFailure N lppa.proc.uout id-uTDOAInformationExchange +UTDOAInformationUpdate N lppa.proc.imsg id-uTDOAInformationUpdate +AssistanceInformationControl N lppa.proc.imsg id-assistanceInformationControl +AssistanceInformationFeedback N lppa.proc.imsg id-assistanceInformationFeedback diff --git a/epan/dissectors/asn1/lppa/packet-lppa-template.c b/epan/dissectors/asn1/lppa/packet-lppa-template.c new file mode 100644 index 00000000..56277499 --- /dev/null +++ b/epan/dissectors/asn1/lppa/packet-lppa-template.c @@ -0,0 +1,165 @@ +/* packet-lppa.c + * Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection + * Copyright 2011-2019, Pascal Quantin <pascal@wireshark.org> + * + * 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 36.455 version 16.1.0 (2020-09) + * http://www.3gpp.org + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/proto_data.h> +#include <epan/asn1.h> + +#include "packet-per.h" +#include "packet-lppa.h" + +#define PNAME "LTE Positioning Protocol A (LPPa)" +#define PSNAME "LPPa" +#define PFNAME "lppa" + +void proto_register_lppa(void); +void proto_reg_handoff_lppa(void); + +/* Initialize the protocol and registered fields */ +static int proto_lppa = -1; + +#include "packet-lppa-hf.c" + +/* Initialize the subtree pointers */ +static gint ett_lppa = -1; +#include "packet-lppa-ett.c" + +enum { + INITIATING_MESSAGE, + SUCCESSFUL_OUTCOME, + UNSUCCESSFUL_OUTCOME +}; + +/* Dissector tables */ +static dissector_table_t lppa_ies_dissector_table; +static dissector_table_t lppa_extension_dissector_table; +static dissector_table_t lppa_proc_imsg_dissector_table; +static dissector_table_t lppa_proc_sout_dissector_table; +static dissector_table_t lppa_proc_uout_dissector_table; + +/* Include constants */ +#include "packet-lppa-val.h" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); + +struct lppa_private_data { + guint32 procedure_code; + guint32 protocol_ie_id; + guint32 protocol_extension_id; + guint32 message_type; +}; + +static struct lppa_private_data* +lppa_get_private_data(packet_info* pinfo) +{ + struct lppa_private_data* lppa_data = (struct lppa_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_lppa, 0); + if (!lppa_data) { + lppa_data = wmem_new0(pinfo->pool, struct lppa_private_data); + p_add_proto_data(pinfo->pool, pinfo, proto_lppa, 0, lppa_data); + } + return lppa_data; +} + +#include "packet-lppa-fn.c" + + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + + lppa_ctx_t lppa_ctx; + struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo); + + lppa_ctx.message_type = lppa_data->message_type; + lppa_ctx.ProcedureCode = lppa_data->procedure_code; + lppa_ctx.ProtocolIE_ID = lppa_data->protocol_ie_id; + lppa_ctx.ProtocolExtensionID = lppa_data->protocol_extension_id; + + return (dissector_try_uint_new(lppa_ies_dissector_table, lppa_ctx.ProtocolIE_ID, tvb, pinfo, tree, FALSE, &lppa_ctx)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + lppa_ctx_t lppa_ctx; + struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo); + + lppa_ctx.message_type = lppa_data->message_type; + lppa_ctx.ProcedureCode = lppa_data->procedure_code; + lppa_ctx.ProtocolIE_ID = lppa_data->protocol_ie_id; + lppa_ctx.ProtocolExtensionID = lppa_data->protocol_extension_id; + + return (dissector_try_uint_new(lppa_extension_dissector_table, lppa_ctx.ProtocolExtensionID, tvb, pinfo, tree, FALSE, &lppa_ctx)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) +{ + struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo); + return (dissector_try_uint_new(lppa_proc_imsg_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) +{ + struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo); + return (dissector_try_uint_new(lppa_proc_sout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) +{ + struct lppa_private_data* lppa_data = lppa_get_private_data(pinfo); + + return (dissector_try_uint_new(lppa_proc_uout_dissector_table, lppa_data->procedure_code, tvb, pinfo, tree, FALSE, data)) ? tvb_captured_length(tvb) : 0; +} + +/*--- proto_register_lppa -------------------------------------------*/ +void proto_register_lppa(void) { + + /* List of fields */ + static hf_register_info hf[] = { + + #include "packet-lppa-hfarr.c" + }; + + /* List of subtrees */ + static gint* ett[] = { + &ett_lppa, + #include "packet-lppa-ettarr.c" + }; + + /* Register protocol */ + proto_lppa = proto_register_protocol(PNAME, PSNAME, PFNAME); + register_dissector("lppa", dissect_LPPA_PDU_PDU, proto_lppa); + + /* Register fields and subtrees */ + proto_register_field_array(proto_lppa, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + /* Register dissector tables */ + lppa_ies_dissector_table = register_dissector_table("lppa.ies", "LPPA-PROTOCOL-IES", proto_lppa, FT_UINT32, BASE_DEC); + lppa_extension_dissector_table = register_dissector_table("lppa.extension", "LPPA-PROTOCOL-EXTENSION", proto_lppa, FT_UINT32, BASE_DEC); + lppa_proc_imsg_dissector_table = register_dissector_table("lppa.proc.imsg", "LPPA-ELEMENTARY-PROCEDURE InitiatingMessage", proto_lppa, FT_UINT32, BASE_DEC); + lppa_proc_sout_dissector_table = register_dissector_table("lppa.proc.sout", "LPPA-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_lppa, FT_UINT32, BASE_DEC); + lppa_proc_uout_dissector_table = register_dissector_table("lppa.proc.uout", "LPPA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_lppa, FT_UINT32, BASE_DEC); +} + +/*--- proto_reg_handoff_lppa ---------------------------------------*/ +void +proto_reg_handoff_lppa(void) +{ +#include "packet-lppa-dis-tab.c" +} diff --git a/epan/dissectors/asn1/lppa/packet-lppa-template.h b/epan/dissectors/asn1/lppa/packet-lppa-template.h new file mode 100644 index 00000000..7e85331d --- /dev/null +++ b/epan/dissectors/asn1/lppa/packet-lppa-template.h @@ -0,0 +1,37 @@ +/* packet-lppa.h + * Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef PACKET_LPPA_H +#define PACKET_LPPA_H + +typedef struct _lppa_ctx_t { + guint32 message_type; + guint32 ProcedureCode; + guint32 ProtocolIE_ID; + guint32 ProtocolExtensionID; +} lppa_ctx_t; + + +#include "packet-lppa-exp.h" + +#endif /* PACKET_LPPA_H */ + +/* + * Editor modelines + * + * Local Variables: + * c-basic-offset: 2 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * ex: set shiftwidth=2 tabstop=8 expandtab: + * :indentSize=2:tabSize=8:noTabs=true: + */ |