blob: 1d8d7fe879a8c531a4f6698b2a23704c531e9059 [file] [log] [blame]
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";
}
}
}
}