--
-- 3GPP TS 29.171 v17.2.0 (2022-12-15)
-- 7.5.4	PDU definitions

-- ************************************************************** 
-- 
-- PDU definitions for LCS-AP. 
-- 
-- ************************************************************** 
 

LCS-AP-PDU-Contents {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-PDU-Contents (1)}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************

IMPORTS
	
	APDU,
	Accuracy-Fulfillment-Indicator,
	Barometric-Pressure,
	Cell-Portion-ID,
	Ciphering-Data,
	Ciphering-Data-Ack,
	Ciphering-Data-Error-Report,
	Civic-Address,
	Correlation-ID,
	Coverage-Level,
	E-CGI,
	Geographical-Area,
	IMSI,
	IMEI,
	Include-Velocity,
	LCS-Cause,
	LCS-Client-Type,
	LCS-Service-Type-ID,
	LCS-Priority,
	LCS-QoS,
	Location-Type,
	MultipleAPDUs,
	Network-Element,
	Payload-Type,
	Positioning-Data,
	RAT-Type,
	Return-Error-Type,
	Return-Error-Cause,
	UE-Positioning-Capability,
	Velocity-Estimate,
	UE-Country-Determination-Indication,
	UE-Area-Indication
FROM LCS-AP-IEs

	ProtocolExtensionContainer{},
	ProtocolIE-Container{},
	LCS-AP-PROTOCOL-EXTENSION,
	LCS-AP-PROTOCOL-IES
FROM LCS-AP-Containers

	id-Accuracy-Fulfillment-Indicator,
	id-APDU,
	id-Barometric-Pressure,
	id-Cell-Portion-ID,
	id-Ciphering-Data,
	id-Ciphering-Data-Ack,
	id-Ciphering-Data-Error-Report,
	id-Civic-Address,
	id-Correlation-ID,
	id-Coverage-Level,
	id-Destination-ID,
	id-E-UTRAN-Cell-Identifier,
	id-Include-Velocity,
	id-IMEI,
	id-IMSI,
	id-LCS-Client-Type,
	id-LCS-Priority,
	id-LCS-QOS,
	id-LCS-Cause,
	id-LCS-Service-Type-ID,
	id-Location-Estimate,
	id-Location-Type,
	id-MultipleAPDUs,
	id-Payload-Type,
	id-Positioning-Data,
	id-RAT-Type,
	id-Return-Error-Request,
	id-Return-Error-Cause,
	id-Source-Identity,
	id-UE-Positioning-Capability,
	id-Velocity-Estimate,
	id-UE-Country-Determination-Indication,
	id-UE-Area-Indication
FROM LCS-AP-Constants;


-- **************************************************************
--
-- Location-Request
--
-- **************************************************************

Location-Request ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container    	{ { Location-Request-IEs} },
	protocolExtensions	ProtocolExtensionContainer	{ { Location-Request-Extensions} } OPTIONAL,
	...
}

Location-Request-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-Correlation-ID	CRITICALITY reject	TYPE Correlation-ID	PRESENCE mandatory } |
	{ ID id-Location-Type	CRITICALITY reject	TYPE Location-Type	PRESENCE mandatory } |
	{ ID id-E-UTRAN-Cell-Identifier	CRITICALITY ignore	TYPE E-CGI		PRESENCE mandatory  } |
	{ ID id-LCS-Client-Type	CRITICALITY reject	TYPE LCS-Client-Type	PRESENCE optional  } |
	{ ID id-LCS-Priority	CRITICALITY reject	TYPE LCS-Priority	PRESENCE optional  } |
	{ ID id-LCS-QOS		CRITICALITY reject	TYPE LCS-QoS		PRESENCE optional  } |
	{ ID id-UE-Positioning-Capability	CRITICALITY reject	TYPE UE-Positioning-Capability	PRESENCE optional  } |
	{ ID id-Include-Velocity	CRITICALITY reject	TYPE Include-Velocity	PRESENCE optional  } |
	{ ID id-IMSI		CRITICALITY ignore	TYPE IMSI		PRESENCE optional  } |
	{ ID id-IMEI		CRITICALITY ignore	TYPE IMEI		PRESENCE optional  } |
	{ ID id-MultipleAPDUs	CRITICALITY reject	TYPE MultipleAPDUs	PRESENCE optional  } |
	{ ID id-RAT-Type		CRITICALITY ignore	TYPE RAT-Type		PRESENCE optional  } |
	{ ID id-Coverage-Level	CRITICALITY ignore	TYPE Coverage-Level	PRESENCE optional},
	...
}

Location-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	{ ID id-LCS-Service-Type-ID	CRITICALITY ignore	EXTENSION LCS-Service-Type-ID	PRESENCE optional  } |
	{ ID id-UE-Country-Determination-Indication	CRITICALITY ignore	TYPE UE-Country-Determination-Indication	PRESENCE optional},
	...
}


-- **************************************************************
--
-- Location-Response
--
-- **************************************************************

Location-Response ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container      { {Location-Response-IEs} },
	protocolExtensions	ProtocolExtensionContainer { {Location-Response-Extensions} } OPTIONAL,
	...
}

Location-Response-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-Correlation-ID		CRITICALITY reject	TYPE Correlation-ID		PRESENCE mandatory } |
	{ ID id-Location-Estimate	CRITICALITY reject	TYPE Geographical-Area		PRESENCE optional  } |
	{ ID id-Positioning-Data	CRITICALITY reject	TYPE Positioning-Data		PRESENCE optional  } |
	{ ID id-Velocity-Estimate	CRITICALITY reject	TYPE Velocity-Estimate		PRESENCE optional  } |
	{ ID id-Accuracy-Fulfillment-Indicator	CRITICALITY reject	TYPE Accuracy-Fulfillment-Indicator	PRESENCE optional  } |
	{ ID id-LCS-Cause		CRITICALITY ignore	TYPE LCS-Cause		PRESENCE optional  } ,
