| /****************************************************************************** |
| * 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" |
| } |