Initial commit
Signed-off-by: Gabor Szalai <gabor.szalai@ericsson.com>
diff --git a/5G_system_TS29512_Npcf_CNL113888.tpd b/5G_system_TS29512_Npcf_CNL113888.tpd
new file mode 100644
index 0000000..aecd4b3
--- /dev/null
+++ b/5G_system_TS29512_Npcf_CNL113888.tpd
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TITAN_Project_File_Information version="1.0">
+ <ProjectName>5G_system_TS29512_Npcf_CNL113888</ProjectName>
+ <ReferencedProjects>
+ <ReferencedProject name="5G_system_TS29514_Npcf_CNL113889" projectLocationURI="../5G_system_TS29514_Npcf_CNL113889/5G_system_TS29514_Npcf_CNL113889.tpd"/>
+ <ReferencedProject name="5G_system_TS29519_Nudr_CNL113900" projectLocationURI="../5G_system_TS29519_Nudr_CNL113900/5G_system_TS29519_Nudr_CNL113900.tpd"/>
+ <ReferencedProject name="5G_system_TS29571_CommonData_CNL113880" projectLocationURI="../5G_system_TS29571_CommonData_CNL113880/5G_system_TS29571_CommonData_CNL113880.tpd"/>
+ <ReferencedProject name="5G_system_TS32291_Nchf_CNL113894" projectLocationURI="../5G_system_TS32291_Nchf_CNL113894/5G_system_TS32291_Nchf_CNL113894.tpd"/>
+ </ReferencedProjects>
+ <Folders>
+ <FolderResource projectRelativePath="src" relativeURI="src"/>
+ </Folders>
+ <Files>
+ <FileResource projectRelativePath="src/TS29512_CommonData.ttcn" relativeURI="src/TS29512_CommonData.ttcn"/>
+ <FileResource projectRelativePath="src/TS29512_Npcf_SMPolicyControl.ttcn" relativeURI="src/TS29512_Npcf_SMPolicyControl.ttcn"/>
+ </Files>
+ <ActiveConfiguration>Default</ActiveConfiguration>
+ <Configurations>
+ <Configuration name="Default">
+ <ProjectProperties>
+ <MakefileSettings>
+ <GNUMake>true</GNUMake>
+ <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+ <targetExecutable>bin/5G_system_TS29512_Npcf_CNL113888</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_TS29512_Npcf_Description.adoc b/doc/5G_system_TS29512_Npcf_Description.adoc
new file mode 100644
index 0000000..f414301
--- /dev/null
+++ b/doc/5G_system_TS29512_Npcf_Description.adoc
@@ -0,0 +1,86 @@
+= 5G system TS29512 Npcf 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 TS29512 Npcf protocol module. The 5G system TS29512 Npcf protocol modules are developed for the TTCN-3 Toolset with Titan.
+
+== Functionality
+
+The 5G system TS29512 Npcf protocol module implements the object structures of the 3GPP TS 29512 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 TS29512 Npcf 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 TS29512 Npcf 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_SmPolicyContextData(in SmPolicyContextData pdu) return octetstring
+f_dec_SmPolicyContextData(in octetstring stream, out SmPolicyContextData pdu) return integer
+f_enc_SmPolicyDecision(in SmPolicyDecision pdu) return octetstring
+f_dec_SmPolicyDecision(in octetstring stream, out SmPolicyDecision pdu) return integer
+f_enc_SmPolicyNotification(in SmPolicyNotification pdu) return octetstring
+f_dec_SmPolicyNotification(in octetstring stream, out SmPolicyNotification pdu) return integer
+f_enc_UeCampingRep(in UeCampingRep pdu) return octetstring
+f_dec_UeCampingRep(in octetstring stream, out UeCampingRep pdu) return integer
+f_enc_RuleReport(in RuleReport pdu) return octetstring
+f_dec_RuleReport(in octetstring stream, out RuleReport pdu) return integer
+f_enc_TerminationNotification(in TerminationNotification pdu) return octetstring
+f_dec_TerminationNotification(in octetstring stream, out TerminationNotification pdu) return integer
+f_enc_SmPolicyControl(in SmPolicyControl pdu) return octetstring
+f_dec_SmPolicyControl(in octetstring stream, out SmPolicyControl pdu) return integer
+f_enc_SmPolicyUpdateContextData(in SmPolicyUpdateContextData pdu) return octetstring
+f_dec_SmPolicyUpdateContextData(in octetstring stream, out SmPolicyUpdateContextData pdu) return integer
+f_enc_SmPolicyDeleteData(in SmPolicyDeleteData pdu) return octetstring
+f_dec_SmPolicyDeleteData(in octetstring stream, out SmPolicyDeleteData 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 29512 v15.1.0+
+5G System; Session Management Policy Control Service; Stage 3
+
diff --git a/doc/change.log b/doc/change.log
new file mode 100644
index 0000000..2f80747
--- /dev/null
+++ b/doc/change.log
@@ -0,0 +1,9 @@
+= 5G system TS29512 Npcf 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/TS29512_CommonData.ttcn b/src/TS29512_CommonData.ttcn
new file mode 100644
index 0000000..4b2eb23
--- /dev/null
+++ b/src/TS29512_CommonData.ttcn
@@ -0,0 +1,34 @@
+/******************************************************************************
+* 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: TS29512_CommonData.ttcn
+// Description: Type definitions for 3GPP TS29512
+///////////////////////////////////////////////
+module TS29512_CommonData{
+ import from TS29571_CommonData all;
+
+ type set ChargingInformation {
+ TS29571_CommonData.Uri primaryChfAddress,
+ TS29571_CommonData.Uri secondaryChfAddress
+ }
+ type enumerated FlowDirection_enum { DOWNLINK, UPLINK, BIDIRECTIONAL, UNSPECIFIED}
+
+ type union FlowDirection {
+ FlowDirection_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+} with {
+ encode "JSON"
+}
+
diff --git a/src/TS29512_Npcf_SMPolicyControl.ttcn b/src/TS29512_Npcf_SMPolicyControl.ttcn
new file mode 100644
index 0000000..2a3d3f1
--- /dev/null
+++ b/src/TS29512_Npcf_SMPolicyControl.ttcn
@@ -0,0 +1,543 @@
+/******************************************************************************
+* 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: TS29512_Npcf_SMPolicyControl.ttcn
+// Description: Type definitions for 3GPP TS29512
+///////////////////////////////////////////////
+module TS29512_Npcf_SMPolicyControl {
+
+ import from TS29571_CommonData all
+ import from TS29512_CommonData all
+ import from TS29519_Policy_Data all
+ import from TS29514_Npcf_PolicyAuthorization all
+ import from TS32291_Nchf_ConvergedCharging all
+
+external function f_enc_SmPolicyContextData(in SmPolicyContextData pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyContextData(in octetstring stream, out SmPolicyContextData pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyDecision(in SmPolicyDecision pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyDecision(in octetstring stream, out SmPolicyDecision pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyNotification(in SmPolicyNotification pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyNotification(in octetstring stream, out SmPolicyNotification pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_UeCampingRep(in UeCampingRep pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_UeCampingRep(in octetstring stream, out UeCampingRep pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_RuleReport(in RuleReport pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_RuleReport(in octetstring stream, out RuleReport pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_TerminationNotification(in TerminationNotification pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_TerminationNotification(in octetstring stream, out TerminationNotification pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyControl(in SmPolicyControl pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyControl(in octetstring stream, out SmPolicyControl pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyUpdateContextData(in SmPolicyUpdateContextData pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyUpdateContextData(in octetstring stream, out SmPolicyUpdateContextData pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+external function f_enc_SmPolicyDeleteData(in SmPolicyDeleteData pdu) return octetstring
+with { extension "prototype(convert) encode(JSON)" }
+
+external function f_dec_SmPolicyDeleteData(in octetstring stream, out SmPolicyDeleteData pdu) return integer
+with { extension "prototype(backtrack) decode(JSON)" }
+
+
+ type set SmPolicyControl {
+ SmPolicyContextData context,
+ SmPolicyDecision policy
+ }
+
+ type set SmPolicyContextData {
+ AccNetChId accNetChId optional,
+ TS29571_CommonData.Gpsi gpsi optional,
+ TS29571_CommonData.Supi supi,
+ TS29571_CommonData.PduSessionId pduSessionId,
+ TS29571_CommonData.PduSessionId pduSessionType optional,
+ charstring chargingcharacteristics optional,
+ TS29571_CommonData.Dnn dnn,
+ TS29571_CommonData.Uri notificationUri,
+ TS29571_CommonData.AccessType accessType optional,
+ TS29571_CommonData.RatType ratType optional,
+ TS29571_CommonData.NetworkId servingNetwork optional,
+ TS29571_CommonData.UserLocation userLocationInfo optional,
+ TS29571_CommonData.TimeZone ueTimeZone optional,
+ TS29571_CommonData.Pei pei optional,
+ TS29571_CommonData.Ipv4Addr ipv4Address optional,
+ TS29571_CommonData.Ipv6Prefix ipv6AddressPrefix optional,
+ charstring ipDomain optional,
+ TS29571_CommonData.Ambr subSessAmbr optional,
+ TS29571_CommonData.DefaultQosInformation subsDefQos optional,
+ boolean online optional,
+ boolean offline optional,
+ boolean threegppPsDataOffStatus optional,
+ boolean refQosIndication optional,
+ TS29571_CommonData.TraceData traceReq optional,
+ TS29571_CommonData.Snssai sliceInfo,
+ TS29571_CommonData.SupportedFeatures suppFeat optional
+ } with {
+ variant (threegppPsDataOffStatus) "name as '3gppPsDataOffStatus'"
+ }
+
+ type set SmPolicyDecision {
+ set of record {
+ universal charstring key,
+ SessionRule additionalProperties
+ } sessRules optional,
+ set of record {
+ universal charstring key,
+ PccRule additionalProperties
+ } pccRules optional,
+ boolean pcscfRestIndication optional,
+ set of record {
+ universal charstring key,
+ QoSData additionalProperties
+ } qosDecs optional,
+ set of record {
+ universal charstring key,
+ ChargingData additionalProperties
+ } ChgDecs optional,
+ ChargingInformation chargingInfo optional,
+ set of record {
+ universal charstring key,
+ TrafficControlData additionalProperties
+ } traffContDecs optional,
+ set of record {
+ universal charstring key,
+ UsageMonitoringData additionalProperties
+ } umDecs optional,
+ set of record {
+ universal charstring key,
+ QosCharacteristics additionalProperties
+ } qosChars optional,
+ TS29571_CommonData.DurationSec reflectiveQoSTimer optional,
+ set of record {
+ universal charstring key,
+ ConditionData additionalProperties
+ } conds optional,
+ TS29571_CommonData.DateTime revalidationTime optional,
+ boolean offline optional,
+ boolean online optional,
+ set of PolicyControlRequestTrigger policyCtrlReqTriggers optional,
+ set of RequestedRuleData lastReqRuleData optional,
+ RequestedUsageData lastReqUsageData optional,
+ set of record {
+ universal charstring key,
+ TS29571_CommonData.PresenceInfo additionalProperties
+ } praInfos optional,
+ TS29519_Policy_Data.IpIndex ipv4Index optional,
+ TS29519_Policy_Data.IpIndex ipv6Index optional,
+ TS29571_CommonData.SupportedFeatures suppFeat optional
+ } with {
+ variant (sessRules) "as map"
+ variant (pccRules) "as map"
+ variant (ChgDecs) "as map"
+ variant (traffContDecs) "as map"
+ variant (umDecs) "as map"
+ variant (qosChars) "as map"
+ variant (conds) "as map"
+ variant (praInfos) "as map"
+ }
+
+ type set SmPolicyNotification {
+ TS29571_CommonData.Uri resourceUri optional,
+ SmPolicyDecision smPolicyDecision optional
+ }
+
+ type set PccRule {
+ set of FlowInformation flowInfos optional,
+ charstring appId optional,
+ TS29514_Npcf_PolicyAuthorization.ContentVersion contVer optional,
+ charstring pccRuleId,
+ integer precedence optional,
+ AfSigProtocol afSigProtocol optional,
+ boolean appReloc optional,
+ set of charstring refQosData optional,
+ set of charstring refTcData optional,
+ set of charstring refChgData optional,
+ set of charstring refUmData optional,
+ charstring refCondData optional
+ }
+
+ type set SessionRule {
+ TS29571_CommonData.Ambr authSessAmbr optional,
+ TS29571_CommonData.DefaultQosInformation authDefaultQos optional,
+ charstring sessRuleId,
+ charstring refUmData optional,
+ charstring refCondData optional
+ }
+
+ type set QoSData {
+ charstring qosId,
+ integer fiveqi,
+ TS29571_CommonData.BitRate maxbrUl optional,
+ TS29571_CommonData.BitRate maxbrDl optional,
+ TS29571_CommonData.BitRate gbrUl optional,
+ TS29571_CommonData.BitRate gbrDL optional,
+ TS29571_CommonData.Arp arp,
+ boolean qnc optional,
+ TS29571_CommonData.FiveQiPriorityLevel priorityLevel optional,
+ TS29571_CommonData.AverWindow averWindow optional,
+ TS29571_CommonData.MaxDataBurstVol maxDataBurstVol optional,
+ boolean reflectiveQos optional,
+ TS29571_CommonData.PacketLossRate maxPacketLossRate optional,
+ TS29571_CommonData.PacketLossRate maxPacketLossRateUl optional,
+ boolean defQosFlowIndication optional
+ }
+
+ type set ConditionData {
+ charstring condId,
+ TS29571_CommonData.DateTime activationTime optional,
+ TS29571_CommonData.DateTime deactivationTime optional
+ }
+
+ type set TrafficControlData {
+ charstring tcId,
+ TS29514_Npcf_PolicyAuthorization.FlowStatus flowStatus optional,
+ RedirectInformation redirectInfo optional,
+ boolean muteNotif optional,
+ charstring trafficSteeringPolIdDl optional,
+ charstring trafficSteeringPolIdUl optional,
+ set of TS29571_CommonData.RouteToLocation routeToLocs optional,
+ DnaiReport dnaiReport optional
+ }
+
+ type set ChargingData {
+ charstring chgId,
+ MeteringMethod meteringMethod optional,
+ boolean offline optional,
+ boolean online optional,
+ charstring ratingGroup optional,
+ ReportingLevel reportingLevel optional,
+ charstring serviceId optional,
+ charstring sponsorId optional,
+ charstring appSvcProvId optional,
+ charstring afChargingIdentifier optional
+ }
+
+ type set UsageMonitoringData {
+ charstring umId,
+ Volume volumeThreshold optional,
+ Volume volumeThresholdUplink optional,
+ Volume volumeThresholdDownlink optional,
+ TS29571_CommonData.DurationSec timeThreshold optional,
+ TS29571_CommonData.DateTime monitoringTime optional,
+ Volume nextVolThreshold optional,
+ Volume nextVolThresholdUplink optional,
+ Volume nextVolThresholdDownlink optional,
+ TS29571_CommonData.DurationSec nextTimeThreshold optional,
+ TS29571_CommonData.DurationSec inactivityTime optional,
+ set of charstring exUsagePccRuleIds optional
+ }
+
+ type set RedirectInformation {
+ boolean redirectSupport,
+ FlowDirection redirectAddressType optional,
+ charstring redirectServerAddress optional
+ }
+
+ type set FlowInformation {
+ FlowDescription flowDescription optional,
+ TS29514_Npcf_PolicyAuthorization.EthFlowDescription ethFlowDescription optional,
+ boolean packetFilterUsage optional,
+ charstring tosTrafficClass optional,
+ charstring spi optional,
+ charstring flowLabel optional,
+ FlowDirection flowDirection optional
+ }
+
+ type set SmPolicyDeleteData {
+ TS29571_CommonData.UserLocation userLocationInfo optional,
+ TS29571_CommonData.TimeZone ueTimeZone optional,
+ TS29571_CommonData.NetworkId servingNetwork optional,
+ TS29571_CommonData.DateTime userLocationInfoTime optional,
+ set of RanNasRelCause ranNasRelCauses optional,
+ set of AccuUsageReport accuUsageReports optional
+ }
+
+ type set QosCharacteristics {
+ integer fiveqI,
+ TS29571_CommonData.QosResourceType resourceType,
+ TS29571_CommonData.FiveQiPriorityLevel priorityLevel,
+ TS29571_CommonData.PacketDelBudget packetDelayBudget,
+ TS29571_CommonData.PacketErrRate packetErrorRate,
+ TS29571_CommonData.AverWindow averagingWindow optional,
+ TS29571_CommonData.MaxDataBurstVol maximumDataBurstVolume optional
+ } with {
+ variant (fiveqI) "name as '5qI'"
+ }
+
+ // The TS29519_Policy_Data use this type
+ // moved to TS29512_CommonData to prevent circular import
+ type TS29512_CommonData.ChargingInformation ChargingInformation
+
+ type set AccuUsageReport {
+ charstring refUmIds,
+ Volume volUsage optional,
+ Volume volUsageUplink optional,
+ Volume volUsageDownlink optional,
+ TS29571_CommonData.DurationSec timeUsage optional,
+ Volume nextVolUsage optional,
+ Volume nextVolUsageUplink optional,
+ Volume nextVolUsageDownlink optional,
+ TS29571_CommonData.DurationSec nextTimeUsage optional
+ }
+
+ type set SmPolicyUpdateContextData {
+ set of PolicyControlRequestTrigger repPolicyCtrlReqTriggers,
+ set of AccNetChId accNetChIds optional,
+ TS29571_CommonData.AccessType accessType optional,
+ TS29571_CommonData.RatType ratType optional,
+ TS29571_CommonData.NetworkId servingNetwork optional,
+ TS29571_CommonData.UserLocation userLocationInformation optional,
+ TS29571_CommonData.TimeZone ueTimeZone optional,
+ TS29571_CommonData.Ipv4Addr relIpv4Address optional,
+ TS29571_CommonData.Ipv4Addr ipv4Address optional,
+ TS29571_CommonData.Ipv6Prefix ipv6AddressPrefix optional,
+ TS29571_CommonData.Ipv6Prefix relIpv6AddressPrefix optional,
+ TS29571_CommonData.MacAddr48 relUeMac optional,
+ TS29571_CommonData.MacAddr48 ueMac optional,
+ TS29571_CommonData.Ambr subsSessAmbr optional,
+ TS29571_CommonData.DefaultQosInformation subsDefQos optional,
+ AccuUsageReport accuUsageReport optional,
+ boolean threegppPsDataOffStatus optional,
+ set of AppDetectionInfo appDetectionInfos optional,
+ set of RuleReport ruleReports optional,
+ TS29571_CommonData.DateTime userLocationInfoTime optional,
+ set of record {
+ universal charstring key,
+ TS29571_CommonData.PresenceInfo additionalProperties
+ } repPraInfos optional,
+ UeInitiatedResourceRequest ueInitResReq optional,
+ boolean refQosIndication optional,
+ TS29571_CommonData.TraceData traceReq optional
+ } with {
+ variant (repPraInfos) "as map"
+ variant (threegppPsDataOffStatus) "name as '3gppPsDataOffStatus'"
+ }
+
+ type set DnaiReport {
+ TS29571_CommonData.Uri notificationUri,
+ TS29571_CommonData.DnaiChangeType dnaiChgType optional
+ }
+
+ type set TerminationNotification {
+ TS29571_CommonData.Uri resourceUri
+ }
+
+ type set AppDetectionInfo {
+ charstring appId,
+ charstring instanceId optional,
+ set of FlowInformation sdfDescriptions optional
+ }
+
+ type set AccNetChId {
+ charstring accNetChaIdValue,
+ set of charstring refPccRuleIds optional,
+ boolean sessionChScope optional
+ }
+
+ type set RequestedRuleData {
+ set of charstring refPccRuleIds,
+ set of RequestedRuleDataType reqData
+ }
+
+ type set RequestedUsageData {
+ set of charstring refUmIds optional,
+ boolean allUmIds optional
+ }
+
+ type set UeCampingRep {
+ TS29571_CommonData.AccessType accessType optional,
+ TS29571_CommonData.AccessType ratType optional,
+ TS29571_CommonData.NetworkId servingNetwork optional,
+ TS29571_CommonData.UserLocation userLocationInfo optional,
+ TS29571_CommonData.TimeZone ueTimeZone optional
+ }
+
+ type set RuleReport {
+ set of charstring pccRuleIds optional,
+ RuleStatus ruleStatus optional,
+ set of TS29514_Npcf_PolicyAuthorization.ContentVersion contVers optional,
+ FailureCode failureCode optional,
+ TS32291_Nchf_ConvergedCharging.FinalUnitAction finUnitAct optional
+ }
+
+ type set of RanNasRelCause ranNasRelCauses
+
+ type set RanNasRelCause {
+ TS29571_CommonData.NgApCause ngApCause optional,
+ TS29571_CommonData.FiveGMmCause fiveGMmCause optional,
+ FiveGSmCause fiveGSmCause optional
+ } with {
+ variant (fiveGMmCause) "name as '5GMmCause'"
+ variant (fiveGSmCause) "name as '5GSmCause'"
+ }
+
+ type set UeInitiatedResourceRequest {
+ PacketFilterOperation packFiltOp,
+ set of PacketFilterInfo packFiltInfo,
+ RequestedQos reqQos optional
+ }
+
+ type set PacketFilterInfo {
+ charstring packFiltId optional,
+ integer precedence optional,
+ PacketFilterContent packFiltCont optional,
+ charstring tosTrafficClass optional,
+ charstring spi optional,
+ charstring flowLabel optional,
+ FlowDirection flowDirection optional
+ }
+
+ type set RequestedQos {
+ TS29571_CommonData.FiveQi fiveqi optional,
+ TS29571_CommonData.BitRate gbrUl optional,
+ TS29571_CommonData.BitRate gbrDl optional
+ } with {
+ variant (fiveqi) "name as '5qi'"
+ }
+
+
+ type TS29571_CommonData.Uinteger FiveGSmCause
+
+ type charstring PacketFilterContent
+
+ type charstring FlowDescription
+
+ type integer Volume
+
+ type TS29512_CommonData.FlowDirection_enum FlowDirection_enum
+
+ type TS29512_CommonData.FlowDirection FlowDirection
+
+
+ type enumerated ReportingLevel_enum { SER_ID_LEVEL, RAT_GR_LEVEL, SPON_CON_LEVEL}
+
+ type union ReportingLevel {
+ ReportingLevel_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated MeteringMethod_enum { DURATION, VOLUME, DURATION_VOLUME, EVENT}
+
+ type union MeteringMethod {
+ MeteringMethod_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated PolicyControlRequestTrigger_enum { PLMN_CH, RES_MO_RE, AC_TY_CH, UE_IP_CH, UE_MAC_CH, AN_CH_COR, US_RE, APP_STA, APP_STO, AN_INFO, CM_SES_FAIL, PS_DA_OFF, DEF_QOS_CH, SE_AMBR_CH, PCC_RMV, QOS_STO, QOS_STA, NO_CREDIT, PRA_CH, SAREA_CH, SCNN_CH, ENF_PCC_RUL, RE_TIMEOUT, RES_RELEASE, SUCC_RES_ALLO}
+
+ type union PolicyControlRequestTrigger {
+ PolicyControlRequestTrigger_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated RequestedRuleDataType_enum { CH_ID, MS_TIME_ZONE, USER_LOC_INFO, RES_RELEASE, SUCC_RES_ALLO}
+
+ type union RequestedRuleDataType {
+ RequestedRuleDataType_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated RuleStatus_enum { ACTIVE, INACTIVE}
+
+ type union RuleStatus {
+ RuleStatus_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated FailureCode_enum { UNK_RULE_ID, RA_GR_ERR, SER_ID_ERR, NF_MAL, RES_LIM, MAX_NR_QoS_FLOW, MISS_FLOW_INFO, RES_ALLO_FAIL, UNSUCC_QOS_VAL, INCOR_FLOW_INFO, PS_TO_CS_HAN, APP_ID_ERR, NO_QOS_FLOW_BOUND, FILTER_RES, MISS_REDI_SER_ADDR, CM_END_USER_SER_DENIED, CM_CREDIT_CON_NOT_APP, CM_AUTH_REJ, CM_USER_UNK, CM_RAT_FAILED, SESS_AMBR_FAILURE, DEF_QOS_FAILURL}
+
+ type union FailureCode {
+ FailureCode_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated AfSigProtocol_enum { NO_INFORMATION, SIP}
+
+ type union AfSigProtocol {
+ AfSigProtocol_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated PacketFilterOperation_enum { DELETION, ADDITION, MODIFICATION}
+
+ type union PacketFilterOperation {
+ PacketFilterOperation_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+ type enumerated RedirectAddressType_enum { IPV4_ADDR, IPV6_ADDR, URL, SIP_URI}
+
+ type union RedirectAddressType {
+ RedirectAddressType_enum enum_val,
+ charstring other_val
+ } with {
+ variant "JSON: as value"
+ }
+
+
+
+
+
+
+} with {
+ encode "JSON"
+}