summaryrefslogtreecommitdiff
path: root/asn1
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2011-10-23 17:58:45 +0000
committerAnders Broman <anders.broman@ericsson.com>2011-10-23 17:58:45 +0000
commit4dcd0ff1e3f008c39e26b87678b4440f2b899773 (patch)
tree498d48bb503990feba8651bc53f9c08235fc9b85 /asn1
parent97e1e5bc85602c4cb1f9283ea39ec00edc198961 (diff)
downloadwireshark-4dcd0ff1e3f008c39e26b87678b4440f2b899773.tar.gz
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')
-rwxr-xr-xasn1/lppa/LPPA-Common.asn58
-rwxr-xr-xasn1/lppa/LPPA-Constant.asn78
-rwxr-xr-xasn1/lppa/LPPA-Container.asn198
-rwxr-xr-xasn1/lppa/LPPA-ElementaryProcedure.asn197
-rwxr-xr-xasn1/lppa/LPPA-InformationElement.asn378
-rwxr-xr-xasn1/lppa/LPPA-PDU.asn290
-rwxr-xr-xasn1/lppa/Makefile.am26
-rwxr-xr-xasn1/lppa/Makefile.common48
-rwxr-xr-xasn1/lppa/Makefile.nmake29
-rwxr-xr-xasn1/lppa/lppa.cnf117
-rwxr-xr-xasn1/lppa/packet-lppa-template.c127
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"
+}