1 module org-openroadm-device {
2 namespace "http://org/openroadm/device";
3 prefix org-openroadm-device;
5 import ietf-yang-types {
6 prefix ietf-yang-types;
7 revision-date 2013-07-15;
9 import ietf-inet-types {
10 prefix ietf-inet-types;
11 revision-date 2013-07-15;
15 revision-date 2011-06-01;
17 import org-openroadm-common-types {
18 prefix org-openroadm-common-types;
19 revision-date 2018-10-19;
21 import org-openroadm-resource-types {
22 prefix org-openroadm-resource-types;
23 revision-date 2018-10-19;
25 import org-openroadm-physical-types {
26 prefix org-openroadm-physical-types;
27 revision-date 2018-10-19;
29 import org-openroadm-user-mgmt {
30 prefix org-openroadm-user-mgmt;
31 revision-date 2017-12-15;
33 import org-openroadm-port-types {
34 prefix org-openroadm-port-types;
35 revision-date 2018-10-19;
37 import org-openroadm-interfaces {
38 prefix org-openroadm-interfaces;
39 revision-date 2017-06-26;
41 import org-openroadm-swdl {
42 prefix org-openroadm-swdl;
43 revision-date 2018-10-19;
45 import org-openroadm-equipment-states-types {
46 prefix org-openroadm-equipment-states-types;
47 revision-date 2017-12-15;
49 import org-openroadm-switching-pool-types {
50 prefix org-openroadm-switching-pool-types;
51 revision-date 2017-12-15;
59 "YANG definitions of ROADM device
61 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
62 AT&T Intellectual Property. All other rights reserved.
64 Redistribution and use in source and binary forms, with or without modification,
65 are permitted provided that the following conditions are met:
67 * Redistributions of source code must retain the above copyright notice, this
68 list of conditions and the following disclaimer.
69 * Redistributions in binary form must reproduce the above copyright notice,
70 this list of conditions and the following disclaimer in the documentation and/or
71 other materials provided with the distribution.
72 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
73 contributors may be used to endorse or promote products derived from this software
74 without specific prior written permission.
76 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
77 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
78 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
79 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
80 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
81 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
82 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
83 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
84 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
85 POSSIBILITY OF SUCH DAMAGE.
87 Also contains code components extracted from IETF netconf. These code components
88 are copyrighted and licensed as follows:
90 Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
93 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
94 to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
95 publication of this document. Please review these documents carefully, as they
96 describe your rights and restrictions with respect to this document. Code Components
97 extracted from this document must include Simplified BSD License text as described in
98 Section 4.e of the Trust Legal Provisions and are provided without warranty as
99 described in the Simplified BSD License.";
101 revision 2018-10-19 {
105 revision 2017-12-15 {
109 revision 2017-09-29 {
113 revision 2017-07-28 {
115 "Version 2.0.1 - added revision-date to imports";
117 revision 2017-06-26 {
121 revision 2017-02-06 {
123 "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
125 revision 2016-10-14 {
130 grouping create-tech-info-group {
133 path "/org-openroadm-device/shelves/shelf-name";
141 "The log file name a vendor can specify for a given log collection operation";
145 grouping device-common {
147 type org-openroadm-common-types:node-id-type;
150 "Globally unique identifier for a device.";
155 "Number assigned to a ROADM node at a
159 type org-openroadm-common-types:node-types;
163 "Identifier for node-type e.g Roadm, xponder.
164 Once the node-type is configured, it should not be modified.";
169 "Common Language Location Identifier.";
171 uses org-openroadm-physical-types:node-info;
173 type ietf-inet-types:ip-address;
175 "IP Address of device";
182 "The length of the subnet prefix";
184 leaf defaultGateway {
185 type ietf-inet-types:ip-address;
200 leaf current-ipAddress {
201 type ietf-inet-types:ip-address;
204 "Current IP Address of device";
206 leaf current-prefix-length {
212 "The current length of the subnet prefix";
214 leaf current-defaultGateway {
215 type ietf-inet-types:ip-address;
218 "Current Default Gateway";
221 type ietf-yang-types:mac-address;
224 "MAC Address of device";
226 leaf softwareVersion {
232 leaf openroadm-version {
233 type org-openroadm-common-types:openroadm-version-type;
236 "openroadm version used on the device";
241 "Template information used in the deployment.";
243 leaf current-datetime {
244 type ietf-yang-types:date-and-time;
247 "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
249 container geoLocation {
258 "[From wikipedia] Latitude is an angle (defined below)
259 which ranges from 0 at the Equator to 90 (North or
260 South) at the poles";
268 "[From wikipedia] The longitude is measured as the
269 angle east or west from the Prime Meridian, ranging
270 from 0 at the Prime Meridian to +180 eastward and
278 "slots information. To be populated by NE during retrieval.";
282 "The name of this slot.";
289 leaf provisioned-circuit-pack {
291 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
294 "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
298 enum "empty-not-prov" {
301 "Slot is empty and not provisioned";
303 enum "empty-prov-match" {
306 "Slot is empty and expected type is provisioned";
308 enum "empty-prov-mismatch" {
311 "Slot is empty and an unsupported type is provisioned";
313 enum "installed-not-prov" {
316 "Slot is occupied but not provisioned";
318 enum "installed-prov-match" {
321 "Slot is occupied with matching provisioned type";
323 enum "installed-prov-mismatch" {
326 "Slot is occupied with mismatched provisioned type";
343 "Unique identifier for this shelf within a device";
349 "The shelf type: describe the shelf with a unique string.";
354 "Reflect the shelf physical location data including floor, aisle, bay values.";
356 leaf shelf-position {
359 "Reflect the shelf vertical position within an equipment bay.";
361 leaf administrative-state {
362 type org-openroadm-equipment-states-types:admin-states;
364 "Admin State of the shelf";
366 uses org-openroadm-physical-types:common-info;
367 leaf equipment-state {
368 type org-openroadm-equipment-states-types:states;
370 "equipment state for the shelf, used to track the lifecycle state.";
373 type ietf-yang-types:date-and-time;
375 "due date for the shelf.";
381 "List of slots on this shelf. To be populated by NE during retrieval.";
386 grouping circuit-packs {
388 key "circuit-pack-name";
390 "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
391 leaf circuit-pack-type {
395 "Type of circuit-pack";
397 leaf circuit-pack-product-code {
400 "Product Code for the circuit-pack";
406 grouping circuit-pack-features {
407 leaf software-load-version {
411 "Software version running on the circuit pack.";
413 list circuit-pack-features {
417 "List of features supported by the installed load and indications on whether the features have been applied or not.";
421 "Feature description.";
426 "Indicator if the feature has been activated.";
430 list circuit-pack-components {
432 container component {
434 "Optional list of components on the circuit-pack and the load information applicable to those components. If a load is not up to date and will upgrade when a cold restart occurs, the version that will be applied should also be listed. If there is no misalignment, this does not need to be reported.";
438 "Name of a component on the circuit-pack that can have a load applied to it.";
440 leaf current-version {
443 "Name of the load version currently running on the component.";
445 leaf version-to-apply {
448 "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.";
454 grouping circuit-pack {
455 leaf circuit-pack-name {
458 "Unique identifier for this circuit-pack within a device";
460 leaf administrative-state {
461 type org-openroadm-equipment-states-types:admin-states;
463 "Administrative state of circuit-pack";
465 uses org-openroadm-physical-types:common-info;
466 container circuit-pack-category {
469 "General type of circuit-pack";
470 uses org-openroadm-common-types:equipment-type;
472 leaf equipment-state {
473 type org-openroadm-equipment-states-types:states;
475 "Equipment state, which complements operational state.";
477 leaf circuit-pack-mode {
481 "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
485 path "/org-openroadm-device/shelves/shelf-name";
497 leaf is-pluggable-optics {
502 "True if circuitpack is pluggable optics";
505 type ietf-yang-types:date-and-time;
507 "due date for this circuit-pack.";
509 container parent-circuit-pack {
511 "In the case of circuit packs that contain other equipment (modules or pluggables), this captures the hierarchy of that equipment. It is a vendor specific design decision if the ports for single-port pluggables are modeled as children of the parent circuit-pack, or as children of the pluggable circuit-pack contained in the parent circuit-pack. For modules with multiple ports, it is recommended that ports be children of the module and not the carrier, to help in fault correlation and isolation in the case of a module failure.";
512 uses circuit-pack-name;
516 "Slot name on parent-circuit-pack.";
523 "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
527 enum "pluggable-optics-holder" {
530 "slot accepts dedicated pluggable port circuit-pack";
535 "slot accepts parent circuit-pack";
540 uses circuit-pack-features;
544 "List of ports on this circuit-pack. Note that pluggables are considered independent circuit-packs. All ports that are physically present on a pluggable, need to be modeled as a port against that pluggable circuit-pack, and not against the parent circuit-pack.";
546 container roadm-port {
547 when "../port-qual='roadm-external'";
548 uses org-openroadm-port-types:roadm-port;
550 container transponder-port {
551 when "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'";
552 uses org-openroadm-port-types:common-port;
554 container otdr-port {
555 when "../port-qual='otdr'";
557 "Settings for otdr port.";
558 leaf launch-cable-length {
563 leaf port-direction {
564 type org-openroadm-common-types:direction;
568 when "../port-qual='ila-external'";
569 uses org-openroadm-port-types:common-port;
574 grouping odu-connection {
576 "Grouping used to define odu-connections.";
577 leaf connection-name {
580 "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)";
584 enum "unidirectional" {
587 enum "bidirectional" {
591 default "bidirectional";
593 "Directionality of connection. If bidirectional, both directions are created.";
598 path "/org-openroadm-device/interface/name";
603 container destination {
606 path "/org-openroadm-device/interface/name";
613 grouping connection {
615 "Grouping used to define connections.";
616 leaf connection-name {
619 leaf opticalControlMode {
620 type org-openroadm-common-types:optical-control-mode;
623 "Whether connection is currently in power or gain/loss mode";
624 reference "openroadm.org: Open ROADM MSA Specification.";
626 leaf target-output-power {
627 type org-openroadm-common-types:power-dBm;
629 "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
634 path "/org-openroadm-device/interface/name";
639 container destination {
642 path "/org-openroadm-device/interface/name";
652 must "not( current() > /org-openroadm-device/info/max-degrees) and current() > 0" {
653 error-message "Degree not supported by device ";
655 "Validating if the degree is supported by device";
658 leaf max-wavelengths {
663 "maximum number of wavelengths";
668 "list for Cards associated with a degree";
672 uses circuit-pack-name {
673 refine "circuit-pack-name" {
678 list connection-ports {
681 "Port associated with degree: One if bi-directional; two if uni-directional";
686 refine "circuit-pack-name" {
694 container otdr-port {
696 "otdr port associated with degree.";
699 uses mc-capabilities-g;
708 "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier";
711 type org-openroadm-common-types:amplifier-types;
718 type org-openroadm-common-types:line-amplifier-control-mode;
721 "Whether the line amplifier is currently in off or gainLoss mode. control-mode can only be set to gainLoss when target-gain, target-tilt and egress-average-channel-power are set and the OMS interfaces are provisioned. The amplifier will be turned off when the control-mode is set to off";
723 leaf amp-gain-range {
724 type org-openroadm-common-types:amplifier-gain-range;
725 default "gain-range-1";
728 "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers)
729 gain-range-1 (default value) for standard amplifiers";
732 type org-openroadm-common-types:ratio-dB;
735 "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation.
736 Defined as optional for ODL support, but shall be considered as mandatory and provided
737 by the controller when the control-mode is set to gainLoss for amplifier setting";
740 type org-openroadm-common-types:ratio-dB;
743 "Target tilt configured in case of smart EDFA.
744 Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet
745 Defined as optional for ODL support, but shall be considered as mandatory and provided
746 by the controller when the control-mode is set to gainLoss for amplifier setting";
748 leaf egress-average-channel-power {
749 type org-openroadm-common-types:power-dBm;
752 "Based upon the total max power across the 4.8 THz passband.
753 Defined as optional for ODL support, but shall be considered as mandatory and provided
754 by the controller when the control-mode is set to gainLoss for amplifier setting";
757 type org-openroadm-common-types:ratio-dB;
760 "Used to provide the value output VOA attenuation, optional";
764 path "../amp-number";
768 "amp-number of amp module that is functionally associated to the amplifier
769 in the opposite direction";
771 leaf ila-direction-label {
774 "Amplifier direction. Each operators may have its own naming convention.
775 Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.";
779 grouping external-links {
781 "YANG definitions for external links..
782 - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.";
784 key "external-link-name";
789 grouping external-link {
790 leaf external-link-name {
794 uses org-openroadm-resource-types:device-id {
799 uses org-openroadm-resource-types:port-name {
800 refine "circuit-pack-name" {
808 container destination {
809 uses org-openroadm-resource-types:device-id {
814 uses org-openroadm-resource-types:port-name {
815 refine "circuit-pack-name" {
825 grouping internal-links {
827 key "internal-link-name";
833 grouping internal-link {
834 leaf internal-link-name {
839 refine "circuit-pack-name" {
847 container destination {
849 refine "circuit-pack-name" {
859 grouping physical-links {
861 "YANG definitions for physical links.
862 - physical links (fiber, cables,etc.) between ports within a node. ";
864 key "physical-link-name";
869 grouping physical-link {
870 leaf physical-link-name {
875 refine "circuit-pack-name" {
883 container destination {
885 refine "circuit-pack-name" {
896 leaf max-add-drop-ports {
901 "The max number of ports available for a given srg";
903 leaf current-provisioned-add-drop-ports {
908 "The number of ports currently provisioned for a given srg.";
912 must "not(current()>/org-openroadm-device/info/max-srgs) and current()>0" {
913 error-message "invalid SRG";
915 "Validating if the srg is supported by add/drop group";
918 leaf wavelength-duplication {
919 type org-openroadm-common-types:wavelength-duplication-type;
923 "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
928 "list for Cards associated with an add/drop group and srg";
932 uses circuit-pack-name {
933 refine "circuit-pack-name" {
938 uses mc-capabilities-g;
944 must "current() > 0" {
945 error-message "Xponder not supported by device ";
947 "Validating if the Xponder is supported by device";
951 type org-openroadm-common-types:xpdr-node-types;
954 "Identifier for xponder-type e.g Transponder, Muxponder";
960 "Indication if recolor is supported";
965 "Network Ports with in a Xponder";
970 refine "circuit-pack-name" {
980 "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id";
985 grouping degree-number {
988 path "/org-openroadm-device/degree/degree-number";
991 "Degree identifier. Unique within the context of a device.";
995 grouping circuit-pack-name {
996 leaf circuit-pack-name {
998 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1001 "Circuit-Pack identifier. Unique within the context of a device.";
1005 grouping port-name {
1006 uses circuit-pack-name;
1009 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1012 "Port identifier. Unique within the context of a circuit-pack.";
1016 grouping srg-number {
1019 path "/org-openroadm-device/shared-risk-group/srg-number";
1022 "Shared Risk Group identifier. Unique within the context of a device.";
1026 grouping supporting-port-name {
1027 leaf supporting-circuit-pack-name {
1029 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1032 "Identifier of the supporting circuit-pack.";
1034 leaf supporting-port {
1036 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
1039 "Identifier of the supporting port.";
1043 grouping interface-name {
1044 leaf interface-name {
1046 path "/org-openroadm-device/interface/name";
1050 "Name of an interface. Unique within the context of a device.";
1054 grouping interfaces-grp {
1056 "OpenROADM Interface configuration parameters.";
1060 "The list of configured interfaces on the device.";
1064 "The name of the interface.";
1069 "A textual description of the interface.";
1073 base org-openroadm-interfaces:interface-type;
1077 "The type of the interface.";
1079 leaf administrative-state {
1080 type org-openroadm-equipment-states-types:admin-states;
1082 leaf operational-state {
1083 type org-openroadm-common-types:state;
1091 "circuit identifier/user label,
1092 can be used in alarm correlation and/or connection management ";
1094 leaf supporting-interface {
1096 path "/org-openroadm-device/interface/name";
1099 uses supporting-port-name;
1103 grouping protection-groups {
1105 "OpenROADM facility protection configuration parameters.";
1106 container protection-grps {
1108 "The list of configured protection groups on the device.";
1114 "Grouping of attributes related to a port object.";
1119 "Identifier for a port, unique within a circuit pack";
1124 "Type of the pluggable or fixed port.";
1127 type org-openroadm-common-types:port-qual;
1129 leaf port-wavelength-type {
1130 type org-openroadm-port-types:port-wavelength-types;
1133 "Type of port - single, multiple-wavelength, etc.";
1135 leaf port-direction {
1136 type org-openroadm-common-types:direction;
1140 "Whether port is uni (tx/rx) or bi-directional and";
1153 "circuit identifier/user label,
1154 can be used in alarm correlation and/or connection management ";
1156 leaf administrative-state {
1157 type org-openroadm-equipment-states-types:admin-states;
1158 default "outOfService";
1160 "Administrative state of port. The value of this field independent of the state of its contained and containing resources. Setting this a port to administratively down will impact both its operational state, as well the operational state of its contained resources. If this port is an endpoint to a connection, internal-link, physical-link, etc, then administratively disabling this port will impact the operational state of those items unless they are using some form of port-protection schema.";
1162 leaf operational-state {
1163 type org-openroadm-common-types:state;
1167 "Operational state of a port";
1169 leaf-list supported-interface-capability {
1171 base org-openroadm-port-types:supported-if-capability;
1175 "Interface types supported on this port";
1177 leaf logical-connection-point {
1180 "delete or replace with list logical-ports or connections?";
1182 container partner-port {
1185 "For ports which are not identified as having a direction of bidirectional, this field is used to identify the port which corresponds to the reverse direction. A port pair should include a port for each direction (tx, rx) and report their mate as partner-port.";
1188 container parent-port {
1191 "In the case of port hierarchy, this is the parent port, which is also modeled as port within this circuit-pack. This is used in the case of a port that supports a parallel connector that contains subports. The parent-port of the subport will be the port that contains this subport. This can be used to help isolate faults when a single fault on a parallel connector introduces symptomatic failures on the contained subports.";
1197 "List of the interfaces this port supports. This is a list of names of instances in the flat instance list";
1198 uses interface-name;
1202 grouping org-openroadm-device-container {
1203 container org-openroadm-device {
1210 "Max. number of degrees supported by device";
1216 "Max. number of SRGs in an add/drop group";
1218 leaf max-num-bin-15min-historical-pm {
1222 "Max. number of bin the NE support for 15min historical PM";
1224 leaf max-num-bin-24hour-historical-pm {
1228 "Max. number of bin the NE support for 24hour historical PM";
1233 "Stores a list of users";
1234 uses org-openroadm-user-mgmt:user-profile;
1236 container pending-sw {
1238 uses org-openroadm-swdl:sw-bank;
1242 uses interfaces-grp;
1243 uses protection-groups;
1244 container protocols {
1246 "Contains the supported protocols";
1248 uses internal-links;
1249 uses physical-links;
1250 uses external-links;
1252 when "/org-openroadm-device/info/node-type='rdm'";
1253 key "degree-number";
1256 list shared-risk-group {
1257 when "/org-openroadm-device/info/node-type='rdm'";
1261 list line-amplifier {
1262 when "/org-openroadm-device/info/node-type='ila'";
1265 "lists amplifiers in different directions";
1270 "list for Cards associated with an amplifier";
1274 uses circuit-pack-name {
1275 refine "circuit-pack-name" {
1281 key "port-direction";
1283 "Port associated with an amplifier which face the line (ila-external): traffic port.";
1284 leaf port-direction {
1285 type org-openroadm-common-types:direction;
1289 "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress
1290 TXRX in case of bidirectional port";
1292 leaf tx-instance-port-direction-label {
1296 "Complements ports identification. Used notably in case of bidirectional ports,
1297 and/or in multi-degree amplifier nodes. Allows associating one of the directions
1298 specified in ila-direction-label. Shall be consistent with ila-direction-label";
1300 leaf rx-instance-port-direction-label {
1304 "Complements ports identification. Used notably in case of bidirectional ports,
1305 and/or in multi-degree amplifier nodes. Allows associating one of the directions
1306 specified in ila-direction-label. Shall be consistent with ila-direction-label";
1309 refine "circuit-pack-name" {
1312 refine "port-name" {
1318 key "port-direction";
1320 "Ports associated with OSC";
1321 leaf port-direction {
1322 type org-openroadm-common-types:direction;
1326 "allows identifying ports associated with logical amp :
1327 TX for OSC circuit-pack IN RX for OSC circuit-pack OUT";
1330 refine "circuit-pack-name" {
1333 refine "port-name" {
1339 key "otdr-direction";
1341 "otdr ports associated with an ILA";
1342 leaf otdr-direction {
1346 "allows identifying associated logical amp port in which OTDR is launched:
1347 corresponds to rx-instance-port-direction-label of corresponding amplifier line-port";
1350 refine "circuit-pack-name" {
1353 refine "port-name" {
1360 when "/org-openroadm-device/info/node-type='xpdr'";
1364 list roadm-connections {
1365 when "/org-openroadm-device/info/node-type='rdm'";
1366 key "connection-name";
1369 list odu-connection {
1370 when "/org-openroadm-device/info/node-type='xpdr'";
1371 key "connection-name";
1372 uses odu-connection;
1374 list connection-map {
1375 key "connection-map-number";
1377 leaf connection-map-number {
1380 "Unique identifier for this connection-map entry";
1383 leaf circuit-pack-name {
1385 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1391 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1395 "Port identifier. Unique within the context of a circuit-pack.";
1399 key "circuit-pack-name port-name";
1401 leaf circuit-pack-name {
1403 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1409 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1413 "Port identifier. Unique within the context of a circuit-pack.";
1417 list odu-switching-pools {
1418 when "/org-openroadm-device/info/node-type='xpdr'";
1419 key "switching-pool-number";
1421 leaf switching-pool-number {
1424 "Unique identifier for this odu-switching-pool";
1426 leaf switching-pool-type {
1427 type org-openroadm-switching-pool-types:switching-pool-types;
1429 list non-blocking-list {
1433 "List of ports in a non-blocking switch element";
1437 "Identifier for this non-blocking-list. Unique within odu-switching-pool";
1439 leaf interconnect-bandwidth-unit {
1443 "Switch fabric interconnect bandwidth unit rate in bits per second.
1444 Represents granularity of switch fabric";
1446 leaf interconnect-bandwidth {
1450 "Total interconnect bandwidth for a non-blocking element expressed as
1451 number of inter-connect-bandwidth units";
1454 key "circuit-pack-name port-name";
1455 leaf circuit-pack-name {
1457 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1463 path "/org-openroadm-device/circuit-packs/ports/port-name";
1467 "Port name. Unique within device";
1470 list pluggable-optics-holder-list {
1471 key "circuit-pack-name slot-name";
1472 leaf circuit-pack-name {
1474 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1478 "Name of parent circuit-pack";
1482 path "/org-openroadm-device/circuit-packs/cp-slots/slot-name";
1486 "Name of pluggable-optics-holder";
1494 grouping mc-capabilities-g {
1495 container mc-capabilities {
1498 "Capabilities of the media channel on a degree or SRG. This is used to validate mc-ttp provisioning on degrees and SRGs.";
1499 leaf slot-width-granularity {
1500 type org-openroadm-common-types:frequency-GHz;
1504 "Width of a slot measured in GHz.";
1506 leaf center-freq-granularity {
1507 type org-openroadm-common-types:frequency-GHz;
1511 "Granularity of allowed center frequencies. The base frequency for this computation is 193.1 THz (G.694.1)";
1518 "Minimum number of slots permitted to be joined together to form a media channel. Must be less than or equal to the max-slots";
1525 "Maximum number of slots permitted to be joined together to form a media channel. Must be greater than or equal to the min-slots";
1530 grouping common-session-parms {
1532 "Common session parameters to identify a
1533 management session.";
1535 type org-openroadm-user-mgmt:username-type;
1538 "Name of the user for the session.";
1541 type ietf-nc:session-id-or-zero-type;
1544 "Identifier of the session.
1545 A NETCONF session MUST be identified by a non-zero value.
1546 A non-NETCONF session MAY be identified by the value zero.";
1549 type ietf-inet-types:ip-address;
1551 "Address of the remote host for the session.";
1555 grouping changed-by-parms {
1557 "Common parameters to identify the source
1558 of a change event, such as a configuration
1559 or capability change.";
1560 container changed-by {
1562 "Indicates the source of the change.
1563 If caused by internal action, then the
1564 empty leaf 'server' will be present.
1565 If caused by a management session, then
1566 the name, remote host address, and session ID
1567 of the session that made the change will be reported.";
1568 choice server-or-user {
1572 "If present, the change was caused
1576 uses common-session-parms;
1584 "This command is used to allow user to find an entity on the NE,
1585 The specified entity will have LED blinking.
1586 The equipmentLedOn alarm will be raised and cleared for the indication";
1588 choice equipment-entity {
1593 path "/org-openroadm-device/shelves/shelf-name";
1597 "shelf-name for the operation";
1601 leaf circuit-pack-name {
1603 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1607 "circuit-pack-name for the operation";
1615 "led-control enabled flag.
1616 when enabled=true, equipmentLedOn alarm will be raised
1617 when enabled=false, equipmentLedOn alarm will be cleared";
1621 uses org-openroadm-common-types:rpc-response-status;
1624 rpc create-tech-info {
1626 "Collects all log data for debugging and place it in a location accessible via ftp/sftp.
1627 This model assumes ASYNC operation, i.e. the command will return after the device accepts the command,
1628 A create-tech-info-notification will be send out later for the result of the operation.
1629 The log-file is cleared at the start of every create-tech-info operation in order to ensure
1630 the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second
1631 create-tech-info command will be rejected.";
1635 path "/org-openroadm-device/shelves/shelf-name";
1638 "This optional field is used to specify the shelf for log collection.
1639 When this filed is not provided, it is expected to collect logs for the whole node.
1640 Vendor should reject the command if the whole node log collection is not supported.";
1645 "The log type a vendor can specify. Maybe used in future";
1649 uses create-tech-info-group;
1650 uses org-openroadm-common-types:rpc-response-status;
1653 rpc get-connection-port-trail {
1655 leaf connection-name {
1661 uses org-openroadm-common-types:rpc-response-status;
1663 uses org-openroadm-common-types:physical-location;
1665 refine "circuit-pack-name" {
1668 refine "port-name" {
1675 rpc disable-automatic-shutoff {
1677 choice degree-or-amp {
1680 "The choice describes the option to specify the entity for the disable-automatic-shutoff RPC. It can be degree-number for rdm and amp-number for ila";
1682 leaf degree-number {
1684 path "/org-openroadm-device/degree/degree-number";
1688 "The degree-number defined in degree";
1694 path "/org-openroadm-device/line-amplifier/amp-number";
1698 "The amp-number defined in line-amplifier";
1702 leaf support-timer {
1710 uses org-openroadm-common-types:rpc-response-status;
1715 choice degree-or-amp {
1718 "The choice describes the option to specify the entity for the start-scan RPC. It can be degree-number for rdm and amp-number for ila";
1720 leaf degree-number {
1722 path "/org-openroadm-device/degree/degree-number";
1726 "The degree-number defined in degree";
1732 path "/org-openroadm-device/line-amplifier/amp-number";
1736 "The amp-number defined in line-amplifier";
1740 leaf port-direction {
1741 type org-openroadm-common-types:direction;
1751 uses org-openroadm-common-types:rpc-response-status;
1754 rpc set-current-datetime {
1756 "Set the info/current-datetime leaf to the specified value.";
1758 leaf current-datetime {
1759 type ietf-yang-types:date-and-time;
1762 "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
1766 uses org-openroadm-common-types:rpc-response-status;
1769 notification create-tech-info-notification {
1771 "This Notification is sent when the create-tech-info is complete or failed.";
1772 uses create-tech-info-group;
1773 uses org-openroadm-common-types:rpc-response-status;
1775 notification otdr-scan-result {
1787 "Completed or Failed for the scan's final status";
1793 notification change-notification {
1795 "The Notification that a resource has been added, modified or removed.
1796 This notification can be triggered by changes in configuration and operational data.
1797 It shall contain the changed field pointed by the xpath.
1798 Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
1800 type ietf-yang-types:date-and-time;
1802 "The time the change occurs.";
1804 uses changed-by-parms;
1809 "The <running> datastore has changed.";
1813 "The <startup> datastore has changed";
1818 "Indicates which configuration datastore has changed.";
1822 "An edit (change) record SHOULD be present for each distinct
1823 edit operation that the server has detected on
1824 the target datastore. This list MAY be omitted
1825 if the detailed edit operations are not known.
1826 The server MAY report entries in this list for
1827 changes not made by a NETCONF session.";
1829 type instance-identifier;
1831 "Top most node associated with the configuration or operational change.
1832 A server SHOULD set this object to the node within
1833 the datastore that is being altered. A server MAY
1834 set this object to one of the ancestors of the actual
1835 node that was changed, or omit this object, if the
1836 exact node is not known.";
1839 type ietf-nc:edit-operation-type;
1841 "Type of edit operation performed.
1842 A server MUST set this object to the NETCONF edit
1843 operation performed on the target datastore.";
1847 uses org-openroadm-device-container;