Skip to content
Snippets Groups Projects
Commit 2e8ed7a3 authored by Gábor Szalai's avatar Gábor Szalai
Browse files

Initial commit


Signed-off-by: default avatarGabor Szalai <gabor.szalai@ericsson.com>
parents
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<TITAN_Project_File_Information version="1.0">
<ProjectName>5G_system_TS29509_Nausf_CNL113885</ProjectName>
<ReferencedProjects>
<ReferencedProject name="5G_system_TS29503_Nudm_CNL113883" projectLocationURI="../5G_system_TS29503_Nudm_CNL113883/5G_system_TS29503_Nudm_CNL113883.tpd"/>
<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/TS29509_Nausf_SoRProtection.ttcn" relativeURI="src/TS29509_Nausf_SoRProtection.ttcn"/>
<FileResource projectRelativePath="src/TS29509_Nausf_UEAuthentication.ttcn" relativeURI="src/TS29509_Nausf_UEAuthentication.ttcn"/>
</Files>
<ActiveConfiguration>Default</ActiveConfiguration>
<Configurations>
<Configuration name="Default">
<ProjectProperties>
<MakefileSettings>
<GNUMake>true</GNUMake>
<incrementalDependencyRefresh>true</incrementalDependencyRefresh>
<targetExecutable>bin/5G_system_TS29509_Nausf_CNL113885</targetExecutable>
</MakefileSettings>
<LocalBuildSettings>
<workingDirectory>bin</workingDirectory>
</LocalBuildSettings>
</ProjectProperties>
</Configuration>
</Configurations>
</TITAN_Project_File_Information>
\ No newline at end of file
= 5G system TS29509 Nausf 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 TS29509 Nausf protocol module. The 5G system TS29509 Nausf protocol modules are developed for the TTCN-3 Toolset with Titan.
== Functionality
The 5G system TS29509 Nausf protocol module implements the object structures of the 3GPP TS 29509 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 TS29509 Nausf 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 TS29509 Nausf 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
f_enc_SorInfo(in SorInfo pdu) return octetstring
f_dec_SorInfo(in octetstring stream, out SorInfo pdu) return integer
f_enc_SorSecurityInfo(in SorSecurityInfo pdu) return octetstring
f_dec_SorSecurityInfo(in octetstring stream, out SorSecurityInfo pdu) return integer
f_enc_AuthenticationInfo(in AuthenticationInfo pdu) return octetstring
f_dec_AuthenticationInfo(in octetstring stream, out AuthenticationInfo pdu) return integer
f_enc_UEAuthenticationCtx(in UEAuthenticationCtx pdu) return octetstring
f_dec_UEAuthenticationCtx(in octetstring stream, out UEAuthenticationCtx pdu) return integer
f_enc_ConfirmationData(in ConfirmationData pdu) return octetstring
f_dec_ConfirmationData(in octetstring stream, out ConfirmationData pdu) return integer
f_enc_ConfirmationDataResponse(in ConfirmationDataResponse pdu) return octetstring
f_dec_ConfirmationDataResponse(in octetstring stream, out ConfirmationDataResponse pdu) return integer
f_enc_EapSession(in EapSession pdu) return octetstring
f_dec_EapSession(in octetstring stream, out EapSession 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 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 29509 v15.1.0+
5G System; Authentication Server Services; Stage 3
= 5G system TS29509 Nausf 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
/******************************************************************************
* 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: TS29509_Nausf_SoRProtection.ttcn
// Description: Type definitions for 3GPP TS29509
///////////////////////////////////////////////
module TS29509_Nausf_SoRProtection {
import from TS29571_CommonData all
external function f_enc_SorInfo(in SorInfo pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_SorInfo(in octetstring stream, out SorInfo pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_SorSecurityInfo(in SorSecurityInfo pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_SorSecurityInfo(in octetstring stream, out SorSecurityInfo pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
type set SorInfo {
set of SteeringInfo steeringInfoList,
AckInd ackInd
}
type set SorSecurityInfo {
SorMac sorMacIausf,
CounterSor counterSor,
SorMac sorXmacIue optional
}
type set SteeringInfo {
TS29571_CommonData.PlmnId plmnId,
set of AccessTech accessTechList optional
}
type charstring SorMac // (pattern "^[A-Fa-f0-9]{32}$")
type charstring CounterSor // (pattern "^[A-Fa-f0-9]{4}$")
type boolean AckInd
type enumerated AccessTech_enum { NR, EUTRAN_IN_WBS1_MODE_AND_NBS1_MODE, EUTRAN_IN_NBS1_MODE_ONLY, EUTRAN_IN_WBS1_MODE_ONLY, UTRAN, GSM_AND_ECGSM_IoT, GSM_WITHOUT_ECGSM_IoT, ECGSM_IoT_ONLY, CDMA_1xRTT, CDMA_HRPD, GSM_COMPACT}
type union AccessTech {
AccessTech_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
} with {
encode "JSON"
}
/******************************************************************************
* 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: TS29509_Nausf_UEAuthentication.ttcn
// Description: Type definitions for 3GPP TS29509
///////////////////////////////////////////////
module TS29509_Nausf_UEAuthentication {
import from TS29503_Nudm_UEAU all
import from TS29571_CommonData all
external function f_enc_AuthenticationInfo(in AuthenticationInfo pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_AuthenticationInfo(in octetstring stream, out AuthenticationInfo pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_UEAuthenticationCtx(in UEAuthenticationCtx pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_UEAuthenticationCtx(in octetstring stream, out UEAuthenticationCtx pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_ConfirmationData(in ConfirmationData pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_ConfirmationData(in octetstring stream, out ConfirmationData pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_ConfirmationDataResponse(in ConfirmationDataResponse pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_ConfirmationDataResponse(in octetstring stream, out ConfirmationDataResponse pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_EapSession(in EapSession pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_EapSession(in octetstring stream, out EapSession pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
type set AuthenticationInfo {
TS29503_Nudm_UEAU.SupiOrSuci supiOrSuci,
TS29503_Nudm_UEAU.ServingNetworkName servingNetworkName,
TS29503_Nudm_UEAU.ResynchronizationInfo resynchronizationInfo optional,
TS29571_CommonData.NfInstanceId amfInstanceId,
TS29571_CommonData.TraceData traceData optional
}
type set UEAuthenticationCtx {
AuthType authType,
union {
Av5gAka av5gAka,
EapPayload eapPayload
} fivegAuthData,
set of record {
universal charstring key,
TS29571_CommonData.LinksValueSchema additionalProperties
} links,
TS29503_Nudm_UEAU.ServingNetworkName servingNetworkName optional
} with {
variant (fivegAuthData) "JSON: as value"
variant (fivegAuthData) "name as '5gAuthData'"
variant (links) "as map"
variant (links) "name as '_links'"
}
type set Av5gAka {
TS29503_Nudm_UEAU.Rand rand,
HxresStar hxresStar,
TS29503_Nudm_UEAU.Autn autn,
Kseaf kSeaf
}
type set ConfirmationData {
ResStar resStar,
TS29503_Nudm_UEAU.SupiOrSuci supiOrSuci optional
}
type set ConfirmationDataResponse {
AuthResult authResult,
TS29571_CommonData.Supi supi optional
}
type set EapSession {
EapPayload eapPayload,
Kseaf kSeaf optional,
set of record {
universal charstring key,
TS29571_CommonData.LinksValueSchema additionalProperties
} links optional
} with {
variant (links) "as map"
variant (links) "name as '_links'"
}
type enumerated AuthResult { AUTHENTICATION_SUCCESS, AUTHENTICATION_FAILURE, AUTHENTICATION_ONGOING}
type charstring EapPayload
type charstring Kseaf // (pattern "[A-Fa-f0-9]{64}")
type charstring ResStar // (pattern "[A-Fa-f0-9]{32}")
type charstring HxresStar // (pattern "[A-Fa-f0-9]{32}")
type enumerated AuthType_enum { FIVEG_AKA, EAP_AKA_PRIME, EAP_TLS}
with {
variant "text 'FIVEG_AKA' as '5G_AKA'"
variant "text 'EAP_TLS' as 'EAP-TLS'"
}
type union AuthType {
AuthType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
} with {
encode "JSON"
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment