Waveserver Ai Driver support
Change-Id: I1d65e30b4b46dbad8802fd2edd9dec74b5d2ec18
revert readme
Change-Id: I32f7a9ec21f743d98cdece2ceb097fc65b784589
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";
+ }
+ }
+ }
+}