blob: 7524358305a7c55ab87678bad3e2f95d45e60506 [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: TS29571_CommonData.ttcn
// Description: Type definitions for 3GPP TS29571 CommonData
///////////////////////////////////////////////
module TS29571_CommonData {
import from JSON_Generic all;
external function f_enc_ProblemDetails(in ProblemDetails pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_ProblemDetails(in octetstring stream, out ProblemDetails pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_TraceData(in TraceData pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_TraceData(in octetstring stream, out TraceData pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
external function f_enc_VarUeId(in VarUeId pdu) return octetstring
with { extension "prototype(convert) encode(JSON)" }
external function f_dec_VarUeId(in octetstring stream, out VarUeId pdu) return integer
with { extension "prototype(backtrack) decode(JSON)" }
type charstring Binary
type Binary BinaryRm
type charstring Bytes
type Bytes BytesRm
type charstring Date
type Date DateRm
type charstring DateTime
type DateTime DateTimeRm
type charstring DiameterIdentity // (pattern "^([A-Za-z0-9]+(-[A-Za-z0-9]+).)+[a-z]{2,}$")
type DiameterIdentity DiameterIdentityRm // (pattern "^([A-Za-z0-9]+(-[A-Za-z0-9]+).)+[a-z]{2,}$")
type float Double
type Double DoubleRm
type integer DurationSec
type DurationSec DurationSecRm
type float Float
type Float FloatRm
type integer Int32
type Int32 Int32Rm
type integer Int64
type Int64 Int64Rm
type charstring Ipv4Addr
type Ipv4Addr Ipv4AddrRm
type charstring Ipv6Addr
type Ipv6Addr Ipv6AddrRm
type charstring Ipv6Prefix
type Ipv6Prefix Ipv6PrefixRm
type charstring MacAddr48 // (pattern "^([0-9a-fA-F]{2})((-[0-9a-fA-F]{2}){5})$")
type MacAddr48 MacAddr48Rm // (pattern "^([0-9a-fA-F]{2})((-[0-9a-fA-F]{2}){5})$")
type charstring SupportedFeatures // (pattern "^[A-Fa-f0-9]*$")
type integer Uinteger (0..infinity)
type Uinteger UintegerRm (0..infinity)
type integer Uint16 (0..65535)
type Uint16 Uint16Rm (0..65535)
type integer Uint32 (0..infinity)
type Uint32 Uint32Rm (0..infinity)
type integer Uint64 (0..infinity)
type Uint64 Uint64Rm (0..infinity)
type charstring Uri
type Uri UriRm
type charstring VarUeId // (pattern "^(imsi-[0-9]{5,15}|nai-.+|msisdn-[0-9]{5,15}|extid-.+|.+)$")
type charstring TimeZone
type TimeZone TimeZoneRm
type enumerated PatchOperation_enum { add, copy, move, remove, replace_, test}
with {
variant "text 'replace_' as 'replace' "
}
type union PatchOperation {
PatchOperation_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type enumerated UriScheme_enum { http, https}
type union UriScheme {
UriScheme_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type enumerated ChangeType_enum { ADD, MOVE, REMOVE, REPLACE}
type union ChangeType {
ChangeType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set ProblemDetails {
Uri type_ optional,
charstring title optional,
integer status optional,
charstring detail optional,
Uri instance optional,
charstring cause optional,
set of InvalidParam invalidParams optional
} with {
variant (type_) "name as 'type'"
}
type set Link {
Uri href optional
}
type Link LinkRm
type set PatchItem {
PatchOperation op,
charstring path,
charstring from_ optional,
JSON_generic_val value_ optional
} with {
variant (from_) "name as 'from'"
variant (value_) "name as 'value'"
}
type union LinksValueSchema {
set of Link field1,
Link field2
} with {
variant "JSON: as value"
}
type set SelfLink {
Link self_
} with {
variant (self_) "name as 'self'"
}
type set InvalidParam {
charstring param_,
charstring reason optional
} with {
variant (param_) "name as 'param' "
}
type set ChangeItem {
ChangeType op,
charstring path,
charstring from_ optional,
JSON_generic_val origValue optional,
JSON_generic_val newValue optional
} with {
variant (from_) "name as 'from'"
}
type set NotifyItem {
Uri resourceId optional,
set of ChangeItem changes optional
}
type charstring Dnn
type Dnn DnnRm
type charstring Gpsi // (pattern "^(msisdn-[0-9]{5,15}|extid-.+@.+|.+)$")
type Gpsi GpsiRm // (pattern "^(msisdn-[0-9]{5,15}|extid-.+|.+)$")
type charstring GroupId // (pattern "^groupid-[A-Fa-f0-9]{8}-[0-9]{3}-[0-9]{2,3}-([A-Fa-f0-9][A-Fa-f0-9]){1,10}$")
type GroupId GroupIdRm // (pattern "^(groupid-[A-Fa-f0-9]{14,34}|.+)$")
type charstring Pei // (pattern "^(imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$")
type Pei PeiRm // (pattern "^(imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$")
type charstring Supi // (pattern "^(imsi-[0-9]{5,15}|nai-.+|.+)$")
type Supi SupiRm // (pattern "^(imsi-[0-9]{5,15}|nai-.+|.+)$")
type charstring NfInstanceId
type charstring AmfId // (pattern "^[A-Fa-f0-9]{6}$")
type integer RfspIndex (1..256)
type RfspIndex RfspIndexRm (1..256)
type set Guami {
PlmnId plmnId,
AmfId amfId
}
type set GuamiRm {
PlmnId plmnId,
AmfId amfId
}
type set NetworkId {
Mnc mnc optional,
Mcc mcc optional
}
type charstring ApplicationId
type ApplicationId ApplicationIdRm
type integer PduSessionId (0..255)
type charstring Mcc // (pattern "^\d{3}$")
type Mcc MccRm // (pattern "^\d{3}$")
type charstring Mnc // (pattern "^\d{2,3}$")
type Mnc MncRm // (pattern "^\d{2,3}$")
type charstring Tac // (pattern "(^[A-Fa-f0-9]{4}$)|(^[A-Fa-f0-9]{6}$)")
type Tac TacRm // (pattern "(^[A-Fa-f0-9]{4}$)|(^[A-Fa-f0-9]{6}$)")
type charstring EutraCellId // (pattern "^[A-Fa-f0-9]{7}$")
type EutraCellId EutraCellIdRm // (pattern "^[A-Fa-f0-9]{7}$")
type charstring NrCellId // (pattern "^[A-Fa-f0-9]{9}$")
type NrCellId NrCellIdRm // (pattern "^[A-Fa-f0-9]{9}$")
type charstring Dnai
type Dnai DnaiRm
type Uinteger FiveGMmCause
type charstring AmfName
type charstring AreaCode
type AreaCode AreaCodeRm
type charstring NgRanIdentifier // (pattern "^(gNB-[A-Fa-f0-9]{6,8}|MacroNGeNB-[A-Fa-f0-9]{5}|LMacroNGeNB-[A-Fa-f0-9]{6}|SMacroNGeNB-[A-Fa-f0-9]{5})$")
type enumerated AccessType { ThreeGPP_ACCESS, NON_3GPP_ACCESS}
with {
variant "text 'ThreeGPP_ACCESS' as '3GPP_ACCESS'"
}
type AccessType AccessTypeRm
type enumerated RatType_enum { NR, EUTRA, WLAN, VIRTUAL}
type union RatType {
RatType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type RatType RatTypeRm
type enumerated PduSessionType_enum { IPV4V6, IPV4, IPV6, UNSTR, ETHER}
type union PduSessionType {
PduSessionType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type PduSessionType PduSessionTypeRm
type enumerated UpIntegrity_enum { REQUIRED, PREFERRED, NOT_NEEDED}
type union UpIntegrity {
UpIntegrity_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type UpIntegrity UpIntegrityRm
type enumerated UpConfidentiality_enum { REQUIRED, PREFERRED, NOT_NEEDED}
type union UpConfidentiality {
UpConfidentiality_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type UpConfidentiality UpConfidentialityRm
type enumerated SscMode_enum { SSC_MODE_1, SSC_MODE_2, SSC_MODE_3}
type union SscMode {
SscMode_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type SscMode SscModeRm
type enumerated DnaiChangeType_enum { EARLY, EARLY_LATE, LATE}
type union DnaiChangeType {
DnaiChangeType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type DnaiChangeType DnaiChangeTypeRm
type enumerated RestrictionType_enum { ALLOWED_AREAS, NOT_ALLOWED_AREAS}
type union RestrictionType {
RestrictionType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type RestrictionType RestrictionTypeRm
type enumerated CoreNetworkType_enum { FiveGC, EPC}
with {
variant "text 'FiveGC' as '5GC'"
}
type union CoreNetworkType {
CoreNetworkType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type CoreNetworkType CoreNetworkTypeRm
type enumerated PresenceState_enum { IN_AREA, OUT_OF_AREA, UNKNOWN, INACTIVE}
type union PresenceState {
PresenceState_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type set Snssai {
integer sst (0..255),
charstring sd optional// (pattern "^[A-Fa-f0-9]{6}$")
}
type set PlmnId {
Mcc mcc,
Mnc mnc
}
type PlmnId PlmnIdRm
type set Tai {
PlmnId plmnId,
Tac tac
}
type Tai TaiRm
type set Ecgi {
PlmnId plmnId,
EutraCellId eutraCellId
}
type Ecgi EcgiRm
type set Ncgi {
PlmnId plmnId,
NrCellId nrCellId
}
type Ncgi NcgiRm
type set UserLocation {
EutraLocation eutraLocation optional,
NrLocation nrLocation optional,
N3gaLocation n3gaLocation optional
}
type set EutraLocation {
Tai tai,
Ecgi ecgi,
integer ageOfLocationInformation (0..32767) optional,
DateTime ueLocationTimestamp optional,
charstring geographicalInformation optional, // (pattern "^[0-9A-F]{16}$")
charstring geodeticInformation optional, // (pattern "^[0-9A-F]{20}$")
GlobalRanNodeId globalNgenbId optional
}
type EutraLocation EutraLocationRm
type set NrLocation {
Tai tai,
Ncgi ncgi,
integer ageOfLocationInformation (0..32767) optional,
DateTime ueLocationTimestamp optional,
charstring geographicalInformation optional, // (pattern "^[0-9A-F]{16}$")
charstring geodeticInformation optional, // (pattern "^[0-9A-F]{20}$")
GlobalRanNodeId globalGnbId optional
}
type NrLocation NrLocationRm
type set N3gaLocation {
Tai n3gppTai optional,
charstring n3IwfId optional,// (pattern "^[A-Fa-f0-9]+$")
Ipv4Addr ueIpv4Addr optional,
Ipv6Addr ueIpv6Addr optional,
Uinteger portNumber optional
}
type set UpSecurity {
UpIntegrity upIntegr,
UpConfidentiality upConfid
}
type UpSecurity UpSecurityRm
type set NgApCause {
Uinteger group_,
Uinteger value_
} with {
variant (group_) "name as 'group'"
variant (value_) "name as 'value'"
}
type set BackupAmfInfo {
AmfName backupAmf,
set of Guami guamiList optional
}
type set RefToBinaryData {
charstring contentId
}
type RefToBinaryData RefToBinaryDataRm
type set RouteToLocation {
Dnai dnai,
RouteInformation routeInfo optional,
charstring routeProfId optional
}
type set RouteInformation {
Ipv4Addr ipv4Addr optional,
Ipv6Addr ipv6Addr optional,
Uinteger portNumber
}
type set DefaultQosInformation {
FiveQi fiveqi,
NonDynamic5Qi nonDynamic5Qi optional,
Dynamic5Qi dynamic5Qi optional,
Arp arp optional
} with {
variant (fiveqi) "name as '5qi'"
}
type set Area {
set of Tac tacs optional,
set of AreaCode areaCodes optional
}
type set ServiceAreaRestriction {
RestrictionType restrictionType optional,
set of Area areas optional,
Uinteger maxNumOfTAs optional
}
type set PresenceInfo {
charstring praId optional,
PresenceState presenceState optional,
set of Tai trackingAreaList optional,
set of Ecgi ecgiList optional,
set of Ncgi ncgiList optional,
set of GlobalRanNodeId globalRanNodeIdList optional
}
type set GlobalRanNodeId {
PlmnId plmnId,
charstring n3IwfId optional,
NgRanIdentifier ngRanNodeId optional
}
type integer Qfi (0..63)
type Qfi QfiRm
type integer FiveQi (0..255)
type FiveQi FiveQiRm
type charstring BitRate // (pattern "^\d+(\.\d+)? (bps|Kbps|Mbps|Gbps|Tbps)$")
type BitRate BitRateRm // (pattern "^\d+(\.\d+)? (bps|Kbps|Mbps|Gbps|Tbps)$")
type integer ArpPriorityLevel (1..15)
type integer FiveQiPriorityLevel (1..127)
type FiveQiPriorityLevel FiveQiPriorityLevelRm
type integer PacketDelBudget (1..infinity)
type PacketDelBudget PacketDelBudgetRm
type integer PacketErrRate
type PacketErrRate PacketErrRateRm
type integer PacketLossRate (0..1000)
type PacketLossRate PacketLossRateRm
type integer AverWindow (1..infinity)
type AverWindow AverWindowRm
type integer MaxDataBurstVol (1..infinity)
type MaxDataBurstVol MaxDataBurstVolRm
type enumerated PreemptionCapability_enum { NOT_PREEMPT, MAY_PREEMPT}
type union PreemptionCapability {
PreemptionCapability_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type PreemptionCapability PreemptionCapabilityRm
type enumerated PreemptionVulnerability_enum { NOT_PREEMPTABLE, PREEMPTABLE}
type union PreemptionVulnerability {
PreemptionVulnerability_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type PreemptionVulnerability PreemptionVulnerabilityRm
type enumerated ReflectiveQoSAttribute_enum { RQOS, NO_RQOS}
type union ReflectiveQoSAttribute {
ReflectiveQoSAttribute_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type ReflectiveQoSAttribute ReflectiveQoSAttributeRm
type enumerated NotificationControl_enum { REQUESTED, NOT_REQUESTED}
type union NotificationControl {
NotificationControl_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type NotificationControl NotificationControlRm
type enumerated QosResourceType_enum { NON_GBR, NON_CRITICAL_GBR, CRITICAL_GBR}
type union QosResourceType {
QosResourceType_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type QosResourceType QosResourceTypeRm
type set Arp {
ArpPriorityLevel priorityLevel,
PreemptionCapability preemptCap,
PreemptionVulnerability preemptVuln
}
type Arp ArpRm
type set Ambr {
BitRate uplink,
BitRate downlink
}
type Ambr AmbrRm
type set Dynamic5Qi {
QosResourceType resourceType,
FiveQiPriorityLevel priorityLevel,
PacketDelBudget packetDelayBudget,
PacketErrRate packetErrRate,
AverWindow averWindow optional,
MaxDataBurstVol maxDataBurstVol optional
}
type set NonDynamic5Qi {
FiveQiPriorityLevel priorityLevel optional,
AverWindow averWindow optional,
MaxDataBurstVol maxDataBurstVol optional
}
type enumerated TraceDepth_enum { MINIMUM, MEDIUM, MAXIMUM, MINIMUM_WO_VENDOR_EXTENSION, MEDIUM_WO_VENDOR_EXTENSION, MAXIMUM_WO_VENDOR_EXTENSION}
type union TraceDepth {
TraceDepth_enum enum_val,
charstring other_val
} with {
variant "JSON: as value"
}
type TraceDepth TraceDepthRm
type set TraceData {
charstring traceRef, // (pattern "^[0-9]{3}[0-9]{2,3}-[A-Fa-f0-9]{6}$"),
TraceDepth traceDepth,
charstring neTypeList, // (pattern "^[A-Fa-f0-9]+$"),
charstring eventList, // (pattern "^[A-Fa-f0-9]+$"),
Ipv4Addr collectionEntityIpv4Addr optional,
Ipv6Addr collectionEntityIpv6Addr optional,
charstring interfaceList optional // (pattern "^[A-Fa-f0-9]+$")
}
} with {
encode "JSON"
}