diff --git a/models/ciena/waveserverai/src/main/java/org/onosproject/models/ciena/waveserverai/CienaWaveserverAiModelRegistrator.java b/models/ciena/waveserverai/src/main/java/org/onosproject/models/ciena/waveserverai/CienaWaveserverAiModelRegistrator.java
new file mode 100644
index 0000000..f986281
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/java/org/onosproject/models/ciena/waveserverai/CienaWaveserverAiModelRegistrator.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.models.ciena;
+
+import com.google.common.collect.ImmutableMap;
+import org.onosproject.yang.AbstractYangModelRegistrator;
+import org.onosproject.yang.gen.v1.cienawaveserversystem.rev20180104.CienaWaveserverSystem;
+import org.onosproject.yang.gen.v1.cienawaveserverport.rev20170731.CienaWaveserverPort;
+
+import org.apache.felix.scr.annotations.Component;
+import org.onosproject.yang.model.DefaultYangModuleId;
+import org.onosproject.yang.model.YangModuleId;
+import org.onosproject.yang.runtime.AppModuleInfo;
+import org.onosproject.yang.runtime.DefaultAppModuleInfo;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component(immediate = true)
+public class CienaWaveserverAiModelRegistrator extends AbstractYangModelRegistrator {
+    public CienaWaveserverAiModelRegistrator() {
+        super(CienaWaveserverAiModelRegistrator.class, getAppInfo());
+    }
+
+    private static Map<YangModuleId, AppModuleInfo> getAppInfo() {
+        Map<YangModuleId, AppModuleInfo> appInfo = new HashMap<>();
+        appInfo.put(new DefaultYangModuleId("ciena-waveserver-system", "2018-01-04"),
+                    new DefaultAppModuleInfo(CienaWaveserverSystem.class, null));
+        appInfo.put(new DefaultYangModuleId("ciena-waveserver-port", "2017-07-31"),
+                    new DefaultAppModuleInfo(CienaWaveserverPort.class, null));
+
+        return ImmutableMap.copyOf(appInfo);
+        // TODO: Do some other registration tasks...
+    }
+}
\ No newline at end of file
diff --git a/models/ciena/waveserverai/src/main/java/org/onosproject/models/ciena/waveserverai/package-info.java b/models/ciena/waveserverai/src/main/java/org/onosproject/models/ciena/waveserverai/package-info.java
new file mode 100644
index 0000000..fd62c24
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/java/org/onosproject/models/ciena/waveserverai/package-info.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Yang models for Ciena Waveserver Ai
+ */
+package org.onosproject.models.ciena.waveserverai;
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-alarm@2017-12-15.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-alarm@2017-12-15.yang
new file mode 100644
index 0000000..4a62664
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-alarm@2017-12-15.yang
@@ -0,0 +1,396 @@
+module ciena-waveserver-alarm {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-alarm";
+  prefix alarm;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines alarm data for the Waveserver Platform.";
+
+  revision 2017-12-15 {
+    description
+      "Updated defined alarm severity type from enum to bits, to accommodate multi-severity alarms.
+       Added 'reset' alarm-reason enum value for alarm history.
+       Added 'intermittent' boolean attribute to active alarms container.
+       Added 'return-string' to provide description in responses to RPC requests.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-06-16 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Added alarm-instance-string typedef with chassis-specific descriptions.
+       Removed 'cleared' and 'info' alarm-severity enum values.
+       Removed 'reset', 'delete', and 'config' alarm-reason enum values.
+       Updated description strings.
+       Moved 'reason' leaf into 'alarm-group' grouping.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  typedef alarm-severity {
+    type enumeration {
+      enum "critical" {
+        value 3;
+        description
+          "Critical Alarm Severity.";
+      }
+      enum "major" {
+        value 4;
+        description
+          "Major Alarm Severity.";
+      }
+      enum "minor" {
+        value 5;
+        description
+          "Minor Alarm Severity.";
+      }
+      enum "warning" {
+        value 6;
+        description
+          "Warning Alarm Severity.";
+      }
+    }
+    description
+      "Alarm Severity.";
+  }
+
+  typedef alarm-severity-bits {
+    type bits {
+      bit critical {
+        position 3;
+        description
+          "Critical Alarm Severity";
+      }
+      bit major {
+        position 4;
+        description
+          "Major Alarm Severity";
+      }
+      bit minor {
+        position 5;
+        description
+          "Minor Alarm Severity";
+      }
+      bit warning {
+        position 6;
+        description
+          "Warning Alarm Severity";
+      }
+    }
+    description
+      "Alarm Severity bits. A list of the supported severities of the defined alarm.";
+  }
+
+  typedef alarm-reason {
+    type enumeration {
+      enum "reset" {
+        value 1;
+        description
+          "Alarm was raised due to reset/restart operation.";
+      }
+      enum "set" {
+        value 2;
+        description
+          "Alarm is active or became active.";
+      }
+      enum "acknowledge" {
+        value 5;
+        description
+          "Alarm has been manually acknowledged.";
+      }
+      enum "clear" {
+        value 6;
+        description
+          "Alarm was cleared.";
+      }
+      enum "intermittent" {
+        value 10;
+        description
+          "Alarm is intermittent.";
+      }
+    }
+    description
+      "The reason for the alarm entry.";
+  }
+
+  typedef alarm-instance-string {
+    type string {
+      length "0..32";
+    }
+    description
+      "The object instance the alarm is raised against.
+
+       Example formats:
+
+       Waveserver      Waveserver Ai
+       ----------      -------------
+       Chassis         Chassis
+       DCN             DCN
+       ILAN-<n>        ILAN-<n>
+       PSU-<n>         PSU-<n>
+       CFU-<n>         CFU-<n>
+       n/a             Module-<s>
+       XCVR-<p>        XCVR-<s>-<p>
+       PTP-<p>         PTP-<s>-<p>
+       Port-<p>        Port-<s>-<p>
+       n/a             Channel-<s>-<p>.<c>
+       Service-<n>     Service-<n>
+      ";
+  }
+
+  grouping alarm-group {
+    description
+      "Grouping for common alarm attributes used in 'active' and 'history' lists.";
+    leaf alarm-table-id {
+      type uint32;
+      config false;
+      description
+        "A unique identifier per alarm description on a product. Alarm table id may not represent the same alarm type on a Waveserver 400G and Waverver Ai";
+    }
+    leaf reason {
+      type alarm-reason;
+      config false;
+      description
+        "The reason for the alarm entry.";
+    }
+    leaf severity {
+      type alarm-severity;
+      config false;
+      description
+        "The alarm severity. Critical alarms are service affecting. Other severities are not service affecting.";
+    }
+    leaf local-date-time {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "The local date and time when alarm was updated.";
+    }
+    leaf instance {
+      type alarm-instance-string;
+      config false;
+      description
+        "The object instance the alarm is raised against.";
+    }
+    leaf description {
+      type cienawstypes:string-maxl-44;
+      config false;
+      description
+        "The alarm description.";
+    }
+    leaf site-identifier {
+      type uint16 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "An integer to uniquely identify the site where this Waveserver is located.";
+    }
+    leaf group-identifier {
+      type uint8 {
+        range "0..99";
+      }
+      config false;
+      description
+        "An integer to uniquely identify a group of Waveservers within a site.";
+    }
+    leaf member-identifier {
+      type uint8 {
+        range "0..254";
+      }
+      config false;
+      description
+        "An integer to uniquely identify a Waveserver chassis within a group of Waveservers.";
+    }
+  }
+
+  container waveserver-alarms {
+    config false;
+    description
+      "Waveserver alarms.";
+    list active {
+      key "alarm-instance-id";
+      config false;
+      description
+        "Active alarms";
+      leaf alarm-instance-id {
+        type uint32;
+        description
+          "The alarm Instance ID uniquely identifies the occurence of the alarm since the last restart of the Waveserver. It can be used to correlate the raise and clear of the occurence.";
+      }
+      leaf acknowledged {
+        type boolean;
+        config false;
+        description
+          "Alarm has been acknowledged. Acknowledged alarms are not counted in the alarm statistics.";
+      }
+      leaf intermittent {
+        type boolean;
+        config false;
+        description
+          "Alarm condition is intermittent.";
+      }
+      uses alarm-group;
+    }
+    list history {
+      key "history-id";
+      config false;
+      description
+        "Alarm history";
+      leaf history-id {
+        type uint32;
+        config false;
+        description
+          "The alarm history ID uniquely identifies the alarm and action (set or clear) since the Waveserver was installed.";
+      }
+      leaf alarm-instance-id {
+        type uint32;
+        config false;
+        description
+          "The alarm instance ID.";
+      }
+      uses alarm-group;
+    }
+    list defined {
+      key "alarm-table-id";
+      config false;
+      description
+        "Defined Alarm Table";
+      leaf alarm-table-id {
+        type uint32;
+        config false;
+        description
+          "The alarm table ID.";
+      }
+      leaf enabled {
+        type boolean;
+        config false;
+        description
+          "Alarm is enabled.";
+      }
+      leaf active {
+        type boolean;
+        config false;
+        description
+          "Alarm is active.";
+      }
+      leaf threshold {
+        type uint32;
+        config false;
+        description
+          "The alarm threshold.";
+      }
+      leaf cap {
+        type uint32;
+        config false;
+        description
+          "The alarm cap.";
+      }
+      leaf severity {
+        type alarm-severity-bits;
+        config false;
+        description
+          "The alarm severity (or severities) supported for this alarm type.";
+      }
+      leaf instance {
+        type alarm-instance-string;
+        config false;
+        description
+          "The object instance the alarm is raised against.";
+      }
+      leaf description {
+        type cienawstypes:string-maxl-44;
+        config false;
+        description
+          "The alarm description.";
+      }
+    }
+    list statistics {
+      key "index";
+      config false;
+      description
+        "Waveserver Alarm Statistics.";
+      leaf index {
+        type uint32;
+        config false;
+        description
+          "The alarm statistics table index.";
+      }
+      leaf active {
+        type boolean;
+        description
+          "There is alarm active for the alarm type. Acknowledged alarms are not counted.";
+      }
+      leaf disabled {
+        type boolean;
+        description
+          "There is alarm disabled for the alarm type.";
+      }
+      leaf count {
+        type uint32;
+        description
+          "The count of active alarms for the alarm type. Acknowledged alarms are not counted.";
+      }
+      leaf cumulative {
+        type uint32;
+        description
+          "The cumulative count of active alarms for the alarm type ";
+      }
+      leaf type {
+        type cienawstypes:string-maxl-32;
+        description
+          "The alarm type.";
+      }
+    }
+  }
+  rpc waveserver-alarm-acknowledge-active {
+    description
+      "Acknowledge an active alarm";
+    input {
+      leaf alarm-instance-id {
+        type uint32;
+        description
+          "The instance ID of the active alarm. If not specified, all alarms will be acknowledged.";
+      }
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-alarm-clear-history {
+    description
+      "Clear the alarm history.";
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-chassis@2017-12-20.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-chassis@2017-12-20.yang
new file mode 100644
index 0000000..3155d9d
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-chassis@2017-12-20.yang
@@ -0,0 +1,820 @@
+module ciena-waveserver-chassis {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-chassis";
+  prefix chassis;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines Chassis data for the Waveserver Platform.";
+
+  revision 2017-12-20 {
+    description
+      "Added management-port 'mode', 'speed', and 'duplex' for wayside channel configuration.
+       Added return code for waveserver-wcs-restart and waveserver-wcs-restart-cold.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-09-05 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Added 'waveserver ai chassis' type.
+       Updated several UI and description strings.
+       Added access-panel container, wcs container, and inventory view of components.
+       Added slot power management and wcs-restart RPCs.
+       Removed 10-second delay from restart RPCs and remove restart-cancel RPCs.
+       Added access-panel capabilities.
+       Moved several device-id attributes into common grouping used by all components.
+       Removed 'number-of-fans', 'number-of-temperature-sensors' and 'status' list from 'cooling-fan-units/properties' container.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  typedef mac-block-size {
+    type uint32;
+    description
+      "MAC address block size.";
+  }
+
+  typedef chassis-operation-state {
+    type enumeration {
+      enum "uninstalled" {
+        description
+          "Device is not present.";
+      }
+      enum "normal" {
+        description
+          "Device is up/operational.";
+      }
+      enum "faulted" {
+        description
+          "Device is in a failed/faulted state.";
+      }
+    }
+    description
+      "Chassis operational state. Applies to PSU, CFU, AP, WCS components in the chassis.";
+  }
+
+  grouping device-id-group {
+    description
+      "Common group of device identification attributes for components in the chassis.";
+    leaf model {
+      type cienawstypes:string-maxl-50;
+      config false;
+      description
+        "Device model information.";
+    }
+    leaf description {
+      type cienawstypes:string-maxl-254;
+      config false;
+      description
+        "Device description.";
+    }
+    leaf serial-number {
+      type cienawstypes:string-maxl-50;
+      config false;
+      description
+        "Device serial number information.";
+    }
+    leaf part-number {
+      type cienawstypes:string-maxl-50;
+      config false;
+      description
+        "Device part number information.";
+    }
+    leaf revision {
+      type cienawstypes:string-maxl-50;
+      config false;
+      description
+        "Device revision information.";
+    }
+    leaf manufacture-date {
+      type cienawstypes:string-maxl-50;
+      config false;
+      description
+        "Device Manufacture Date, in string format.";
+    }
+  }
+
+  container waveserver-chassis {
+    description
+      "Waveserver chassis configuration data and operational data.";
+    container identification {
+      config false;
+      description
+        "Waveserver chassis identification attributes.";
+      leaf type {
+        type enumeration {
+          enum "unknown chassis" {
+            description
+              "Chassis type is unknown.";
+          }
+          enum "waveserver chassis" {
+            description
+              "Waveserver WL3e Chassis.";
+          }
+          enum "waveserver ai chassis" {
+            description
+              "Waveserver Ai Chassis.";
+          }
+        }
+        config false;
+        description
+          "Type enum value of the Chassis.";
+      }
+      uses device-id-group;
+    }
+    container capabilities {
+      config false;
+      description
+        "Waveserver chassis capabilities attributes.";
+      container control {
+        description
+          "Control module capabilities for this chassis.";
+        leaf count {
+          type uint8;
+          config false;
+          description
+            "Number of control modules available to the Waveserver chassis.";
+        }
+        leaf type {
+          type cienawstypes:module-type-bits;
+          config false;
+          description
+            "Chassis control module type. Can be integrated or field-replaceable.";
+        }
+      }
+      container access-panel {
+        description
+          "Access Panel capabilities for this chassis.";
+        leaf count {
+          type uint8;
+          config false;
+          description
+            "Number of access panel modules available to the Waveserver chassis.";
+        }
+        leaf type {
+          type cienawstypes:module-type-bits;
+          config false;
+          description
+            "Chassis access panel module type. Can be integrated or field-replaceable.";
+        }
+      }
+      container switch {
+        description
+          "Switch module capabilities for this chassis.";
+        leaf count {
+          type uint8;
+          config false;
+          description
+            "Number of switch modules available to the Waveserver chassis.";
+        }
+        leaf type {
+          type cienawstypes:module-type-bits;
+          config false;
+          description
+            "Chassis switch module type. Can be integrated or field-replaceable.";
+        }
+      }
+      container modules {
+        description
+          "Service module capabilities for this chassis.";
+        leaf count {
+          type uint8;
+          config false;
+          description
+            "Total number of service modules available to a fully-equipped Waveserver chassis.";
+        }
+        leaf type {
+          type cienawstypes:module-type-bits;
+          config false;
+          description
+            "Chassis service module type. Can be integrated or field-replaceable.";
+        }
+      }
+      container fan {
+        description
+          "Fan unit capabilities for this chassis.";
+        leaf count {
+          type uint8;
+          config false;
+          description
+            "Number of fan units available to the Waveserver chassis.";
+        }
+        leaf type {
+          type cienawstypes:module-type-bits;
+          config false;
+          description
+            "Chassis fan unit type. Can be integrated or field-replaceable.";
+        }
+      }
+      container air-filter {
+        description
+          "Air filter capabilities for this chassis.";
+        leaf supported {
+          type cienawstypes:yes-no-enum;
+          config false;
+          description
+            "Is the air filter supported on the Waveserver chassis.";
+        }
+        leaf type {
+          type cienawstypes:module-type-bits;
+          config false;
+          description
+            "Chassis air filter type. Can be integrated or field-replaceable.";
+        }
+        leaf active {
+          type cienawstypes:yes-no-enum;
+          config false;
+          description
+            "Is the air filter active on the Waveserver chassis.";
+        }
+      }
+      container power {
+        description
+          "Power supply capabilities for this chassis.";
+        leaf count {
+          type uint8;
+          config false;
+          description
+            "Number of power supply units available to the Waveserver chassis.";
+        }
+        leaf type {
+          type cienawstypes:module-type-bits;
+          config false;
+          description
+            "Power supply unit type. Can be integrated or field-replaceable.";
+        }
+        leaf redundant {
+          type cienawstypes:yes-no-enum;
+          config false;
+          description
+            "Is redundant power present for the Waveserver chassis.";
+        }
+        leaf dc-support {
+          type cienawstypes:yes-no-enum;
+          config false;
+          description
+            "Whether or not DC power is supported.";
+        }
+      }
+    }
+    container mac-addresses {
+      config false;
+      description
+        "MAC Addresses used by this chassis.";
+      container chassis {
+        description
+          "Chassis MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "The Chassis Base MAC address. All MACs used in shelf offset from this.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "Number of MACs allocated by manufacturing.";
+        }
+      }
+      container local-management {
+        description
+          "Local management MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "Local Management MAC address.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "Local Management MAC Block Size.";
+        }
+      }
+      container remote-management {
+        description
+          "Remote management MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "Remote Management MAC address.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "Remote Management MAC address Block Size.";
+        }
+      }
+      container dcn {
+        description
+          "Data Communications Network (DCN) port MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "DCN MAC address.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "DCN MAC address Block Size.";
+        }
+      }
+      container ilan-1 {
+        description
+          "Internal Local Area Network 1 (ILAN-1) port MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "ILAN-1 MAC address.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "ILAN-1 MAC address Block Size.";
+        }
+      }
+      container ilan-2 {
+        description
+          "Internal Local Area Network 2 (ILAN-2) port MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "ILAN-2 MAC address.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "ILAN-2 MAC address Block Size.";
+        }
+      }
+      container ports {
+        description
+          "Port MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "Port Base MAC address.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "Port Base MAC address Block Size.";
+        }
+      }
+      container reserved {
+        description
+          "Reserved MAC address information.";
+        leaf base {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "Reserved MAC address.";
+        }
+        leaf block-size {
+          type mac-block-size;
+          config false;
+          description
+            "Reserved MAC address Block Size.";
+        }
+      }
+    }
+    list power-supply-units {
+      key "psu-number";
+      description
+        "Power Supply Unit Status.";
+      leaf psu-number {
+        type uint8;
+        description
+          "Unique index number for the Power Supply Unit list entry.";
+      }
+      leaf name {
+        type cienawstypes:string-maxl-16;
+        config false;
+        description
+          "Name of the power supply unit. In the format of PSU-<slot #>. Contains the slot number of the power supply unit.";
+      }
+      container state {
+        description
+          "Power Supply Unit state information.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether admin state of the Power Supply Unit is enabled or disabled. Disabled state masks the alarms only.";
+        }
+        leaf operational-state {
+          type chassis-operation-state;
+          config false;
+          description
+            "Operational state of the Power Supply Unit.";
+        }
+      }
+      container properties {
+        config false;
+        description
+          "All the operational data fields of this Power Supply Unit.";
+        leaf type {
+          type enumeration {
+            enum "AC" {
+              description
+                "Power supply unit uses AC power.";
+            }
+            enum "DC" {
+              description
+                "Power supply unit uses DC power.";
+            }
+            enum "unequipped" {
+              description
+                "Power supply unit is unequipped.";
+            }
+          }
+          config false;
+          description
+            "The Power Supply Unit type.";
+        }
+      }
+      container device-id {
+        config false;
+        description
+          "Device identification information of this Power Supply Unit.";
+        uses device-id-group;
+      }
+    }
+    list cooling-fan-units {
+      key "cfu-number";
+      description
+        "Cooling Fan Unit Status.";
+      leaf cfu-number {
+        type uint8;
+        description
+          "Unique index number for the Cooling Fan Unit list entry.";
+      }
+      leaf name {
+        type cienawstypes:string-maxl-16;
+        config false;
+        description
+          "Name of the cooling fan unit. In the format of CFU-<slot #>. Contains the slot number of the cooling fan unit.";
+      }
+      container state {
+        description
+          "Cooling Fan Unit state information.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether Admin State of the cooling fan unit is enabled or disabled. Disabled state masks the alarms only.";
+        }
+        leaf operational-state {
+          type chassis-operation-state;
+          config false;
+          description
+            "Operational state of the Cooling Fan unit.";
+        }
+      }
+      container properties {
+        config false;
+        description
+          "All the operational data fields of this Cooling Fan Unit.";
+        leaf automatic-control {
+          type cienawstypes:enabled-disabled-enum;
+          config false;
+          description
+            "Whether Automatic Control of the cooling fan unit is enabled or disabled.";
+        }
+      }
+      container device-id {
+        config false;
+        description
+          "Device Identification information of this Cooling Fan Unit.";
+        uses device-id-group;
+      }
+    }
+    list management-port {
+      key "index";
+      description
+        "A list to manage chassis ports.";
+      leaf index {
+        type uint16;
+        description
+          "Index value of the management port.";
+      }
+      container id {
+        config false;
+        description
+          "Identification information of this management port.";
+        leaf name {
+          type cienawstypes:string-maxl-16;
+          config false;
+          description
+            "Name of the Port. The names are predefined.";
+        }
+      }
+      container state {
+        description
+          "Management port state information.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether Admin State is enabled or disabled for this management port.";
+        }
+        leaf operational-state {
+          type cienawstypes:up-down-enum;
+          config false;
+          description
+            "Operational state of this management port.";
+        }
+      }
+      container properties {
+        description
+          "All the operational data of this management port.";
+        leaf type {
+          type enumeration {
+            enum "ethernet" {
+              description
+                "Ethernet management port.";
+            }
+            enum "serial" {
+              description
+                "Serial management port.";
+            }
+          }
+          config false;
+          description
+            "Management port type. If the port is DCN, ilan-1, or ilan-2, the port type will be Ethernet. If the port is Console, the port type will be Serial.";
+        }
+        leaf mode {
+          type enumeration {
+            enum "management" {
+              description
+                "Management port is configured as a local management interface. This is the default mode.";
+            }
+            enum "wayside-channel" {
+              description
+                "Management port is configured as a wayside communications channel.";
+            }
+          }
+          description
+            "Management port mode. Specifies whether the port is configured as a local management interface or wayside communications channel (carry through).";
+        }
+        leaf speed {
+          type enumeration {
+            enum "Unknown" {
+              description
+                "Unknown port speed.";
+            }
+            enum "10M" {
+              description
+                "10 Mbps Ethernet.";
+            }
+            enum "100M" {
+              description
+                "100 Mbps Ethernet.";
+            }
+            enum "1G" {
+              description
+                "1 Gbps Ethernet.";
+            }
+            enum "10G" {
+              description
+                "10 Gbps Ethernet.";
+            }
+          }
+          config false;
+          description
+            "Management port speed.";
+        }
+        leaf duplex {
+          type enumeration {
+            enum "Unknown" {
+              description
+                "Unknown port duplex.";
+            }
+            enum "full" {
+              description
+                "Port is full-duplex.";
+            }
+            enum "half" {
+              description
+                "Port is half-duplex.";
+            }
+          }
+          config false;
+          description
+            "Management port duplex.";
+        }
+        leaf mac-address {
+          type cienawstypes:mac-string;
+          config false;
+          description
+            "MAC Address of the management port.";
+        }
+        leaf max-frame-size {
+          type uint32;
+          config false;
+          description
+            "Max Frame Size of the management port.";
+        }
+      }
+    }
+    container access-panel {
+      description
+        "Access Panel";
+      container state {
+        description
+          "Access Panel state information.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether admin state of the Access Panel is enabled or disabled.";
+        }
+        leaf operational-state {
+          type chassis-operation-state;
+          config false;
+          description
+            "Operational state of the Access Panel.";
+        }
+      }
+      container properties {
+        config false;
+        description
+          "All the operational data fields of the Access Panel.";
+        leaf type {
+          type enumeration {
+            enum "type-1" {
+              description
+                "Access Panel Type 1.";
+            }
+            enum "unequipped" {
+              description
+                "Access Panel is unequipped.";
+            }
+          }
+          config false;
+          description
+            "The Access Panel type.";
+        }
+      }
+      container device-id {
+        config false;
+        description
+          "Device identification information of the Access Panel.";
+        uses device-id-group;
+      }
+    }
+    container wcs {
+      description
+        "Waveserver Control Subsystem. This is the control module for the Waveserver Ai chassis.";
+      container state {
+        description
+          "WCS control module state information.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether admin state of the WCS is enabled or disabled.";
+        }
+        leaf operational-state {
+          type chassis-operation-state;
+          config false;
+          description
+            "Operational state of the WCS.";
+        }
+      }
+      container properties {
+        config false;
+        description
+          "All the operational data fields of the WCS.";
+        leaf type {
+          type enumeration {
+            enum "type-1" {
+              description
+                "WCS Type 1.";
+            }
+            enum "unequipped" {
+              description
+                "WCS is unequipped.";
+            }
+          }
+          config false;
+          description
+            "The WCS module type.";
+        }
+      }
+      container device-id {
+        config false;
+        description
+          "Device identification information of the WCS.";
+        uses device-id-group;
+      }
+    }
+    container inventory {
+      config false;
+      description
+        "The inventory view of all of the components in the chassis.";
+      list component {
+        key "index";
+        config false;
+        description
+          "Inventory component details.";
+        leaf index {
+          type uint16;
+          description
+            "Index value of the inventory component.";
+        }
+        leaf name {
+          type cienawstypes:string-maxl-16;
+          config false;
+          description
+            "Name of the inventory component (e.g., Chassis, DCN, WCS, AP, PSU-<n>, CFU-<n>, etc.).";
+        }
+        uses device-id-group;
+      }
+    }
+    list slot {
+      key "slot-id";
+      description
+        "Chassis slot power management.";
+      leaf slot-id {
+        type uint8 {
+          range "1..3";
+        }
+        mandatory true;
+        description
+          "Chassis slot number, Key value for the chassis slot list.";
+      }
+      leaf power-state {
+        type cienawstypes:power-state;
+        config false;
+        description
+          "Slot power state.";
+      }
+      leaf actual-power-state {
+        type cienawstypes:on-off-enum;
+        config false;
+        description
+          "The actual power state (on or off) of the specified slot.";
+      }
+    }
+  }
+  rpc waveserver-chassis-restart {
+    description
+      "Initiates a chassis warm restart. This restarts the WCS and all modules.";
+  }
+  rpc waveserver-chassis-restart-cold {
+    description
+      "Initiates a chassis cold restart. This restarts the WCS and all modules.";
+  }
+  rpc waveserver-wcs-restart {
+    description
+      "Initiates a WCS warm restart.";
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-wcs-restart-cold {
+    description
+      "Initiates a WCS cold restart.";
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-configuration@2017-08-24.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-configuration@2017-08-24.yang
new file mode 100644
index 0000000..bc9aa68
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-configuration@2017-08-24.yang
@@ -0,0 +1,229 @@
+module ciena-waveserver-configuration {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-configuration";
+  prefix configuration;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+  import ciena-waveserver-system {
+    prefix system;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines configuration data for the Waveserver.";
+
+  revision 2017-08-24 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Added 'include-default-settings' option to waveserver-configuration-save RPC (from WS 1.5).
+       Added 'include-default-settings' option to waveserver-configuration-backup RPC (from WS 1.5).
+       Remove 'max-elements' from the configuration-files/file-list.";
+    reference "";
+  }
+
+  container waveserver-configuration {
+    description
+      "Waveserver Configuration: configuration data and operational data.";
+    container configuration-files {
+      config false;
+      description
+        "List of saved configuration files on the Waveserver.";
+      leaf-list file-list {
+        type cienawstypes:string-maxl-254;
+        config false;
+        description
+          "The filename list for all the saved configuration files.";
+      }
+    }
+    container default-files {
+      description
+        "Waveserver Configuration: default configuration files.";
+      leaf save-filename {
+        type cienawstypes:string-maxl-254;
+        description
+          "The filename for the default save configuration file.";
+      }
+      leaf load-filename {
+        type cienawstypes:string-maxl-254;
+        description
+          "The filename for the default load configuration file.";
+      }
+      leaf backup-load-filename {
+        type cienawstypes:string-maxl-254;
+        description
+          "The filename for the backup load configuration file.";
+      }
+    }
+  }
+  rpc waveserver-configuration-save {
+    description
+      "Save configuration.";
+    input {
+      leaf filename {
+        type cienawstypes:string-maxl-254;
+        description
+          "The name of the configuration file.";
+      }
+      leaf strip-user-comments {
+        type boolean;
+        description
+          "Indicates whether to remove user comments when saving the configuration file.";
+      }
+      leaf include-default-settings {
+        type boolean;
+        description
+          "Indicates whether to include the default settings when saving the configuration file.";
+      }
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-configuration-backup {
+    description
+      "Backup configuration to the specified file.";
+    input {
+      leaf filename {
+        type cienawstypes:string-maxl-254;
+        mandatory true;
+        description
+          "The name of the backup configuration file.";
+      }
+      leaf strip-user-comments {
+        type boolean;
+        description
+          "Indicates whether to remove user comments when saving the backup configuration file.";
+      }
+      leaf include-default-settings {
+        type boolean;
+        description
+          "Indicates whether to include the default settings when saving the backup configuration file.";
+      }
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-configuration-install {
+    description
+      "Install configuration from specified file.";
+    input {
+      leaf filename {
+        type cienawstypes:string-maxl-254;
+        mandatory true;
+        description
+          "The name of the configuration file to install.";
+      }
+      uses system:server-settings-group;
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-configuration-check {
+    description
+      "Check the configuration file for errors.";
+    input {
+      leaf filename {
+        type cienawstypes:string-maxl-254;
+        description
+          "The name of the configuration file to check.";
+      }
+      uses system:server-settings-group;
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-configuration-reset-to-user-config {
+    description
+      "Restart the Waveserver and apply the user-specified configuration file.";
+    input {
+      leaf filename {
+        type cienawstypes:string-maxl-254;
+        description
+          "The name of the user-specified configuration file.";
+      }
+      leaf revert-timeout {
+        type cienawstypes:string-maxl-32;
+        description
+          "The amount of time before auto-reversion to the previous configuration file after the Waveserver restarts. Must follow format: number/time: N[ymwdhms], e.g 1h10m3s for 1 hour 10 minutes and 3 seconds.";
+      }
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-configuration-cancel-revert {
+    description
+      "Cancel the configuration automatic revert when the auto-revert timer is running.";
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-lldp@2017-06-16.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-lldp@2017-06-16.yang
new file mode 100644
index 0000000..1dc2385
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-lldp@2017-06-16.yang
@@ -0,0 +1,1098 @@
+module ciena-waveserver-lldp {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-lldp";
+  prefix lldp;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines the configuration and operational data for Link Layer Discovery Protocol (LLDP) on the Waveserver.";
+
+  revision 2017-06-16 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Changed 'port-id' from integer to string format.";
+    reference "";
+  }
+
+  typedef chassis-id {
+    type string {
+      length "1..256";
+    }
+    description
+      "Chassis Identifier";
+  }
+
+  typedef chassis-id-subtype {
+    type enumeration {
+      enum "unknown" {
+        value 0;
+      }
+      enum "chassis-component" {
+        value 1;
+      }
+      enum "interface-alias" {
+        value 2;
+      }
+      enum "port-component" {
+        value 3;
+      }
+      enum "mac-address" {
+        value 4;
+      }
+      enum "network-address" {
+        value 5;
+      }
+      enum "interface-name" {
+        value 6;
+      }
+      enum "local" {
+        value 7;
+      }
+    }
+  }
+
+  typedef lldp-system-capability-bits {
+    type bits {
+      bit other {
+        position 0;
+      }
+      bit repeater {
+        position 1;
+      }
+      bit bridge {
+        position 2;
+      }
+      bit wlan-access-point {
+        position 3;
+      }
+      bit router {
+        position 4;
+      }
+      bit telephone {
+        position 5;
+      }
+      bit docsis {
+        position 6;
+      }
+      bit station-only {
+        position 7;
+      }
+    }
+  }
+
+  typedef lldp-management-address-subtype {
+    type enumeration {
+      enum "reserved" {
+        value 0;
+      }
+      enum "ipv4" {
+        value 1;
+      }
+      enum "ipv6" {
+        value 2;
+      }
+      enum "nsap" {
+        value 3;
+      }
+      enum "hdlc" {
+        value 4;
+      }
+      enum "bbn-1822" {
+        value 5;
+      }
+      enum "ieee-802" {
+        value 6;
+      }
+      enum "e-163" {
+        value 7;
+      }
+      enum "e164-smds-atm" {
+        value 8;
+      }
+      enum "f69-telex" {
+        value 9;
+      }
+      enum "x121-x25-fr" {
+        value 10;
+      }
+      enum "ipx" {
+        value 11;
+      }
+      enum "appletalk" {
+        value 12;
+      }
+      enum "decnet-iv" {
+        value 13;
+      }
+      enum "banyan-vines" {
+        value 14;
+      }
+      enum "e164-w-nsap" {
+        value 15;
+      }
+      enum "dns" {
+        value 16;
+      }
+      enum "distinguish-name" {
+        value 17;
+      }
+      enum "as-number" {
+        value 18;
+      }
+      enum "xtp-over-ipv4" {
+        value 19;
+      }
+      enum "xtp-over-ipv6" {
+        value 20;
+      }
+      enum "xtp-native-mode" {
+        value 21;
+      }
+      enum "fibre-ch-ww-port" {
+        value 22;
+      }
+      enum "fibre-ch-ww-node" {
+        value 23;
+      }
+      enum "gwid" {
+        value 24;
+      }
+    }
+    description
+      "";
+  }
+
+  typedef lldp-management-address-interface-subtype {
+    type enumeration {
+      enum "unknown" {
+        value 0;
+      }
+      enum "un-known" {
+        value 1;
+      }
+      enum "if-index" {
+        value 2;
+      }
+      enum "system-port-number" {
+        value 3;
+      }
+    }
+    description
+      "";
+  }
+
+  typedef lldp-port-id-sub-type {
+    type enumeration {
+      enum "unknown" {
+        value 0;
+      }
+      enum "interface-alias" {
+        value 1;
+      }
+      enum "port-component" {
+        value 2;
+      }
+      enum "mac-address" {
+        value 3;
+      }
+      enum "network-address" {
+        value 4;
+      }
+      enum "interface-name" {
+        value 5;
+      }
+      enum "agent-circuit-id" {
+        value 6;
+      }
+      enum "local" {
+        value 7;
+      }
+    }
+    description
+      "Local port id sub-type.";
+  }
+
+  typedef lldp-auto-neg-capability {
+    type enumeration {
+      enum "unknown" {
+        value 0;
+      }
+      enum "b-10base-t" {
+        value 1;
+      }
+      enum "b-10base-t-fd" {
+        value 2;
+      }
+      enum "b-100base-t4" {
+        value 3;
+      }
+      enum "b-100base-tx" {
+        value 4;
+      }
+      enum "b-100base-tx-full-duplex" {
+        value 5;
+      }
+      enum "b-100base-t2" {
+        value 6;
+      }
+      enum "b-100base-t2-full-duplex" {
+        value 7;
+      }
+      enum "b-full-duplex-pause" {
+        value 8;
+      }
+      enum "b-full-duplex-asymmetric-pause" {
+        value 9;
+      }
+      enum "b-full-duplex-symmetric-pause" {
+        value 10;
+      }
+      enum "b-full-duplex-asymmetric-symmetric-pause" {
+        value 11;
+      }
+      enum "b-1000base-x" {
+        value 12;
+      }
+      enum "b-1000base-x-full-duplex" {
+        value 13;
+      }
+      enum "b-1000base-t" {
+        value 14;
+      }
+      enum "b-1000base-t-full-duplex" {
+        value 15;
+      }
+    }
+  }
+
+  typedef lldp-operational-mau-type {
+    type enumeration {
+      enum "unknown" {
+        value 0;
+      }
+      enum "dot3-mau-type-aui" {
+        value 1;
+      }
+      enum "dot3-mau-type-10-base-5" {
+        value 2;
+      }
+      enum "dot3-mau-type-foirl" {
+        value 3;
+      }
+      enum "dot3-mau-type-10-base-2" {
+        value 4;
+      }
+      enum "dot3-mau-type-10-base-t" {
+        value 5;
+      }
+      enum "dot3-mau-type-10-base-fp" {
+        value 6;
+      }
+      enum "dot3-mau-type-10-base-fb" {
+        value 7;
+      }
+      enum "dot3-mau-type-10-base-fl" {
+        value 8;
+      }
+      enum "dot3-mau-type-10-broad36" {
+        value 9;
+      }
+      enum "dot3-mau-type-10-base-thd" {
+        value 10;
+      }
+      enum "dot3-mau-type-10-base-tfd" {
+        value 11;
+      }
+      enum "dot3-mau-type-10-base-flhd" {
+        value 12;
+      }
+      enum "dot3-mau-type-10-base-flfd" {
+        value 13;
+      }
+      enum "dot3-mau-type-100-base-t4" {
+        value 14;
+      }
+      enum "dot3-mau-type-100-base-txhd" {
+        value 15;
+      }
+      enum "dot3-mau-type-100-base-txfd" {
+        value 16;
+      }
+      enum "dot3-mau-type-100-base-fxhd" {
+        value 17;
+      }
+      enum "dot3-mau-type-100-base-fxfd" {
+        value 18;
+      }
+      enum "dot3-mau-type-100-base-t2hd" {
+        value 19;
+      }
+      enum "dot3-mau-type-100-base-t2fd" {
+        value 20;
+      }
+      enum "dot3-mau-type-1000-base-xhd" {
+        value 21;
+      }
+      enum "dot3-mau-type-1000-base-xfd" {
+        value 22;
+      }
+      enum "dot3-mau-type-1000-base-lxhd" {
+        value 23;
+      }
+      enum "dot3-mau-type-1000-base-lxfd" {
+        value 24;
+      }
+      enum "dot3-mau-type-1000-base-sxhd" {
+        value 25;
+      }
+      enum "dot3-mau-type-1000-base-sxfd" {
+        value 26;
+      }
+      enum "dot3-mau-type-1000-base-cxhd" {
+        value 27;
+      }
+      enum "dot3-mau-type-1000-base-cxfd" {
+        value 28;
+      }
+      enum "dot3-mau-type-1000-base-thd" {
+        value 29;
+      }
+      enum "dot3-mau-type-1000-base-tfd" {
+        value 30;
+      }
+      enum "dot3-mau-type-10Gig-base-x" {
+        value 31;
+      }
+      enum "dot3-mau-type-10Gig-base-lx4" {
+        value 32;
+      }
+      enum "dot3-mau-type-10Gig-base-r" {
+        value 33;
+      }
+      enum "dot3-mau-type-10Gig-base-er" {
+        value 34;
+      }
+      enum "dot3-mau-type-10Gig-base-lr" {
+        value 35;
+      }
+      enum "dot3-mau-type-10Gig-base-sr" {
+        value 36;
+      }
+      enum "dot3-mau-type-10Gig-base-w" {
+        value 37;
+      }
+      enum "dot3-mau-type-10Gig-base-ew" {
+        value 38;
+      }
+      enum "dot3-mau-type-10Gig-base-lw" {
+        value 39;
+      }
+      enum "dot3-mau-type-10Gig-base-sw" {
+        value 40;
+      }
+      enum "dot3-mau-type-10Gig-base-cx4" {
+        value 41;
+      }
+      enum "dot3-mau-type-2-base-tl" {
+        value 42;
+      }
+      enum "dot3-mau-type-10-pass-ts" {
+        value 43;
+      }
+      enum "dot3-mau-type-100-base-bx10D" {
+        value 44;
+      }
+      enum "dot3-mau-type-100-base-bx10u" {
+        value 45;
+      }
+      enum "dot3-mau-type-100-base-lx10" {
+        value 46;
+      }
+      enum "dot3-mau-type-1000-base-bx10d" {
+        value 47;
+      }
+      enum "dot3-mau-type-1000-base-bx10u" {
+        value 48;
+      }
+      enum "dot3-mau-type-1000-base-lx10" {
+        value 49;
+      }
+      enum "dot3-mau-type-1000-base-px10d" {
+        value 50;
+      }
+      enum "dot3-mau-type-1000-base-px10u" {
+        value 51;
+      }
+      enum "dot3-mau-type-1000-base-px20d" {
+        value 52;
+      }
+      enum "dot3-mau-type-1000-base-px20u" {
+        value 53;
+      }
+      enum "invalid" {
+        value 54;
+      }
+    }
+  }
+
+  typedef supported-notsupported-enum {
+    type enumeration {
+      enum "not-supported" {
+        value 0;
+      }
+      enum "supported" {
+        value 1;
+      }
+    }
+  }
+
+  typedef lldp-port-class {
+    type enumeration {
+      enum "pd" {
+        value 0;
+      }
+      enum "pse" {
+        value 1;
+      }
+    }
+  }
+
+  typedef lldp-pair-control {
+    type enumeration {
+      enum "cannot" {
+        value 0;
+      }
+      enum "can" {
+        value 1;
+      }
+    }
+  }
+
+  typedef lldp-power-pair {
+    type enumeration {
+      enum "not-support" {
+        value 0;
+      }
+      enum "signal" {
+        value 1;
+      }
+      enum "spare" {
+        value 2;
+      }
+      enum "unknown" {
+        value 3;
+      }
+    }
+  }
+
+  typedef lldp-power-class {
+    type enumeration {
+      enum "not-support" {
+        value 0;
+      }
+      enum "class-0" {
+        value 1;
+      }
+      enum "class-1" {
+        value 2;
+      }
+      enum "class-2" {
+        value 3;
+      }
+      enum "class-3" {
+        value 4;
+      }
+      enum "class-4" {
+        value 5;
+      }
+      enum "unknown" {
+        value 6;
+      }
+    }
+    description
+      "Power class.";
+  }
+
+  grouping system-capability-group {
+    description
+      "group of LLDP system capability data.";
+    leaf capabilities {
+      type lldp-system-capability-bits;
+      description
+        "LLDP system capabilities.";
+    }
+    leaf capability-enabled {
+      type lldp-system-capability-bits;
+      description
+        "Enabled LLDP system capability.";
+    }
+  }
+
+  grouping management-address-group {
+    description
+      "group of LLDP management address data.";
+    leaf address {
+      type cienawstypes:string-maxl-256;
+      config false;
+      description
+        "Management address.";
+    }
+    leaf subtype {
+      type lldp-management-address-subtype;
+      config false;
+      description
+        "Management adress subtype.";
+    }
+  }
+
+  grouping management-address-interface-group {
+    description
+      "group of LLDP management address data.";
+    leaf interface-subtype {
+      type lldp-management-address-interface-subtype;
+      config false;
+      description
+        "Management address interface subtype.";
+    }
+    leaf oid-if-number {
+      type uint32;
+      config false;
+      description
+        "Management address interface OID interface number.";
+    }
+    leaf oid {
+      type cienawstypes:string-maxl-128;
+      config false;
+      description
+        "Management address interface OID.";
+    }
+  }
+
+  grouping port-id-group {
+    description
+      "group of port identification data.";
+    leaf id {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "port identifier.";
+    }
+    leaf sub-type {
+      type lldp-port-id-sub-type;
+      config false;
+      description
+        "Port identificer sub-type.";
+    }
+    leaf descriptor {
+      type cienawstypes:string-maxl-256;
+      config false;
+      description
+        "Port descriptor";
+    }
+  }
+
+  container waveserver-lldp {
+    description
+      "Waveserver LLDP configuration and operational data.";
+    container chassis {
+      container state {
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Administrative state of chassis level LLDP.";
+        }
+        leaf notification-interval {
+          type uint16 {
+            range "5 .. 32768";
+          }
+          description
+            "LLDP Notification interval.";
+        }
+      }
+      container id {
+        config false;
+        leaf chassis-id {
+          type chassis-id;
+          description
+            "Chassis ID.";
+        }
+        leaf chassis-id-subtype {
+          type chassis-id-subtype;
+          description
+            "Chassis Id subtype.";
+        }
+        leaf system-name {
+          type cienawstypes:string-maxl-256;
+          description
+            "System Name. Max string length of 255 characters.";
+        }
+        leaf system-description {
+          type cienawstypes:string-maxl-256;
+          description
+            "System escription. Max string length of 255 characters.";
+        }
+      }
+      leaf time-to-live {
+        type uint16;
+        config false;
+        description
+          "Time To Live.";
+      }
+      container system-capabilities {
+        config false;
+        description
+          "LLDP system capabilities.";
+        uses system-capability-group;
+      }
+      container local-management-address-table {
+        config false;
+        description
+          "LLDP local management address table.";
+        list address-table {
+          key "index";
+          config false;
+          max-elements "4";
+          leaf index {
+            type uint32;
+            description
+              "Unique id, read-only attribute.";
+          }
+          uses management-address-group;
+          uses management-address-interface-group;
+        }
+      }
+      container statistics {
+        config false;
+        leaf last-change {
+          type uint32;
+          description
+            "remote table last change in 1/100 seconds.";
+        }
+        leaf inserts {
+          type uint32;
+          description
+            "Inserts.";
+        }
+        leaf deletes {
+          type uint32;
+          description
+            "Deletes.";
+        }
+        leaf drops {
+          type uint32;
+          description
+            "Drops.";
+        }
+        leaf age-outs {
+          type uint32;
+          description
+            "Age outs.";
+        }
+      }
+    }
+    list port {
+      key "port-id";
+      leaf port-id {
+        type cienawstypes:port-name;
+        mandatory true;
+        description
+          "Port ID/name string.";
+      }
+      container properties {
+        description
+          "LLDP port level properties.";
+        leaf mode {
+          type enumeration {
+            enum "unknown" {
+              value 0;
+            }
+            enum "tx-only" {
+              value 1;
+            }
+            enum "snoop" {
+              value 2;
+            }
+            enum "tx-rx" {
+              value 3;
+            }
+            enum "disabled" {
+              value 4;
+            }
+          }
+          description
+            "LLDP port admin state";
+        }
+        leaf notification {
+          type cienawstypes:on-off-enum;
+          description
+            "Turn notification on or off";
+        }
+      }
+      container statistics {
+        config false;
+        description
+          "Port level statistics.";
+        leaf out-packets-total {
+          type uint32;
+          config false;
+          description
+            "Out packets.";
+        }
+        leaf in-packets-total {
+          type uint32;
+          config false;
+          description
+            "In packets";
+        }
+        leaf in-err-packets-discarded {
+          type uint32;
+          config false;
+          description
+            "Discarded in error packets";
+        }
+        leaf in-errored-tlv {
+          type uint32;
+          config false;
+          description
+            "In errored TLV";
+        }
+        leaf tlv-discarded {
+          type uint32;
+          config false;
+          description
+            "Discarded TLV.";
+        }
+        leaf unknown-tlv {
+          type uint32;
+          config false;
+          description
+            "Unknown TLV";
+        }
+        leaf aged-out-total {
+          type uint32;
+          config false;
+          description
+            "Aged out total.";
+        }
+      }
+      container local {
+        config false;
+        description
+          "Port LLDP local data.";
+        container id {
+          description
+            "LLDP port identification.";
+          uses port-id-group;
+        }
+        container specification-802-3 {
+          config false;
+          description
+            "LLDP Specification 802.3.";
+          container mac-physical-config {
+            config false;
+            description
+              "Mac physical configuration.";
+            leaf auto-negotiation-support {
+              type supported-notsupported-enum;
+              description
+                "Auto-negotiation support.";
+            }
+            leaf auto-negotiation-status {
+              type cienawstypes:enabled-disabled-enum;
+              description
+                "Auto-negotiation status.";
+            }
+            leaf pmd-auto-negotiation-advertised-capability {
+              type lldp-auto-neg-capability;
+              description
+                "PMD Auto-negotiation advertised capability.";
+            }
+            leaf operational-mau-type {
+              type lldp-operational-mau-type;
+              description
+                "Operational MAU type.";
+            }
+          }
+          container power-via-mdi {
+            config false;
+            description
+              "Power Via MDI.";
+            leaf port-class {
+              type lldp-port-class;
+              description
+                "Port class";
+            }
+            leaf mdi {
+              type supported-notsupported-enum;
+              description
+                "mdi";
+            }
+            leaf mdi-power-support {
+              type cienawstypes:enabled-disabled-enum;
+              description
+                "MDI power support.";
+            }
+            leaf pair-control {
+              type lldp-pair-control;
+              description
+                "Pair control.";
+            }
+            leaf power-pair {
+              type lldp-power-pair;
+              description
+                "Power pair.";
+            }
+            leaf power-class {
+              type lldp-power-class;
+              description
+                "Power class.";
+            }
+          }
+          leaf max-frame-size {
+            type uint16;
+            description
+              "Maximum frame size.";
+          }
+        }
+        list local-management-address-table {
+          key "index";
+          config false;
+          max-elements "4";
+          leaf index {
+            type uint32;
+            description
+              "Unique id, read-only attribute.";
+          }
+          uses management-address-group;
+          uses management-address-interface-group;
+        }
+      }
+      container remote {
+        config false;
+        description
+          "LLDP port level remote data.";
+        container chassis {
+          config false;
+          container chassis-id {
+            leaf chassis-id {
+              type chassis-id;
+              description
+                "Chassis ID. Read only attribute.";
+            }
+            leaf chassis-id-subtype {
+              type chassis-id-subtype;
+              description
+                "Chassis Id subtype.";
+            }
+            leaf system-name {
+              type cienawstypes:string-maxl-256;
+              description
+                "System Name. Max string length of 255 characters.";
+            }
+            leaf system-description {
+              type cienawstypes:string-maxl-256;
+              description
+                "System escription. Max string length of 255 characters.";
+            }
+          }
+          leaf time-to-live {
+            type uint16;
+            config false;
+            description
+              "Time to live.";
+          }
+          container system-capabilities {
+            config false;
+            uses system-capability-group;
+          }
+          list management-address-table {
+            key "index";
+            config false;
+            max-elements "4";
+            leaf index {
+              type uint32;
+              description
+                "Unique id, read-only attribute.";
+            }
+            uses management-address-group;
+            uses management-address-interface-group;
+          }
+        }
+        container port {
+          config false;
+          container id {
+            config false;
+            description
+              "LLDP port identification.";
+            uses port-id-group;
+          }
+          container specification-802-3 {
+            config false;
+            description
+              "LLDP Specification 802.3.";
+            container mac-physical-config {
+              config false;
+              description
+                "Mac physical configuration.";
+              leaf auto-negotiation-support {
+                type supported-notsupported-enum;
+                description
+                  "Auto-negotiation support.";
+              }
+              leaf auto-negotiation-status {
+                type cienawstypes:enabled-disabled-enum;
+                description
+                  "Auto-negotiation status.";
+              }
+              leaf pmd-auto-negotiation-advertised-capability {
+                type lldp-auto-neg-capability;
+                description
+                  "PMD Auto-negotiation advertised capability.";
+              }
+              leaf operational-mau-type {
+                type lldp-operational-mau-type;
+                description
+                  "Operational MAU type.";
+              }
+            }
+            container power-via-mdi {
+              config false;
+              description
+                "Power Via MDI.";
+              leaf port-class {
+                type lldp-port-class;
+                description
+                  "Port class";
+              }
+              leaf mdi {
+                type supported-notsupported-enum;
+                description
+                  "mdi";
+              }
+              leaf mdi-power-support {
+                type cienawstypes:enabled-disabled-enum;
+                description
+                  "MDI power support.";
+              }
+              leaf pair-control {
+                type lldp-pair-control;
+                description
+                  "Pair control.";
+              }
+              leaf power-pair {
+                type lldp-power-pair;
+                description
+                  "Power pair.";
+              }
+              leaf power-class {
+                type lldp-power-class;
+                description
+                  "Power class.";
+              }
+            }
+            leaf max-frame-size {
+              type uint16;
+              description
+                "Maximum frame size.";
+            }
+          }
+          list organization-definition-information-table {
+            key "index";
+            config false;
+            description
+              "Remote organization definition information table.";
+            leaf index {
+              type uint32;
+              description
+                "Unique id, read-only attribute.";
+            }
+            leaf oui {
+              type cienawstypes:string-maxl-16;
+              description
+                "OUI.";
+            }
+            leaf subtype {
+              type uint8;
+              description
+                "Sub-Type.";
+            }
+            leaf information {
+              type cienawstypes:string-maxl-256;
+              description
+                "Information.";
+            }
+          }
+          list unrecognized-tlv-table {
+            key "index";
+            config false;
+            description
+              "Remote unrecognized TLV table.";
+            leaf index {
+              type uint32;
+              description
+                "Unique id, read-only attribute.";
+            }
+            leaf type {
+              type uint8;
+              description
+                "Type.";
+            }
+            leaf length {
+              type uint32;
+              description
+                "Length.";
+            }
+            leaf value {
+              type cienawstypes:string-maxl-256;
+              description
+                "Value.";
+            }
+          }
+        }
+      }
+    }
+  }
+  rpc waveserver-lldp-clear-statistics {
+    description
+      "Clear the LLDP statistics.";
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+    }
+  }
+  rpc waveserver-lldp-clear-port-statistics {
+    description
+      "Clear the LLDP statistics for the specified port.";
+    input {
+      leaf port-id {
+        type cienawstypes:port-name;
+        mandatory true;
+        description
+          "The port ID/name string.";
+      }
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-module@2017-12-12.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-module@2017-12-12.yang
new file mode 100644
index 0000000..5fc21de
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-module@2017-12-12.yang
@@ -0,0 +1,221 @@
+module ciena-waveserver-module {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-module";
+  prefix mod;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+  import ciena-waveserver-chassis {
+    prefix ciena-ws-chassis;
+  }
+  import ciena-waveserver-xcvr {
+    prefix xcvr;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines Module data for the Waveserver Platform.";
+
+  revision 2017-12-12 {
+    description
+      "Added 'cmd-4' module type support.
+       Renamed 'faulted' operational-state to 'fault' and add 'down' state.
+       Renamed 'motr-8x100' enum to 'motr-100-2'.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-09-05 {
+    description
+      "Waveserver Platform Data Model
+       Initial revision.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  typedef module-type {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Unknown module type.";
+      }
+      enum "filler" {
+        description
+          "Filler card. Operational only, cannot be used for user create.";
+      }
+      enum "motr-100-2" {
+        description
+          "MOTR service module with 2 WaveLogic Ai line ports and 8 100G capable client ports.";
+      }
+      enum "cmd-4" {
+        description
+          "CMD-4 passive photonics module.";
+      }
+    }
+    description
+      "Module type.";
+  }
+
+  typedef module-operational-state {
+    type enumeration {
+      enum "unequipped" {
+        value 0;
+        description
+          "Module is not detected.";
+      }
+      enum "deprovisioned" {
+        value 1;
+        description
+          "Module is detected but uninitialized.";
+      }
+      enum "initializing" {
+        value 2;
+        description
+          "Module initialization started.";
+      }
+      enum "up" {
+        value 3;
+        description
+          "Module is up/operational.";
+      }
+      enum "fault" {
+        value 4;
+        description
+          "Module is faulted.";
+      }
+      enum "shutdown" {
+        value 5;
+        description
+          "Module is shutdown/powered off.";
+      }
+      enum "shutting-down" {
+        value 6;
+        description
+          "Module is shutting down.";
+      }
+      enum "unsupported" {
+        value 7;
+        description
+          "Module type is not supported.";
+      }
+      enum "mismatched" {
+        value 8;
+        description
+          "Detected module type does not match provisioned module type.";
+      }
+      enum "down" {
+        value 9;
+        description
+          "Module is down/disabled.";
+      }
+    }
+    description
+      "Module operational state.";
+  }
+
+  container waveserver-modules {
+    description
+      "Waveserver service module configuration data and operational data.";
+    list modules {
+      key "module-id";
+      description
+        "Module list.";
+      leaf module-id {
+        type cienawstypes:name-string;
+        mandatory true;
+        description
+          "Unique access identifier string of the Module, which may just be a slot number (e.g. '1'). Key value for the Module list. Read-only attribute.";
+      }
+      container id {
+        description
+          "ID information of this Module instance.";
+        leaf type {
+          type module-type;
+          mandatory true;
+          description
+            "The service module type. Must be specified on creation, and cannot be modified.";
+        }
+        leaf label {
+          type cienawstypes:description-string;
+          description
+            "The user-specified label string for this module.";
+        }
+        uses ciena-ws-chassis:device-id-group;
+      }
+      container state {
+        description
+          "State information of this Module instance.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether Admin State is enabled or disabled for this Module.";
+        }
+        leaf operational-state {
+          type module-operational-state;
+          config false;
+          description
+            "Operational state of this Module.";
+        }
+        leaf last-restart {
+          type cienawstypes:string-maxl-32;
+          config false;
+          description
+            "The date and time of last restart in the format of a human readable string. e.g 'Wed Jun 30 21:49:08 2015', or 'N/A' if unavailable.";
+        }
+        leaf last-restart-reason {
+          type cienawstypes:restart-reason;
+          config false;
+          description
+            "Cause for the last restart.";
+        }
+        leaf uptime {
+          type cienawstypes:string-maxl-32;
+          config false;
+          description
+            "The time since last restart of the module, in the format of a human readable string. e.g '041d 11h 29m 53s', or 'N/A' if unavailable.";
+        }
+      }
+      container subcomponents {
+        config false;
+        description
+          "Module subcomponent (XCVR) references.";
+        leaf-list xcvrs {
+          type leafref {
+            path "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:xcvr-id";
+          }
+          description
+            "Module subcomponent (XCVR) reference list.";
+        }
+      }
+    }
+  }
+  rpc waveserver-module-restart {
+    description
+      "Initiates a module warm restart.";
+    input {
+      leaf module-id {
+        type cienawstypes:name-string;
+        mandatory true;
+        description
+          "Unique Module ID string.";
+      }
+    }
+  }
+  rpc waveserver-module-restart-cold {
+    description
+      "Initiates a module cold restart.";
+    input {
+      leaf module-id {
+        type cienawstypes:name-string;
+        mandatory true;
+        description
+          "Unique Module ID string.";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-pm@2018-01-16.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-pm@2018-01-16.yang
new file mode 100644
index 0000000..852a52a
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-pm@2018-01-16.yang
@@ -0,0 +1,1624 @@
+module ciena-waveserver-pm {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-pm";
+  prefix pm;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+            Hanover, Maryland 21076
+            U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines performance monitoring data for the Waveserver.";
+
+  revision 2018-01-16 {
+    description
+      "Added DGD max/avg and PDL max/avg PM counters to PTP modem performance instances.
+       Updated Valid range for history bin-numbers are defined.";
+    reference "";
+  }
+  revision 2017-09-18 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Update 'pm-interface-type' enum values to { ptp | port | channel }.
+       Updated 'pm-profile-type' enum values to { optical-power | modem-performance | otu-performance | odu-performance | ethernet-performance }.
+       Removed obsolete 'mac-layer' containers.
+       Removed 'instance-type' leafs and typedef.
+       Removed 'pm-bin-state' leafs and typedef.
+       Removed 'actual' from power-counts grouping.
+       Removed 'post-fec-bit-error-rate' leafs.
+       Removed 'alignment' from 'instance-properties' grouping.
+       Restructured pm bin and instance data into nested groupings.
+       Changed pm counters from leafs to containers with 'value', 'invalid-data-flag', and 'supported' leafs for each.
+       Updated several counter attributes to match the Waveserver Ai data model.
+       Removed 'current-bin-id' from pm instance state container.
+       Removed 'bin-number' from the current bin id containers, only needed for history bins list.
+       Removed 'persistence-interval' and 'persistence-storage-location' from 'global-config' container.";
+    reference "";
+  }
+
+  grouping pm-instance-id-container {
+    description
+      "Grouping for PM instance id container and attributes.";
+    container id {
+      config false;
+      description
+        "PM instance identification.";
+      leaf instance-id {
+        type uint32;
+        description
+          "ID of the PM instance.";
+      }
+      leaf profile-type {
+        type pm-profile-type;
+        description
+          "The PM profile type.";
+      }
+    }
+  }
+
+  grouping pm-instance-state-container {
+    description
+      "Grouping for PM instance state container and attributes.";
+    container state {
+      description
+        "PM instance state.";
+      leaf admin-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "The configured administrative state of the port.";
+      }
+      leaf operational-state {
+        type cienawstypes:enabled-disabled-enum;
+        config false;
+        description
+          "The operational state of the PM instance.";
+      }
+      leaf collection-start-date-time {
+        type cienawstypes:string-maxl-64;
+        config false;
+        description
+          "The PM stats collection starting date and time.";
+      }
+      leaf collection-end-date-time {
+        type cienawstypes:string-maxl-64;
+        config false;
+        description
+          "The PM stats collection ending date and time.";
+      }
+    }
+  }
+
+  grouping pm-instance-properties-container {
+    description
+      "Grouping for PM instance properties container and attributes.";
+    container properties {
+      config false;
+      description
+        "PM instance properties.";
+      leaf configuration-mode {
+        type pm-configuration-mode;
+        description
+          "The PM instance configuration mode";
+      }
+      leaf configured-bin-count {
+        type uint32;
+        description
+          "The configured number of history bins.";
+      }
+      leaf configured-bin-duration {
+        type uint32;
+        units "minutes";
+        description
+          "The configured PM bin duration in minutes.";
+      }
+    }
+    container attached-interface {
+      config false;
+      description
+        "Attached interface.";
+      leaf type {
+        type pm-interface-type;
+        description
+          "Attached interface type.";
+      }
+      leaf name {
+        type cienawstypes:string-maxl-32;
+        description
+          "Attached interface name.";
+      }
+      leaf operational-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Attached interface operational state.";
+      }
+    }
+  }
+
+  grouping pm-bin-id-container {
+    description
+      "Grouping for PM bin id container and attributes.";
+    container id {
+      config false;
+      description
+        "PM Bin identification.";
+      leaf bin-name {
+        type cienawstypes:string-maxl-32;
+        description
+          "The PM bin name.";
+      }
+    }
+  }
+
+  grouping pm-current-bin-state-container {
+    description
+      "Grouping for PM current bin state container and attributes.";
+    container state {
+      config false;
+      description
+        "PM bin state.";
+      leaf start-date-time {
+        type cienawstypes:string-maxl-32;
+        description
+          "Start date and time.";
+      }
+      leaf cleared-date-time {
+        type cienawstypes:string-maxl-32;
+        description
+          "Cleared date and time.";
+      }
+    }
+  }
+
+  grouping pm-history-bin-state-container {
+    description
+      "Grouping for PM history bin state container and attributes.";
+    container state {
+      config false;
+      description
+        "PM bin state.";
+      leaf start-date-time {
+        type cienawstypes:string-maxl-32;
+        description
+          "Start date and time.";
+      }
+      leaf end-date-time {
+        type cienawstypes:string-maxl-32;
+        description
+          "End date and time.";
+      }
+    }
+  }
+
+  grouping pm-counter-meta {
+    description
+      "Grouping for PM counter metadata, including IDF and supported flags.";
+    leaf invalid-data-flag {
+      type boolean;
+      description
+        "Invalid Data Flag (IDF) value. Reports the validity of the corresponding
+         PM data. Reported only with previous interval PM counters. A value of true
+         indicates the PM data for the specified counter or interval is incomplete
+         or invalid.";
+      reference "ITU-T G.997.2, sections 7.7.2 and 7.8.2.";
+    }
+    leaf supported {
+      type boolean;
+      description
+        "Indicates whether the specified counter is supported on associated
+         hardware version and interface type.";
+    }
+  }
+
+  grouping pm-counter-group {
+    description
+      "Grouping for basic PM counters, including count value and metadata.";
+    leaf value {
+      type uint64;
+      description
+        "PM counter value.";
+    }
+    uses pm-counter-meta;
+  }
+
+  grouping pm-counter-percent-group {
+    description
+      "Grouping for PM counters with percent units, including count value and metadata.";
+    leaf value {
+      type cienawstypes:decimal-1-dig;
+      units "percent";
+      description
+        "PM value, as a percentage.";
+    }
+    uses pm-counter-meta;
+  }
+
+  grouping pm-counter-dbm-group {
+    description
+      "Grouping for PM counters with dBm units, including count value and metadata.";
+    leaf value {
+      type cienawstypes:decimal-3-dig;
+      units "dBm";
+      description
+        "PM value, as a power level in dBm.";
+    }
+    uses pm-counter-meta;
+  }
+
+  grouping pm-counter-db-group {
+    description
+      "Grouping for PM counters with dB units, including count value and metadata.";
+    leaf value {
+      type cienawstypes:decimal-3-dig;
+      units "dB";
+      description
+        "PM value, as loss or gain in dB.";
+    }
+    uses pm-counter-meta;
+  }
+
+  grouping pm-counter-qfac-group {
+    description
+      "Grouping for q-factor PMs, including count value and metadata.";
+    leaf value {
+      type cienawstypes:decimal-3-dig;
+      description
+        "PM value, as a q-factor.";
+    }
+    uses pm-counter-meta;
+  }
+
+  grouping pm-counter-ber-group {
+    description
+      "Grouping for BER PM counters in scientific notation, including count value and metadata.";
+    leaf value {
+      type cienawstypes:string-sci;
+      description
+        "PM value, as a bit error rate in scientific notation.";
+    }
+    uses pm-counter-meta;
+  }
+
+  grouping ethernet-pm-counts-rx {
+    description
+      "Grouping for Ethernet port PM Rx counters.";
+    container bytes {
+      description
+        "Number of bytes received including good and bad packets. This includes
+         FCS bytes, but excludes framing bits.";
+      uses pm-counter-group;
+    }
+    container packets {
+      description
+        "Number of packets received, including all unicast, multicast, broadcast, MAC control, and bad packets";
+      uses pm-counter-group;
+    }
+    container crc-errored-packets {
+      description
+        "Number of packets received which contained an FCS error and were between 64 and 1518 bytes in length.";
+      uses pm-counter-group;
+    }
+    container multicast-packets {
+      description
+        "Number of good multicast packets received that were between 64 and 1518 bytes in length. Excludes MAC control frames";
+      uses pm-counter-group;
+    }
+    container broadcast-packets {
+      description
+        "Number of good broadcast packets received that were between 64 and 1518 bytes in length. Excludes MAC control frames";
+      uses pm-counter-group;
+    }
+    container undersized-packets {
+      description
+        "Number of packets received that were less than 64 bytes (excluding framing bits but including FCS bytes) and were otherwise well formed. This counter also includes the number of packets discarded because of Ethernet length check errors. Undersize packets are discarded.";
+      uses pm-counter-group;
+    }
+    container oversized-packets {
+      description
+        "Number of packets received (including unicast, multicast, and broadcast packets) that were longer than 1518 bytes up to the configured maximum frame size, that contained a valid FCS (excluding framing bits but including FCS bytes), and that were otherwise well formed";
+      uses pm-counter-group;
+    }
+    container fragment-packets {
+      description
+        "Number of packets received between 10 and 63 bytes in length (excluding framing bits but including FCS bytes) that had either a bad FCS with an integral number of bytes (FCS Error) or a bad FCS with a non-integral number of bytes (Alignment Error). Fragment packets are discarded.";
+      uses pm-counter-group;
+    }
+    container jabber-packets {
+      description
+        "Number of packets received that were longer than 1518 bytes up to the configured maximum frame size (excluding framing bits, but including FCS bytes), and had either a bad FCS with an integral number of bytes (FCS Error) or a bad FCS with a non-integral number of bytes (Alignment Error). Jabber packets are discarded";
+      uses pm-counter-group;
+    }
+    container length-out-of-range-packets {
+      description
+        "Number of Rx length out-of-range packets transmitted";
+      uses pm-counter-group;
+    }
+    container pause-packets {
+      description
+        "Number of received valid pause packets that were between 64 and 1518 bytes in length";
+      uses pm-counter-group;
+    }
+    container packets-64-octet {
+      description
+        "Number of packets (including bad packets) received that were 64 bytes in length (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-65-127-octet {
+      description
+        "Number of good and bad packets received that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-128-255-octet {
+      description
+        "Number of good and bad packets received that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-256-511-octet {
+      description
+        "Number of good and bad packets received that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-512-1023-octet {
+      description
+        "Number of good and bad packets received that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-1024-1518-octet {
+      description
+        "Number of good and bad packets received that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-1519-jumbo-octet {
+      description
+        "Number of good and bad packets received that were between 1519 bytes in length up to MTU size (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container jumbo-octet-packets {
+      description
+        "Number of good and bad packets received that were greater than MTU size.";
+      uses pm-counter-group;
+    }
+    container bytes-per-second {
+      description
+        "Average number bytes received per second during this period.";
+      uses pm-counter-group;
+    }
+    container frames-per-second {
+      description
+        "Average number frames received per second during this period.";
+      uses pm-counter-group;
+    }
+    container average-link-utilization {
+      description
+        "Average percent utilization derived from Rx bytes and port speed.";
+      uses pm-counter-percent-group;
+    }
+    container minimum-link-utilization {
+      description
+        "Minimum percent utilization derived from Rx bytes and port speed.";
+      uses pm-counter-percent-group;
+    }
+    container maximum-link-utilization {
+      description
+        "Maximum percent utilization derived from Rx bytes and port speed.";
+      uses pm-counter-percent-group;
+    }
+    container block-errors {
+      description
+        "PCS block errors.";
+      uses pm-counter-group;
+    }
+    container multilane-bip-errors {
+      description
+        "PCS lane BIP errors.";
+      uses pm-counter-group;
+    }
+    container frame-error-ratio {
+      description
+        "Frame error ratio.";
+      uses pm-counter-group;
+    }
+  }
+
+  grouping ethernet-pm-counts-tx {
+    description
+      "Grouping for Ethernet port PM Tx counters.";
+    container bytes {
+      description
+        "Number of transmitted bytes in good and bad packets including FCS bytes and excluding frame bits.";
+      uses pm-counter-group;
+    }
+    container packets {
+      description
+        "Number of transmitted packets, including all unicast, multicast, broadcast, MAC control, and bad packets";
+      uses pm-counter-group;
+    }
+    container excessive-deferred-packets {
+      description
+        "Number of transmitted packets experiencing two or more deferrals. Applicable to copper ports only";
+      uses pm-counter-group;
+    }
+    container underrun-packets {
+      description
+        "Number of underrun packets transmitted";
+      uses pm-counter-group;
+    }
+    container crc-errored-packets {
+      description
+        "Number of transmitted packets with an FCS error";
+      uses pm-counter-group;
+    }
+    container length-check-error-packets {
+      description
+        "Number of length check packets transmitted";
+      uses pm-counter-group;
+    }
+    container length-out-of-range-packets {
+      description
+        "Number of Tx length out-of-range packets transmitted";
+      uses pm-counter-group;
+    }
+    container pause-packets {
+      description
+        "Number of pause packets transmitted";
+      uses pm-counter-group;
+    }
+    container giant-packets {
+      description
+        "Number of well-formed packets larger than 1518 bytes, including FCS bytes but excluding framing bits.";
+      uses pm-counter-group;
+    }
+    container multicast-packets {
+      description
+        "Number of good multicast packets transmitted";
+      uses pm-counter-group;
+    }
+    container broadcast-packets {
+      description
+        "Number of good broadcast packets transmitted";
+      uses pm-counter-group;
+    }
+    container packets-64-octet {
+      description
+        "Number of packets (including bad packets) transmitted that were 64 bytes in length (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-65-127-octet {
+      description
+        "Number of good and bad packets transmitted that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-128-255-octet {
+      description
+        "Number of good and bad packets transmitted that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-256-511-octet {
+      description
+        "Number of good and bad packets transmitted that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-512-1023-octet {
+      description
+        "Number of good and bad packets transmitted that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-1024-1518-octet {
+      description
+        "Number of good and bad packets transmitted that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container packets-1519-jumbo-octet {
+      description
+        "Number of good and bad packets transmitted that were between 1519 bytes in length up to MTU size (excluding framing bits but including FCS bytes).";
+      uses pm-counter-group;
+    }
+    container jumbo-octet-packets {
+      description
+        "Number of good and bad packets transmitted that were greater than MTU size.";
+      uses pm-counter-group;
+    }
+    container bytes-per-second {
+      description
+        "Average number bytes transmitted per second during this period.";
+      uses pm-counter-group;
+    }
+    container frames-per-second {
+      description
+        "Average number frames transmitted per second during this period.";
+      uses pm-counter-group;
+    }
+    container average-link-utilization {
+      description
+        "Average percent utilization derived from Tx bytes and port speed.";
+      uses pm-counter-percent-group;
+    }
+    container minimum-link-utilization {
+      description
+        "Minimum percent utilization derived from Tx bytes and port speed.";
+      uses pm-counter-percent-group;
+    }
+    container maximum-link-utilization {
+      description
+        "Maximum percent utilization derived from Tx bytes and port speed.";
+      uses pm-counter-percent-group;
+    }
+    container block-errors {
+      description
+        "PCS block errors.";
+      uses pm-counter-group;
+    }
+    container multilane-bip-errors {
+      description
+        "PCS lane BIP errors.";
+      uses pm-counter-group;
+    }
+    container frame-error-ratio {
+      description
+        "Frame error ratio.";
+      uses pm-counter-group;
+    }
+  }
+
+  grouping error-counts {
+    description
+      "Grouping for common PM error counts (ES, SES, UAS).";
+    container errored-seconds {
+      description
+        "Number of seconds that error happened.";
+      uses pm-counter-group;
+    }
+    container severely-errored-seconds {
+      description
+        "Number of seconds that severe error happened.";
+      uses pm-counter-group;
+    }
+    container unavailable-seconds {
+      description
+        "Number of seconds that the interface was unavailable.";
+      uses pm-counter-group;
+    }
+  }
+
+  grouping fec-layer-counts {
+    description
+      "Grouping for Ethernet port FEC layer counts.";
+    container corrected-codeword-count {
+      description
+        "FEC layer corrected codeword count";
+      uses pm-counter-group;
+    }
+    container uncorrected-codeword-count {
+      description
+        "FEC layer uncorrected codeword count";
+      uses pm-counter-group;
+    }
+    container symbol-error-count {
+      description
+        "FEC layer symbol error count. This is the total of error counts across all PMA lanes on this interface.";
+      uses pm-counter-group;
+    }
+  }
+
+  grouping dgd-counts {
+    description
+      "Differential Group Delay (DGD) Grouping.";
+    container maximum {
+      description
+        "Maximum differential group delay (in ps).";
+      uses pm-counter-group;
+    }
+    container average {
+      description
+        "Average differential group delay (in ps).";
+      uses pm-counter-group;
+    }
+  }
+
+  grouping pdl-counts {
+    description
+      "Polarization Dependent Loss (PDL) Grouping.";
+    container maximum {
+      description
+        "Maximum polarization dependent loss (in dB).";
+      uses pm-counter-db-group;
+    }
+    container average {
+      description
+        "Average polarization dependent loss (in dB).";
+      uses pm-counter-db-group;
+    }
+  }
+
+  grouping power-counts {
+    description
+      "Optical Power Grouping. Can be used for Tx or Rx optical power PM instances.";
+    container minimum {
+      description
+        "Minimum power reading.";
+      uses pm-counter-dbm-group;
+    }
+    container maximum {
+      description
+        "Maximum power reading.";
+      uses pm-counter-dbm-group;
+    }
+    container average {
+      description
+        "Average power reading.";
+      uses pm-counter-dbm-group;
+    }
+  }
+
+  grouping ber-counts {
+    description
+      "Grouping for common PM Bit-Error-Rate values.";
+    container bit-error-rate {
+      description
+        "Bit error rate reading.";
+      uses pm-counter-ber-group;
+    }
+    container maximum {
+      description
+        "Maximum BER reading.";
+      uses pm-counter-ber-group;
+    }
+  }
+
+  grouping q-factor-counts {
+    description
+      "Grouping for PM modem Q-Factor values.";
+    container q-factor {
+      description
+        "Q-Factor reading.";
+      uses pm-counter-qfac-group;
+    }
+    container minimum {
+      description
+        "Minimum Q-Factor reading.";
+      uses pm-counter-qfac-group;
+    }
+    container maximum {
+      description
+        "Maximum Q-Factor reading.";
+      uses pm-counter-qfac-group;
+    }
+  }
+
+  grouping fec-error-counts {
+    description
+      "Grouping for line PTP FEC counts.";
+    container frame-error-count {
+      description
+        "FEC Frame error counts.";
+      uses pm-counter-group;
+    }
+    container frame-error-count-second {
+      description
+        "FEC Frame error count second.";
+      uses pm-counter-group;
+    }
+    container uncorrected-block-count {
+      description
+        "FEC uncorrected block count.";
+      uses pm-counter-group;
+    }
+    container high-correction-count-seconds {
+      description
+        "FEC high correction count seconds.";
+      uses pm-counter-group;
+    }
+  }
+
+  grouping pm-ethernet-stats-group {
+    description
+      "Grouping for Ethernet port statistics containers and attributes.";
+    container interface-counts {
+      description
+        "Ethernet PM interface counts.";
+      container rx {
+        description
+          "Ethernet interface Rx counts.";
+        uses ethernet-pm-counts-rx;
+      }
+      container tx {
+        description
+          "Ethernet interface Tx counts.";
+        uses ethernet-pm-counts-tx;
+      }
+    }
+    container pcs-layer {
+      description
+        "PCS layer statistics.";
+      container sync-header-errors {
+        description
+          "PCS sync header errors.";
+        uses pm-counter-group;
+      }
+      uses error-counts;
+    }
+    container fec-layer {
+      description
+        "Ethernet FEC layer PM statistics.";
+      uses fec-layer-counts;
+    }
+  }
+
+  grouping pm-optical-power-stats-group {
+    description
+      "Grouping for PTP optical power statistics containers and attributes.";
+    leaf number-of-lanes {
+      type uint16;
+      description
+        "Number of optical lanes.";
+    }
+    list optical-power {
+      key "lane-number";
+      config false;
+      max-elements "4";
+      description
+        "Statistics for a PTP optical lane.";
+      leaf lane-number {
+        type cienawstypes:lanes-number;
+        config false;
+        description
+          "Lane number.";
+      }
+      container rx-power {
+        config false;
+        uses power-counts;
+        description
+          "Rx power reading.";
+      }
+      container tx-power {
+        config false;
+        uses power-counts;
+        description
+          "Tx power reading.";
+      }
+    }
+    container channel-power {
+      config false;
+      description
+        "Total optical channel power readings. Only applies to line PTP in 'colourless' mode.";
+      container rx-power {
+        config false;
+        uses power-counts;
+        description
+          "Rx power reading.";
+      }
+    }
+  }
+
+  grouping pm-modem-stats-group {
+    description
+      "Grouping for PTP modem statistics containers and attributes.";
+    container pre-fec-bit-error-rate {
+      config false;
+      uses ber-counts;
+      description
+        "Pre-FEC BER counts.";
+    }
+    container q-factor {
+      config false;
+      uses q-factor-counts;
+      description
+        "Q-Factor count.";
+    }
+    container fec-error {
+      config false;
+      uses fec-error-counts;
+      description
+        "FEC error counts.";
+    }
+    container dgd {
+      description
+        "Differential group delay (DGD) counts.";
+      uses dgd-counts;
+    }
+    container pdl {
+      description
+        "Polarization dependent loss (PDL) counts.";
+      uses pdl-counts;
+    }
+  }
+
+  grouping pm-otn-stats-group {
+    description
+      "Grouping for OTN port/channel statistics containers and attributes.";
+    container background-block-errors {
+      description
+        "Background Block Errors (BBE).";
+      uses pm-counter-group;
+    }
+    uses error-counts;
+    container far-end {
+      description
+        "Far-end statistics.";
+      container background-block-errors {
+        description
+          "Background Block Errors (BBE).";
+        uses pm-counter-group;
+      }
+      uses error-counts;
+    }
+  }
+
+  typedef pm-persistence-status {
+    type enumeration {
+      enum "none" {
+        description
+          "Save to persistence not attempted.";
+      }
+      enum "inprogress" {
+        description
+          "Save to persistence in progress.";
+      }
+      enum "complete" {
+        description
+          "Save to persistence complete.";
+      }
+      enum "not-found" {
+        description
+          "File not found.";
+      }
+      enum "inaccessible" {
+        description
+          "Unable to access persistence storage location.";
+      }
+      enum "aborted" {
+        description
+          "Save to persistence aborted.";
+      }
+      enum "corrupt" {
+        description
+          "Persistence file is corrupt.";
+      }
+      enum "failed" {
+        description
+          "Save to persistence failed.";
+      }
+      enum "partial" {
+        description
+          "Save to persistence was only partially successful.";
+      }
+      enum "not-ready" {
+        description
+          "Persistence not ready.";
+      }
+    }
+    description
+      "PM persistence status.";
+  }
+
+  typedef pm-persistence-state {
+    type enumeration {
+      enum "not-initialized" {
+        description
+          "PM persistence not-initialized";
+      }
+      enum "initialized" {
+        description
+          "PM persistence initialized";
+      }
+    }
+    description
+      "PM persistence state.";
+  }
+
+  typedef pm-configuration-mode {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Unknown PM instance configuration mode.";
+      }
+      enum "auto-created" {
+        description
+          "PM instance is auto-created (default).";
+      }
+      enum "user-created" {
+        description
+          "PM instance is user-created.";
+      }
+    }
+    description
+      "PM configuration mode.";
+  }
+
+  typedef pm-interface-type {
+    type enumeration {
+      enum "ptp" {
+        description
+          "Associated interface is a PTP.";
+      }
+      enum "port" {
+        description
+          "Associated interface is an Ethernet or OTN port.";
+      }
+      enum "channel" {
+        description
+          "Associated interface is an ODU channel.";
+      }
+    }
+    description
+      "PM interface type. The object type on which the PMs are being collected/reported.";
+  }
+
+  typedef pm-profile-type {
+    type enumeration {
+      enum "optical-power" {
+        description
+          "PTP Optical Power PM profile type.";
+      }
+      enum "modem-performance" {
+        description
+          "PTP Modem PM profile type.";
+      }
+      enum "otu-performance" {
+        description
+          "Port OTU PM profile type.";
+      }
+      enum "odu-performance" {
+        description
+          "Port/Channel ODU profile type.";
+      }
+      enum "ethernet-performance" {
+        description
+          "Port Ethernet PM profile type.";
+      }
+    }
+    description
+      "PM profile type.";
+  }
+
+  container waveserver-pm {
+    description
+      "Waveserver performance monitoring configuration and operational data.";
+    container global-config {
+      description
+        "Performance monitoring global configuration on the Waveserver.";
+      leaf admin-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Global admin state.";
+      }
+    }
+    container persistence-state {
+      config false;
+      description
+        "Performance monitoring persistence state on the Waveserver.";
+      leaf state {
+        type pm-persistence-state;
+        description
+          "Persistence state initialized or not.";
+      }
+      leaf next-history-bin-save {
+        type uint32;
+        units "seconds";
+        description
+          "Number of seconds left before current bin is saved to history.";
+      }
+      leaf current-file-size {
+        type uint32;
+        units "bytes";
+        description
+          "Current file size.";
+      }
+      leaf save-status {
+        type pm-persistence-status;
+        description
+          "Persistence storage setting.";
+      }
+      leaf instances-saved {
+        type uint32;
+        description
+          "Number of the PM instances saved.";
+      }
+      leaf elapsed-save-time {
+        type uint32;
+        units "seconds";
+        description
+          "Number of seconds passed since the save begin.";
+      }
+      leaf load-status {
+        type pm-persistence-status;
+        description
+          "Persistence load status.";
+      }
+      leaf instances-in-file {
+        type uint32;
+        description
+          "Total number of PM instances in file.";
+      }
+      leaf instances-loaded {
+        type uint32;
+        description
+          "Number of loaded instances.";
+      }
+      leaf elapsed-load-time {
+        type uint32;
+        units "seconds";
+        description
+          "Elaspsed Load Time.";
+      }
+    }
+    container auto-created {
+      config false;
+      description
+        "PM auto created instances.";
+      list instances {
+        key "instance-id";
+        config false;
+        description
+          "PM auto-created instance list.";
+        leaf instance-id {
+          type uint32;
+          description
+            "ID of the PM instance.";
+        }
+        leaf instance-name {
+          type cienawstypes:string-maxl-32;
+          description
+            "The PM instance name.";
+        }
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "The configured administrative state of the PM instance.";
+        }
+        leaf operational-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "The operational state of the PM instance.";
+        }
+        leaf bin-count {
+          type uint32;
+          description
+            "The number of history bins.";
+        }
+        leaf bin-duration {
+          type uint32;
+          units "minutes";
+          description
+            "The PM bin duration in minutes.";
+        }
+        leaf attached-interface-type {
+          type pm-interface-type;
+          description
+            "Attached interface type.";
+        }
+        leaf attached-interface-name {
+          type cienawstypes:string-maxl-32;
+          description
+            "Attached interface name.";
+        }
+      }
+    }
+    list ethernet-performance-instances {
+      key "instance-name";
+      description
+        "Ethernet port PM instances.";
+      leaf instance-name {
+        type cienawstypes:string-maxl-32;
+        description
+          "Unique name for PM instance.";
+      }
+      uses pm-instance-id-container;
+      uses pm-instance-state-container;
+      uses pm-instance-properties-container;
+      container current-bin {
+        config false;
+        description
+          "PM current 15-minute bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-ethernet-stats-group;
+        }
+      }
+      container current-24-hour-bin {
+        config false;
+        description
+          "PM current 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-ethernet-stats-group;
+        }
+      }
+      container untimed-bin {
+        config false;
+        description
+          "PM untimed bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-ethernet-stats-group;
+        }
+      }
+      container history {
+        config false;
+        description
+          "PM 15-minute bin history";
+        list bins {
+          key "bin-number";
+          config false;
+          description
+            "PM history 15-minute bin list.";
+          leaf bin-number {
+            type uint32 {
+              range "1..96";
+            }
+            description
+              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
+          }
+          uses pm-bin-id-container;
+          uses pm-history-bin-state-container;
+          container statistics {
+            config false;
+            description
+              "Statistics data.";
+            uses pm-ethernet-stats-group;
+          }
+        }
+      }
+      container history-24-hour-bin {
+        config false;
+        description
+          "PM History 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-history-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-ethernet-stats-group;
+        }
+      }
+    }
+    list optical-power-instances {
+      key "instance-name";
+      description
+        "PTP Optical Power PM instances.";
+      leaf instance-name {
+        type cienawstypes:string-maxl-32;
+        description
+          "Unique name for PM instance.";
+      }
+      uses pm-instance-id-container;
+      uses pm-instance-state-container;
+      uses pm-instance-properties-container;
+      container current-bin {
+        config false;
+        description
+          "PM current 15-minute bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-optical-power-stats-group;
+        }
+      }
+      container current-24-hour-bin {
+        config false;
+        description
+          "PM current 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-optical-power-stats-group;
+        }
+      }
+      container untimed-bin {
+        config false;
+        description
+          "PM untimed bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-optical-power-stats-group;
+        }
+      }
+      container history {
+        config false;
+        description
+          "PM 15-minute bin history.";
+        list bins {
+          key "bin-number";
+          config false;
+          description
+            "PM history 15-minute bin list.";
+          leaf bin-number {
+            type uint32 {
+              range "1..96";
+            }
+            description
+              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
+          }
+          uses pm-bin-id-container;
+          uses pm-history-bin-state-container;
+          container statistics {
+            config false;
+            description
+              "Statistics data.";
+            uses pm-optical-power-stats-group;
+          }
+        }
+      }
+      container history-24-hour-bin {
+        config false;
+        description
+          "PM History 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-history-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-optical-power-stats-group;
+        }
+      }
+    }
+    list modem-performance-instances {
+      key "instance-name";
+      description
+        "PTP Modem PM instances.";
+      leaf instance-name {
+        type cienawstypes:string-maxl-32;
+        description
+          "Unique name for PM instance.";
+      }
+      uses pm-instance-id-container;
+      uses pm-instance-state-container;
+      uses pm-instance-properties-container;
+      container current-bin {
+        config false;
+        description
+          "PM current 15-minute bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-modem-stats-group;
+        }
+      }
+      container current-24-hour-bin {
+        config false;
+        description
+          "PM current 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-modem-stats-group;
+        }
+      }
+      container untimed-bin {
+        config false;
+        description
+          "PM untimed bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-modem-stats-group;
+        }
+      }
+      container history {
+        config false;
+        description
+          "PM 15-minute bin history.";
+        list bins {
+          key "bin-number";
+          config false;
+          description
+            "PM history 15-minute bin list.";
+          leaf bin-number {
+            type uint32 {
+              range "1..96";
+            }
+            description
+              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
+          }
+          uses pm-bin-id-container;
+          uses pm-history-bin-state-container;
+          container statistics {
+            config false;
+            description
+              "Statistics data.";
+            uses pm-modem-stats-group;
+          }
+        }
+      }
+      container history-24-hour-bin {
+        config false;
+        description
+          "PM History 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-history-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-modem-stats-group;
+        }
+      }
+    }
+    list otu-performance-instances {
+      key "instance-name";
+      description
+        "Port OTU PM instances.";
+      leaf instance-name {
+        type cienawstypes:string-maxl-32;
+        description
+          "Unique name for PM instance.";
+      }
+      uses pm-instance-id-container;
+      uses pm-instance-state-container;
+      uses pm-instance-properties-container;
+      container current-bin {
+        config false;
+        description
+          "PM current 15-minute bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+      container current-24-hour-bin {
+        config false;
+        description
+          "PM current 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+      container untimed-bin {
+        config false;
+        description
+          "PM untimed bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+      container history {
+        config false;
+        description
+          "PM 15-minute bin history.";
+        list bins {
+          key "bin-number";
+          config false;
+          description
+            "PM history 15-minute bin list.";
+          leaf bin-number {
+            type uint32 {
+              range "1..96";
+            }
+            description
+              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
+          }
+          uses pm-bin-id-container;
+          uses pm-history-bin-state-container;
+          container statistics {
+            config false;
+            description
+              "Statistics data.";
+            uses pm-otn-stats-group;
+          }
+        }
+      }
+      container history-24-hour-bin {
+        config false;
+        description
+          "PM History 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-history-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+    }
+    list odu-performance-instances {
+      key "instance-name";
+      description
+        "Port/channel ODU PM instances.";
+      leaf instance-name {
+        type cienawstypes:string-maxl-32;
+        description
+          "Unique name for PM instance.";
+      }
+      uses pm-instance-id-container;
+      uses pm-instance-state-container;
+      uses pm-instance-properties-container;
+      container current-bin {
+        config false;
+        description
+          "PM current 15-minute bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+      container current-24-hour-bin {
+        config false;
+        description
+          "PM current 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+      container untimed-bin {
+        config false;
+        description
+          "PM untimed bin.";
+        uses pm-bin-id-container;
+        uses pm-current-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+      container history {
+        config false;
+        description
+          "PM 15-minute bin history.";
+        list bins {
+          key "bin-number";
+          config false;
+          description
+            "PM history 15-minute bin list.";
+          leaf bin-number {
+            type uint32 {
+              range "1..96";
+            }
+            description
+              "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
+          }
+          uses pm-bin-id-container;
+          uses pm-history-bin-state-container;
+          container statistics {
+            config false;
+            description
+              "Statistics data.";
+            uses pm-otn-stats-group;
+          }
+        }
+      }
+      container history-24-hour-bin {
+        config false;
+        description
+          "PM History 24-hour bin.";
+        uses pm-bin-id-container;
+        uses pm-history-bin-state-container;
+        container statistics {
+          config false;
+          description
+            "Statistics data.";
+          uses pm-otn-stats-group;
+        }
+      }
+    }
+  }
+  rpc waveserver-pm-clear-instance {
+    description
+      "Clear statistics for the specified instance.";
+    input {
+      leaf instance-name {
+        type cienawstypes:string-maxl-32;
+        description
+          "Unique name for PM instance.";
+      }
+      leaf history {
+        type boolean;
+        description
+          "Whether to clear history.";
+      }
+    }
+    output {
+      leaf return-code {
+        type uint32 {
+          range "0..990";
+        }
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+    }
+  }
+  rpc waveserver-pm-clear-interface {
+    description
+      "Clear statistics for the specified interface.";
+    input {
+      leaf interface-name {
+        type cienawstypes:string-maxl-32;
+        mandatory true;
+        description
+          "Interface name.";
+      }
+      leaf interface-type {
+        type pm-interface-type;
+        mandatory true;
+        description
+          "Interface type (PTP, Port, Channel)";
+      }
+      leaf profile-type {
+        type pm-profile-type;
+        description
+          "The PM profile type. Can be optionally specified to clear only a specific profile on this interface.";
+      }
+      leaf history {
+        type boolean;
+        description
+          "Whether to clear history.";
+      }
+    }
+    output {
+      leaf return-code {
+        type uint32 {
+          range "0..990";
+        }
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-port@2017-07-31.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-port@2017-07-31.yang
new file mode 100644
index 0000000..0fd668f
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-port@2017-07-31.yang
@@ -0,0 +1,672 @@
+module ciena-waveserver-port {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-port";
+  prefix port;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines port data for the Waveserver. Ports are related to both client and line and represent the port through which the line or client signal travels. They are automatically created by the system. By default, line ports are automatically mapped to client ports via services and service-domains.";
+
+  revision 2017-07-31 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Changed 'ports' list key from integer to string type to accommodate '<slot>-<port>' format.
+       Added support for OTN and Ethernet port types.
+       Added support for ODU4 channel sub-objects.
+       Updated 'port-type' enum values and add 'port-rate' enum. Update 'port-speed' typedef.
+       Updated 'operational-state' enum values.
+       Rename 'description' to 'label'.
+       Added common and port-type-specific capabilities and properties containers, and move/rename some attributes.
+       Added finer granularity of 'conditioning-holdoff' values (10ms increments between 0-100ms).
+       Moved 'conditioning-type' and 'conditioning-holdoff' enums to ciena-waveserver-typedefs.yang
+       Removed 'xcvr-type' from properties.
+       Removed 'statistics' container and groupings.
+       Added support for otn trace attributes.";
+    reference "";
+  }
+
+  typedef port-type-enum {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Port type is unknown.";
+      }
+      enum "ethernet" {
+        description
+          "Port type is Ethernet.";
+      }
+      enum "otn" {
+        description
+          "Port type is OTN.";
+      }
+    }
+    description
+      "Port type";
+  }
+
+  typedef port-rate-enum {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Port rate is unknown.";
+      }
+      enum "10GE" {
+        description
+          "Port rate is 10 Gigabits per second Ethernet.";
+      }
+      enum "40GE" {
+        description
+          "Port rate is 40 Gigabits per second Ethernet.";
+      }
+      enum "100GE" {
+        description
+          "Port rate is 100 Gigabits per second Ethernet.";
+      }
+      enum "OTU4" {
+        description
+          "Port rate is OTU4.";
+      }
+      enum "OTUC1" {
+        description
+          "Port rate is OTUC1.";
+      }
+      enum "OTUC2" {
+        description
+          "Port rate is OTUC2.";
+      }
+      enum "OTUC3" {
+        description
+          "Port rate is OTUC3.";
+      }
+      enum "OTUC4" {
+        description
+          "Port rate is OTUC4.";
+      }
+    }
+    description
+      "Nominal port rate of the specified interface.";
+  }
+
+  typedef ethernet-mapping-mode {
+    type enumeration {
+      enum "None" {
+        description
+          "No ethernet mapping.";
+      }
+      enum "GMP" {
+        description
+          "Generic Mapping Procedure (GMP).";
+      }
+    }
+    description
+      "Ethernet mapping mode.";
+  }
+
+  typedef port-speed {
+    type decimal64 {
+      fraction-digits 4;
+      range "0.0 .. 1000.0";
+    }
+    units "Gbps";
+    description
+      "Port speed, in Gbps. Decimal value up to 4 digits.";
+  }
+
+  typedef port-operational-state {
+    type enumeration {
+      enum "down" {
+        value 0;
+        description
+          "The port or channel is not carrying traffic due to a failure or because it is disabled.";
+      }
+      enum "up" {
+        value 1;
+        description
+          "The port or channel is enabled and carrying traffic.";
+      }
+      enum "loopback-tx" {
+        value 4;
+        description
+          "The transmit direction of the port loops back internally at the PHY.";
+      }
+      enum "loopback-rx" {
+        value 5;
+        description
+          "The receive direction of the port loops back at the PHY to the transmit.";
+      }
+      enum "fault" {
+        value 7;
+        description
+          "Port or channel is faulted.";
+      }
+      enum "unavailable" {
+        value 11;
+        description
+          "Channel is unavailable due to bandwidth limitation of parent port rate.";
+      }
+      enum "lower-layer-down" {
+        description
+          "Parent layer is down (dependency or server signal failure).";
+      }
+    }
+    description
+      "Port operational state.";
+  }
+
+  typedef payload-type {
+    type string {
+      length "0..4";
+    }
+    description
+      "A string representation of an OPU payload type (PT) byte value in hexadecimal notation, e.g. '0x07'.";
+  }
+
+  grouping otn-trace-group {
+    description
+      "OTN trail trace identifier (TTI) properties.";
+    leaf mismatch-mode {
+      type cienawstypes:trace-mismatch-mode;
+      description
+        "The trail trace identifier (TTI) mismatch mode, indicating which fields of the TTI overhead are used for trace mismatch detection.";
+    }
+    leaf mismatch-fail-mode {
+      type cienawstypes:trace-mismatch-fail-mode;
+      description
+        "The trail trace identifier (TTI) mismatch failure mode. When TTI mismatch condition occurs, this indicates the consequent action taken, e.g. whether or not to raise an alarm.";
+    }
+    leaf tx-oper {
+      type cienawstypes:string-maxl-32;
+      description
+        "Tx operator-specific trace string, up to 32 characters. If this string value is changed the Expected Rx oper string will also be updated to the same value.";
+    }
+    leaf rx-oper {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "Rx operator-specific trace string, up to 32 characters.";
+    }
+    leaf exp-oper {
+      type cienawstypes:string-maxl-32;
+      description
+        "Expected Rx operator-specific trace string, up to 32 characters. If this string value is changed the Tx oper string will also be updated to the same value.";
+    }
+  }
+
+  container waveserver-ports {
+    description
+      "Waveserver port configuration and operational data.";
+    list ports {
+      key "port-id";
+      description
+        "Configuration and operational data for the port.";
+      leaf port-id {
+        type cienawstypes:port-name;
+        description
+          "Unique, access identifier string of the port in '<slot>-<port>' format.";
+      }
+      container id {
+        description
+          "Port identification attributes.";
+        leaf name {
+          type cienawstypes:port-name;
+          config false;
+          description
+            "Name of the port interface. Format is: '<slot>-<port>' or '<slot>-<majorport>.<minorport>'.";
+        }
+        leaf label {
+          type cienawstypes:description-string;
+          description
+            "The user-specified label string for this port interface.";
+        }
+        leaf type {
+          type port-type-enum;
+          description
+            "The port interface type.";
+        }
+        leaf rate {
+          type port-rate-enum;
+          config false;
+          description
+            "The port interface rate.";
+        }
+        leaf speed {
+          type port-speed;
+          config false;
+          description
+            "The port speed in Gbps.";
+        }
+        leaf interface-type {
+          type enumeration {
+            enum "i-nni" {
+              value 0;
+              description
+                "Internal Network-to-Network Interface";
+            }
+            enum "uni" {
+              value 1;
+              description
+                "User Network Interface";
+            }
+            enum "e-nni" {
+              value 2;
+              description
+                "External Network-to-Network Interface";
+            }
+          }
+          config false;
+          description
+            "The port interface type.";
+        }
+      }
+      container state {
+        description
+          "Port administrative and operational states.";
+        leaf admin-state {
+          type enumeration {
+            enum "enabled" {
+              value 1;
+              description
+                "Port is administratively enabled and ready to carry traffic.";
+            }
+            enum "disabled" {
+              value 2;
+              description
+                "Port is administratively disabled and not ready to carry traffic.";
+            }
+          }
+          description
+            "The configured administrative state of the port.";
+        }
+        leaf operational-state {
+          type port-operational-state;
+          config false;
+          description
+            "The operational state of the port.";
+        }
+        leaf operational-state-duration {
+          type uint32;
+          units "seconds";
+          config false;
+          description
+            "Amount of time since last state transition.";
+        }
+      }
+      container capabilities {
+        config false;
+        description
+          "Port capabilities.";
+        leaf port-types {
+          type bits {
+            bit ethernet {
+              description
+                "Port is capable of Ethernet port type.";
+            }
+            bit otn {
+              description
+                "Port is capable of OTN port type.";
+            }
+          }
+          description
+            "The service types that the port can support.";
+        }
+        leaf port-rates {
+          type bits {
+            bit ethernet-10gig {
+              description
+                "Port is capable of 10 Gigabit Ethernet rate.";
+            }
+            bit ethernet-40gig {
+              description
+                "Port is capable of 40 Gigabit Ethernet rate.";
+            }
+            bit ethernet-100gig {
+              description
+                "Port is capable of 100 Gigabit Ethernet rate.";
+            }
+            bit OTU4 {
+              description
+                "Port is capable of OTU4 rate.";
+            }
+            bit OTUC1 {
+              description
+                "Port is capable of OTUC1 rate.";
+            }
+            bit OTUC2 {
+              description
+                "Port is capable of OTUC2 rate.";
+            }
+            bit OTUC3 {
+              description
+                "Port is capable of OTUC3 rate.";
+            }
+            bit OTUC4 {
+              description
+                "Port is capable of OTUC4 rate.";
+            }
+          }
+          description
+            "The rates that the port can support.";
+        }
+        leaf fec-support {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Specifies whether this port supports forward error correction.";
+        }
+      }
+      container properties {
+        description
+          "Port properties.";
+        leaf loopback {
+          type enumeration {
+            enum "disabled" {
+              description
+                "Loopback is disabled.";
+            }
+            enum "rx" {
+              description
+                "Rx loopback is enabled.";
+            }
+            enum "tx" {
+              description
+                "Tx loopback is enabled.";
+            }
+          }
+          description
+            "Port PHY layer loopback. RX loopback is a loopback forwarding ingress traffic from RX port directly to TX port. TX loopback is a loopback forwarding egress traffic from TX port directly to RX port, TX loopback is not supported in I-NNI ports. The RX/TX loopback can only be enabled when the port admin-state is disabled. Enable an RX/TX loopback shall fail when the port has its admin-state enabled. Users shall be able to disable the xcvr/ptp when its child port loopback enabled. Enable xcvr/ptp shall not enable its child port with loopback enabled. A port shall has its operational state rx loopback when rx loopback is enabled, and tx loopback when tx loopback is enabled.";
+        }
+        leaf forward-error-correction {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Forward error correction";
+        }
+        leaf service-index {
+          type cienawstypes:service-idx;
+          config false;
+          description
+            "The index number of the service the port is attached to. Only applies to UNI interface type.";
+        }
+        leaf service-domain-index {
+          type cienawstypes:service-domain-idx;
+          config false;
+          description
+            "The index number of the service domain the port is attached to. Only applies to I-NNI interface type.";
+        }
+        container ethernet {
+          when "../../id/type = 'ethernet'" {
+            description
+              "Ethernet properties container only applies with the port type is 'ethernet'.";
+          }
+          description
+            "Ethernet-specific properties.";
+          leaf max-frame-size {
+            type uint32 {
+              range "0|1522..16004";
+            }
+            config false;
+            description
+              "The maximum transmission unit value (bytes). Zero indicates 'none' or unsupported.";
+          }
+          leaf pause-profile {
+            type enumeration {
+              enum "discard" {
+                description
+                  "Ingress pause frames will be discarded and ignored.";
+              }
+              enum "forward" {
+                description
+                  "Ingress pause frames will be forwarded. This is the default.";
+              }
+              enum "peer" {
+                description
+                  "Ingress pause frames will be peered.";
+              }
+            }
+            config false;
+            description
+              "Port handling of ingress flow control";
+          }
+          leaf mapping-mode {
+            type ethernet-mapping-mode;
+            description
+              "Ethernet mapping mode.";
+          }
+          leaf conditioning-type {
+            type cienawstypes:conditioning-type;
+            description
+              "Egress UNI port consequent action for an EPL service to be applied on a far-end ingress UNI failure or network failure.";
+          }
+          leaf conditioning-holdoff {
+            type cienawstypes:conditioning-holdoff;
+            description
+              "Number of milliseconds to delay Egress UNI port consequent action for an EPL service.";
+          }
+        }
+        container otn {
+          when "../../id/type = 'otn'" {
+            description
+              "OTN properties container only applies with the port type is 'otn'.";
+          }
+          description
+            "OTN-specific properties.";
+          leaf odu-termination {
+            type enumeration {
+              enum "terminated" {
+                description
+                  "ODUk layer is terminated at this port.";
+              }
+              enum "passthrough" {
+                description
+                  "ODUk layer is not terminated at this port.";
+              }
+            }
+            description
+              "ODUk termination mode.";
+          }
+          leaf pre-fec-otu-sf-threshold {
+            type decimal64 {
+              fraction-digits 2;
+              range "-1.0 .. 1.0";
+            }
+            units "dBQ";
+            description
+              "Pre-FEC OTU Signal Fail threshold value.";
+          }
+          leaf pre-fec-otu-sd-threshold {
+            type decimal64 {
+              fraction-digits 2;
+              range "-1.0 .. 3.50";
+            }
+            units "dBQ";
+            description
+              "Pre-FEC OTU Signal Degrade threshold value.";
+          }
+          leaf otu-sd-threshold {
+            type cienawstypes:string-sci;
+            description
+              "OTU Signal Degrade threshold value, e.g. '10E-06' to '10E-09'.";
+          }
+          leaf odu-sd-threshold {
+            type cienawstypes:string-sci;
+            description
+              "ODUk Signal Degrade threshold value, e.g. '10E-05' to '10E-09'.";
+          }
+          leaf conditioning-type {
+            type enumeration {
+              enum "otn" {
+                description
+                  "Standard OTN conditioning type behavior.";
+              }
+              enum "laser-off" {
+                description
+                  "Disable the transmitter consequent action.";
+              }
+            }
+            description
+              "Conditioning type for OTN ports.";
+          }
+          container trace {
+            description
+              "OTN port trace attributes";
+            container section {
+              description
+                "OTUk section trace attributes for this port.";
+              uses otn-trace-group;
+            }
+            container path {
+              description
+                "ODUk path trace attributes for this port.";
+              uses otn-trace-group;
+            }
+          }
+        }
+      }
+      list channels {
+        when "../id/type = 'otn' and ../properties/otn/odu-termination = 'terminated'" {
+          description
+            "Channels list only applies for OTUk ports that have ODUk layer terminated.";
+        }
+        key "channel-id";
+        description
+          "List of ODU4 channels within the parent OTU port object.";
+        leaf channel-id {
+          type uint8 {
+            range "1..4";
+          }
+          mandatory true;
+          description
+            "Channel number or ODU4 tributary number within the parent OTU port object. Key value for the channels list.";
+        }
+        container id {
+          description
+            "Channel identification attributes.";
+          leaf name {
+            type cienawstypes:name-string;
+            config false;
+            description
+              "Name of the channel object. Format is: '<slot>-<port>.<channel>'.";
+          }
+          leaf label {
+            type cienawstypes:description-string;
+            description
+              "The user-specified label string for this channel object.";
+          }
+          leaf type {
+            type enumeration {
+              enum "odu" {
+                description
+                  "ODU channel.";
+              }
+            }
+            config false;
+            description
+              "The channel interface type.";
+          }
+          leaf rate {
+            type enumeration {
+              enum "odu4" {
+                description
+                  "ODU4 rate.";
+              }
+            }
+            config false;
+            description
+              "The channel rate.";
+          }
+          leaf speed {
+            type port-speed;
+            config false;
+            description
+              "The channel speed in Gbps.";
+          }
+        }
+        container state {
+          description
+            "Channel administrative and operational states.";
+          leaf admin-state {
+            type cienawstypes:enabled-disabled-enum;
+            description
+              "The configured administrative state of the channel.";
+          }
+          leaf operational-state {
+            type port-operational-state;
+            config false;
+            description
+              "The operational state of the channel.";
+          }
+          leaf operational-state-duration {
+            type uint32;
+            units "seconds";
+            config false;
+            description
+              "Amount of time since last state transition.";
+          }
+        }
+        container properties {
+          description
+            "Channel properties.";
+          leaf service-index {
+            type cienawstypes:service-idx;
+            config false;
+            description
+              "The index number of the service the channel is attached to, if applicable.";
+          }
+          leaf service-domain-index {
+            type cienawstypes:service-domain-idx;
+            config false;
+            description
+              "The index number of the service domain the channel is attached to, if applicable.";
+          }
+          leaf odu-sd-threshold {
+            type cienawstypes:string-sci;
+            description
+              "ODU4 Signal Degrade threshold value.";
+          }
+          leaf odu-termination {
+            type enumeration {
+              enum "terminated" {
+                description
+                  "ODU4 layer is terminated at this channel.";
+              }
+              enum "passthrough" {
+                description
+                  "ODU4 layer is not terminated at this channel.";
+              }
+            }
+            description
+              "ODU4 channel termination mode.";
+          }
+          leaf tx-payload-type {
+            type payload-type;
+            config false;
+            description
+              "The transmitted (and expected) OPU4 payload type for this channel (e.g. 0x07).";
+          }
+          leaf rx-payload-type {
+            type payload-type;
+            config false;
+            description
+              "The actual received OPU4 payload type for this channel (e.g. 0x07).";
+          }
+          container trace {
+            description
+              "ODU4 path trace attributes for this channel.";
+            uses otn-trace-group;
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-ptp-modem@2018-01-15.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-ptp-modem@2018-01-15.yang
new file mode 100644
index 0000000..04334d3
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-ptp-modem@2018-01-15.yang
@@ -0,0 +1,433 @@
+module ciena-waveserver-ptp-modem {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-ptp-modem";
+  prefix ptp-modem;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+  import ciena-waveserver-ptp {
+    prefix ptp;
+  }
+  import ciena-waveserver-xcvr {
+    prefix xcvr;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines modem-transceiver PTP data for the Waveserver. It augments the ciena-waveserver-ptp module. 
+     The PTP model is the signal carried by the modem transceiver at a line port. Automatically provisioned during service module installation.";
+
+  revision 2018-01-15 {
+    description
+      "Updated range and description for 'reach-limit' to match actual accepted values.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-08-10 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Removed WL3e-specific attributes ('performance-optimization-mode', 'interleaver-mode', 'rotation', 'tx-reduction-mode', 'differential-encoding', 'fast-rx-recovery').
+       Removed obsolete attribute 'fast-receiver-recovery-state'.
+       Removed 'band-plan' and some line-system related attributes.
+       Removed 'actual' frequency.
+       Removed 'performance-statistics' container, which will be represented in the ciena-waveserver-pm module in 'untimed' bins.
+       Removed 'alarms' and 'diagnostics' containers.
+       Renamed 'tx-tuning-mode' to 'laser-tuning-mode', and value 'performance-optimized' value to 'normal'.
+       Renamed 'carrier-centering-mode' to 'laser-centering-mode'.
+       Renamed/updated several dispersion compensation attributes for WLAi.
+       Updated 'channel-contention-detection-avoidance' type from on/off to enabled/disabled.
+       Moved 'colourless-rx-channel' attributes to lane/rx/power/optical-channel-power.
+       Added several WLAi modem-specific attributes.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  augment "/ptp:waveserver-ptps/ptp:ptps/ptp:properties/ptp:transmitter" {
+    when "../ptp:xcvr-type = 'WaveLogic Ai'" {
+      description
+        "PTP transmitter properties specific to WaveLogic Ai modem.";
+    }
+    description
+      "PTP transmitter properties specific to WaveLogic Ai modem.";
+    container frequency {
+      description
+        "Tx Frequency attributes.";
+      leaf value {
+        type cienawstypes:modem-frequency;
+        units "GHz";
+        description
+          "The configured modem frequency value (GHz). Frequency cannot be modified while Admin State is enabled (except when changing from zero value to another value).";
+      }
+      leaf min-value {
+        type cienawstypes:modem-frequency;
+        units "GHz";
+        config false;
+        description
+          "The minimum supported frequency value, in GHz.";
+      }
+      leaf max-value {
+        type cienawstypes:modem-frequency;
+        units "GHz";
+        config false;
+        description
+          "The maximum supported frequency value, in GHz.";
+      }
+    }
+    container power {
+      description
+        "Tx Power attributes.";
+      leaf value {
+        type cienawstypes:tx-power-lvl;
+        units "dBm";
+        description
+          "The provisioned transmit power in dBm. The range is from -16.0 (-11.0 for EDFA) to -10.0 (4.0 for EDFA). Default is -10.0";
+      }
+      leaf min-value {
+        type cienawstypes:decimal-1-dig;
+        units "dBm";
+        config false;
+        description
+          "The minimum supported tx power value, in dBm.";
+      }
+      leaf max-value {
+        type cienawstypes:decimal-1-dig;
+        units "dBm";
+        config false;
+        description
+          "The maximum supported tx power value, in dBm.";
+      }
+    }
+  }
+  augment "/ptp:waveserver-ptps/ptp:ptps/ptp:properties" {
+    when "ptp:xcvr-type = 'WaveLogic Ai'" {
+      description
+        "PTP properties specific to WaveLogic Ai modem.";
+    }
+    description
+      "PTP properties specific to WaveLogic Ai modem.";
+    container line-system {
+      description
+        "Line System related attributes.";
+      leaf type {
+        type cienawstypes:line-sys-enum;
+        description
+          "Line system type. Default is coloured";
+      }
+    }
+    container modem {
+      description
+        "PTP Modem configuration and operational attributes.";
+      leaf baud-rate {
+        type uint32;
+        units "Gbaud";
+        config false;
+        description
+          "The baud rate value, based off the mode of the parent XCVR.";
+      }
+      leaf class {
+        type enumeration {
+          enum "terrestrial" {
+            description
+              "Terrestrial modem class.";
+          }
+          enum "submarine" {
+            description
+              "Submarine modem class.";
+          }
+        }
+        description
+          "The modem class type, terrestrial or submarine. Configuration requires proper license installed.";
+      }
+      leaf reach-limit {
+        type int16 {
+          range "0|1000|2000|3500|5000|9000|14000";
+        }
+        units "km";
+        description
+          "The maximum reach allowed in km. The possible values are [1000, 2000, 5000] for terrestrial modem class, and [3500, 9000, 14000] for submarine modem class. Configuration requires proper license installed. [0] if the value is unknown/unavailable or inapplicable.";
+      }
+      leaf link-optimization-mode {
+        type enumeration {
+          enum "standard" {
+            description
+              "Standard Mode - Default setting which provides best SNR performance.";
+          }
+          enum "snr-tolerant" {
+            description
+              "SNR Tolerant Mode - Recommended for applications that want to achieve maximum SNR tolerance while still providing reasonable polarization tracking speed and PDL tolerance.";
+          }
+          enum "fast-tracking" {
+            description
+              "Fast Tracking Mode - Recommended for applications that want to maximize SOP tracking.";
+          }
+          enum "spectral-efficiency" {
+            description
+              "Spectral Efficiency Mode - Recommended for applications that want to maximize spectral efficiency by minimizing spectral signal width.";
+          }
+          enum "latency" {
+            description
+              "Low Latency Mode - Recommended for applications that want to minimize transmission latency.";
+          }
+          enum "foreign" {
+            description
+              "Foreign Line Mode - Recommended for applications that require the transmitted signal to be be recognized/controlled by a foreign line system.";
+          }
+          enum "narrow" {
+            description
+              "Narrow Channel Mode - Recommended for applications that want to achieve maximum SNR tolerance over heavily filtered optical link.";
+          }
+          enum "non-linear" {
+            description
+              "Non-Linear Channel Mode - Recommended for applications that want to achieve maximum SNR tolerance on a non-linear fiber link.";
+          }
+          enum "reserved-1" {
+            description
+              "Reserved Mode 1.";
+          }
+          enum "reserved-2" {
+            description
+              "Reserved Mode 2.";
+          }
+          enum "reserved-3" {
+            description
+              "Reserved Mode 3.";
+          }
+          enum "custom" {
+            description
+              "Custom Link Optimization Mode.";
+          }
+        }
+        description
+          "Link Optimization Mode. Default is standard.";
+      }
+      leaf laser-tuning-mode {
+        type enumeration {
+          enum "normal" {
+            description
+              "Normal (performance-optimized) laser tuning mode.";
+          }
+          enum "accelerated" {
+            description
+              "Accelerated laser tuning mode.";
+          }
+        }
+        description
+          "This is the Tuning Mode, which can be set as normal (performance-optimized) or accelerated tuning mode. Default is normal.";
+      }
+      leaf laser-centering-mode {
+        type enumeration {
+          enum "disabled" {
+            description
+              "Laser centering disabled.";
+          }
+          enum "enabled" {
+            description
+              "Laser centering enabled.";
+          }
+          enum "holdover" {
+            description
+              "Laser centering in holdover mode.";
+          }
+        }
+        description
+          "This parameter is used to configure which laser centering mode to apply to the OTM signal.";
+      }
+      leaf laser-centering-range {
+        type decimal64 {
+          fraction-digits 1;
+          range "0.0 .. 3.0";
+        }
+        units "GHz";
+        description
+          "This parameter is used to configure the laser centering range.";
+      }
+      leaf laser-shutdown-mode {
+        type enumeration {
+          enum "accelerated" {
+            description
+              "Laser shutdown accelerated mode.";
+          }
+          enum "normal" {
+            description
+              "Laser shutdown normal mode.";
+          }
+        }
+        description
+          "Laser shutdown mode.";
+      }
+      leaf channel-contention-detection-avoidance {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Enables or disables the channel contention detection and avoidance feature. This feature is used to detect the situation where the modem port turns on a wavelength (or frequency in Gridless mode) that is in use by an existing L0 connection on a colorless network. This feature will be triggered by new frequency provisioning and will automatically detects if the provisioned frequency is already used. If the provisioned frequency is already used, it declares channel contention, and then it will hold the Line port TX in a low power state (<-35 dBm) and will raise a Channel Contention alarm. This feature will also provide a mechanism to allow user to manually release the Line port TX from being held in a low power state while the channel collision declared.";
+      }
+      leaf tx-power-reduction-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "This parameter is used to enable Tx blanking functionality. Default is Disabled.";
+      }
+      leaf tx-dispersion-compensation-mode {
+        type enumeration {
+          enum "automatic" {
+            description
+              "Automatic Tx dispersion compensation management mode. This is the default.";
+          }
+          enum "fixed" {
+            description
+              "Fixed Tx dispersion compensation management mode.";
+          }
+        }
+        description
+          "Tx dispersion compensation management mode.";
+      }
+      leaf tx-dispersion-precompensation-value {
+        type int32 {
+          range "-175000..300000";
+        }
+        units "ps/nm";
+        description
+          "Tx compensation dispersion value, in ps/nm. Default is 0 for automatic mode.";
+      }
+      leaf tx-path-dispersion-value {
+        type int32 {
+          range "-175000..381000";
+        }
+        units "ps/nm";
+        description
+          "Tx path dispersion value, in ps/nm.";
+      }
+      leaf tx-dispersion-min {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Tx dispersion minimum value, in ps/nm.";
+      }
+      leaf tx-dispersion-max {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Tx dispersion maximum value, in ps/nm.";
+      }
+      leaf actual-tx-link-dispersion {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Total actual Tx link dispersion, in ps/nm.";
+      }
+      leaf actual-rx-link-dispersion {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Total actual Rx link dispersion, in ps/nm.";
+      }
+      leaf actual-tx-precompensation-dispersion {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Actual Tx precompensation dispersion value, in ps/nm. This is the total link dispersion in the near-to-far direction.";
+      }
+      leaf rx-post-compensation-dispersion {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Rx post-compensation dispersion, in ps/nm.";
+      }
+      leaf estimated-instance-of-differential-group-delay {
+        type uint32;
+        units "ps";
+        config false;
+        description
+          "Estimated instance of differential group delay, in picoseconds (ps).";
+      }
+      leaf mean-supported-differential-group-delay {
+        type uint32;
+        units "ps";
+        config false;
+        description
+          "Mean supported differential group delay, in picoseconds (ps).";
+      }
+      leaf estimated-round-trip-delay {
+        type uint32;
+        units "us";
+        config false;
+        description
+          "Estimated round trip delay, in microseconds (us).";
+      }
+      leaf estimated-unidirectional-latency {
+        type uint32;
+        units "us";
+        config false;
+        description
+          "Estimated unidirectional latency, in microseconds (us).";
+      }
+      leaf estimated-fiber-length {
+        type uint32;
+        units "km";
+        config false;
+        description
+          "Estimated fiber length, in kilometers (km).";
+      }
+      leaf allocated-spectral-width {
+        type cienawstypes:decimal-1-dig;
+        units "GHz";
+        config false;
+        description
+          "Allocated spectral width, in GHz.";
+      }
+      leaf min-spectral-width {
+        type cienawstypes:decimal-1-dig;
+        units "GHz";
+        config false;
+        description
+          "Minimum spectral width, in GHz.";
+      }
+    }
+  }
+  augment "/ptp:waveserver-ptps/ptp:ptps/ptp:properties/ptp:lanes/ptp:lane/ptp:rx/ptp:power" {
+    when "../../../../ptp:xcvr-type = 'WaveLogic Ai'" {
+      description
+        "PTP Rx power properties specific to WaveLogic Ai modem.";
+    }
+    description
+      "PTP Rx power properties specific to WaveLogic Ai modem.";
+    container optical-channel-power {
+      config false;
+      description
+        "The actual Rx power attributes for the channel to which the receiver is tuned.";
+      uses xcvr:optical-power-group;
+    }
+  }
+  augment "/ptp:waveserver-ptps/ptp:ptps/ptp:properties/ptp:lanes/ptp:lane/ptp:rx/ptp:status" {
+    when "../../../../ptp:xcvr-type = 'WaveLogic Ai'" {
+      description
+        "PTP Rx status properties specific to WaveLogic Ai modem.";
+    }
+    description
+      "PTP Rx status properties specific to WaveLogic Ai modem.";
+    container optical-channel-power {
+      config false;
+      description
+        "Optical Channel Rx Power high/low alarm/warning status/thresholds, where applicable for the XCVR type.";
+      uses xcvr:optical-power-status-group;
+      uses xcvr:optical-power-threshold-group;
+      leaf loss-of-signal {
+        type boolean;
+        description
+          "Rx Loss of Optical Channel.";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-ptp@2017-11-27.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-ptp@2017-11-27.yang
new file mode 100644
index 0000000..51b01e7
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-ptp@2017-11-27.yang
@@ -0,0 +1,287 @@
+module ciena-waveserver-ptp {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-ptp";
+  prefix ptp;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+  import ciena-waveserver-xcvr {
+    prefix xcvr;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "Physical Termination Point. This module models the physical characteristics of the signal. This base module contains generic definitions for all PTPs. Specific characteristics of PTPs can augment this model to provide more detail. PTPs are automatically provisioned by the system.";
+
+  revision 2017-11-27 {
+    description
+      "Added conditional 'when' statements to line-specific and client-specific leafs.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-08-10 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Changed 'ptps' list key from 'ptp-index' (integer type) to 'ptp-id' (string type) to accommodate '<slot>-<port>' format.
+       Changed 'parent-index' to 'parent-id' (this is the parent xcvr-id) and type to leafref.
+       Changed 'rate' enum to 'nominal-bit-rate' string type, in Gbps units.
+       Renamed 'channels' container to 'lanes'.
+       Removed 'diagnostics' container.
+       Added 'lower-level-down' operational state value.
+       Wavelength is operational (config false) now. Also moved 'actual' wavelength attribute to per-lane attributes. 
+       Moved ptp-pluggable operational attributes (tx loss-of-signal, loss-of-lock) into this common module. The pluggable-only attributes will be omitted from the display of line-side/modem PTP queries.
+       Added 'spli-management' support.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  typedef ptp-op-enum {
+    type enumeration {
+      enum "up" {
+        description
+          "The PTP is enabled/operational and capable of carrying traffic.";
+      }
+      enum "down" {
+        description
+          "The PTP is disabled.";
+      }
+      enum "tuning" {
+        description
+          "Wavelength or CDR tuning in progress.";
+      }
+      enum "fault" {
+        description
+          "There is an active alarm associated with the PTP.";
+      }
+      enum "lower-layer-down" {
+        description
+          "The PTP is enabled, but a parent object is faulted.";
+      }
+    }
+    description
+      "PTP operational state.";
+  }
+
+  container waveserver-ptps {
+    description
+      "Waveserver Physical Termination Point (PTP) configuration and operational data.";
+    list ptps {
+      key "ptp-id";
+      description
+        "List of PTP objects.";
+      leaf ptp-id {
+        type cienawstypes:name-string;
+        mandatory true;
+        description
+          "Unique, access identifier string of the PTP (e.g., '1-1'). Key value for the PTP list. Read-only attribute.";
+      }
+      container id {
+        config false;
+        description
+          "Identification information of this PTP instance.";
+        leaf name {
+          type cienawstypes:name-string;
+          config false;
+          description
+            "Name of the PTP instance. Read only attribute.";
+        }
+      }
+      container state {
+        description
+          "State information of this PTP instance.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Administrative state (enabled or disabled) of the PTP. If Admin State is set to enabled, majority of the PTP fields will no longer be modifiable. When PTP Transmitter State is Disabled, PTP Admin State cannot be changed from Disabled to Enabled.";
+        }
+        leaf operational-state {
+          type ptp-op-enum;
+          config false;
+          description
+            "Operational state of the PTP. Read-only attribute.";
+        }
+        leaf spli-management {
+          when "../../properties/xcvr-type = 'WaveLogic Ai'" {
+            description
+              "SPLI management supported on line-side PTPs only.";
+          }
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether or not SPLI management is enabled for this PTP.";
+        }
+      }
+      container properties {
+        description
+          "All the configurable and operational data of this PTP instance.";
+        leaf xcvr-type {
+          type cienawstypes:xcvr-type;
+          description
+            "Transceiver type of the XCVR that's associated with this PTP. Type depends on what is physically plugged in. Read only attribute.";
+        }
+        leaf parent-id {
+          type leafref {
+            path "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:xcvr-id";
+          }
+          config false;
+          description
+            "Reference to the name of the transceiver (XCVR) associated with the PTP. Read-only attribute.";
+        }
+        leaf nominal-bit-rate {
+          type cienawstypes:string-maxl-16;
+          units "Gbps";
+          config false;
+          description
+            "Bit rate, nominal, in Gbps.";
+        }
+        container transmitter {
+          description
+            "PTP transmitter related config and operational data fields.";
+          leaf state {
+            type cienawstypes:enabled-disabled-na-enum;
+            description
+              "Transmitter state (enabled or disabled) of the PTP. PTP Admin State cannot be changed to enabled unless the transmitter state is enabled.";
+          }
+          container wavelength {
+            config false;
+            description
+              "PTP tx wavelength related operational data fields.";
+            leaf value {
+              type cienawstypes:decimal-2-dig;
+              units "nm";
+              config false;
+              description
+                "Wavelength value setting of the PTP, in nm. Read-only attribute.";
+            }
+            leaf min-value {
+              when "../../../xcvr-type = 'WaveLogic Ai'" {
+                description
+                  "XCVR min-value supported on line-side PTPs only.";
+              }
+              type cienawstypes:decimal-2-dig-small;
+              units "nm";
+              config false;
+              description
+                "The minimum wavelength supported by the XCVR. Supported on line-side ports only.";
+            }
+            leaf max-value {
+              when "../../../xcvr-type = 'WaveLogic Ai'" {
+                description
+                  "XCVR max-value supported on line-side PTPs only.";
+              }
+              type cienawstypes:decimal-2-dig-small;
+              units "nm";
+              config false;
+              description
+                "The maximum wavelength supported by the XCVR. Supported on line-side ports only.";
+            }
+          }
+        }
+        container lanes {
+          config false;
+          description
+            "PTP lanes related operational data fields.";
+          leaf number-of-lanes {
+            type cienawstypes:lanes-number;
+            config false;
+            description
+              "Number of lanes this PTP has.";
+          }
+          list lane {
+            key "lane-number";
+            config false;
+            max-elements "4";
+            description
+              "Operational data of a specific PTP lane.";
+            leaf lane-number {
+              type cienawstypes:lanes-number;
+              config false;
+              description
+                "Lane number of the PTP being queried.";
+            }
+            leaf actual-wavelength {
+              type cienawstypes:decimal-2-dig;
+              units "nm";
+              config false;
+              description
+                "Actual wavelength value for the lane, in nm.";
+            }
+            container rx {
+              description
+                "Lane Rx attributes.";
+              container power {
+                description
+                  "Lane Rx Power operational attributes (actual power, min/max recorded power, etc.).";
+                uses xcvr:optical-power-group;
+              }
+              container status {
+                description
+                  "Lane Rx Power high/low alarm/warning status/thresholds, where applicable for the XCVR type.";
+                uses xcvr:optical-power-status-group;
+                uses xcvr:optical-power-threshold-group;
+                leaf loss-of-signal {
+                  type boolean;
+                  config false;
+                  description
+                    "Rx Loss of Signal.";
+                }
+                leaf loss-of-lock {
+                  when "../../../../../xcvr-type = 'QSFP28'" {
+                    description
+                      "Returned for on pluggables only.";
+                  }
+                  type boolean;
+                  config false;
+                  description
+                    "Rx Loss of Lock.";
+                }
+              }
+            }
+            container tx {
+              description
+                "Lane Tx attributes.";
+              container power {
+                description
+                  "Lane Tx Power operational attributes (actual power, min/max recorded power, etc.).";
+                uses xcvr:optical-power-group;
+              }
+              container status {
+                description
+                  "Lane Tx Power high/low alarm/warning status/thresholds, where applicable for the XCVR type.";
+                uses xcvr:optical-power-status-group;
+                uses xcvr:optical-power-threshold-group;
+                leaf loss-of-signal {
+                  when "../../../../../xcvr-type = 'QSFP28'" {
+                    description
+                      "Returned for on pluggables only.";
+                  }
+                  type boolean;
+                  config false;
+                  description
+                    "Tx Loss of Signal.";
+                }
+                leaf loss-of-lock {
+                  when "../../../../../xcvr-type = 'QSFP28'" {
+                    description
+                      "Returned for on pluggables only.";
+                  }
+                  type boolean;
+                  config false;
+                  description
+                    "Tx Loss of Lock.";
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-software@2017-12-07.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-software@2017-12-07.yang
new file mode 100644
index 0000000..f5b0653
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-software@2017-12-07.yang
@@ -0,0 +1,466 @@
+module ciena-waveserver-software {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-software";
+  prefix software;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines Software Status and Upgrade support for Ciena's Waveserver Platform.";
+
+  revision 2017-12-07 {
+    description
+      "Added support for multi-step upgrade RPCs for 'download', 'activate', and 'commit'.
+       Added 'upgrade-log' attribute support.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-09-07 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Updated 'software-op-state' and 'upgrade-op-state' enum values.
+       Removed several unsupported attributes/containers/RPCs.
+       Added WCS and Module status containers/attributes.
+       Moved some common attributes into groupings.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  grouping software-device-status-group {
+    description
+      "Grouping for WCS and Module software status attributes.";
+    leaf boot-zone {
+      type boot-zone;
+      description
+        "The boot zone for the specified device.";
+    }
+    leaf last-restart {
+      type cienawstypes:string-maxl-32;
+      description
+        "The date and time of last restart in the format of a human readable string. e.g 'Wed Jun 30 21:49:08 2015'";
+    }
+    leaf last-restart-reason {
+      type cienawstypes:restart-reason;
+      description
+        "Cause for the last restart.";
+    }
+    leaf boot-image-a {
+      type cienawstypes:string-maxl-64;
+      description
+        "The boot image or firmware image name for zone A.";
+    }
+    leaf boot-image-b {
+      type cienawstypes:string-maxl-64;
+      description
+        "The boot image or firmware image name for zone B.";
+    }
+  }
+
+  grouping software-release-group {
+    description
+      "Grouping for active and installed software release attributes.";
+    leaf version {
+      type cienawstypes:string-maxl-32;
+      description
+        "The software release version.";
+    }
+    leaf build-number {
+      type cienawstypes:string-maxl-32;
+      description
+        "The software release build number.";
+    }
+    leaf build-tag {
+      type cienawstypes:string-maxl-32;
+      description
+        "The software release build tag.";
+    }
+    leaf build-date {
+      type cienawstypes:string-maxl-32;
+      description
+        "The software release build date.";
+    }
+  }
+
+  typedef software-rtncode {
+    type uint32;
+    description
+      "Return code value used in the software module. 0 indicate success. None-zero indicate failure.";
+  }
+
+  typedef software-op-state {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Software operational state is unknown.";
+      }
+      enum "normal" {
+        description
+          "Software operational state is normal.";
+      }
+      enum "upgrade-in-progress" {
+        description
+          "Software upgrade is in progress.";
+      }
+      enum "automatic-upgrade-in-progress" {
+        description
+          "Automatic software upgrade is in progress.";
+      }
+      enum "restart-in-progress" {
+        description
+          "System restart is in progress. WCS is initializing but not yet in 'boot-complete' state.";
+      }
+      enum "module-restart-in-progress" {
+        description
+          "One or more modules is initializing and has not yet reached run-mode 'run' state.";
+      }
+      enum "application-failed" {
+        description
+          "One or more required applications is not running.";
+      }
+    }
+    description
+      "Software operational state.";
+  }
+
+  typedef upgrade-op-state {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Upgrade operational state is unknown.";
+      }
+      enum "idle" {
+        description
+          "Software upgrade is idle.";
+      }
+      enum "download-in-progress" {
+        description
+          "Software download is in progress.";
+      }
+      enum "download-complete" {
+        description
+          "Software download is complete.";
+      }
+      enum "download-failed" {
+        description
+          "Software download failed.";
+      }
+      enum "activation-in-progress" {
+        description
+          "Software activation is in progress.";
+      }
+      enum "activation-complete" {
+        description
+          "Software activation is complete.";
+      }
+      enum "activation-failed" {
+        description
+          "Software activation failed.";
+      }
+      enum "installation-in-progress" {
+        description
+          "Software installation is in progress.";
+      }
+      enum "installation-failed" {
+        description
+          "Software installation failed.";
+      }
+      enum "commit-in-progress" {
+        description
+          "Software commit is in progress.";
+      }
+      enum "commit-failed" {
+        description
+          "Software commit failed.";
+      }
+      enum "cancel-in-progress" {
+        description
+          "Software cancel operation is in progress.";
+      }
+      enum "cancel-failed" {
+        description
+          "Software cancel operation failed.";
+      }
+      enum "delete-in-progress" {
+        description
+          "Software delete operation is in progress.";
+      }
+      enum "delete-failed" {
+        description
+          "Software delete operation failed.";
+      }
+      enum "automatic-upgrade-in-progress" {
+        description
+          "Automatic software upgrade is in progress.";
+      }
+      enum "automatic-upgrade-failed" {
+        description
+          "Automatic software upgrade failed.";
+      }
+      enum "module-cold-restart-required" {
+        description
+          "A cold restart is required on one or more modules.";
+      }
+    }
+    description
+      "Software upgrade operational state.";
+  }
+
+  typedef boot-zone {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Boot zone is unknown.";
+      }
+      enum "a" {
+        description
+          "Boot zone A.";
+      }
+      enum "b" {
+        description
+          "Boot zone B.";
+      }
+    }
+    description
+      "The boot zone type.";
+  }
+
+  container waveserver-software {
+    config false;
+    description
+      "Waveserver software upgrade and load management.";
+    container status {
+      description
+        "Waveserver software status information.";
+      leaf software-operational-state {
+        type software-op-state;
+        description
+          "The current software operational state.";
+      }
+      leaf upgrade-operational-state {
+        type upgrade-op-state;
+        description
+          "The current upgrade operational state.";
+      }
+      leaf committed-version {
+        type cienawstypes:string-maxl-64;
+        description
+          "The committed software release version.";
+      }
+      leaf active-version {
+        type cienawstypes:string-maxl-64;
+        description
+          "The active software release version.";
+      }
+      leaf upgrade-to-version {
+        type cienawstypes:string-maxl-64;
+        description
+          "The software release version currently being upgraded to, if applicable.";
+      }
+      leaf last-operation {
+        type cienawstypes:string-maxl-128;
+        description
+          "The software upgrade last operation.";
+      }
+      leaf upgrade-log {
+        type cienawstypes:string-maxl-128;
+        description
+          "The software upgrade log file URI on the Waveserver.";
+      }
+    }
+    container wcs-status {
+      description
+        "Software status information for the Waveserver Control Subsystem control module.";
+      leaf boot-image-version {
+        type cienawstypes:string-maxl-32;
+        description
+          "The current boot image version for the WCS.";
+      }
+      leaf fpga-id {
+        type cienawstypes:string-maxl-64;
+        description
+          "The current FPGA image identifier for the WCS.";
+      }
+      uses software-device-status-group;
+    }
+    container module-status {
+      description
+        "Module software status information.";
+      list module {
+        key "module-id";
+        description
+          "List containing module-specific software status information.";
+        leaf module-id {
+          type cienawstypes:name-string;
+          mandatory true;
+          description
+            "Unique access identifier string of the Module, which may just be a slot number (e.g. '1'). Key value for the Module list. Read-only attribute.";
+        }
+        uses software-device-status-group;
+      }
+    }
+    container active {
+      description
+        "Waveserver active software information.";
+      uses software-release-group;
+    }
+    container installed {
+      description
+        "Waveserver installed software release information.";
+      list versions {
+        key "index";
+        description
+          "A list of installed software releases on this Waveserver.";
+        leaf index {
+          type uint8;
+          description
+            "Unique id, read-only attribute.";
+        }
+        uses software-release-group;
+      }
+    }
+  }
+  rpc waveserver-software-install {
+    description
+      "Perform one-step software upgrade (download, activate, and commit) via url string.";
+    input {
+      leaf url {
+        type cienawstypes:string-maxl-254;
+        mandatory true;
+        description
+          "The URL specifying the remote location and package name to be installed. Example format is 'scp://<uid>:<pwd>@<ip-address>/<path>/<filename>'.";
+      }
+    }
+    output {
+      leaf return-code {
+        type software-rtncode;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-software-download {
+    description
+      "Download software load via url string.";
+    input {
+      leaf url {
+        type cienawstypes:string-maxl-254;
+        mandatory true;
+        description
+          "The URL specifying the remote location and package name to be installed. Example format is 'scp://<uid>:<pwd>@<ip-address>/<path>/<filename>'.";
+      }
+    }
+    output {
+      leaf return-code {
+        type software-rtncode;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-software-activate {
+    description
+      "Perform software activate via version string.";
+    input {
+      leaf version {
+        type cienawstypes:string-maxl-32;
+        mandatory true;
+        description
+          "The load version string.";
+      }
+      leaf auto-commit {
+        type boolean;
+        default "false";
+        description
+          "Optionally specify that the software load be automatically committed after activation.";
+      }
+    }
+    output {
+      leaf return-code {
+        type software-rtncode;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-software-delete {
+    description
+      "Perform software delete via version string.";
+    input {
+      leaf version {
+        type cienawstypes:string-maxl-32;
+        mandatory true;
+        description
+          "The load version string.";
+      }
+    }
+    output {
+      leaf return-code {
+        type software-rtncode;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-software-commit {
+    description
+      "Perform software commit operation in the current load has not been committed and it is in boot completion state.";
+    output {
+      leaf return-code {
+        type software-rtncode;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-software-cancel {
+    description
+      "Cancel an existing software upgrade operation that is in a failed state.";
+    output {
+      leaf return-code {
+        type software-rtncode;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-system@2018-01-04.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-system@2018-01-04.yang
new file mode 100644
index 0000000..1d8d7fe
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-system@2018-01-04.yang
@@ -0,0 +1,939 @@
+module ciena-waveserver-system {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-system";
+  prefix system;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This YANG module defines Ciena's Waveserver System representation.";
+
+  revision 2018-01-04 {
+    description
+      "Changed site 'latitude' and 'longitude' precision from 5 to 6 digits.
+       Updated 'server-config' attribute permissions.
+       Added 'domain-name' container support.
+       Added 'server-config/ssh' container support.
+       Added 'client-config' container support with 'dhcp' and 'ntp' sub-containers.
+       Added 'shell' container for Waveserver CLI shell/session configuration attributes. 
+       Added 'secret' read-only attribute to the environment/root container.
+       Remove 'include-datapath' and 'include-optics' attributes from 'state-dump' command.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-06-30 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Added scp server support (from WS 1.5).
+       Remove bandplan, front-display, fcs-error-forwarding, low-power-mode as not supported on WS Ai R1.0.
+       Updated xftp-config/tftp 'dhcp-host-name' and 'current-host-name' to be config false.
+       Added 'default-settings' container with leafs to configure 'conditioning-type' and 'conditioning-holdoff' system defaults.
+       Added 'grpc-server-state' and 'scp-server-state' to server-config container.
+       Combined several boolean leafs in 'server-settings-group' into a single enum.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  typedef line-protection-enum {
+    type enumeration {
+      enum "unprotected" {
+        value 0;
+        description
+          "Line protection is disabled.";
+      }
+      enum "trunk-ops" {
+        value 1;
+        description
+          "Line protection is enabled.";
+      }
+    }
+    description
+      "Enum for line protection options.";
+  }
+
+  grouping server-settings-group {
+    description
+      "Grouping for common server settings attributes used in various RPCs.";
+    leaf server-to-use {
+      type enumeration {
+        enum "none" {
+          description
+            "Don't specify a remote server for the file transfer.";
+        }
+        enum "default-server" {
+          description
+            "Use the default server for the file transfer.";
+        }
+        enum "default-tftp-server" {
+          description
+            "Use the default TFTP server for the file transfer.";
+        }
+        enum "default-ftp-server" {
+          description
+            "Use the default FTP server for the file transfer.";
+        }
+        enum "default-sftp-server" {
+          description
+            "Use the default SFTP server for the file transfer.";
+        }
+        enum "default-scp-server" {
+          description
+            "Use the default SCP server for the file transfer.";
+        }
+        enum "specified-tftp-server" {
+          description
+            "Use the user-specified TFTP server for the file transfer. A tftp-server value must also be specified in the request.";
+        }
+        enum "specified-ftp-server" {
+          description
+            "Use the user-specified FTP server for the file transfer. An ftp-server value must also be specified in the request.";
+        }
+        enum "specified-sftp-server" {
+          description
+            "Use the user-specified SFTP server for the file transfer. An sftp-server value must also be specified in the request.";
+        }
+        enum "specified-scp-server" {
+          description
+            "Use the user-specified SCP server for the file transfer. A scp-server value must also be specified in the request.";
+        }
+      }
+      description
+        "If server-to-use is specified with a value other than 'none; in the RPC request, then the system will use the specified server for the file transfer.";
+    }
+    leaf tftp-server-address {
+      type cienawstypes:string-maxl-64;
+      description
+        "The TFTP server IP address to use for the file transfer if server-to-use is 'specified-tftp-server'. Otherwise this attribute is ignored.";
+    }
+    leaf ftp-server-address {
+      type cienawstypes:string-maxl-64;
+      description
+        "The FTP server IP address to use for the file transfer if server-to-use is 'specified-ftp-server'. Otherwise this attribute is ignored.";
+    }
+    leaf ftp-login-id {
+      type cienawstypes:string-maxl-32;
+      description
+        "The FTP username.";
+    }
+    leaf ftp-password {
+      type cienawstypes:string-maxl-128;
+      description
+        "The FTP password.";
+    }
+    leaf ftp-secret {
+      type cienawstypes:string-maxl-256;
+      description
+        "The FTP secret(pre-encrypted) string.";
+    }
+    leaf sftp-server-address {
+      type cienawstypes:string-maxl-64;
+      description
+        "The SFTP server IP address to use for the file transfer if server-to-use is 'specified-sftp-server'. Otherwise this attribute is ignored.";
+    }
+    leaf sftp-login-id {
+      type cienawstypes:string-maxl-32;
+      description
+        "The SFTP login ID.";
+    }
+    leaf sftp-password {
+      type cienawstypes:string-maxl-128;
+      description
+        "The SFTP password.";
+    }
+    leaf sftp-secret {
+      type cienawstypes:string-maxl-256;
+      description
+        "The SFTP secret(pre-encrypted) string.";
+    }
+    leaf scp-server-address {
+      type cienawstypes:string-maxl-64;
+      description
+        "The SCP server IP address to use for the file transfer if server-to-use is 'specified-scp-server'. Otherwise this attribute is ignored.";
+    }
+    leaf scp-login-id {
+      type cienawstypes:string-maxl-32;
+      description
+        "The SCP login ID.";
+    }
+    leaf scp-password {
+      type cienawstypes:string-maxl-128;
+      description
+        "The SCP password.";
+    }
+    leaf scp-secret {
+      type cienawstypes:string-maxl-256;
+      description
+        "The SCP secret(pre-encrypted) string.";
+    }
+  }
+
+  container waveserver-system {
+    description
+      "Waveserver System configuration data and operational data.";
+    container id {
+      description
+        "Waveserver system identification attributes.";
+      container site {
+        description
+          "Waveserver system site attributes.";
+        leaf id {
+          type uint16 {
+            range "0..65535";
+          }
+          description
+            "An integer to uniquely identify the site where this Waveserver is located. This is used to help group Waveservers together with line system equipment. All equipment in a common site should share the same site identifier. ";
+        }
+        leaf name {
+          type string {
+            length "0..32";
+          }
+          description
+            "The name for the site where the Waveserver is located.";
+        }
+        leaf description {
+          type string {
+            length "0..64";
+          }
+          description
+            "The site description";
+        }
+        leaf latitude {
+          type decimal64 {
+            fraction-digits 6;
+            range "-90.0 .. 90.0";
+          }
+          description
+            "Geographic coordinate for the site location in degrees.";
+        }
+        leaf longitude {
+          type decimal64 {
+            fraction-digits 6;
+            range "-180.0 .. 180.0";
+          }
+          description
+            "Geographic coordinate for the site location in degrees.";
+        }
+        leaf address {
+          type string {
+            length "0..128";
+          }
+          description
+            "The street address of the site.";
+        }
+      }
+      container group {
+        description
+          "Waveserver system group attributes.";
+        leaf id {
+          type uint8 {
+            range "0..99";
+          }
+          description
+            "An integer to uniquely identify a group of Waveservers within a site.";
+        }
+        leaf name {
+          type string {
+            length "0..32";
+          }
+          description
+            "A name for the group of Waveservers.";
+        }
+        leaf description {
+          type string {
+            length "0..64";
+          }
+          description
+            "A description for the group of Waveservers. ";
+        }
+      }
+      container member {
+        description
+          "Waveserver system member attributes.";
+        leaf id {
+          type uint8 {
+            range "0..254";
+          }
+          description
+            "An integer to uniquely identify a Waveserver chassis within a group of Waveservers.";
+        }
+        leaf name {
+          type string {
+            length "0..32";
+          }
+          description
+            "A name for the Waveserver chassis.";
+        }
+        leaf description {
+          type string {
+            length "0..64";
+          }
+          description
+            "A description for the Waveserver chassis.";
+        }
+        leaf frame-identification {
+          type string {
+            length "0..128";
+          }
+          description
+            "A description to identify the location of the Waveserver chassis within the data center. For example, the building, floor, aisle, frame number, etc.";
+        }
+        leaf rack-unit-number {
+          type uint8 {
+            range "0..50";
+          }
+          description
+            "A logical identifier for the Waveservers location within the frame or rack. For example, the device at the top could be labelled unit 1.";
+        }
+      }
+    }
+    container host-name {
+      description
+        "Waveserver system host name attributes.";
+      leaf current-host-name {
+        type cienawstypes:string-maxl-64;
+        config false;
+        description
+          "Current host name.";
+      }
+      leaf config-host-name {
+        type cienawstypes:string-maxl-64;
+        description
+          "User configured host name.";
+      }
+      leaf dhcp-host-name {
+        type cienawstypes:string-maxl-64;
+        config false;
+        description
+          "DHCP configured host name.";
+      }
+    }
+    container domain-name {
+      description
+        "Waveserver system domain name attributes.";
+      leaf current-domain-name {
+        type cienawstypes:string-maxl-64;
+        config false;
+        description
+          "Current domain name. This will either be the DHCP-assigned domain name, or the user-configured value, respectively.";
+      }
+      leaf config-domain-name {
+        type cienawstypes:string-maxl-64;
+        description
+          "User configured domain name.";
+      }
+      leaf dhcp-domain-name {
+        type cienawstypes:string-maxl-64;
+        config false;
+        description
+          "DHCP configured domain name, if assigned. DHCP Client must be enabled with Option 15 support in order to obtain a domain name from the server.";
+      }
+    }
+    container time-config {
+      description
+        "Waveserver system time configuration attributes.";
+      leaf date {
+        type string {
+          length "1..11";
+          pattern "\\d{4}-\\d{2}-\\d{2}|\\d{2}-\\d{2}-\\d{2}|\\d{2}-\\d{2}";
+        }
+        description
+          "Date: must be in format: yyyy-mm-dd, or yy-mm-dd, or mm-dd.";
+      }
+      leaf time {
+        type string {
+          length "1..9";
+          pattern "\\d{2}:\\d{2}:\\d{2}|\\d{2}:\\d{2}";
+        }
+        description
+          "Time: must be in format: hh:mm:ss";
+      }
+      leaf time-offset {
+        type decimal64 {
+          fraction-digits 2;
+          range "-43200.0 .. 50400.0";
+        }
+        description
+          "System time-offset from UTC in seconds.";
+      }
+      leaf time-stamp {
+        type enumeration {
+          enum "utc" {
+            description
+              "Timestamp is indicated in Coordinated Universal Time (UTC) format.";
+          }
+          enum "local" {
+            description
+              "Timestamp is indicated in local time format.";
+          }
+        }
+        description
+          "System time stamp format: local time or UTC time.";
+      }
+      leaf local-date-time {
+        type string {
+          length "1..41";
+        }
+        config false;
+        description
+          "Local date and time Time";
+      }
+      leaf coordinated-universal-time {
+        type string {
+          length "1..41";
+        }
+        config false;
+        description
+          "UTC date and time Time";
+      }
+      leaf system-uptime {
+        type string {
+          length "1..17";
+        }
+        config false;
+        description
+          "Time since last reboot, in format: xxxd xxh xxm xxs";
+      }
+    }
+    container server-config {
+      description
+        "Waveserver system server configuration attributes.";
+      leaf sftp-server-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Indicate whether SFTP server is enabled.";
+      }
+      leaf scp-server-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Indicate whether SCP server is enabled.";
+      }
+      leaf web-server-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Indicate whether web server is enabled, HTTPS only.";
+      }
+      leaf netconf-server-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Indicate whether NETCONF server is enabled.";
+      }
+      leaf restconf-server-state {
+        type cienawstypes:enabled-disabled-enum;
+        config false;
+        description
+          "Indicate whether RESTCONF server is enabled, HTTPS only.";
+      }
+      leaf grpc-server-state {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Indicate whether gRPC server is enabled.";
+      }
+      container ssh {
+        description
+          "SSH server configuration.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          config false;
+          description
+            "SSH server administrative state. Currently a read-only attribute.
+             SSH server is enabled by default and cannot be explicitly disabled.";
+        }
+        leaf operational-state {
+          type cienawstypes:up-down-enum;
+          config false;
+          description
+            "SSH server operational state.";
+        }
+        leaf authentication-retries {
+          type uint8 {
+            range "1..3";
+          }
+          description
+            "Number of authentication retries allowed before the SSH connection
+             is dropped.";
+        }
+        leaf listener-port {
+          type uint16 {
+            range "22..65535";
+          }
+          description
+            "Configured SSH listener port. Default is port 22.";
+        }
+        leaf session-limit {
+          type uint16;
+          config false;
+          description
+            "SSH session limit. Read-only attribute.";
+        }
+      }
+    }
+    container client-config {
+      description
+        "Waveserver client configuration attributes.";
+      container dhcp {
+        description
+          "Waveserver DHCP client configuration attributes.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "DHCP client administrative atate";
+        }
+        leaf operational-state {
+          type cienawstypes:up-down-enum;
+          config false;
+          description
+            "DHCP client operational state.";
+        }
+      }
+      container ntp {
+        description
+          "Waveserver NTP client configuration attributes.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "NTP client administrative state.";
+        }
+        leaf operational-state {
+          type cienawstypes:up-down-enum;
+          config false;
+          description
+            "NTP client operational state.";
+        }
+        leaf authentication-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "NTP client authentication state. When enabled, only MD5 
+             authenticated packets will be used to synchronize the time.";
+        }
+        leaf mode {
+          type enumeration {
+            enum "polling" {
+              description
+                "NTP client is in polling mode.";
+            }
+            enum "broadcast" {
+              description
+                "NTP client is in broadcast mode.";
+            }
+            enum "multicast" {
+              description
+                "NTP client is in multicast mode.";
+            }
+          }
+          description
+            "NTP client mode.";
+        }
+        leaf polling-interval {
+          type uint32 {
+            range "16|32|64|128|256|512|1024|2048|4096|8192|16384|32768|65536";
+          }
+          units "seconds";
+          description
+            "The NTP client polling interval, in seconds. Applicable only when
+             NTP client mode is set to 'polling'. This is a global setting that
+             applies to all configured NTP peer servers.";
+        }
+        leaf delay {
+          type cienawstypes:decimal-3-dig;
+          units "ms";
+          config false;
+          description
+            "Round trip delay to the active NTP peer, in milliseconds.";
+        }
+        leaf offset {
+          type cienawstypes:decimal-3-dig;
+          units "ms";
+          config false;
+          description
+            "The time offset between the NTP client and server, in milliseconds.";
+        }
+        leaf jitter {
+          type cienawstypes:decimal-3-dig;
+          units "ms";
+          config false;
+          description
+            "The mean deviation/dispersion of multiple time samples from the
+             active NTP peer, in milliseconds.";
+        }
+        leaf synchronized {
+          type boolean;
+          config false;
+          description
+            "Specifies whether NTP client has synchronized the system time
+             with a remote peer server.";
+        }
+        list ntp-key {
+          key "key-id";
+          max-elements "32";
+          description
+            "List of NTP authentication keys.";
+          leaf key-id {
+            type uint16;
+            mandatory true;
+            description
+              "Unique index value for the NTP authentication key.";
+          }
+          leaf key-type {
+            type enumeration {
+              enum "MD5" {
+                description
+                  "Authentication key uses MD5 encryption.";
+              }
+            }
+            config false;
+            description
+              "Encryption type used for the NTP authentication key.";
+          }
+          leaf key-value {
+            type string {
+              length "2..31";
+            }
+            description
+              "NTP authentication key value.";
+          }
+        }
+        list server {
+          key "address";
+          max-elements "10";
+          description
+            "List of NTP servers to use for time synchronization.";
+          leaf address {
+            type cienawstypes:ipaddr-or-hostname;
+            mandatory true;
+            description
+              "Configured IP address or Domain Name of the remote NTP server.";
+          }
+          leaf ip-address {
+            type cienawstypes:string-maxl-64;
+            config false;
+            description
+              "Operational IP address associated with the remote NTP server, 
+               if configured/available, or 'Unresolved' otherwise.";
+          }
+          leaf admin-state {
+            type cienawstypes:enabled-disabled-enum;
+            description
+              "NTP remote server administrative state.";
+          }
+          leaf operational-state {
+            type cienawstypes:up-down-enum;
+            config false;
+            description
+              "NTP remote server operational state.";
+          }
+          leaf key-id {
+            type leafref {
+              path "../../ntp-key/key-id";
+            }
+            description
+              "Leafref to 'ntp-key' list 'key-id' values.";
+          }
+          leaf offset {
+            type cienawstypes:decimal-3-dig;
+            units "ms";
+            config false;
+            description
+              "Estimated current time offset between the NTP client and server, in milliseconds.";
+          }
+        }
+      }
+    }
+    container xftp-config {
+      description
+        "Waveserver system XFTP configuration attributes.";
+      leaf mode {
+        type enumeration {
+          enum "none" {
+            value 0;
+            description
+              "No FTP mode is specified.";
+          }
+          enum "tftp" {
+            value 1;
+            description
+              "Trivial File Transfer Protocol (TFTP) mode.";
+          }
+          enum "ftp" {
+            value 2;
+            description
+              "File Transfer Protocol (FTP) mode.";
+          }
+          enum "sftp" {
+            value 3;
+            description
+              "Secure File Transfer Protocol (SFTP) mode.";
+          }
+          enum "scp" {
+            value 4;
+            description
+              "Secure Copy Protocol (SCP) mode.";
+          }
+        }
+        description
+          "Identifies which file transfer protocol to user when default-server is specified in a command - FTP, SFTP, TFTP or SCP.";
+      }
+      container tftp {
+        description
+          "Waveserver system TFTP configuration.";
+        leaf config-host-name {
+          type cienawstypes:string-maxl-64;
+          description
+            "TFTP host name configured by user. Format is an IP address (with optional port) or host name.";
+        }
+        leaf dhcp-host-name {
+          type cienawstypes:string-maxl-64;
+          config false;
+          description
+            "TFTP DHCP host name.";
+        }
+        leaf current-host-name {
+          type cienawstypes:string-maxl-64;
+          config false;
+          description
+            "TFTP current host name.";
+        }
+      }
+      container ftp {
+        description
+          "Waveserver system FTP configuration.";
+        leaf host-name {
+          type cienawstypes:string-maxl-64;
+          description
+            "FTP host name. Format is an IP address (with optional port) or host name.";
+        }
+        leaf user-name {
+          type cienawstypes:string-maxl-32;
+          description
+            "FTP user name.";
+        }
+        leaf password {
+          type cienawstypes:string-maxl-128;
+          description
+            "FTP password string.";
+        }
+        leaf secret {
+          type cienawstypes:string-maxl-256;
+          description
+            "FTP secret string.";
+        }
+      }
+      container sftp {
+        description
+          "Waveserver system SFTP configuration.";
+        leaf host-name {
+          type cienawstypes:string-maxl-64;
+          description
+            "SFTP host name. Format is an IP address (with optional port) or host name.";
+        }
+        leaf user-name {
+          type cienawstypes:string-maxl-32;
+          description
+            "SFTP user name.";
+        }
+        leaf password {
+          type cienawstypes:string-maxl-128;
+          description
+            "SFTP password string.";
+        }
+        leaf secret {
+          type cienawstypes:string-maxl-256;
+          description
+            "SFTP secret string.";
+        }
+      }
+      container scp {
+        description
+          "Waveserver system SCP configuration.";
+        leaf host-name {
+          type cienawstypes:string-maxl-64;
+          description
+            "SCP host name. Format is an IP address (with optional port) or host name.";
+        }
+        leaf user-name {
+          type cienawstypes:string-maxl-32;
+          description
+            "SCP user name.";
+        }
+        leaf password {
+          type cienawstypes:string-maxl-128;
+          description
+            "SCP password string.";
+        }
+        leaf secret {
+          type cienawstypes:string-maxl-256;
+          description
+            "SCP secret string.";
+        }
+      }
+    }
+    container global-provisioning {
+      description
+        "Waveserver system global provisioning attributes.";
+      leaf reset-to-factory-default-button {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Indicate whether the reset button for reset to factory default is enabled. If enabled, the reset button on the faceplate will trigger a reset to factory default settings.";
+      }
+      container line-config {
+        description
+          "Waveserver system line configuration.";
+        leaf line-protection {
+          type line-protection-enum;
+          description
+            "Line protection settings. If line protection is enabled, this means that the photonic line the Waveserver is connected to has protection enabled. In the event of a line side fault, the protection card on the line side will select the protection path and the modems will reacquire the signal on the alternate path. While the switch is occuring, link state messaging will be disabled to the clients so that the connected devices do not attempt a switch or a restoration.";
+        }
+      }
+    }
+    container environment {
+      description
+        "Waveserver system linux environment attributes.";
+      container root {
+        description
+          "Waveserver system user root configuration.";
+        leaf password {
+          type cienawstypes:string-maxl-128;
+          description
+            "User root password string.";
+        }
+        leaf secret {
+          type cienawstypes:string-maxl-256;
+          config false;
+          description
+            "The encrypted user password string, supplied as a hashed value.";
+        }
+      }
+    }
+    container shell {
+      description
+        "Waveserver system CLI shell/session attributes.";
+      leaf inactivity-timer {
+        type cienawstypes:enabled-disabled-enum;
+        description
+          "Global CLI/shell session inactivity timer state.";
+      }
+      leaf inactivity-timeout {
+        type uint16 {
+          range "1..1500";
+        }
+        units "minutes";
+        description
+          "Global CLI/shell session inactivity timeout period, in minutes.";
+      }
+    }
+    container default-settings {
+      description
+        "Waveserver system default configuration values.";
+      container conditioning {
+        description
+          "Waveserver system default conditioning values. Ports are created with these values. When the system defaults are set, all existing ports have their values updated.";
+        leaf type {
+          type cienawstypes:conditioning-type;
+          description
+            "Egress UNI port consequent action for an EPL service to be applied on a far-end ingress UNI failure or network failure.";
+        }
+        leaf holdoff {
+          type cienawstypes:conditioning-holdoff;
+          description
+            "Number of milliseconds the failure must be present before applying Egress UNI port consequent action for an EPL service.";
+        }
+      }
+    }
+  }
+  rpc waveserver-system-state-dump {
+    description
+      "Dump system state information.";
+    input {
+      leaf file-name {
+        type cienawstypes:string-maxl-254;
+        description
+          "The file name to store the system state data.";
+      }
+      leaf include-corefiles {
+        type boolean;
+        description
+          "Indicate whether core files are included (true) or not (false) in the system state dump data.";
+      }
+      uses server-settings-group;
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-system-putfile {
+    description
+      "Transfer file to a specified destination.";
+    input {
+      leaf local-file-name {
+        type cienawstypes:string-maxl-254;
+        description
+          "The local file name.";
+      }
+      leaf remote-file-name {
+        type cienawstypes:string-maxl-254;
+        description
+          "The remote file name.";
+      }
+      uses server-settings-group;
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+  rpc waveserver-system-getfile {
+    description
+      "Get file from a specified source.";
+    input {
+      leaf local-file-name {
+        type cienawstypes:string-maxl-254;
+        description
+          "The local file name.";
+      }
+      leaf remote-file-name {
+        type cienawstypes:string-maxl-254;
+        description
+          "The remote file name.";
+      }
+      uses server-settings-group;
+    }
+    output {
+      leaf return-code {
+        type uint32;
+        description
+          "return code: 0 is success; non-zero is failure";
+      }
+      leaf return-string {
+        type cienawstypes:string-maxl-254;
+        description
+          "Return code description";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-typedefs@2018-01-04.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-typedefs@2018-01-04.yang
new file mode 100644
index 0000000..924b870
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-typedefs@2018-01-04.yang
@@ -0,0 +1,745 @@
+module ciena-waveserver-typedefs {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-typedefs";
+  prefix cienawstypes;
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This YANG module defines Ciena's commonly used typedefs";
+
+  revision 2018-01-04 {
+    description
+      "Updated 'modem-frequency' range values for C-Band and L-Band capabilities.
+       Added 'otn' enum value to 'conditioning-type' typedef.
+       Removed unused OTUCn 'xcvr-mode' enum values and added OTL4.4/OTLC.4 support.
+       Added 'ipaddr-or-hostname' typedef.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-09-05 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Added 'xcvr-mode' enum values.
+       Added 'power-state' typedef.
+       Renamed 'channels-number' typedef to 'lanes-number'.
+       Removed 'xcvr-id', 'ptp-id', 'port-id' types; use string types instead.
+       Added 'conditioning-type' and 'conditioning-holdoff' typedefs.
+       Remove line-module-type-bits typedef.
+       Added 'trace-mismatch-mode' and 'trace-mismatch-fail-mode'.
+       Added 'restart-reason'.
+       Removed several unused typedefs.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  typedef mac-string {
+    type string {
+      length "1..20";
+    }
+    description
+      "MAC address string.";
+  }
+
+  typedef name-string {
+    type string {
+      length "1..32";
+    }
+    description
+      "String type for object names used in Ciena defined modules. It must be a non empty string that is at most 32 characters long.";
+  }
+
+  typedef description-string {
+    type string {
+      length "0..128";
+    }
+    description
+      "String type for description used in Ciena defined modules. Max length of 128 characters, plus null.";
+  }
+
+  typedef on-off-enum {
+    type enumeration {
+      enum "off" {
+        description
+          "Off";
+      }
+      enum "on" {
+        description
+          "On";
+      }
+    }
+    description
+      "Off and On enum toggle used in Ciena defined modules.";
+  }
+
+  typedef power-state {
+    type enumeration {
+      enum "automatic" {
+        description
+          "Power state is automatic (on/normal).";
+      }
+      enum "shutdown" {
+        description
+          "Power state is shutdown (off/low-power-mode).";
+      }
+    }
+    description
+      "Power state automatic (on/normal) or shutdown (off/low-power-mode).";
+  }
+
+  typedef yes-no-enum {
+    type enumeration {
+      enum "no" {
+        description
+          "No";
+      }
+      enum "yes" {
+        description
+          "Yes";
+      }
+    }
+    description
+      "No and Yes enum toggle used in Ciena defined modules.";
+  }
+
+  typedef up-down-enum {
+    type enumeration {
+      enum "down" {
+        description
+          "Object is down/disabled/failed.";
+      }
+      enum "up" {
+        description
+          "Object is up/operational.";
+      }
+    }
+    description
+      "Down and Up enum toggle used in Ciena defined modules.";
+  }
+
+  typedef enabled-disabled-enum {
+    type enumeration {
+      enum "disabled" {
+        description
+          "Object or attribute is disabled.";
+      }
+      enum "enabled" {
+        description
+          "Object or attribute is enabled.";
+      }
+    }
+    description
+      "Enabled and Disabled enum toggle used in Ciena defined modules.";
+  }
+
+  typedef yes-no-na-enum {
+    type enumeration {
+      enum "no" {
+        description
+          "No";
+      }
+      enum "yes" {
+        description
+          "Yes";
+      }
+      enum "not-applicable" {
+        description
+          "Not applicable";
+      }
+    }
+    description
+      "No and Yes enum toggle used in Ciena defined modules.";
+  }
+
+  typedef enabled-disabled-na-enum {
+    type enumeration {
+      enum "disabled" {
+        description
+          "Disabled";
+      }
+      enum "enabled" {
+        description
+          "Enabled";
+      }
+      enum "not-applicable" {
+        description
+          "Not applicable";
+      }
+    }
+    description
+      "Enabled, Disabled, and not-applicable enum used in Ciena defined modules.";
+  }
+
+  typedef wl-spacing {
+    type enumeration {
+      enum "50GHz" {
+        description
+          "50GHz wavelength spacing.";
+      }
+      enum "100GHz" {
+        description
+          "100GHz wavelength spacing.";
+      }
+      enum "200GHz" {
+        description
+          "200GHz wavelength spacing.";
+      }
+      enum "flex-grid" {
+        description
+          "Flex-grid wavelength spacing.";
+      }
+    }
+    description
+      "Wavelength spacing, 50GHz, 100GHz, 200GHz, or flex-grid. Only 'flex-grid' supported in Waveserver Ai R1.0.";
+  }
+
+  typedef decimal-3-dig {
+    type decimal64 {
+      fraction-digits 3;
+      range "-2147483.0 .. 2147483.0";
+    }
+    description
+      "Decimal value up to 3 digits.";
+  }
+
+  typedef decimal-2-dig-small {
+    type decimal64 {
+      fraction-digits 2;
+      range "-30000.0 .. 30000.0";
+    }
+    description
+      "Decimal value up to 2 digits.";
+  }
+
+  typedef decimal-2-dig {
+    type decimal64 {
+      fraction-digits 2;
+      range "-21474836.0 .. 21474836.0";
+    }
+    description
+      "Decimal value up to 2 digits.";
+  }
+
+  typedef decimal-1-dig {
+    type decimal64 {
+      fraction-digits 1;
+      range "-214748364.0 .. 214748364.0";
+    }
+    description
+      "Decimal value up to 1 digits.";
+  }
+
+  typedef string-sci {
+    type string {
+      length "0..32";
+      pattern "[-+]?[0-9](\\.[0-9]+)?([eE][-+]?[0-9]+)?";
+    }
+    description
+      "String in Scientific Notation format with a max length of 32 characters.";
+  }
+
+  typedef string-maxl-15 {
+    type string {
+      length "0..15";
+    }
+    description
+      "Standard string that has a max length of 15 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-16 {
+    type string {
+      length "0..16";
+    }
+    description
+      "Standard string that has a max length of 16 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-32 {
+    type string {
+      length "0..32";
+    }
+    description
+      "Standard string that has a max length of 32 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-44 {
+    type string {
+      length "0..44";
+    }
+    description
+      "Standard string that has a max length of 44 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-50 {
+    type string {
+      length "0..50";
+    }
+    description
+      "Standard string that has a max length of 50 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-64 {
+    type string {
+      length "0..64";
+    }
+    description
+      "Standard string that has a max length of 64 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-128 {
+    type string {
+      length "0..128";
+    }
+    description
+      "Standard string that has a max length of 128 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-254 {
+    type string {
+      length "0..254";
+    }
+    description
+      "Standard string that has a max length of 254 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef string-maxl-256 {
+    type string {
+      length "0..256";
+    }
+    description
+      "Standard string that has a max length of 256 characters. Can be used for various nodes that may require string of this length.";
+  }
+
+  typedef ipaddr-or-hostname {
+    type string {
+      length "1..63";
+    }
+    description
+      "IP address or hostname string.";
+  }
+
+  typedef port-name {
+    type string {
+      length "1..32";
+    }
+    description
+      "A string representing a port interface name. Format is: '<slot>-<port>' or '<slot>-<majorport>.<minorport>'.";
+  }
+
+  typedef service-idx {
+    type uint32 {
+      range "0 .. 1000";
+    }
+    description
+      "Service Index";
+  }
+
+  typedef service-domain-idx {
+    type uint32 {
+      range "0 .. 20";
+    }
+    description
+      "Service Domain Index";
+  }
+
+  typedef xcvr-type {
+    type enumeration {
+      enum "not-available" {
+        value 0;
+        description
+          "XCVR type not available.";
+      }
+      enum "unsupported" {
+        value 1;
+        description
+          "XCVR type unsupported.";
+      }
+      enum "QSFPplus" {
+        value 2;
+        description
+          "XCVR type QSFP+.";
+      }
+      enum "QSFP28" {
+        value 3;
+        description
+          "XCVR type QSFP28.";
+      }
+      enum "WaveLogic 3 Extreme" {
+        value 4;
+        description
+          "XCVR type WL3e.";
+      }
+      enum "WaveLogic Ai" {
+        value 5;
+        description
+          "XCVR type WLAi.";
+      }
+    }
+    description
+      "Transceiver type.";
+  }
+
+  typedef xcvr-mode {
+    type enumeration {
+      enum "blank" {
+        value 0;
+        description
+          "XCVR/slot is blank.";
+      }
+      enum "10GE" {
+        value 10;
+        description
+          "XCVR mode 10 Gigabit Ethernet.";
+      }
+      enum "40GE" {
+        value 40;
+        description
+          "XCVR mode 40 Gigabit Ethernet.";
+      }
+      enum "100GE" {
+        value 100;
+        description
+          "XCVR mode 100 Gigabit Ethernet.";
+      }
+      enum "400GE" {
+        value 400;
+        description
+          "XCVR mode 400 Gigabit Ethernet.";
+      }
+      enum "OTL4.4" {
+        value 58044;
+        description
+          "XCVR mode OTL4.4.";
+      }
+      enum "OTLC.4" {
+        value 58104;
+        description
+          "XCVR mode OTLC.4.";
+      }
+      enum "56-200" {
+        value 560200;
+        description
+          "XCVR mode 56Gbaud, 200Gbps.";
+      }
+      enum "56-300" {
+        value 560300;
+        description
+          "XCVR mode 56Gbaud, 300Gbps.";
+      }
+      enum "56-400" {
+        value 560400;
+        description
+          "XCVR mode 56Gbaud, 400Gbps.";
+      }
+    }
+    description
+      "Transceiver mode.";
+  }
+
+  typedef line-sys-enum {
+    type enumeration {
+      enum "coloured" {
+        description
+          "Line system coloured.";
+      }
+      enum "colourless" {
+        description
+          "Line system colourless.";
+      }
+      enum "contentionless" {
+        description
+          "Line system contentionless.";
+      }
+      enum "cs-coloured" {
+        description
+          "Line system cs-coloured.";
+      }
+      enum "cs-colourless" {
+        description
+          "Line system cs-colourless.";
+      }
+    }
+    description
+      "Line system type.";
+  }
+
+  typedef lanes-number {
+    type uint16 {
+      range "0 .. 4";
+    }
+    description
+      "Lane number common type, lane range is defined from 0 to 4.";
+  }
+
+  typedef connector-type-desc-enum {
+    type enumeration {
+      enum "Unknown or unspecified" {
+        value 0;
+        description
+          "Unknown or unspecified.";
+      }
+      enum "SC - Subscriber Connector" {
+        value 1;
+        description
+          "SC - Subscriber Connector.";
+      }
+      enum "Fibre Channel Style 1 copper connector" {
+        value 2;
+        description
+          "Fibre Channel Style 1 copper connector.";
+      }
+      enum "Fibre Channel Style 2 copper connector" {
+        value 3;
+        description
+          "Fibre Channel Style 2 copper connector.";
+      }
+      enum "BNC/TNC - Bayonet/Threaded Neill-Concelman" {
+        value 4;
+        description
+          "BNC/TNC - Bayonet/Threaded Neill-Concelman.";
+      }
+      enum "Fibre Channel coax headers" {
+        value 5;
+        description
+          "Fibre Channel coax headers.";
+      }
+      enum "Fiber Jack" {
+        value 6;
+        description
+          "Fiber Jack.";
+      }
+      enum "LC - Lucent Connector" {
+        value 7;
+        description
+          "LC - Lucent Connector.";
+      }
+      enum "MT-RJ - Mechanical Transfer - Registered Jack" {
+        value 8;
+        description
+          "MT-RJ - Mechanical Transfer - Registered Jack.";
+      }
+      enum "MU - Multiple Optical" {
+        value 9;
+        description
+          "MU - Multiple Optical.";
+      }
+      enum "SG" {
+        value 10;
+        description
+          "SG.";
+      }
+      enum "Optical Pigtail" {
+        value 11;
+        description
+          "Optical Pigtail.";
+      }
+      enum "MPO 1x12 - Multifiber Parallel Optic" {
+        value 12;
+        description
+          "MPO 1x12 - Multifiber Parallel Optic.";
+      }
+      enum "MPO 2x16" {
+        value 13;
+        description
+          "MPO 2x16.";
+      }
+      enum "HSSDC II - High Speed Serial Data Connector" {
+        value 32;
+        description
+          "HSSDC II - High Speed Serial Data Connector.";
+      }
+      enum "Copper pigtail" {
+        value 33;
+        description
+          "Copper pigtail.";
+      }
+      enum "RJ45 - Registered Jack" {
+        value 34;
+        description
+          "RJ45 - Registered Jack.";
+      }
+      enum "No separable connector" {
+        value 35;
+        description
+          "No separable connector.";
+      }
+      enum "MXC 2x16" {
+        value 36;
+        description
+          "MXC 2x16.";
+      }
+    }
+    description
+      "Human readable description of Vendor's connector type byte value. Reference SFF-8024, table 4-3";
+  }
+
+  typedef modem-frequency {
+    type decimal64 {
+      fraction-digits 1;
+      range "0.0 | 186087.5 .. 190956.2 | 191342.5 .. 196107.5";
+    }
+    units "GHz";
+    description
+      "Modem frequency, in GHz. 0.0 indicates unprovisioned (default) value. L-Band range is 186087.5 - 190956.2 GHz, and C-Band range is 191342.5 - 196107.5 GHz.";
+  }
+
+  typedef tx-power-lvl {
+    type decimal64 {
+      fraction-digits 1;
+      range "-214748364.0 .. 214748364.0";
+    }
+    description
+      "Modem Tx Power Level.";
+  }
+
+  typedef module-type-enum {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Module type unknown.";
+      }
+      enum "integrated" {
+        description
+          "Module type integrated.";
+      }
+      enum "field-replaceable" {
+        description
+          "Module type field-replaceable.";
+      }
+    }
+    description
+      "Module type enum.";
+  }
+
+  typedef module-type-bits {
+    type bits {
+      bit integrated {
+        position 0;
+        description
+          "Module type integrated.";
+      }
+      bit field-replaceable {
+        position 1;
+        description
+          "Module type field-replaceable.";
+      }
+    }
+    description
+      "Module type bits.";
+  }
+
+  typedef restart-reason {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Unknown restart reason.";
+      }
+      enum "user-warm" {
+        description
+          "User-initiated warm restart.";
+      }
+      enum "user-cold" {
+        description
+          "User-initiated cold restart.";
+      }
+      enum "system-warm" {
+        description
+          "System-initiated warm restart.";
+      }
+      enum "system-cold" {
+        description
+          "System-initiated cold restart.";
+      }
+      enum "power-on" {
+        description
+          "Device inserted or powered on.";
+      }
+    }
+    description
+      "Chassis/Module last restart reason.";
+  }
+
+  typedef conditioning-type {
+    type enumeration {
+      enum "none" {
+        value 0;
+        description
+          "No consequent action.";
+      }
+      enum "laser-off" {
+        value 1;
+        description
+          "Disable the transmitter consequent action.";
+      }
+      enum "ethernet" {
+        value 2;
+        description
+          "Ethernet Local Fault consequent action.";
+      }
+      enum "otn" {
+        value 3;
+        description
+          "OTN consequent action as defined in ITU-T G.798.";
+      }
+    }
+    description
+      "Egress UNI port consequent action for an EPL service to be applied on a far-end ingress UNI failure or network failure.";
+  }
+
+  typedef conditioning-holdoff {
+    type int16 {
+      range "0|10|20|30|40|50|60|70|80|90|100|200|300|400|500|600|700|800|900|1000";
+    }
+    units "ms";
+    description
+      "Number of milliseconds to delay Egress UNI port consequent action for an EPL service.";
+  }
+
+  typedef trace-mismatch-mode {
+    type enumeration {
+      enum "operator-only" {
+        value 1;
+        description
+          "Trace mismatch detection criteria includes operator-specific trace string only. Other fields are ignored.";
+      }
+      enum "sapi" {
+        value 2;
+        description
+          "Trace mismatch detection criteria includes source access point identifier (SAPI) trace string only. Other fields are ignored.";
+      }
+      enum "dapi" {
+        value 3;
+        description
+          "Trace mismatch detection criteria includes destination access point identifier (DAPI) trace string only. Other fields are ignored.";
+      }
+      enum "sapi-and-dapi" {
+        value 4;
+        description
+          "Trace mismatch detection criteria includes SAPI and DAPI strings. A mismatch of either of these fields will result in TTI mismatch. The operator specific field is ignored.";
+      }
+    }
+    description
+      "The trail trace identifier (TTI) mismatch mode, indicating which fields of the TTI overhead are used for trace mismatch detection.";
+  }
+
+  typedef trace-mismatch-fail-mode {
+    type enumeration {
+      enum "none" {
+        description
+          "TTI mismatch detection is disable or ignored. Do not raise an alarm on TTI mismatch condition.";
+      }
+      enum "alarm-only" {
+        description
+          "Raise an alarm when TTI mismatch occurs, but do not squelch traffic.";
+      }
+    }
+    description
+      "The trail trace identifier (TTI) mismatch failure mode. When TTI mismatch condition occurs, this indicates the consequent action taken, e.g. whether or not to raise an alarm.";
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr-modem@2017-10-24.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr-modem@2017-10-24.yang
new file mode 100644
index 0000000..a8acc4d
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr-modem@2017-10-24.yang
@@ -0,0 +1,267 @@
+module ciena-waveserver-xcvr-modem {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-xcvr-modem";
+  prefix xcvr-modem;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+  import ciena-waveserver-xcvr {
+    prefix xcvr;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This YANG module defines Ciena's XCVR modem specific data for the NETCONF protocol. It will augment the ciena-waveserver-xcvr module.";
+
+  revision 2017-10-24 {
+    description
+      "Changed type for 'frequency-min' and 'frequency-max' leafs from int to decimal.
+       Changed type for 'tx-dispersion-min' and 'tx-dispersion-max' from unsigned to signed int.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-08-28 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Added 'c-band', 'l-band', and 'frequency-resolution' to 'transmitter-technology' container.
+       Removed 'modulation-support' container and added 'supported-modes' to 'vendor-data/properties' container.
+       Added 'temperature-critical' and 'temperature-warning' to 'diagnostics/device' container.
+       Removed 'wavelength-control' and 'wavelength-tolerance' attributes.
+       Removed 'transport-protocols' and 'line-system-support' containers.";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:vendor-data/xcvr:properties/xcvr:diagnostic-monitoring" {
+    when "../../../xcvr:type = 'WaveLogic Ai'" {
+      description
+        "XCVR vendor diagnostic-monitoring properties specific to modem XCVRs.";
+    }
+    description
+      "XCVR vendor diagnostic-monitoring properties specific to modem XCVRs.";
+    leaf diagnostic-support {
+      type cienawstypes:yes-no-enum;
+      config false;
+      description
+        "Diagnostic Monitoring, is Diagnostic Support turned on.";
+    }
+    leaf dispersion-measurement {
+      type cienawstypes:yes-no-enum;
+      config false;
+      description
+        "Diagnostic Monitoring, is Dispersion Measurement turned on.";
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:vendor-data/xcvr:properties" {
+    when "../../xcvr:type = 'WaveLogic Ai'" {
+      description
+        "XCVR vendor properties specific to modem XCVRs.";
+    }
+    description
+      "XCVR vendor properties specific to modem XCVRs.";
+    leaf supported-modes {
+      type bits {
+        bit mode-35-100 {
+          description
+            "Modem is capable of 35Gbaud / 100Gbps transmission.";
+        }
+        bit mode-35-150 {
+          description
+            "Modem is capable of 35Gbaud / 150Gbps transmission.";
+        }
+        bit mode-35-200 {
+          description
+            "Modem is capable of 35Gbaud / 200Gbps transmission.";
+        }
+        bit mode-35-250 {
+          description
+            "Modem is capable of 35Gbaud / 250Gbps transmission.";
+        }
+        bit mode-56-100 {
+          description
+            "Modem is capable of 56Gbaud / 100Gbps transmission.";
+        }
+        bit mode-56-150 {
+          description
+            "Modem is capable of 56Gbaud / 150Gbps transmission.";
+        }
+        bit mode-56-200 {
+          description
+            "Modem is capable of 56Gbaud / 200Gbps transmission.";
+        }
+        bit mode-56-250 {
+          description
+            "Modem is capable of 56Gbaud / 250Gbps transmission.";
+        }
+        bit mode-56-300 {
+          description
+            "Modem is capable of 56Gbaud / 300Gbps transmission.";
+        }
+        bit mode-56-350 {
+          description
+            "Modem is capable of 56Gbaud / 350Gbps transmission.";
+        }
+        bit mode-56-400 {
+          description
+            "Modem is capable of 56Gbaud / 400Gbps transmission.";
+        }
+      }
+      config false;
+      description
+        "Supported baud/line-rate modes on this modem.";
+    }
+    container transmitter-technology {
+      config false;
+      description
+        "Modem Transmitter Technology properties/capabilities.";
+      leaf tunable {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Modem Transmitter Technology, Tunable.";
+      }
+      leaf wavelength-min {
+        type cienawstypes:decimal-2-dig;
+        units "nm";
+        config false;
+        description
+          "Modem Transmitter Technology, Wavelength Min value, in nanometers.";
+      }
+      leaf wavelength-max {
+        type cienawstypes:decimal-2-dig;
+        units "nm";
+        config false;
+        description
+          "Modem Transmitter Technology, Wavelength Max value, in nanometers.";
+      }
+      leaf frequency-min {
+        type cienawstypes:modem-frequency;
+        units "GHz";
+        config false;
+        description
+          "Modem Transmitter Technology, minimum supported frequency, in GHz.";
+      }
+      leaf frequency-max {
+        type cienawstypes:modem-frequency;
+        units "GHz";
+        config false;
+        description
+          "Modem Transmitter Technology, maximum supported frequency, in GHz.";
+      }
+      leaf frequency-resolution {
+        type uint32;
+        units "MHz";
+        config false;
+        description
+          "Modem Transmitter Technology, frequency resolution, in MHz.";
+      }
+      leaf tx-dispersion-min {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Modem Transmitter Technology, Tx Dispersion Min (ps/nm).";
+      }
+      leaf tx-dispersion-max {
+        type int32;
+        units "ps/nm";
+        config false;
+        description
+          "Modem Transmitter Technology, Tx Dispersion Max (ps/nm).";
+      }
+      leaf edfa {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Whether this modem is an EDFA modem.";
+      }
+      leaf c-band {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Whether this modem supports C-Band frequencies.";
+      }
+      leaf l-band {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Whether this modem supports L-Band frequencies.";
+      }
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:diagnostics/xcvr:device" {
+    when "../../xcvr:type = 'WaveLogic Ai'" {
+      description
+        "XCVR device diagnostic properties specific to modem XCVRs.";
+    }
+    description
+      "XCVR device diagnostic properties specific to modem XCVRs.";
+    container equipment-status {
+      config false;
+      description
+        "XCVR modem equipment status properties.";
+      leaf transmitter-state {
+        type cienawstypes:enabled-disabled-enum;
+        config false;
+        description
+          "Transmitter State of the Modem.";
+      }
+      leaf equipment-out-of-spec {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is the alarm associated with Equipment Out of Spec raised.";
+      }
+      leaf temperature-critical {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is there a critical temperature alarm currently raised.";
+      }
+      leaf temperature-warning {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is there a temperature warning currently raised.";
+      }
+      leaf equipment-failure {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is the alarm associated with Equipment Failure raised.";
+      }
+      leaf data-link-suspect {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is the alarm associated with Data Link Suspect raised.";
+      }
+      leaf comms-link-suspect {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is the alarm associated with Comms Link Suspect raised.";
+      }
+      leaf clock-suspect {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is the alarm associated with Clock Suspect raised.";
+      }
+      leaf loss-of-synchronization-tick {
+        type cienawstypes:yes-no-enum;
+        config false;
+        description
+          "Is the alarm associated with Loss of Synchronization Tick raised.";
+      }
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr-pluggable@2017-07-27.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr-pluggable@2017-07-27.yang
new file mode 100644
index 0000000..5ef1658
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr-pluggable@2017-07-27.yang
@@ -0,0 +1,638 @@
+module ciena-waveserver-xcvr-pluggable {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-xcvr-pluggable";
+  prefix xcvr-pluggable;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+  import ciena-waveserver-xcvr {
+    prefix xcvr;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+             Hanover, Maryland 21076
+             U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This YANG module defines Ciena's XCVR common pluggable specific data for the NETCONF protocol. It will augment the ciena-waveserver-xcvr module.";
+
+  revision 2017-07-27 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Updated description strings, fixed several lint errors/warnings.";
+    reference "";
+  }
+
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:vendor-data/xcvr:id/xcvr:vendor-id" {
+    when "../../../xcvr:type = 'QSFPplus' or ../../../xcvr:type = 'QSFP28' or ../../../xcvr:type = 'unsupported'" {
+      description
+        "XCVR vendor-id properties specific to pluggable XCVRs.";
+    }
+    description
+      "XCVR vendor-id properties specific to pluggable XCVRs.";
+    leaf revision-compliance {
+      type enumeration {
+        enum "not-specified" {
+          description
+            "Revision compliance not specified.";
+        }
+        enum "RV4.7" {
+          description
+            "Revision compliance RV4.7.";
+        }
+        enum "RV4.7-2h" {
+          description
+            "Revision compliance RV4.7-2h.";
+        }
+        enum "RV1.3" {
+          description
+            "Revision compliance RV1.3.";
+        }
+        enum "RV1.4" {
+          description
+            "Revision compliance RV1.4.";
+        }
+        enum "RV1.5" {
+          description
+            "Revision compliance RV1.5.";
+        }
+        enum "RV2.0" {
+          description
+            "Revision compliance RV2.0.";
+        }
+        enum "RV2.0 and 2.6 and 2.7" {
+          description
+            "Revision compliance RV2.0 and 2.6 and 2.7.";
+        }
+      }
+      config false;
+      description
+        "Revision Compliance flags, as defined in documentation for Common Management Interface, SFF-8636, table 6-3.";
+    }
+    leaf-list vendor-oui {
+      type uint8;
+      config false;
+      max-elements "3";
+      ordered-by system;
+      description
+        "Free side device vendor IEEE company ID. Defined in Common Management Interface, SFF-8636, table 6-15. 3 bytes of data.";
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:vendor-data/xcvr:properties/xcvr:device-id" {
+    when "../../../xcvr:type = 'QSFPplus' or ../../../xcvr:type = 'QSFP28' or ../../../xcvr:type = 'unsupported'" {
+      description
+        "XCVR device-id properties specific to pluggable XCVRs.";
+    }
+    description
+      "XCVR device-id properties specific to pluggable XCVRs.";
+    leaf identifier {
+      type enumeration {
+        enum "Unknown or unspecified" {
+          value 0;
+          description
+            "Identifier value 0x00, Unknown or unspecified.";
+        }
+        enum "GBIC" {
+          value 1;
+          description
+            "Identifier value 0x01, GBIC.";
+        }
+        enum "Module/connector soldered to motherboard" {
+          value 2;
+          description
+            "Identifier value 0x02, Module/connector soldered to motherboard.";
+        }
+        enum "SFP/SFP+/SFP28" {
+          value 3;
+          description
+            "Identifier value 0x03, SFP/SFP+/SFP28.";
+        }
+        enum "300 pin XBI" {
+          value 4;
+          description
+            "Identifier value 0x04, 300 pin XBI.";
+        }
+        enum "XENPAK" {
+          value 5;
+          description
+            "Identifier value 0x05, XENPAK.";
+        }
+        enum "XFP" {
+          value 6;
+          description
+            "Identifier value 0x06, XFP.";
+        }
+        enum "XFF" {
+          value 7;
+          description
+            "Identifier value 0x07, XFF.";
+        }
+        enum "XFP-E" {
+          value 8;
+          description
+            "Identifier value 0x08, XFP-E.";
+        }
+        enum "XPAK" {
+          value 9;
+          description
+            "Identifier value 0x09, XPAK.";
+        }
+        enum "X2" {
+          value 10;
+          description
+            "Identifier value 0x0A, X2.";
+        }
+        enum "DWDM-SFP/SFP+" {
+          value 11;
+          description
+            "Identifier value 0x0B, DWDM-SFP/SFP+.";
+        }
+        enum "QSFP INF-8438" {
+          value 12;
+          description
+            "Identifier value 0x0C, QSFP (INF-8438).";
+        }
+        enum "QSFP+ SFF-8436" {
+          value 13;
+          description
+            "Identifier value 0x0D, QSFP+ (SFF-8436) or later.";
+        }
+        enum "CXP" {
+          value 14;
+          description
+            "Identifier value 0x0E, CXP or later.";
+        }
+        enum "Shielded Mini Multilane HD 4X" {
+          value 15;
+          description
+            "Identifier value 0x0F, Shielded Mini Multilane HD 4X.";
+        }
+        enum "Shielded Mini Multilane HD 8X" {
+          value 16;
+          description
+            "Identifier value 0x0F, Shielded Mini Multilane HD 8X.";
+        }
+        enum "QSFP28 SFF-8636" {
+          value 17;
+          description
+            "Identifier value 0x11, QSFP28 (SFF-8636) or later.";
+        }
+        enum "CXP2 aka CXP28" {
+          value 18;
+          description
+            "Identifier value 0x12, CXP2 (aka CXP28) or later.";
+        }
+        enum "CDFP Style1/Style2" {
+          value 19;
+          description
+            "Identifier value 0x13, CDFP (Style 1 / Style 2).";
+        }
+        enum "Shielded Mini Multilane HD 4X Fanout" {
+          value 20;
+          description
+            "Identifier value 0x14, Shielded Mini Multilane HD 4X Fanout.";
+        }
+        enum "Shielded Mini Multilane HD 8X Fanout" {
+          value 21;
+          description
+            "Identifier value 0x15, Shielded Mini Multilane HD 8X Fanout.";
+        }
+        enum "CDFP Style 3" {
+          value 22;
+          description
+            "Identifier value 0x16, CDFP (Style 3).";
+        }
+      }
+      config false;
+      description
+        "Human readable description of Vendor's identifier byte value. Reference SFF-8024, table 4-1";
+    }
+    leaf identifier-raw {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "Vendor's identifier raw byte value. In the format of a HEX string. Reference SFF-8024, table 4-1";
+    }
+    leaf extended-identifier-raw {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "Vendor's extended identifier raw byte value. In the format of a HEX string. Reference SFF-8436, table 4-1";
+    }
+    leaf power-consumption {
+      type enumeration {
+        enum "Class 1 Module 1.5W max" {
+          description
+            "Class 1 Module 1.5W max.";
+        }
+        enum "Class 2 Module 2.0W max" {
+          description
+            "Class 2 Module 2.0W max.";
+        }
+        enum "Class 3 Module 2.5W max" {
+          description
+            "Class 3 Module 2.5W max.";
+        }
+        enum "Class 4 Module 3.5W max" {
+          description
+            "Class 4 Module 3.5W max.";
+        }
+      }
+      config false;
+      description
+        "The class of Power Consumption portion of the extended identifier byte, bit 7 to 6. Reference SFF-8436, section 7.6.2.2";
+    }
+    leaf clei {
+      type cienawstypes:string-maxl-16;
+      config false;
+      description
+        "CLEI code. If bit4 in extended identifier is set to 1, show the CLEI code. If bit4 in extended identifier is set to 0, 'No CLEI code' will be shown. Reference SFF-8436, section 7.6.2.2 and section 7.6.4";
+    }
+    leaf connector-type-raw {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "Vendor's connector type raw byte value. In the format of a HEX string. Reference SFF-8024, table 4-3";
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:vendor-data/xcvr:properties/xcvr:transmitter" {
+    when "../../../xcvr:type = 'QSFPplus' or ../../../xcvr:type = 'QSFP28' or ../../../xcvr:type = 'unsupported'" {
+      description
+        "XCVR transmitter properties specific to pluggable XCVRs.";
+    }
+    description
+      "XCVR transmitter properties specific to pluggable XCVRs.";
+    leaf wavelength {
+      type cienawstypes:decimal-2-dig;
+      units "nm";
+      config false;
+      description
+        "Wave length value, in nanometers.";
+    }
+    leaf wavelength-raw {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "Raw byte value of Wavelength, before any multiplier operation is done. In the format of a HEX string.";
+    }
+    leaf encoding-description {
+      type enumeration {
+        enum "Unspecified" {
+          value 0;
+          description
+            "Unspecified encoding.";
+        }
+        enum "8B/10B" {
+          value 1;
+          description
+            "8B/10B encoding.";
+        }
+        enum "4B/5B" {
+          value 2;
+          description
+            "4B/5B encoding.";
+        }
+        enum "NRZ" {
+          value 3;
+          description
+            "NRZ encoding.";
+        }
+        enum "SONET Scrambled" {
+          value 4;
+          description
+            "SONET Scrambled encoding.";
+        }
+        enum "64B/66B" {
+          value 5;
+          description
+            "64B/66B encoding.";
+        }
+        enum "Manchester" {
+          value 6;
+          description
+            "Manchester encoding.";
+        }
+        enum "256B/257B" {
+          value 7;
+          description
+            "256B/257B encoding.";
+        }
+      }
+      config false;
+      description
+        "Human readable description of Device encoding mechanism. Some values may differ depending on if it is 8472 or 8x36. Reference SFF-8024, TABLE 4-2.";
+    }
+    leaf encoding-raw {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "Raw byte value of Device encoding mechanism. Some values may differ depending on if it is 8472 or 8x36. In the format of a HEX string. Reference SFF-8024, TABLE 4-2.";
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:vendor-data/xcvr:properties/xcvr:diagnostic-monitoring" {
+    when "../../../xcvr:type = 'QSFPplus' or ../../../xcvr:type = 'QSFP28' or ../../../xcvr:type = 'unsupported'" {
+      description
+        "XCVR diagnostic properties specific to pluggable XCVRs.";
+    }
+    description
+      "XCVR diagnostic properties specific to pluggable XCVRs.";
+    leaf diagnostic-monitoring-type-raw {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "Display the raw byte value of Diagnostic Monitoring Type, in the format of a HEX string. Reference SFF 8472 section 8.8 and table 9.5 for detail.";
+    }
+    leaf diagnostic-monitoring-implemented {
+      type boolean;
+      config false;
+      description
+        "If Digital diagnostic monitoring is implemented, determined by bit 6 of diagnostic monitoring type. Reference SFF 8472 section 8.8 and table 9.5 for detail.";
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:vendor-data/xcvr:properties" {
+    when "../../xcvr:type = 'QSFPplus' or ../../xcvr:type = 'QSFP28' or ../../xcvr:type = 'unsupported'" {
+      description
+        "XCVR vendor-data properties specific to pluggable XCVRs.";
+    }
+    description
+      "XCVR vendor-data properties specific to pluggable XCVRs.";
+    container transceiver-code {
+      description
+        "XCVR vendor data transceiver code properties.";
+      leaf specification-compliance {
+        type bits {
+          bit Spec-Compliance-40G-Active-Cable-XLPPI {
+            position 0;
+            description
+              "Spec Compliance 40G Active Cable XLPPI";
+          }
+          bit Spec-Compliance-40GBASE-LR4 {
+            position 1;
+            description
+              "Spec Compliance 40GBASE-LR4";
+          }
+          bit Spec-Compliance-40GBASE-SR4 {
+            position 2;
+            description
+              "Spec Compliance 40GBASE-SR4";
+          }
+          bit Spec-Compliance-40GBASE-CR4 {
+            position 3;
+            description
+              "Spec Compliance 40GBASE-CR4";
+          }
+          bit Spec-Compliance-10GBASE-SR {
+            position 4;
+            description
+              "Spec Compliance 10GBASE-SR";
+          }
+          bit Spec-Compliance-10GBASE-LR {
+            position 5;
+            description
+              "Spec Compliance 10GBASE-LR";
+          }
+          bit Spec-Compliance-10GBASE-LRM {
+            position 6;
+            description
+              "Spec Compliance 10GBASE-LRM";
+          }
+          bit Extended-Spec-Compliance-100G-Active-Optical-Cable {
+            position 8;
+            description
+              "Extended Spec Compliance 100G Active Optical Cable";
+          }
+          bit Extended-Spec-Compliance-100GBASE-SR4 {
+            position 9;
+            description
+              "Extended Spec Compliance 100GBASE-SR4";
+          }
+          bit Extended-Spec-Compliance-100GBASE-LR4 {
+            position 10;
+            description
+              "Extended-Spec Compliance 100GBASE-LR4";
+          }
+          bit Extended-Spec-Compliance-100GBASE-ER4 {
+            position 11;
+            description
+              "Extended Spec Compliance 100GBASE-ER4";
+          }
+          bit Extended-Spec-Compliance-100GBASE-SR10 {
+            position 12;
+            description
+              "Extended Spec Compliance 100GBASE-SR10";
+          }
+          bit Extended-Spec-Compliance-100G-CWDM4-MSA-with-FEC {
+            position 13;
+            description
+              "Extended Spec Compliance 100G CWDM4 MSA with FEC";
+          }
+          bit Extended-Spec-Compliance-100G-PSM4-Parallel-SMF {
+            position 14;
+            description
+              "Extended Spec Compliance 100G PSM4 Parallel SMF";
+          }
+          bit Extended-Spec-Compliance-100G-Active-Copper-Cable {
+            position 15;
+            description
+              "Extended Spec Compliance 100G Active Copper Cable";
+          }
+          bit Extended-Spec-Compliance-100G-CWDM-MSA-without-FEC {
+            position 16;
+            description
+              "Extended Spec Compliance 100G CWDM MSA without FEC";
+          }
+          bit Extended-Spec-Compliance-100GBASE-CR4 {
+            position 18;
+            description
+              "Extended Spec Compliance 100GBASE-CR4";
+          }
+          bit Extended-Spec-Compliance-40GBASE-ER4 {
+            position 23;
+            description
+              "Extended Spec Compliance 40GBASE-ER4";
+          }
+          bit Extended-Spec-Compliance-4x10GBASE-SR {
+            position 24;
+            description
+              "Extended Spec Compliance 4x10GBASE-SR";
+          }
+          bit Extended-Spec-Compliance-40G-PSM4-Parallel-SMF {
+            position 25;
+            description
+              "Extended Spec Compliance 40G PSM4 Parallel SMF";
+          }
+          bit Extended-Spec-Compliance-G.959.1-P1I1-2D1 {
+            position 26;
+            description
+              "Extended Spec Compliance G.959.1 P1I1 2D1";
+          }
+          bit Extended-Spec-Compliance-G.959.1-P1S1-2D2 {
+            position 27;
+            description
+              "Extended Spec Compliance G.959.1 P1S1 2D2";
+          }
+          bit Extended-Spec-Compliance-G.959.1-P1L1-2D2 {
+            position 28;
+            description
+              "Extended Spec Compliance G.959.1 P1L1 2D2";
+          }
+          bit ExtSpecCode-10GBASE-T-with-SFI {
+            position 29;
+            description
+              "ExtSpecCode 10GBASE-T with SFI";
+          }
+          bit ExtSpecCode-100G-CLR4 {
+            position 30;
+            description
+              "ExtSpecCode 100G-CLR4";
+          }
+        }
+        description
+          "10 GbE ethernet, 40 GbE ethernet, and 100 GbE extended specification compliance of the transceiver. In the form of a YANG bit field. Note, the bit field in this node is not mapped with the SFF tables. Reference SFF-8436 table 33 for specification compliance of 10 GbE and 40 GbE Ethernet. Reference SFF-8024, TABLE 4-4 for extended specification compliance of 100 GbE.";
+      }
+      leaf transceiver-code-raw {
+        type cienawstypes:string-maxl-32;
+        config false;
+        description
+          "Specification Compliance/Transceiver Code raw byte value. In the format of a HEX string. Reference SFF-8436 table 33 for specification compliance";
+      }
+    }
+    container device-technology {
+      description
+        "XCVR vendor data device technology properties.";
+      leaf device-technology-raw {
+        type cienawstypes:string-maxl-32;
+        config false;
+        description
+          "Display the raw byte value of Device Technology, in the format of a HEX string. Reference SFF 8636 table 6-19.";
+      }
+      leaf transmitter-tunable {
+        type boolean;
+        config false;
+        description
+          "Device Technology Transmitter tuneable value. Reference SFF 8636 table 6-19, bit 0.";
+      }
+      leaf max-case-temperature {
+        type uint8;
+        units "C";
+        config false;
+        description
+          "Maximum Case Temperature. In degrees C.";
+      }
+    }
+    container options {
+      description
+        "XCVR device options, as described in reference SFF 8636.";
+      leaf options-raw {
+        type cienawstypes:string-maxl-32;
+        config false;
+        description
+          "Raw byte value of 'options' field. In the format of a HEX string. Reference SFF 8636 table 6-22.";
+      }
+      leaf tx-input-equalization-auto-adaptive-capable {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+      leaf tx-input-equalization-fixed-programmable-setting {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+      leaf rx-output-emphasis-fixed-programmable-setting {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+      leaf rx-output-amplitude-fixed-programmable-setting {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+      leaf tx-cdr-loss-of-lock-flag {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+      leaf rx-cdr-loss-of-lock-flag {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+      leaf user-eeprom-page-02h-provided {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+      leaf ast-page-01h-provided {
+        type boolean;
+        config false;
+        description
+          "A bit flag in 'options', reference SFF 8636 table 6-22.";
+      }
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:diagnostics/xcvr:device" {
+    when "../../xcvr:type = 'QSFPplus' or ../../xcvr:type = 'QSFP28'" {
+      description
+        "XCVR diagnostics device properties specific to pluggable XCVRs.";
+    }
+    description
+      "XCVR diagnostics device properties specific to pluggable XCVRs.";
+    container supply-voltage {
+      description
+        "XCVR supply voltage readings and thresholds.";
+      leaf actual {
+        type cienawstypes:decimal-2-dig;
+        units "V";
+        config false;
+        description
+          "Supply voltage, actual supply voltage in volts (V). Range must be between 0 and 6.55V.";
+      }
+      container status {
+        description
+          "Supply voltage status.";
+        uses xcvr:supply-voltage-status-group;
+      }
+      container threshold {
+        description
+          "Supply voltage thresholds.";
+        uses xcvr:supply-voltage-threshold-group;
+      }
+    }
+  }
+  augment "/xcvr:waveserver-xcvrs/xcvr:xcvrs/xcvr:properties/xcvr:diagnostics/xcvr:lane" {
+    when "../../xcvr:type = 'QSFPplus' or ../../xcvr:type = 'QSFP28'" {
+      description
+        "XCVR lane properties specific to pluggable XCVRs.";
+    }
+    description
+      "XCVR lane properties specific to pluggable XCVRs.";
+    leaf transmitter-fault {
+      type boolean;
+      config false;
+      description
+        "If the xcvr channel transmitter has detected a fault.";
+    }
+    leaf tx-adaptive-eq-fault {
+      type boolean;
+      config false;
+      description
+        "If the xcvr channel Tx Adaptive EQ Fault has detected a fault. Only applicable for QSFP28. For QSFP+, default value of FALSE will be returned.";
+    }
+  }
+}
diff --git a/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr@2017-11-27.yang b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr@2017-11-27.yang
new file mode 100644
index 0000000..bda3aa7
--- /dev/null
+++ b/models/ciena/waveserverai/src/main/yang/ciena-waveserver-xcvr@2017-11-27.yang
@@ -0,0 +1,627 @@
+module ciena-waveserver-xcvr {
+  namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-xcvr";
+  prefix xcvr;
+
+  import ciena-waveserver-typedefs {
+    prefix cienawstypes;
+  }
+
+  organization
+    "Ciena Corporation";
+  contact
+    "Web URL: http://www.ciena.com/
+     Postal:  7035 Ridge Road
+              Hanover, Maryland 21076
+              U.S.A.
+     Phone:   +1 800-921-1144
+     Fax:     +1 410-694-5750";
+  description
+    "This module defines the common XCVR model. The XCVR is augmented by specific types of transceiver modules if applicable. XCVR objects are permanently available for all ports and reported as empty if the device is not physically present. Attributes read from the device are only available while the device is present.";
+
+  revision 2017-11-27 {
+    description
+      "Added 'mandatory' statement to 'properties/mode' leaf.";
+    reference "Waveserver Ai user's guide.";
+  }
+  revision 2017-08-27 {
+    description
+      "Waveserver Platform Data Model
+       Migrated from Waveserver Classic R1.4 YANG model.
+       Updated namespace to 'ciena-waveserver'.
+       Changed 'xcvrs' list key from 'xcvr-index' (integer type) to 'xcvr-id' (string type) to accommodate '<slot>-<port>' format.
+       Changed 'child-ptp-id' type from integer to string to accommodate '<slot>-<port>' format.
+       Changed 'power-state' enum values to use common typedef.
+       Renamed 'channels' to 'lanes'.
+       Updated description strings, fixed several lint errors/warnings.
+       Updated 'operational-state' enum values.
+       Removed 'description' attribute from 'id' container.
+       Removed 'xcvr-delete' RPC (deletes will be handled via native delete operation instead).";
+    reference "Waveserver Ai user's guide.";
+  }
+
+  typedef xcvr-op-enum {
+    type enumeration {
+      enum "unknown" {
+        description
+          "Unknown operational state.";
+      }
+      enum "up" {
+        description
+          "XCVR is up/operational.";
+      }
+      enum "down" {
+        description
+          "XCVR is down/failed.";
+      }
+      enum "fault" {
+        description
+          "There is an active alarm associated with the XCVR.";
+      }
+      enum "shutdown" {
+        description
+          "XCVR is shutdown/off.";
+      }
+      enum "lower-layer-down" {
+        description
+          "The XCVR is enabled, but a parent object is faulted.";
+      }
+      enum "unequipped" {
+        description
+          "XCVR is unequipped.";
+      }
+      enum "uncertified" {
+        description
+          "XCVR is uncertified.";
+      }
+    }
+    description
+      "XCVR operational state values.";
+  }
+
+  grouping optical-power-group {
+    description
+      "Group of optical power related operational data leafs. Can be used for Rx or Tx";
+    leaf actual {
+      type cienawstypes:decimal-1-dig;
+      units "dBm";
+      config false;
+      description
+        "Actual Tx or Rx optical power in dBm.";
+    }
+    leaf maximum {
+      type cienawstypes:decimal-1-dig;
+      units "dBm";
+      config false;
+      description
+        "Maximum actual recorded Tx or Rx optical power in dBm.";
+    }
+    leaf minimum {
+      type cienawstypes:decimal-1-dig;
+      units "dBm";
+      config false;
+      description
+        "Minimum actual recorded Tx or Rx optical power in dBm.";
+    }
+    leaf maximum-recorded-time {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "The exact date and time when the maximum optical power (Tx or Rx) was recorded. In the format of a date time string.";
+    }
+    leaf minimum-recorded-time {
+      type cienawstypes:string-maxl-32;
+      config false;
+      description
+        "The exact date and time when the minimum optical power (Tx or Rx) was recorded. In the format of a date time string.";
+    }
+  }
+
+  grouping optical-power-threshold-group {
+    description
+      "Group of optical power alarm related operational data leafs. Can be used for Rx or Tx.";
+    leaf high-alarm-threshold {
+      type cienawstypes:decimal-1-dig;
+      units "dBm";
+      config false;
+      description
+        "Optical power high alarm threshold, in dBm. If it is modem Tx-power, the threshold can change based on provisioned tx power. High threshold = target power + 3.";
+    }
+    leaf low-alarm-threshold {
+      type cienawstypes:decimal-1-dig;
+      units "dBm";
+      config false;
+      description
+        "Optical power low alarm threshold, in dBm. If it is modem Tx-power, the threshold can change based on provisioned tx power. Low threshold = target power - 10.";
+    }
+    leaf high-warning-threshold {
+      type cienawstypes:decimal-1-dig;
+      units "dBm";
+      config false;
+      description
+        "Optical power high warning threshold, in dBm.";
+    }
+    leaf low-warning-threshold {
+      type cienawstypes:decimal-1-dig;
+      units "dBm";
+      config false;
+      description
+        "Optical power low warning threshold, in dBm.";
+    }
+  }
+
+  grouping optical-power-status-group {
+    description
+      "Group of optical power status related operational data leafs. Can be used for Rx or Tx";
+    leaf high-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Optical power high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf low-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Optical power low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf high-warning-status {
+      type boolean;
+      config false;
+      description
+        "Optical power high warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+    leaf low-warning-status {
+      type boolean;
+      config false;
+      description
+        "Optical power low warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+  }
+
+  grouping optical-bias-status-group {
+    description
+      "Group of optical bias related operational data leafs.";
+    leaf high-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Optical bias high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf low-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Optical bias low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf high-warning-status {
+      type boolean;
+      config false;
+      description
+        "Optical bias high warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+    leaf low-warning-status {
+      type boolean;
+      config false;
+      description
+        "Optical bias low warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+  }
+
+  grouping temperature-threshold-group {
+    description
+      "Group of XCVR temperature alarm and warning operational data leafs.";
+    leaf high-alarm-threshold {
+      type int16;
+      units "C";
+      config false;
+      description
+        "Temperature high alarm threshold, in degrees Celsius (C).";
+    }
+    leaf low-alarm-threshold {
+      type int16;
+      units "C";
+      config false;
+      description
+        "Temperature low alarm threshold, in degrees Celsius (C)";
+    }
+    leaf high-warning-threshold {
+      type int16;
+      units "C";
+      config false;
+      description
+        "Temperature high warning threshold, in degrees Celsius (C)";
+    }
+    leaf low-warning-threshold {
+      type int16;
+      units "C";
+      config false;
+      description
+        "Temperature low warning threshold, in degrees Celsius (C)";
+    }
+  }
+
+  grouping temperature-status-group {
+    description
+      "Group of XCVR temperature related operational data leafs.";
+    leaf high-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Temperature high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf low-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Temperature low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf high-warning-status {
+      type boolean;
+      config false;
+      description
+        "Temperature high warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+    leaf low-warning-status {
+      type boolean;
+      config false;
+      description
+        "Temperature low warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+  }
+
+  grouping supply-voltage-threshold-group {
+    description
+      "Group of Supply Voltage alarm and warning operational data leafs.";
+    leaf high-alarm-threshold {
+      type cienawstypes:decimal-2-dig;
+      units "V";
+      config false;
+      description
+        "Supply voltage high alarm threshold, in volts (V).";
+    }
+    leaf low-alarm-threshold {
+      type cienawstypes:decimal-2-dig;
+      units "V";
+      config false;
+      description
+        "Supply oltage low alarm threshold, in volts (V).";
+    }
+    leaf high-warning-threshold {
+      type cienawstypes:decimal-2-dig;
+      units "V";
+      config false;
+      description
+        "Supply voltage high warning threshold, in volts (V).";
+    }
+    leaf low-warning-threshold {
+      type cienawstypes:decimal-2-dig;
+      units "V";
+      config false;
+      description
+        "Supply voltage low warning threshold, in volts (V).";
+    }
+  }
+
+  grouping supply-voltage-status-group {
+    description
+      "group of Supply Voltage related operational data leafs. The grouping may be used by various XCVR containers, lists, and augments.";
+    leaf high-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Supply voltage high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf low-alarm-status {
+      type boolean;
+      config false;
+      description
+        "Supply voltage low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
+    }
+    leaf high-warning-status {
+      type boolean;
+      config false;
+      description
+        "Supply voltage high warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+    leaf low-warning-status {
+      type boolean;
+      config false;
+      description
+        "Supply voltage low warning status, boolean, true if warning is raised, false if warning is not raised.";
+    }
+  }
+
+  container waveserver-xcvrs {
+    description
+      "Waveserver transceivers (XCVR) configuration and operational data.";
+    list xcvrs {
+      key "xcvr-id";
+      description
+        "Waveserver transceiver (XCVR) list.";
+      leaf xcvr-id {
+        type cienawstypes:name-string;
+        mandatory true;
+        description
+          "Unique, access identifier string of the XCVR (e.g. '1-1'). Key value for the XCVR List.";
+      }
+      container id {
+        config false;
+        description
+          "Identification information of this XCVR instance.";
+        leaf name {
+          type cienawstypes:name-string;
+          config false;
+          description
+            "Name of the XCVR transceiver. Auto generated, and cannot be modified.";
+        }
+      }
+      container state {
+        description
+          "State information of this XCVR instance.";
+        leaf admin-state {
+          type cienawstypes:enabled-disabled-enum;
+          description
+            "Whether Admin State is enabled or disabled for this XCVR's PTP.";
+        }
+        leaf operational-state {
+          type xcvr-op-enum;
+          config false;
+          description
+            "Operational state of this XCVR, for Waveserver, it will be empty by default.";
+        }
+        leaf power-state {
+          type cienawstypes:power-state;
+          config false;
+          description
+            "Power State of the XCVR. If it is in automatic (normal) or shutdown (low power).";
+        }
+      }
+      container properties {
+        description
+          "All the Configurable and operational data of this XCVR instance.";
+        leaf type {
+          type cienawstypes:xcvr-type;
+          config false;
+          description
+            "Transceiver type, different transceiver types will have different operational data. Type depends on what is physically plugged in.";
+        }
+        leaf mode {
+          type cienawstypes:xcvr-mode;
+          mandatory true;
+          description
+            "Mode of the XCVR.";
+        }
+        leaf number-of-lanes {
+          type cienawstypes:lanes-number;
+          config false;
+          description
+            "Number of lanes this tranceiver has. Only applicable if a transceiver is plugged in.";
+        }
+        leaf-list child-ptp-id {
+          type cienawstypes:name-string;
+          config false;
+          description
+            "The child ptp this xcvr is associated with.";
+        }
+        container vendor-data {
+          config false;
+          description
+            "vendor-data, the container or its subcontainers may be augmented by pluggable or modem specific yang modules, depending on transceiver type.";
+          container id {
+            description
+              "XCVR Vendor ID";
+            container ciena-id {
+              description
+                "If the plugged transceiver is a Ciena product, display the Ciena product information. The leafs in this container will be blank if the transceiver is not plugged in or if it is not a Ciena product.";
+              leaf ciena-item-number {
+                type cienawstypes:string-maxl-32;
+                config false;
+                description
+                  "If the plugged transceiver is a Ciena product, display the product item number. If it is not a Ciena product or if nothing is plugged in, this field will be blank";
+              }
+              leaf revision {
+                type cienawstypes:string-maxl-32;
+                config false;
+                description
+                  "If the plugged transceiver is a Ciena product, display the Ciena revision in the format of <prefix>.<number>.<suffix>. If it is not a Ciena product or if nothing is plugged in, this field will be blank";
+              }
+              leaf description {
+                type cienawstypes:string-maxl-254;
+                config false;
+                description
+                  "If the plugged transceiver is a Ciena product, display the Ciena description. If it is not a Ciena product or if nothing is plugged in, this field will be blank";
+              }
+            }
+            container vendor-id {
+              description
+                "Display the transceiver vendor identification information.";
+              leaf name {
+                type cienawstypes:string-maxl-32;
+                config false;
+                description
+                  "Name of the Vendor that produced this transceiver. For Ciena transceiver, the value will be Ciena.";
+              }
+              leaf part-number {
+                type cienawstypes:string-maxl-32;
+                config false;
+                description
+                  "Vendor part number of the transceiver.";
+              }
+              leaf revision {
+                type cienawstypes:string-maxl-32;
+                config false;
+                description
+                  "Vendor Revision of the transceiver.";
+              }
+              leaf serial-number {
+                type cienawstypes:string-maxl-32;
+                config false;
+                description
+                  "Vendor serial number of the XCVR transceiver.";
+              }
+              leaf manufactured-date {
+                type cienawstypes:string-maxl-16;
+                config false;
+                description
+                  "Manufactured Date, in the format of mm/dd/yy.";
+              }
+            }
+          }
+          container properties {
+            description
+              "XCVR vendor data properties.";
+            container device-id {
+              description
+                "Vendor Device ID properties.";
+              leaf connector-type {
+                type cienawstypes:connector-type-desc-enum;
+                config false;
+                description
+                  "Human readable description of Vendor's connector type byte value. Reference SFF-8024, table 4-3";
+              }
+            }
+            container transmitter {
+              description
+                "Transmitter properties.";
+              leaf nominal-bit-rate {
+                type cienawstypes:string-maxl-16;
+                units "Gbps";
+                config false;
+                description
+                  "Bit rate, nominal, in Gbps for pluggable XCVRs. For modem XCVR objects, this will be OTUCn.";
+              }
+            }
+            container diagnostic-monitoring {
+              description
+                "XCVR diagnostic monitoring properties.";
+              leaf rx-power-measurement {
+                type enumeration {
+                  enum "OMA" {
+                    description
+                      "Optical Modulation Amplitude (OMA) Rx measurement type.";
+                  }
+                  enum "average-power" {
+                    description
+                      "Average Power Rx measurement type.";
+                  }
+                  enum "yes" {
+                    description
+                      "yes";
+                  }
+                  enum "no" {
+                    description
+                      "no";
+                  }
+                }
+                config false;
+                description
+                  "Rx power measurement, bit 3 of diagnostic monitoring type. Reference SFF 8472 section 8.8 and table 8-5 for detail.";
+              }
+              leaf tx-power-measurement {
+                type enumeration {
+                  enum "yes" {
+                    description
+                      "yes";
+                  }
+                  enum "no" {
+                    description
+                      "no";
+                  }
+                }
+                config false;
+                description
+                  "Tx power measurement, related to diagnostic monitoring type.";
+              }
+            }
+          }
+        }
+        container diagnostics {
+          config false;
+          description
+            "XCVR diagnostic data, the container or its subcontainers may be augmented by pluggable or modem specific yang modules, depending on the transceiver type.";
+          container device {
+            config false;
+            description
+              "container for all common device diagnostic data fields for the XCVR.";
+            container temperature {
+              description
+                "XCVR temperature measurements.";
+              leaf actual {
+                type int16;
+                units "C";
+                config false;
+                description
+                  "Temperature Status, actual temperature in degrees Celsius (C). Range must be between -128 and 128.";
+              }
+              container status {
+                description
+                  "XCVR temperature status.";
+                uses xcvr:temperature-status-group;
+              }
+              container threshold {
+                description
+                  "XCVR temperature threshold.";
+                uses xcvr:temperature-threshold-group;
+              }
+            }
+          }
+          list lane {
+            key "lane-number";
+            config false;
+            max-elements "4";
+            description
+              "List of common xcvr lane diagnostic data fields of the XCVR.";
+            leaf lane-number {
+              type cienawstypes:lanes-number;
+              config false;
+              description
+                "Lane number of XCVR.";
+            }
+            container rx-power {
+              description
+                "Lane Tx power measurements.";
+              leaf actual {
+                type cienawstypes:decimal-1-dig;
+                units "dBm";
+                config false;
+                description
+                  "Actual Rx optical power in dBm.";
+              }
+              container status {
+                description
+                  "Rx power status.";
+                uses xcvr:optical-power-status-group;
+              }
+              container threshold {
+                description
+                  "Rx power threshold.";
+                uses xcvr:optical-power-threshold-group;
+              }
+            }
+            container tx-power {
+              description
+                "Lane Tx power measurements.";
+              leaf actual {
+                type cienawstypes:decimal-1-dig;
+                units "dBm";
+                config false;
+                description
+                  "Actual Tx optical power in dBm.";
+              }
+              container status {
+                description
+                  "Tx power status.";
+                uses xcvr:optical-power-status-group;
+              }
+              container threshold {
+                description
+                  "Tx power threshold.";
+                uses xcvr:optical-power-threshold-group;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
