blob: b88ba261f80bb6ea86c791c94ae7d3843f09ccbc [file] [log] [blame]
module ietf-system-microsemi {
namespace "http://www.microsemi.com/microsemi-edge-assure/msea-system";
prefix "sys-ms";
import ietf-yang-types {
prefix yang;
revision-date 2013-07-15;
}
import ietf-inet-types {
prefix inet;
revision-date 2013-07-15;
}
import msea-types {
prefix msea;
revision-date 2016-02-29;
}
import ietf-system {
prefix sys;
revision-date 2014-08-06;
}
import ietf-netconf-acm {
prefix nacm;
revision-date 2012-02-22;
}
/*** META INFORMATION ***/
organization
"Microsemi Inc., FTD Division";
contact
"Web URL: http://www.microsemi.com/
E-mail: info@microsemi.com
Postal: Microsemi Corporation Corporate Headquarters
One Enterprise Aliso Viejo,
CA 92656
U.S.A.
Phone: +1 949 380 6100
Fax: +1 949 215-4996";
description
"This YANG module extends the IETF System objects with some extra configuration attributes
Copyright 2015 Microsemi Inc.
All rights reserved.";
reference "RFC 7317: A YANG Data Model for System Management";
revision "2016-05-05" {
description
"Updated for ZTP support - Sean Condon, Microsemi";
}
revision "2015-10-01" {
description
"Initial version to augment IETF-SYSTEM YANG module - Sean Condon, Microsemi";
}
typedef identifier {
type string {
length "1..255";
pattern "[a-zA-Z0-9\-._]*";
}
description
"A simple string with only alphabetic or numeric and dash, dot and underscore";
}
grouping upgrade-file-attributes {
leaf file-name {
type string;
description "The name of the update TAR file as found on the device";
}
leaf file-date {
type yang:date-and-time;
description "The date of the update TAR file as found on the device";
}
leaf file-size {
type uint32;
description "The size of the update TAR file as found on the device";
}
}
grouping upgrade-attributes {
description "Attributes from the /update.tar file";
leaf version {
type uint32;
description "The version of this portion of the /update.tar";
}
leaf crc32 {
type uint32;
description "The CRC32 value of this portion of the /update.tar";
}
leaf length {
type uint32;
description "The length of this portion of the /update.tar";
}
}
grouping ddm-attributes {
leaf high-alarm-thresh {
description "The high alarm threshold value";
type decimal64 {
fraction-digits 6;
}
}
leaf high-warn-thresh {
description "The high warn threshold value";
type decimal64 {
fraction-digits 6;
}
}
leaf low-warn-thresh {
description "The low warn threshold value";
type decimal64 {
fraction-digits 6;
}
}
leaf low-alarm-thresh {
description "The low alarm threshold value";
type decimal64 {
fraction-digits 6;
}
}
}
feature serial-number {
description "Set of readonly attributes that identify the hardware";
}
feature remote-upgrade {
description
"Indicates that the device supports upgrade of fabric, linux and fabric header.
This expects a file /update.tar on the device -
put there through SFTP or some other file transfer method";
}
augment "/sys:system" {
description
"Extends the SYSTEM with some extra configuration attributes required for setup.";
leaf asset-tag { //Microsemi specific configuration attribute
type identifier;
description
"An asset tag field for the device.";
}
leaf description { //Microsemi specific configuration attribute
type string {
length "0..256";
pattern "[a-zA-Z0-9\\-_. ,]*";
}
description "A description for the device.";
}
leaf longitude { //Microsemi specific configuration attribute
type decimal64 {
fraction-digits 7;
range "-180..180";
}
description
"Longitude for the device expressed in decimal degrees.
Positive values represent East and negative values represent West";
}
leaf latitude { //Microsemi specific configuration attribute
type decimal64 {
fraction-digits 7;
range "-90..90";
}
description
"Latitude for the device expressed in decimal degrees
Positive values represent North and negative values represent South";
}
}
augment "/sys:system-state" {
description
"Extends the SYSTEM-STATE with some extra configuration attributes required for setup.
All attributes are automatically config=false because they extend system-state";
container remote-upgrade {
description "Details of the /update.tar file present on the system.
These are all read-only because they are under system-state";
choice file-present-choice {
case not-present {
leaf file-not-found {
type string;
description "Gives the name of the expected file. Usually /update.tar";
}
}
case file-present {
uses upgrade-file-attributes;
leaf file-validity {
type string;
description "Gives an indication if the file is valid, or if not, the reason why";
}
container fabric-image {
uses upgrade-attributes;
}
container linux-image {
uses upgrade-attributes;
}
}
}
}
leaf hostname {
type string;
description "The hostname of the system. When DHCP or ZTP
is active the hostname will not be configured through NETCONF";
}
container ntp {
if-feature sys:ntp;
description "The list of NTP servers active on the system. When DHCP or ZTP
is active the NTP servers will not be configured through NETCONF";
leaf-list server {
type string;
description "An NTP server active on the system";
}
}
container dns-resolver {
description "The list of DNS servers active on the system. When DHCP or ZTP
is active the DNS servers will not be configured through NETCONF";
leaf-list server {
type string;
description "A DNS server active on the system";
}
leaf-list search {
type string;
description "A DNS search domain active on the system";
}
}
container diagnostic-monitoring {
container temperature {
description "The temperature and thresholds of the device";
leaf measured {
description "The measured transceiver temperature at the current time";
type decimal64 {
fraction-digits 6;
}
units "°C";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Section 9.1";
}
uses ddm-attributes;
}
container voltage {
description "The core voltage and thresholds of the device";
leaf measured {
description "The measured voltage at the current time";
type decimal64 {
fraction-digits 6;
}
units "V";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Section 9.1";
}
uses ddm-attributes;
}
container tx-bias {
description "The transmit (Tx) bias and thresholds of the device";
leaf measured {
description "The measured transmit (Tx) bias at the current time";
type decimal64 {
fraction-digits 6;
}
units "mA";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Section 9.1";
}
uses ddm-attributes;
}
container tx-power {
description "The transmit (Tx) power and thresholds of the device";
leaf measured {
description "The measured transmit (Tx) power at the current time";
type decimal64 {
fraction-digits 6;
}
units "mV";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Section 9.1";
}
uses ddm-attributes;
}
container rx-power {
description "The receive (Rx) power and thresholds of the device";
leaf measured {
description "The measured receive (Rx) power at the current time";
type decimal64 {
fraction-digits 6;
}
units "mV";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Section 9.1";
}
uses ddm-attributes;
}
}
}
augment "/sys:system-state/sys:platform" {
description
"Extends the SYSTEM-STATE with some extra configuration attributes required for setup.
All attributes are automatically config=false because they extend system-state";
container device-identification {
if-feature serial-number;
config false;
leaf vendor-name {
type string;
description
"Device Vendor Name";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Table 4-1 Address A0H Bytes 20-35";
}
leaf vendor-part-number {
type string;
description
"Device Vendor Part Number";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Table 4-1 Address A0H Bytes 40-55";
}
leaf vendor-revision {
type string;
description
"Device Vendor Revision";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Table 4-1 Address A0H Bytes 56-59";
}
leaf serial-number {
type string;
description
"Device Serial Number";
reference
"SFF-8472 Specification for Diagnostic Monitoring Interface for Optical
Transceivers Rev 12.1 September 12, 2014 Table 4-1 Address A0H Bytes 68-83";
}
container processor {
description "Details of the processor hardware in the device";
leaf serialnumber {
type yang:hex-string;
description "The serial number of the processor";
}
leaf x509-device-certificate-pem {
type string;
description "X509 Device certificate in PEM (Base 64 format)";
}
}
}
}
rpc do-upgrade-and-reboot {
// nacm:default-deny-all;
if-feature remote-upgrade;
description "Method to perform an upgrade of the device. This
expects a file /update.tar to have be present on the device.
The system-state/remote-upgrade attributes can be used to
verify the contents of the file before calling this action.
If there is a problem performing the upgrade
these will be described in any error thrown";
input {
leaf reset-option {
type enumeration {
enum nuclear {
description "Erases all configuration and resets the device to
factory defaults.";
}
enum allnetconf {
description "Reset all NETCONF data - leaves only logs and SSH keys.
If a lesser reset is required use system-restart with a
suitable reset-option";
}
}
description "Optionally specify a parameter that can be
used to reset the device to factory defaults";
}
}
output {
anyxml data {
description "A message describing the result.
The result might not be seen as it schedules a reboot of the device";
}
}
}
rpc pull-update-tar-from-tftp {
// nacm:default-deny-all;
if-feature remote-upgrade;
description "Pulls a specified file from the specifed host and copies it
to the local device (usually at /update.tar
It also expects the file to be signed with GnuPG and the signature
file to exist on the TFTP server at <tftp-file>.asc";
input {
leaf tftp-file {
type msea:file-name;
mandatory true;
description "The name of a file to pull from the TFTP server at the host name specified";
}
leaf tftp-host {
type inet:host;
mandatory true;
description "The hostname of a TFTP server where an update TAR file can be pulled from";
}
}
}
rpc read-from-syslog {
description "A method of reading the entries from syslog. If no
argument is given will read the last 100 lines";
input {
leaf start-line {
type int16 {
range -10000..-1;
}
default -100;
description "The number of lines to read from the end of syslog.";
}
}
output {
anyxml data {
description "Syslog entries represented as XML";
}
}
}
// notification upgrade-notification {
// description
// "Generated when a remote upgrade is in progress.";
//
// leaf upgrade-stage {
// type enumeration {
// enum "check" {
// description
// "Checking the upgrade file is valid";
// }
// enum "erase" {
// description "Erasing old image";
// }
// enum "write" {
// description "Writing new image";
// }
// enum "complete" {
// description "Upgrade complete";
// }
// }
// mandatory true;
// }
//
// leaf upgrade-detail {
// description "Textual description of the stage of upgrade";
// type string {
// length 0..100;
// }
// }
// } // upgrade-notification
}