draft-ietf-netmod-syslog-model-01.txt   draft-ietf-netmod-syslog-model-02.txt 
NETMOD WG Clyde Wildes NETMOD WG Clyde Wildes
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Informational Agrahara Kiran Koushik Intended status: Informational Agrahara Kiran Koushik
Expires: Aug 22, 2015 Brocade Communication Systems Expires: Sep 05, 2015 Brocade Communication Systems
Feb 22, 2015 Mar 05, 2015
SYSLOG YANG model SYSLOG YANG model
draft-ietf-netmod-syslog-model-01 draft-ietf-netmod-syslog-model-02
Abstract Abstract
This document describes a data model for Syslog This document describes a data model for Syslog
protocol which is used to convey event notification messages. protocol which is used to convey event notification messages.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 32 skipping to change at page 1, line 32
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on Aug 22, 2015. This Internet-Draft will expire on Sep 05, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 5, line 6 skipping to change at page 5, line 6
- console - console
- log buffer - log buffer
- log file(s) - log file(s)
- user terminals - user terminals
- remote server(s). - remote server(s).
Optional features are used to specified fields that are not present in Optional features are used to specified fields that are not present in
all vendor configurations. all vendor configurations.
3.1. SYSLOG Module 3.1. SYSLOG Module
module: ietf-syslog module: ietf-syslog
+--rw syslog +--rw syslog
+--rw global-logging-action {global-logging-action}? +--rw global-logging-action {global-logging-action}?
| +--rw (logging-level-scope)? | +--rw (logging-level-scope)?
| | +--:(logging-facility-all) | | +--:(logging-facility-all)
| | | +--rw (logging-severity-scope)? | | | +--rw severity? syslogtypes:severity
| | | +--:(logging-severity-all)
| | | | +--rw all? empty
| | | +--:(logging-severity)
| | | +--rw severity? syslogtypes:Severity
| | +--:(logging-facility-none) | | +--:(logging-facility-none)
| | | +--rw none? empty | | | +--rw none? empty
| | +--:(logging-facility) | | +--:(logging-facility)
| | +--rw logging-facilities* [facility] | | +--rw logging-facilities* [facility]
| | +--rw facility identityref | | +--rw facility identityref
| | +--rw (logging-severity-scope)? | | +--rw severity? syslogtypes:severity
| | +--:(logging-severity-all)
| | | +--rw all? empty
| | +--:(logging-severity)
| | +--rw severity? syslogtypes:Severity
| +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}? | +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}?
| | +--rw (logging-severity-operator)? | | +--rw select-message-severity? enumeration
| | +--:(default)
| | | +--rw default? empty
| | +--:(equals)
| | | +--rw equals? empty
| | +--:(not-equals)
| | +--rw not-equals? empty
| +--rw logging-match-processing {selector-match-processing-config}? | +--rw logging-match-processing {selector-match-processing-config}?
| +--rw pattern-match? string | +--rw pattern-match? string
+--rw console-logging-action +--rw console-logging-action
| +--rw (logging-level-scope)? | +--rw (logging-level-scope)?
| | +--:(logging-facility-all) | | +--:(logging-facility-all)
| | | +--rw (logging-severity-scope)? | | | +--rw severity? syslogtypes:severity
| | | +--:(logging-severity-all)
| | | | +--rw all? empty
| | | +--:(logging-severity)
| | | +--rw severity? syslogtypes:Severity
| | +--:(logging-facility-none) | | +--:(logging-facility-none)
| | | +--rw none? empty | | | +--rw none? empty
| | +--:(logging-facility) | | +--:(logging-facility)
| | +--rw logging-facilities* [facility] | | +--rw logging-facilities* [facility]
| | +--rw facility identityref | | +--rw facility identityref
| | +--rw (logging-severity-scope)? | | +--rw severity? syslogtypes:severity
| | +--:(logging-severity-all)
| | | +--rw all? empty
| | +--:(logging-severity)
| | +--rw severity? syslogtypes:Severity
| +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}? | +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}?
| | +--rw (logging-severity-operator)? | | +--rw select-message-severity? enumeration
| | +--:(default)
| | | +--rw default? empty
| | +--:(equals)
| | | +--rw equals? empty
| | +--:(not-equals)
| | +--rw not-equals? empty
| +--rw logging-match-processing {selector-match-processing-config}? | +--rw logging-match-processing {selector-match-processing-config}?
| +--rw pattern-match? string | +--rw pattern-match? string
+--rw buffered-logging-action +--rw buffered-logging-action
| +--rw (logging-level-scope)? | +--rw (logging-level-scope)?
| | +--:(logging-facility-all) | | +--:(logging-facility-all)
| | | +--rw (logging-severity-scope)? | | | +--rw severity? syslogtypes:severity
| | | +--:(logging-severity-all)
| | | | +--rw all? empty
| | | +--:(logging-severity)
| | | +--rw severity? syslogtypes:Severity
| | +--:(logging-facility-none) | | +--:(logging-facility-none)
| | | +--rw none? empty | | | +--rw none? empty
| | +--:(logging-facility) | | +--:(logging-facility)
| | +--rw logging-facilities* [facility] | | +--rw logging-facilities* [facility]
| | +--rw facility identityref | | +--rw facility identityref
| | +--rw (logging-severity-scope)? | | +--rw severity? syslogtypes:severity
| | +--:(logging-severity-all)
| | | +--rw all? empty
| | +--:(logging-severity)
| | +--rw severity? syslogtypes:Severity
| +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}? | +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}?
| | +--rw (logging-severity-operator)? | | +--rw select-message-severity? enumeration
| | +--:(default)
| | | +--rw default? empty
| | +--:(equals)
| | | +--rw equals? empty
| | +--:(not-equals)
| | +--rw not-equals? empty
| +--rw logging-match-processing {selector-match-processing-config}? | +--rw logging-match-processing {selector-match-processing-config}?
| | +--rw pattern-match? string | | +--rw pattern-match? string
| +--rw buffer-size? uint32 | +--rw buffer-size? uint64
+--rw file-logging-action +--rw file-logging-action
| +--rw logging-files* [file-name] | +--rw logging-files* [file-name]
| +--rw file-name inet:uri | +--rw file-name inet:uri
| +--rw (logging-level-scope)? | +--rw (logging-level-scope)?
| | +--:(logging-facility-all) | | +--:(logging-facility-all)
| | | +--rw (logging-severity-scope)? | | | +--rw severity? syslogtypes:severity
| | | +--:(logging-severity-all)
| | | | +--rw all? empty
| | | +--:(logging-severity)
| | | +--rw severity? syslogtypes:Severity
| | +--:(logging-facility-none) | | +--:(logging-facility-none)
| | | +--rw none? empty | | | +--rw none? empty
| | +--:(logging-facility) | | +--:(logging-facility)
| | +--rw logging-facilities* [facility] | | +--rw logging-facilities* [facility]
| | +--rw facility identityref | | +--rw facility identityref
| | +--rw (logging-severity-scope)? | | +--rw severity? syslogtypes:severity
| | +--:(logging-severity-all)
| | | +--rw all? empty
| | +--:(logging-severity)
| | +--rw severity? syslogtypes:Severity
| +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}? | +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}?
| | +--rw (logging-severity-operator)? | | +--rw select-message-severity? enumeration
| | +--:(default)
| | | +--rw default? empty
| | +--:(equals)
| | | +--rw equals? empty
| | +--:(not-equals)
| | +--rw not-equals? empty
| +--rw logging-match-processing {selector-match-processing-config}? | +--rw logging-match-processing {selector-match-processing-config}?
| | +--rw pattern-match? string | | +--rw pattern-match? string
| +--rw file-logging-structured-data? boolean {file-logging-structured-data}? | +--rw file-logging-structured-data? boolean {file-logging-structured-data}?
| +--rw file-logging-archive {file-logging-archive-config}? | +--rw file-logging-archive {file-logging-archive-config}?
| +--rw file-number? uint32 | +--rw file-number? uint32
| +--rw file-size? uint32 | +--rw file-size? uint64
| +--rw file-permission? enumeration | +--rw file-permission? enumeration
+--rw remote-logging-action +--rw remote-logging-action
| +--rw remote-logging-destination* [destination] | +--rw remote-logging-destination* [destination]
| +--rw destination inet:host | +--rw destination inet:host
| +--rw (logging-level-scope)? | +--rw (logging-level-scope)?
| | +--:(logging-facility-all) | | +--:(logging-facility-all)
| | | +--rw (logging-severity-scope)? | | | +--rw severity? syslogtypes:severity
| | | +--:(logging-severity-all)
| | | | +--rw all? empty
| | | +--:(logging-severity)
| | | +--rw severity? syslogtypes:Severity
| | +--:(logging-facility-none) | | +--:(logging-facility-none)
| | | +--rw none? empty | | | +--rw none? empty
| | +--:(logging-facility) | | +--:(logging-facility)
| | +--rw logging-facilities* [facility] | | +--rw logging-facilities* [facility]
| | +--rw facility identityref | | +--rw facility identityref
| | +--rw (logging-severity-scope)? | | +--rw severity? syslogtypes:severity
| | +--:(logging-severity-all)
| | | +--rw all? empty
| | +--:(logging-severity)
| | +--rw severity? syslogtypes:Severity
| +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}? | +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}?
| | +--rw (logging-severity-operator)? | | +--rw select-message-severity? enumeration
| | +--:(default)
| | | +--rw default? empty
| | +--:(equals)
| | | +--rw equals? empty
| | +--:(not-equals)
| | +--rw not-equals? empty
| +--rw logging-match-processing {selector-match-processing-config}? | +--rw logging-match-processing {selector-match-processing-config}?
| | +--rw pattern-match? string | | +--rw pattern-match? string
| +--rw remote-logging-structured-data? boolean {remote-logging-structured-data}? | +--rw remote-logging-structured-data? boolean {remote-logging-structured-data}?
| +--rw destination-port? inet:port-number | +--rw destination-port? inet:port-number
| +--rw destination-facility? identityref | +--rw destination-facility? identityref
| +--rw source-interface? if:interface-ref | +--rw source-interface? if:interface-ref
| +--rw vrf-name? string {remote-logging-use-vrf}? | +--rw vrf-name? string {remote-logging-use-vrf}?
| +--rw syslog-sign! {signed-messages-config}? | +--rw syslog-sign! {signed-messages-config}?
| +--rw certInitialRepeat? uint16 | +--rw cert-initial-repeat uint16
| +--rw certResendDelay? uint16 | +--rw cert-resend-delay uint16
| +--rw certResendCount? uint16 | +--rw cert-resend-count uint16
| +--rw sigMaxDelay? uint16 | +--rw sig-max-delay uint16
| +--rw sigNumberResends? uint16 | +--rw sig-number-resends uint16
| +--rw sigResendDelay? uint16 | +--rw sig-resend-delay uint16
| +--rw sigResendCount? uint16 | +--rw sig-resend-count uint16
+--rw terminal-logging-action +--rw terminal-logging-action
+--rw (user-scope)? +--rw (user-scope)?
+--:(all-users) +--:(all-users)
| +--rw all-users | +--rw all-users
| +--rw (logging-level-scope)? | +--rw (logging-level-scope)?
| | +--:(logging-facility-all) | | +--:(logging-facility-all)
| | | +--rw (logging-severity-scope)? | | | +--rw severity? syslogtypes:severity
| | | +--:(logging-severity-all)
| | | | +--rw all? empty
| | | +--:(logging-severity)
| | | +--rw severity? syslogtypes:Severity
| | +--:(logging-facility-none) | | +--:(logging-facility-none)
| | | +--rw none? empty | | | +--rw none? empty
| | +--:(logging-facility) | | +--:(logging-facility)
| | +--rw logging-facilities* [facility] | | +--rw logging-facilities* [facility]
| | +--rw facility identityref | | +--rw facility identityref
| | +--rw (logging-severity-scope)? | | +--rw severity? syslogtypes:severity
| | +--:(logging-severity-all)
| | | +--rw all? empty
| | +--:(logging-severity)
| | +--rw severity? syslogtypes:Severity
| +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}? | +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}?
| | +--rw (logging-severity-operator)? | | +--rw select-message-severity? enumeration
| | +--:(default)
| | | +--rw default? empty
| | +--:(equals)
| | | +--rw equals? empty
| | +--:(not-equals)
| | +--rw not-equals? empty
| +--rw logging-match-processing {selector-match-processing-config}? | +--rw logging-match-processing {selector-match-processing-config}?
| +--rw pattern-match? string | +--rw pattern-match? string
+--:(per-user) {terminal-facility-user-logging-config}? +--:(per-user) {terminal-facility-user-logging-config}?
+--rw user-name* [uname] +--rw user-name* [uname]
+--rw uname string +--rw uname string
+--rw (logging-level-scope)? +--rw (logging-level-scope)?
| +--:(logging-facility-all) | +--:(logging-facility-all)
| | +--rw (logging-severity-scope)? | | +--rw severity? syslogtypes:severity
| | +--:(logging-severity-all)
| | | +--rw all? empty
| | +--:(logging-severity)
| | +--rw severity? syslogtypes:Severity
| +--:(logging-facility-none) | +--:(logging-facility-none)
| | +--rw none? empty | | +--rw none? empty
| +--:(logging-facility) | +--:(logging-facility)
| +--rw logging-facilities* [facility] | +--rw logging-facilities* [facility]
| +--rw facility identityref | +--rw facility identityref
| +--rw (logging-severity-scope)? | +--rw severity? syslogtypes:severity
| +--:(logging-severity-all)
| | +--rw all? empty
| +--:(logging-severity)
| +--rw severity? syslogtypes:Severity
+--rw logging-advanced-level-processing {selector-advanced-level-processing-config}? +--rw logging-advanced-level-processing {selector-advanced-level-processing-config}?
| +--rw (logging-severity-operator)? | +--rw select-message-severity? enumeration
| +--:(default)
| | +--rw default? empty
| +--:(equals)
| | +--rw equals? empty
| +--:(not-equals)
| +--rw not-equals? empty
+--rw logging-match-processing {selector-match-processing-config}? +--rw logging-match-processing {selector-match-processing-config}?
+--rw pattern-match? string +--rw pattern-match? string
4. SYSLOG YANG Models 4. SYSLOG YANG Models
4.1. SYSLOG-TYPES module 4.1. SYSLOG-TYPES module
module ietf-syslog-types { module ietf-syslog-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-syslog-types"; namespace "urn:ietf:params:xml:ns:yang:ietf-syslog-types";
prefix syslogtypes; prefix syslogtypes;
skipping to change at page 6, line 34 skipping to change at page 6, line 34
Editor: Clyde Wildes Editor: Clyde Wildes
<mailto:cwildes@cisco.com> <mailto:cwildes@cisco.com>
Editor: Agrahara Kiran Koushik Editor: Agrahara Kiran Koushik
<mailto:kkoushik@brocade.com>"; <mailto:kkoushik@brocade.com>";
description description
"This module contains a collection of YANG type definitions for "This module contains a collection of YANG type definitions for
SYSLOG."; SYSLOG.";
revision 2014-09-15 { revision 2015-03-05 {
description description
"Initial Revision"; "Initial Revision";
reference reference
"This model references RFC 5424 - The Syslog Protocol."; "This model references RFC 5424 - The Syslog Protocol.";
} }
typedef Severity { typedef severity {
type enumeration { type enumeration {
enum "emergency" { enum "emergency" {
value 0; value 0;
description description
"Emergency Level Msg"; "Emergency Level Msg";
} }
enum "alert" { enum "alert" {
value 1; value 1;
description description
"Alert Level Msg"; "Alert Level Msg";
skipping to change at page 10, line 39 skipping to change at page 10, line 39
<mailto:david.kessens@nsn.com> <mailto:david.kessens@nsn.com>
WG Chair: Juergen Schoenwaelder WG Chair: Juergen Schoenwaelder
<mailto:j.schoenwaelder@jacobs-university.de> <mailto:j.schoenwaelder@jacobs-university.de>
Editor: Clyde Wildes Editor: Clyde Wildes
<mailto:cwildes@cisco.com> <mailto:cwildes@cisco.com>
Editor: Agrahara Kiran Koushik Editor: Agrahara Kiran Koushik
<mailto:kkoushik@brocade.com>"; <mailto:kkoushik@brocade.com>";
description description
"This module contains a collection of YANG definitions "This module contains a collection of YANG definitions
for Syslog configuration."; for Syslog configuration.";
revision 2015-02-23 { revision 2015-03-05 {
description description
"Initial Revision"; "Initial Revision";
reference reference
"This model references RFC 5424 - The Syslog Protocol, "This model references RFC 5424 - The Syslog Protocol,
and RFC 5848 - Signed Syslog Messages."; and RFC 5848 - Signed Syslog Messages.";
} }
feature global-logging-action { feature global-logging-action {
description description
"This feature represents the ability to suppress log "This feature represents the ability to suppress log
skipping to change at page 12, line 4 skipping to change at page 11, line 52
description description
"This feature represents the ability to select messages based "This feature represents the ability to select messages based
on a Posix 1003.2 regular expression pattern match."; on a Posix 1003.2 regular expression pattern match.";
} }
feature signed-messages-config { feature signed-messages-config {
description description
"This feature represents the ability to configure signed "This feature represents the ability to configure signed
syslog messages according to RFC 5848."; syslog messages according to RFC 5848.";
} }
grouping syslog-severity { grouping syslog-severity {
description description
"This grouping defines the Syslog severity which is used to "This grouping defines the Syslog severity which is used to
filter log messages. Choose one of the following: filter log messages.";
logging-severity-all leaf severity {
logging-severity <severity>"; type syslogtypes:severity;
choice logging-severity-scope {
description description
"This choice describes the option to specify all severities "This leaf specifies the Syslog message severity.
or a specific severity."; No value implies all severities.";
case logging-severity-all {
description
"This case specifies all severities.";
leaf all {
type empty;
description
"This leaf specifies that all severities participate in
the filtering of Syslog messages.";
}
}
case logging-severity {
description
"This case specifies a specific severity to participate
in the filtering of Syslog messages.";
leaf severity {
type syslogtypes:Severity;
description
"This leaf specifies the Syslog message severity.";
}
}
} }
} }
grouping syslog-selector { grouping syslog-selector {
description description
"This grouping defines a Syslog selector which is used to "This grouping defines a Syslog selector which is used to
filter log messages for the given action in which the filter log messages for the given action in which the
selector appears. Choose one of the following: selector appears. Choose one of the following:
logging-facility-all <severity> logging-facility-all <severity>
logging-facility-none logging-facility-none
logging-facility [<facility> <severity>...] logging-facility [<facility> <severity>...]
Additional severity comparison operations are available Additional severity comparison operations are available
using the logging-advanced-level-processing container. If using the logging-advanced-level-processing container. If
skipping to change at page 12, line 51 skipping to change at page 12, line 18
selector appears. Choose one of the following: selector appears. Choose one of the following:
logging-facility-all <severity> logging-facility-all <severity>
logging-facility-none logging-facility-none
logging-facility [<facility> <severity>...] logging-facility [<facility> <severity>...]
Additional severity comparison operations are available Additional severity comparison operations are available
using the logging-advanced-level-processing container. If using the logging-advanced-level-processing container. If
the logging-advanced-level-processing container is not the logging-advanced-level-processing container is not
present all messages of the specified severity and higher present all messages of the specified severity and higher
are logged according to the given action."; are logged according to the given action.";
choice logging-level-scope { choice logging-level-scope {
default logging-facility-all;
description description
"This choice describes the option to specify all "This choice describes the option to specify all
facilities, no facilities, or a specific facility."; facilities, no facilities, or a specific facility.";
case logging-facility-all { case logging-facility-all {
description description
"This case specifies all facilities will match when "This case specifies all facilities will match when
comparing the Syslog message facility."; comparing the Syslog message facility.";
uses syslog-severity; uses syslog-severity;
} }
case logging-facility-none { case logging-facility-none {
skipping to change at page 13, line 41 skipping to change at page 13, line 9
} }
uses syslog-severity; uses syslog-severity;
} }
} }
} }
container logging-advanced-level-processing { container logging-advanced-level-processing {
if-feature selector-advanced-level-processing-config; if-feature selector-advanced-level-processing-config;
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
advanced Syslog selector severity comparison."; advanced Syslog selector severity comparison.";
choice logging-severity-operator { leaf select-message-severity {
description type enumeration {
"This choice describes the option to specify how the enum equals-or-higher {
severity comparison is performed.";
case default {
description
"All messages of the specified severity and higher are
logged according to the given action";
leaf default {
type empty;
description description
"This leaf specifies the default behavior."; "All messages of the specified severity and higher are
logged according to the given action";
} }
} enum equals {
case equals {
description
"All messages of the specified severity are logged
according to the given action";
leaf equals {
type empty;
description description
"This leaf specifies all messages for the specified "This leaf specifies all messages for the specified
severity."; severity.";
} }
} enum not-equals {
case not-equals {
description
"All messages that are not of the specified severity are
logged according to the given action";
leaf not-equals {
type empty;
description description
"This leaf specifies all messages that are not for the "This leaf specifies all messages that are not for the
specified severity."; specified severity.";
} }
} }
default equals-or-higher;
description
"This leaf describes the option to specify how the
severity comparison is performed.";
} }
} }
container logging-match-processing { container logging-match-processing {
if-feature selector-match-processing-config; if-feature selector-match-processing-config;
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
matching Syslog messages using a regular expression pattern matching Syslog messages using a regular expression pattern
match."; match.";
leaf pattern-match { leaf pattern-match {
type string; type string;
description description
"This leaf desribes a Posix 1003.2 regular expression "This leaf desribes a Posix 1003.2 regular expression
string that can be used to select a Syslog message for string that can be used to select a Syslog message for
logging. The match is performed on the RFC 5424 logging. The match is performed on the RFC 5424
SYSLOG-MSG field."; SYSLOG-MSG field.";
} }
} }
} }
container syslog { container syslog {
config true;
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
Syslog."; Syslog.";
container global-logging-action { container global-logging-action {
if-feature global-logging-action; if-feature global-logging-action;
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
global logging. Global logging represents the ability to global logging. Global logging represents the ability to
perform global log message suppression."; perform global log message suppression.";
uses syslog-selector; uses syslog-selector;
} }
container console-logging-action { container console-logging-action {
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
console logging."; console logging.";
uses syslog-selector; uses syslog-selector;
} }
container buffered-logging-action { container buffered-logging-action {
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
buffered logging."; local memory buffer logging.";
uses syslog-selector; uses syslog-selector;
leaf buffer-size { leaf buffer-size {
type uint32; type uint64;
description description
"This leaf describes the amount of memory that will be "This leaf describes the amount of memory that will be
dedicated to buffered logging."; dedicated to local memory buffer logging. The default
value varies by implementation.";
} }
} }
container file-logging-action { container file-logging-action {
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
file logging."; file logging.";
list logging-files { list logging-files {
key "file-name"; key "file-name";
description description
"This list describes a collection of local logging "This list describes a collection of local logging
files."; files.";
leaf file-name { leaf file-name {
type inet:uri; type inet:uri;
mandatory true;
description description
"This leaf specifies the name of the log file."; "This leaf specifies the name of the log file.";
} }
uses syslog-selector; uses syslog-selector;
leaf file-logging-structured-data { leaf file-logging-structured-data {
if-feature file-logging-structured-data; if-feature file-logging-structured-data;
type boolean; type boolean;
default false;
description description
"This leaf describes how log messages are written to the "This leaf describes how log messages are written to the
log file. If set messages will be written in structured- log file. If true, messages will be written in
data format; if not set messages will be written in structured-data format; if false, messages will be
standard message format."; written in standard message format.";
} }
container file-logging-archive { container file-logging-archive {
if-feature file-logging-archive-config; if-feature file-logging-archive-config;
description description
"This container describes the configuration parameters "This container describes the configuration parameters
for log file archiving."; for log file archiving.";
leaf file-number { leaf file-number {
type uint32; type uint32;
default 1;
description description
"This leaf specifies the maximum number of log files "This leaf specifies the maximum number of log files
retained."; retained.";
} }
leaf file-size { leaf file-size {
type uint32; type uint64;
default 262144;
description description
"This leaf specifies the maximum log file size."; "This leaf specifies the maximum log file size.";
} }
leaf file-permission { leaf file-permission {
type enumeration { type enumeration {
enum world-readable { enum world-readable {
value 1; value 1;
description description
"This enum specifies that the log files "This enum specifies that the log files
are readable by world."; are readable by world.";
} }
enum no-world-readable { enum no-world-readable {
value 2; value 2;
description description
"This enum specifies that the log files "This enum specifies that the log files
are not readable by world."; are not readable by world.";
} }
} }
default no-world-readable;
description description
"This leaf describes who can read log files"; "This leaf describes who can read log files";
} }
} }
} }
} }
container remote-logging-action { container remote-logging-action {
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
remote logging."; remote logging.";
list remote-logging-destination { list remote-logging-destination {
key "destination"; key "destination";
description description
"This list describes a collection of remote logging "This list describes a collection of remote logging
destinations."; destinations.";
leaf destination { leaf destination {
type inet:host; type inet:host;
mandatory true;
description description
"The leaf uniquely specifies the address of the "The leaf uniquely specifies the address of the
remote host. One of the following must be specified: remote host. One of the following must be specified:
an ipv4 address, an ipv6 address, or a host name."; an ipv4 address, an ipv6 address, or a host name.";
} }
uses syslog-selector; uses syslog-selector;
leaf remote-logging-structured-data { leaf remote-logging-structured-data {
if-feature remote-logging-structured-data; if-feature remote-logging-structured-data;
type boolean; type boolean;
default false;
description description
"This leaf describes how log messages are sent to the "This leaf describes how log messages are sent to the
remote server. If set messages will be sent in remote server. If true, messages will be sent in
structured-data format; if not set messages will be structured-data format; if false, messages will be
sent in standard message format."; sent in standard message format.";
} }
leaf destination-port { leaf destination-port {
type inet:port-number; type inet:port-number;
default 514; default 514;
description description
"This leaf specifies the port number used to deliver "This leaf specifies the port number used to deliver
messages to the remote server."; messages to the remote server.";
} }
leaf destination-facility { leaf destination-facility {
type identityref { type identityref {
base syslogtypes:syslog-facility; base syslogtypes:syslog-facility;
} }
default syslogtypes:local7;
description description
"This leaf specifies the facility used in messages "This leaf specifies the facility used in messages
delivered to the remote server."; delivered to the remote server.";
} }
leaf source-interface { leaf source-interface {
type if:interface-ref; type if:interface-ref;
description description
"This leaf sets the source interface for the remote "This leaf sets the source interface for the remote
Syslog server. Either the interface name or the Syslog server. Either the interface name or the
interface IP address can be specified."; interface IP address can be specified. If not set,
messages sent to a remote syslog server will contain
the IP address of the interface the syslog message
uses to exit the network element";
} }
leaf vrf-name { leaf vrf-name {
if-feature remote-logging-use-vrf; if-feature remote-logging-use-vrf;
type string; type string;
description description
"This leaf specifies the name of the virtual routing "This leaf specifies the name of the virtual routing
facility (VRF)."; facility (VRF) that connects to the syslog server
host. If not set, the default VRF will be used.";
} }
container syslog-sign { container syslog-sign {
if-feature signed-messages-config; if-feature signed-messages-config;
presence presence
"If present, syslog-sign is activated."; "If present, syslog-sign is activated.";
description description
"This container describes the configuration parameters "This container describes the configuration parameters
for signed syslog messages as described by RFC 5848."; for signed syslog messages as described by RFC 5848.";
leaf certInitialRepeat { leaf cert-initial-repeat {
type uint16; type uint16;
mandatory true;
description description
"This leaf specifies the number of times each "This leaf specifies the number of times each
Certificate Block should be sent before the first Certificate Block should be sent before the first
message is sent."; message is sent.";
} }
leaf certResendDelay { leaf cert-resend-delay {
type uint16; type uint16;
mandatory true;
description description
"This leaf specifies the maximum time delay in seconds "This leaf specifies the maximum time delay in seconds
until resending the Certificate Block."; until resending the Certificate Block.";
} }
leaf certResendCount { leaf cert-resend-count {
type uint16; type uint16;
mandatory true;
description description
"This leaf specifies the maximum number of other "This leaf specifies the maximum number of other
syslog messages to send until resending the syslog messages to send until resending the
Certificate Block."; Certificate Block.";
} }
leaf sigMaxDelay { leaf sig-max-delay {
type uint16; type uint16;
mandatory true;
description description
"This leaf specifies when to generate a new Signature "This leaf specifies when to generate a new Signature
Block. If this many seconds have elapsed since the Block. If this many seconds have elapsed since the
message with the first message number of the message with the first message number of the
Signature Block was sent, a new Signature Block Signature Block was sent, a new Signature Block
should be generated."; should be generated.";
} }
leaf sigNumberResends { leaf sig-number-resends {
type uint16; type uint16;
mandatory true;
description description
"This leaf specifies the number of times a Signature "This leaf specifies the number of times a Signature
Block is resent. (It is recommended to select a value Block is resent. (It is recommended to select a value
of greater than 0 in particular when the UDP of greater than 0 in particular when the UDP
transport [RFC5426] is used.)."; transport [RFC5426] is used.).";
} }
leaf sigResendDelay { leaf sig-resend-delay {
type uint16; type uint16;
mandatory true;
description description
"This leaf specifies when to send the next Signature "This leaf specifies when to send the next Signature
Block transmission based on time. If this many Block transmission based on time. If this many
seconds have elapsed since the previous sending of seconds have elapsed since the previous sending of
this Signature Block, resend it."; this Signature Block, resend it.";
} }
leaf sigResendCount { leaf sig-resend-count {
type uint16; type uint16;
mandatory true;
description description
"This leaf specifies when to send the next Signature "This leaf specifies when to send the next Signature
Block transmission based on a count. If this many Block transmission based on a count. If this many
other syslog messages have been sent since the other syslog messages have been sent since the
previous sending of this Signature Block, resend it."; previous sending of this Signature Block, resend it.";
} }
} }
} }
} }
container terminal-logging-action { container terminal-logging-action {
description description
"This container describes the configuration parameters for "This container describes the configuration parameters for
the terminal logging configuration."; the terminal logging configuration.";
choice user-scope { choice user-scope {
default all-users;
description description
"This choice describes the option to specify all users "This choice describes the option to specify all users
or a specific user. The all users case implies that or a specific user. The all users case implies that
messages will be sent to all terminals"; messages will be sent to all terminals";
case all-users { case all-users {
description description
"This case specifies all users."; "This case specifies all users.";
container all-users { container all-users {
description description
"This container describes the configuration parameters "This container describes the configuration parameters
skipping to change at page 18, line 31 skipping to change at page 18, line 4
} }
} }
case per-user { case per-user {
if-feature terminal-facility-user-logging-config; if-feature terminal-facility-user-logging-config;
description description
"This case specifies a specific user."; "This case specifies a specific user.";
list user-name { list user-name {
key "uname"; key "uname";
description description
"This list describes a collection of user names."; "This list describes a collection of user names.";
leaf uname { leaf uname {
type string; type string;
description description
"This leaf uniquely describes a user name."; "This leaf uniquely describes a user name which is
the login name of the user whose terminal session
is to receive log messages.";
} }
uses syslog-selector; uses syslog-selector;
} }
} }
} }
} }
} }
} }
4.3. A SYSLOG Example 4.3. A SYSLOG Example
skipping to change at page 18, line 64 skipping to change at page 18, line 40
Here is the example syslog configuration xml: Here is the example syslog configuration xml:
<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config> <edit-config>
<target> <target>
<running/> <running/>
</target> </target>
<config> <config>
<syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog"> <syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog">
<global-logging-action> <global-logging-action>
<logging-facilities> <logging-facilities>
<facility>syslogtypes:kern</facility><logging-severity>syslogtypes:critical</logging-severity> <facility>syslogtypes:kern</facility><severity>syslogtypes:critical</severity>
</logging-facilities> </logging-facilities>
<logging-facilities> <logging-facilities>
<facility>syslogtypes:auth</facility><logging-severity>syslogtypes:error</logging-severity> <facility>syslogtypes:auth</facility><severity>syslogtypes:error</severity>
</logging-facilities> </logging-facilities>
</global-logging-action> </global-logging-action>
<console-logging-action> <console-logging-action>
<severity>syslogtypes:critical</severity> <severity>syslogtypes:critical</severity>
</console-logging-action> </console-logging-action>
</syslog> </syslog>
</config> </config>
</edit-config> </edit-config>
</rpc> </rpc>
skipping to change at page 19, line 18 skipping to change at page 19, line 18
This section records the status of known implementations of the Syslog This section records the status of known implementations of the Syslog
YANG model at the time of posting of this Internet-Draft. YANG model at the time of posting of this Internet-Draft.
Cisco Systems, Inc. has implemented the proposed IETF Syslog model Cisco Systems, Inc. has implemented the proposed IETF Syslog model
for the Nexus 7000 NXOS OS as a prototype, together with an for the Nexus 7000 NXOS OS as a prototype, together with an
augmentation model for operating system specific Syslog configuration augmentation model for operating system specific Syslog configuration
features. features.
Five leaves were implemented in the base IETF model and three leaves Five leaves were implemented in the base IETF model and three leaves
were implemented in the NXOS specific augmentation model as follows: were implemented in the Cisco specific augmentation model as follows:
Leaf XPATH Sample NXOS CLI Command(s) Leaf XPATH Sample NXOS CLI Command(s)
syslog:global-logging logging level cron 2 syslog:global-logging-action logging level cron 2
syslog:console-logging logging console 1 syslog:console-logging-action logging console 1
syslog:file-logging logging logfile mylog.log 2 4096 syslog:file-logging-action logging logfile mylog.log 2 4096
syslog:terminal-logging logging monitor 2 syslog:terminal-logging-action logging monitor 2
syslog:remote-logging *logging server server.cisco.com 2 syslog:remote-logging-action *logging server server.cisco.com 2
facility user use-vrf management facility user
*logging source-interface loopback 0 use-vrf management
*logging source-interface loopback 0
cisco-syslog:logging-timestamp-config logging timestamp milli-seconds cisco-syslog:logging-timestamp-config logging timestamp milli-seconds
cisco-syslog:origin-id-cfg logging origin-id string abcdef cisco-syslog:origin-id-cfg logging origin-id string abcdef
cisco-syslog:module-logging logging module 1 cisco-syslog:module-logging logging module 1
*The "logging server" and "logging source-interface" commands were *The "logging server" and "logging source-interface" commands were
combined into one base model leaf. combined into one base model leaf.
The description of implementations in this section is intended to assist The description of implementations in this section is intended to assist
the IETF in its decision processes in progressing drafts to RFCs. the IETF in its decision processes in progressing drafts to RFCs.
 End of changes. 82 change blocks. 
225 lines changed or deleted 113 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/