diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-10-23 17:58:45 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-10-23 17:58:45 +0000 |
commit | 4dcd0ff1e3f008c39e26b87678b4440f2b899773 (patch) | |
tree | 498d48bb503990feba8651bc53f9c08235fc9b85 /asn1/lppa | |
parent | 97e1e5bc85602c4cb1f9283ea39ec00edc198961 (diff) |
From Pascal Quantin.
The attached patch adds the LPPa (LTE Positioning Protocol A) dissector as
specified in 3GPP 36.455 release 9.4.1.
(Just adding the asn1 dir)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6478
svn path=/trunk/; revision=39515
Diffstat (limited to 'asn1/lppa')
-rwxr-xr-x | asn1/lppa/LPPA-Common.asn | 58 | ||||
-rwxr-xr-x | asn1/lppa/LPPA-Constant.asn | 78 | ||||
-rwxr-xr-x | asn1/lppa/LPPA-Container.asn | 198 | ||||
-rwxr-xr-x | asn1/lppa/LPPA-ElementaryProcedure.asn | 197 | ||||
-rwxr-xr-x | asn1/lppa/LPPA-InformationElement.asn | 378 | ||||
-rwxr-xr-x | asn1/lppa/LPPA-PDU.asn | 290 | ||||
-rwxr-xr-x | asn1/lppa/Makefile.am | 26 | ||||
-rwxr-xr-x | asn1/lppa/Makefile.common | 48 | ||||
-rwxr-xr-x | asn1/lppa/Makefile.nmake | 29 | ||||
-rwxr-xr-x | asn1/lppa/lppa.cnf | 117 | ||||
-rwxr-xr-x | asn1/lppa/packet-lppa-template.c | 127 |
11 files changed, 1546 insertions, 0 deletions
diff --git a/asn1/lppa/LPPA-Common.asn b/asn1/lppa/LPPA-Common.asn new file mode 100755 index 0000000000..d5fa98ec43 --- /dev/null +++ b/asn1/lppa/LPPA-Common.asn @@ -0,0 +1,58 @@ +-- 3GPP TS 36.455 V9.4.1 (2011-03) +-- $Id$ +-- + +-- ************************************************************** +-- +-- 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/asn1/lppa/LPPA-Constant.asn b/asn1/lppa/LPPA-Constant.asn new file mode 100755 index 0000000000..a38e807d3e --- /dev/null +++ b/asn1/lppa/LPPA-Constant.asn @@ -0,0 +1,78 @@ +-- 3GPP TS 36.455 V9.4.1 (2011-03) +-- $Id$ +-- + +-- ************************************************************** +-- +-- 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 + + + + + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxNrOfErrors INTEGER ::= 256 +maxCellineNB INTEGER ::= 256 +maxNoMeas INTEGER ::= 63 +maxCellReport INTEGER ::= 9 +maxnoOTDOAtypes INTEGER ::= 63 + + + + +-- ************************************************************** +-- +-- 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 + + +END diff --git a/asn1/lppa/LPPA-Container.asn b/asn1/lppa/LPPA-Container.asn new file mode 100755 index 0000000000..1b14e24c0d --- /dev/null +++ b/asn1/lppa/LPPA-Container.asn @@ -0,0 +1,198 @@ +-- 3GPP TS 36.455 V9.4.1 (2011-03) +-- $Id$ +-- + +-- ************************************************************** +-- +-- 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/asn1/lppa/LPPA-ElementaryProcedure.asn b/asn1/lppa/LPPA-ElementaryProcedure.asn new file mode 100755 index 0000000000..d2feafcb20 --- /dev/null +++ b/asn1/lppa/LPPA-ElementaryProcedure.asn @@ -0,0 +1,197 @@ +-- 3GPP TS 36.455 V9.4.1 (2011-03) +-- $Id$ +-- + +-- ************************************************************** +-- +-- 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 + + +FROM LPPA-PDU-Contents + + id-errorIndication, + id-privateMessage, + id-e-CIDMeasurementInitiation, + id-e-CIDMeasurementFailureIndication, + id-e-CIDMeasurementReport, + id-e-CIDMeasurementTermination, + id-oTDOAInformationExchange + + +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 , + ... +} + +LPPA-ELEMENTARY-PROCEDURES-CLASS-2 LPPA-ELEMENTARY-PROCEDURE ::= { + e-CIDMeasurementFailureIndication | + e-CIDMeasurementReport | + e-CIDMeasurementTermination | + errorIndication | + privateMessage , + ... +} + + +-- ************************************************************** +-- +-- 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 +} + + +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/asn1/lppa/LPPA-InformationElement.asn b/asn1/lppa/LPPA-InformationElement.asn new file mode 100755 index 0000000000..1fb7feae8f --- /dev/null +++ b/asn1/lppa/LPPA-InformationElement.asn @@ -0,0 +1,378 @@ +-- 3GPP TS 36.455 V9.4.1 (2011-03) +-- $Id$ +-- + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +LPPA-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) lppa (6) version1 (1) lppa-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-MeasurementQuantities-Item, + maxCellineNB, + maxCellReport, + maxNrOfErrors, + maxNoMeas, + maxnoOTDOAtypes + +FROM LPPA-Constants + + Criticality, + LPPATransactionID, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage + +FROM LPPA-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + LPPA-PROTOCOL-EXTENSION, + LPPA-PROTOCOL-IES +FROM LPPA-Containers; + +-- A +-- B + +-- C + +Cause ::= CHOICE { + radioNetwork CauseRadioNetwork, + protocol CauseProtocol, + misc CauseMisc, + ... +} + +CauseMisc ::= ENUMERATED { + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + unspecified, + abstract-syntax-error-falsely-constructed-message, + ... +} + +CauseRadioNetwork ::= ENUMERATED { + unspecified, + requested-item-not-supported, + requested-item-temporarily-not-available, + ... + +} + +CPLength ::= ENUMERATED { + normal, + extended, + ... +} + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + lppatransactionID LPPATransactionID OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + + +CriticalityDiagnostics-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- D +-- E + +E-CID-MeasurementResult ::= SEQUENCE { + servingCell-ID ECGI, + servingCellTAC TAC, + e-UTRANAccessPointPosition E-UTRANAccessPointPosition OPTIONAL, + measuredResults MeasuredResults OPTIONAL, + ... +} + +ECGI ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + eUTRANcellIdentifier EUTRANCellIdentifier, + iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL, + ... +} + +ECGI-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +EUTRANCellIdentifier ::= BIT STRING (SIZE (28)) + +EARFCN ::= INTEGER (0..65535, ...) + +E-UTRANAccessPointPosition ::= SEQUENCE { + latitudeSign ENUMERATED {north, south}, + latitude INTEGER (0..8388607), + longitude INTEGER (-8388608..8388607), + directionOfAltitude ENUMERATED {height, depth}, + altitude INTEGER (0..32767), + uncertaintySemi-major INTEGER (0..127), + uncertaintySemi-minor INTEGER (0..127), + orientationOfMajorAxis INTEGER (0..179), + uncertaintyAltitude INTEGER (0..127), + confidence INTEGER (0..100), + ... +} + +-- F +-- G +-- H +-- I +-- J +-- K +-- L +-- M + +Measurement-ID ::= INTEGER (1..15, ...) + +MeasurementPeriodicity ::= ENUMERATED { + ms120, + ms240, + ms480, + ms640, + ms1024, + ms2048, + ms5120, + ms10240, + min1, + min6, + min12, + min30, + min60, + ... +} + +MeasurementQuantities ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF ProtocolIE-Single-Container { {MeasurementQuantities-ItemIEs} } + +MeasurementQuantities-ItemIEs LPPA-PROTOCOL-IES ::= { + { ID id-MeasurementQuantities-Item CRITICALITY reject TYPE MeasurementQuantities-Item PRESENCE mandatory } +} + +MeasurementQuantities-Item ::= SEQUENCE { + measurementQuantitiesValue MeasurementQuantitiesValue, + iE-Extensions ProtocolExtensionContainer { { MeasurementQuantitiesValue-ExtIEs} } OPTIONAL, + ... +} + +MeasurementQuantitiesValue-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementQuantitiesValue ::= ENUMERATED { + cell-ID, + angleOfArrival, + timingAdvanceType1, + timingAdvanceType2, + rSRP, + rSRQ, + ... +} + +MeasuredResults ::= SEQUENCE (SIZE (1.. maxNoMeas)) OF MeasuredResultsValue + + +MeasuredResultsValue ::= CHOICE { + valueAngleOfArrival INTEGER (0..719), + valueTimingAdvanceType1 INTEGER (0..7690), + valueTimingAdvanceType2 INTEGER (0..7690), + resultRSRP ResultRSRP, + resultRSRQ ResultRSRQ, + ... +} + +-- N + +NumberOfAntennaPorts ::= ENUMERATED { + n1-or-n2, + n4, + ... +} + +NumberOfDlFrames ::= ENUMERATED { + sf1, + sf2, + sf4, + sf6, + ... +} + +-- O + +OTDOACells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE { + oTDOACellInfo OTDOACell-Information, + iE-Extensions ProtocolExtensionContainer { {OTDOACells-ExtIEs} } OPTIONAL, + ... +} + +OTDOACells-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +OTDOACell-Information ::= SEQUENCE (SIZE (1..maxnoOTDOAtypes)) OF OTDOACell-Information-Item + +OTDOACell-Information-Item ::= CHOICE { + pCI PCI, + cellId ECGI, + tAC TAC, + eARFCN EARFCN, + pRS-Bandwidth PRS-Bandwidth, + pRS-ConfigurationIndex PRS-Configuration-Index, + cPLength CPLength, + numberOfDlFrames NumberOfDlFrames, + numberOfAntennaPorts NumberOfAntennaPorts, + sFNInitialisationTime SFNInitialisationTime, + e-UTRANAccessPointPosition E-UTRANAccessPointPosition, + ..., + pRSMutingConfiguration PRSMutingConfiguration +} + +OTDOA-Information-Item ::= ENUMERATED { + pci, + cellid, + tac, + earfcn, + prsBandwidth, + prsConfigIndex, + cpLength, + noDlFrames, + noAntennaPorts, + sFNInitTime, + ..., + e-UTRANAccessPointPosition, + prsmutingconfiguration +} + +-- P + +PCI ::= INTEGER (0..503, ...) + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + +PRS-Bandwidth ::= ENUMERATED { + bw6, + bw15, + bw25, + bw50, + bw75, + bw100, + ... +} + +PRS-Configuration-Index ::= INTEGER (0..4095, ...) + +PRSMutingConfiguration ::= CHOICE { + two BIT STRING (SIZE (2)), + four BIT STRING (SIZE (4)), + eight BIT STRING (SIZE (8)), + sixteen BIT STRING (SIZE (16)), + ... +} + + +-- Q +-- R + +ReportCharacteristics ::= ENUMERATED { + onDemand, + periodic, + ... +} + +ResultRSRP ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRP-Item + +ResultRSRP-Item ::= SEQUENCE { + pCI PCI, + eARFCN EARFCN, + eCGI ECGI OPTIONAL, + valueRSRP ValueRSRP, + iE-Extensions ProtocolExtensionContainer { { ResultRSRP-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultRSRP-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +ResultRSRQ ::= SEQUENCE (SIZE (1.. maxCellReport)) OF ResultRSRQ-Item + +ResultRSRQ-Item ::= SEQUENCE { + pCI PCI, + eARFCN EARFCN, + eCGI ECGI OPTIONAL, + valueRSRQ ValueRSRQ, + iE-Extensions ProtocolExtensionContainer { { ResultRSRQ-Item-ExtIEs} } OPTIONAL, + ... +} + +ResultRSRQ-Item-ExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- S + +SFNInitialisationTime ::= BIT STRING (SIZE (64)) + +-- T + +TAC ::= OCTET STRING (SIZE(2)) + + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + + +-- U +-- V + +ValueRSRP ::= INTEGER (0..97, ...) + +ValueRSRQ ::= INTEGER (0..34, ...) + +-- W +-- X +-- Y +-- Z + +END diff --git a/asn1/lppa/LPPA-PDU.asn b/asn1/lppa/LPPA-PDU.asn new file mode 100755 index 0000000000..8ec87fb9f4 --- /dev/null +++ b/asn1/lppa/LPPA-PDU.asn @@ -0,0 +1,290 @@ +-- 3GPP TS 36.455 V9.4.1 (2011-03) +-- $Id$ +-- + +-- ************************************************************** +-- +-- 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 + +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 + + +FROM LPPA-Constants; + +-- ************************************************************** +-- +-- E-CID MEASUREMENT INITIATION REQUEST +-- +-- ************************************************************** + +E-CIDMeasurementInitiationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationRequest-IEs}}, + ... +} + +E-CIDMeasurementInitiationRequest-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE mandatory}| + { ID id-MeasurementPeriodicity CRITICALITY reject TYPE MeasurementPeriodicity PRESENCE conditional}| +-- The IE shall be present if the Report Characteritics IE is set to "periodic" -- + { ID id-MeasurementQuantities CRITICALITY reject TYPE MeasurementQuantities PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- E-CID MEASUREMENT INITIATION RESPONSE +-- +-- ************************************************************** + +E-CIDMeasurementInitiationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationResponse-IEs}}, + ... +} + +E-CIDMeasurementInitiationResponse-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE optional}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}, + ... +} + + + +-- ************************************************************** +-- +-- E-CID MEASUREMENT INITIATION FAILURE +-- +-- ************************************************************** + +E-CIDMeasurementInitiationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementInitiationFailure-IEs}}, + ... +} + + +E-CIDMeasurementInitiationFailure-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- E-CID MEASUREMENT FAILURE INDICATION +-- +-- ************************************************************** + +E-CIDMeasurementFailureIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementFailureIndication-IEs}}, + ... +} + + +E-CIDMeasurementFailureIndication-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT REPORT +-- +-- ************************************************************** + +E-CIDMeasurementReport ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementReport-IEs}}, + ... +} + + +E-CIDMeasurementReport-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-E-CID-MeasurementResult CRITICALITY ignore TYPE E-CID-MeasurementResult PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- E-CID MEASUREMENT TERMINATION +-- +-- ************************************************************** + +E-CIDMeasurementTerminationCommand ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{E-CIDMeasurementTerminationCommand-IEs}}, + ... +} + + +E-CIDMeasurementTerminationCommand-IEs LPPA-PROTOCOL-IES ::= { + { ID id-E-SMLC-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-eNB-UE-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- OTDOA INFORMATION REQUEST +-- +-- ************************************************************** + +OTDOAInformationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationRequest-IEs}}, + ... +} + +OTDOAInformationRequest-IEs LPPA-PROTOCOL-IES ::= { + { ID id-OTDOA-Information-Type-Group CRITICALITY reject TYPE OTDOA-Information-Type PRESENCE mandatory}, + ... +} + +OTDOA-Information-Type ::= SEQUENCE (SIZE(1..maxnoOTDOAtypes)) OF ProtocolIE-Single-Container { { OTDOA-Information-TypeIEs} } + +OTDOA-Information-TypeIEs LPPA-PROTOCOL-IES ::= { + { ID id-OTDOA-Information-Type-Item CRITICALITY reject TYPE OTDOA-Information-Type-Item PRESENCE mandatory }, + ... +} + +OTDOA-Information-Type-Item ::= SEQUENCE { + oTDOA-Information-Type-Item OTDOA-Information-Item, + iE-Extensions ProtocolExtensionContainer { { OTDOA-Information-Type-ItemExtIEs} } OPTIONAL, + ... +} + +OTDOA-Information-Type-ItemExtIEs LPPA-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- OTDOA INFORMATION RESPONSE +-- +-- ************************************************************** + +OTDOAInformationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationResponse-IEs}}, + ... +} + +OTDOAInformationResponse-IEs LPPA-PROTOCOL-IES ::= { + { ID id-OTDOACells CRITICALITY ignore TYPE OTDOACells PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- OTDOA INFORMATION FAILURE +-- +-- ************************************************************** + +OTDOAInformationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{OTDOAInformationFailure-IEs}}, + ... +} + + +OTDOAInformationFailure-IEs LPPA-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + + +-- ************************************************************** +-- +-- 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/asn1/lppa/Makefile.am b/asn1/lppa/Makefile.am new file mode 100755 index 0000000000..462af31e88 --- /dev/null +++ b/asn1/lppa/Makefile.am @@ -0,0 +1,26 @@ +# $Id$ +# +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +include ../Makefile.preinc +include Makefile.common +include ../Makefile.inc + diff --git a/asn1/lppa/Makefile.common b/asn1/lppa/Makefile.common new file mode 100755 index 0000000000..04611e0c73 --- /dev/null +++ b/asn1/lppa/Makefile.common @@ -0,0 +1,48 @@ +# $Id$ +# +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +PROTOCOL_NAME = lppa + +EXT_ASN_FILE_LIST = + +ASN_FILE_LIST = \ + LPPA-Common.asn \ + LPPA-Constant.asn \ + LPPA-Container.asn \ + LPPA-ElementaryProcedure.asn \ + LPPA-InformationElement.asn \ + LPPA-PDU.asn + +EXTRA_DIST = \ + Makefile.nmake \ + $(ASN_FILE_LIST) \ + packet-$(PROTOCOL_NAME)-template.c \ + $(PROTOCOL_NAME).cnf + +SRC_FILES = \ + $(EXTRA_DIST) \ + $(EXT_ASN_FILE_LIST) + +A2W_FLAGS = + +EXTRA_CNF = + diff --git a/asn1/lppa/Makefile.nmake b/asn1/lppa/Makefile.nmake new file mode 100755 index 0000000000..5a32997c60 --- /dev/null +++ b/asn1/lppa/Makefile.nmake @@ -0,0 +1,29 @@ +## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake +# +# $Id$ +# +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +include ../../config.nmake +include ../Makefile.preinc.nmake +include Makefile.common +include ../Makefile.inc.nmake + diff --git a/asn1/lppa/lppa.cnf b/asn1/lppa/lppa.cnf new file mode 100755 index 0000000000..69541c8617 --- /dev/null +++ b/asn1/lppa/lppa.cnf @@ -0,0 +1,117 @@ +# lppa.cnf +# llpa conformation file +# Copyright 2011 Pascal Quantin +# $Id$ + +#.OPT +PER +ALIGNED +#.END + +#.MAKE_ENUM +ProcedureCode +ProtocolIE-ID + +#.OMIT_ASSIGNMENT +Presence +ProtocolIE-ContainerList +ProtocolIE-ContainerPairList +ProtocolIE-ContainerPair +ProtocolIE-FieldPair + +#.PDU_NEW +LPPA-PDU + +#.TYPE_RENAME +InitiatingMessage/value InitiatingMessage_value +SuccessfulOutcome/value SuccessfulOutcome_value +UnsuccessfulOutcome/value UnsuccessfulOutcome_value + +#.FIELD_RENAME +InitiatingMessage/value initiatingMessagevalue +UnsuccessfulOutcome/value unsuccessfulOutcome_value +SuccessfulOutcome/value successfulOutcome_value +ProtocolIE-Field/value ie_field_value + +#.FN_PARS ProtocolIE-ID VAL_PTR=&ProtocolIE_ID +#.FN_FTR ProtocolIE-ID + if (tree) { + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lppa_ProtocolIE_ID_vals), "unknown (%d)")); + } +#.END + +#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode +#.FN_FTR ProcedureCode + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", + val_to_str(ProcedureCode, lppa_ProcedureCode_vals, + "unknown message")); +#.END + +#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue + +#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue + +#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue + +#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue + +#.FN_HDR LPPA-PDU + + proto_tree_add_item(tree, proto_lppa, tvb, 0, -1, ENC_NA); + + col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "LPPa"); +#.END + +#.TYPE_ATTR +# ProcedureCode +id-errorIndication ProcedureCode +id-privateMessage ProcedureCode +id-e-CIDMeasurementInitiation ProcedureCode +id-e-CIDMeasurementFailureIndication ProcedureCode +id-e-CIDMeasurementReport ProcedureCode +id-e-CIDMeasurementTermination ProcedureCode +id-oTDOAInformationExchange ProcedureCode + +# 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 + +#.REGISTER_NEW + +#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 + +#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 + diff --git a/asn1/lppa/packet-lppa-template.c b/asn1/lppa/packet-lppa-template.c new file mode 100755 index 0000000000..6329ca54e8 --- /dev/null +++ b/asn1/lppa/packet-lppa-template.c @@ -0,0 +1,127 @@ +/* packet-lppa.c + * Routines for 3GPP LTE Positioning Protocol A (LLPa) packet dissection + * Copyright 2011, Pascal Quantin <pascal.quantin@gmail.com> + * + * $Id$ + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Ref 3GPP TS 36.455 version 9.4.1 Release 9 + * http://www.3gpp.org + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <glib.h> +#include <epan/packet.h> +#include <epan/asn1.h> + +#include "packet-per.h" + +#define PNAME "LTE Positioning Protocol A (LLPa)" +#define PSNAME "LPPa" +#define PFNAME "lppa" + +/* Initialize the protocol and registered fields */ +static int proto_lppa = -1; + +#include "packet-lppa-hf.c" + +/* Initialize the subtree pointers */ +static gint ett_lppa = -1; +#include "packet-lppa-ett.c" + +/* Global variables */ +static guint32 ProcedureCode; +static guint32 ProtocolIE_ID; + +/* Dissector tables */ +static dissector_table_t lppa_ies_dissector_table; +static dissector_table_t lppa_proc_imsg_dissector_table; +static dissector_table_t lppa_proc_sout_dissector_table; +static dissector_table_t lppa_proc_uout_dissector_table; + +/* Include constants */ +#include "packet-lppa-val.h" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); + +#include "packet-lppa-fn.c" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + return (dissector_try_uint(lppa_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0; +} + +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + return (dissector_try_uint(lppa_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0; +} + +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + return (dissector_try_uint(lppa_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0; +} + +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + return (dissector_try_uint(lppa_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_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); + new_register_dissector("lppa", dissect_LPPA_PDU_PDU, proto_lppa); + + /* Register fields and subtrees */ + proto_register_field_array(proto_lppa, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + /* Register dissector tables */ + lppa_ies_dissector_table = register_dissector_table("lppa.ies", "LPPA-PROTOCOL-IES", FT_UINT32, BASE_DEC); + lppa_proc_imsg_dissector_table = register_dissector_table("lppa.proc.imsg", "LPPA-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC); + lppa_proc_sout_dissector_table = register_dissector_table("lppa.proc.sout", "LPPA-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC); + lppa_proc_uout_dissector_table = register_dissector_table("lppa.proc.uout", "LPPA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC); +} + +/*--- proto_reg_handoff_lppa ---------------------------------------*/ +void +proto_reg_handoff_lppa(void) +{ +#include "packet-lppa-dis-tab.c" +} |