module org-openroadm-routing-constraints {
- namespace "http://org/openroadm/routing/constrains";
+ namespace "http://org/openroadm/routing/constraints";
prefix org-openroadm-routing-constraints;
import org-openroadm-common-node-types {
prefix org-openroadm-common-node-types;
- revision-date 2018-11-30;
+ revision-date 2021-05-28;
}
import org-openroadm-network-resource {
prefix org-openroadm-network-resource;
- revision-date 2018-11-30;
+ revision-date 2019-11-29;
}
organization
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE";
+ revision 2021-12-10 {
+ description
+ "Version 10.1";
+ }
+ revision 2021-09-24 {
+ description
+ "Version 10.0";
+ }
+ revision 2021-05-28 {
+ description
+ "Version 9.1";
+ }
+ revision 2020-12-11 {
+ description
+ "Version 8.1";
+ }
+ revision 2020-09-25 {
+ description
+ "Version 8.0";
+ }
+ revision 2020-05-29 {
+ description
+ "Version 7.1.0";
+ }
+ revision 2019-11-29 {
+ description
+ "Version 6.1.0";
+ }
revision 2019-03-29 {
description
"Version 5.0.0";
leaf-list customer-code {
type string;
}
- choice co-routing-or-general {
- case general {
- container diversity {
- uses diversity-existing-service-constraints;
- }
- container exclude {
- uses common-constraints;
- leaf-list supporting-service-name {
- type string;
- description
- "Supporting service(s) to exclude from this route.";
- }
- }
- container include {
- uses common-constraints;
- leaf-list supporting-service-name {
- type string;
- description
- "Supporting service(s) to include in this route.";
- }
- }
- container latency {
- description
- "Maximum latency allowed";
- leaf max-latency {
- type uint32;
- units "ms";
- }
+ leaf-list operational-mode {
+ type string;
+ }
+ container diversity {
+ uses diversity-existing-service-constraints;
+ uses diversity-constraints;
+ description
+ "Diversity constraints for single or bulk requests.
+ diversity-constraints provides more options for bulk requests";
+ }
+ container exclude {
+ uses common-constraints;
+ leaf-list supporting-service-name {
+ type string;
+ description
+ "Supporting service(s) to exclude from this route.";
+ }
+ }
+ container include {
+ uses common-constraints;
+ leaf-list supporting-service-name {
+ type string;
+ description
+ "Supporting service(s) to include in this route.";
+ }
+ }
+ container latency {
+ description
+ "Maximum allowed one-way latency in milliseconds";
+ leaf max-latency {
+ type decimal64 {
+ fraction-digits 3;
}
+ units "milliseconds";
+ }
+ }
container hop-count {
- description
- "Maximum hops allowed";
- leaf max-wdm-hop-count {
- type uint8;
- }
+ description
+ "Maximum hops allowed";
+ leaf max-wdm-hop-count {
+ type uint8;
+ }
leaf max-otn-hop-count {
- type uint8;
- }
- }
+ type uint8;
+ }
+ }
container TE-metric {
- description
- "Maximum cost allowed";
- leaf max-wdm-TE-metric {
- type uint32;
- }
- leaf max-otn-TE-metric {
- type uint32;
- }
- }
+ description
+ "Maximum cost allowed";
+ leaf max-wdm-TE-metric {
+ type uint32;
+ }
+ leaf max-otn-TE-metric {
+ type uint32;
+ }
+ }
container distance {
- description
- "Maximum distance allowed";
- leaf max-distance {
- type decimal64 {
- fraction-digits 2;
- }
- units "km";
- }
+ description
+ "Maximum distance allowed";
+ leaf max-distance {
+ type decimal64 {
+ fraction-digits 2;
}
+ units "km";
}
- case co-routing {
- container co-routing {
- leaf-list existing-service {
- type string;
- description
- "Diverse from existing services identified by facility CLFI";
- }
+ }
+ container co-routing {
+ list service-identifier-list {
+ description
+ "Indicates that new services that are part of the bulk service request
+ should be co-routed";
+ key "service-identifier";
+ leaf service-identifier {
+ type string;
+ description
+ "This can be a service-name or a common-id";
}
+ uses service-applicability-g;
}
}
}
+
grouping common-constraints {
leaf-list fiber-bundle {
type string;
}
}
- grouping diversity-existing-service-constraints {
- leaf-list existing-service {
- type string;
+ grouping equipment{
+ container equipment {
+ leaf roadm-srg {
+ type boolean;
+ description "ROADM shared-risk-group diversity";
+ }
+ leaf xponder-srg {
+ type boolean;
+ description "xponder eqpt-srg-id diversity";
+ }
description
- "Diverse from existing services identified by facility CLFI";
+ "Equipment Diversity Contraints";
}
+ }
+
+ grouping existing-service-applicability-g {
container existing-service-applicability {
leaf site {
type boolean;
leaf link {
type boolean;
}
+ uses equipment;
+ }
+ }
+
+ grouping service-applicability-g {
+ container service-applicability {
+ leaf site {
+ type boolean;
+ }
+ leaf node {
+ type boolean;
+ }
+ leaf srlg {
+ type boolean;
+ }
+ leaf link {
+ type boolean;
+ }
+ uses equipment;
+ }
+ }
+
+ grouping diversity-existing-service-constraints {
+ list service-identifier-list {
+ description
+ "Indicates that new services that are part of the bulk service request
+ should be co-routed";
+ key "service-indentifier";
+ leaf service-indentifier {
+ type string;
+ description
+ "This can be a service-name or a common-id";
+ }
+ uses service-applicability-g;
+ }
+ /*
+ leaf-list existing-service {
+ type string;
+ description
+ "Diverse from existing services identified by facility CLFI";
+ }
+ uses existing-service-applicability-g;
+ */
+ }
+
+ grouping diversity-constraints {
+ leaf diversity-type {
+ type enumeration {
+ enum serial {
+ value 1;
+ description
+ "Indicates that new services that are part of the bulk service request
+ should be routed serially for diversity.";
+ }
+ enum synchronous {
+ value 2;
+ description
+ "Indicates that new services that are part of the bulk service request
+ should be routed synchronously for diversity.";
+ }
+ }
+ description
+ "This is only used when creating services using service-create-bulk.
+ It is expected that 'diversity-type' should be same for all services,
+ within the group. Which means it can be either 'serial' or 'synchronous'
+ but not both.";
}
}
}