...
}


Location-Response-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
{ ID id-E-UTRAN-Cell-Identifier	CRITICALITY ignore	EXTENSION E-CGI	PRESENCE optional  } |
{ ID id-Cell-Portion-ID		CRITICALITY ignore	EXTENSION Cell-Portion-ID	PRESENCE optional  } |
{ ID id-Civic-Address		CRITICALITY ignore	EXTENSION Civic-Address	PRESENCE optional  } |
{ ID id-Barometric-Pressure		CRITICALITY ignore	EXTENSION Barometric-Pressure	PRESENCE optional  } |
{ ID id-UE-Area-Indication		CRITICALITY ignore	EXTENSION UE-Area-Indication	PRESENCE optional  },
	...
}

-- **************************************************************
--
-- Location-Abort
--
-- **************************************************************

Location-Abort-Request ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container      { {Location-Abort-Request-IEs} },
	protocolExtensions	ProtocolExtensionContainer { {Location-Abort-Request-Extensions} } OPTIONAL,
	...
}

Location-Abort-Request-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-Correlation-ID		CRITICALITY reject	TYPE Correlation-ID	PRESENCE mandatory } |
	{ ID id-LCS-Cause		CRITICALITY ignore	TYPE LCS-Cause	PRESENCE mandatory } ,
	...
}

Location-Abort-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	...
}

-- **************************************************************
--
-- Connection-Oriented-Information
--
-- **************************************************************

Connection-Oriented-Information ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container      { {Connection-Oriented-Information-IEs} },
	protocolExtensions	ProtocolExtensionContainer { {Connection-Oriented-Information-Extensions} } OPTIONAL,
	...
}

Connection-Oriented-Information-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-Correlation-ID	CRITICALITY reject	TYPE Correlation-ID	PRESENCE optional  } |
	{ ID id-Payload-Type	CRITICALITY reject	TYPE Payload-Type	PRESENCE optional  } |
	{ ID id-APDU	CRITICALITY reject	TYPE APDU		PRESENCE optional  } ,
	...
}

Connection-Oriented-Information-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	...
}

-- **************************************************************
--
-- Connectionless-Information
--
-- **************************************************************

Connectionless-Information ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container      { {Connectionless-Information-IEs} },
	protocolExtensions	ProtocolExtensionContainer { {Connectionless-Information-Extensions} } OPTIONAL,
	...
}

Connectionless-Information-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-Source-Identity	CRITICALITY reject	TYPE Network-Element	PRESENCE mandatory } |
	{ ID id-Destination-ID	CRITICALITY reject	TYPE Network-Element	PRESENCE mandatory } |
	{ ID id-APDU		CRITICALITY reject	TYPE APDU		PRESENCE mandatory } |
	{ ID id-Return-Error-Request	CRITICALITY reject	TYPE Return-Error-Type	PRESENCE optional  } |
	{ ID id-Return-Error-Cause	CRITICALITY ignore	TYPE Return-Error-Cause	PRESENCE optional  } ,
	...
}


Connectionless-Information-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	...
}

-- **************************************************************
--
-- Reset-Request
--
-- **************************************************************

Reset-Request ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container    	{ {Reset-Request-IEs} },
	protocolExtensions	ProtocolExtensionContainer	{ {Reset-Request-Extensions} } OPTIONAL,
	...
}

Reset-Request-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-LCS-Cause	CRITICALITY ignore	TYPE LCS-Cause	PRESENCE mandatory } ,
	...
}


Reset-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	...
}


-- **************************************************************
--
-- Reset-Acknowledge
--
-- **************************************************************

Reset-Acknowledge	::= SEQUENCE {
	protocolIEs	ProtocolIE-Container      { { Reset-Acknowledge-IEs} },
	protocolExtensions	ProtocolExtensionContainer { { Reset-Acknowledge-Extensions} } OPTIONAL,
	...
}

Reset-Acknowledge-IEs LCS-AP-PROTOCOL-IES ::= {
	...
}

Reset-Acknowledge-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	...
}


-- **************************************************************
--
-- Ciphering-Key-Data
--
-- **************************************************************

Ciphering-Key-Data ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container    	{ {Ciphering-Key-Data-IEs} },
	protocolExtensions	ProtocolExtensionContainer	{ {Ciphering-Key-Data-Extensions} } OPTIONAL,
	...
}

Ciphering-Key-Data-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-Ciphering-Data	CRITICALITY reject	TYPE Ciphering-Data	PRESENCE mandatory } ,
	...
}


Ciphering-Key-Data-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	...
}


-- **************************************************************
--
-- Ciphering-Key-Data-Result
--
-- **************************************************************

Ciphering-Key-Data-Result ::= SEQUENCE {
	protocolIEs	ProtocolIE-Container    	{ {Ciphering-Key-Data-Result-IEs} },
	protocolExtensions	ProtocolExtensionContainer	{ {Ciphering-Key-Data-Result-Extensions} } OPTIONAL,
	...
}

Ciphering-Key-Data-Result-IEs LCS-AP-PROTOCOL-IES ::= {
	{ ID id-Ciphering-Data-Ack	CRITICALITY reject	TYPE Ciphering-Data-Ack	PRESENCE conditional } |
	{ ID id-Ciphering-Data-Error-Report	CRITICALITY reject	TYPE Ciphering-Data-Error-Report	PRESENCE conditional } ,
	...
}


Ciphering-Key-Data-Result-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
	...
}


END