Loading OpenAPI/coslaNrm.yaml +103 −82 Original line number Diff line number Diff line openapi: 3.0.3 openapi: 3.0.2 info: title: coslaNrm Loading @@ -9,7 +9,7 @@ info: All rights reserved. externalDocs: description: 3GPP TS 28.536 V16.4.0; 5G NRM, Slice NRM description: 3GPP TS 28.536 V16.4.0; Cosla NRM url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.536/ paths: {} Loading @@ -21,111 +21,132 @@ components: #------------ Type definitions --------------------------------------------------- ControlLoopLifeCyclePhase: anyOf: - type: string type: string enum: - PREPARATION - COMMISSIONING - OPERATION - DECOMMISSIONING - type: string TimeUnit: anyOf: - type: string enum: - SECOND - MINUTE - HOUR - DAY - type: string OperationalState: anyOf: - type: string enum: - ENABLED - DISABLED - type: string AdministrativeState: anyOf: - type: string enum: - LOCKED - SHUTTING_DOWN - UNLOCKED - type: string ObservationTime: type: integer ObservationTimePeriod: type: object AssuranceGoalStatusObserved: type: string enum: - FULFILLED - NOT_FULFILLED AssuranceControlLoopGoal: type: object AssuranceGoalStatusPredicted: type: string enum: - FULFILLED - NOT_FULFILLED AssuranceGoalStatus: AssuranceTarget: type: object properties: assuranceTargetName: type: string assuranceTargetValue: type: string AssuranceGoalStatusObserved: type: object AssuranceTargetList: type: array items: $ref: '#/components/schemas/AssuranceTarget' AssuranceGoalStatusPredicted: type: object #-------- Definition of concrete IOCs -------------------------------------------- AssuranceControlLoop-Single: SubNetwork-Single: allOf: - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: attributes: allOf: - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr' - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-ncO' - type: object properties: AssuranceClosedControlLoop: $ref: '#/components/schemas/AssuranceClosedControlLoop-Multiple' ManagedElement-Single: allOf: - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: attributes: allOf: - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-Attr' - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-ncO' - type: object properties: AssuranceClosedControlLoop: $ref: '#/components/schemas/AssuranceClosedControlLoop-Multiple' AssuranceClosedControlLoop-Single: allOf: - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: attributes: type: object properties: operationalState: $ref: '#/components/schemas/OperationalState' $ref: 'genericNrm.yaml#/components/schemas/OperationalState' administrativeState: $ref: '#/components/schemas/AdministrativeState' $ref: 'genericNrm.yaml#/components/schemas/AdministrativeState' controlLoopLifeCyclePhase: $ref: '#/components/schemas/ControlLoopLifeCyclePhase' observationTimePeriod: AssuranceGoal: $ref: '#/components/schemas/AssuranceGoal-Multiple' AssuranceGoal-Single: allOf: - $ref: '#/components/schemas/ObservationTimePeriod' - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: observationTime: $ref: '#/components/schemas/ObservationTime' timeUnit: $ref: '#/components/schemas/TimeUnit' AssuranceGoalStatus: attributes: allOf: - $ref: '#/components/schemas/AssuranceGoalStatus' - type: object properties: observationTime: $ref: '#/components/schemas/ObservationTime' assuranceTargetList: $ref: '#/components/schemas/AssuranceTargetList' assuranceGoalStatusObserved: $ref: '#/components/schemas/AssuranceGoalStatusObserved' assuranceGoalStatusPredicted: $ref: '#/components/schemas/AssuranceGoalStatusPredicted' managedEntity-Multiple: $ref: '#/components/schemas/ManagedEntity-Multiple' assuranceControlLoopGoal: $ref: '#/components/schemas/AssuranceControlLoopGoal' ManagedEntity-Single: oneOf: - $ref: 'sliceNrm.yaml#/components/schemas/NetworkSlice-Single' - $ref: 'sliceNrm.yaml#/components/schemas/NetworkSliceSubnet-Single' - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr' - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-Attr' serviceProfileId: type: string sliceProfileId: type: string networkSliceRef: $ref: 'comDefs.yaml#/components/schemas/Dn' networkSliceSubnetRef: $ref: 'comDefs.yaml#/components/schemas/Dn' #-------- Definition of JSON arrays for name-contained IOCs ---------------------- AssuranceControlLoop-Multiple: AssuranceClosedControlLoop-Multiple: type: array items: $ref: '#/components/schemas/AssuranceControlLoop-Single' $ref: '#/components/schemas/AssuranceClosedControlLoop-Single' ManagedEntity-Multiple: AssuranceGoal-Multiple: type: array items: $ref: '#/components/schemas/ManagedEntity-Single' $ref: '#/components/schemas/AssuranceGoal-Single' #------------ Definitions in TS 28.536 for TS 28.623 ----------------------------- resources-coslaNrm: oneOf: - $ref: '#/components/schemas/AssuranceClosedControlLoop-Single' - $ref: '#/components/schemas/AssuranceGoal-Single' - $ref: '#/components/schemas/SubNetwork-Single' - $ref: '#/components/schemas/ManagedElement-Single' No newline at end of file OpenAPI/sliceNrm.yaml +59 −124 Original line number Diff line number Diff line Loading @@ -75,49 +75,6 @@ components: - TWO - THREE - FOUR PerfReqEmbb: type: object properties: expDataRateDL: type: number expDataRateUL: type: number areaTrafficCapDL: type: number areaTrafficCapUL: type: number userDensity: type: number activityFactor: type: number PerfReqEmbbList: type: array items: $ref: '#/components/schemas/PerfReqEmbb' PerfReqUrllc: type: object properties: cSAvailabilityTarget: type: number cSReliabilityMeanTime: type: string expDataRate: type: number msgSizeByte: type: string transferIntervalTarget: type: string survivalTime: type: string PerfReqUrllcList: type: array items: $ref: '#/components/schemas/PerfReqUrllc' PerfReq: oneOf: - $ref: '#/components/schemas/PerfReqEmbbList' - $ref: '#/components/schemas/PerfReqUrllcList' Category: type: string enum: Loading Loading @@ -166,34 +123,7 @@ components: $ref: '#/components/schemas/Support' periodicityList: type: string DLThptPerSlice: type: object properties: servAttrCom: $ref: '#/components/schemas/ServAttrCom' guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' DLThptPerUE: type: object properties: servAttrCom: $ref: '#/components/schemas/ServAttrCom' guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerSlice: type: object properties: servAttrCom: $ref: '#/components/schemas/ServAttrCom' guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerUE: XLThpt: type: object properties: servAttrCom: Loading @@ -202,34 +132,6 @@ components: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' DLThptPerSliceSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' DLThptPerUEPerSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerSliceSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerUEPerSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' MaxPktSize: type: object properties: Loading Loading @@ -314,27 +216,33 @@ components: latency: type: integer dLThptPerSliceSubnet: $ref: '#/components/schemas/DLThptPerSliceSubnet' dLThptPerUEPerSubnet: $ref: '#/components/schemas/DLThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' dLThptPerUE: $ref: '#/components/schemas/XLThpt' uLThptPerSliceSubnet: $ref: '#/components/schemas/ULThptPerSliceSubnet' uLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/XLThpt' maxNumberOfPDUSessions: type: integer coverageAreaTAList: type: integer resourceSharingLevel: $ref: '#/components/schemas/SharingLevel' maxPktSize: type: integer delayTolerance: $ref: '#/components/schemas/DelayTolerance' sliceSimultaneousUse: $ref: '#/components/schemas/SliceSimultaneousUse' deterministicComm: $ref: '#/components/schemas/DeterministicComm' RANSliceSubnetProfile: type: object properties: coverageAreaTAList: type: integer MobilityLevel: uEMobilityLevel: $ref: '#/components/schemas/MobilityLevel' resourceSharingLevel: $ref: '#/components/schemas/SharingLevel' Loading @@ -342,10 +250,10 @@ components: type: integer activityFactor: type: integer dLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' uLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' dLThptPerUE: $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/XLThpt' uESpeed: type: integer reliability: Loading @@ -358,6 +266,12 @@ components: $ref: '#/components/schemas/DelayTolerance' sliceSimultaneousUse: $ref: '#/components/schemas/SliceSimultaneousUse' termDensity: $ref: '#/components/schemas/TermDensity' survivalTime: type: string deterministicComm: $ref: '#/components/schemas/DeterministicComm' TopSliceSubnetProfile: type: object properties: Loading @@ -368,19 +282,42 @@ components: maxNumberofUEs: type: integer dLThptPerSliceSubnet: $ref: '#/components/schemas/DLThptPerSliceSubnet' dLThptPerUEPerSubnet: $ref: '#/components/schemas/DLThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' dLThptPerUE: $ref: '#/components/schemas/XLThpt' uLThptPerSliceSubnet: $ref: '#/components/schemas/ULThptPerSliceSubnet' uLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/XLThpt' maxPktSize: type: integer delayTolerance: $ref: '#/components/schemas/DelayTolerance' maxNumberOfPDUSessions: type: integer sliceSimultaneousUse: $ref: '#/components/schemas/SliceSimultaneousUse' delayTolerance: $ref: '#/components/schemas/DelayTolerance' termDensity: $ref: '#/components/schemas/TermDensity' activityFactor: type: integer coverageAreaTAList: type: integer resourceSharingLevel: $ref: '#/components/schemas/SharingLevel' uEMobilityLevel: $ref: '#/components/schemas/MobilityLevel' uESpeed: type: integer reliability: type: string serviceType: $ref: '#/components/schemas/ServiceType' deterministicComm: $ref: '#/components/schemas/DeterministicComm' survivalTime: type: string ServiceProfile: type: object properties: Loading @@ -405,13 +342,13 @@ components: deterministicComm: $ref: '#/components/schemas/DeterministicComm' dLThptPerSlice: $ref: '#/components/schemas/DLThptPerSlice' $ref: '#/components/schemas/XLThpt' dLThptPerUE: $ref: '#/components/schemas/DLThptPerUE' $ref: '#/components/schemas/XLThpt' uLThptPerSlice: $ref: '#/components/schemas/ULThptPerSlice' $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/ULThptPerUE' $ref: '#/components/schemas/XLThpt' maxPktSize: $ref: '#/components/schemas/MaxPktSize' maxNumberofPDUSessions: Loading Loading @@ -456,8 +393,6 @@ components: type: string plmnInfoList: $ref: 'nrNrm.yaml#/components/schemas/PlmnInfoList' perfReq: $ref: '#/components/schemas/PerfReq' cNSliceSubnetProfile: $ref: '#/components/schemas/CNSliceSubnetProfile' rANSliceSubnetProfile: Loading yang-models/_3gpp-ns-nrm-common.yang 0 → 100644 +96 −0 Original line number Diff line number Diff line module _3gpp-ns-nrm-common { yang-version 1.1; namespace urn:3gpp:sa5:_3gpp-ns-nrm-common; prefix ns3cmn; // import _3gpp-common-subnetwork { prefix subnet3gpp; } // import _3gpp-common-yang-types { prefix types3gpp; } // import _3gpp-common-top { prefix top3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Common network slice definitions"; reference "3GPP TS 28.541 Management and orchestration; 5G Network Resource Model (NRM); Information model definitions for network slice NRM (chapter 6) "; revision 2021-05-17 { description "Introduction of Common Data types"; reference "CR-0485"; } grouping XLThptGrp { list servAttrCom { description "This list represents the common properties of service requirement related attributes."; reference "GSMA NG.116 corresponding to Attribute categories, tagging and exposure"; config false; key idx; max-elements 1; leaf idx { description "Synthetic index for the element."; type uint32; } uses ServAttrComGrp; } leaf guaThpt { description "This attribute describes the guaranteed data rate."; type uint64; units kbits/s; } leaf maxThpt { description "This attribute describes the maximum data rate."; type uint64; units kbits/s; } } typedef Tagging-enum { type enumeration { enum performance; enum function; enum operation; } } typedef Exposure-enum { type enumeration { enum API; enum KPI; } } typedef Category-enum { type enumeration { enum character; enum scalability; } } typedef Support-enum { type enumeration { enum NOT_SUPPORTED; enum SUPPORTED; } } grouping ServAttrComGrp { leaf category { description "This attribute specifies the category of a service requirement/attribute of GST"; type Category-enum; } leaf-list tagging { description "This attribute specifies the tagging of a service requirement/attribute of GST in character category"; when "../category = 'character'"; type Tagging-enum; } leaf exposure { description "This attribute specifies exposure mode of a service requirement/attribute of GST"; type Exposure-enum; } } typedef DeterminCommAvailability { type Support-enum; } } No newline at end of file yang-models/_3gpp-ns-nrm-networkslicesubnet.yang +2 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ module _3gpp-ns-nrm-networkslicesubnet { import _3gpp-common-subnetwork { prefix subnet3gpp; } import _3gpp-common-measurements { prefix meas3gpp; } import _3gpp-common-top { prefix top3gpp; } // import _3gpp-ns-nrm-common { prefix ns3cmn; } include _3gpp-ns-nrm-sliceprofile; Loading yang-models/_3gpp-ns-nrm-perfreq.yangdeleted 100755 → 0 +0 −170 Original line number Diff line number Diff line module _3gpp-ns-nrm-perfreq { yang-version 1.1; namespace urn:3gpp:sa5:_3gpp-ns-nrm-perfreq; prefix perf3gpp; organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "The performance requirements for the NSI in terms of the scenarios defined in the 3GPP TS 22.261, such as experienced data rate, area traffic capacity (density) information of UE density."; reference "3GPP TS 28.541 Management and orchestration; 5G Network Resource Model (NRM); Information model definitions for network slice NRM (chapter 6) "; revision 2020-02-19 { description "Introduction of YANG definitions for network slice NRM"; reference "CR-0458"; } typedef data-rate { type uint32; units kbits/s; } typedef integer-percentage { type uint8 { range 0..100; } units percent; } typedef reliability-string { description "Mean time between failures. E.g. '1 day', or '3 months'"; type string { pattern "[0-9]+ (day|week|month|year)s?"; } reference "3GPP TS 22.104 clause 5.2-5.5"; } typedef message-size-string { description "Message size in bytes. E.g. '80', or '250-2000'"; type string { pattern '[0-9]+(-[0-9]+)?'; } units bytes; reference "3GPP TS 22.104 clause 5.2-5.5"; } typedef transfer-interval-string { description "Transfer interval time. If multiple values are given, the first value is the application requirement, the other values are the requirement with multiple transmission of the same information two or three times, respectively). E.g. '40ms', or '0ms-5ms,0ms-2.5ms,0ms-1.7ms'"; type string { pattern '[0-9]+(\.[0-9]+)?m?s-[0-9]+(\.[0-9]+)?m?s' + '(,[0-9]+(\.[0-9]+)?m?s-[0-9]+(\.[0-9]+)?){0,2}'; } reference "3GPP TS 22.104 clause 5.2-5.5"; } typedef survival-time-string { description "Survival time in milliseconds (ms) or in multiples of the transfer interval (x). If multiple values are given, the first value is the application requirement, the other values are the requirement with multiple transmission of the same information two or three times, respectively). E.g. '12ms', or '0x,2x'"; type string { pattern '[0-9]+(x|ms)(,[0-9]+(x|ms)){0,2}'; } reference "3GPP TS 22.104 clause 5.2-5.5"; } grouping PerfReqGrp { //Stage2 issue: The perfReq object does not have any proper definition // in 28.541 chapter 6. //Stage2 issue: The text that exists on the perfReq mentions an sST // element. There is potentially several sST elements in // the SliceProfile/sNSSAIList which could be used as basis // for deciding which perfReq elements are relevant. // Operators can construct their own sST values. It is not // clear which of the perfReq elements below would be // relevant in such a case. Leaving all perfReq elements // available in all use cases for now. // eMBB leafs, SST = 1 leaf expDataRateDL { description "User experienced data rate over downlink"; //TODO: add when 'somepath/sST = 1'; type data-rate; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf expDataRateUL { description "User experienced data rate over uplink"; //TODO: add when 'somepath/sST = 1'; type data-rate; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf areaTrafficCapDL { description "Area traffic capacity over downlink"; //TODO: add when 'somepath/sST = 1'; type data-rate; units kbits/s/km2; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf areaTrafficCapUL { description "Area traffic capacity over uplink"; //TODO: add when 'somepath/sST = 1'; type data-rate; units kbits/s/km2; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf overallUserDensity { description "Overall user density"; //TODO: add when 'somepath/sST = 1'; type uint32; units users/km2; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf activityFactor { description "Percentage value of the amount of simultaneous active UEs to the total number of UEs where active means the UEs are exchanging data with the network."; //TODO: add when 'somepath/sST = 1'; type integer-percentage; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } // uRLLC leafs, SST = 2 leaf cSAvailabilityTarget { description "Reliability uptime target"; //TODO: add when 'somepath/sST = 2'; type decimal64 { fraction-digits 6; // E.g. 99.999999 range 0..100; } reference "3GPP TS 22.104 clause 5.2-5.5"; } leaf cSReliabilityMeanTime { description "Mean time between failures"; //TODO: add when 'somepath/sST = 2'; type reliability-string; } leaf expDataRate { description "User experienced data rate"; //TODO: add when 'somepath/sST = 2'; type data-rate; reference "3GPP TS 22.104 clause 5.2-5.5"; } leaf msgSizeByte { description "PDU size"; //TODO: add when 'somepath/sST = 2'; type message-size-string; } leaf transferIntervalTarget { description "Time difference between two consecutive transfers of application data from an application via the service interface to 3GPP system"; //TODO: add when 'somepath/sST = 2'; type transfer-interval-string; } leaf survivalTime { description "The time that an application consuming a communication service may continue without an anticipated message"; //TODO: add when 'somepath/sST = 2'; type survival-time-string; } } } No newline at end of file Loading
OpenAPI/coslaNrm.yaml +103 −82 Original line number Diff line number Diff line openapi: 3.0.3 openapi: 3.0.2 info: title: coslaNrm Loading @@ -9,7 +9,7 @@ info: All rights reserved. externalDocs: description: 3GPP TS 28.536 V16.4.0; 5G NRM, Slice NRM description: 3GPP TS 28.536 V16.4.0; Cosla NRM url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.536/ paths: {} Loading @@ -21,111 +21,132 @@ components: #------------ Type definitions --------------------------------------------------- ControlLoopLifeCyclePhase: anyOf: - type: string type: string enum: - PREPARATION - COMMISSIONING - OPERATION - DECOMMISSIONING - type: string TimeUnit: anyOf: - type: string enum: - SECOND - MINUTE - HOUR - DAY - type: string OperationalState: anyOf: - type: string enum: - ENABLED - DISABLED - type: string AdministrativeState: anyOf: - type: string enum: - LOCKED - SHUTTING_DOWN - UNLOCKED - type: string ObservationTime: type: integer ObservationTimePeriod: type: object AssuranceGoalStatusObserved: type: string enum: - FULFILLED - NOT_FULFILLED AssuranceControlLoopGoal: type: object AssuranceGoalStatusPredicted: type: string enum: - FULFILLED - NOT_FULFILLED AssuranceGoalStatus: AssuranceTarget: type: object properties: assuranceTargetName: type: string assuranceTargetValue: type: string AssuranceGoalStatusObserved: type: object AssuranceTargetList: type: array items: $ref: '#/components/schemas/AssuranceTarget' AssuranceGoalStatusPredicted: type: object #-------- Definition of concrete IOCs -------------------------------------------- AssuranceControlLoop-Single: SubNetwork-Single: allOf: - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: attributes: allOf: - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-Attr' - $ref: 'genericNrm.yaml#/components/schemas/SubNetwork-ncO' - type: object properties: AssuranceClosedControlLoop: $ref: '#/components/schemas/AssuranceClosedControlLoop-Multiple' ManagedElement-Single: allOf: - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: attributes: allOf: - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-Attr' - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-ncO' - type: object properties: AssuranceClosedControlLoop: $ref: '#/components/schemas/AssuranceClosedControlLoop-Multiple' AssuranceClosedControlLoop-Single: allOf: - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: attributes: type: object properties: operationalState: $ref: '#/components/schemas/OperationalState' $ref: 'genericNrm.yaml#/components/schemas/OperationalState' administrativeState: $ref: '#/components/schemas/AdministrativeState' $ref: 'genericNrm.yaml#/components/schemas/AdministrativeState' controlLoopLifeCyclePhase: $ref: '#/components/schemas/ControlLoopLifeCyclePhase' observationTimePeriod: AssuranceGoal: $ref: '#/components/schemas/AssuranceGoal-Multiple' AssuranceGoal-Single: allOf: - $ref: '#/components/schemas/ObservationTimePeriod' - $ref: 'genericNrm.yaml#/components/schemas/Top' - type: object properties: observationTime: $ref: '#/components/schemas/ObservationTime' timeUnit: $ref: '#/components/schemas/TimeUnit' AssuranceGoalStatus: attributes: allOf: - $ref: '#/components/schemas/AssuranceGoalStatus' - type: object properties: observationTime: $ref: '#/components/schemas/ObservationTime' assuranceTargetList: $ref: '#/components/schemas/AssuranceTargetList' assuranceGoalStatusObserved: $ref: '#/components/schemas/AssuranceGoalStatusObserved' assuranceGoalStatusPredicted: $ref: '#/components/schemas/AssuranceGoalStatusPredicted' managedEntity-Multiple: $ref: '#/components/schemas/ManagedEntity-Multiple' assuranceControlLoopGoal: $ref: '#/components/schemas/AssuranceControlLoopGoal' ManagedEntity-Single: oneOf: - $ref: 'sliceNrm.yaml#/components/schemas/NetworkSlice-Single' - $ref: 'sliceNrm.yaml#/components/schemas/NetworkSliceSubnet-Single' - $ref: 'genericNrm.yaml#/components/schemas/ManagedFunction-Attr' - $ref: 'genericNrm.yaml#/components/schemas/ManagedElement-Attr' serviceProfileId: type: string sliceProfileId: type: string networkSliceRef: $ref: 'comDefs.yaml#/components/schemas/Dn' networkSliceSubnetRef: $ref: 'comDefs.yaml#/components/schemas/Dn' #-------- Definition of JSON arrays for name-contained IOCs ---------------------- AssuranceControlLoop-Multiple: AssuranceClosedControlLoop-Multiple: type: array items: $ref: '#/components/schemas/AssuranceControlLoop-Single' $ref: '#/components/schemas/AssuranceClosedControlLoop-Single' ManagedEntity-Multiple: AssuranceGoal-Multiple: type: array items: $ref: '#/components/schemas/ManagedEntity-Single' $ref: '#/components/schemas/AssuranceGoal-Single' #------------ Definitions in TS 28.536 for TS 28.623 ----------------------------- resources-coslaNrm: oneOf: - $ref: '#/components/schemas/AssuranceClosedControlLoop-Single' - $ref: '#/components/schemas/AssuranceGoal-Single' - $ref: '#/components/schemas/SubNetwork-Single' - $ref: '#/components/schemas/ManagedElement-Single' No newline at end of file
OpenAPI/sliceNrm.yaml +59 −124 Original line number Diff line number Diff line Loading @@ -75,49 +75,6 @@ components: - TWO - THREE - FOUR PerfReqEmbb: type: object properties: expDataRateDL: type: number expDataRateUL: type: number areaTrafficCapDL: type: number areaTrafficCapUL: type: number userDensity: type: number activityFactor: type: number PerfReqEmbbList: type: array items: $ref: '#/components/schemas/PerfReqEmbb' PerfReqUrllc: type: object properties: cSAvailabilityTarget: type: number cSReliabilityMeanTime: type: string expDataRate: type: number msgSizeByte: type: string transferIntervalTarget: type: string survivalTime: type: string PerfReqUrllcList: type: array items: $ref: '#/components/schemas/PerfReqUrllc' PerfReq: oneOf: - $ref: '#/components/schemas/PerfReqEmbbList' - $ref: '#/components/schemas/PerfReqUrllcList' Category: type: string enum: Loading Loading @@ -166,34 +123,7 @@ components: $ref: '#/components/schemas/Support' periodicityList: type: string DLThptPerSlice: type: object properties: servAttrCom: $ref: '#/components/schemas/ServAttrCom' guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' DLThptPerUE: type: object properties: servAttrCom: $ref: '#/components/schemas/ServAttrCom' guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerSlice: type: object properties: servAttrCom: $ref: '#/components/schemas/ServAttrCom' guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerUE: XLThpt: type: object properties: servAttrCom: Loading @@ -202,34 +132,6 @@ components: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' DLThptPerSliceSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' DLThptPerUEPerSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerSliceSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' ULThptPerUEPerSubnet: type: object properties: guaThpt: $ref: '#/components/schemas/Float' maxThpt: $ref: '#/components/schemas/Float' MaxPktSize: type: object properties: Loading Loading @@ -314,27 +216,33 @@ components: latency: type: integer dLThptPerSliceSubnet: $ref: '#/components/schemas/DLThptPerSliceSubnet' dLThptPerUEPerSubnet: $ref: '#/components/schemas/DLThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' dLThptPerUE: $ref: '#/components/schemas/XLThpt' uLThptPerSliceSubnet: $ref: '#/components/schemas/ULThptPerSliceSubnet' uLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/XLThpt' maxNumberOfPDUSessions: type: integer coverageAreaTAList: type: integer resourceSharingLevel: $ref: '#/components/schemas/SharingLevel' maxPktSize: type: integer delayTolerance: $ref: '#/components/schemas/DelayTolerance' sliceSimultaneousUse: $ref: '#/components/schemas/SliceSimultaneousUse' deterministicComm: $ref: '#/components/schemas/DeterministicComm' RANSliceSubnetProfile: type: object properties: coverageAreaTAList: type: integer MobilityLevel: uEMobilityLevel: $ref: '#/components/schemas/MobilityLevel' resourceSharingLevel: $ref: '#/components/schemas/SharingLevel' Loading @@ -342,10 +250,10 @@ components: type: integer activityFactor: type: integer dLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' uLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' dLThptPerUE: $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/XLThpt' uESpeed: type: integer reliability: Loading @@ -358,6 +266,12 @@ components: $ref: '#/components/schemas/DelayTolerance' sliceSimultaneousUse: $ref: '#/components/schemas/SliceSimultaneousUse' termDensity: $ref: '#/components/schemas/TermDensity' survivalTime: type: string deterministicComm: $ref: '#/components/schemas/DeterministicComm' TopSliceSubnetProfile: type: object properties: Loading @@ -368,19 +282,42 @@ components: maxNumberofUEs: type: integer dLThptPerSliceSubnet: $ref: '#/components/schemas/DLThptPerSliceSubnet' dLThptPerUEPerSubnet: $ref: '#/components/schemas/DLThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' dLThptPerUE: $ref: '#/components/schemas/XLThpt' uLThptPerSliceSubnet: $ref: '#/components/schemas/ULThptPerSliceSubnet' uLThptPerUEPerSubnet: $ref: '#/components/schemas/ULThptPerUEPerSubnet' $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/XLThpt' maxPktSize: type: integer delayTolerance: $ref: '#/components/schemas/DelayTolerance' maxNumberOfPDUSessions: type: integer sliceSimultaneousUse: $ref: '#/components/schemas/SliceSimultaneousUse' delayTolerance: $ref: '#/components/schemas/DelayTolerance' termDensity: $ref: '#/components/schemas/TermDensity' activityFactor: type: integer coverageAreaTAList: type: integer resourceSharingLevel: $ref: '#/components/schemas/SharingLevel' uEMobilityLevel: $ref: '#/components/schemas/MobilityLevel' uESpeed: type: integer reliability: type: string serviceType: $ref: '#/components/schemas/ServiceType' deterministicComm: $ref: '#/components/schemas/DeterministicComm' survivalTime: type: string ServiceProfile: type: object properties: Loading @@ -405,13 +342,13 @@ components: deterministicComm: $ref: '#/components/schemas/DeterministicComm' dLThptPerSlice: $ref: '#/components/schemas/DLThptPerSlice' $ref: '#/components/schemas/XLThpt' dLThptPerUE: $ref: '#/components/schemas/DLThptPerUE' $ref: '#/components/schemas/XLThpt' uLThptPerSlice: $ref: '#/components/schemas/ULThptPerSlice' $ref: '#/components/schemas/XLThpt' uLThptPerUE: $ref: '#/components/schemas/ULThptPerUE' $ref: '#/components/schemas/XLThpt' maxPktSize: $ref: '#/components/schemas/MaxPktSize' maxNumberofPDUSessions: Loading Loading @@ -456,8 +393,6 @@ components: type: string plmnInfoList: $ref: 'nrNrm.yaml#/components/schemas/PlmnInfoList' perfReq: $ref: '#/components/schemas/PerfReq' cNSliceSubnetProfile: $ref: '#/components/schemas/CNSliceSubnetProfile' rANSliceSubnetProfile: Loading
yang-models/_3gpp-ns-nrm-common.yang 0 → 100644 +96 −0 Original line number Diff line number Diff line module _3gpp-ns-nrm-common { yang-version 1.1; namespace urn:3gpp:sa5:_3gpp-ns-nrm-common; prefix ns3cmn; // import _3gpp-common-subnetwork { prefix subnet3gpp; } // import _3gpp-common-yang-types { prefix types3gpp; } // import _3gpp-common-top { prefix top3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "Common network slice definitions"; reference "3GPP TS 28.541 Management and orchestration; 5G Network Resource Model (NRM); Information model definitions for network slice NRM (chapter 6) "; revision 2021-05-17 { description "Introduction of Common Data types"; reference "CR-0485"; } grouping XLThptGrp { list servAttrCom { description "This list represents the common properties of service requirement related attributes."; reference "GSMA NG.116 corresponding to Attribute categories, tagging and exposure"; config false; key idx; max-elements 1; leaf idx { description "Synthetic index for the element."; type uint32; } uses ServAttrComGrp; } leaf guaThpt { description "This attribute describes the guaranteed data rate."; type uint64; units kbits/s; } leaf maxThpt { description "This attribute describes the maximum data rate."; type uint64; units kbits/s; } } typedef Tagging-enum { type enumeration { enum performance; enum function; enum operation; } } typedef Exposure-enum { type enumeration { enum API; enum KPI; } } typedef Category-enum { type enumeration { enum character; enum scalability; } } typedef Support-enum { type enumeration { enum NOT_SUPPORTED; enum SUPPORTED; } } grouping ServAttrComGrp { leaf category { description "This attribute specifies the category of a service requirement/attribute of GST"; type Category-enum; } leaf-list tagging { description "This attribute specifies the tagging of a service requirement/attribute of GST in character category"; when "../category = 'character'"; type Tagging-enum; } leaf exposure { description "This attribute specifies exposure mode of a service requirement/attribute of GST"; type Exposure-enum; } } typedef DeterminCommAvailability { type Support-enum; } } No newline at end of file
yang-models/_3gpp-ns-nrm-networkslicesubnet.yang +2 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ module _3gpp-ns-nrm-networkslicesubnet { import _3gpp-common-subnetwork { prefix subnet3gpp; } import _3gpp-common-measurements { prefix meas3gpp; } import _3gpp-common-top { prefix top3gpp; } // import _3gpp-ns-nrm-common { prefix ns3cmn; } include _3gpp-ns-nrm-sliceprofile; Loading
yang-models/_3gpp-ns-nrm-perfreq.yangdeleted 100755 → 0 +0 −170 Original line number Diff line number Diff line module _3gpp-ns-nrm-perfreq { yang-version 1.1; namespace urn:3gpp:sa5:_3gpp-ns-nrm-perfreq; prefix perf3gpp; organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; description "The performance requirements for the NSI in terms of the scenarios defined in the 3GPP TS 22.261, such as experienced data rate, area traffic capacity (density) information of UE density."; reference "3GPP TS 28.541 Management and orchestration; 5G Network Resource Model (NRM); Information model definitions for network slice NRM (chapter 6) "; revision 2020-02-19 { description "Introduction of YANG definitions for network slice NRM"; reference "CR-0458"; } typedef data-rate { type uint32; units kbits/s; } typedef integer-percentage { type uint8 { range 0..100; } units percent; } typedef reliability-string { description "Mean time between failures. E.g. '1 day', or '3 months'"; type string { pattern "[0-9]+ (day|week|month|year)s?"; } reference "3GPP TS 22.104 clause 5.2-5.5"; } typedef message-size-string { description "Message size in bytes. E.g. '80', or '250-2000'"; type string { pattern '[0-9]+(-[0-9]+)?'; } units bytes; reference "3GPP TS 22.104 clause 5.2-5.5"; } typedef transfer-interval-string { description "Transfer interval time. If multiple values are given, the first value is the application requirement, the other values are the requirement with multiple transmission of the same information two or three times, respectively). E.g. '40ms', or '0ms-5ms,0ms-2.5ms,0ms-1.7ms'"; type string { pattern '[0-9]+(\.[0-9]+)?m?s-[0-9]+(\.[0-9]+)?m?s' + '(,[0-9]+(\.[0-9]+)?m?s-[0-9]+(\.[0-9]+)?){0,2}'; } reference "3GPP TS 22.104 clause 5.2-5.5"; } typedef survival-time-string { description "Survival time in milliseconds (ms) or in multiples of the transfer interval (x). If multiple values are given, the first value is the application requirement, the other values are the requirement with multiple transmission of the same information two or three times, respectively). E.g. '12ms', or '0x,2x'"; type string { pattern '[0-9]+(x|ms)(,[0-9]+(x|ms)){0,2}'; } reference "3GPP TS 22.104 clause 5.2-5.5"; } grouping PerfReqGrp { //Stage2 issue: The perfReq object does not have any proper definition // in 28.541 chapter 6. //Stage2 issue: The text that exists on the perfReq mentions an sST // element. There is potentially several sST elements in // the SliceProfile/sNSSAIList which could be used as basis // for deciding which perfReq elements are relevant. // Operators can construct their own sST values. It is not // clear which of the perfReq elements below would be // relevant in such a case. Leaving all perfReq elements // available in all use cases for now. // eMBB leafs, SST = 1 leaf expDataRateDL { description "User experienced data rate over downlink"; //TODO: add when 'somepath/sST = 1'; type data-rate; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf expDataRateUL { description "User experienced data rate over uplink"; //TODO: add when 'somepath/sST = 1'; type data-rate; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf areaTrafficCapDL { description "Area traffic capacity over downlink"; //TODO: add when 'somepath/sST = 1'; type data-rate; units kbits/s/km2; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf areaTrafficCapUL { description "Area traffic capacity over uplink"; //TODO: add when 'somepath/sST = 1'; type data-rate; units kbits/s/km2; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf overallUserDensity { description "Overall user density"; //TODO: add when 'somepath/sST = 1'; type uint32; units users/km2; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } leaf activityFactor { description "Percentage value of the amount of simultaneous active UEs to the total number of UEs where active means the UEs are exchanging data with the network."; //TODO: add when 'somepath/sST = 1'; type integer-percentage; reference "3GPP TS 22.261 clause 7.1, table 7.1-1"; } // uRLLC leafs, SST = 2 leaf cSAvailabilityTarget { description "Reliability uptime target"; //TODO: add when 'somepath/sST = 2'; type decimal64 { fraction-digits 6; // E.g. 99.999999 range 0..100; } reference "3GPP TS 22.104 clause 5.2-5.5"; } leaf cSReliabilityMeanTime { description "Mean time between failures"; //TODO: add when 'somepath/sST = 2'; type reliability-string; } leaf expDataRate { description "User experienced data rate"; //TODO: add when 'somepath/sST = 2'; type data-rate; reference "3GPP TS 22.104 clause 5.2-5.5"; } leaf msgSizeByte { description "PDU size"; //TODO: add when 'somepath/sST = 2'; type message-size-string; } leaf transferIntervalTarget { description "Time difference between two consecutive transfers of application data from an application via the service interface to 3GPP system"; //TODO: add when 'somepath/sST = 2'; type transfer-interval-string; } leaf survivalTime { description "The time that an application consuming a communication service may continue without an anticipated message"; //TODO: add when 'somepath/sST = 2'; type survival-time-string; } } } No newline at end of file