| 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."; |
| } |
| } |
| } |
| } |