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 2020-05-29;
21 import org-openroadm-common-alarm-pm-types {
22 prefix org-openroadm-common-alarm-pm-types;
23 revision-date 2019-11-29;
25 import org-openroadm-common-equipment-types {
26 prefix org-openroadm-common-equipment-types;
27 revision-date 2019-11-29;
29 import org-openroadm-common-state-types {
30 prefix org-openroadm-common-state-types;
31 revision-date 2019-11-29;
33 import org-openroadm-common-amplifier-types {
34 prefix org-openroadm-common-amplifier-types;
35 revision-date 2019-11-29;
37 import org-openroadm-common-link-types {
38 prefix org-openroadm-common-link-types;
39 revision-date 2019-11-29;
41 import org-openroadm-common-node-types {
42 prefix org-openroadm-common-node-types;
43 revision-date 2019-11-29;
45 import org-openroadm-common-optical-channel-types {
46 prefix org-openroadm-common-optical-channel-types;
47 revision-date 2020-05-29;
49 import org-openroadm-device-types {
50 prefix org-openroadm-device-types;
51 revision-date 2019-11-29;
53 import org-openroadm-resource-types {
54 prefix org-openroadm-resource-types;
55 revision-date 2019-11-29;
57 import org-openroadm-physical-types {
58 prefix org-openroadm-physical-types;
59 revision-date 2019-11-29;
61 import org-openroadm-user-mgmt {
62 prefix org-openroadm-user-mgmt;
63 revision-date 2019-11-29;
65 import org-openroadm-port-types {
66 prefix org-openroadm-port-types;
67 revision-date 2020-03-27;
69 import org-openroadm-interfaces {
70 prefix org-openroadm-interfaces;
71 revision-date 2019-11-29;
73 import org-openroadm-swdl {
74 prefix org-openroadm-swdl;
75 revision-date 2020-05-29;
77 import org-openroadm-equipment-states-types {
78 prefix org-openroadm-equipment-states-types;
79 revision-date 2019-11-29;
81 import org-openroadm-switching-pool-types {
82 prefix org-openroadm-switching-pool-types;
83 revision-date 2019-11-29;
85 import org-openroadm-optical-operational-interfaces {
86 prefix org-openroadm-optical-operational-interfaces;
87 revision-date 2020-05-29;
89 import org-openroadm-otn-common-types {
90 prefix org-openroadm-otn-common-types;
91 revision-date 2020-03-27;
99 "YANG definitions of ROADM device
101 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
102 All other rights reserved.
104 Redistribution and use in source and binary forms, with or without modification,
105 are permitted provided that the following conditions are met:
107 * Redistributions of source code must retain the above copyright notice, this
108 list of conditions and the following disclaimer.
109 * Redistributions in binary form must reproduce the above copyright notice,
110 this list of conditions and the following disclaimer in the documentation and/or
111 other materials provided with the distribution.
112 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
113 contributors may be used to endorse or promote products derived from this software
114 without specific prior written permission.
116 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
117 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
118 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
119 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
120 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
121 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
122 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
123 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
124 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
125 POSSIBILITY OF SUCH DAMAGE.
127 Also contains code components extracted from IETF netconf. These code components
128 are copyrighted and licensed as follows:
130 Copyright (c) 2016 IETF Trust and the persons identified as the document authors.
133 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating
134 to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of
135 publication of this document. Please review these documents carefully, as they
136 describe your rights and restrictions with respect to this document. Code Components
137 extracted from this document must include Simplified BSD License text as described in
138 Section 4.e of the Trust Legal Provisions and are provided without warranty as
139 described in the Simplified BSD License.";
141 revision 2020-05-29 {
145 revision 2020-03-27 {
149 revision 2019-11-29 {
153 revision 2019-09-27 {
157 revision 2019-05-31 {
161 revision 2019-03-29 {
165 revision 2018-11-30 {
169 revision 2018-09-28 {
173 revision 2018-05-30 {
177 revision 2018-03-30 {
181 revision 2017-12-15 {
185 revision 2017-09-29 {
189 revision 2017-07-28 {
191 "Version 2.0.1 - added revision-date to imports";
193 revision 2017-06-26 {
197 revision 2017-02-06 {
199 "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
201 revision 2016-10-14 {
206 identity connection-direction-identity {
208 "Bidrectional capable, or Bi and Unidirectional capable";
211 identity connection-direction_bi {
212 base connection-direction-identity;
214 "Bidrectional capable";
217 identity connection-direction_bi_and_uni {
218 base connection-direction-identity;
220 "Bi and Unidirectional capable";
223 typedef interface-ref {
225 path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:interface/org-openroadm-device:name";
228 "This type is used by data models that need to reference
229 configured interfaces.";
232 grouping create-tech-info-group {
235 path "/org-openroadm-device/shelves/shelf-name";
243 "The log file name a vendor can specify for a given log collection operation";
247 grouping device-common {
249 type org-openroadm-common-node-types:node-id-type;
252 "Globally unique identifier for a device.";
257 "Number assigned to a ROADM node at a
261 type org-openroadm-device-types:node-types;
265 "Identifier for node-type e.g Roadm, xponder.
266 Once the node-type is configured, it should not be modified.";
271 "Common Language Location Identifier.";
273 uses org-openroadm-physical-types:node-info;
275 type ietf-inet-types:ip-address;
277 "IP Address of device";
284 "The length of the subnet prefix";
286 leaf defaultGateway {
287 type ietf-inet-types:ip-address;
302 leaf current-ipAddress {
303 type ietf-inet-types:ip-address;
306 "Current IP Address of device";
308 leaf current-prefix-length {
314 "The current length of the subnet prefix";
316 leaf current-defaultGateway {
317 type ietf-inet-types:ip-address;
320 "Current Default Gateway";
323 type ietf-yang-types:mac-address;
326 "MAC Address of device";
328 leaf softwareVersion {
334 leaf software-build {
338 "Software build version";
340 leaf openroadm-version {
341 type org-openroadm-common-types:openroadm-version-type;
344 "openroadm version used on the device";
349 "Template information used in the deployment.";
351 leaf current-datetime {
352 type ietf-yang-types:date-and-time;
355 "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
357 leaf lifecycle-state {
358 type org-openroadm-common-state-types:lifecycle-state;
360 "Lifecycle State of the device node. Whether it is planned, deployed, in maintenance, etc.";
362 container geoLocation {
371 "[From wikipedia] Latitude is an angle (defined below)
372 which ranges from 0 at the Equator to 90 (North or
373 South) at the poles";
381 "[From wikipedia] The longitude is measured as the
382 angle east or west from the Prime Meridian, ranging
383 from 0 at the Prime Meridian to +180 eastward and
391 "slots information. To be populated by NE during retrieval.";
395 "The name of this slot.";
402 leaf provisioned-circuit-pack {
404 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
407 "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
411 enum empty-not-prov {
414 "Slot is empty and not provisioned";
416 enum empty-prov-match {
420 "(Deprecated) Slot is empty and expected type is provisioned";
422 enum empty-prov-mismatch {
426 "(Deprecated) Slot is empty and an unsupported type is provisioned";
428 enum installed-not-prov {
431 "Slot is occupied but not provisioned";
433 enum installed-prov-match {
436 "Slot is occupied with matching provisioned type";
438 enum installed-prov-mismatch {
441 "Slot is occupied with mismatched provisioned type";
446 "Slot is empty and provisioned";
459 grouping user-description-grp {
461 "user description group";
462 leaf user-description {
465 "user provided description";
473 "Unique identifier for this shelf within a device";
479 "The shelf type: describe the shelf with a unique string.";
484 "Reflect the shelf physical location data including floor, aisle, bay values.";
486 leaf shelf-position {
489 "Reflect the shelf vertical position within an equipment bay.";
491 leaf lifecycle-state {
492 type org-openroadm-common-state-types:lifecycle-state;
494 "Lifecycle State of shelf. Whether it is planned, deployed, in maintenance, etc.";
496 leaf administrative-state {
497 type org-openroadm-equipment-states-types:admin-states;
500 "Admin State of the shelf";
502 uses org-openroadm-physical-types:common-info;
503 leaf equipment-state {
504 type org-openroadm-equipment-states-types:states;
506 "equipment state for the shelf, used to track the lifecycle state.";
513 "is the entity physical or logical";
520 "is the entity passive and not actively managed by the device;
521 e.g., no physical inventory or plug-in notification supported";
523 leaf faceplate-label {
528 "label on the faceplace silk screening";
530 uses user-description-grp;
532 type ietf-yang-types:date-and-time;
534 "due date for the shelf.";
540 "List of slots on this shelf. To be populated by NE during retrieval.";
545 grouping circuit-packs {
547 key "circuit-pack-name";
549 "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
550 leaf circuit-pack-type {
554 "Type of circuit-pack";
556 leaf circuit-pack-product-code {
559 "Product Code for the circuit-pack";
565 grouping circuit-pack-features {
566 leaf software-load-version {
570 "Software version running on the circuit pack.";
572 list circuit-pack-features {
576 "List of features supported by the installed load and indications on whether the features have been applied or not.";
580 "Feature description.";
585 "Flag to indicate boot loader or unprotected firmware update required";
590 "Indicator if the feature has been activated.";
594 list circuit-pack-components {
596 container component {
598 "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.";
602 "Name of a component on the circuit-pack that can have a load applied to it.";
607 "Flag to indicate boot loader or unprotected firmware update required";
609 leaf current-version {
612 "Name of the load version currently running on the component.";
614 leaf version-to-apply {
617 "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.";
623 grouping circuit-pack {
624 leaf circuit-pack-name {
627 "Unique identifier for this circuit-pack within a device";
629 leaf lifecycle-state {
630 type org-openroadm-common-state-types:lifecycle-state;
632 "Lifecycle State of circuit-pack. Whether it is planned, deployed, in maintenance, etc.";
634 leaf administrative-state {
635 type org-openroadm-equipment-states-types:admin-states;
638 "Administrative state of circuit-pack";
640 uses org-openroadm-physical-types:common-info;
641 container circuit-pack-category {
644 "General type of circuit-pack";
645 uses org-openroadm-common-equipment-types:equipment-type;
647 leaf equipment-state {
648 type org-openroadm-equipment-states-types:states;
650 "Equipment state, which complements operational state.";
652 leaf circuit-pack-mode {
656 "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
660 path "/org-openroadm-device/shelves/shelf-name";
672 leaf is-pluggable-optics {
677 "True if circuitpack is pluggable optics";
684 "is the entity physical or logical";
691 "is the entity passive and not actively managed by the device;
692 e.g., no physical inventory or plug-in notification supported";
694 leaf faceplate-label {
699 "label on the faceplace silk screening";
701 uses user-description-grp;
703 type ietf-yang-types:date-and-time;
705 "due date for this circuit-pack.";
707 container parent-circuit-pack {
709 "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.";
710 uses circuit-pack-name;
714 "Slot name on parent-circuit-pack.";
721 "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
725 enum pluggable-optics-holder {
728 "slot accepts dedicated pluggable port circuit-pack";
733 "slot accepts parent circuit-pack";
738 uses circuit-pack-features;
742 "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.";
744 container roadm-port {
745 when "../port-qual='roadm-external'";
746 uses org-openroadm-port-types:roadm-port;
748 container transponder-port {
749 when "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'";
750 uses org-openroadm-port-types:common-port;
752 container otdr-port {
753 when "../port-qual='otdr'";
755 "Settings for otdr port.";
756 leaf launch-cable-length {
761 leaf port-direction {
762 type org-openroadm-common-alarm-pm-types:direction;
766 when "../port-qual='ila-external'";
767 uses org-openroadm-port-types:common-port;
772 grouping odu-connection {
774 "Grouping used to define odu-connections.";
775 leaf connection-name {
778 "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)";
782 enum unidirectional {
789 default "bidirectional";
791 "Directionality of connection. If bidirectional, both directions are created.";
796 path "/org-openroadm-device/interface/name";
801 container destination {
804 path "/org-openroadm-device/interface/name";
811 grouping connection {
813 "Grouping used to define connections.";
814 leaf connection-name {
817 leaf opticalControlMode {
818 type org-openroadm-common-link-types:optical-control-mode;
821 "Whether connection is currently in power or gain/loss mode";
823 "openroadm.org: Open ROADM MSA Specification.";
825 leaf target-output-power {
826 type org-openroadm-common-link-types:power-dBm;
828 "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
833 path "/org-openroadm-device/interface/name";
838 container destination {
841 path "/org-openroadm-device/interface/name";
848 grouping mc-capabilities-grp {
850 "Media channel capabilities grouping";
851 leaf-list mc-capability-profile-name {
853 path "/org-openroadm-device/mc-capability-profile/profile-name";
857 "Media channel capabilities";
865 "Degree number should be greater than zero and not greater than max-degrees";
867 leaf lifecycle-state {
868 type org-openroadm-common-state-types:lifecycle-state;
870 "Lifecycle State of degree. Whether it is planned, deployed, in maintenance, etc.";
872 leaf max-wavelengths {
877 "maximum number of wavelengths";
882 "list for Cards associated with a degree";
886 uses circuit-pack-name {
887 refine "circuit-pack-name" {
892 list connection-ports {
895 "Port associated with degree: One if bi-directional; two if uni-directional";
900 refine "circuit-pack-name" {
908 container otdr-port {
910 "otdr port associated with degree.";
913 uses mc-capabilities-grp;
922 "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier";
925 type org-openroadm-common-amplifier-types:amplifier-types;
932 type org-openroadm-common-amplifier-types:line-amplifier-control-mode;
935 "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";
937 leaf amp-gain-range {
938 type org-openroadm-common-amplifier-types:amplifier-gain-range;
939 default "gain-range-1";
942 "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers)
943 gain-range-1 (default value) for standard amplifiers";
946 type org-openroadm-common-link-types:ratio-dB;
949 "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation.
950 Defined as optional for ODL support, but shall be considered as mandatory and provided
951 by the controller when the control-mode is set to gainLoss for amplifier setting";
954 type org-openroadm-common-link-types:ratio-dB;
957 "Target tilt configured in case of smart EDFA.
958 Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet
959 Defined as optional for ODL support, but shall be considered as mandatory and provided
960 by the controller when the control-mode is set to gainLoss for amplifier setting";
962 leaf egress-average-channel-power {
963 type org-openroadm-common-link-types:power-dBm;
966 "Based upon the total max power across the 4.8 THz passband.
967 Defined as optional for ODL support, but shall be considered as mandatory and provided
968 by the controller when the control-mode is set to gainLoss for amplifier setting";
971 type org-openroadm-common-link-types:ratio-dB;
974 "Used to provide the value output VOA attenuation, optional";
978 path "/org-openroadm-device/line-amplifier/amp-number";
982 "amp-number of amp module that is functionally associated to the amplifier
983 in the opposite direction";
985 leaf ila-direction-label {
988 "Amplifier direction. Each operators may have its own naming convention.
989 Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.";
991 leaf lifecycle-state {
992 type org-openroadm-common-state-types:lifecycle-state;
994 "Lifecycle State of the amplifier. Whether it is planned, deployed, in maintenance, etc.";
998 grouping external-links {
1000 "YANG definitions for external links..
1001 - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.";
1002 list external-link {
1003 key "external-link-name";
1008 grouping external-link {
1009 leaf external-link-name {
1013 uses org-openroadm-resource-types:device-id {
1018 uses org-openroadm-resource-types:port-name {
1019 refine "circuit-pack-name" {
1022 refine "port-name" {
1027 container destination {
1028 uses org-openroadm-resource-types:device-id {
1033 uses org-openroadm-resource-types:port-name {
1034 refine "circuit-pack-name" {
1037 refine "port-name" {
1044 grouping internal-links {
1045 list internal-link {
1046 key "internal-link-name";
1052 grouping internal-link {
1053 leaf internal-link-name {
1058 refine "circuit-pack-name" {
1061 refine "port-name" {
1066 container destination {
1068 refine "circuit-pack-name" {
1071 refine "port-name" {
1078 grouping physical-links {
1080 "YANG definitions for physical links.
1081 - physical links (fiber, cables,etc.) between ports within a node. ";
1082 list physical-link {
1083 key "physical-link-name";
1088 grouping physical-link {
1089 leaf physical-link-name {
1095 "is the entity physical or logical";
1097 uses user-description-grp;
1100 refine "circuit-pack-name" {
1103 refine "port-name" {
1108 container destination {
1110 refine "circuit-pack-name" {
1113 refine "port-name" {
1118 leaf lifecycle-state {
1119 type org-openroadm-common-state-types:lifecycle-state;
1121 "Lifecycle State of the physical link. Whether it is planned, deployed, in maintenance, etc.";
1126 leaf max-add-drop-ports {
1131 "The max number of ports available for a given srg";
1133 leaf current-provisioned-add-drop-ports {
1138 "The number of ports currently provisioned for a given srg.";
1143 "Srg number should be greater than zero and not greater than max-srgs";
1145 leaf lifecycle-state {
1146 type org-openroadm-common-state-types:lifecycle-state;
1148 "Lifecycle State of shared-risk-group. Whether it is planned, deployed, in maintenance, etc.";
1150 leaf wavelength-duplication {
1151 type org-openroadm-common-optical-channel-types:wavelength-duplication-type;
1155 "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
1157 list circuit-packs {
1160 "list for Cards associated with an add/drop group and srg";
1164 uses circuit-pack-name {
1165 refine "circuit-pack-name" {
1170 uses mc-capabilities-grp;
1176 must 'current() > 0' {
1177 error-message "Xponder not supported by device ";
1179 "Validating if the Xponder is supported by device";
1183 type org-openroadm-device-types:xpdr-node-types;
1186 "Identifier for xponder-type e.g Transponder, Muxponder";
1188 leaf lifecycle-state {
1189 type org-openroadm-common-state-types:lifecycle-state;
1191 "Lifecycle State of xponder. Whether it is planned, deployed, in maintenance, etc.";
1197 "Indication if recolor is supported";
1202 "Network Ports with in a Xponder";
1207 refine "circuit-pack-name" {
1210 refine "port-name" {
1217 "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id";
1222 grouping degree-number {
1223 leaf degree-number {
1225 path "/org-openroadm-device/degree/degree-number";
1228 "Degree identifier. Unique within the context of a device.";
1232 grouping circuit-pack-name {
1233 leaf circuit-pack-name {
1235 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1238 "Circuit-Pack identifier. Unique within the context of a device.";
1242 grouping port-name {
1243 uses circuit-pack-name;
1246 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1249 "Port identifier. Unique within the context of a circuit-pack.";
1253 grouping srg-number {
1256 path "/org-openroadm-device/shared-risk-group/srg-number";
1259 "Shared Risk Group identifier. Unique within the context of a device.";
1263 grouping supporting-port-name {
1264 leaf supporting-circuit-pack-name {
1266 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1269 "Identifier of the supporting circuit-pack.";
1271 leaf supporting-port {
1273 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
1276 "Identifier of the supporting port.";
1280 grouping supporting-circuit-pack-list-grp {
1282 "supporting circuit pack list grouping";
1283 list supporting-port-list {
1286 "supporting port list";
1290 "supporting circuit pack index";
1292 leaf circuit-pack-name {
1294 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1298 "The supported circuit-pack.";
1300 leaf-list port-list {
1302 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1310 grouping interface-name {
1312 "interface name grouping";
1313 leaf interface-name {
1315 path "/org-openroadm-device/interface/name";
1319 "Name of an interface. Unique within the context of a device.";
1323 grouping interfaces-grp {
1325 "OpenROADM Interface configuration parameters.";
1329 "The list of configured interfaces on the device.";
1333 "The name of the interface.";
1338 "A textual description of the interface.";
1342 base org-openroadm-interfaces:interface-type;
1346 "The type of the interface.";
1348 leaf lifecycle-state {
1349 type org-openroadm-common-state-types:lifecycle-state;
1351 "Lifecycle State of interface. Whether it is planned, deployed, in maintenance, etc.";
1353 leaf administrative-state {
1354 type org-openroadm-equipment-states-types:admin-states;
1357 leaf operational-state {
1358 type org-openroadm-common-state-types:state;
1367 "circuit identifier/user label,
1368 can be used in alarm correlation and/or connection management ";
1370 uses supporting-port-name;
1371 leaf-list supporting-interface-list {
1373 path "/org-openroadm-device/interface/name";
1376 "supporting interface list";
1381 grouping protection-groups {
1383 "OpenROADM facility protection configuration parameters.";
1384 container protection-grps {
1386 "The list of configured protection groups on the device.";
1392 "Grouping of attributes related to a port object.";
1397 "Identifier for a port, unique within a circuit pack";
1399 uses supporting-circuit-pack-list-grp;
1403 "Type of the pluggable or fixed port.";
1406 type org-openroadm-device-types:port-qual;
1408 leaf port-wavelength-type {
1409 type org-openroadm-port-types:port-wavelength-types;
1412 "Type of port - single, multiple-wavelength, etc.";
1414 leaf port-direction {
1415 type org-openroadm-common-alarm-pm-types:direction;
1419 "Whether port is uni (tx/rx) or bi-directional and";
1426 "is the entity physical or logical";
1428 leaf faceplate-label {
1433 "label on the faceplace silk screening";
1435 uses user-description-grp;
1441 "circuit identifier/user label,
1442 can be used in alarm correlation and/or connection management ";
1444 leaf lifecycle-state {
1445 type org-openroadm-common-state-types:lifecycle-state;
1447 "Lifecycle State of port. Whether it is planned, deployed, in maintenance, etc.";
1449 leaf administrative-state {
1450 type org-openroadm-equipment-states-types:admin-states;
1451 default "outOfService";
1453 "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.";
1455 leaf operational-state {
1456 type org-openroadm-common-state-types:state;
1460 "Operational state of a port";
1462 leaf logical-connection-point {
1465 "delete or replace with list logical-ports or connections?";
1467 container partner-port {
1470 "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.";
1473 container parent-port {
1476 "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.";
1482 "List of the interfaces this port supports. This is a list of names of instances in the flat instance list. Implementations must provide the list of interfaces for port that has interfaces provisioned on that port.";
1483 uses interface-name;
1485 uses mc-capabilities-grp;
1488 grouping odu-mux-hierarchy-grp {
1490 "ODU mux hierarchy group";
1491 list mux-capability {
1492 key "stage-number ho-odu-type ho-odu-payload-type";
1494 "low order ODU TCM direction capability";
1504 base org-openroadm-otn-common-types:odu-rate-identity;
1507 "High order ODU type";
1509 leaf ho-odu-payload-type {
1510 type org-openroadm-otn-common-types:payload-type-def;
1512 "High order ODU payload type";
1514 leaf-list supported-lo-odu-type {
1516 base org-openroadm-otn-common-types:odu-rate-identity;
1519 "Supported low order ODU type";
1521 leaf lo-odu-proactive-DMp {
1524 "low order ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
1526 leaf lo-odu-tcm-capable {
1529 "only when lo-odu-tcm-capable=true, the following two are applicable (ie, lo-odu-proactive-DMt, lo-odu-tcm-direction";
1531 leaf lo-odu-proactive-DMt {
1532 when "../lo-odu-tcm-capable= 'true'";
1535 "low order ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
1537 leaf lo-odu-tcm-direction-capability {
1538 when "../lo-odu-tcm-capable= 'true'";
1539 type org-openroadm-common-types:tcm-direction-capability-type;
1541 "Supported tcm direction capability for low order ODU associated with the port.";
1546 identity flexo-modulation-format-identity {
1548 "Flexo modulation format identification";
1551 grouping flexo-grp {
1554 leaf circuit-pack-name {
1556 path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:circuit-pack-name";
1559 "Circuit-Pack identifier. Unique within the context of a device.";
1563 path "/org-openroadm-device:org-openroadm-device/org-openroadm-device:circuit-packs/org-openroadm-device:ports/org-openroadm-device:port-name";
1566 "Port index identifier. Unique within the context of a circuit-pack.";
1569 uses org-openroadm-common-types:fec-grouping {
1572 "Flexo FEC / Forward Error Correction";
1577 base org-openroadm-common-optical-channel-types:otsi-rate-identity;
1583 leaf otsi-modulation-format {
1585 base flexo-modulation-format-identity;
1588 "Flexo modulation format";
1595 leaf operational-mode-id {
1599 "Optical profile operational mode identifier";
1603 grouping otsigroup-capability-grp {
1605 "Otsigroup group capability";
1608 base org-openroadm-port-types:supported-if-capability;
1611 "Interface type/hierarchy/rate supported on this Otsi port. For example, if-n-otu4-n-odu4 and if-otucn-oducn";
1615 "To specify the supported rate in the case of OTUCn or NxOTU4";
1620 "Specify the N associated with OTUCn, e.g. N = 2,3,4 for 200G/300G/400G respectively";
1624 leaf supported-n-otu4 {
1627 "Specify the number of N in the case of N x OTU4";
1631 leaf-list foic-type {
1633 base org-openroadm-common-optical-channel-types:foic-identity;
1636 "FlexO interface type ";
1638 leaf otn-capability-profile-name {
1640 path "/org-openroadm-device/otn-capability-profile/profile-name";
1645 leaf otn-odu-mux-hierarchy-profile-name {
1647 path "/org-openroadm-device/otn-odu-mux-hierarchy-profile/profile-name";
1650 "OTN ODU Mux hierarchy capabilities";
1654 grouping split-lambda-capability-grp {
1656 "Split lambda capability group";
1657 container logical-port {
1658 leaf circuit-pack-name {
1661 "The circuit pack supporting the logical port";
1666 "Port name for logical-port";
1669 "Logical port container";
1672 key "circuit-pack-name port-name";
1674 "OTSI list for split lambda";
1675 leaf circuit-pack-name {
1678 "OTSI circuit pack name";
1687 base org-openroadm-common-optical-channel-types:otsi-rate-identity;
1692 leaf-list optical-operational-mode {
1694 path "/org-openroadm-device/optical-operational-mode-profile/profile-name";
1697 "Optical operational mode leaf list";
1700 leaf-list otsigroup-capability-profile-name {
1702 path "/org-openroadm-device/otsigroup-capability-profile/profile-name";
1705 "OTSI group capability mode";
1709 grouping otn-capability-grp {
1711 "OTN capability group";
1712 leaf-list if-protection-capability {
1714 base org-openroadm-common-types:otn-protection-type;
1717 "supported protection types if protection is supported on this port";
1719 leaf proactive-DMp {
1722 "ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
1727 "only when tcm-capable=true, the following two are applicable (ie, proactive-DMt, tcm-direction";
1729 leaf proactive-DMt {
1730 when "../tcm-capable= 'true'";
1733 "ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
1735 leaf tcm-direction-capability {
1736 when "../tcm-capable= 'true'";
1737 type org-openroadm-common-types:tcm-direction-capability-type;
1739 "Supported tcm direction capability on the ODUk associated with the port.";
1741 leaf-list opu-payload-type-mapping {
1742 type org-openroadm-otn-common-types:payload-type-def;
1744 "OPU payload-type mapping OPU.";
1748 grouping otn-odu-mux-hierarchy-grp {
1750 "ODU mux hierarchy base group";
1751 list mux-capability {
1752 key "stage-number ho-odu-type ho-odu-payload-type";
1754 "low order ODU TCM direction capability";
1764 base org-openroadm-otn-common-types:odu-rate-identity;
1767 "High order ODU type";
1769 leaf ho-odu-payload-type {
1770 type org-openroadm-otn-common-types:payload-type-def;
1772 "High order ODU payload type";
1774 leaf-list supported-lo-odu-type {
1776 base org-openroadm-otn-common-types:odu-rate-identity;
1779 "Supported low order ODU type";
1781 leaf lo-odu-proactive-DMp {
1784 "low order ODU PM delay measurement (DMp) (G.709 06-2016 15.8.2.1.6)";
1786 leaf lo-odu-tcm-capable {
1789 "only when lo-odu-tcm-capable=true, the following two are applicable (ie, lo-odu-proactive-DMt, lo-odu-tcm-direction";
1791 leaf lo-odu-proactive-DMt {
1792 when "../lo-odu-tcm-capable= 'true'";
1795 "low order ODU TCM delay measurement (DMt) (G.709 06-2016 15.8.2.2.8)";
1797 leaf lo-odu-tcm-direction-capability {
1798 when "../lo-odu-tcm-capable= 'true'";
1799 type org-openroadm-common-types:tcm-direction-capability-type;
1801 "Supported tcm direction capability for low order ODU associated with the port.";
1809 base org-openroadm-otn-common-types:odtu-type-identity;
1813 "ODTU type, part of the MSI (Multiplex Structure Identifier)";
1815 leaf network-odu-rate {
1817 base org-openroadm-otn-common-types:odu-rate-identity;
1823 leaf network-oducn-n-rate {
1826 "Network ODUCn rate, eg, network-oducn-n-rate=4 for ODUC4";
1828 leaf network-ho-odu-trib-port-number {
1834 "Tributary port number";
1836 leaf-list network-ho-odu-trib-slots {
1843 "Network high order ODU trib slots";
1845 leaf-list network-ho-odu-opucn-trib-slots {
1846 type org-openroadm-otn-common-types:opucn-trib-slot-def;
1848 "Network high order ODU OPU tributary slots";
1851 "Mux group grouping";
1854 grouping org-openroadm-device-container {
1855 container org-openroadm-device {
1862 "Max. number of degrees supported by device";
1868 "Max. number of SRGs in an add/drop group";
1870 leaf max-num-bin-15min-historical-pm {
1874 "Max. number of bin the NE support for 15min historical PM";
1876 leaf max-num-bin-24hour-historical-pm {
1880 "Max. number of bin the NE support for 24hour historical PM";
1885 "Stores a list of users";
1886 uses org-openroadm-user-mgmt:user-profile;
1888 container pending-sw {
1891 "pending software information";
1892 uses org-openroadm-swdl:sw-bank;
1894 container database-info {
1897 "database restore information";
1898 uses org-openroadm-swdl:database-info-group;
1902 uses interfaces-grp;
1903 uses protection-groups;
1904 container protocols {
1906 "Contains the supported protocols";
1907 leaf lifecycle-state {
1908 type org-openroadm-common-state-types:lifecycle-state;
1910 "Lifecycle State of the protocols. Whether it is planned or deployed, etc.";
1913 uses internal-links;
1914 uses physical-links;
1915 uses external-links;
1917 when "/org-openroadm-device/info/node-type='rdm'";
1918 key "degree-number";
1921 list shared-risk-group {
1922 when "/org-openroadm-device/info/node-type='rdm'";
1926 list line-amplifier {
1927 when "/org-openroadm-device/info/node-type='ila'";
1930 "lists amplifiers in different directions";
1935 "list for Cards associated with an amplifier";
1939 uses circuit-pack-name {
1940 refine "circuit-pack-name" {
1946 key "port-direction";
1948 "Port associated with an amplifier which face the line (ila-external): traffic port.";
1949 leaf port-direction {
1950 type org-openroadm-common-alarm-pm-types:direction;
1954 "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress
1955 TXRX in case of bidirectional port";
1957 leaf tx-instance-port-direction-label {
1961 "Complements ports identification. Used notably in case of bidirectional ports,
1962 and/or in multi-degree amplifier nodes. Allows associating one of the directions
1963 specified in ila-direction-label. Shall be consistent with ila-direction-label";
1965 leaf rx-instance-port-direction-label {
1969 "Complements ports identification. Used notably in case of bidirectional ports,
1970 and/or in multi-degree amplifier nodes. Allows associating one of the directions
1971 specified in ila-direction-label. Shall be consistent with ila-direction-label";
1974 refine "circuit-pack-name" {
1977 refine "port-name" {
1983 key "port-direction";
1985 "Ports associated with OSC";
1986 leaf port-direction {
1987 type org-openroadm-common-alarm-pm-types:direction;
1991 "allows identifying ports associated with logical amp :
1992 TX for OSC circuit-pack IN RX for OSC circuit-pack OUT";
1995 refine "circuit-pack-name" {
1998 refine "port-name" {
2004 key "otdr-direction";
2006 "otdr ports associated with an ILA";
2007 leaf otdr-direction {
2011 "allows identifying associated logical amp port in which OTDR is launched:
2012 corresponds to rx-instance-port-direction-label of corresponding amplifier line-port";
2015 refine "circuit-pack-name" {
2018 refine "port-name" {
2025 when "/org-openroadm-device/info/node-type='xpdr'";
2029 list roadm-connections {
2030 when "/org-openroadm-device/info/node-type='rdm'";
2031 key "connection-name";
2034 list odu-connection {
2035 when "/org-openroadm-device/info/node-type='xpdr'";
2036 key "connection-name";
2037 uses odu-connection;
2039 list connection-map {
2040 key "connection-map-number";
2042 leaf connection-map-number {
2045 "Unique identifier for this connection-map entry";
2048 leaf circuit-pack-name {
2050 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
2056 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
2060 "Port identifier. Unique within the context of a circuit-pack.";
2064 key "circuit-pack-name port-name";
2066 leaf circuit-pack-name {
2068 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
2074 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
2078 "Port identifier. Unique within the context of a circuit-pack.";
2082 list odu-switching-pools {
2083 when "/org-openroadm-device/info/node-type='xpdr'";
2084 key "switching-pool-number";
2086 leaf switching-pool-number {
2089 "Unique identifier for this odu-switching-pool";
2091 leaf switching-pool-type {
2092 type org-openroadm-switching-pool-types:switching-pool-types;
2094 "Blocking/Non-Blocking";
2096 leaf odu-connection-direction-capabilities {
2098 base connection-direction-identity;
2101 "Bidrectional capable, or Bi and Unidirectional capable";
2103 list non-blocking-list {
2107 "List of ports in a non-blocking switch element";
2111 "Identifier for this non-blocking-list. Unique within odu-switching-pool";
2113 leaf interconnect-bandwidth-unit {
2117 "Switch fabric interconnect bandwidth unit rate in bits per second.
2118 Represents granularity of switch fabric";
2120 leaf interconnect-bandwidth {
2124 "Total interconnect bandwidth for a non-blocking element expressed as
2125 number of inter-connect-bandwidth units";
2128 key "circuit-pack-name port-name";
2129 leaf circuit-pack-name {
2131 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
2137 path "/org-openroadm-device/circuit-packs/ports/port-name";
2141 "Port name. Unique within device";
2144 list pluggable-optics-holder-list {
2145 key "circuit-pack-name slot-name";
2146 leaf circuit-pack-name {
2148 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
2152 "Name of parent circuit-pack";
2156 path "/org-openroadm-device/circuit-packs/cp-slots/slot-name";
2160 "Name of pluggable-optics-holder";
2165 list otsigroup-capability-profile {
2169 "OTSI group operational profile";
2173 "OTSI group profile name";
2175 uses otsigroup-capability-grp;
2177 list mc-capability-profile {
2181 "Media channel capability profile list";
2185 "Media channel profile name";
2187 leaf center-freq-granularity {
2188 type org-openroadm-common-optical-channel-types:frequency-GHz;
2192 "Granularity of allowed center frequencies. The base frequency for this computation is 193.1 THz (G.694.1)";
2194 leaf min-edge-freq {
2195 type org-openroadm-common-optical-channel-types:frequency-THz;
2198 "Minimum edge frequency";
2200 leaf max-edge-freq {
2201 type org-openroadm-common-optical-channel-types:frequency-THz;
2204 "Maximum edge frequency";
2206 leaf slot-width-granularity {
2207 type org-openroadm-common-optical-channel-types:frequency-GHz;
2211 "Width of a slot measured in GHz.";
2218 "Minimum number of slots permitted to be joined together to form a media channel. Must be less than or equal to the max-slots";
2225 "Maximum number of slots permitted to be joined together to form a media channel. Must be greater than or equal to the min-slots";
2228 list split-lambda-profile {
2232 "OTN capability profile";
2236 "Split lambda profile name";
2238 uses split-lambda-capability-grp;
2240 list otn-odu-mux-hierarchy-profile {
2244 "OTN ODU mux hierarchy profile list";
2248 "OTN ODU mux hierarchy profile name";
2250 uses otn-odu-mux-hierarchy-grp;
2252 list optical-operational-mode-profile {
2256 "Optical operational profile";
2260 "Optical operational profile name";
2262 uses org-openroadm-optical-operational-interfaces:optical-operational-modes-grp-attr;
2264 list otn-capability-profile {
2268 "OTN capability profile";
2272 "OTN capability profile name";
2274 uses otn-capability-grp;
2280 "Muxp profile list";
2291 grouping common-session-parms {
2293 "Common session parameters to identify a
2294 management session.";
2296 type org-openroadm-user-mgmt:username-type;
2299 "Name of the user for the session.";
2302 type ietf-nc:session-id-or-zero-type;
2305 "Identifier of the session.
2306 A NETCONF session MUST be identified by a non-zero value.
2307 A non-NETCONF session MAY be identified by the value zero.";
2310 type ietf-inet-types:ip-address;
2312 "Address of the remote host for the session.";
2316 grouping changed-by-parms {
2318 "Common parameters to identify the source
2319 of a change event, such as a configuration
2320 or capability change.";
2321 container changed-by {
2323 "Indicates the source of the change.
2324 If caused by internal action, then the
2325 empty leaf 'server' will be present.
2326 If caused by a management session, then
2327 the name, remote host address, and session ID
2328 of the session that made the change will be reported.";
2329 choice server-or-user {
2333 "If present, the change was caused
2337 uses common-session-parms;
2345 "This command is used to allow user to find an entity on the NE,
2346 The specified entity will have LED blinking.
2347 The equipmentLedOn alarm will be raised and cleared for the indication";
2349 choice equipment-entity {
2354 path "/org-openroadm-device/shelves/shelf-name";
2358 "shelf-name for the operation";
2362 leaf circuit-pack-name {
2364 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
2368 "circuit-pack-name for the operation";
2376 "led-control enabled flag.
2377 when enabled=true, equipmentLedOn alarm will be raised
2378 when enabled=false, equipmentLedOn alarm will be cleared";
2382 uses org-openroadm-common-types:rpc-response-status;
2386 rpc create-tech-info {
2388 "Collects all log data for debugging and place it in a location accessible via ftp/sftp.
2389 This model assumes ASYNC operation, i.e. the command will return after the device accepts the command,
2390 A create-tech-info-notification will be send out later for the result of the operation.
2391 The log-file is cleared at the start of every create-tech-info operation in order to ensure
2392 the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second
2393 create-tech-info command will be rejected.";
2397 path "/org-openroadm-device/shelves/shelf-name";
2400 "This optional field is used to specify the shelf for log collection.
2401 When this filed is not provided, it is expected to collect logs for the whole node.
2402 Vendor should reject the command if the whole node log collection is not supported.";
2407 "The log type a vendor can specify. Maybe used in future";
2411 uses create-tech-info-group;
2412 uses org-openroadm-common-types:rpc-response-status;
2416 rpc get-connection-port-trail {
2418 leaf connection-name {
2424 uses org-openroadm-common-types:rpc-response-status;
2426 uses org-openroadm-device-types:physical-location;
2428 refine "circuit-pack-name" {
2431 refine "port-name" {
2439 rpc disable-automatic-shutoff {
2441 choice degree-or-amp {
2444 "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";
2446 leaf degree-number {
2448 path "/org-openroadm-device/degree/degree-number";
2452 "The degree-number defined in degree";
2458 path "/org-openroadm-device/line-amplifier/amp-number";
2462 "The amp-number defined in line-amplifier";
2466 leaf support-timer {
2474 uses org-openroadm-common-types:rpc-response-status;
2480 choice degree-or-amp {
2483 "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";
2485 leaf degree-number {
2487 path "/org-openroadm-device/degree/degree-number";
2491 "The degree-number defined in degree";
2497 path "/org-openroadm-device/line-amplifier/amp-number";
2501 "The amp-number defined in line-amplifier";
2505 leaf port-direction {
2506 type org-openroadm-common-alarm-pm-types:direction;
2516 uses org-openroadm-common-types:rpc-response-status;
2520 rpc set-current-datetime {
2522 "Set the info/current-datetime leaf to the specified value.";
2524 leaf current-datetime {
2525 type ietf-yang-types:date-and-time;
2528 "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
2532 uses org-openroadm-common-types:rpc-response-status;
2536 notification create-tech-info-notification {
2538 "This Notification is sent when the create-tech-info is complete or failed.";
2539 uses create-tech-info-group;
2540 uses org-openroadm-common-types:rpc-response-status;
2543 notification otdr-scan-result {
2545 "This Notification is sent when the otdr-scan-result is complete or failed.";
2546 uses org-openroadm-common-types:rpc-response-status;
2552 notification change-notification {
2554 "The Notification that a resource has been added, modified or removed.
2555 This notification can be triggered by changes in configuration and operational data.
2556 It shall contain the changed field pointed by the xpath.
2557 Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
2559 type ietf-yang-types:date-and-time;
2561 "The time the change occurs.";
2563 uses changed-by-parms;
2568 "The <running> datastore has changed.";
2572 "The <startup> datastore has changed";
2577 "Indicates which configuration datastore has changed.";
2581 "An edit (change) record SHOULD be present for each distinct
2582 edit operation that the server has detected on
2583 the target datastore. This list MAY be omitted
2584 if the detailed edit operations are not known.
2585 The server MAY report entries in this list for
2586 changes not made by a NETCONF session.";
2588 type instance-identifier;
2590 "Top most node associated with the configuration or operational change.
2591 A server SHOULD set this object to the node within
2592 the datastore that is being altered. A server MAY
2593 set this object to one of the ancestors of the actual
2594 node that was changed, or omit this object, if the
2595 exact node is not known.";
2598 type ietf-nc:edit-operation-type;
2600 "Type of edit operation performed.
2601 A server MUST set this object to the NETCONF edit
2602 operation performed on the target datastore.";
2607 uses org-openroadm-device-container;