Update portmapping YANG model
[transportpce.git] / api / src / main / yang / transportpce-portmapping@2021-03-15.yang
diff --git a/api/src/main/yang/transportpce-portmapping@2021-03-15.yang b/api/src/main/yang/transportpce-portmapping@2021-03-15.yang
new file mode 100644 (file)
index 0000000..8eec700
--- /dev/null
@@ -0,0 +1,341 @@
+module transportpce-portmapping {
+  yang-version 1;
+  namespace "http://org/opendaylight/transportpce/portmapping";
+  prefix org-opendaylight-transportpce-portmapping;
+
+  import ietf-inet-types {
+    prefix ietf-inet-types;
+    revision-date 2013-07-15;
+  }
+  import org-openroadm-common-optical-channel-types {
+    prefix org-openroadm-common-optical-channel-types;
+    revision-date 2020-05-29;
+  }
+  import org-openroadm-device-types {
+     prefix org-openroadm-device-types;
+     revision-date 2019-11-29;
+  }
+  import org-openroadm-switching-pool-types {
+    prefix org-openroadm-switching-pool-types;
+    revision-date 2019-11-29;
+  }
+  import org-openroadm-port-types {
+    prefix org-openroadm-port-types;
+    revision-date 2020-03-27;
+  }
+  import transportpce-common-types {
+    prefix org-transportpce-common-types;
+    revision-date 2020-12-11;
+  }
+
+
+  organization
+    "transportPCE";
+  contact
+    "transportPCE committers - ODL";
+  description
+    "YANG definitions of RPCs supported by OLM. Copyright (c) 2017
+     AT&T and others. All rights reserved. authors: Dhruv Bhardwaj
+     ( db929a@att.com ) Shweta Vachhani ( sv111y@att.com )";
+
+  revision 2021-03-15 {
+    description
+      "Refacto model to use grouping";
+  }
+  revision 2021-03-10 {
+    description
+      "Add operational and administrative state of device port
+       in mapping";
+  }
+  revision 2020-10-12 {
+    description
+      "Upgrading imported models to 7.1.0";
+  }
+  revision 2020-08-27 {
+    description
+      "Add support to differentiate flexible and fixed
+       grid capabilities with mc-capabilities";
+  }
+  revision 2020-04-29 {
+    description
+      "Add SAPI/DAPI lcp hash value";
+  }
+  revision 2020-01-28 {
+    description
+      "Add necessary parameters to consolidate OTN
+       and address ONAP MDONS use case";
+  }
+  revision 2020-01-13 {
+    description
+      "Add OTN data from device and necessary
+       to build node inside otn topology";
+  }
+  revision 2019-11-15 {
+    description
+      "OTN support";
+  }
+  revision 2019-07-02 {
+    description
+      "Version 2. To manage device 2.2.1";
+  }
+  revision 2017-02-28 {
+    description
+      "Initial revision of port mapping model";
+  }
+
+  typedef openroadm-node-version {
+    type enumeration {
+      enum 1.2.1 {
+        value 1;
+        description
+          "Version 1.2.1";
+      }
+      enum 2.2.1 {
+        value 2;
+        description
+          "Version 2.2.1";
+      }
+      enum 7.1.0 {
+        value 3;
+        description
+          "Version 7.1.0";
+      }
+    }
+  }
+
+  grouping node-info {
+    leaf node-type {
+      type org-openroadm-device-types:node-types;
+      description
+        "Identifier for node-type e.g Roadm, xponder";
+    }
+    leaf openroadm-version {
+      type openroadm-node-version;
+    }
+    leaf node-clli {
+      type string;
+      description
+        "Common Language Location Identifier.";
+    }
+    leaf node-vendor {
+      type string;
+      description
+        "Vendor of the equipment";
+    }
+    leaf node-model {
+      type string;
+      description
+        "Physical resource model information.";
+    }
+    leaf node-ip-address {
+      type ietf-inet-types:ip-address;
+      description
+        "Current IP Address of device";
+    }
+  }
+
+  grouping mapping {
+    list mapping {
+      key "logical-connection-point";
+      description
+        "Mapping for Physical circuit pack/port/parent interfaces corresponding
+         to each logical connection point present in the node.";
+      leaf logical-connection-point {
+        type string;
+      }
+      leaf supporting-circuit-pack-name {
+        type string;
+        description
+          "Circuit pack where the logical connection point is located";
+      }
+      leaf supporting-port {
+        type string;
+        description
+          "Port where the logical connection point is located";
+      }
+      leaf supporting-oms {
+        type string;
+        description
+          "OMS interface provisioned on the port";
+      }
+      leaf supporting-ots {
+        type string;
+        description
+          "OTS interface provisioned on the port";
+      }
+      leaf port-direction {
+        type string;
+        description
+          "Useful for line port of XPDR, for which there is no indication
+           in its logical-termination-point naming";
+      }
+      leaf port-qual {
+        type string;
+        description
+          "Useful to identify from portmapping client from network ports
+           of XPDR";
+      }
+      leaf port-admin-state {
+        type string;
+        description
+          "admin-state of port";
+      }
+      leaf port-oper-state {
+        type string;
+        description
+          "operational-state of port";
+      }
+      leaf supporting-ethernet {
+        type string;
+        description
+          "Ethernet interface provisioned on the port";
+      }
+      leaf supporting-odu4 {
+        type string;
+        description
+          "ODU4 interface provisioned on the port";
+      }
+      leaf rate {
+        type string;
+        description
+          "Rate supported by the port";
+      }
+      leaf-list supported-interface-capability {
+        type identityref {
+          base org-openroadm-port-types:supported-if-capability;
+        }
+      }
+      leaf xponder-type {
+        type org-openroadm-device-types:xpdr-node-types;
+      }
+      leaf connection-map-lcp {
+        type string;
+        description
+          "For XPDR, associate two logical-connection-points from device/connnection-map
+           data";
+      }
+      leaf partner-lcp {
+        type string;
+        description
+          "For XPDR unidirectional NETWORK port, associate two logical-connection-points
+           from device/partner port data";
+      }
+      leaf lcp-hash-val {
+        type string;
+        description
+          "Hash value generated from node-id and lcp. This value will be used to map-
+           back SAPI and DAPI resource";
+      }
+    }
+  }
+
+  grouping mc-capabilities {
+    list mc-capabilities {
+      when "../node-info/node-type = 'rdm'";
+      key "mc-node-name";
+      description
+        "Capabilities of the media channel associated with a degree or a SRG.";
+      leaf mc-node-name {
+        type string;
+        description
+          "Name of the node, it has the format of DEGi-TTP or SRGj-PP
+           Where i, and j are the degree and SRG numbers respectively";
+      }
+      leaf slot-width-granularity {
+        type org-openroadm-common-optical-channel-types:frequency-GHz;
+        default "50";
+        description
+          "Width of a slot measured in GHz.";
+     }
+      leaf center-freq-granularity {
+        type org-openroadm-common-optical-channel-types:frequency-GHz;
+        default "50";
+        description
+          "Width of a slot measured in GHz.";
+      }
+    }
+  }
+
+  grouping cp-to-degree {
+    list cp-to-degree {
+      key "circuit-pack-name";
+      description
+        "This mapping helps locate degree number of the circuitpack that
+         does lldp protocol management";
+      leaf circuit-pack-name {
+        type string;
+      }
+      leaf degree-number {
+        type uint32;
+      }
+      leaf interface-name {
+        type string;
+      }
+    }
+  }
+
+  grouping switching-pool-lcp {
+    list switching-pool-lcp {
+      key "switching-pool-number";
+      description
+        "For MUXPDR and SWITCH, associates from device/odu-switching-pools data,
+         the logical-connection-points";
+      leaf switching-pool-number {
+        type uint16;
+        description
+          "Unique identifier for this odu-switching-pool";
+      }
+      leaf switching-pool-type {
+        type org-openroadm-switching-pool-types:switching-pool-types;
+      }
+      list non-blocking-list {
+        key "nbl-number";
+        leaf nbl-number {
+          type uint16;
+          description
+            "Identifier for this non-blocking-list. Unique within odu-switching-pool";
+        }
+        leaf interconnect-bandwidth-unit {
+          type uint32;
+          description
+            "Switch fabric interconnect bandwidth unit rate in bits per second.
+             Represents granularity of switch fabric";
+        }
+        leaf interconnect-bandwidth {
+          type uint32;
+          description
+            "Total interconnect bandwidth for a non-blocking element expressed as
+             number of inter-connect-bandwidth units : corresponds to capable-
+             inter-connect bandwidth";
+        }
+        leaf available-interconnect-bandwidth {
+          type uint32;
+          description
+            "Total interconnect bandwidth available for a non-blocking element can use as
+             number of inter-connect-bandwidth units";
+        }
+        leaf-list lcp-list {
+          type string;
+        }
+      }
+    }
+  }
+
+  container network {
+    list nodes {
+      key "node-id";
+      leaf node-id {
+        type string;
+        description
+          "Unique identifier for node in the network";
+      }
+      container node-info {
+        uses node-info;
+      }
+      uses mapping;
+      uses mc-capabilities;
+      uses cp-to-degree;
+      uses switching-pool-lcp;
+    }
+  }
+}