blob: aee367d75fb7a32606d1079bf6d4b298efc1172f [file] [log] [blame]
module openconfig-system-logging {
yang-version "1";
// namespace
namespace "http://openconfig.net/yang/system/logging";
prefix "oc-log";
// import some basic types
import openconfig-extensions { prefix oc-ext; }
import ietf-inet-types { prefix inet; }
// meta
organization "OpenConfig working group";
contact
"OpenConfig working group
www.openconfig.net";
description
"This module defines configuration and operational state data
for common logging facilities on network systems.";
oc-ext:openconfig-version "0.2.0";
revision "2017-07-06" {
description
"Move to oc-inet types, add IETF attribution, add RADIUS
counters, changed password leaf names to indicate hashed";
reference "0.2.0";
}
revision "2017-01-29" {
description
"Initial public release";
reference "0.1.0";
}
// extension statements
// feature statements
// identity statements
identity SYSLOG_FACILITY {
description
"Base identity for Syslog message facilities.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity ALL {
base SYSLOG_FACILITY;
description
"All supported facilities";
}
identity KERNEL {
base SYSLOG_FACILITY;
description
"The facility for kernel messages";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity USER {
base SYSLOG_FACILITY;
description
"The facility for user-level messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity MAIL {
base SYSLOG_FACILITY;
description
"The facility for the mail system.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity SYSTEM_DAEMON {
base SYSLOG_FACILITY;
description
"The facility for the system daemons.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity AUTH {
base SYSLOG_FACILITY;
description
"The facility for security/authorization messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity SYSLOG {
base SYSLOG_FACILITY;
description
"The facility for messages generated internally by syslogd
facility.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity AUTHPRIV {
base SYSLOG_FACILITY;
description
"The facility for privileged security/authorization messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity NTP {
base SYSLOG_FACILITY;
description
"The facility for the NTP subsystem.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity AUDIT {
base SYSLOG_FACILITY;
description
"The facility for log audit messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity CONSOLE {
base SYSLOG_FACILITY;
description
"The facility for log alert messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL0 {
base SYSLOG_FACILITY;
description
"The facility for local use 0 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL1 {
base SYSLOG_FACILITY;
description
"The facility for local use 1 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL2 {
base SYSLOG_FACILITY;
description
"The facility for local use 2 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL3 {
base SYSLOG_FACILITY;
description
"The facility for local use 3 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL4 {
base SYSLOG_FACILITY;
description
"The facility for local use 4 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL5 {
base SYSLOG_FACILITY;
description
"The facility for local use 5 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL6 {
base SYSLOG_FACILITY;
description
"The facility for local use 6 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOCAL7 {
base SYSLOG_FACILITY;
description
"The facility for local use 7 messages.";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
identity LOG_DESTINATION_TYPE {
description
"Base identity for destination for logging messages";
}
identity DEST_CONSOLE {
base LOG_DESTINATION_TYPE;
description
"Directs log messages to the console";
}
identity DEST_BUFFER {
base LOG_DESTINATION_TYPE;
description
"Directs log messages to and in-memory circular buffer";
}
identity DEST_FILE {
base LOG_DESTINATION_TYPE;
description
"Directs log messages to a local file";
}
identity DEST_REMOTE {
base LOG_DESTINATION_TYPE;
description
"Directs log messages to a remote syslog server";
}
// typedef statements
typedef syslog-severity {
type enumeration {
enum EMERGENCY {
description
"Emergency: system is unusable (0)";
}
enum ALERT {
description
"Alert: action must be taken immediately (1)";
}
enum CRITICAL {
description
"Critical: critical conditions (2)";
}
enum ERROR {
description
"Error: error conditions (3)";
}
enum WARNING {
description
"Warning: warning conditions (4)";
}
enum NOTICE {
description
"Notice: normal but significant condition(5)";
}
enum INFORMATIONAL {
description
"Informational: informational messages (6)";
}
enum DEBUG {
description
"Debug: debug-level messages (7)";
}
}
description
"Syslog message severities";
reference
"IETF RFC 5424 - The Syslog Protocol";
}
// grouping statements
grouping logging-selectors-config {
description
"Configuration data for logging selectors";
leaf facility {
type identityref {
base SYSLOG_FACILITY;
}
description
"Specifies the facility, or class of messages to log";
}
leaf severity {
type syslog-severity;
description
"Specifies that only messages of the given severity (or
greater severity) for the corresonding facility are logged";
}
}
grouping logging-selectors-state {
description
"Operational state data for logging selectors";
}
grouping logging-selectors-top {
description
"Top-level grouping for the logging selector list";
container selectors {
description
"Enclosing container ";
list selector {
key "facility severity";
description
"List of selectors for log messages";
leaf facility {
type leafref {
path "../config/facility";
}
description
"Reference to facility list key";
}
leaf severity {
type leafref {
path "../config/severity";
}
description
"Reference to severity list key";
}
container config {
description
"Configuration data ";
uses logging-selectors-config;
}
container state {
config false;
description
"Operational state data ";
uses logging-selectors-config;
uses logging-selectors-state;
}
}
}
}
grouping logging-console-config {
description
"Configuration data for console logging";
}
grouping logging-console-state {
description
"Operational state data for console logging";
}
grouping logging-console-top {
description
"Top-level grouping for console logging data";
container console {
description
"Top-level container for data related to console-based
logging";
container config {
description
"Configuration data for console logging";
uses logging-console-config;
}
container state {
config false;
description
"Operational state data for console logging";
uses logging-console-config;
uses logging-console-state;
}
uses logging-selectors-top;
}
}
grouping logging-remote-config {
description
"Configuration data for remote log servers";
leaf host {
type inet:host;
description
"IP address or hostname of the remote log server";
}
leaf source-address {
type inet:ip-address;
description
"Source IP address for packets to the log server";
}
leaf remote-port {
type inet:port-number;
default 514;
description
"Sets the destination port number for syslog UDP messages to
the server. The default for syslog is 514.";
}
}
grouping logging-remote-state {
description
"Operational state data for remote log servers";
}
grouping logging-remote-top {
description
"Top-level grouping for remote log servers";
container remote-servers {
description
"Enclosing container for the list of remote log servers";
list remote-server {
key "host";
description
"List of remote log servers";
leaf host {
type leafref {
path "../config/host";
}
description
"Reference to the host list key";
}
container config {
description
"Configuration data for remote log servers";
uses logging-remote-config;
}
container state {
config false;
description
"Operational state data for remote log servers";
uses logging-remote-config;
uses logging-remote-state;
}
uses logging-selectors-top;
}
}
}
grouping logging-top {
description
"Top-level grouping for logging data";
container logging {
description
"Top-level container for data related to logging / syslog";
uses logging-console-top;
uses logging-remote-top;
}
}
// data definition statements
// augment statements
}