diff --git a/yang-models/README.md b/yang-models/README.md index eb452b55ac2b7f1005a27fad1db1e25097b8185a..4959d98c5e8a75201e76225854544c97d1ba8cc2 100755 --- a/yang-models/README.md +++ b/yang-models/README.md @@ -4,4 +4,5 @@ A subfolder for used external YANG modules is included. All commited YANG modules MUST pass the "pyang --strict -p external-yams _3gpp-*.yang" validation command without errors. - + + \ No newline at end of file diff --git a/yang-models/_3gpp-5gc-nrm-configurable5qiset.yang b/yang-models/_3gpp-5gc-nrm-configurable5qiset.yang index 2a402a96e132ee0484b07316b3fe07f70c6abfc9..6d3d7a27a913c6a9c5b24603607dad3df5c3f1b3 100755 --- a/yang-models/_3gpp-5gc-nrm-configurable5qiset.yang +++ b/yang-models/_3gpp-5gc-nrm-configurable5qiset.yang @@ -37,7 +37,13 @@ module _3gpp-5gc-nrm-configurable5qiset { } } - grouping FiveQICharacteristics { + grouping FiveQICharacteristicsGrp { + description "Represents the FiveQICharacteristics IOC."; + reference "3GPP TS 28.541"; + } + + list configurableFiveQIs { + key fiveQIValue; leaf fiveQIValue { type uint32 { range 0..255 ; @@ -92,15 +98,30 @@ module _3gpp-5gc-nrm-configurable5qiset { } units byte; } - } +} + + grouping FiveQiCharacteristicsSubtree { + description "Represents the FiveQICharacterics IOC."; + list FiveQICharacteristics { + key id; + uses top3gpp:Top_Grp; + container attributes { + uses FiveQICharacteristicsGrp; + } + } +} grouping Configurable5QISetGrp { description "Represents the Configurable5QISet IOC."; list configurable5QIs { - key "fiveQIValue"; - uses FiveQICharacteristics; - } - } + key id; + uses top3gpp:Top_Grp; + container attributes { + uses FiveQICharacteristicsGrp; + } + } +} + grouping Configurable5QISetSubtree { list Configurable5QISet { @@ -112,7 +133,7 @@ module _3gpp-5gc-nrm-configurable5qiset { container attributes { uses Configurable5QISetGrp; } - } + } } augment "/subnet3gpp:SubNetwork" { @@ -122,4 +143,4 @@ module _3gpp-5gc-nrm-configurable5qiset { augment "/me3gpp:ManagedElement" { uses Configurable5QISetSubtree; } -} \ No newline at end of file +} diff --git a/yang-models/_3gpp-5gc-nrm-dynamic5qiset.yang b/yang-models/_3gpp-5gc-nrm-dynamic5qiset.yang index 9b19f6a328aa0f1ee638a7e390351ad548df3e77..185e46f83117cf401f10191debb35fa7351a44af 100755 --- a/yang-models/_3gpp-5gc-nrm-dynamic5qiset.yang +++ b/yang-models/_3gpp-5gc-nrm-dynamic5qiset.yang @@ -21,9 +21,11 @@ module _3gpp-5gc-nrm-dynamic5qiset { grouping Dynamic5QISetGrp { description "Represents the Dynamic5QISet IOC."; list dynamic5QIs { - key "fiveQIValue"; - description "Represents the Dynamic5QISet IOC."; - uses Conf5QIs3gpp:FiveQICharacteristics; + key id; + uses top3gpp:Top_Grp; + container attributes { + uses Conf5QIs3gpp:FiveQICharacteristicsGrp; + } } } @@ -47,4 +49,4 @@ module _3gpp-5gc-nrm-dynamic5qiset { augment "/me3gpp:ManagedElement" { uses Dynamic5QISetSubtree; } -} \ No newline at end of file +} diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index 10ea1a9c3a3c3e51f7f04cfe5e4d49e484c7eede..c6b4d33cba5cfe459de19150e7d1781583d4ddec 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -1,184 +1,185 @@ module _3gpp-common-fm { - yang-version 1.1; + yang-version 1.1; namespace "urn:3gpp:sa5:_3gpp-common-fm"; prefix "fm3gpp"; - + import ietf-yang-types { prefix yang; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-common-yang-types { prefix types3gpp; } organization "3GPP SA5"; - contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; - + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + description "Defines a Fault Management model"; - + reference "3GPP TS 28.623 Generic Network Resource Model (NRM) Integration Reference Point (IRP); Solution Set (SS) definitions - + 3GPP TS 28.622 Generic Network Resource Model (NRM) Integration Reference Point (IRP); Information Service (IS)"; + revision 2021-06-02 { reference "CR-0130"; } revision 2020-06-03 { reference "CR-0091"; } revision 2020-02-24 { reference "S5-201365"; } - - typedef eventType { - type enumeration { - enum COMMUNICATIONS_ALARM { - value 2; - } - - enum QUALITY_OF_SERVICE_ALARM { - value 3; - } - - enum PROCESSING_ERROR_ALARM { - value 4; - } - - enum EQUIPMENT_ALARM { - value 5; - } - - enum ENVIRONMENTAL_ALARM { - value 6; - } - - enum INTEGRITY_VIOLATION { - value 7; - } - - enum OPERATIONAL_VIOLATION { - value 8; - } - - enum PHYSICAL_VIOLATIONu { - value 9; - } - - enum SECURITY_SERVICE_OR_MECHANISM_VIOLATION { - value 10; - } - - enum TIME_DOMAIN_VIOLATION { - value 11; - } - } - - description "General category for the alarm."; - } - - typedef severity-level { - type enumeration { - enum CRITICAL { value 3; } - enum MAJOR { value 4; } - enum MINOR { value 5; } - enum WARNING { value 6; } - enum INDETERMINATE { value 7; } - enum CLEARED { value 8; } - } - - description "The possible alarm serverities. - Aligned with ERICSSON-ALARM-MIB."; - } - - grouping AlarmRecordGrp { - description "Contains alarm information of an alarmed object instance. - A new record is created in the alarm list when an alarmed object - instance generates an alarm and no alarm record exists with the same - values for objectInstance, alarmType, probableCause and specificProblem. - When a new record is created the MnS producer creates an alarmId, that + + typedef eventType { + type enumeration { + enum COMMUNICATIONS_ALARM { + value 2; + } + + enum QUALITY_OF_SERVICE_ALARM { + value 3; + } + + enum PROCESSING_ERROR_ALARM { + value 4; + } + + enum EQUIPMENT_ALARM { + value 5; + } + + enum ENVIRONMENTAL_ALARM { + value 6; + } + + enum INTEGRITY_VIOLATION { + value 7; + } + + enum OPERATIONAL_VIOLATION { + value 8; + } + + enum PHYSICAL_VIOLATIONu { + value 9; + } + + enum SECURITY_SERVICE_OR_MECHANISM_VIOLATION { + value 10; + } + + enum TIME_DOMAIN_VIOLATION { + value 11; + } + } + + description "General category for the alarm."; + } + + typedef severity-level { + type enumeration { + enum CRITICAL { value 3; } + enum MAJOR { value 4; } + enum MINOR { value 5; } + enum WARNING { value 6; } + enum INDETERMINATE { value 7; } + enum CLEARED { value 8; } + } + + description "The possible alarm serverities. + Aligned with ERICSSON-ALARM-MIB."; + } + + grouping AlarmRecordGrp { + description "Contains alarm information of an alarmed object instance. + A new record is created in the alarm list when an alarmed object + instance generates an alarm and no alarm record exists with the same + values for objectInstance, alarmType, probableCause and specificProblem. + When a new record is created the MnS producer creates an alarmId, that unambiguously identifies an alarm record in the AlarmList. - Alarm records are maintained only for active alarms. Inactive alarms are - automatically deleted by the MnS producer from the AlarmList. - Active alarms are alarms whose - a) perceivedSeverity is not CLEARED, or whose - b) perceivedSeverity is CLEARED and its ackState is not ACKNOWLEDED."; - + Alarm records are maintained only for active alarms. Inactive alarms are + automatically deleted by the MnS producer from the AlarmList. + Active alarms are alarms whose + a) perceivedSeverity is not CLEARED, or whose + b) perceivedSeverity is CLEARED and its ackState is not ACKNOWLEDED."; + leaf alarmId { type string; mandatory true; description "Identifies the alarmRecord"; } - + leaf objectInstance { type string; config false ; mandatory true; } - + leaf notificationId { type string; config false ; mandatory true; } - + leaf alarmRaisedTime { type yang:date-and-time ; config false ; } - + leaf alarmChangedTime { - type yang:date-and-time ; + type yang:date-and-time ; config false ; description "not applicable if related alarm has not changed"; } - + leaf alarmClearedTime { type yang:date-and-time ; config false ; description "not applicable if related alarm was not cleared"; } - + leaf alarmType { type eventType; config false ; - description "General category for the alarm."; + description "General category for the alarm."; } - + leaf probableCause { type string; config false ; } - + leaf specificProblem { type string; config false ; reference "ITU-T Recommendation X.733 clause 8.1.2.2."; } - + leaf perceivedSeverity { type severity-level; - description "This is Writable only if producer supports consumer + description "This is Writable only if producer supports consumer to set perceivedSeverity to CLEARED"; } - + leaf backedUpStatus { type string; config false ; - description "Indicates if an object (the MonitoredEntity) has a back + description "Indicates if an object (the MonitoredEntity) has a back up. See definition in ITU-T Recommendation X.733 clause 8.1.2.4."; } - + leaf backUpObject { type string; config false ; } - + leaf trendIndication { type string; config false ; - description "Indicates if some observed condition is getting better, + description "Indicates if some observed condition is getting better, worse, or not changing. "; reference "ITU-T Recommendation X.733 clause 8.1.2.6."; } - + grouping ThresholdPackGrp { leaf thresholdLevel { type string; @@ -188,21 +189,21 @@ module _3gpp-common-fm { } leaf hysteresis { type string; - description "The hysteresis has a threshold high and a threshold - low value that are different from the threshold value. - A hysteresis, therefore, defines the threshold-high and - threshold-low levels within which the measurementType value is - allowed to oscillate without triggering the threshold crossing + description "The hysteresis has a threshold high and a threshold + low value that are different from the threshold value. + A hysteresis, therefore, defines the threshold-high and + threshold-low levels within which the measurementType value is + allowed to oscillate without triggering the threshold crossing notification."; } } - + grouping ThresholdInfoGrp { leaf measurementType { type string; mandatory true; } - + leaf direction { type enumeration { enum INCREASING; @@ -210,149 +211,149 @@ module _3gpp-common-fm { } mandatory true; description " - If it is 'Increasing', the threshold crossing notification is - triggered when the measurement value equals or exceeds a + If it is 'Increasing', the threshold crossing notification is + triggered when the measurement value equals or exceeds a thresholdValue. - - If it is 'Decreasing', the threshold crossing notification is - triggered when the measurement value equals or below a + + If it is 'Decreasing', the threshold crossing notification is + triggered when the measurement value equals or below a thresholdValue."; } - + uses ThresholdPackGrp; } - - list thresholdInfo { + + list thresholdInfo { config false ; uses ThresholdInfoGrp; } - + leaf stateChangeDefinition { type string; config false ; - description "Indicates MO attribute value changes. See definition + description "Indicates MO attribute value changes. See definition in ITU-T Recommendation X.733 clause 8.1.2.11."; } - + leaf monitoredAttributes { type string; config false ; - description "Indicates MO attributes whose value changes are being - monitored. See definition in ITU-T Recommendation X.733 clause 8.1.2.11."; + description "Indicates MO attributes whose value changes are being + monitored."; + reference "ITU-T Recommendation X.733 clause 8.1.2.11."; } - + leaf proposedRepairActions { type string; config false ; - description "Indicates proposed repair actions. See definition in + description "Indicates proposed repair actions. See definition in ITU-T Recommendation X.733 clause 8.1.2.12."; } - + leaf additionalText { type string; config false ; } - - leaf additionalInformation { - type string; + + anydata additionalInformation { config false ; } - + leaf rootCauseIndicator { type enumeration { enum YES; enum NO; } config false ; - description "It indicates that this AlarmInformation is the root cause - of the events captured by the notifications whose identifiers are in + description "It indicates that this AlarmInformation is the root cause + of the events captured by the notifications whose identifiers are in the related CorrelatedNotification instances."; } - + leaf ackTime { type yang:date-and-time ; config false ; - description "It identifies the time when the alarm has been - acknowledged or unacknowledged the last time, i.e. it registers the + description "It identifies the time when the alarm has been + acknowledged or unacknowledged the last time, i.e. it registers the time when ackState changes."; } - + leaf ackUserId { type string; - description "It identifies the last user who has changed the + description "It identifies the last user who has changed the Acknowledgement State."; } - + leaf ackSystemId { type string; - description "It identifies the system (Management System) that last - changed the ackState of an alarm, i.e. acknowledged or unacknowledged + description "It identifies the system (Management System) that last + changed the ackState of an alarm, i.e. acknowledged or unacknowledged the alarm."; } - + leaf ackState { type enumeration { enum ACKNOWLEDGED { description "The alarm has been acknowledged."; } enum UNACKNOWLEDGED { - description "The alarm has unacknowledged or the alarm has never + description "The alarm has unacknowledged or the alarm has never been acknowledged."; } } } - + leaf clearUserId { type string; - description "Carries the identity of the user who invokes the + description "Carries the identity of the user who invokes the clearAlarms operation."; } - + leaf clearSystemId { type string; } - + leaf serviceUser { type string; config false ; - description "It identifies the service-user whose request for service - provided by the serviceProvider led to the generation of the + description "It identifies the service-user whose request for service + provided by the serviceProvider led to the generation of the security alarm."; } - + leaf serviceProvider { type string; config false ; - description "It identifies the service-provider whose service is - requested by the serviceUser and the service request provokes the + description "It identifies the service-provider whose service is + requested by the serviceUser and the service request provokes the generation of the security alarm."; } - + leaf securityAlarmDetector { type string; config false ; - } + } } - + grouping AlarmListGrp { description "Represents the AlarmList IOC."; - + leaf administrativeState { type types3gpp:AdministrativeState ; default LOCKED; - description "When set to UNLOCKED, the alarm list is updated. - When the set to LOCKED, the existing alarm records are not + description "When set to UNLOCKED, the alarm list is updated. + When the set to LOCKED, the existing alarm records are not updated, and new alarm records are not added to the alarm list."; } - + leaf operationalState { type types3gpp:OperationalState ; default DISABLED; config false; - description "The producer sets this attribute to ENABLED, indicating - that it has the resource and ability to record alarm in AlarmList - else, it sets the attribute to DISABLED."; - } + description "The producer sets this attribute to ENABLED, indicating + that it has the resource and ability to record alarm in AlarmList + else, it sets the attribute to DISABLED."; + } leaf numOfAlarmRecords { type uint32 ; @@ -360,49 +361,49 @@ module _3gpp-common-fm { mandatory true; description "The number of alarm records in the AlarmList"; } - + leaf lastModification { type yang:date-and-time ; config false; description "The last time when an alarm record was modified"; - } - + } + list alarmRecords { key alarmId; description "List of alarmRecords"; uses AlarmRecordGrp; - } + } } - + grouping FmSubtree { - description "Contains FM related classes. - Should be used in all classes (or classes inheriting from) + description "Contains FM related classes. + Should be used in all classes (or classes inheriting from) - SubNetwork - ManagedElement - - If some YAM wants to augment these classes/list/groupings they must + + If some YAM wants to augment these classes/list/groupings they must augment all user classes!"; - + list AlarmList { - key id; + key id; max-elements 1; - description "The AlarmList represents the capability to store and manage - alarm records. The management scope of an AlarmList is defined by all - descendant objects of the base managed object, which is the object + description "The AlarmList represents the capability to store and manage + alarm records. The management scope of an AlarmList is defined by all + descendant objects of the base managed object, which is the object name-containing the AlarmList, and the base object itself. - - AlarmList instances are created by the system or are pre-installed. + + AlarmList instances are created by the system or are pre-installed. They cannot be created nor deleted by MnS consumers. - - When the alarm list is locked or disabled, the existing alarm records + + When the alarm list is locked or disabled, the existing alarm records are not updated, and new alarm records are not added to the alarm list"; - - uses top3gpp:Top_Grp ; + + uses top3gpp:Top_Grp ; container attributes { uses AlarmListGrp ; - } + } } } - + } \ No newline at end of file diff --git a/yang-models/_3gpp-nr-nrm-cesmanagementfunction.yang b/yang-models/_3gpp-nr-nrm-cesmanagementfunction.yang index 8aa498d81f783f515353dec752e7c008d32ecf18..7235d704b2064f227e4f168912d495b7f54e565e 100755 --- a/yang-models/_3gpp-nr-nrm-cesmanagementfunction.yang +++ b/yang-models/_3gpp-nr-nrm-cesmanagementfunction.yang @@ -25,9 +25,73 @@ module _3gpp-nr-nrm-cesmanagementfunction { uses top3gpp:Top_Grp; leaf cesSwitch { - description "This attribute determines whether the Cross Domain-Centralized SON energy saving function is enabled or disabled."; + description "This attribute determines whether the Centralized SON energy saving function is enabled or disabled."; type boolean; } + list intraRatEsActivationOriginalCellLoadParameters { + key loadThreshold; + description "This attributes is relevant, if the cell acts as an original cell.This attribute indicates the traffic load threshold and the time duration, which are used by distributed ES algorithms to allow a cell to enter the energySaving state."; + leaf loadThreshold {type int32;} + container attributes { + uses IntraRatEsActivationOriginalCellLoadParametersGrp; + } + } + + + list intraRatEsActivationCandidateCellsLoadParameters { + key loadThreshold; + description "This attribute indicates the traffic load threshold and the time duration, which are used by distributed ES algorithms level to allow a n ‘original’ cell to enter the energySaving state."; + leaf loadThreshold {type int32;} + container attributes { + uses IntraRatEsActivationCandidateCellsLoadParametersGrp; + } + } + + list intraRatEsDeactivationCandidateCellsLoadParameters { + key loadThreshold; + description "This attributes is relevant, if the cell acts as a candidate cell.This attribute indicates the traffic load threshold and the time duration which is used by distributed ES algorithms to allow a cell to leave the energySaving state."; + leaf loadThreshold {type int32;} + container attributes { + uses IntraRatEsDeactivationCandidateCellsLoadParametersGrp; + } + } + + list esNotAllowedTimePeriod { + key startTimeandendTime; + description "This attribute indicates a list of time periods during which inter-RAT energy saving is not allowed."; + leaf startTimeandendTime {type string;} + container attributes { + uses EsNotAllowedTimePeriodGrp; + } + } + + list interRatEsActivationOriginalCellParameters { + key loadThreshold; + description "This attribute indicates the traffic load threshold and the time duration, which are used by distributed inter-RAT ES algorithms to allow an original cell to enter the energySaving state."; + leaf loadThreshold {type int32;} + container attributes { + uses InterRatEsActivationOriginalCellParametersGrp; + } + } + + list interRatEsActivationCandidateCellParameters { + key loadThreshold; + description "This attribute indicates the traffic load threshold and the time duration, which are used by distributed inter-RAT ES algorithms to allow an original cell to enter the energySaving state."; + leaf loadThreshold {type int32;} + container attributes { + uses InterRatEsActivationCandidateCellParametersGrp; + } + } + + list interRatEsDeactivationCandidateCellParameters { + key loadThreshold; + description "This attribute indicates the traffic load threshold and the time duration which is used by distributed inter-RAT ES algorithms to allow an original cell to leave the energySaving state."; + leaf loadThreshold {type int32;} + container attributes { + uses InterRatEsDeactivationCandidateCellParametersGrp; + } + } + leaf energySavingState { description "Specifies the status regarding the energy saving in the cell. If the value of energySavingControl is toBeEnergySaving, then it shall be tried to achieve the value isEnergySaving for the energySavingState. If the value of energySavingControl is toBeNotEnergySaving, then it shall be tried to achieve the value isNotEnergySaving for the energySavingState. "; @@ -48,6 +112,134 @@ module _3gpp-nr-nrm-cesmanagementfunction { } + grouping IntraRatEsActivationOriginalCellLoadParametersGrp { + description "Represents the the traffic load threshold and the time duration."; + + leaf loadThreshold { + description "This attribute is used by distributed ES algorithms to allow a cell to enter the energySaving state."; + type int32 { range "0..10000"; } + units "1"; + } + + + leaf timeDuration { + description " The time duration indicates how long the load needs to have been below the threshold."; + type int32 { range "0..900"; } + units "1"; + } + } + + grouping IntraRatEsActivationCandidateCellsLoadParametersGrp { + description "Represents the the traffic load threshold and the time duration."; + + leaf loadThreshold { + description "This attribute is used by distributed ES algorithms to allow a cell to enter the energySaving state."; + type int32 { range "0..10000"; } + units "1"; + } + + + leaf timeDuration { + description " The time duration indicates how long the load needs to have been below the threshold."; + type int32 { range "0..900"; } + units "1"; + } + } + + grouping IntraRatEsDeactivationCandidateCellsLoadParametersGrp { + description "Represents the the traffic load threshold and the time duration."; + + leaf loadThreshold { + description "This attribute is used by distributed ES algorithms to allow a cell to enter the energySaving state."; + type int32 { range "0..10000"; } + units "1"; + } + + + leaf timeDuration { + description " The time duration indicates how long the load needs to have been below the threshold."; + type int32 { range "0..900"; } + units "1"; + } + } + + grouping EsNotAllowedTimePeriodGrp { + description "Represents the the traffic load threshold and the time duration."; + + leaf startTimeandendTime { + description "This field indicate valid UTC time."; + type string; + } + + + leaf periodOfDay { + description "This field indicate the period of day."; + type string; + } + + leaf daysOfWeekList { + description "This field indicate the list of weekday."; + type string; + } + + leaf listoftimeperiods { + description "This field indicate the list of time periods."; + type string; + } + + } + + grouping InterRatEsActivationOriginalCellParametersGrp { + description "Represents the the traffic load threshold and the time duration."; + + leaf loadThreshold { + description "The time duration indicates how long the traffic load (both for UL and DL) needs to have been below the threshold."; + type int32 { range "0..10000"; } + units "1"; + } + + + leaf timeDuration { + description " The time duration indicates how long the load needs to have been below the threshold."; + type int32 { range "0..900"; } + units "1"; + } + } + + grouping InterRatEsActivationCandidateCellParametersGrp { + description "Represents the the traffic load threshold and the time duration."; + + leaf loadThreshold { + description "This attribute is used by distributed ES algorithms to allow a cell to enter the energySaving state."; + type int32 { range "0..10000"; } + units "1"; + } + + + leaf timeDuration { + description "The time duration indicates how long the traffic load (both for UL and DL) in the candidate cell needs to have been below the threshold before any original cells which will be provided backup coverage by the candidate cell enters energySaving state."; + type int32 { range "0..900"; } + units "1"; + } + } + + grouping InterRatEsDeactivationCandidateCellParametersGrp { + description "Represents the the traffic load threshold and the time duration."; + + leaf loadThreshold { + description "This attribute is used by distributed ES algorithms to allow a cell to enter the energySaving state."; + type int32 { range "0..10000"; } + units "1"; + } + + + leaf timeDuration { + description "The time duration indicates how long the traffic load (either for UL or DL) in the candidate cell needs to have been above the threshold to wake up one or more original cells which have been provided backup coverage by the candidate cell."; + type int32 { range "0..900"; } + units "1"; + } + } + augment "/me3gpp:ManagedElement/gnbcucp3gpp:GNBCUCPFunction/nrcellcu3gpp:NRCellCU" { if-feature nrcellcu3gpp:CESManagementFunction; diff --git a/yang-models/_3gpp-nr-nrm-cpciconfigurationfunction.yang b/yang-models/_3gpp-nr-nrm-cpciconfigurationfunction.yang index 1437acece70c3f883c48a21a66547f036f816e51..918c0581fdaba52fe6de4a359dd5d6b271ff0716 100755 --- a/yang-models/_3gpp-nr-nrm-cpciconfigurationfunction.yang +++ b/yang-models/_3gpp-nr-nrm-cpciconfigurationfunction.yang @@ -35,7 +35,7 @@ module _3gpp-nr-nrm-cpciconfigurationfunction { leaf cPciConfigurationControl { - description "This attribute determines whether the Cross Domain-Centralized SON PCI configuration function is enabled or disabled."; + description "This attribute determines whether the Centralized SON PCI configuration function is enabled or disabled."; type boolean; } diff --git a/yang-models/_3gpp-nr-nrm-desmanagementfunction.yang b/yang-models/_3gpp-nr-nrm-desmanagementfunction.yang index b4b86d2b00dd57e362b5690967ba67c6e9873028..a69c94e792122b2cdcb6821b96e8826233f603a8 100755 --- a/yang-models/_3gpp-nr-nrm-desmanagementfunction.yang +++ b/yang-models/_3gpp-nr-nrm-desmanagementfunction.yang @@ -26,7 +26,7 @@ module _3gpp-nr-nrm-desmanagementfunction { uses top3gpp:Top_Grp; leaf desSwitch { - description "This attribute determines whether the Distributed SON or Domain-Centralized SON energy saving function is enabled or disabled."; + description "This attribute determines whether the Distributed SON energy saving function is enabled or disabled."; type boolean; } diff --git a/yang-models/_3gpp-nr-nrm-dpciconfigurationfunction.yang b/yang-models/_3gpp-nr-nrm-dpciconfigurationfunction.yang index dce102ff2cc6c3176c5a090fb85e63b8c06c1c3e..a150af4b7540e0bc174d422a7cad6eb821b1fa15 100755 --- a/yang-models/_3gpp-nr-nrm-dpciconfigurationfunction.yang +++ b/yang-models/_3gpp-nr-nrm-dpciconfigurationfunction.yang @@ -28,7 +28,7 @@ module _3gpp-nr-nrm-dpciconfigurationfunction { list nRPciList { key NRPci; - description "This holds a list of physical cell identities that can be assigned to the NR cells. This attribute shall be supported if D-SON PCI configuration or domain Centralized SON PCI configuration function is supported."; + description "This holds a list of physical cell identities that can be assigned to the NR cells. This attribute shall be supported if D-SON PCI configuration function is supported."; leaf NRPci {type int32;} container attributes { uses NRPciListGrp; @@ -37,7 +37,7 @@ module _3gpp-nr-nrm-dpciconfigurationfunction { leaf dPciConfigurationControl { - description " This attribute determines whether the Distributed SON or Domain-Centralized SON PCI configuration Function is enabled or disabled."; + description " This attribute determines whether the Distributed SON PCI configuration Function is enabled or disabled."; type boolean; } diff --git a/yang-models/_3gpp-nr-nrm-ep.yang b/yang-models/_3gpp-nr-nrm-ep.yang index 835e2e05c4df0784cd6fbffdfca291e8fdd56738..2bf583e78ffa3fd352b4f47b28644e7dd1136d2a 100755 --- a/yang-models/_3gpp-nr-nrm-ep.yang +++ b/yang-models/_3gpp-nr-nrm-ep.yang @@ -17,6 +17,7 @@ module _3gpp-nr-nrm-ep { Resource Model (NRM)."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2021-04-30 { reference CR-0490 ; } revision 2021-03-03 { reference CR-0435 ; } revision 2021-02-17 { reference CR-0470; } revision 2020-11-17 { reference CR-0410 ; } @@ -111,7 +112,7 @@ module _3gpp-nr-nrm-ep { list EP_F1C { description "Represents the local end point of the control plane - interface (F1-C) between the DU and CU or CU-CP."; + interface (F1-C) between the gNB-DU and gNB-CU or gNB-CU-CP."; reference "3GPP TS 28.541, 3GPP TS 38.470"; key id; uses top3gpp:Top_Grp; @@ -122,7 +123,7 @@ module _3gpp-nr-nrm-ep { list EP_NgC { description "Represents the local end point of the control plane - interface (NG-C) between the gNB and NG-Core entity."; + interface (NG-C) between the gNB and AMF."; reference "3GPP TS 28.541, 3GPP TS 38.470"; key id; uses top3gpp:Top_Grp; @@ -173,7 +174,7 @@ module _3gpp-nr-nrm-ep { list EP_F1U { description "Represents the local end point of the user plane - interface (F1-U) between the DU and CU or CU-UP."; + interface (F1-U) between the gNB-DU and gNB-CU or gNB-CU-UP."; reference "3GPP TS 28.541, 3GPP TS 38.470"; key id; uses top3gpp:Top_Grp; diff --git a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang index 8e8d2adf3da9e3a2b76add13965297c58dee7795..04122e97f252431b21f1873cf1910dab35a7f974 100755 --- a/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang +++ b/yang-models/_3gpp-nr-nrm-gnbcucpfunction.yang @@ -28,7 +28,7 @@ module _3gpp-nr-nrm-gnbcucpfunction { } feature DESManagementFunction { - description "Classs representing Distributed SON or Domain-Centralized SON Energy Saving feature"; + description "Classs representing Distributed SON Energy Saving feature"; } feature DANRManagementFunction { diff --git a/yang-models/_3gpp-nr-nrm-gnbdufunction.yang b/yang-models/_3gpp-nr-nrm-gnbdufunction.yang index d317ae74edf7269e98c9bdf8e1739bbc660d7490..f69c622992b79bac61b9ca6db598df04aa235e67 100755 --- a/yang-models/_3gpp-nr-nrm-gnbdufunction.yang +++ b/yang-models/_3gpp-nr-nrm-gnbdufunction.yang @@ -13,6 +13,7 @@ module _3gpp-nr-nrm-gnbdufunction { Object Class (IOC) that is part of the NR Network Resource Model (NRM)."; reference "3GPP TS 28.541 5G Network Resource Model (NRM)"; + revision 2021-04-30 { reference CR-0490 ; } revision 2020-10-02 { reference CR-0384 ; } revision 2020-03-12 { reference "SP-200233 S5-201547" ; } revision 2020-02-14 { reference S5-20XXXX ; } @@ -34,7 +35,6 @@ feature"; leaf gNBId { type int64 { range "0..4294967295"; } - config false; mandatory true; description "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) is part of the NR Cell Identifier (NCI) of the gNB cells."; diff --git a/yang-models/_3gpp-nr-nrm-nrcellcu.yang b/yang-models/_3gpp-nr-nrm-nrcellcu.yang index 3aa5db4d5c6957f4a1ea4b5090caa23fc9042cba..a0a3e9889e85044c145efcceda3c18cc4b5cfca0 100755 --- a/yang-models/_3gpp-nr-nrm-nrcellcu.yang +++ b/yang-models/_3gpp-nr-nrm-nrcellcu.yang @@ -26,12 +26,12 @@ module _3gpp-nr-nrm-nrcellcu { revision 2019-06-17 { reference "Initial revision"; } feature DPCIConfigurationFunction { - description "Class representing Distributed SON or Domain-Centralized SON + description "Class representing Distributed SON function of PCI configuration feature"; } feature DESManagementFunction { - description "Class representing Distributed SON or Domain-Centralized SON + description "Class representing Distributed SON Energy Saving feature"; } @@ -40,7 +40,7 @@ module _3gpp-nr-nrm-nrcellcu { } feature CESManagementFunction { - description "Class representing Cross Domain-Centralized SON Energy Saving + description "Class representing Centralized SON Energy Saving feature"; } diff --git a/yang-models/_3gpp-nr-nrm-nrcelldu.yang b/yang-models/_3gpp-nr-nrm-nrcelldu.yang index f81da5001c5b4e6c9f8337adb7a0a4b2e9b8f1af..7869934b1c1b49112a5c0dd9fdb4e9c1a5c985d9 100755 --- a/yang-models/_3gpp-nr-nrm-nrcelldu.yang +++ b/yang-models/_3gpp-nr-nrm-nrcelldu.yang @@ -33,7 +33,7 @@ module _3gpp-nr-nrm-nrcelldu { } feature CPCIConfigurationFunction { - description "Class representing Cross Domain-Centralized SON function of + description "Class representing Centralized SON function of PCI configuration feature"; } diff --git a/yang-models/_3gpp-ns-nrm-common.yang b/yang-models/_3gpp-ns-nrm-common.yang new file mode 100755 index 0000000000000000000000000000000000000000..c3e1079bf7245e9b56afc441f89d31b79eb464b4 --- /dev/null +++ b/yang-models/_3gpp-ns-nrm-common.yang @@ -0,0 +1,96 @@ +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 diff --git a/yang-models/_3gpp-ns-nrm-networkslicesubnet.yang b/yang-models/_3gpp-ns-nrm-networkslicesubnet.yang index be7f4c6f72977181c80ad59bfdf728a89b61d1af..0053403626cb84c6d76a892b731448bacd0229ef 100755 --- a/yang-models/_3gpp-ns-nrm-networkslicesubnet.yang +++ b/yang-models/_3gpp-ns-nrm-networkslicesubnet.yang @@ -8,7 +8,8 @@ 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; organization "3GPP SA5"; diff --git a/yang-models/_3gpp-ns-nrm-perfreq.yang b/yang-models/_3gpp-ns-nrm-perfreq.yang deleted file mode 100755 index 7d0429304f2830dfd245eee55875bdabfec5d4fd..0000000000000000000000000000000000000000 --- a/yang-models/_3gpp-ns-nrm-perfreq.yang +++ /dev/null @@ -1,170 +0,0 @@ -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 diff --git a/yang-models/_3gpp-ns-nrm-serviceprofile.yang b/yang-models/_3gpp-ns-nrm-serviceprofile.yang index f83dde3535a41c03d5a8dca0e42d166b97f92ff3..d3630dc23fd3822e742ede611947bb9bfa4815e1 100755 --- a/yang-models/_3gpp-ns-nrm-serviceprofile.yang +++ b/yang-models/_3gpp-ns-nrm-serviceprofile.yang @@ -4,6 +4,7 @@ submodule _3gpp-ns-nrm-serviceprofile { import _3gpp-common-yang-types { prefix types3gpp; } import _3gpp-5g-common-yang-types { prefix types5g3gpp; } + import _3gpp-ns-nrm-common { prefix ns3cmn; } organization "3GPP SA5"; contact @@ -15,6 +16,10 @@ submodule _3gpp-ns-nrm-serviceprofile { Information model definitions for network slice NRM (chapter 6) "; + revision 2020-06-02 { + reference "CR-0485, CR-0508"; + } + revision 2020-02-19 { description "Introduction of YANG definitions for network slice NRM"; reference "CR-0458"; @@ -37,78 +42,7 @@ submodule _3gpp-ns-nrm-serviceprofile { range 0..100; } } - typedef Category-enum { - type enumeration { - enum character; - enum scalability; - } - } - typedef Tagging-enum { - type enumeration { - enum performance; - enum function; - enum operation; - } - } - typedef Exposure-enum { - type enumeration { - enum API; - enum KPI; - } - } - 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; - } - grouping DLThptGrp { - 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 V2XMode-enum { type enumeration { enum NOT_SUPPORTED; @@ -221,18 +155,18 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf support { description "An attribute specifies whether or not the network slice supports service delivery flexibility, especially for the vertical services that are not chasing a high system performance."; - type Support-enum; + type ns3cmn:Support-enum; } } list deterministicComm { //Stage2 issue: deterministicComm is not defined in 28.541 chapter 6, - // but I guess determinComm is meant + // but I guess deterministicComm is meant description "This list represents the properties of the deterministic communication for periodic user traffic. Periodic traffic refers to the type of traffic with periodic transmissions."; @@ -254,13 +188,13 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf availability { //Stage2 issue: Defined differently in 28.541 chapter 6, but XML - // uses DeterminCommAvailability + // uses DeterministicCommAvailability config false; - type DeterminCommAvailability; + type ns3cmn:DeterminCommAvailability; } leaf periodicityList { //Stage2 issue: Not defined in 28.541 chapter 6. XML and YAML @@ -278,7 +212,7 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses DLThptGrp; + uses ns3cmn:XLThptGrp; } list dLThptPerUE { description "This attribute defines data rate supported by the network @@ -289,9 +223,9 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses DLThptGrp; + uses ns3cmn:XLThptGrp; } - list uLThptPerSlic { + list uLThptPerSlice { key idx; max-elements 1; leaf idx { @@ -301,7 +235,7 @@ submodule _3gpp-ns-nrm-serviceprofile { description "This attribute defines achievable data rate of the network slice in uplink that is available ubiquitously across the coverage area of the slice"; - uses DLThptGrp; + uses ns3cmn:XLThptGrp; } list uLThptPerUE { key idx; @@ -312,7 +246,7 @@ submodule _3gpp-ns-nrm-serviceprofile { } description "This attribute defines data rate supported by the network slice per UE"; - uses DLThptGrp; + uses ns3cmn:XLThptGrp; } list maxPktSize { config false; @@ -335,7 +269,7 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf maxSize { //Stage2 issue: Not defined in 28.541, guessing integer bytes @@ -364,7 +298,7 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf nOofPDUSessions { //Stage2 issue: Not defined in 28.541, guessing integer @@ -391,7 +325,7 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf kPIList { //Stage2 issue: Data format not specified, low interoperability @@ -403,7 +337,7 @@ submodule _3gpp-ns-nrm-serviceprofile { list userMgmtOpen { description "An attribute specifies whether or not the network slice supports the capability for the NSC to manage their users or groups - of users’ network services and corresponding requirements."; + of users' network services and corresponding requirements."; config false; key idx; max-elements 1; @@ -422,10 +356,10 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf support { - type Support-enum; + type ns3cmn:Support-enum; } } list v2XCommModels { @@ -449,7 +383,7 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf v2XMode { type V2XMode-enum; @@ -476,7 +410,7 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf density { type uint32; @@ -557,12 +491,12 @@ submodule _3gpp-ns-nrm-serviceprofile { description "Synthetic index for the element."; type uint32; } - uses ServAttrComGrp; + uses ns3cmn:ServAttrComGrp; } leaf support { description "An attribute specifies whether NB-IoT is supported in the RAN in the network slice"; - type Support-enum; + type ns3cmn:Support-enum; } } } diff --git a/yang-models/_3gpp-ns-nrm-sliceprofile.yang b/yang-models/_3gpp-ns-nrm-sliceprofile.yang index df200ad1862fc49ccaacae4ae947472020a71bed..0ec5311adfe6d9e90af9a2c7a28c912227f84edb 100755 --- a/yang-models/_3gpp-ns-nrm-sliceprofile.yang +++ b/yang-models/_3gpp-ns-nrm-sliceprofile.yang @@ -4,8 +4,9 @@ submodule _3gpp-ns-nrm-sliceprofile { import _3gpp-common-yang-types { prefix types3gpp; } import _3gpp-5g-common-yang-types { prefix types5g3gpp; } - import _3gpp-ns-nrm-perfreq { prefix perf3gpp; } - + // import _3gpp-ns-nrm-networkslice { prefix ns3gpp; } + import _3gpp-ns-nrm-common { prefix ns3cmn; } + organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -18,6 +19,11 @@ submodule _3gpp-ns-nrm-sliceprofile { Information model definitions for network slice NRM (chapter 6) "; + revision 2021-05-05 { + description "replace perfReq with 3 new datatypes xxxSliceSubnetProfile"; + reference "CR-0485"; + } + revision 2020-02-19 { description "Introduction of YANG definitions for network slice NRM"; reference "CR-0458"; @@ -28,7 +34,770 @@ submodule _3gpp-ns-nrm-sliceprofile { reference "Based on 3GPP TS 28.541 V15.X.XX"; } - + typedef SliceSimultaneousUse-enum { + type enumeration { + enum ZERO; + enum ONE; + enum TWO; + enum THREE; + enum FOUR; + } + } + typedef ServiceType-enum { + type enumeration { + enum eMBB; + enum URLLC; + enum MIoT; + enum V2X; + } + } + grouping TopSliceSubnetProfileGrp { + leaf-list coverageArea { + min-elements 1; + description "A list of TrackingAreas where the NSI can be selected."; + type types3gpp:Tac; + } + leaf latency { + description "The packet transmission latency (milliseconds) through + the RAN, CN, and TN part of 5G network, used to evaluate + utilization performance of the end-to-end network slice instance."; + reference "3GPP TS 28.554 clause 6.3.1"; + //optional support + mandatory true; + type uint16; + units milliseconds; + } + leaf maxNumberofUEs { + description "Specifies the maximum number of UEs may simultaneously + access the network slice instance."; + //optional support + mandatory true; + type uint64; + } + list dLThptPerSliceSubnet { + description "This attribute defines achievable data rate of the + network slice subnet in downlink that is available ubiquitously + across the coverage area of the slice"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list dLThptPerUE { + description "This attribute defines data rate supported by the + network slice per UE, refer NG.116."; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list uLThptPerSliceSubnet { + description "This attribute defines achievable data rate of the + network slice subnet in uplink that is available ubiquitously + across the coverage area of the slice"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list uLThptPerUE { + description "This attribute defines data rate supported by the + network slice per UE, refer NG.116"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list maxPktSize { + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + description "This parameter specifies the maximum packet size + supported by the network slice"; + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf maxSize { + //Stage2 issue: Not defined in 28.541, guessing integer bytes + type uint32; + units bytes; + } + } + list maxNumberofPDUSessions { + description "Represents the maximum number of + concurrent PDU sessions supported by the network slice"; + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf nOofPDUSessions { + //Stage2 issue: Not defined in 28.541, guessing integer + type uint32; + } + } + leaf sliceSimultaneousUse { + description "This attribute describes whether a network slice + can be simultaneously used by a device together with other + network slices and if so, with which other classes of network slices."; + type SliceSimultaneousUse-enum; + } + list delayTolerance { + description "An attribute specifies the properties of service delivery + flexibility, especially for the vertical services that are not + chasing a high system performance."; + reference "TS 22.104 clause 4.3"; + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf support { + description "An attribute specifies whether or not the network + slice supports service delivery flexibility, especially for the + vertical services that are not chasing a high system performance."; + type ns3cmn:Support-enum; + } + } + list termDensity { + description "An attribute specifies the overall user density over + the coverage area of the network slice"; + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf density { + type uint32; + units users/km2; + } + } + leaf activityFactor { + //Stage2 issue: This is modeled as writable/config true in 28.542, + // but that does not appear to match the description + description "An attribute specifies the 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"; + reference "TS 22.261 Table 7.1-1"; + type decimal64 { + fraction-digits 1; + } + } + leaf-list coverageAreaTAList { + description "A list of TrackingAreas where the NSI can be selected."; + //optional support + min-elements 1; + type types3gpp:Tac; + } + leaf uEMobilityLevel { + description "The mobility level of UE accessing the network slice + instance."; + //optional support + type types3gpp:UeMobilityLevel; + } + + leaf resourceSharingLevel { + description "Specifies whether the resources to be allocated to the + network slice subnet instance may be shared with another network + slice subnet instance(s)."; + //optional support + type types3gpp:ResourceSharingLevel; + } + leaf uESpeed { + //Stage2 issue: This is modeled as writable/config true in 28.542, + // but that does not appear to match the description + description "An attribute specifies the maximum speed (in km/hour) + supported by the network slice at which a defined QoS can be + achieved"; + type uint32; + units km/h; + } + leaf reliability { + description "An attribute specifies in the context of network layer + packet transmissions, percentage value of the amount of sent + network layer packets successfully delivered to a given system + entity within the time constraint required by the targeted service, + divided by the total number of sent network layer packets."; + reference "TS 22.261, TS 22.104"; + type string; + } + leaf serviceType { + description "An attribute specifies the standardized network slice type. + allowedValues: eMBB, URLLC, MIoT, V2X."; + type ServiceType-enum; + } + list deterministicComm { + //Stage2 issue: deterministicComm is not defined in 28.541 chapter 6, + // but I guess determinComm is meant + description "This list represents the properties of the deterministic + communication for periodic user traffic. Periodic traffic refers to the + type of traffic with periodic transmissions."; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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 ns3cmn:ServAttrComGrp; + } + leaf availability { + //Stage2 issue: Defined differently in 28.541 chapter 6, but XML + // uses DeterminCommAvailability + config false; + type ns3cmn:DeterminCommAvailability; + } + leaf periodicityList { + //Stage2 issue: Not defined in 28.541 chapter 6. XML and YAML + // says "string". + type string; + } + } + leaf survivalTime { + description "An attribute specifies the time that an application + consuming a communication service may continue without an + anticipated message."; + reference "TS 22.104 clause 5"; + type string; + } + } + + grouping CNSliceSubnetProfileGrp { + leaf-list coverageArea { + min-elements 1; + description "A list of TrackingAreas where the NSI can be selected."; + type types3gpp:Tac; + } + leaf latency { + description "The packet transmission latency (milliseconds) through + the RAN, CN, and TN part of 5G network, used to evaluate + utilization performance of the end-to-end network slice instance."; + reference "3GPP TS 28.554 clause 6.3.1"; + //optional support + mandatory true; + type uint16; + units milliseconds; + } + leaf maxNumberofUEs { + description "Specifies the maximum number of UEs may simultaneously + access the network slice instance."; + //optional support + mandatory true; + type uint64; + } + list dLThptPerSliceSubnet { + description "This attribute defines achievable data rate of the + network slice subnet in downlink that is available ubiquitously + across the coverage area of the slice"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list dLThptPerUE { + description "This attribute defines data rate supported by the + network slice per UE, refer NG.116."; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list uLThptPerSliceSubnet { + description "This attribute defines achievable data rate of the + network slice subnet in uplink that is available ubiquitously + across the coverage area of the slice"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list uLThptPerUE { + description "This attribute defines data rate supported by the + network slice per UE, refer NG.116"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list maxPktSize { + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + description "This parameter specifies the maximum packet size + supported by the network slice"; + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf maxSize { + //Stage2 issue: Not defined in 28.541, guessing integer bytes + type uint32; + units bytes; + } + } + list maxNumberofPDUSessions { + description "Represents the maximum number of + concurrent PDU sessions supported by the network slice"; + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf nOofPDUSessions { + //Stage2 issue: Not defined in 28.541, guessing integer + type uint32; + } + } + leaf sliceSimultaneousUse { + description "This attribute describes whether a network slice + can be simultaneously used by a device together with other + network slices and if so, with which other classes of network slices."; + type SliceSimultaneousUse-enum; + } + list delayTolerance { + description "An attribute specifies the properties of service delivery + flexibility, especially for the vertical services that are not + chasing a high system performance."; + reference "TS 22.104 clause 4.3"; + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf support { + description "An attribute specifies whether or not the network + slice supports service delivery flexibility, especially for the + vertical services that are not chasing a high system performance."; + type ns3cmn:Support-enum; + } + } + leaf-list coverageAreaTAList { + description "A list of TrackingAreas where the NSI can be selected."; + //optional support + min-elements 1; + type types3gpp:Tac; + } + leaf resourceSharingLevel { + description "Specifies whether the resources to be allocated to the + network slice subnet instance may be shared with another network + slice subnet instance(s)."; + //optional support + type types3gpp:ResourceSharingLevel; + } + + list deterministicComm { + //Stage2 issue: deterministicComm is not defined in 28.541 chapter 6, + // but I guess determinComm is meant + description "This list represents the properties of the deterministic + communication for periodic user traffic. Periodic traffic refers to the + type of traffic with periodic transmissions."; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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 ns3cmn:ServAttrComGrp; + } + leaf availability { + //Stage2 issue: Defined differently in 28.541 chapter 6, but XML + // uses DeterminCommAvailability + config false; + type ns3cmn:DeterminCommAvailability; + } + leaf periodicityList { + //Stage2 issue: Not defined in 28.541 chapter 6. XML and YAML + // says "string". + type string; + } + } + } + + grouping RANSliceSubnetProfileGrp { + leaf latency { + description "The packet transmission latency (milliseconds) through + the RAN, CN, and TN part of 5G network, used to evaluate + utilization performance of the end-to-end network slice instance."; + reference "3GPP TS 28.554 clause 6.3.1"; + //optional support + mandatory true; + type uint16; + units milliseconds; + } + leaf maxNumberofUEs { + description "Specifies the maximum number of UEs may simultaneously + access the network slice instance."; + //optional support + mandatory true; + type uint64; + } + list dLThptPerUE { + description "This attribute defines data rate supported by the + network slice per UE, refer NG.116."; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list uLThptPerUE { + description "This attribute defines data rate supported by the + network slice per UE, refer NG.116"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:XLThptGrp; + } + list maxPktSize { + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + description "This parameter specifies the maximum packet size + supported by the network slice"; + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf maxSize { + //Stage2 issue: Not defined in 28.541, guessing integer bytes + type uint32; + units bytes; + } + } + list delayTolerance { + description "An attribute specifies the properties of service delivery + flexibility, especially for the vertical services that are not + chasing a high system performance."; + reference "TS 22.104 clause 4.3"; + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf support { + description "An attribute specifies whether or not the network + slice supports service delivery flexibility, especially for the + vertical services that are not chasing a high system performance."; + type ns3cmn:Support-enum; + } + } + leaf sliceSimultaneousUse { + description "This attribute describes whether a network slice + can be simultaneously used by a device together with other + network slices and if so, with which other classes of network slices."; + type SliceSimultaneousUse-enum; + } + list termDensity { + description "An attribute specifies the overall user density over + the coverage area of the network slice"; + config false; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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"; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses ns3cmn:ServAttrComGrp; + } + leaf density { + type uint32; + units users/km2; + } + } + leaf activityFactor { + //Stage2 issue: This is modeled as writable/config true in 28.542, + // but that does not appear to match the description + description "An attribute specifies the 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"; + reference "TS 22.261 Table 7.1-1"; + type decimal64 { + fraction-digits 1; + } + } + leaf-list coverageAreaTAList { + description "A list of TrackingAreas where the NSI can be selected."; + //optional support + min-elements 1; + type types3gpp:Tac; + } + leaf uEMobilityLevel { + description "The mobility level of UE accessing the network slice + instance."; + //optional support + type types3gpp:UeMobilityLevel; + } + + leaf resourceSharingLevel { + description "Specifies whether the resources to be allocated to the + network slice subnet instance may be shared with another network + slice subnet instance(s)."; + //optional support + type types3gpp:ResourceSharingLevel; + } + leaf uESpeed { + //Stage2 issue: This is modeled as writable/config true in 28.542, + // but that does not appear to match the description + description "An attribute specifies the maximum speed (in km/hour) + supported by the network slice at which a defined QoS can be + achieved"; + type uint32; + units km/h; + } + leaf reliability { + description "An attribute specifies in the context of network layer + packet transmissions, percentage value of the amount of sent + network layer packets successfully delivered to a given system + entity within the time constraint required by the targeted service, + divided by the total number of sent network layer packets."; + reference "TS 22.261, TS 22.104"; + type string; + } + leaf serviceType { + description "An attribute specifies the standardized network slice type. + allowedValues: eMBB, URLLC, MIoT, V2X."; + type ServiceType-enum; + } + list deterministicComm { + //Stage2 issue: deterministicComm is not defined in 28.541 chapter 6, + // but I guess determinComm is meant + description "This list represents the properties of the deterministic + communication for periodic user traffic. Periodic traffic refers to the + type of traffic with periodic transmissions."; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + 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 ns3cmn:ServAttrComGrp; + } + leaf availability { + //Stage2 issue: Defined differently in 28.541 chapter 6, but XML + // uses DeterminCommAvailability + config false; + type ns3cmn:DeterminCommAvailability; + } + leaf periodicityList { + //Stage2 issue: Not defined in 28.541 chapter 6. XML and YAML + // says "string". + type string; + } + } + leaf survivalTime { + description "An attribute specifies the time that an application + consuming a communication service may continue without an + anticipated message."; + reference "TS 22.104 clause 5"; + type string; + } + } + grouping SliceProfileGrp { leaf sliceProfileId { description "A unique identifier of the property of network slice @@ -62,24 +831,6 @@ submodule _3gpp-ns-nrm-sliceprofile { uses types3gpp:PLMNId; } - //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 no sST element in SliceProfile which - // references perfReq, nor in perfReq itself. There are - // potentially several in the sNSSAIList. Should we take the - // union of those to control whivh perfReq elements are - // relevant? For now, making all perfReq elements available - // in all slice profiles. - list perfReq { - 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."; - key idx; //this list uses a grouping/choice and has no obvious key - leaf idx { type uint32; } - uses perf3gpp:PerfReqGrp; - } - leaf maxNumberofUEs { description "Specifies the maximum number of UEs may simultaneously access the network slice instance."; @@ -115,10 +866,43 @@ submodule _3gpp-ns-nrm-sliceprofile { leaf resourceSharingLevel { description "Specifies whether the resources to be allocated to the - network slice subnet instance may be shared with another network + network slice subnet instance may be shared with another network slice subnet instance(s)."; //optional support type types3gpp:ResourceSharingLevel; } + list CNSliceSubnetProfile { + description " This represents the requirements for the top slice associated with the + network slice. "; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses TopSliceSubnetProfileGrp; + } + list RANSliceSubnetProfile { + description " This represents the requirements for the top slice associated with the + network slice. "; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses TopSliceSubnetProfileGrp; + } + list TopSliceSubnetProfile { + description " This represents the requirements for the top slice associated with the + network slice. "; + key idx; + max-elements 1; + leaf idx { + description "Synthetic index for the element."; + type uint32; + } + uses TopSliceSubnetProfileGrp; + } } } \ No newline at end of file