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