Waveserver Ai Driver support

Change-Id: I1d65e30b4b46dbad8802fd2edd9dec74b5d2ec18

revert readme

Change-Id: I32f7a9ec21f743d98cdece2ceb097fc65b784589
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.";
+  }
+}