blob: 5fc21de9c7d4b5def21ca0116b55f69e349162b4 [file] [log] [blame]
Jeff Groom34c28ce2018-04-26 19:42:18 -06001module ciena-waveserver-module {
2 namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-module";
3 prefix mod;
4
5 import ciena-waveserver-typedefs {
6 prefix cienawstypes;
7 }
8 import ciena-waveserver-chassis {
9 prefix ciena-ws-chassis;
10 }
11 import ciena-waveserver-xcvr {
12 prefix xcvr;
13 }
14
15 organization
16 "Ciena Corporation";
17 contact
18 "Web URL: http://www.ciena.com/
19 Postal: 7035 Ridge Road
20 Hanover, Maryland 21076
21 U.S.A.
22 Phone: +1 800-921-1144
23 Fax: +1 410-694-5750";
24 description
25 "This module defines Module data for the Waveserver Platform.";
26
27 revision 2017-12-12 {
28 description
29 "Added 'cmd-4' module type support.
30 Renamed 'faulted' operational-state to 'fault' and add 'down' state.
31 Renamed 'motr-8x100' enum to 'motr-100-2'.";
32 reference "Waveserver Ai user's guide.";
33 }
34 revision 2017-09-05 {
35 description
36 "Waveserver Platform Data Model
37 Initial revision.";
38 reference "Waveserver Ai user's guide.";
39 }
40
41 typedef module-type {
42 type enumeration {
43 enum "unknown" {
44 description
45 "Unknown module type.";
46 }
47 enum "filler" {
48 description
49 "Filler card. Operational only, cannot be used for user create.";
50 }
51 enum "motr-100-2" {
52 description
53 "MOTR service module with 2 WaveLogic Ai line ports and 8 100G capable client ports.";
54 }
55 enum "cmd-4" {
56 description
57 "CMD-4 passive photonics module.";
58 }
59 }
60 description
61 "Module type.";
62 }
63
64 typedef module-operational-state {
65 type enumeration {
66 enum "unequipped" {
67 value 0;
68 description
69 "Module is not detected.";
70 }
71 enum "deprovisioned" {
72 value 1;
73 description
74 "Module is detected but uninitialized.";
75 }
76 enum "initializing" {
77 value 2;
78 description
79 "Module initialization started.";
80 }
81 enum "up" {
82 value 3;
83 description
84 "Module is up/operational.";
85 }
86 enum "fault" {
87 value 4;
88 description
89 "Module is faulted.";
90 }
91 enum "shutdown" {
92 value 5;
93 description
94 "Module is shutdown/powered off.";
95 }
96 enum "shutting-down" {
97 value 6;
98 description
99 "Module is shutting down.";
100 }
101 enum "unsupported" {
102 value 7;
103 description
104 "Module type is not supported.";
105 }
106 enum "mismatched" {
107 value 8;
108 description
109 "Detected module type does not match provisioned module type.";
110 }
111 enum "down" {
112 value 9;
113 description
114 "Module is down/disabled.";
115 }
116 }
117 description
118 "Module operational state.";
119 }
120
121 container waveserver-modules {
122 description
123 "Waveserver service module configuration data and operational data.";
124 list modules {
125 key "module-id";
126 description
127 "Module list.";
128 leaf module-id {
129 type cienawstypes:name-string;
130 mandatory true;
131 description
132 "Unique access identifier string of the Module, which may just be a slot number (e.g. '1'). Key value for the Module list. Read-only attribute.";
133 }
134 container id {
135 description
136 "ID information of this Module instance.";
137 leaf type {
138 type module-type;
139 mandatory true;
140 description
141 "The service module type. Must be specified on creation, and cannot be modified.";
142 }
143 leaf label {
144 type cienawstypes:description-string;
145 description
146 "The user-specified label string for this module.";
147 }
148 uses ciena-ws-chassis:device-id-group;
149 }
150 container state {
151 description
152 "State information of this Module instance.";
153 leaf admin-state {
154 type cienawstypes:enabled-disabled-enum;
155 description
156 "Whether Admin State is enabled or disabled for this Module.";
157 }
158 leaf operational-state {
159 type module-operational-state;
160 config false;
161 description
162 "Operational state of this Module.";
163 }
164 leaf last-restart {
165 type cienawstypes:string-maxl-32;
166 config false;
167 description
168 "The date and time of last restart in the format of a human readable string. e.g 'Wed Jun 30 21:49:08 2015', or 'N/A' if unavailable.";
169 }
170 leaf last-restart-reason {
171 type cienawstypes:restart-reason;
172 config false;
173 description
174 "Cause for the last restart.";
175 }
176 leaf uptime {
177 type cienawstypes:string-maxl-32;
178 config false;
179 description
180 "The time since last restart of the module, in the format of a human readable string. e.g '041d 11h 29m 53s', or 'N/A' if unavailable.";
181 }
182 }
183 container subcomponents {
184 config false;
185 description
186 "Module subcomponent (XCVR) references.";
187 leaf-list xcvrs {
188 type leafref {
189 path "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:xcvr-id";
190 }
191 description
192 "Module subcomponent (XCVR) reference list.";
193 }
194 }
195 }
196 }
197 rpc waveserver-module-restart {
198 description
199 "Initiates a module warm restart.";
200 input {
201 leaf module-id {
202 type cienawstypes:name-string;
203 mandatory true;
204 description
205 "Unique Module ID string.";
206 }
207 }
208 }
209 rpc waveserver-module-restart-cold {
210 description
211 "Initiates a module cold restart.";
212 input {
213 leaf module-id {
214 type cienawstypes:name-string;
215 mandatory true;
216 description
217 "Unique Module ID string.";
218 }
219 }
220 }
221}