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 2017-12-15;
21 import org-openroadm-resource-types {
22 prefix org-openroadm-resource-types;
23 revision-date 2017-12-15;
25 import org-openroadm-physical-types {
26 prefix org-openroadm-physical-types;
27 revision-date 2017-12-15;
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 2017-12-15;
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 2017-12-15;
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 2017-12-15 {
105 revision 2017-09-29 {
109 revision 2017-07-28 {
111 "Version 2.0.1 - added revision-date to imports";
113 revision 2017-06-26 {
117 revision 2017-02-06 {
119 "Version 1.2.1 - removed pattern for current-datetime in info tree and rpc";
121 revision 2016-10-14 {
126 grouping create-tech-info-group {
129 path "/org-openroadm-device/shelves/shelf-name";
137 "The log file name a vendor can specify for a given log collection operation";
141 grouping device-common {
143 type org-openroadm-common-types:node-id-type;
146 "Globally unique identifier for a device.";
151 "Number assigned to a ROADM node at a
155 type org-openroadm-common-types:node-types;
159 "Identifier for node-type e.g Roadm, xponder.
160 Once the node-type is configured, it should not be modified.";
165 "Common Language Location Identifier.";
167 uses org-openroadm-physical-types:node-info;
169 type ietf-inet-types:ip-address;
171 "IP Address of device";
178 "The length of the subnet prefix";
180 leaf defaultGateway {
181 type ietf-inet-types:ip-address;
196 leaf current-ipAddress {
197 type ietf-inet-types:ip-address;
200 "Current IP Address of device";
202 leaf current-prefix-length {
208 "The current length of the subnet prefix";
210 leaf current-defaultGateway {
211 type ietf-inet-types:ip-address;
214 "Current Default Gateway";
217 type ietf-yang-types:mac-address;
220 "MAC Address of device";
222 leaf softwareVersion {
228 leaf openroadm-version {
232 "openroadm version used on the device";
237 "Template information used in the deployment.";
239 leaf current-datetime {
240 type ietf-yang-types:date-and-time;
243 "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.mm+ ";
245 container geoLocation {
254 "[From wikipedia] Latitude is an angle (defined below)
255 which ranges from 0 at the Equator to 90 (North or
256 South) at the poles";
264 "[From wikipedia] The longitude is measured as the
265 angle east or west from the Prime Meridian, ranging
266 from 0 at the Prime Meridian to +180 eastward and
274 "slots information. To be populated by NE during retrieval.";
278 "The name of this slot.";
285 leaf provisioned-circuit-pack {
287 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
290 "The supported circuit-pack. It will be empty if holder status is empty-not-prov, or installed-not-prov";
294 enum "empty-not-prov" {
297 "Slot is empty and not provisioned";
299 enum "empty-prov-match" {
302 "Slot is empty and expected type is provisioned";
304 enum "empty-prov-mismatch" {
307 "Slot is empty and an unsupported type is provisioned";
309 enum "installed-not-prov" {
312 "Slot is occupied but not provisioned";
314 enum "installed-prov-match" {
317 "Slot is occupied with matching provisioned type";
319 enum "installed-prov-mismatch" {
322 "Slot is occupied with mismatched provisioned type";
339 "Unique identifier for this shelf within a device";
345 "The shelf type: describe the shelf with a unique string.";
350 "Reflect the shelf physical location data including floor, aisle, bay values.";
352 leaf shelf-position {
355 "Reflect the shelf vertical position within an equipment bay.";
357 leaf administrative-state {
358 type org-openroadm-equipment-states-types:admin-states;
360 "Admin State of the shelf";
362 uses org-openroadm-physical-types:common-info;
363 leaf equipment-state {
364 type org-openroadm-equipment-states-types:states;
366 "equipment state for the shelf, used to track the lifecycle state.";
369 type ietf-yang-types:date-and-time;
371 "due date for the shelf.";
377 "List of slots on this shelf. To be populated by NE during retrieval.";
382 grouping circuit-packs {
384 key "circuit-pack-name";
386 "List of circuit packs. This includes common equipment, like fans, power supplies, etc.";
387 leaf circuit-pack-type {
391 "Type of circuit-pack";
393 leaf circuit-pack-product-code {
396 "Product Code for the circuit-pack";
402 grouping circuit-pack-features {
403 leaf software-load-version {
407 "Software version running on the circuit pack.";
409 list circuit-pack-features {
413 "List of features supported by the installed load and indications on whether the features have been applied or not.";
417 "Feature description.";
422 "Indicator if the feature has been activated.";
426 list circuit-pack-components {
428 container component {
430 "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.";
434 "Name of a component on the circuit-pack that can have a load applied to it.";
436 leaf current-version {
439 "Name of the load version currently running on the component.";
441 leaf version-to-apply {
444 "Name of the load version for the component that will be applied when cold restart occurs on the circuit-pack.";
450 grouping circuit-pack {
451 leaf circuit-pack-name {
454 "Unique identifier for this circuit-pack within a device";
456 leaf administrative-state {
457 type org-openroadm-equipment-states-types:admin-states;
459 "Administrative state of circuit-pack";
461 uses org-openroadm-physical-types:common-info;
462 container circuit-pack-category {
465 "General type of circuit-pack";
466 uses org-openroadm-common-types:equipment-type;
468 leaf equipment-state {
469 type org-openroadm-equipment-states-types:states;
471 "Equipment state, which complements operational state.";
473 leaf circuit-pack-mode {
477 "Circuit-pack mode allowed. e.g. NORMAL or REGEN";
481 path "/org-openroadm-device/shelves/shelf-name";
493 leaf is-pluggable-optics {
496 "True is circuitpack is pluggable optics";
499 type ietf-yang-types:date-and-time;
501 "due date for this circuit-pack.";
503 container parent-circuit-pack {
505 "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.";
506 uses circuit-pack-name;
510 "Slot name on parent-circuit-pack.";
517 "List of circuit-pack slots on this circuit-pack. To be populated by NE during retrieval.";
521 enum "pluggable-optics-holder" {
524 "slot accepts dedicated pluggable port circuit-pack";
529 "slot accepts parent circuit-pack";
534 uses circuit-pack-features;
538 "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.";
540 container roadm-port {
541 when "../port-qual='roadm-external'";
542 uses org-openroadm-port-types:roadm-port;
544 container transponder-port {
545 when "../port-qual='xpdr-network' or ../port-qual='xpdr-client' or ../port-qual='switch-network' or ../port-qual='switch-client'";
546 uses org-openroadm-port-types:common-port;
548 container otdr-port {
549 when "../port-qual='otdr'";
551 "Settings for otdr port.";
552 leaf launch-cable-length {
557 leaf port-direction {
558 type org-openroadm-common-types:direction;
562 when "../port-qual='ila-external'";
563 uses org-openroadm-port-types:common-port;
568 grouping odu-connection {
570 "Grouping used to define odu-connections.";
571 leaf connection-name {
574 "roadm-connection and odu-connection share the same resource-type and resource definition (e.g. connection)";
578 enum "unidirectional" {
581 enum "bidirectional" {
585 default "bidirectional";
587 "Directionality of connection. If bidirectional, both directions are created.";
592 path "/org-openroadm-device/interface/name";
597 container destination {
600 path "/org-openroadm-device/interface/name";
607 grouping connection {
609 "Grouping used to define connections.";
610 leaf connection-name {
613 leaf opticalControlMode {
614 type org-openroadm-common-types:optical-control-mode;
617 "Whether connection is currently in power or gain/loss mode";
618 reference "openroadm.org: Open ROADM MSA Specification.";
620 leaf target-output-power {
621 type org-openroadm-common-types:power-dBm;
623 "The output target power for this connection. When set, the ROADM will work to ensure that current-output-power reaches this level.";
628 path "/org-openroadm-device/interface/name";
633 container destination {
636 path "/org-openroadm-device/interface/name";
646 must "not( current() > /org-openroadm-device/info/max-degrees) and current() > 0" {
647 error-message "Degree not supported by device ";
649 "Validating if the degree is supported by device";
652 leaf max-wavelengths {
657 "maximum number of wavelengths";
662 "list for Cards associated with a degree";
666 uses circuit-pack-name {
667 refine "circuit-pack-name" {
672 list connection-ports {
675 "Port associated with degree: One if bi-directional; two if uni-directional";
680 refine "circuit-pack-name" {
688 container otdr-port {
690 "otdr port associated with degree.";
693 uses mc-capabilities-g;
702 "Unique identifier/number for the amplifier entry which corresponds to a logical amplifier";
705 type org-openroadm-common-types:amplifier-types;
712 type org-openroadm-common-types:line-amplifier-control-mode;
715 "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";
717 leaf amp-gain-range {
718 type org-openroadm-common-types:amplifier-gain-range;
719 default "gain-range-1";
722 "Amplifier gain-range (gain-range 1 to 4 for switched gain amplifiers)
723 gain-range-1 (default value) for standard amplifiers";
726 type org-openroadm-common-types:ratio-dB;
729 "Target overall Amplifier Signal gain, excluding ASE, including VOA attenuation.
730 Defined as optional for ODL support, but shall be considered as mandatory and provided
731 by the controller when the control-mode is set to gainLoss for amplifier setting";
734 type org-openroadm-common-types:ratio-dB;
737 "Target tilt configured in case of smart EDFA.
738 Tilt value provided as specified in Open-ROADM-MSA-specifications spreadsheet
739 Defined as optional for ODL support, but shall be considered as mandatory and provided
740 by the controller when the control-mode is set to gainLoss for amplifier setting";
742 leaf egress-average-channel-power {
743 type org-openroadm-common-types:power-dBm;
746 "Based upon the total max power across the 4.8 THz passband.
747 Defined as optional for ODL support, but shall be considered as mandatory and provided
748 by the controller when the control-mode is set to gainLoss for amplifier setting";
751 type org-openroadm-common-types:ratio-dB;
754 "Used to provide the value output VOA attenuation, optional";
758 path "../amp-number";
762 "amp-number of amp module that is functionally associated to the amplifier
763 in the opposite direction";
765 leaf ila-direction-label {
768 "Amplifier direction. Each operators may have its own naming convention.
769 Shall be consistent with tx-instance-port-direction-label and rx-instance-port-direction-label.";
773 grouping external-links {
775 "YANG definitions for external links..
776 - physical links between ROADMs and between the ROADMs and XPonders, which can be added and removed manually.";
778 key "external-link-name";
783 grouping external-link {
784 leaf external-link-name {
788 uses org-openroadm-resource-types:device-id {
793 uses org-openroadm-resource-types:port-name {
794 refine "circuit-pack-name" {
802 container destination {
803 uses org-openroadm-resource-types:device-id {
808 uses org-openroadm-resource-types:port-name {
809 refine "circuit-pack-name" {
819 grouping internal-links {
821 key "internal-link-name";
827 grouping internal-link {
828 leaf internal-link-name {
833 refine "circuit-pack-name" {
841 container destination {
843 refine "circuit-pack-name" {
853 grouping physical-links {
855 "YANG definitions for physical links.
856 - physical links (fiber, cables,etc.) between ports within a node. ";
858 key "physical-link-name";
863 grouping physical-link {
864 leaf physical-link-name {
869 refine "circuit-pack-name" {
877 container destination {
879 refine "circuit-pack-name" {
890 leaf max-add-drop-ports {
895 "The max number of ports available for a given srg";
897 leaf current-provisioned-add-drop-ports {
902 "The number of ports currently provisioned for a given srg.";
906 must "not(current()>/org-openroadm-device/info/max-srgs) and current()>0" {
907 error-message "invalid SRG";
909 "Validating if the srg is supported by add/drop group";
912 leaf wavelength-duplication {
913 type org-openroadm-common-types:wavelength-duplication-type;
917 "Whether the SRG can handle duplicate wavelengths and if so to what extent.";
922 "list for Cards associated with an add/drop group and srg";
926 uses circuit-pack-name {
927 refine "circuit-pack-name" {
932 uses mc-capabilities-g;
938 must "current() > 0" {
939 error-message "Xponder not supported by device ";
941 "Validating if the Xponder is supported by device";
945 type org-openroadm-common-types:xpdr-node-types;
948 "Identifier for xponder-type e.g Transponder, Muxponder";
954 "Indication if recolor is supported";
959 "Network Ports with in a Xponder";
964 refine "circuit-pack-name" {
974 "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id";
979 grouping degree-number {
982 path "/org-openroadm-device/degree/degree-number";
985 "Degree identifier. Unique within the context of a device.";
989 grouping circuit-pack-name {
990 leaf circuit-pack-name {
992 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
995 "Circuit-Pack identifier. Unique within the context of a device.";
1000 uses circuit-pack-name;
1003 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1006 "Port identifier. Unique within the context of a circuit-pack.";
1010 grouping srg-number {
1013 path "/org-openroadm-device/shared-risk-group/srg-number";
1016 "Shared Risk Group identifier. Unique within the context of a device.";
1020 grouping supporting-port-name {
1021 leaf supporting-circuit-pack-name {
1023 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1026 "Identifier of the supporting circuit-pack.";
1028 leaf supporting-port {
1030 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../supporting-circuit-pack-name]/ports/port-name";
1033 "Identifier of the supporting port.";
1037 grouping interface-name {
1038 leaf interface-name {
1040 path "/org-openroadm-device/interface/name";
1044 "Name of an interface. Unique within the context of a device.";
1048 grouping interfaces-grp {
1050 "OpenROADM Interface configuration parameters.";
1054 "The list of configured interfaces on the device.";
1058 "The name of the interface.";
1063 "A textual description of the interface.";
1067 base org-openroadm-interfaces:interface-type;
1071 "The type of the interface.";
1073 leaf administrative-state {
1074 type org-openroadm-equipment-states-types:admin-states;
1076 leaf operational-state {
1077 type org-openroadm-common-types:state;
1085 "circuit identifier/user label,
1086 can be used in alarm correlation and/or connection management ";
1088 leaf supporting-interface {
1090 path "/org-openroadm-device/interface/name";
1093 uses supporting-port-name;
1097 grouping protection-groups {
1099 "OpenROADM facility protection configuration parameters.";
1100 container protection-grps {
1102 "The list of configured protection groups on the device.";
1108 "Grouping of attributes related to a port object.";
1113 "Identifier for a port, unique within a circuit pack";
1118 "Type of the pluggable or fixed port.";
1121 type org-openroadm-common-types:port-qual;
1123 leaf port-wavelength-type {
1124 type org-openroadm-port-types:port-wavelength-types;
1127 "Type of port - single, multiple-wavelength, etc.";
1129 leaf port-direction {
1130 type org-openroadm-common-types:direction;
1134 "Whether port is uni (tx/rx) or bi-directional and";
1147 "circuit identifier/user label,
1148 can be used in alarm correlation and/or connection management ";
1150 leaf administrative-state {
1151 type org-openroadm-equipment-states-types:admin-states;
1152 default "outOfService";
1154 "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.";
1156 leaf operational-state {
1157 type org-openroadm-common-types:state;
1161 "Operational state of a port";
1163 leaf-list supported-interface-capability {
1165 base org-openroadm-port-types:supported-if-capability;
1169 "Interface types supported on this port";
1171 leaf logical-connection-point {
1174 "delete or replace with list logical-ports or connections?";
1176 container partner-port {
1179 "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.";
1182 container parent-port {
1185 "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.";
1191 "List of the interfaces this port supports. This is a list of names of instances in the flat instance list";
1192 uses interface-name;
1196 grouping org-openroadm-device-container {
1197 container org-openroadm-device {
1204 "Max. number of degrees supported by device";
1210 "Max. number of SRGs in an add/drop group";
1212 leaf max-num-bin-15min-historical-pm {
1216 "Max. number of bin the NE support for 15min historical PM";
1218 leaf max-num-bin-24hour-historical-pm {
1222 "Max. number of bin the NE support for 24hour historical PM";
1227 "Stores a list of users";
1228 uses org-openroadm-user-mgmt:user-profile;
1230 container pending-sw {
1232 uses org-openroadm-swdl:sw-bank;
1236 uses interfaces-grp;
1237 uses protection-groups;
1238 container protocols {
1240 "Contains the supported protocols";
1242 uses internal-links;
1243 uses physical-links;
1244 uses external-links;
1246 when "/org-openroadm-device/info/node-type='rdm'";
1247 key "degree-number";
1250 list shared-risk-group {
1251 when "/org-openroadm-device/info/node-type='rdm'";
1255 list line-amplifier {
1256 when "/org-openroadm-device/info/node-type='ila'";
1259 "lists amplifiers in different directions";
1264 "list for Cards associated with an amplifier";
1268 uses circuit-pack-name {
1269 refine "circuit-pack-name" {
1275 key "port-direction";
1277 "Port associated with an amplifier which face the line (ila-external): traffic port.";
1278 leaf port-direction {
1279 type org-openroadm-common-types:direction;
1283 "partly allows identifying ports associated with logical amp :TX for egress, RX for ingress
1284 TXRX in case of bidirectional port";
1286 leaf tx-instance-port-direction-label {
1290 "Complements ports identification. Used notably in case of bidirectional ports,
1291 and/or in multi-degree amplifier nodes. Allows associating one of the directions
1292 specified in ila-direction-label. Shall be consistent with ila-direction-label";
1294 leaf rx-instance-port-direction-label {
1298 "Complements ports identification. Used notably in case of bidirectional ports,
1299 and/or in multi-degree amplifier nodes. Allows associating one of the directions
1300 specified in ila-direction-label. Shall be consistent with ila-direction-label";
1303 refine "circuit-pack-name" {
1306 refine "port-name" {
1312 key "port-direction";
1314 "Ports associated with OSC";
1315 leaf port-direction {
1316 type org-openroadm-common-types:direction;
1320 "allows identifying ports associated with logical amp :
1321 TX for OSC circuit-pack IN RX for OSC circuit-pack OUT";
1324 refine "circuit-pack-name" {
1327 refine "port-name" {
1333 key "otdr-direction";
1335 "otdr ports associated with an ILA";
1336 leaf otdr-direction {
1340 "allows identifying associated logical amp port in which OTDR is launched:
1341 corresponds to rx-instance-port-direction-label of corresponding amplifier line-port";
1344 refine "circuit-pack-name" {
1347 refine "port-name" {
1354 when "/org-openroadm-device/info/node-type='xpdr'";
1358 list roadm-connections {
1359 when "/org-openroadm-device/info/node-type='rdm'";
1360 key "connection-name";
1363 list odu-connection {
1364 when "/org-openroadm-device/info/node-type='xpdr'";
1365 key "connection-name";
1366 uses odu-connection;
1368 list connection-map {
1369 key "connection-map-number";
1371 leaf connection-map-number {
1374 "Unique identifier for this connection-map entry";
1377 leaf circuit-pack-name {
1379 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1385 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1389 "Port identifier. Unique within the context of a circuit-pack.";
1393 key "circuit-pack-name port-name";
1395 leaf circuit-pack-name {
1397 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1403 path "/org-openroadm-device/circuit-packs[circuit-pack-name=current()/../circuit-pack-name]/ports/port-name";
1407 "Port identifier. Unique within the context of a circuit-pack.";
1411 list odu-switching-pools {
1412 when "/org-openroadm-device/info/node-type='xpdr'";
1413 key "switching-pool-number";
1415 leaf switching-pool-number {
1418 "Unique identifier for this odu-switching-pool";
1420 leaf switching-pool-type {
1421 type org-openroadm-switching-pool-types:switching-pool-types;
1423 list non-blocking-list {
1427 "List of ports in a non-blocking switch element";
1431 "Identifier for this non-blocking-list. Unique within odu-switching-pool";
1433 leaf interconnect-bandwidth-unit {
1437 "Switch fabric interconnect bandwidth unit rate in bits per second.
1438 Represents granularity of switch fabric";
1440 leaf interconnect-bandwidth {
1444 "Total interconnect bandwidth for a non-blocking element expressed as
1445 number of inter-connect-bandwidth units";
1448 key "circuit-pack-name port-name";
1449 leaf circuit-pack-name {
1451 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1457 path "/org-openroadm-device/circuit-packs/ports/port-name";
1461 "Port name. Unique within device";
1464 list pluggable-optics-holder-list {
1465 key "circuit-pack-name slot-name";
1466 leaf circuit-pack-name {
1468 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1472 "Name of parent circuit-pack";
1476 path "/org-openroadm-device/circuit-packs/cp-slots/slot-name";
1480 "Name of pluggable-optics-holder";
1488 grouping mc-capabilities-g {
1489 container mc-capabilities {
1492 "Capabilities of the media channel on a degree or SRG. This is used to validate mc-ttp provisioning on degrees and SRGs.";
1493 leaf slot-width-granularity {
1494 type org-openroadm-common-types:frequency-GHz;
1498 "Width of a slot measured in GHz.";
1500 leaf center-freq-granularity {
1501 type org-openroadm-common-types:frequency-GHz;
1505 "Granularity of allowed center frequencies. The base frequency for this computation is 193.1 THz (G.694.1)";
1512 "Minimum number of slots permitted to be joined together to form a media channel. Must be less than or equal to the max-slots";
1519 "Maximum number of slots permitted to be joined together to form a media channel. Must be greater than or equal to the min-slots";
1524 grouping common-session-parms {
1526 "Common session parameters to identify a
1527 management session.";
1529 type org-openroadm-user-mgmt:username-type;
1532 "Name of the user for the session.";
1535 type ietf-nc:session-id-or-zero-type;
1538 "Identifier of the session.
1539 A NETCONF session MUST be identified by a non-zero value.
1540 A non-NETCONF session MAY be identified by the value zero.";
1543 type ietf-inet-types:ip-address;
1545 "Address of the remote host for the session.";
1549 grouping changed-by-parms {
1551 "Common parameters to identify the source
1552 of a change event, such as a configuration
1553 or capability change.";
1554 container changed-by {
1556 "Indicates the source of the change.
1557 If caused by internal action, then the
1558 empty leaf 'server' will be present.
1559 If caused by a management session, then
1560 the name, remote host address, and session ID
1561 of the session that made the change will be reported.";
1562 choice server-or-user {
1566 "If present, the change was caused
1570 uses common-session-parms;
1578 "This command is used to allow user to find an entity on the NE,
1579 The specified entity will have LED blinking.
1580 The equipmentLedOn alarm will be raised and cleared for the indication";
1582 choice equipment-entity {
1587 path "/org-openroadm-device/shelves/shelf-name";
1591 "shelf-name for the operation";
1595 leaf circuit-pack-name {
1597 path "/org-openroadm-device/circuit-packs/circuit-pack-name";
1601 "circuit-pack-name for the operation";
1609 "led-control enabled flag.
1610 when enabled=true, equipmentLedOn alarm will be raised
1611 when enabled=false, equipmentLedOn alarm will be cleared";
1615 uses org-openroadm-common-types:rpc-response-status;
1618 rpc create-tech-info {
1620 "Collects all log data for debugging and place it in a location accessible via ftp/sftp.
1621 This model assumes ASYNC operation, i.e. the command will return after the device accepts the command,
1622 A create-tech-info-notification will be send out later for the result of the operation.
1623 The log-file is cleared at the start of every create-tech-info operation in order to ensure
1624 the up-to-date logs are collected. If a vendor does not support concurrent log collection, the second
1625 create-tech-info command will be rejected.";
1629 path "/org-openroadm-device/shelves/shelf-name";
1632 "This optional field is used to specify the shelf for log collection.
1633 When this filed is not provided, it is expected to collect logs for the whole node.
1634 Vendor should reject the command if the whole node log collection is not supported.";
1639 "The log type a vendor can specify. Maybe used in future";
1643 uses create-tech-info-group;
1644 uses org-openroadm-common-types:rpc-response-status;
1647 rpc get-connection-port-trail {
1649 leaf connection-name {
1655 uses org-openroadm-common-types:rpc-response-status;
1657 uses org-openroadm-common-types:physical-location;
1659 refine "circuit-pack-name" {
1662 refine "port-name" {
1669 rpc disable-automatic-shutoff {
1671 choice degree-or-amp {
1674 "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";
1676 leaf degree-number {
1678 path "/org-openroadm-device/degree/degree-number";
1682 "The degree-number defined in degree";
1688 path "/org-openroadm-device/line-amplifier/amp-number";
1692 "The amp-number defined in line-amplifier";
1696 leaf support-timer {
1704 uses org-openroadm-common-types:rpc-response-status;
1709 choice degree-or-amp {
1712 "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";
1714 leaf degree-number {
1716 path "/org-openroadm-device/degree/degree-number";
1720 "The degree-number defined in degree";
1726 path "/org-openroadm-device/line-amplifier/amp-number";
1730 "The amp-number defined in line-amplifier";
1734 leaf port-direction {
1735 type org-openroadm-common-types:direction;
1745 uses org-openroadm-common-types:rpc-response-status;
1748 rpc set-current-datetime {
1750 "Set the info/current-datetime leaf to the specified value.";
1752 leaf current-datetime {
1753 type ietf-yang-types:date-and-time;
1756 "The current system date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS";
1760 uses org-openroadm-common-types:rpc-response-status;
1763 notification create-tech-info-notification {
1765 "This Notification is sent when the create-tech-info is complete or failed.";
1766 uses create-tech-info-group;
1767 uses org-openroadm-common-types:rpc-response-status;
1769 notification otdr-scan-result {
1781 "Completed or Failed for the scan's final status";
1787 notification change-notification {
1789 "The Notification that a resource has been added, modified or removed.
1790 This notification can be triggered by changes in configuration and operational data.
1791 It shall contain the changed field pointed by the xpath.
1792 Typically it is not intended for frequently changing volatile data e.g. PM, power levels";
1794 type ietf-yang-types:date-and-time;
1796 "The time the change occurs.";
1798 uses changed-by-parms;
1803 "The <running> datastore has changed.";
1807 "The <startup> datastore has changed";
1812 "Indicates which configuration datastore has changed.";
1816 "An edit (change) record SHOULD be present for each distinct
1817 edit operation that the server has detected on
1818 the target datastore. This list MAY be omitted
1819 if the detailed edit operations are not known.
1820 The server MAY report entries in this list for
1821 changes not made by a NETCONF session.";
1823 type instance-identifier;
1825 "Top most node associated with the configuration or operational change.
1826 A server SHOULD set this object to the node within
1827 the datastore that is being altered. A server MAY
1828 set this object to one of the ancestors of the actual
1829 node that was changed, or omit this object, if the
1830 exact node is not known.";
1833 type ietf-nc:edit-operation-type;
1835 "Type of edit operation performed.
1836 A server MUST set this object to the NETCONF edit
1837 operation performed on the target datastore.";
1841 uses org-openroadm-device-container;