1 module org-openroadm-pm {
2 namespace "http://org/openroadm/pm";
3 prefix org-openroadm-pm;
5 import ietf-yang-types {
7 revision-date 2013-07-15;
9 import org-openroadm-common-types {
10 prefix org-openroadm-common-types;
11 revision-date 2020-05-29;
13 import org-openroadm-common-alarm-pm-types {
14 prefix org-openroadm-common-alarm-pm-types;
15 revision-date 2019-11-29;
17 import org-openroadm-resource {
18 prefix org-openroadm-resource;
19 revision-date 2020-05-29;
21 import org-openroadm-resource-types {
22 prefix org-openroadm-resource-types;
23 revision-date 2019-11-29;
25 import org-openroadm-pm-types {
26 prefix org-openroadm-pm-types;
27 revision-date 2020-03-27;
35 "YANG definitions of performance management.
37 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
38 All other rights reserved.
40 Redistribution and use in source and binary forms, with or without modification,
41 are permitted provided that the following conditions are met:
43 * Redistributions of source code must retain the above copyright notice, this
44 list of conditions and the following disclaimer.
45 * Redistributions in binary form must reproduce the above copyright notice,
46 this list of conditions and the following disclaimer in the documentation and/or
47 other materials provided with the distribution.
48 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
49 contributors may be used to endorse or promote products derived from this software
50 without specific prior written permission.
52 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
53 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
54 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
55 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
56 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
57 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
58 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
59 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
60 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
61 POSSIBILITY OF SUCH DAMAGE";
103 revision 2017-12-15 {
107 revision 2017-09-29 {
111 revision 2017-07-28 {
113 "Version 2.0.1 - added revision-date to imports";
115 revision 2017-06-26 {
119 revision 2016-10-14 {
124 feature historical-pm-retrieval {
126 "The device supports the ability to directly retrieve the historical
127 PM data from the YANG model.";
130 grouping current-pm-group {
132 "PM Data with current values - both realtime (granularity=notApplicable)
133 and binned (granularity=15 minute, 24h))";
134 leaf pm-resource-instance {
135 type instance-identifier;
139 "Retrieves all PM associate with the resource instance";
141 leaf pm-resource-type {
142 type org-openroadm-resource-types:resource-type-enum;
146 "The supported pm-resource-type associated with the given resource instance.";
148 leaf pm-resource-type-extension {
152 "The resource type extension when the type is not defined in the resource-type-enum.";
155 type yang:date-and-time;
159 "Represents the start time of the bin (15m, 24h granularity) or the start of data collection (notApplicable/untimed granularity).";
161 leaf retrieval-time {
162 type yang:date-and-time;
166 "Represents the time when the data is being read, not the bin start or end time.";
169 key "type extension location direction";
171 uses current-pm-val-group;
175 grouping current-pm-val-group {
176 uses org-openroadm-pm-types:pm-names;
178 type org-openroadm-common-alarm-pm-types:location;
181 type org-openroadm-common-alarm-pm-types:direction;
186 type org-openroadm-pm-types:pm-granularity;
188 uses org-openroadm-pm-types:pm-measurement;
192 grouping historical-pm-group {
194 "PM Data with historical values - binned (granularity=15 minute, 24h))";
195 leaf pm-resource-instance {
196 type instance-identifier;
200 "Retrieves all PM associate with the resource instance";
202 leaf pm-resource-type {
203 type org-openroadm-resource-types:resource-type-enum;
207 leaf pm-resource-type-extension {
211 "The resource type extension when the type is not defined in the resource-type-enum.";
214 key "type extension location direction";
215 uses historical-pm-val-group;
219 grouping historical-pm-val-group {
221 "PM Data with historical values";
222 uses org-openroadm-pm-types:pm-names;
224 type org-openroadm-common-alarm-pm-types:location;
227 type org-openroadm-common-alarm-pm-types:direction;
230 key "granularity bin-number";
232 type org-openroadm-pm-types:pm-granularity;
242 uses org-openroadm-pm-types:pm-measurement;
243 leaf completion-time {
244 type yang:date-and-time;
248 "The time at the end of the period; For example if bin starts at
249 01:15:00 and ends at 01:29:59, the completion-time is 01:29:59";
254 grouping collect-history-pm-group {
261 "The file name to write the historical PM data.
262 The controller should be able to use this name to retrieve the file via ftp/sftp.
263 The file name should be unique for each RPC request since a new RPC request
264 could be initiated while the file transfer of the previous file is still in progress.
266 The file content should be written in xml format based on the historical-pm-list
267 yang definition and the file should be gzip compressed.";
269 uses org-openroadm-common-types:rpc-response-status;
274 "Command to initialize PM data";
276 uses org-openroadm-resource:resource;
289 type org-openroadm-pm-types:pm-granularity;
294 uses org-openroadm-common-types:rpc-response-status;
298 rpc collect-historical-pm-file {
300 "Command to query historical PM data.
301 The device should be able to process an rpc request for 15min data
302 and a separate request for 24hour data in parallel.";
304 leaf from-bin-number {
310 "The start bin-number of the range";
318 "The end bin-number of the range";
321 type org-openroadm-pm-types:pm-granularity;
324 "The granularity of the retrieve, default to 15 minutes PM";
328 uses collect-history-pm-group;
332 notification historical-pm-collect-result {
334 "This Notification is sent when the pm collection is successful or failed.";
335 uses collect-history-pm-group;
338 container current-pm-list {
341 "List of current PMs.";
342 list current-pm-entry {
343 key "pm-resource-type pm-resource-type-extension pm-resource-instance";
345 "List of current PM entries";
346 uses current-pm-group;
349 container historical-pm-list {
350 if-feature "historical-pm-retrieval";
353 "List of historical PM";
354 list historical-pm-entry {
355 key "pm-resource-type pm-resource-type-extension pm-resource-instance";
357 "List of historical PM entries";
358 uses historical-pm-group;