Commit cbe5b31e authored by Balazs Lengyel's avatar Balazs Lengyel

YAMs according to 28623-g31-0401-balazscorrection.doc and 28541-g40-0331.docx...

YAMs according to 28623-g31-0401-balazscorrection.doc and 28541-g40-0331.docx - Balazs correction is removing a superfouous quote+semicolon in subnetwork
parent 5fd5233a
Pipeline #3186 passed with stage
in 0 seconds
......@@ -3,6 +3,7 @@ module _3gpp-5g-common-yang-types {
namespace "urn:3gpp:sa5:_3gpp-5g-common-yang-types";
prefix "types5g3gpp";
import _3gpp-common-yang-types { prefix types3gpp; }
organization "3GPP SA5";
......@@ -50,7 +51,8 @@ module _3gpp-5g-common-yang-types {
type CommModelType;
}
leaf-list targetNFServiceList {
type types3gpp:DistinguishedName;
type types3gpp:DistinguishedName;
}
leaf commModelConfiguration {
type string;
......
......@@ -43,7 +43,7 @@ module _3gpp-5gc-nrm-amffunction {
type inet:domain-name;
}
leaf-list NSSAIList {
leaf-list sNSSAIList {
min-elements 0; // conditionally mandatory if network slicing feature is supported
description "List of S-NSSAIs the managed object is capable of supporting.
(Single Network Slice Selection Assistance Information)
......
......@@ -7,8 +7,8 @@ module _3gpp-5gc-nrm-ausffunction {
import _3gpp-common-managed-function { prefix mf3gpp; }
import _3gpp-common-managed-element { prefix me3gpp; }
import ietf-inet-types { prefix inet; }
import _3gpp-common-yang-types { prefix types3gpp; }
import _3gpp-5g-common-yang-types { prefix types5g3gpp; }
import _3gpp-common-yang-types { prefix types3gpp; }
import _3gpp-common-top { prefix top3gpp; }
organization "3gpp SA5";
......@@ -55,6 +55,7 @@ module _3gpp-5gc-nrm-ausffunction {
min-elements 1;
uses types3gpp:ManagedNFProfile;
}
list commModelList {
min-elements 1;
......
......@@ -480,8 +480,8 @@ module _3gpp-5gc-nrm-ep {
uses EP_N32Grp;
}
}
}
}
augment "/me3gpp:ManagedElement/smsf3gpp:SMSFFunction" {
list EP_N20 {
description "Represents the EP_20 IOC.";
......
......@@ -18,6 +18,7 @@ module _3gpp-5gc-nrm-smsffunction {
revision 2019-05-15 {
description "initial revision";
}
grouping SMSFFunctionGrp {
......
......@@ -18,6 +18,7 @@ module _3gpp-5gc-nrm-udsffunction {
revision 2019-05-22 {
description "initial revision";
}
grouping UDSFFuntionGrp {
......
......@@ -54,7 +54,7 @@ module _3gpp-5gc-nrm-upffunction {
min-elements 1;
uses types3gpp:ManagedNFProfile;
}
list commModelList {
min-elements 1;
key "groupId";
......
module _3gpp-common-fm {
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";
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 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 entity of a
name-tree whose top is FMControlAttachment.
One MonitoredEntity2 has at most one AlarmList. The producer assigns an
identifier, called alarmId, to each AlarmRecord in the AlarmList. An
alarmId unambiguously identifies one alarm record in the AlarmList.
The producer maintains one AlarmList containing currently active
alarms i.e.:
a) Alarm record(s) whose perceivedSeverity is not CLEARED and;
b) Alarm record(s) whose perceivedSeverity is CLEARED and its ackState
is not ACKNOWLEDGED.
The producer may remove alarm records that are not active alarms.
The availability and accuracy of time carried by the
time parameters in individual entries of the list shall be
'best effort'.
Reason: A Management System is not required to persistently store
these times or other alarm information (as in case of synchronization
information may be provided by the NE), while also some NE's do not
keep these times (and a later attempt to retrieve the alarm data
from the NEs will not deliver these time data).";
leaf alarmType {
config false ;
type eventType;
description "General category for the alarm.";
}
leaf objectClass_objectInstance {
type string;
config false ;
description "";
}
leaf alarmId {
type string;
description "Identifies the alarmRecord";
}
leaf alarmRaisedTime {
type yang:date-and-time ;
config false ;
}
leaf alarmChangedTime {
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 probableCause {
type string;
// the valuespace may be restricted later
config false ;
}
leaf perceivedSeverity {
type severity-level;
description "This is Writable only if producer supports consumer
to set perceivedSeverity to CLEARED";
}
leaf rootCauseIndicator {
type string;
// the valuespace may be restricted later
config false ;
description "";
}
leaf specificProblem {
type string;
// the valuespace may be restricted later
config false ;
description "";
}
leaf backedUpStatus {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is a security alarm";
}
leaf trendIndication {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is a security alarm";
}
leaf thresholdInfo {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is a security alarm";
}
leaf stateChangeDefinition {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is a security alarm";
}
leaf monitoredAttributes {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is a security alarm";
}
leaf proposedRepairActions {
type string;
config false ;
description "not applicable if related alarm is a security alarm";
}
leaf additionalText {
type string;
config false ;
description "";
}
leaf additionalInformation {
type string;
config false ;
description "";
}
leaf ackTime {
type yang:date-and-time ;
config false ;
description "The time the alarm was acknowledged
not applicable if related alarm was not acknowledged
nor unacknowledged";
}
leaf ackUserId {
type string;
config false ;
description "not applicable if related alarm was not acknowledged
nor unacknowledged";
}
leaf ackSystemId {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm was not acknowledged
nor unacknowledged";
}
leaf ackState {
type string;
// the valuespace may be restricted later
description "not applicable if related alarm was not acknowledged
nor unacknowledged";
}
leaf clearUserId {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm was not cleared";
}
leaf clearSystemId {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm was not cleared";
}
leaf serviceUser {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is not a security alarm";
}
leaf serviceProvider {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is not a security alarm";
}
leaf securityAlarmDetector {
type string;
// the valuespace may be restricted later
config false ;
description "not applicable if related alarm is not a security alarm";
}
}
grouping FMControlGrp {
description "Represents a capability to manage alarm records and alarm
notifications.";
leaf administrativeState {
type types3gpp:AdministrativeState ;
default LOCKED;
description "The consumer sets this attribute to UNLOCKED instructing
the producer to report and record alarm information.
The consumer sets the attribute to LOCKED instructing detection,
reporting and recording of alarm information are no longer needed.";
}
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
and sending alarm notification to faultReportTarget (an attribute
of NtfSubscriptionControl IOC);
else, it sets the attribute to DISABLED.";
}
}
grouping AlarmListGrp {
description "Represents the list of alarm records.";
leaf numOfAlarmRecords {
type uint32 ;
config false;
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 is modified";
}
list alarmRecordList {
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)
- SubNnetwork
- ManagedElement
If some YAM wants to augment these classes/list/groupings they must
augment all user classes!";
list FMControl {
key id;
max-elements 1;
description "Represents a capability to manage alarm records and alarm
notifications. The alarm records and notifications managed are related to
managed entities of the naming-tree whose top instance is one
name-containing this FMControl.
The FMControl MnS producer, upon detection of an abnormal behaviour of
its managed entities, would create or update an alarm record of the
AlarmList. Consumer who has a subscription with NtfSubscriptionControl
MnS would receive alarm notifications.";
uses top3gpp:Top_Grp ;
container attributes {
uses FMControlGrp ;
}
}
list AlarmList {
key id;
max-elements 1;
description "Represents the list of alarm records. The alarm records are
related to managed entities of the naming-tree whose top instance is one
name-containing this AlarmList.
The producer would create this AlarmList instance.
Over time, the producer may produce, say n notifications, for a
particular alarmed object instance. The number of records in the
AlarmList may not be n.
AlarmList shall hold, for the same alarmed object instance, only one
record if and only if, the notifications carry identical values for
eventType, probableCause and specificProblem. See the
Matching-Criteria-Attributes definition
in 3GPP TS 28.532.";
uses top3gpp:Top_Grp ;
container attributes {
uses AlarmListGrp ;
}
}
}
}
\ No newline at end of file
......@@ -6,18 +6,27 @@ module _3gpp-common-managed-element {
import _3gpp-common-yang-types { prefix types3gpp ; }
import _3gpp-common-top { prefix top3gpp; }
import _3gpp-common-measurements { prefix meas3gpp; }
import _3gpp-common-fm { prefix fm3gpp; }
organization "3GPP SA5";
description "Defines ManagedElement which will be augmented
by other IOCs";
reference "3GPP TS 28.622
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)
Information Service (IS)
3GPP TS 28.620
Umbrella Information Model (UIM)";
revision 2020-02-24 {
reference "S5-201365";
}
revision 2019-06-17 {
description "Initial revision";
}
......@@ -26,6 +35,10 @@ module _3gpp-common-managed-element {
description "The MeasurementSubtree shall be contained under ManageElement";
}
feature FmUnderManagedElement {
description "The FmSubtree shall be contained under ManageElement";
}
grouping ManagedElement_Grp {
description "Abstract class representing telecommunications resources.
An ME communicates with a manager (directly or indirectly) for the
......@@ -152,5 +165,9 @@ module _3gpp-common-managed-element {
uses meas3gpp:MeasurementSubtree {
if-feature MeasurementsUnderManagedElement ;
}
uses fm3gpp:FmSubtree {
if-feature FmUnderManagedElement ;
}
}
}
\ No newline at end of file
......@@ -8,26 +8,28 @@ module _3gpp-common-measurements {
organization "3GPP SA5";
description "Defines Measurement related groupings
Any list/class intending to use this should include 2 uses statements
description "Defines Measurement and KPI related groupings
Any list/class intending to use this should include 2 or 3 uses statements
controlled by a feature:
A)
+++ feature MeasurementsUnderMyClass {
+++ description 'Indicates whether measurements are supported for this class.';
+++ description 'Indicates whether measurements and/or KPIs are supported
+++ for this class.';
+++ }
B) include the attribute supportedMeasurementsGPs indicating the
supported measurmentTypes and GPs. Note that for classes inheriting from
ManagedFunction, EP_RP or SubNetwork this attribute is already inherited,
so there is no need to include it once more.E.g.
B) include the attribute measurementsList and/or kPIsList indicating the
supported measurment and KPI types and GPs. Note that for classes
inheriting from ManagedFunction, EP_RP or SubNetwork these attributes are
already inherited, so there is no need to include them once more. E.g.
grouping MyClassGrp {
+++ grouping MyClassGrp {
+++ uses meas3gpp:Measurements;
}
+++ uses meas3gpp:KPIs;
+++ }
C) include the classes MeasurementControl & MeasuremntReader to
control the measurements. E.g.
C) include the classes MeasurementControl & MeasurementReader to
control the measurements/KPIs. E.g.
list MyClass {
container attributes {
......@@ -40,13 +42,20 @@ module _3gpp-common-measurements {
Measurements can be contained under ManagedElement, SubNetwork, or
any list representing a class inheriting from EP_RP, Subnetwork or
ManagedFunction.";
ManagedFunction. Note: KPIs will only be supported under SubNetwork";
reference "3GPP TS 28.622
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 2020-03-11 { reference "S5-201581, SP-200229"; }
revision 2019-11-21 {
reference "S5-197275, S5-197735";
}
......@@ -62,9 +71,43 @@ module _3gpp-common-measurements {
description "The delivery of measurement data using streaming is supported.";
}
grouping KPIs {
description "Identifies the supported KPI names and their
supported GPs.
KPIs can be used by SubNetwork, or any list representing a class
inheriting from Subnetwork.";
list kPIsList {
key idx;
config false;
description "List of supported KPI names and their
supported GPs for the parent function/class";
leaf idx { type uint32 ; }
leaf-list kPINames {
type string;
min-elements 1;
description "The KPI names can be those specified
in TS 28.554 and can be those specified by
other SDOs or can be vendor-specific.";
}
leaf-list gPs {
type uint32 ;
units second;
min-elements 1;
description "Identifies supported GPs.
GP (granularity period) is the time between the initiation
of two successive gatherings of performance data.";
}
}
}
grouping Measurements {
description "Identifies the supported Measurement types and their
supported GPs.";
supported GPs. Measurements can be used by SubNetwork, MnagedElement,
ManagedFunction or any list representing a class inheriting from them.";
list measurementsList {
key idx;
......@@ -106,8 +149,8 @@ module _3gpp-common-measurements {
using the capability of MeasurementControl, imposed through the consumer
of OAM services produced by MeasurementControl,
The measurement report production would begin when pMadministrativeState
is UNLOCKED and pMoperationalState is ENABLED.";
The measurement or KPI report production would begin when
pMadministrativeState is UNLOCKED and pMoperationalState is ENABLED.";
}
leaf pMOperationalState {
......@@ -197,22 +240,29 @@ module _3gpp-common-measurements {
leaf-list measurementTypes {
type string ;
description "The Measurement type to be reported. It must be one of the
measurmentTypes supported by the containing function/class.
The Measurement type can be those specified in TS 28.552,
TS 32.404 and can be those specified by other SDOs or can be
vendor-specific.";
description "If the MeasurementControl contaning this attribute is used
for measurement collecting purpose, it identifies one or more
Measurement types. The Measurement type can be those specified in
TS 28.552, TS 32.404 and can be those specified by other SDOs or
can be vendor-specific.
If the MeasurementControl is used for KPIs reporting purpose, it
identifies one or more KPI names. The KPI name can be those specified
in TS 28.554 and can be those specified by other SDOs or can be
vendor-specific.
KPI names can only be specified if this MeasurementReader is
contained under a SubNetwork or derived IOC.";
}
leaf-list managedObjectDNsBasic {
type types3gpp:DistinguishedName ;
description "Identifies the managed functions whose Measurements are
required to be produced.
description "Identifies the managed functions whose Measurements or KPIs
are required to be produced.
It identifies specific managed entities (say X, Y, Z). It would mean
Measurements type specified in MeasurementReader.measurementTypes,
are required to be produced if X, Y, Z are capable of supporting
the Measurement types.
Measurements or KPI names type specified in
MeasurementReader.measurementTypes, are required to be produced
if X, Y, Z are capable of supporting the Measurement types or KPI names.
If managedObjectDNs of the same MeasurementReader instance has valid
information, the information of this leaf-list is ignored.";
......@@ -220,8 +270,9 @@ module _3gpp-common-measurements {
leaf-list managedObjectDNs {
type types3gpp:DistinguishedName ;
description "Identifies the managed entities whose Measurements are
required to be produced.
description "Identifies the managed entities whose Measurements or KPIs
are required to be produced.
In case the base is SubNetwork, it identifies all, including the base,
managed entities that are subordinates, in the sense of name-containment,
......@@ -232,24 +283,24 @@ module _3gpp-common-measurements {
with the base.
We called the identified entities a collection. It would mean
Measurement types specified in attribute
Measurement types or KPI names specified in attribute
MeasurementReader.measurementTypes, are required to be produced if the
member (of the collection) is capable of supporting the Measurement
types.";
types or KPI names.";
}
leaf fileLocation {
type string ;
description "It is the path to the location where produced
measurement reports (containing PM data) are stored. File based
measurement delivery will not start if this leaf does not have a
performance reports (containing PM data) are stored. File based
delivery will not start if this leaf does not have a
valid value.
It is the path to a location on either the producer's file system or a
URI to a network file location that is not part of the producer's file
system. In case it points to a location on the producer's file system,
it is a relative path based on a vendor-specified root directory for
measurement files.
performance data files.
The size of this fileLocation is decided by consumer and producer.
The producer is expected to remove old files to make room for
......@@ -265,7 +316,7 @@ module _3gpp-common-measurements {
type uint32 ;
units second;
description "GP (granularity period) defines the frequency of producing
measurement data.";
performance data.";
}
leaf fileReportingPeriod {
......@@ -276,17 +327,17 @@ module _3gpp-common-measurements {
mandatory true;
type uint32 ;
units minute;
description "The frequency of producing the measurement report files.";
description "The frequency of producing the performance report files.";
}
leaf streamTarget {
when 'not(../fileLocation)' ;
type string ;
description "Identifies the target of the notification carrying the
content of the measurement report.
content of the measurement or KPI report.
There are two delivery methods (i.e. file-based and stream-based) via
which the consumer(s) can receive the Measurements. This attribute
is used for the stream-based delivery method.";
which the consumer(s) can receive the Measurements or KPIs. This
attribute is used for the stream-based delivery method.";
}
leaf streamBasedGP {
......@@ -295,7 +346,7 @@ module _3gpp-common-measurements {
type uint32 ;
units second;
description "Defines the frequency of producing and sending the