Internet-Draft | Performance Monitoring YANG | October 2022 |
Yu | Expires 27 April 2023 | [Page] |
This document defines a YANG data model for performance Monitoring in optical networks which provides the functionalities of performance monitoring task management, TCA (Threshold Crossing Alert) configuration and performance data retrieval.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 27 April 2023.¶
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Performance monitoring is a basic function of optical networks management. With it, operators can proactively detect the running state of devices, identify major risks in advanced and avoid users' complaints.¶
As before, TMF has defined interfaces for performance management through traditional protocols, such as CORBA and MTOSI. With the development of SDN technologies and the using of RESTCONF interfaces, it becomes a widespread requirement to use RESTCONF protocol to support performance monitoring.¶
Using RESTCONF does not mean changing existing performance monitoring requirements or scenarios. On the contrary, since O&M is very important, many operators' O&M departments tend to be conservative. They are fear of introducing issues into their network due to the protocol changes and O&M habits changes. Therefore, our document prefers to use the new protocol to support legacy functionality.¶
Traditional performance management involves control of performance monitoring, setting collectors on monitored objects, and obtaining performance data in different periods. The data can be real-time data on devices, quasi-real-time data processed by domain controllers, and historical performance data. TCA can be also configured by performance monitoring tasks.¶
The explanation of performance monitoring indicator would also be an important part of this document, especially the missing optical-specific indicators of TMF.¶
Currently, there are some existing documents related to performance monitoring in IETF, but there is no overlap with our current work. For example:¶
[I-D.ietf-teas-actn-pm-telemetry-autonomics] provides a YANG data model that describes performance monitoring and scaling intent mechanisms for TE-Tunnels and Virtual Networks(VNs). VN is determinate to be used in CMI (CNC-MDSC Interface) level and TE tunnel is more service or connection related. Our data model is proposed to be used in MPI (MDSC-PNC Interface) level and performance monitoring is performed on physical network resources, such as network element, board, fiber, port or ODUk channels, which are not included in [I-D.ietf-teas-actn-pm-telemetry-autonomics].¶
[I-D.ietf-opsawg-yang-vpn-service-pm] defines a YANG data model for performance monitoring of both network topology layer and overlay VPN service topology layer. VPN service is more IP-specific and not adopted in Optical domain. And the data model in this document is augmenting network model. If the client wants to retrieve performance data of a link by RESTCONF, the URL would be probably same with the URL of topology retrieval. This may need some special mechanisms to make the client and server differentiate the using scenarios. This is not quite compliance with the O&M habits of Optical technology.¶
[I-D.zheng-ccamp-client-pm-yang] provides a performance monitoring YANG data model on client signal level. It is also not operated on resource level which is not compliance with the existing O&M habits. This performance monitoring solution is more user-oriented and can be used for more automatic O&M scenarios in the future. However, although there is no complete closed-loop O&M solution at the service layer and is not accepted by all operators' O&M departments, resource-based performance monitoring is still required.¶
The YANG data model defined in this document conforms to the Network Management Datastore Architecture (NMDA).¶
Refer to [RFC7446] and [RFC7581] for the key terms used in this document. The following terms are defined in [RFC7950] and are not redefined here:¶
The following terms are defined in [RFC6241] and are not redefined here:¶
The following terms are defined in [RFC8454] and are not redefined here:¶
//To Be Added: some explanation of performance indicator¶
A simplified graphical representation of the data model is used in Section 3 of this document. The meaning of the symbols in these diagrams are defined in [RFC8340].¶
In this document, names of data nodes and other data model objects are prefixed using the standard prefix associated with the corresponding YANG imported modules, as shown in the following table.¶
Prefix | Yang Module | Reference |
---|---|---|
pm | ietf-performance-monitoring | RFCXXXX |
pm-types | ietf-performance-monitoring-types | RFCXXXX |
yang | ietf-yang-types | [RFC6991] |
RFC Editor Note: Please replace XXXX with the RFC number assigned to this document.¶
According to the business requirements stated in [TMF-518], resource performance management requirements include:¶
For these requirements of PM, there are three group of interfaces are defined in TMF, including PerformanceManagementControl, PerformanceManagementRetrieval and ThresholdCrossingAlertControlm.¶
The functionalities of this group of interfaces are:¶
The functionalities of this group of interfaces are:¶
The functionalities of this group of interfaces are:¶
//To Be Added¶
module: ietf-performance-monitoring +--rw monitor-tasks +--rw monitor-task* [resource] +--rw resource union +--rw resource-type? identityref +--rw task-name? string +--ro task-status? enumeration +--rw task-cfg +--rw period? identityref +--rw indicators +--rw indicator* [indicator-name] +--rw indicator-name string +--rw tca rpcs: +---x get-all-current-pm-data | +--ro input | | +--ro resources* leafref | +--ro output | +--ro pm-data | +--ro pm-data-list* [resource] | +--ro resource leafref | +--ro collect-time? yang:date-and-time | +--ro resource-type? identityref | +--ro indicator-data | +--ro indicator-data-list* [indicator-name] | +--ro indicator-name string | +--ro indicator-value? string | +--ro indicator-value-unit? string +---x get-history-pm-data +--ro input | +--ro resources* leafref | +--ro start-time? yang:date-and-time | +--ro end-time? yang:date-and-time +--ro output +--ro pm-data +--ro pm-data-list* [resource] +--ro resource leafref +--ro collect-time? yang:date-and-time +--ro resource-type? identityref +--ro indicator-data +--ro indicator-data-list* [indicator-name] +--ro indicator-name string +--ro indicator-value? string +--ro indicator-value-unit? string
<CODE BEGINS> file "ietf-performance-monitoring@2022-10-24.yang" module ietf-performance-monitoring { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-performance-monitoring"; prefix pm; import ietf-yang-types { prefix "yang"; } import ietf-performance-monitoring-types { prefix "pm-types"; } organization "IETF CCAMP Working Group"; contact "WG Web: <https://datatracker.ietf.org/wg/ccamp/> WG List: <mailto:ccamp@ietf.org> Editor: Chaode Yu <yuchaode@huawei.com>"; description "This module defines a model for optical performance monitoring. The model fully conforms to the Network Management Datastore Architecture (NMDA). Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; revision 2022-10-24 { description "Initial revision."; reference "draft-yu-performance-monitoring-yang-00"; } container monitor-tasks { description "the root node."; list monitor-task { key resource; description "monitoring task list"; uses task-instance-grouping; } } grouping task-instance-grouping { description "none"; leaf resource { type union { type instance-identifier { require-instance false; } type yang:object-identifier; type string; type yang:uuid; } description "the identifier of network resource which is monitored."; } leaf resource-type { type identityref { base pm-types:resource-type; } description "the type of resource, such as NE, board or port"; } leaf task-name { type string; description "the name of monitoring task"; } leaf task-status { type enumeration { enum running; enum suspended; enum abnormal; } config false; description "the status of monitoring task."; } uses task-configuration-grouping; } grouping task-configuration-grouping { description "none"; container task-cfg { description "Configuration of the monitoring task"; leaf period { type identityref { base pm-types:period; } description "this period is used to indicate how long is the monitoring task"; } container indicators { description "performance indicators"; list indicator { key indicator-name; description "none"; uses indicator-grouping; } } } } grouping indicator-grouping { description "none"; leaf indicator-name { type string; description "performance indicator's name"; } container tca { //TO BE ADDED description "configuration of TCA"; } } rpc get-all-current-pm-data { description "This RPC is used to retrieve current PM data."; input { leaf-list resources { type leafref { path "/pm:monitor-tasks/pm:monitor-task/pm:resource"; } description "resouces' identifier"; } } output { container pm-data { description "none"; list pm-data-list { key resource; description "none"; uses pm-data-instance-grouping; } } } } rpc get-history-pm-data { description "This RPC is used to retrieve historic PM data."; input { leaf-list resources { type leafref { path "/pm:monitor-tasks/pm:monitor-task/pm:resource"; } description "identifier of resources"; } leaf start-time { type yang:date-and-time; description "the starttime of performance data needed to be retrieved"; } leaf end-time { type yang:date-and-time; description "the endtime of performance data needed to be retrieved"; } } output { container pm-data { description "none"; list pm-data-list { key resource; description "none"; uses pm-data-instance-grouping; } } } } grouping pm-data-instance-grouping { description "none"; leaf resource { type leafref { path "/pm:monitor-tasks/pm:monitor-task/pm:resource"; } description "the identifier of network resource which is monitored."; } leaf collect-time { type yang:date-and-time; description "the time of this data is collected"; } leaf resource-type { type identityref { base pm-types:resource-type; } description "the type of resource, such as NE, board or port"; } container indicator-data { description "none"; list indicator-data-list { key indicator-name; description "none"; uses indicator-data-instance-grouping; } } } grouping indicator-data-instance-grouping { description "none"; leaf indicator-name { type string; description "name of performance data indicator"; } leaf indicator-value { type string; description "value of performance data"; } leaf indicator-value-unit { type string; description "unit of performance data value"; } } } <CODE ENDS>
<CODE BEGINS> file "ietf-performance-monitoring-types@2022-10-24.yang" module ietf-performance-monitoring-types { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-performance-monitoring-types"; prefix pm-types; organization "IETF CCAMP Working Group"; contact "WG Web: <https://datatracker.ietf.org/wg/ccamp/> WG List: <mailto:ccamp@ietf.org> Editor: Chaode Yu <yuchaode@huawei.com>"; description "This module defines types model for optical performance monitoring which will be imported by ietf-performance-monitoring data model. The model fully conforms to the Network Management Datastore Architecture (NMDA). Copyright (c) 2022 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Revised BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; revision 2022-10-24 { description "Initial revision."; reference "draft-yu-performance-monitoring-yang-00"; } identity resource-type { description "this is the base type of all the rerource type"; } identity network-element { base resource-type; description "NE resource type"; } identity board { base resource-type; description "board resource type"; } identity port { base resource-type; description "port resource type"; } identity period { description "this is the base type of all the performace monitoring priod type."; } identity period-15-minutes { base period; description "the during of monitoring task will be repeated at every 15 minutes"; } identity period-24-hours { base period; description "the during of monitoring task will be repeated at every 24 hours"; } } <CODE ENDS>
<Add any manageability considerations>¶
<Add any security considerations>¶
<Add any IANA considerations>¶
This document was prepared using kramdown.¶