Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--5G_system_TS29572_Nlmf_CNL113892.tpd28
-rw-r--r--doc/5G_system_TS29572_Nlmf_Description.adoc72
-rw-r--r--doc/change.log9
-rw-r--r--src/TS29572_Nlmf_Location.ttcn359
4 files changed, 468 insertions, 0 deletions
diff --git a/5G_system_TS29572_Nlmf_CNL113892.tpd b/5G_system_TS29572_Nlmf_CNL113892.tpd
new file mode 100644
index 0000000..a034725
--- /dev/null
+++ b/5G_system_TS29572_Nlmf_CNL113892.tpd
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TITAN_Project_File_Information version="1.0">
+ <ProjectName>5G_system_TS29572_Nlmf_CNL113892</ProjectName>
+ <ReferencedProjects>
+ <ReferencedProject name="5G_system_TS29571_CommonData_CNL113880" projectLocationURI="../5G_system_TS29571_CommonData_CNL113880/5G_system_TS29571_CommonData_CNL113880.tpd"/>
+ </ReferencedProjects>
+ <Folders>
+ <FolderResource projectRelativePath="src" relativeURI="src"/>
+ </Folders>
+ <Files>
+ <FileResource projectRelativePath="src/TS29572_Nlmf_Location.ttcn" relativeURI="src/TS29572_Nlmf_Location.ttcn"/>
+ </Files>
+ <ActiveConfiguration>Default</ActiveConfiguration>
+ <Configurations>
+ <Configuration name="Default">
+ <ProjectProperties>
+ <MakefileSettings>
+ <GNUMake>true</GNUMake>
+ <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+ <targetExecutable>bin/5G_system_TS29572_Nlmf_CNL113892</targetExecutable>
+ </MakefileSettings>
+ <LocalBuildSettings>
+ <workingDirectory>bin</workingDirectory>
+ </LocalBuildSettings>
+ </ProjectProperties>
+ </Configuration>
+ </Configurations>
+</TITAN_Project_File_Information> \ No newline at end of file
diff --git a/doc/5G_system_TS29572_Nlmf_Description.adoc b/doc/5G_system_TS29572_Nlmf_Description.adoc
new file mode 100644
index 0000000..19085f7
--- /dev/null
+++ b/doc/5G_system_TS29572_Nlmf_Description.adoc
@@ -0,0 +1,72 @@
+= 5G system TS29572 Nlmf Protocol Modules for TTCN-3 Toolset with TITAN, Description
+:author: Gábor Szalai
+:toc: left
+
+== About This Document
+
+This is the description for the 5G system TS29572 Nlmf protocol module. The 5G system TS29572 Nlmf protocol modules are developed for the TTCN-3 Toolset with Titan.
+
+== Functionality
+
+The 5G system TS29572 Nlmf protocol module implements the object structures of the 3GPP TS 29572 v15.1.0<<_5, [5]>> in a formalized way, using the standard specification language TTCN-3. This allows defining of test data (templates) in the TTCN-3 language and correctly encoding/decoding messages when executing test suites using the Titan TTCN-3 test environment.
+The 5G system TS29572 Nlmf protocol module uses Titan’s JSON encoding <<_3, [3]>> and hence is usable with the Titan test toolset only.
+
+=== System Requirements
+Protocol modules are a set of TTCN-3 source code files that can be used as part of TTCN-3 test suites only. Hence, protocol modules alone do not put specific requirements on the system used. However, in order to compile and execute a TTCN-3 test suite using the set of protocol modules the following system requirements must be satisfied:
+
+* Titan TTCN-3 Test Executor version CRL 113 200/6 R5A (6.5.pl0) or higher installed. For Installation Guide see <<_2, [2]>>. Please note: This version of the test port is not compatible with Titan releases earlier than CRL 113 200/6 R5A.
+
+=== Installation
+The set of protocol modules can be used in developing TTCN-3 test suites using any text editor. Since the 5G system TS29572 Nlmf protocol is used as a part of a TTCN-3 test suite, this requires TTCN-3 Test Executor be installed before the module can be compiled and executed together with other parts of the test suite. For more details on the installation of TTCN-3 Test Executor see the relevant section of <<_2, [2]>>.
+
+== Interface description
+
+=== Encoding/decoding and other related functions
+This product also contains encoding/decoding functions, which assure correct encoding of messages when sent from Titan and correct decoding of messages when received by Titan.
+
+==== Implemented encoding and decoding functions
+
+[source]
+----
+Name Type of formal parameters Type of return value
+function f_enc_InputData(in InputData pdu) return octetstring
+function f_dec_InputData(in octetstring stream, out InputData pdu) return integer
+function f_enc_LocationData(in LocationData pdu) return octetstring
+function f_dec_LocationData(in octetstring stream, out LocationData pdu) return integer
+----
+
+== Usage
+
+The protocol module provides abstract data types for JSON objects used by the services defined in the standard <<_5, [5]>>. The protocol module provides encoder and decoder functions for the JSON objects. The decoder function validates the received JSON object based on the JSON schema as well. Only the validated JSON value is decoded.
+
+== Terminology
+
+=== Abbreviations
+
+JSON:: JavaScript Object Notation
+
+PDU:: Protocol Data Unit
+
+TTCN-3:: Testing and Test Control Notation version 3
+
+== References
+
+[[_1]]
+[1] ETSI ES 201 873-1 v4.4.1 (2012-04) +
+The Testing and Test Control Notation version 3. Part 1: Core Language
+
+[[_2]]
+[2] 1/ 198 17-CRL 113 200/6 Uen +
+Installation Guide for the TITAN TTCN-3 Test Executor
+
+[[_3]]
+[3] 2/198 17-CRL 113 200/6 Uen +
+Programmer's Technical Reference for Titan TTCN-3 Test Executor
+
+[[_4]]
+[4] https://www.json.org
+
+[[_5]]
+[5] 3GPP TS 29572 v15.1.0+
+5G System; Location Management Services; Stage 3
+
diff --git a/doc/change.log b/doc/change.log
new file mode 100644
index 0000000..822898e
--- /dev/null
+++ b/doc/change.log
@@ -0,0 +1,9 @@
+= 5G system TS29572 Nlmf Protocol Modules for TTCN-3 Toolset with TITAN, Change log
+:author: Gábor Szalai
+:toc: left
+
+== Changes
+
+=== R1A
+
+Initial revision \ No newline at end of file
diff --git a/src/TS29572_Nlmf_Location.ttcn b/src/TS29572_Nlmf_Location.ttcn
new file mode 100644
index 0000000..cbfad5c
--- /dev/null
+++ b/src/TS29572_Nlmf_Location.ttcn
@@ -0,0 +1,359 @@
+/******************************************************************************
+* Copyright (c) 2000-2019 Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+*
+* Contributors:
+* Gabor Szalai - initial implementation and initial documentation
+******************************************************************************/
+//
+// File: TS29572_Nlmf_Location.ttcn
+// Description: Type definitions for 3GPP TS29572
+///////////////////////////////////////////////
+module TS29572_Nlmf_Location {
+
+ import from TS29571_CommonData all
+
+ external function f_enc_InputData(in InputData pdu) return octetstring
+ with { extension "prototype(convert) encode(JSON)" }
+
+ external function f_dec_InputData(in octetstring stream, out InputData pdu) return integer
+ with { extension "prototype(backtrack) decode(JSON)" }
+
+ external function f_enc_LocationData(in LocationData pdu) return octetstring
+ with { extension "prototype(convert) encode(JSON)" }
+
+ external function f_dec_LocationData(in octetstring stream, out LocationData pdu) return integer
+ with { extension "prototype(backtrack) decode(JSON)" }
+
+
+ type set InputData {
+ ExternalClientType externalClientType optional,
+ CorrelationID correlationID optional,
+ LocationQoS locationQoS optional,
+ set of SupportedGADShapes supportedGADShapes optional,
+ TS29571_CommonData.Supi supi optional,
+ TS29571_CommonData.Pei pei optional,
+ TS29571_CommonData.Gpsi gpsi optional,
+ TS29571_CommonData.Ecgi ecgi optional,
+ TS29571_CommonData.Ncgi ncgi optional,
+ LcsPriority priority optional,
+ VelocityRequested velocityRequested optional
+ }
+
+ type set LocationData {
+ GeographicArea locationEstimate,
+ AccuracyFulfilmentIndicator accuracyFulfilmentIndicator optional,
+ AgeOfLocationEstimate ageOfLocationEstimate optional,
+ VelocityEstimate velocityEstimate optional,
+ CivicAddress civicAddress optional,
+ set of PositioningMethodAndUsage positioningDataList optional,
+ set of GnssPositioningMethodAndUsage gnssPositioningDataList optional,
+ TS29571_CommonData.Ecgi ecgi optional,
+ TS29571_CommonData.Ncgi ncgi optional,
+ Altitude altitude optional
+ }
+
+ type union GeographicArea {
+ Point point,
+ PointUncertaintyCircle pointUncertaintyCircle,
+ PointUncertaintyEllipse pointUncertaintyEllipse,
+ Polygon polygon,
+ PointAltitude pointAltitude,
+ PointAltitudeUncertainty pointAltitudeUncertainty,
+ EllipsoidArc ellipsoidArc
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type set GADShape {
+ SupportedGADShapes shape
+ }
+
+ type set Point {
+ enumerated {POINT} shape,
+ GeographicalCoordinates point
+ }
+
+ type set PointUncertaintyCircle {
+ enumerated {POINT_UNCERTAINTY_CIRCLE} shape,
+ GeographicalCoordinates point,
+ Uncertainty uncertainty
+ }
+
+ type set PointUncertaintyEllipse {
+ enumerated {POINT_UNCERTAINTY_ELLIPSE} shape,
+ GeographicalCoordinates point,
+ UncertaintyEllipse uncertaintyEllipse,
+ Confidence confidence
+ }
+
+ type set Polygon {
+ enumerated {POLYGON} shape,
+ PointList pointList
+ }
+
+ type set PointAltitude {
+ enumerated {POINT_ALTITUDE} shape,
+ GeographicalCoordinates point,
+ Altitude altitude
+ }
+
+ type set PointAltitudeUncertainty {
+ enumerated {POINT_ALTITUDE_UNCERTAINTY} shape,
+ GeographicalCoordinates point,
+ Altitude altitude,
+ UncertaintyEllipse uncertaintyEllipse,
+ Uncertainty uncertaintyAltitude,
+ Confidence confidence
+ }
+
+ type set EllipsoidArc {
+ enumerated {ELLIPSOID_ARC} shape,
+ GeographicalCoordinates point,
+ InnerRadius innerRadius,
+ Uncertainty uncertaintyRadius,
+ Angle offsetAngle,
+ Angle includedAngle,
+ Confidence confidence
+ }
+
+ type set GeographicalCoordinates {
+ float lon,
+ float lat
+ }
+
+ type set UncertaintyEllipse {
+ Uncertainty semiMajor,
+ Uncertainty semiMinor,
+ Orientation orientationMajor
+ }
+
+ type set of GeographicalCoordinates PointList
+
+ type set LocationQoS {
+ Accuracy hAccuracy optional,
+ Accuracy vAccuracy optional,
+ boolean verticalRequested optional,
+ ResponseTime responseTime optional
+ }
+
+ type set PositioningMethodAndUsage {
+ PositioningMethod method,
+ PositioningMode mode,
+ Usage usage
+ }
+
+ type set GnssPositioningMethodAndUsage {
+ PositioningMode mode,
+ GnssId gnss,
+ Usage usage
+ }
+
+ type set CivicAddress {
+ charstring country optional,
+ charstring A1 optional,
+ charstring A2 optional,
+ charstring A3 optional,
+ charstring A4 optional,
+ charstring A5 optional,
+ charstring A6 optional,
+ charstring PRD optional,
+ charstring POD optional,
+ charstring STS optional,
+ charstring HNO optional,
+ charstring HNS optional,
+ charstring LMK optional,
+ charstring LOC optional,
+ charstring NAM optional,
+ charstring PC optional,
+ charstring BLD optional,
+ charstring UNIT optional,
+ charstring ROOM optional,
+ charstring PLC optional,
+ charstring PCN optional,
+ charstring POBOX optional,
+ charstring ADDCODE optional,
+ charstring SEAT optional,
+ charstring RD optional,
+ charstring RDSEC optional,
+ charstring RDBR optional,
+ charstring RDSUBBR optional,
+ charstring PRM optional,
+ charstring POM optional
+ }
+
+ type union VelocityEstimate {
+ HorizontalVelocity field1,
+ HorizontalWithVerticalVelocity field2,
+ HorizontalVelocityWithUncertainty field3,
+ HorizontalWithVerticalVelocityAndUncertainty field4
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type set HorizontalVelocity {
+ HorizontalSpeed hSpeed,
+ Angle bearing
+ }
+
+ type set HorizontalWithVerticalVelocity {
+ HorizontalSpeed hSpeed,
+ Angle bearing,
+ VerticalSpeed vSpeed,
+ VerticalDirection vDirection
+ }
+
+ type set HorizontalVelocityWithUncertainty {
+ HorizontalSpeed hSpeed,
+ Angle bearing,
+ SpeedUncertainty hUncertainty
+ }
+
+ type set HorizontalWithVerticalVelocityAndUncertainty {
+ HorizontalSpeed hSpeed,
+ Angle bearing,
+ VerticalSpeed vSpeed,
+ VerticalDirection vDirection,
+ SpeedUncertainty hUncertainty,
+ SpeedUncertainty vUncertainty
+ }
+
+ type float Altitude
+
+ type integer Angle (0..360)
+
+ type float Uncertainty
+
+ type integer Orientation (0..180)
+
+ type integer Confidence (0..100)
+
+ type float Accuracy
+
+ type integer InnerRadius (0..infinity)
+
+ type charstring CorrelationID
+
+ type integer AgeOfLocationEstimate (0..32767)
+
+ type float HorizontalSpeed
+
+ type float VerticalSpeed
+
+ type float SpeedUncertainty
+
+ type enumerated ExternalClientType_enum { EMERGENCY_SERVICES, VALUE_ADDED_SERVICES, PLMN_OPERATOR_SERVICES, LAWFUL_INTERCEPT_SERVICES, PLMN_OPERATOR_BROADCAST_SERVICES, PLMN_OPERATOR_OM, PLMN_OPERATOR_ANONYMOUS_STATISTICS, PLMN_OPERATOR_TARGET_MS_SERVICE_SUPPORT}
+
+ type union ExternalClientType {
+ ExternalClientType_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated SupportedGADShapes_enum { POINT, POINT_UNCERTAINTY_CIRCLE, POINT_UNCERTAINTY_ELLIPSE, POLYGON, POINT_ALTITUDE, POINT_ALTITUDE_UNCERTAINTY, ELLIPSOID_ARC}
+
+ type union SupportedGADShapes {
+ SupportedGADShapes_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated ResponseTime_enum { LOW_DELAY, DELAY_TOLERANT}
+
+ type union ResponseTime {
+ ResponseTime_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated PositioningMethod_enum { CELLID, ECID, OTDOA, BAROMETRIC_PRESSURE, WLAN, BLUETOOTH, MBS}
+
+ type union PositioningMethod {
+ PositioningMethod_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated PositioningMode_enum { UE_BASED, UE_ASSISTED, CONVENTIONAL}
+
+ type union PositioningMode {
+ PositioningMode_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated GnssId_enum { GPS, GALILEO, SBAS, MODERNIZED_GPS, QZSS, GLONASS}
+
+ type union GnssId {
+ GnssId_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated Usage_enum { UNSUCCESS, SUCCESS_RESULTS_NOT_USED, SUCCESS_RESULTS_USED_TO_VERIFY_LOCATION, SUCCESS_RESULTS_USED_TO_GENERATE_LOCATION, SUCCESS_METHOD_NOT_DETERMINED}
+
+ type union Usage {
+ Usage_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated LcsPriority_enum { HIGHEST_PRIORITY, NORMAL_PRIORITY}
+
+ type union LcsPriority {
+ LcsPriority_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated VelocityRequested_enum { VELOCITY_IS_NOT_REQUESTED, VELOCITY_IS_REQUESTED}
+
+ type union VelocityRequested {
+ VelocityRequested_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated AccuracyFulfilmentIndicator_enum { REQUESTED_ACCURACY_FULFILLED, REQUESTED_ACCURACY_NOT_FULFILLED}
+
+ type union AccuracyFulfilmentIndicator {
+ AccuracyFulfilmentIndicator_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated VerticalDirection { UPWARD, DOWNWARD}
+
+
+
+
+
+
+} with {
+ encode "JSON"
+}

Back to the top