diff --git a/yang-models/_3gpp-common-filemanagement.yang b/yang-models/_3gpp-common-filemanagement.yang index b2c76e85e0d610626211a4637299fee8d8bf0fd4..34c6d9ae6c4168fa6ad6f585f24c07873eb83d8e 100644 --- a/yang-models/_3gpp-common-filemanagement.yang +++ b/yang-models/_3gpp-common-filemanagement.yang @@ -6,6 +6,7 @@ module _3gpp-common-filemanagement { import _3gpp-common-subnetwork { prefix subnet3gpp; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-common-yang-types { prefix yang3gpp; } + import _3gpp-common-yang-extensions { prefix yext3gpp; } import _3gpp-common-managed-element { prefix me3gpp; } organization "3GPP SA5"; @@ -14,6 +15,7 @@ module _3gpp-common-filemanagement { Class (IOC) that is part of the Generic Network Resource Model (NRM)."; reference "3GPP TS 28.623 Generic Network Resource Model (NRM)"; + revision 2022-10-31 { reference CR-0195; } revision 2022-02-10 { reference "Initial revision, S5-221757"; } grouping FileDownloadProcessMonitor { @@ -50,11 +52,13 @@ module _3gpp-common-filemanagement { allowedValues: File URI (See RFC 8089)"; mandatory true; type string; + yext3gpp:notNotifyable; } leaf notificationRecipientAddress { description "Address of the notification recipient."; type string; + yext3gpp:notNotifyable; } leaf cancelJob { diff --git a/yang-models/_3gpp-common-fm.yang b/yang-models/_3gpp-common-fm.yang index 1399a086f6524651ae881b78af17a5c673927bf4..0488b43833687e395a3be7cc273b5a63ac0c867d 100755 --- a/yang-models/_3gpp-common-fm.yang +++ b/yang-models/_3gpp-common-fm.yang @@ -6,6 +6,7 @@ module _3gpp-common-fm { import ietf-yang-types { prefix yang; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-common-yang-types { prefix types3gpp; } + import _3gpp-common-yang-extensions { prefix yext3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -22,6 +23,7 @@ module _3gpp-common-fm { Integration Reference Point (IRP); Information Service (IS)"; + revision 2022-10-31 { reference CR-0195; } revision 2021-08-08 { reference "CR-0132"; } revision 2021-06-02 { reference "CR-0130"; } revision 2020-06-03 { reference "CR-0091"; } @@ -107,58 +109,68 @@ module _3gpp-common-fm { type string; mandatory true; description "Identifies the alarmRecord"; + yext3gpp:notNotifyable; } leaf objectInstance { type string; config false ; mandatory true; + yext3gpp:notNotifyable; } leaf notificationId { type int32; config false ; mandatory true; + yext3gpp:notNotifyable; } leaf alarmRaisedTime { type yang:date-and-time ; config false ; + yext3gpp:notNotifyable; } leaf alarmChangedTime { type yang:date-and-time ; config false ; description "not applicable if related alarm has not changed"; + yext3gpp:notNotifyable; } leaf alarmClearedTime { type yang:date-and-time ; config false ; description "not applicable if related alarm was not cleared"; + yext3gpp:notNotifyable; } leaf alarmType { type eventType; config false ; description "General category for the alarm."; + yext3gpp:notNotifyable; } leaf probableCause { type string; config false ; + yext3gpp:notNotifyable; } leaf specificProblem { type string; config false ; reference "ITU-T Recommendation X.733 clause 8.1.2.2."; + yext3gpp:notNotifyable; } leaf perceivedSeverity { type severity-level; description "This is Writable only if producer supports consumer to set perceivedSeverity to CLEARED"; + yext3gpp:notNotifyable; } leaf backedUpStatus { @@ -166,11 +178,13 @@ module _3gpp-common-fm { config false ; description "Indicates if an object (the MonitoredEntity) has a back up. See definition in ITU-T Recommendation X.733 clause 8.1.2.4."; + yext3gpp:notNotifyable; } leaf backUpObject { type string; config false ; + yext3gpp:notNotifyable; } leaf trendIndication { @@ -179,6 +193,7 @@ module _3gpp-common-fm { description "Indicates if some observed condition is getting better, worse, or not changing. "; reference "ITU-T Recommendation X.733 clause 8.1.2.6."; + yext3gpp:notNotifyable; } grouping ThresholdPackGrp { @@ -227,6 +242,7 @@ module _3gpp-common-fm { list thresholdInfo { config false ; uses ThresholdInfoGrp; + yext3gpp:notNotifyable; } leaf stateChangeDefinition { @@ -234,6 +250,7 @@ module _3gpp-common-fm { config false ; description "Indicates MO attribute value changes. See definition in ITU-T Recommendation X.733 clause 8.1.2.11."; + yext3gpp:notNotifyable; } leaf monitoredAttributes { @@ -242,6 +259,7 @@ module _3gpp-common-fm { description "Indicates MO attributes whose value changes are being monitored."; reference "ITU-T Recommendation X.733 clause 8.1.2.11."; + yext3gpp:notNotifyable; } leaf proposedRepairActions { @@ -249,15 +267,18 @@ module _3gpp-common-fm { config false ; description "Indicates proposed repair actions. See definition in ITU-T Recommendation X.733 clause 8.1.2.12."; + yext3gpp:notNotifyable; } leaf additionalText { type string; config false ; + yext3gpp:notNotifyable; } anydata additionalInformation { config false ; + yext3gpp:notNotifyable; } leaf rootCauseIndicator { @@ -269,6 +290,7 @@ module _3gpp-common-fm { 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."; + yext3gpp:notNotifyable; } leaf ackTime { @@ -277,12 +299,14 @@ module _3gpp-common-fm { 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."; + yext3gpp:notNotifyable; } leaf ackUserId { type string; description "It identifies the last user who has changed the Acknowledgement State."; + yext3gpp:notNotifyable; } leaf ackSystemId { @@ -290,6 +314,7 @@ module _3gpp-common-fm { description "It identifies the system (Management System) that last changed the ackState of an alarm, i.e. acknowledged or unacknowledged the alarm."; + yext3gpp:notNotifyable; } leaf ackState { @@ -302,16 +327,19 @@ module _3gpp-common-fm { been acknowledged."; } } + yext3gpp:notNotifyable; } leaf clearUserId { type string; description "Carries the identity of the user who invokes the clearAlarms operation."; + yext3gpp:notNotifyable; } leaf clearSystemId { type string; + yext3gpp:notNotifyable; } leaf serviceUser { @@ -320,6 +348,7 @@ module _3gpp-common-fm { description "It identifies the service-user whose request for service provided by the serviceProvider led to the generation of the security alarm."; + yext3gpp:notNotifyable; } leaf serviceProvider { @@ -328,11 +357,13 @@ module _3gpp-common-fm { description "It identifies the service-provider whose service is requested by the serviceUser and the service request provokes the generation of the security alarm."; + yext3gpp:notNotifyable; } leaf securityAlarmDetector { type string; config false ; + yext3gpp:notNotifyable; } } @@ -361,18 +392,21 @@ module _3gpp-common-fm { config false; mandatory true; description "The number of alarm records in the AlarmList"; + yext3gpp:notNotifyable; } leaf lastModification { type yang:date-and-time ; config false; description "The last time when an alarm record was modified"; + yext3gpp:notNotifyable; } list alarmRecords { key alarmId; description "List of alarmRecords"; uses AlarmRecordGrp; + yext3gpp:notNotifyable; } } diff --git a/yang-models/_3gpp-common-managed-function.yang b/yang-models/_3gpp-common-managed-function.yang index a2bca7e8378a0ca67d0c3b812ffac1550cf2de98..608ced2963e6e5596463e43fe528a4bee7723e89 100755 --- a/yang-models/_3gpp-common-managed-function.yang +++ b/yang-models/_3gpp-common-managed-function.yang @@ -4,6 +4,7 @@ module _3gpp-common-managed-function { prefix mf3gpp; import _3gpp-common-yang-types { prefix types3gpp; } + import _3gpp-common-yang-extensions { prefix yext3gpp; } import _3gpp-common-top { prefix top3gpp; } import _3gpp-common-measurements { prefix meas3gpp; } import _3gpp-common-trace { prefix trace3gpp; } @@ -20,6 +21,7 @@ module _3gpp-common-managed-function { 3GPP TS 28.620 Umbrella Information Model (UIM)"; + revision 2022-10-31 { reference CR-0195; } revision 2022-01-07 { reference "CR-0146"; } revision 2021-01-25 { reference "CR-0122"; } revision 2020-09-30 { reference "CR-bbbb"; } @@ -46,6 +48,7 @@ module _3gpp-common-managed-function { leaf name { type string; mandatory true; + yext3gpp:notNotifyable; } leaf-list allowedNFTypes { @@ -83,6 +86,7 @@ module _3gpp-common-managed-function { type string; description "The type of the managed NF service instance The specifc values allowed are described in clause 7.2 of TS 23.501"; + yext3gpp:notNotifyable; } list sAP { diff --git a/yang-models/_3gpp-common-managementdatacollection.yang b/yang-models/_3gpp-common-managementdatacollection.yang new file mode 100644 index 0000000000000000000000000000000000000000..1d779c639e598121d8b1e6738a861a2f27923679 --- /dev/null +++ b/yang-models/_3gpp-common-managementdatacollection.yang @@ -0,0 +1,265 @@ +module _3gpp-common-managementdatacollection { + yang-version 1.1; + namespace "urn:3gpp:sa5:_3gpp-common-managementdatacollection"; + prefix "mgtdatcol3gpp"; + + import _3gpp-common-top { prefix top3gpp; } + import _3gpp-common-yang-types {prefix types3gpp; } + //import ietf-inet-types { prefix inet; } + import ietf-yang-types { prefix yang; } + import _3gpp-common-subnetwork { prefix subnet3gpp; } + + organization "3GPP SA5"; + contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; + + description "Handling management data collection"; + + 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 2022-11-03 { reference "CR-0193"; } + + + grouping Tai { + list plmnId { + description "PLMN Identity."; + min-elements 1; + max-elements 1; + key "mcc mnc"; + uses types3gpp:PLMNId; + } + + leaf tac { type types3gpp:Tac; } + } + + + grouping NodeFilterGrp { + + list areaOfInterest { + key idx; + leaf idx { + type string; + } + uses Tai; // (Maybe type: types3gpp:Tai,if we define Tai there.) + // mandatory false + min-elements 1; + description "It specifies a location(s) from where the management data + shall be collected. It is defined in terms of TAI(s)."; + } + + leaf networkDomain { + type enumeration { + enum CN; + enum RAN; + } + // mandatory false + description "It specifies the network domain of the target node. This + will also result in collecting appropriate management data from the + nodes belonging to the specified domain."; + } + + leaf cpUpType { + type enumeration { + enum CP; + enum UP; + } + // mandatory false + description "It specifies the traffic type of the target node. This will + also result in collecting appropriate management data from the nodes + handling the specified traffic (e.g AMF for CP and UPF for UP)."; + } + + leaf sst { + type uint8; // TS 28.003 clause 28.4. + //mandatory false; + description "It specifies the slice service type (SST) of which the slice + subnet should be targeted. Please refer to 3GPP TS 23.501: 'System + Architecture for the 5G System'"; + } + } + + typedef mgtDataCategoryType { + type enumeration { + enum COVERAGE; + enum CAPACITY; + enum ENERGY_EFFICIENCY; + enum MOBILITY; + enum ACCESSIBILITY; + } + description ""; + } + + grouping TimeWindowGrp { + leaf startTime { + type yang:date-and-time; + } + leaf endTime { + type yang:date-and-time; + } + } + + + grouping ManagementDataCollectionGrp { + + choice managementData { + case mgtDataCategory { + leaf-list category { + type mgtDataCategoryType; + min-elements 1; + max-elements 5; // The ENUM contains 5 possible values + description "This attributes defines the type of management data that + are requested. + + Allowed values for data category are COVERAGE, CAPACITY, + ENERGY_EFFICIENCY, MOBILITY, ACCESSIBILITY. The data categories + will map to certain measurement families defined in TS 28.552, see + below. In addition to the below mappings, MnS producer may map the + provided categories to any additional proprietary management data, + as appropriate. + + - The COVERAGE category will map to measurement families of MR + (measurements related to Measurement Report) and L1M (measurements + related to Layer 1 Measurement). + + - The CAPACITY category will map to measurement family RRU + (measurements related to Radio Resource Utilization). + + - The ENERGY_EFFICIENCY category will map to measurement family PEE + (measurements related to Power, Energy and Environment). + + - The MOBILITY category will map to measurement family MM + (measurements related to Mobility Management). + + - The ACCESSIBILITY category will map to measurement family CE + (measurements related to Connection Establishment)."; + } + } + case mgtDataName { + leaf-list name { + type string; + min-elements 1; + description "The list may include metrics or set of metrics defined + in TS 28.552, TS 28.554 and TS 32.422. + + The metrics are identified with their names/identifiers. + For performance measurements defined in TS 28.552 the name is + constructed as follows: + - 'family.measurementName.subcounter' for measurement types with + subcounters + - 'family.measurementName' for measurement types without + subcounters + - 'family' for measurement families + + For KPIs defined in TS 28.554 the name is defined according to the + KPI definitions template as the component designated with a). + + For trace metrics (including trace messages, MDT measurements + (Immediate MDT, Logged MDT, Logged MBSFN MDT), RLF and RCEF + reports) defined in TS 32.422, the name (metric identifier) is + defined in clause 10 of TS 32.422."; + } + } + mandatory true; + } + + list targetNodeFilter { + key idx; + leaf idx { + type string; + } + min-elements 1; + description "Set of information to target the Object Instance to collect + the measurements from."; + uses NodeFilterGrp; + } + + list collectionTimeWindow { + key "startTime endTime"; + max-elements 1; + description "Collection time window for which the management data + should be reported."; + uses TimeWindowGrp; + } + + list reportingCtrl { + key idx; + leaf idx { + type string; + } + min-elements 1; + max-elements 1; + uses types3gpp:ReportingCtrl; + description "Selecting the reporting method and defining associated + control parameters."; + } + + leaf dataScope { + type enumeration { + enum SNSSAI; + enum 5QI; + } + // mandatory false; [Implicit] + description "It specifies whether the required data is reported per + S-NSSAI or per 5QI."; + } + } + + augment /subnet3gpp:SubNetwork { + + list ManagementDataCollection { + key id; + uses top3gpp:Top_Grp ; + container attributes { + uses ManagementDataCollectionGrp; + } + description "This IOC represents a management data collection request + job. The requested data could be of kind Trace, MDT (Minimization + of Drive Test), RLF (Radio Link Failure) report, RCEF (RRC Connection + Establishment Failure) report, PM (performance measurements), KPI + (end-to-end key performance indicators) or a combination of these. + + The attribute 'managementData' defines the management data which shall + be reported. This may either include a list of data categories or a + list of management data identified with their name. For further details + see TS 28.622 clause 4.3.50. The 'targetNodeFilter' attribute can be + used to target object instance(s) producing the required management + data. It is assumed that the consumer may not have detailed knowledge + of the network and hence may not identify the exact object instance + producing the required management data. In this case consumer can + request management data, specified by 3GPP, produced by certain network + function(s) based on a particular location, the domain (CN or RAN) of + the network function, and the handled traffic (CP or UP) of the network + function. + + To activate the production of the requested data, a MnS consumer has to + create a 'ManagementDataCollection' object instance on the MnS producer. + + The MnS producer will derive multiple jobs ('PerfMetricJob', + 'TraceJob') from a single 'ManagementDataCollection' job for collecting + the required management data. Once it receives the measurement from + multiple sources, it consolidates the data into a set of management data + for reporting. + + The attribute 'collectionTimeWindow' specifies the time window for which + the management data should be reported. + + The attribute 'reportingCtrl' specifies the method and associated + control parameters for reporting the produced management data to MnS + consumers. Three methods are available: file-based reporting with + selection of the file location by the MnS producer, file-based + reporting with selection of the file location by the MnS consumer and + stream-based reporting. + + The attribute 'dataScope' configures, whether the management data + should be reported per S-NSSAI or per 5QI, if applicable."; + } + } + +} diff --git a/yang-models/_3gpp-common-measurements.yang b/yang-models/_3gpp-common-measurements.yang index 96893e6c393426eef89f311c6b2c8e53c1fa8487..793965106a3d5a30dcf1873bb49637a2e3faf95b 100755 --- a/yang-models/_3gpp-common-measurements.yang +++ b/yang-models/_3gpp-common-measurements.yang @@ -5,6 +5,7 @@ module _3gpp-common-measurements { import _3gpp-common-top { prefix top3gpp; } import _3gpp-common-yang-types { prefix types3gpp; } + import _3gpp-common-yang-extensions { prefix yext3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -53,6 +54,8 @@ module _3gpp-common-measurements { Integration Reference Point (IRP); Information Service (IS)"; + revision 2022-11-03 { reference "CR-0193"; } + revision 2022-10-31 { reference CR-0195; } revision 2021-07-22 { reference "CR-0137"; } revision 2020-11-06 { reference "CR-0118"; } revision 2020-09-04 { reference "CR-000107"; } @@ -273,62 +276,12 @@ module _3gpp-common-measurements { contains the root object and all descendant objects."; } - choice reportingCtrl { - mandatory true; - description "This choice defines the method for reporting collected - performance metrics to MnS consumers as well as the parameters for - configuring the reporting function. It is a choice between the control - parameter required for the reporting methods, whose presence selects - the reporting method as follows: - - When only the fileReportingPeriod attribute is present, the MnS - producer shall store files on the MnS producer at a location selected - by the MnS producer and inform the MnS consumer about the availability - of new files and the file location using the notifyFileReady - notification. - - When only the fileReportingPeriod and fileLocation attributes are - present, the MnS producer shall store the files on the MnS consumer at - the location specified by fileLocation. No notification is emitted by - the MnS producer. - - When only the streamTarget attribute is present, the MnS producer - shall stream the data to the location specified by streamTarget. - - For the file-based reporting methods the fileReportingPeriod attribute - specifies the time window during which collected measurements are stored - into the same file before the file is closed and a new file is opened."; - - case file-based-reporting { - leaf fileReportingPeriod { - type uint32 { - range 1..max; - } - units minutes; + uses types3gpp:ReportingCtrl { + refine "reportingCtrl/file-based-reporting/fileReportingPeriod" { must '(number(.)*"60") mod number(../granularityPeriod) = "0"' { error-message "The time-period must be a multiple of the granularityPeriod."; } - mandatory true; - description "For the file-based reporting method this is the time - window during which collected measurements are stored into the same - file before the file is closed and a new file is opened. - The time-period must be a multiple of the granularityPeriod. - - Applicable when the file-based reporting method is supported"; - } - - leaf fileLocation { - type string ; - description "Applicable and must be present when the file-based - reporting method is supported, and the files are stored on the MnS - consumer."; - } - } - case stream-based-reporting { - leaf streamTarget { - type string; - mandatory true; - description "Applicable when stream-based reporting method is - supported."; - } } } } @@ -371,12 +324,14 @@ module _3gpp-common-measurements { leaf-list objectInstances { type types3gpp:DistinguishedName; + yext3gpp:notNotifyable; } leaf-list rootObjectInstances { type types3gpp:DistinguishedName; description "Each object instance designates the root of a subtree that contains the root object and all descendant objects."; + yext3gpp:notNotifyable; } } diff --git a/yang-models/_3gpp-common-subscription-control.yang b/yang-models/_3gpp-common-subscription-control.yang index 25bde6927d08e51784ebcf38167c8ebcb7e36419..6594d185747e8e5e92baeed9506b79337c5f73a1 100755 --- a/yang-models/_3gpp-common-subscription-control.yang +++ b/yang-models/_3gpp-common-subscription-control.yang @@ -3,6 +3,7 @@ module _3gpp-common-subscription-control { namespace "urn:3gpp:sa5:_3gpp-common-subscription-control"; prefix "subscr3gpp"; + import _3gpp-common-yang-extensions { prefix yext3gpp; } import _3gpp-common-top { prefix top3gpp; } organization "3GPP SA5"; @@ -15,6 +16,7 @@ module _3gpp-common-subscription-control { Solution Set (SS) definitions 3GPP TS 28.623"; + revision 2022-10-31 { reference CR-0195; } revision 2021-01-16 { reference "CR-0120"; } revision 2020-08-26 { reference "CR-0106"; } revision 2019-11-29 { reference "S5-197648 S5-197647 S5-197829 S5-197828"; } @@ -90,8 +92,7 @@ module _3gpp-common-subscription-control { } grouping HeartbeatControlGrp { - description "Attributes of HeartbeatControl. Note the triggerHeartbeatNtf - attribute has no mapping in the present release."; + description "Attributes of HeartbeatControl."; leaf heartbeatNtfPeriod { type uint32; @@ -101,6 +102,20 @@ module _3gpp-common-subscription-control { The value of zero has the special meaning of stopping the heartbeat notification emission."; } + + leaf triggerHeartbeatNtf { + type boolean; + default false; + description "Setting this attribute to 'true' triggers an immediate + additional heartbeat notification emission. Setting the value to + 'false' has no observable result. + + The periodicity of notifyHeartbeat emission is not changed. + + After triggering the heartbeat the system SHALL set the value + back to false."; + yext3gpp:notNotifyable; + } } grouping SubscriptionControlSubtree { diff --git a/yang-models/_3gpp-common-yang-extensions.yang b/yang-models/_3gpp-common-yang-extensions.yang index 9bc0a82be8cb514da33f2b79e3ec972509342cb1..fe703ee2ba215e74fdc2edcd8c4b02b86f7c3958 100755 --- a/yang-models/_3gpp-common-yang-extensions.yang +++ b/yang-models/_3gpp-common-yang-extensions.yang @@ -40,8 +40,26 @@ module _3gpp-common-yang-extensions { the extension e.g. with a deviation. "; - revision "2019-06-23" { - description "Initial version"; + revision 2022-10-31 { reference CR-0195; } + revision 2019-06-23 { reference "Initial version"; } + + extension notNotifyable { + description + "Indicates that data change notifications shall not be sent + for this attribute. If the extension is not present and other + conditions are fulfilled data change notification should be sent. + If a list or container already has the notNotifyable + extension, that is also valid for all contained data nodes. + + The statement MUST only be a substatement of a leaf, leaf-list, list, + container statement that is contained within the 'attributes' + container of an IOC and that represents an attribute or sub-parts of + an attribute . + + Zero or one notNotifyable statement is allowed per parent statement. + NO substatements are allowed. + + Adding this statement is an NBC change, removing it is BC."; } extension inVariant { diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 0986cdefc8c37198f54cce746dd44ef36197bc6b..f24b0c83a2932d469c28f8ffcc3a00e77df1fbcb 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -5,6 +5,7 @@ module _3gpp-common-yang-types { import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } + import _3gpp-common-yang-extensions { prefix yext3gpp; } organization "3GPP SA5"; contact "https://www.3gpp.org/DynaReport/TSG-WG--S5--officials.htm?Itemid=464"; @@ -13,6 +14,8 @@ module _3gpp-common-yang-types { network slicing."; reference "3GPP TS 28.623"; + revision 2022-11-03 { reference "CR-0193"; } + revision 2022-10-31 { reference CR-0195; } revision 2022-07-26 { reference CR-0180 ; } revision 2022-02-09 { reference "CR-0144"; } revision 2021-11-01 { reference "CR-0141"; } @@ -210,6 +213,7 @@ module _3gpp-common-yang-types { Once the timer is set, the consumer can not change it anymore. If the consumer has not set the timer the MnS Producer may set it."; + yext3gpp:notNotifyable; } } @@ -737,4 +741,102 @@ module _3gpp-common-yang-types { } units dB; } + + grouping ReportingCtrl { + choice reportingCtrl { + mandatory true; + description " + This choice defines the method for reporting collected performance + metrics to MnS consumers as well as the parameters for configuring the + reporting function. It is a choice between the control parameter + required for the reporting methods, whose presence selects the + reporting method as follows: + + - When only the fileReportingPeriod attribute is present, the MnS + producer shall store files on the MnS producer at a location selected + by the MnS producer and, on condition that an appropriate subscription + is in place, inform the MnS consumer about the availability of new + files and the file location using the notifyFileReady notification. + In case the preparation of a file fails, 'notifyFilePreparationError' + shall be sent instead. + + - When the 'fileReportingPeriod' and 'notificationRecipientAddress' + attributes are present, then the MnS producer shall behave like + described for the case that only the 'fileReportingPeriod' is present. + In addition, the MnS producer shall create on behalf of the MnS + consumer a subscription, using 'NtfSubscriptionControl', for the + notification types 'notifyMOICreation' and 'notifyMOIDeletion' related + to the 'File' instances that will be produced later. In case an existing + subscription does already include the 'File' instances to be produced, + no new subscription shall be created. The + 'notificationRecipientAddress' attribute in the created + 'NtfSubscriptionControl' instance shall be set to the value of the + 'notificationRecipientAddress' in the related 'PerfMetricJob'. This + feature is called implicit notification subscription, as opposed to the + case where the MnS consumer creates the subscription (explicit + notification subscription). When the related 'PerfMetricJob' is + deleted, the 'NtfSubscriptionControl' instance created due to the + request for implicit subscription shall be deleted as well. + + - When only the fileReportingPeriod and fileLocation attributes are + present, the MnS producer shall store the files on a MnS consumer, that + can be any entity such as a file server, at the location specified by + fileLocation. No notification is emitted by the MnS producer. + + - When only the streamTarget attribute is present, the MnS producer + shall stream the data to the location specified by streamTarget. + + For the file-based reporting methods the fileReportingPeriod attribute + specifies the time window during which collected measurements are + stored into the same file before the file is closed and a new file is + opened."; + + case file-based-reporting { + leaf fileReportingPeriod { + type uint32 { + range 1..max; + } + units minutes; + mandatory true; + description "For the file-based reporting method this is the time + window during which collected measurements are stored into the same + file before the file is closed and a new file is opened. + The time-period must be a multiple of the granularityPeriod. + + Applicable when the file-based reporting method is supported."; + } + choice reporting-target { + case file-target { + leaf fileLocation { + type string ; + description "Applicable and must be present when the file-based + reporting method is supported, and the files are stored on the MnS + consumer."; + } + } + case notification-target { + leaf notificationRecipientAddress { + type string; + description "Must be present when the notification-based reporting + method is supported, and the the files are available as + notifications for the MnS consumer to subscribe to."; + } + } + description "When netiher fileLocation or notificationRecipientAddress + are present, the files are stored and available to the MnS consumer + if the MnS subscribes to the notifyFileReady notification."; + } + } + + case stream-based-reporting { + leaf streamTarget { + type string; + mandatory true; + description "Applicable when stream-based reporting method is + supported."; + } + } + + } + } } \ No newline at end of file