1 module org-openroadm-common-service-types {
2 namespace "http://org/openroadm/common/service/types";
3 prefix org-openroadm-common-service-types;
5 import ietf-yang-types {
7 revision-date 2013-07-15;
9 import ietf-inet-types {
11 revision-date 2013-07-15;
13 import org-openroadm-routing-constraints {
14 prefix org-openroadm-routing-constraints;
15 revision-date 2021-12-10;
17 import org-openroadm-topology {
18 prefix org-openroadm-topology;
19 revision-date 2021-12-10;
21 import org-openroadm-common-equipment-types {
22 prefix org-openroadm-common-equipment-types;
23 revision-date 2019-11-29;
25 import org-openroadm-common-state-types {
26 prefix org-openroadm-common-state-types;
27 revision-date 2019-11-29;
29 import org-openroadm-common-node-types {
30 prefix org-openroadm-common-node-types;
31 revision-date 2021-05-28;
33 import org-openroadm-resource-types {
34 prefix org-openroadm-resource-types;
35 revision-date 2021-09-24;
37 import org-openroadm-otn-common-types {
38 prefix org-openroadm-otn-common-types;
39 revision-date 2021-09-24;
41 import org-openroadm-common-types {
42 prefix org-openroadm-common-types;
43 revision-date 2021-12-10;
45 import org-openroadm-equipment-states-types {
46 prefix org-openroadm-equipment-states-types;
47 revision-date 2019-11-29;
49 import org-openroadm-service-format {
50 prefix org-openroadm-service-format;
51 revision-date 2019-11-29;
53 import org-openroadm-common-attributes {
54 prefix org-openroadm-common-attributes;
55 revision-date 2021-09-24;
57 import org-openroadm-common-phy-codes {
58 prefix org-openroadm-common-phy-codes;
59 revision-date 2021-05-28;
61 import org-openroadm-common-optical-channel-types {
62 prefix org-openroadm-common-optical-channel-types;
63 revision-date 2021-12-10;
65 import org-openroadm-resource {
66 prefix org-openroadm-resource;
67 revision-date 2021-12-10;
76 "YANG definitions of common service types.
78 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
79 All other rights reserved.
81 Redistribution and use in source and binary forms, with or without modification,
82 are permitted provided that the following conditions are met:
84 * Redistributions of source code must retain the above copyright notice, this
85 list of conditions and the following disclaimer.
86 * Redistributions in binary form must reproduce the above copyright notice,
87 this list of conditions and the following disclaimer in the documentation and/or
88 other materials provided with the distribution.
89 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
90 contributors may be used to endorse or promote products derived from this software
91 without specific prior written permission.
93 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
94 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
95 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
96 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
97 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
98 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
99 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
100 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
101 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
102 POSSIBILITY OF SUCH DAMAGE";
104 revision 2021-12-10 {
108 revision 2021-09-24 {
112 revision 2021-05-28 {
116 revision 2021-03-26 {
120 revision 2020-12-11 {
124 revision 2020-09-25 {
128 revision 2020-05-29 {
132 revision 2020-03-27 {
136 revision 2019-11-29 {
140 revision 2019-09-27 {
144 revision 2019-05-31 {
148 revision 2019-03-29 {
152 revision 2018-11-30 {
156 revision 2018-09-28 {
160 revision 2018-05-30 {
164 revision 2018-03-30 {
168 revision 2017-12-15 {
172 revision 2017-09-29 {
176 revision 2017-07-28 {
178 "Version 2.0.1 - added revision-date to imports";
180 revision 2017-06-26 {
184 revision 2016-10-14 {
189 identity service-resiliency-type-identity {
191 "A unique resiliency type identification of the service.";
194 identity unprotected {
195 base service-resiliency-type-identity;
197 "the service is not protected in the OpenROADM layer";
200 identity unprotected-diversely-routed {
201 base service-resiliency-type-identity;
203 "the service is not protected in the OpenROADM layer, but may be protected in a higher layer
204 a coupled service that may be routed partially or fully disjointly is defined";
208 base service-resiliency-type-identity;
210 "the service is protected in the OpenROADM layer : the protection is handled
211 autonomously in this layer";
214 identity restorable {
215 base service-resiliency-type-identity;
217 "the service can be restored autonomously in the OpenROADM layer";
220 identity external-trigger-restorable {
221 base service-resiliency-type-identity;
223 "the service can be restored in the OpenROADM layer, but the restoration is triggered
224 at a higher layer through service models' rpc";
227 typedef rpc-actions {
229 enum service-create {
232 enum service-feasibility-check {
235 enum service-delete {
238 enum equipment-notification {
241 enum temp-service-create {
244 enum temp-service-delete {
250 enum service-reconfigure {
253 enum service-restoration {
256 enum service-reversion {
259 enum service-reroute {
262 enum service-reroute-confirm {
265 enum network-re-optimization {
268 enum service-feasibility-check-bulk {
274 enum controller-parameters-setting {
277 enum optical-tunnel-create {
280 enum optical-tunnel-request-cancel {
283 enum fill-catalog-with-or-operational-modes {
286 enum fill-catalog-with-specific-operational-modes {
291 "rpc-actions include all the rpc methods";
294 typedef ethernet-encoding-type {
305 typedef mapping-mode-type {
310 "GFP-F - ITU-T G.7041 SubClause 7.1, Payload Only";
315 "GFP-E - ITU-T G.7041 SubClause 7.9, Payload + Preamble + Ordered Sets";
317 enum PCS-Transparent {
320 "PCS-Transparent - ITU-T G.709 Subclause 17.2 , CBR10G3 mapping to ODU2e";
325 typedef service-layer-type {
336 typedef service-notification-types {
338 enum service-create-result {
341 enum service-reconfigure-result {
344 enum service-delete-result {
347 enum service-roll-result {
350 enum service-revert-result {
353 enum service-reroute-result {
356 enum service-restoration-result {
359 enum successful-path-computation-resource-reserved {
362 enum path-computation-failed {
368 typedef connection-type {
373 enum infrastructure {
379 enum optical-tunnel {
385 typedef resource-status-type {
390 "find the best route using deployed network resources,
391 regardless of network failures; lifecycle-state must
392 be deployed and operational-state is ignored.";
397 "find the best route using deployed network resources,
398 but route around failed resources; lifecycle-state
399 must be deployed and operational-state must be
405 "find the best route using both deployed and planned
406 network resources; lifecycle-state must be planned
407 or deployed (deploying, deployed-updating, deployed-
408 augmented, and deploy-failed may be considered
409 planned states) and operational-state is ignored. if
410 planned is selected, due-date must be specified in
411 the service request.";
416 "identifies the state of network resources required to
417 complete a service request. default is deployed";
420 typedef service-condition {
422 enum restored-temporarily {
425 enum re-routed-temporarily {
428 enum activated-for-service {
431 enum activated-for-further-check {
434 enum activated-for-troubleshooting-failure {
440 grouping service-and-supporting-services {
442 "Service identifiers and supporting services details";
443 uses service-identifiers-container;
444 uses supporting-services-identifiers-and-ends;
447 grouping supporting-services-identifiers-and-ends {
448 container supporting-services {
449 list supporting-service-details {
454 "Service number of the supporting service";
456 uses service-identifiers-container;
457 uses service-ends-container;
462 grouping trail-trace {
464 "Trail trace grouping";
465 uses org-openroadm-common-attributes:trail-trace-tx;
466 uses org-openroadm-common-attributes:trail-trace-other;
469 grouping tcm-attributes {
471 "Tandem Connection Monitoring (TCM) attributes";
479 leaf monitoring-mode {
481 enum not-terminated {
483 "Not Terminated: no detection or generation.
484 Overhead is passed through the interface transparently in receive direction
485 unless extension is set for erase";
489 "Terminated: detection and generation enabled.
490 Overhead is erased (replaced with all zeros) in receive direction, unless
491 extension is set to passthrough";
495 "Monitored: detection enabled.
496 Overhead is passed through the interface transparently in receive direction
497 unless extension is set for erase";
501 "Monitoring mode of the TCM layer";
503 leaf ltc-act-enabled {
506 "enable/disable alarm transfer on detection of Loss of Tandem Connection (LTC)";
508 leaf proactive-delay-measurement-enabled {
511 "enable/disable proactive Delay Measurement for TCM";
514 type org-openroadm-otn-common-types:tcm-direction-enum;
519 uses org-openroadm-common-attributes:deg-threshold;
522 grouping otn-attributes-grp {
523 container otn-attributes {
524 when "(../service-format='OTU' or ../service-format='ODU')" {
526 "For any OTN services (OTU and OTN)";
528 uses org-openroadm-common-attributes:parent-odu-allocation;
529 uses org-openroadm-common-types:fec-grouping {
531 "OTN FEC / Forward Error Correction";
533 uses org-openroadm-common-attributes:trail-trace-tx;
534 uses org-openroadm-common-attributes:trail-trace-other;
535 uses org-openroadm-common-attributes:deg-threshold;
536 leaf-list reserved-tcm-layer {
540 key "layer tcm-direction";
543 "Tandem Connection Management";
549 grouping ethernet-subrate-attributes-grp {
550 container ethernet-attributes {
551 when "(../service-format='Ethernet')" {
553 "For any Ethernet services";
555 uses org-openroadm-common-types:fec-grouping {
557 "ETH FEC / Forward Error Correction";
559 uses org-openroadm-common-service-types:subrate-eth-sla;
563 grouping service-ends-container {
564 container service-a-end {
565 uses service-endpoint-summary;
567 container service-z-end {
568 uses service-endpoint-summary;
572 grouping service-endpoint-summary {
574 "Brief form of service-endpoint";
575 container service-endpoint-details {
580 "CLLI. Note this CLLI must match the site associated with the device-id of this endpoint";
582 uses org-openroadm-resource-types:device-id;
583 container tx-direction {
586 container rx-direction {
592 grouping intermediate-site-container {
594 "Intermediate site used in the service feasibility check output.
595 This is different from the service-endpoint structure";
596 list intermediate-site {
599 "List of intermediate sites in the service feasiblity check
607 type org-openroadm-common-node-types:node-id-type;
609 "List of nodes within a CLLI";
611 list equipment-required {
612 key "equipment-identifier";
614 "List of required equipment, including equipment type, state and
622 grouping service-identifiers-container {
623 container service-identifiers {
630 leaf version-number {
636 grouping configuration-response-common {
637 container configuration-response-common {
646 leaf response-message {
649 leaf ack-final-indicator {
656 grouping response-parameters {
657 container response-parameters {
659 "Violated soft constraints";
660 uses org-openroadm-routing-constraints:routing-constraints;
664 grouping subrate-eth-sla {
665 container subrate-eth-sla {
666 presence "Explicit assignment of subrate ethernet allocation";
668 "SLA (Service Level Agreement) for subrate Ethernet";
669 uses org-openroadm-common-types:eth-rate-and-burst-size;
673 grouping external-interface-characteristics {
674 list supported-operational-modes {
677 "list of supported operational modes associated to a preference
678 for their selection by the Path Computation Engine (1 is the highest priority)
679 only one operational mode shall be associated to a preference. 2 leaves present
680 since this mode could be either specific or an openROADM operational-mode";
684 "preference/priority associated to the operational mode";
686 leaf operational-mode-id {
689 "the supported operational mode : either openROADM or specific ";
693 type org-openroadm-common-optical-channel-types:frequency-THz;
695 "Minimum acceptable Frequency in THz.";
698 type org-openroadm-common-optical-channel-types:frequency-THz;
700 "Minimum acceptable Frequency in THz.";
702 leaf min-granularity {
703 type org-openroadm-common-optical-channel-types:frequency-GHz;
705 "Minimum grid granularity in GHz.";
709 grouping service-endpoint {
710 leaf service-format {
711 type org-openroadm-service-format:service-format;
714 "Format of the requested service: Ethernet, OTU, etc.";
717 when "../service-format != 'OMS' and ../service-format != 'ODU'" {
719 "service rate not applicable when service
720 format is roadmline or ODU; valid for OTU since service-rate has
721 already been supported for wdm layer OTU services (100 for OTU4)";
725 "Rate of the requested service in GBps";
727 leaf is-split-lambda {
731 "This flag allows to specify whether to use split-lambda. It can be user controlled
732 (or specified) or controller initiated. This is only applicable for line-service or
735 leaf split-lambda-service-rate {
736 when "../is-split-lambda = 'true' and
737 ../service-format != 'OMS' and
738 ../service-format != 'ODU'";
741 "This service rate is only applicable when the split-lambda is enabled.
742 It will help to identify how many wavelengths to use. Only applicable
743 to the WDM layer and OTUCn services.";
745 leaf other-service-format-and-rate {
748 "Used when service-format is set to other in the bookend xponder use case.
749 The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
750 and intended to allow the controller to support non-Open ROADM service formats.
751 This value encodes both the service format and the rate supported.
752 This field should not be specified when service format != other.";
754 leaf otu-service-rate {
755 when "../service-format = 'OTU'" {
757 "only applicable for OTU services";
760 base org-openroadm-otn-common-types:otu-rate-identity;
763 "OTU Rate of the requested service";
765 leaf odu-service-rate {
766 when "../service-format = 'ODU'" {
768 "only applicable for ODU services";
771 base org-openroadm-otn-common-types:odu-rate-identity;
774 "ODU Rate of the requested service";
776 leaf ethernet-encoding {
777 when "(../service-format='Ethernet')
779 (../service-rate=10)" {
781 "Applicable only to Ethernet 10G services";
783 type ethernet-encoding-type;
785 "Ethernet encoding type";
788 when "(../service-format='Ethernet')
790 (../service-rate=10)" {
792 "Mapping Mode, currently only defined for Ethernet 10G services";
794 type mapping-mode-type;
798 leaf client-phy-code {
800 base org-openroadm-common-phy-codes:client-phy-code-identity;
803 "Client PHY Code for the service end point.";
805 uses otn-attributes-grp;
810 "CLLI. Note this CLLI must match the site associated with the device-id of this
813 uses org-openroadm-resource-types:device-id;
819 "Used to list tx-direction attributes for each split-lambda wavelength/service";
830 "used to list rx-direction attributes for each split-lambda wavelength/service";
837 type org-openroadm-common-equipment-types:optic-types;
841 "Needed for communication with DWDM pluggable";
843 type org-openroadm-common-node-types:node-id-type;
845 "Node id. This is reported against the service, but may not get reflected in the service in the network.";
848 type inet:ip-address;
850 "Router IP Address. This is reported against the service, but may not get reflected in the service in the network.";
855 "URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network.";
862 "Label for service endpoint, defined by the user";
864 uses ethernet-subrate-attributes-grp;
868 "Project identifier for the service end point";
873 "Additional details associated with the service end point project";
877 typedef existing-resource-reuse-type {
879 "Used to indicate the type of resource that the existing service
880 can reuse wherever possible (best-effort)";
884 "Indicates reuse regenerator";
889 "Indicates reuse of wavelength";
892 enum spectrum-portion {
894 "Indicates reuse of frequency slot(s). Reuse the exact
895 or partial portion of the spectrum of the original service
901 "This could be a transponder/muxponder/switchponder";
906 "Reuse all possible options";
912 grouping existing-service-grouping {
913 container existing-service-attributes {
915 "This consists of all the attributes related to the existing service";
919 "This is set true if feasibility check is on an existing service with or
920 without new constraints. Feasibility is done as if current service
921 and its resources are released";
923 leaf existing-service-name {
924 when "../is-existing = 'true'";
927 "Name of the existing service";
929 leaf reuse-existing-resources {
932 "If true reuse the existing equipment wherever possible";
934 leaf-list reusable-existing-resources {
935 when "../reuse-existing-resources = 'true'";
936 type existing-resource-reuse-type;
938 "List of existing resources that can be reused;
939 This list is enabled only when the reuse-existing-equipment
945 grouping sdnc-request-header {
946 container sdnc-request-header {
953 leaf notification-url {
956 leaf request-system-id {
962 grouping service-port {
965 "From the device model perspective the port-device-name plus the port-circuit-pack-name plus the port-name uniquely identifies the port.
966 From the network model perspective the openroadm-topology-ref plus port-device-name plus port-name uniquely identify the termination point in the network model.";
967 leaf port-device-name {
970 leaf port-circuit-pack-name {
973 leaf port-circuit-pack-type {
997 grouping service-lgx {
999 leaf lgx-device-name {
1002 leaf lgx-port-name {
1005 leaf lgx-port-rack {
1008 leaf lgx-port-shelf {
1014 grouping service-tail {
1016 container tail-roadm {
1018 "ROADM on which the transponder is connected to (TID, IP Address,
1020 uses org-openroadm-resource-types:device-id;
1022 container xponder-port {
1024 "Muxponder port used in tail, that will get used as a service endpoint.";
1025 leaf circuit-pack-name {
1032 leaf tail-roadm-port-aid {
1035 "This will provide the transponder port needed to inter-city ROADM
1038 leaf tail-roadm-port-rack-location {
1041 "Transponder's location";
1046 grouping service-information {
1048 type yang:date-and-time;
1050 "Date and time service to be turn up. If time is not specified for a given date,
1051 default to midnight. Service turned up immediately if no due date is specified";
1054 type yang:date-and-time;
1057 "Date and time service to be removed";
1063 "NC code applied to wavelength service only. This is reported against the service,
1064 but may not get reflected in the service in the network.";
1069 "NCI code applied to wavelength service only. This is reported against the service,
1070 but may not get reflected in the service in the network.";
1072 leaf secondary-nci-code {
1075 "NC code applied to wavelength service only. This is reported against the service,
1076 but may not get reflected in the service in the network.";
1081 "To be included in ticket information. This is reported against the service,
1082 but may not get reflected in the service in the network.";
1084 leaf customer-contact {
1087 "Customer contact information to be included in ticket information.
1088 This is reported against the service, but may not get reflected in the service
1091 leaf operator-contact {
1094 "Operator contact information to be included in ticket information.
1095 This is reported against the service, but may not get reflected in the service
1098 leaf service-layer {
1099 type service-layer-type;
1102 "Layer associated with service (e.g. wdm or otn)";
1104 leaf clli-network-ref {
1107 "Assumption: a service would not span multiple clli-network layers.
1108 Reference to the network-id of the clli-network layer.";
1110 leaf openroadm-network-ref {
1113 "Assumption: a service would not span multiple openroadm-network layers.
1114 Reference to the network-id of the openroadm-network layer.";
1116 leaf openroadm-topology-ref {
1119 "Assumption: a service would not span multiple topology layers.
1120 Reference to the network-id of either the openroadm-topology
1121 or the otn-topology layer depending upon service-layer (wdm or otn).";
1126 "Service Level Agreement";
1128 leaf bandwidth-calendaring {
1131 "True if service is active only during a specific time period";
1133 container bw-calendaring-parameters {
1134 when "../bandwidth-calendaring = 'true'" {
1136 "Includes all attributes associated with bandwidth calendaring option.
1137 Used to set service profile : each service corresponds to one specific
1138 time-period. Services defined on complementary time periods can be linked
1139 together through the coupled-service attribute ";
1141 list bw-calendaring-coupled-services {
1142 key "service-index";
1143 leaf service-index {
1146 "service-number of the service that may be associated to the considered service";
1151 "service-name of the service that may be associated to the considered service in service-list";
1156 "common-id of the service that may be associated to the considered service in temp-service-list";
1158 leaf version-number {
1161 "common-id of the service that may be associated to the considered service in versioned-service-list";
1164 list recurrence-pattern {
1165 key "recurrence-id";
1166 leaf recurrence-id {
1169 "id of the pattern defining the time during which the service is active ";
1171 leaf-list day-of-the-week {
1196 "Each day for which the service is active from stat-time to end-time";
1200 pattern '\d{2}:\d{2}:\d{2}';
1203 "start time expressed as hour:min:seconds";
1207 pattern '\d{2}:\d{2}:\d{2}';
1210 "end time expressed as hour:min:seconds";
1216 grouping routing-metric {
1217 container routing-metric {
1219 "Describes the metrics used to route a service.
1220 All parameters of integer type, to set the priority of the routing criterion
1221 '0' means the criterion is not used,
1222 '1'coresponds to the highest priority,
1223 '255'coresponds to the lowest priority.
1224 Priority might be handled in several way : 1) To select one from several paths with the same metrics,
1225 using lower priority metrics until metrics calculated allow the selection; 2) Using priority as
1226 a weight for composite metric calculation";
1227 leaf wdm-hop-count {
1233 "Metric corresponding to the number of hop in the wdm layer";
1235 leaf otn-hop-count {
1241 "Metric corresponding to the number of hop in the otn layer";
1249 "Metric corresponding to the load of the wdm layer
1250 Can be used to avoid using heavy loaded links ";
1258 "Metric corresponding to the load of the otn layer.
1259 Can be used to avoid using heavy loaded links/switchs ";
1267 "Metric corresponding to the latency. Total path latency can be calculated from
1268 SRLG length of the OMS and the latency introduced by the equipment";
1276 "Metric associated with the distance. Total path distance can be
1277 calculated from SRLG length of the OMS";
1279 leaf wdm-TE-metric {
1285 "Used when routing shall be performed according to specific pre-defined
1286 TE-Metric. Total path metric can be calculated from OMS TE-metric attribute
1287 defined in org-openroadm-link module";
1289 leaf adaptation-number {
1295 "Metric associated with the adaptation between layers. Total path metric can
1296 can be calculated from the total number of transition between layers";
1298 leaf otn-TE-metric {
1304 "Used when routing shall be performed according to specific pre-defined
1305 metric associated with OTN (OTU/ODU level)";
1310 grouping service-resiliency {
1311 container service-resiliency {
1314 base service-resiliency-type-identity;
1317 "describes the type of resiliency and the associated layer ";
1320 when "../resiliency != 'unprotected' and ../resiliency != 'unprotected-diversely-routed'" {
1322 "revertive not applicable when service is neither protected nor restorable";
1326 "defines if the service shall revert to the initial working path
1327 after protection or restoration has been triggered and fault condition
1330 leaf wait-to-restore {
1331 when "../revertive = 'true'" {
1333 "wait-to-restore applies for service defined as revertive ";
1338 "time delay to revert to initial path after conditions for reversion are satisfied";
1341 when "../resiliency != 'unprotected' and ../resiliency != 'unprotected-diversely-routed'" {
1343 "holdoff-time applies when services are either protected or restorable";
1348 "time delay to initiate a protection or restoration event";
1350 leaf pre-calculated-backup-path-number {
1351 when "../resiliency = 'restorable' or ../resiliency = 'external-trigger-restorable'" {
1353 "when service is restorable, defines the
1354 number of paths that shall be or have been pre-calculated";
1358 "Associated to service-create / reconfigure / feasibility-check rpcs
1359 --> defines the target number of backup-paths to be calculated by PCE. This is an
1360 optional parameter : operator can provide it to conform with specific engineering rules.
1361 If not provided, PCE will evaluate the number of backup path to be provided automously.
1362 Associated with service --> gives the effective number of backup-paths
1363 returned/calculated by PCE that can be find in topology container";
1365 container coupled-service {
1366 when "../resiliency = 'unprotected-diversely-routed'" {
1368 "for unprotected-diversely-routed services only one path is defined.
1369 Allows providing a link between services that are coupled
1370 through a routing disjonction criterion";
1372 list coupled-services {
1373 key "service-index";
1374 leaf service-index {
1377 "service-number of the service that may be routed disjointly to the considered service";
1382 "service-name of the service that may be routed disjointly to the considered service in service-list";
1387 "common-id of the service that may be routed disjointly to the considered service in temp-service-list";
1389 leaf version-number {
1392 "common-id of the service that may be routed disjointly to the considered service in versioned-service-list";
1399 grouping service-order {
1401 "Service Order information for service";
1405 "Order identifier for this service";
1410 "Additional details associated with the service order";
1414 grouping resource-status {
1416 "Grouping used to consisistenty apply resource-status
1417 naming to appropriate RPC.";
1418 leaf resource-status {
1419 type resource-status-type;
1421 "identifies the state of network resources required
1422 to complete a service request.";
1430 "Identifier for the service to be created in
1431 the ROADM network, e.g., CLFI, CLCI, etc.";
1436 "To be used by the ROADM controller to identify the routing
1437 constraints received from planning application (PED).";
1440 uses sdnc-request-header;
1441 uses service-resiliency;
1442 uses routing-metric;
1443 leaf connection-type {
1444 type connection-type;
1449 leaf lifecycle-state {
1450 type org-openroadm-common-state-types:lifecycle-state;
1452 "Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc.";
1454 uses resource-status;
1455 leaf administrative-state {
1456 type org-openroadm-equipment-states-types:admin-states;
1458 "Administrative State: Intended state of service";
1460 leaf operational-state {
1461 type org-openroadm-common-state-types:state;
1464 "Operational State: Actual state of service";
1467 type service-condition;
1469 "Service Condition: Additional information about the state of the service. Only sent when applicable.";
1471 container service-a-end {
1472 uses service-endpoint;
1474 container service-z-end {
1475 uses service-endpoint;
1477 uses org-openroadm-routing-constraints:routing-constraints;
1478 uses service-information;
1484 "One-way latency (in milliseconds) on service";
1485 units "milliseconds";
1487 leaf-list fiber-span-srlgs {
1490 "Shared risk link group identifiers";
1492 list equipment-srgs {
1494 uses org-openroadm-resource-types:srg-number;
1496 leaf-list supporting-service-name {
1499 "The service name that this runs over top. If connection-type is service, then this is the related
1500 connection-type = infrastructure service, for example.";
1502 leaf current-active-path-id {
1505 "defines the current active path : '0' if active path is the working path
1506 id of the active backup path if protection or restoration has been triggered";
1508 container topology {
1510 "topology corresponds to working-path which is the default path. It defines the initial path
1511 to which services defined as revertive may revert to when the failure condition disappear";
1512 uses org-openroadm-topology:topology;
1514 container backup-topology {
1516 key "backup-path-id";
1517 leaf backup-path-id {
1522 "Several backup paths may be used when backup-paths are pre-calculated.
1523 Backup-path-id avoids 0 which is associated with working path in current-active-path";
1525 leaf failure-case-id {
1528 "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
1530 uses org-openroadm-topology:topology;
1533 container network-topology {
1534 uses org-openroadm-topology:network-topology;
1536 container network-backup-topology {
1538 key "backup-path-id";
1539 leaf backup-path-id {
1544 "Several backup paths may be used when backup-paths are pre-calculated.
1545 Backup-path-id avoids 0 which is associated with working path in current-active-path";
1547 leaf failure-case-id {
1550 "A failure case Id can be used to associate a backup-path to a specific failure (srlg, OMS,...)";
1552 uses org-openroadm-topology:network-topology;
1555 leaf is-bandwidth-locked {
1559 "Bandwidth lock (true, false) indicates whether the service is administratively
1560 prohibited from taking on more capacity - ie whether it can be used as a supporting
1561 service in any new service creations. Unlike administrative status, this does not
1562 impact any previous planned or deployed services.";
1566 grouping service-notification-result {
1570 "Identifier for the service e.g., CLFI, CLCI, etc.";
1572 leaf version-number {
1575 "Identifier for the versioned service";
1580 "Identifier for the temp service";
1583 type yang:date-and-time;
1585 "Actual date and time (if successful)";
1589 grouping service-port-list {
1591 key "circuit-pack-name port-name";
1593 "List allows to output more than one piece of equipment per CLLI;
1594 Port-name is unique in the context of circuit-pack";
1595 leaf circuit-pack-name {
1601 leaf lifecycle-state {
1602 type org-openroadm-common-state-types:lifecycle-state;
1607 grouping equipment-info {
1608 leaf equipment-type {
1611 "The set of valid value is derived from the equipment-type grouping used in the device model.";
1613 leaf equipment-identifier {
1616 leaf lifecycle-state {
1617 type org-openroadm-common-state-types:lifecycle-state;
1619 leaf equipment-rack {
1622 leaf equipment-shelf {
1625 leaf equipment-slot {
1628 leaf equipment-sub-slot {
1634 "This is set true if the equipment-required is being reused for
1637 uses service-port-list;
1640 grouping eventHorizon {
1641 leaf eventHorizonStart {
1642 type yang:date-and-time;
1644 "Start time to ensure that the service is routable and viable. Required resources shall
1645 be considered reserved from this time. If not provided, defaults to due-date.";
1647 leaf eventHorizonEnd {
1648 type yang:date-and-time;
1650 "End time to ensure that the service is routable and viable. Required resources shall
1651 be considered reserved until this time. If not provided, defaults to end-date.";
1655 grouping service-hierarchy {
1656 leaf service-identifier {
1659 "Based on the level in the service hierarchy, this indentifier can be for the
1660 proposed or existing service";
1662 leaf service-layer {
1663 type service-layer-type;
1666 "Layer associated with service (e.g. wdm or otn)";
1668 container service-a-end {
1672 "Based on the level in the service hierarchy, A-end CLLI of the
1673 proposed or existing service.";
1676 container service-z-end {
1680 "Based on the level in the service hierarchy, Z-end CLLI of the
1681 proposed or existing service.";
1684 list supporting-service {
1686 uses supporting-service;
1688 container transport-assignment {
1691 "Media Channel Trail Termination Point (MC-TTP)";
1692 uses org-openroadm-resource:mc-ttp-attributes;
1697 "List of Network Media Channel Connection Termination Point (NMC-CTP)";
1701 "This used to indentify the NMC in the MC. For example split-lambda would
1704 uses org-openroadm-resource:nmc-ctp-attributes;
1706 container odu-allocation {
1708 "parent odu allocation";
1709 leaf trib-port-number {
1714 "Assigned tributary port number in parent OPU";
1716 choice trib-slots-choice {
1718 "trib slot selection";
1720 leaf min-trib-slot {
1723 "Minimum assigned trib slots occupied in parent OPU MSI";
1725 leaf max-trib-slot {
1728 "Maximum assigned trib slots occupied in parent OPU MSI";
1732 leaf opucn-min-trib-slot {
1733 type org-openroadm-otn-common-types:opucn-trib-slot-def;
1735 "Minimum OPUCn 5G trib slots in the form of TS #A.B (G.709)";
1737 leaf opucn-max-trib-slot {
1738 type org-openroadm-otn-common-types:opucn-trib-slot-def;
1740 "Maximum OPUCn 5G trib slots in the form of TS #A.B (G.709)";
1748 "This flag is true if the spectral assignment overlaps--in part or in full--with
1749 that of the active instance of the service. A determination whether the overlap
1750 is full or partial requires a detailed comparison of spectral assignments; it
1751 is not indicated here.";
1756 grouping supporting-service {
1757 leaf service-identifier {
1763 container service-a-end {
1764 uses supporting-service-detail;
1766 container service-z-end {
1767 uses supporting-service-detail;
1771 grouping supporting-service-detail {
1772 leaf service-format {
1773 type org-openroadm-service-format:service-format;
1776 "Format of the requested service: Ethernet, OTU, etc.";
1779 when "../service-format != 'OMS' and ../service-format != 'ODU'" {
1781 "service rate not applicable when service
1782 format is roadmline or ODU; valid for OTU since service-rate has
1783 already been supported for wdm layer OTU services (100 for OTU4)";
1787 "Rate of the requested service in GBps";
1789 leaf other-service-format-and-rate {
1792 "Used when service-format is set to other in the bookend xponder use case.
1793 The use of other-service-format-and-rate is not standardized in the Open ROADM MSA
1794 and intended to allow the controller to support non-Open ROADM service formats.
1795 This value encodes both the service format and the rate supported.
1796 This field should not be specified when service format != other.";
1798 leaf otu-service-rate {
1799 when "../service-format = 'OTU'" {
1801 "only applicable for OTU services";
1804 base org-openroadm-otn-common-types:otu-rate-identity;
1807 "OTU Rate of the requested service";
1809 leaf odu-service-rate {
1810 when "../service-format = 'ODU'" {
1812 "only applicable for ODU services";
1815 base org-openroadm-otn-common-types:odu-rate-identity;
1818 "ODU Rate of the requested service";
1823 "CLLI of the supporting service";
1826 type org-openroadm-common-node-types:node-id-type;
1828 "Node id. This is reported against the service, but may not get
1829 reflected in the service in the network.";
1833 grouping max-regeneration-options {
1834 leaf max-regeneration-options {
1838 "Max regeneration options, is maximum number of regeneration-option-list elements requested in
1839 service-feasibility output. RNC can return less number of regeneration-options based on it's
1840 calculation but should not return more than max-regeneration-options. The goal of this field
1841 is to avoid RNC from having performance issues.";
1845 grouping regeneration-option-list {
1846 list regeneration-option-list {
1847 key "regeneration-option-rank";
1848 leaf regeneration-option-rank {
1851 "Regen option rank is derived rank based on optical performance or based on other metrics.";
1853 list regeneration-clli-list {
1858 "Sequence id will define order of regeneration location for output path in A to Z direction.";
1860 leaf regeneration-clli {
1863 "CLLI for the site where regeneraton is located or bring proposed.";
1865 leaf lifecycle-state {
1866 type org-openroadm-common-state-types:lifecycle-state;
1868 "Lifecycle State for regeneration CLLI indicating whether regen is already deployed or being proposed