module BwManagementAPI_TypesAndValues { // JSON import from JSON all; // LibCommon import from LibCommon_BasicTypesAndValues all; /** * @desc Information of bandwidth resource * @member timeStamp Time stamp to indicate when the corresponding information elements are sent * @member appInsId Application instance identifier * @member sessionFilter Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only * @member requestType Numeric value (0 - 255) corresponding to specific type of consumer * @member fixedBWPriority Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document * @member fixedAllocation Size of requested fixed BW allocation in [bps] * @member allocationDirection The direction of the requested BW allocation */ type record BwInfo { TimeStamp timeStamp optional, AppInsId appInsId, RequestType requestType, SessionFilter sessionFilter optional, FixedBWPriority fixedBWPriority optional, FixedAllocation fixedAllocation, AllocationDirection allocationDirection } /** * @desc Conform to JSON merge patch format and processing rules specified IETF RFC 7396 [8], this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON * @member appInsId Application instance identifier * @member requestType Numeric value (0 - 255) corresponding to specific type of consumer * @member sessionFilter Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION * @member fixedBWPriority Indicates the allocation priority when dealing with several applications or sessions in parallel * @member fixedAllocation Size of requested fixed BW allocation in [bps] * @member allocationDirection The direction of the requested BW allocation */ type record BwInfoDeltas { AppInsId appInsId, RequestType requestType, SessionFilter sessionFilter optional, FixedBWPriority fixedBWPriority optional, FixedAllocation fixedAllocation optional, AllocationDirection allocationDirection optional } /** * @desc Time stamp description * @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC * @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC */ type record TimeStamp { Seconds seconds, NanoSeconds nanoSeconds } /** * @desc Application instance identifier */ type JSON.String AppInsId; /** * @desc Numeric value (0 - 255) corresponding to specific type of consumer */ type enumerated RequestType { APPLICATION_SPECIFIC_BW_ALLOCATION (0), SESSION_SPECIFIC_BW_ALLOCATION (1) } with { variant "JSON: as number" } /** * @desc Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected */ type record of SessionFilterItems SessionFilter; /** * @desc Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected * @member sourceIp Source address identity of session (including range) * @member sourcePort Source port identity of session * @member dstAddress Destination address identity of session (including range) * @member dstPort Destination port identity of session * @member protocol Protocol number */ type record SessionFilterItems { SourceIp sourceIp optional, SourcePort sourcePort optional, DstAddress dstAddress optional, DstPort dstPort optional, Protocol protocol optional } /** * @desc Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document */ type enumerated FixedBWPriority { not_defined_in_the_present_document } with { variant "JSON: as number" } /** * @desc Size of requested fixed BW allocation in [bps] */ type JSON.String FixedAllocation; /** * @desc The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC */ type UInt32 Seconds; /** * @desc The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC */ type UInt32 NanoSeconds; /** * @desc The direction of the requested BW allocation */ type enumerated AllocationDirection { Downlink, Uplink, Symmetrical } /** * @desc Source address identity of session (including range) */ type JSON.String SourceIp; /** * @desc Source port identity of session */ type record of JSON.String SourcePort; /** * @desc Destination address identity of session (including range) */ type JSON.String DstAddress; /** * @desc Destination port identity of session */ type record of JSON.String DstPort; /** * @desc Protocol number */ type JSON.String Protocol; /** * @desc The information on access network connection * @member timeStamp Time stamp to indicate when the corresponding information elements are sent * @member mtsAccessInfo The information on access network connection as defined below * @member mtsMode Numeric value corresponding to a specific MTS operation supported by the TMS */ type record MtsCapabilityInfo { TimeStamp timeStamp optional, MtsAccessInfos mtsAccessInfo, MtsModes mtsMode } type enumerated MtsMode { LowCost (0), LowLatency (1), HighThroughput (2), Redundancy (3), QoS (4) } with { variant "JSON: as number" } type record of MtsMode MtsModes; /** * @desc The information on access network connection as defined below * @member accessId Unique identifier for the access network connection * @member accessType Numeric value (0-255) corresponding to specific type of access network * @member metered Numeric value (0-255) */ type record MtsAccessInfo { AccessId accessId, AccessType accessType, Metered metered } type record of MtsAccessInfo MtsAccessInfos; type UInt32 AccessId; type enumerated AccessType { Unknown (0), IEEE802_11_Based (1), ThreeGPP_Based (2), Fixed_Access (3), IEEE802_11abg (11), IEEE802_11abgn (12), IEEE802_11abgnac (13), IEEE802_11abgnacax (14), IEEE802_11bgn (15), ThreeGPP_GERAN_UTRA (31), ThreeGPP_E_UTRA (32), Three3GPP_NR (33) } with { variant "JSON: as number" } type enumerated Metered { CxNotMetered (0), CxMetered (1), Unknown (2) } with { variant "JSON: as number" } /** * @desc The information on access network connection as defined below * @member timeStamp Time stamp to indicate when the corresponding information elements are sent * @member appInsId Application instance identifier * @member requestType Numeric value (0 - 255) corresponding to specific type of consumer * @member flowFilter Traffic flow filtering criteria, applicable only * @member qosD QoS requirement description of the MTS session * @member mtsMode Numeric value corresponding to a specific MTS operation * @member trafficDirection The direction of the requested MTS session supported by the TMS */ type record MtsSessionInfo { TimeStamp timeStamp optional, AppInsId appInsId, RequestType requestType, FlowFilter flowFilter optional, QosD qosD, MtsModes mtsMode, TrafficDirection trafficDirection } type record of MtsSessionInfo MtsSessionInfos type SessionFilter FlowFilter; type AllocationDirection TrafficDirection; /** * @desc * @member minTpt Minimal throughput in [kbps] * @member maxLatency Tolerable (one-way) delay in [10 nanoseconds] * @member maxLoss Tolerable packet loss rate in [1/10^x] * @member maxJitter Tolerable jitter in [10 nanoseconds] * @member priority numeric value (0 - 255) corresponding to the traffic priority */ type record QosD { UInt32 minTpt optional, UInt32 maxLatency optional, UInt32 maxLoss optional, UInt32 maxJitter optional, Priority priority optional } type enumerated Priority { Low (0), Medium (1), High (2), Critical (3) } with { variant "JSON: as number" } } with { encode "JSON" } // End of module BwManagementAPI_TypesAndValues