blob: 2a3d3f1b2aeff38e0c91c078020ea61b377a3ec8 [file] [log] [blame]
/******************************************************************************
* 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"
}