draft-ietf-netmod-syslog-model-16.txt | draft-ietf-netmod-syslog-model-17.txt | |||
---|---|---|---|---|
NETMOD WG C. Wildes, Ed. | NETMOD WG C. Wildes, Ed. | |||
Internet-Draft Cisco Systems Inc. | Internet-Draft Cisco Systems Inc. | |||
Intended status: Standards Track K. Koushik, Ed. | Intended status: Standards Track K. Koushik, Ed. | |||
Expires: February 10, 2018 Verizon Wireless | Expires: March 12, 2018 Verizon Wireless | |||
August 11, 2017 | September 08, 2017 | |||
A YANG Data Model for Syslog Configuration | A YANG Data Model for Syslog Configuration | |||
draft-ietf-netmod-syslog-model-16 | draft-ietf-netmod-syslog-model-17 | |||
Abstract | Abstract | |||
This document defines a YANG data model for the configuration of a | This document defines a YANG data model for the configuration of a | |||
syslog process. It is intended this model be used by vendors who | syslog process. It is intended this model be used by vendors who | |||
implement syslog in their systems. | implement syslog in their systems. | |||
Editorial Note (To be removed by RFC Editor) | Editorial Note (To be removed by RFC Editor) | |||
This draft contains many placeholder values that need to be replaced | This draft contains many placeholder values that need to be replaced | |||
skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
Artwork in this document contains shorthand references to drafts in | Artwork in this document contains shorthand references to drafts in | |||
progress. Please apply the following replacements: | progress. Please apply the following replacements: | |||
o "xxxx" --> the assigned RFC value for draft-ietf-netconf-keystore | o "xxxx" --> the assigned RFC value for draft-ietf-netconf-keystore | |||
o "yyyy" --> the assigned RFC value for draft-ietf-netconf-tls- | o "yyyy" --> the assigned RFC value for draft-ietf-netconf-tls- | |||
client-server | client-server | |||
o "zzzz" --> the assigned RFC value for this draft | o "zzzz" --> the assigned RFC value for this draft | |||
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. | |||
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 https://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 February 10, 2018. | This Internet-Draft will expire on March 12, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 (http://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.3. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | 1.3. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Design of the Syslog Model . . . . . . . . . . . . . . . . . . 4 | 3. Design of the Syslog Model . . . . . . . . . . . . . . . . . 5 | |||
3.1. Syslog Module . . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. Syslog Module . . . . . . . . . . . . . . . . . . . . . . 6 | |||
4. Syslog YANG Module . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Syslog YANG Module . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. The ietf-syslog Module . . . . . . . . . . . . . . . . . . 8 | 4.1. The ietf-syslog Module . . . . . . . . . . . . . . . . . 8 | |||
5. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . 24 | 5. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 25 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 26 | 7.1. The YANG Module Names Registry . . . . . . . . . . . . . 29 | |||
8.1. Resource Constraints . . . . . . . . . . . . . . . . . . . 27 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 29 | |||
8.2. Inappropriate Configuration . . . . . . . . . . . . . . . 27 | 8.1. Resource Constraints . . . . . . . . . . . . . . . . . . 29 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | 8.2. Inappropriate Configuration . . . . . . . . . . . . . . . 30 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . . 27 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . . 28 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 30 | |||
Appendix A. Implementor Guidelines . . . . . . . . . . . . . . . . 28 | 9.2. Informative References . . . . . . . . . . . . . . . . . 31 | |||
Appendix A.1. Extending Facilities . . . . . . . . . . . . . . 28 | Appendix A. Implementor Guidelines . . . . . . . . . . . . . . . 32 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29 | A.1. Extending Facilities . . . . . . . . . . . . . . . . . . 32 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | ||||
1. Introduction | 1. Introduction | |||
Operating systems, processes and applications generate messages | Operating systems, processes and applications generate messages | |||
indicating their own status or the occurrence of events. These | indicating their own status or the occurrence of events. These | |||
messages are useful for managing and/or debugging the network and its | messages are useful for managing and/or debugging the network and its | |||
services. The BSD syslog protocol is a widely adopted protocol that | services. The BSD syslog protocol is a widely adopted protocol that | |||
is used for transmission and processing of the message. | is used for transmission and processing of the message. | |||
Since each process, application and operating system was written | Since each process, application and operating system was written | |||
skipping to change at page 3, line 14 ¶ | skipping to change at page 3, line 28 ¶ | |||
the receipt is made. | the receipt is made. | |||
Essentially, a syslog process receives messages (from the kernel, | Essentially, a syslog process receives messages (from the kernel, | |||
processes, applications or other syslog processes) and processes | processes, applications or other syslog processes) and processes | |||
them. The processing may involve logging to a local file, and/or | them. The processing may involve logging to a local file, and/or | |||
displaying on console, and/or relaying to syslog processes on other | displaying on console, and/or relaying to syslog processes on other | |||
machines. The processing is determined by the "facility" that | machines. The processing is determined by the "facility" that | |||
originated the message and the "severity" assigned to the message by | originated the message and the "severity" assigned to the message by | |||
the facility. | the facility. | |||
We are using definitions of syslog protocol from RFC5424 [RFC5424] in | We are using definitions of syslog protocol from [RFC5424] in this | |||
this RFC. | RFC. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC2119 [RFC2119] and | document are to be interpreted as described in [RFC2119] and | |||
RFC8174 [RFC8174]. | [RFC8174]. | |||
1.2. Terminology | 1.2. Terminology | |||
The term "originator" is defined in [RFC5424]: an "originator" | The term "originator" is defined in [RFC5424]: an "originator" | |||
generates syslog content to be carried in a message. | generates syslog content to be carried in a message. | |||
The term "relay" is defined in [RFC5424]: a "relay" forwards | The term "relay" is defined in [RFC5424]: a "relay" forwards | |||
messages, accepting messages from originators or other relays and | messages, accepting messages from originators or other relays and | |||
sending them to collectors or other relays | sending them to collectors or other relays | |||
skipping to change at page 3, line 53 ¶ | skipping to change at page 4, line 19 ¶ | |||
follows: | follows: | |||
o Brackets "[" and "]" enclose list keys. | o Brackets "[" and "]" enclose list keys. | |||
o Braces "{" and "}" enclose feature names, and indicate that the | o Braces "{" and "}" enclose feature names, and indicate that the | |||
named feature must be present for the subtree to be present. | named feature must be present for the subtree to be present. | |||
o Abbreviations before data node names: "rw" means configuration | o Abbreviations before data node names: "rw" means configuration | |||
(read-write) and "ro" state data (read-only). | (read-write) and "ro" state data (read-only). | |||
o Symbols after data node names: "?" means an optional node, "!" | o Symbols after data node names: "?" means an optional node, "!" | |||
means a presence container, and "*" denotes a list and leaf-list. | means a presence container, and "*" denotes a list and leaf-list. | |||
o Parentheses enclose choice and case nodes, and case nodes are also | o Parentheses enclose choice and case nodes, and case nodes are also | |||
marked with a colon (":"). | marked with a colon (":"). | |||
o Ellipsis ("...") stands for contents of subtrees that are not | o Ellipsis ("...") stands for contents of subtrees that are not | |||
shown. | shown. | |||
2. Problem Statement | 2. Problem Statement | |||
skipping to change at page 5, line 31 ¶ | skipping to change at page 5, line 48 ¶ | |||
| | | | |||
+-------------+--------------+ | +-------------+--------------+ | |||
| | | | | | | | |||
v v v | v v v | |||
Collectors | Collectors | |||
+----------+ +----------+ +----------------+ | +----------+ +----------+ +----------------+ | |||
| | | Log | |Remote Relay(s)/| | | | | Log | |Remote Relay(s)/| | |||
| Console | | File(s) | |Collector(s) | | | Console | | File(s) | |Collector(s) | | |||
+----------+ +----------+ +----------------+ | +----------+ +----------+ +----------------+ | |||
Figure 1. Syslog Processing Flow | Figure 1. Syslog Processing Flow | |||
Collectors are configured using the leaves in the syslog model | Collectors are configured using the leaves in the syslog model | |||
"actions" container which correspond to each message collector: | "actions" container which correspond to each message collector: | |||
console | console | |||
log file(s) | log file(s) | |||
remote relay(s)/collector(s) | remote relay(s)/collector(s) | |||
Within each action, a selector is used to filter syslog messages. A | Within each action, a selector is used to filter syslog messages. A | |||
selector consists of a list of one or more facility-severity matches, | selector consists of a list of one or more facility-severity matches, | |||
and, if supported via the select-match feature, an optional regular | and, if supported via the select-match feature, an optional regular | |||
expression pattern match that is performed on the SYSLOG-MSG | expression pattern match that is performed on the [RFC5424] field. | |||
[RFC5424] field. | ||||
A syslog message is processed if: | A syslog message is processed if: | |||
There is an element of facility-list (F, S) where | There is an element of facility-list (F, S) where | |||
the message facility matches F (if it is present) | the message facility matches F | |||
and the message severity matches S (if it is present) | and the message severity matches S | |||
or the message text matches the regex pattern (if it is present) | and/or the message text matches the regex pattern (if it is present) | |||
The facility is one of a specific syslog-facility, or all facilities. | The facility is one of a specific syslog-facility, or all facilities. | |||
The severity is one of type syslog-severity, all severities, or none. | The severity is one of type syslog-severity, all severities, or none. | |||
None is a special case that can be used to disable a filter. When | None is a special case that can be used to disable a filter. When | |||
filtering severity, the default comparison is that messages of the | filtering severity, the default comparison is that messages of the | |||
specified severity and higher are selected to be logged. This is | specified severity and higher are selected to be logged. This is | |||
shown in the model as "default equals-or-higher". This behavior can | shown in the model as "default equals-or-higher". This behavior can | |||
be altered if the select-adv-compare feature is enabled to specify a | be altered if the select-adv-compare feature is enabled to specify a | |||
compare operation and an action. Compare operations are: "equals" to | compare operation and an action. Compare operations are: "equals" to | |||
skipping to change at page 7, line 32 ¶ | skipping to change at page 7, line 23 ¶ | |||
| | +--rw facility union | | | +--rw facility union | |||
| | +--rw severity union | | | +--rw severity union | |||
| | +--rw advanced-compare {select-adv-compare}? | | | +--rw advanced-compare {select-adv-compare}? | |||
| | +--rw compare? enumeration | | | +--rw compare? enumeration | |||
| | +--rw action? enumeration | | | +--rw action? enumeration | |||
| +--rw pattern-match? string {select-match}? | | +--rw pattern-match? string {select-match}? | |||
| +--rw structured-data? boolean {structured-data}? | | +--rw structured-data? boolean {structured-data}? | |||
| +--rw file-rotation | | +--rw file-rotation | |||
| +--rw number-of-files? uint32 {file-limit-size}? | | +--rw number-of-files? uint32 {file-limit-size}? | |||
| +--rw max-file-size? uint32 {file-limit-size}? | | +--rw max-file-size? uint32 {file-limit-size}? | |||
| +--rw rollover? uint32 {file-limit-duration}? | | +--rw rollover? uint32 | |||
| +--rw retention? uint32 {file-limit-duration}? | | | {file-limit-duration}? | |||
| +--rw retention? uint32 | ||||
| {file-limit-duration}? | ||||
+--rw remote {remote-action}? | +--rw remote {remote-action}? | |||
+--rw destination* [name] | +--rw destination* [name] | |||
+--rw name string | +--rw name string | |||
+--rw (transport) | +--rw (transport) | |||
| +--:(tcp) | | +--:(tcp) | |||
| | +--rw tcp | | | +--rw tcp | |||
| | +--rw address? inet:host | | | +--rw address? inet:host | |||
| | +--rw port? inet:port-number | | | +--rw port? inet:port-number | |||
| +--:(udp) | | +--:(udp) | |||
| | +--rw udp | | | +--rw udp | |||
| | +--rw address? inet:host | | | +--rw address? inet:host | |||
| | +--rw port? inet:port-number | | | +--rw port? inet:port-number | |||
| +--:(tls) | | +--:(tls) | |||
| +--rw tls | | +--rw tls | |||
| +--rw address? inet:host | ||||
| +--rw port? inet:port-number | ||||
| +--rw server-auth | | +--rw server-auth | |||
| | +--rw trusted-ca-certs? -> /ks:keystore/trusted-certificates/name | | | +--rw trusted-ca-certs? leafref | |||
| | +--rw trusted-server-certs? -> /ks:keystore/trusted-certificates/name | | | +--rw trusted-server-certs? leafref | |||
| +--rw client-auth | | +--rw client-auth | |||
| | +--rw (auth-type)? | | | +--rw (auth-type)? | |||
| | +--:(certificate) | | | +--:(certificate) | |||
| | +--rw certificate? -> /ks:keystore/keys/key/certificates/certificate/name | | | +--rw certificate? leafref | |||
| +--rw hello-params {tls-client-hello-params-config}? | | +--rw hello-params | |||
| | +--rw tls-versions | | {tls-client-hello-params-config}? | |||
| | | +--rw tls-version* identityref | | +--rw tls-versions | |||
| | +--rw cipher-suites | | | +--rw tls-version* identityref | |||
| | +--rw cipher-suite* identityref | | +--rw cipher-suites | |||
| +--rw address? inet:host | | +--rw cipher-suite* identityref | |||
| +--rw port? inet:port-number | ||||
+--rw facility-filter | +--rw facility-filter | |||
| +--rw facility-list* [facility severity] | | +--rw facility-list* [facility severity] | |||
| +--rw facility union | | +--rw facility union | |||
| +--rw severity union | | +--rw severity union | |||
| +--rw advanced-compare {select-adv-compare}? | | +--rw advanced-compare {select-adv-compare}? | |||
| +--rw compare? enumeration | | +--rw compare? enumeration | |||
| +--rw action? enumeration | | +--rw action? enumeration | |||
+--rw pattern-match? string {select-match}? | +--rw pattern-match? string {select-match}? | |||
+--rw structured-data? boolean {structured-data}? | +--rw structured-data? boolean {structured-data}? | |||
+--rw facility-override? identityref | +--rw facility-override? identityref | |||
+--rw source-interface? if:interface-ref {remote-source-interface}? | +--rw source-interface? if:interface-ref | |||
| {remote-source-interface}? | ||||
+--rw signing-options! {signed-messages}? | +--rw signing-options! {signed-messages}? | |||
+--rw cert-signers | +--rw cert-signers | |||
+--rw cert-signer* [name] | +--rw cert-signer* [name] | |||
| +--rw name string | | +--rw name string | |||
| +--rw certificate? -> /ks:keystore/keys/key/certificates/certificate/name | | +--rw certificate? leafref | |||
| +--rw hash-algorithm? enumeration | | +--rw hash-algorithm? enumeration | |||
+--rw cert-initial-repeat? uint32 | +--rw cert-initial-repeat? uint32 | |||
+--rw cert-resend-delay? uint32 | +--rw cert-resend-delay? uint32 | |||
+--rw cert-resend-count? uint32 | +--rw cert-resend-count? uint32 | |||
+--rw sig-max-delay? uint32 | +--rw sig-max-delay? uint32 | |||
+--rw sig-number-resends? uint32 | +--rw sig-number-resends? uint32 | |||
+--rw sig-resend-delay? uint32 | +--rw sig-resend-delay? uint32 | |||
+--rw sig-resend-count? uint32 | +--rw sig-resend-count? uint32 | |||
Figure 2. ietf-syslog Module Tree | Figure 2. ietf-syslog Module Tree | |||
4. Syslog YANG Module | 4. Syslog YANG Module | |||
4.1. The ietf-syslog Module | 4.1. The ietf-syslog Module | |||
This module imports typedefs from [RFC6021], [RFC7223], groupings | This module imports typedefs from [RFC6021], [RFC7223], groupings | |||
from [RFC yyyy], and [RFC xxxx], and it references [RFC5424], | from [RFC yyyy], and [RFC xxxx], and it references [RFC5424], | |||
[RFC5425], [RFC5426], [RFC6587], and [RFC5848]. | [RFC5425], [RFC5426], [RFC6587], and [RFC5848]. | |||
<CODE BEGINS> file "ietf-syslog.yang" | <CODE BEGINS> file "ietf-syslog.yang" | |||
module ietf-syslog { | module ietf-syslog { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-syslog"; | namespace "urn:ietf:params:xml:ns:yang:ietf-syslog"; | |||
prefix syslog; | prefix syslog; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
reference | reference | |||
"RFC 6991: INET Types Model"; | "RFC 6991: INET Types Model"; | |||
} | } | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix if; | prefix if; | |||
reference | reference | |||
"RFC 7223: Interfaces Model"; | "RFC 7223: Interfaces Model"; | |||
} | } | |||
import ietf-tls-client { | import ietf-tls-client { | |||
prefix tlsc; | prefix tlsc; | |||
reference | reference | |||
"RFC xxxx: Keystore Model"; | "RFC xxxx: Keystore Model"; | |||
} | } | |||
import ietf-keystore { | import ietf-keystore { | |||
prefix ks; | prefix ks; | |||
reference | reference | |||
"RFC yyyy: TLS Client and Server Models"; | "RFC yyyy: TLS Client and Server Models"; | |||
} | } | |||
organization "IETF | organization "IETF | |||
NETMOD (Network Modeling) Working Group"; | NETMOD (Network Modeling) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
WG List: <mailto:netmod@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
Editor: Kiran Agrahara Sreenivasa | Editor: Kiran Agrahara Sreenivasa | |||
<mailto:kirankoushik.agraharasreenivasa@verizonwireless.com> | <mailto:kirankoushik.agraharasreenivasa@ | |||
verizonwireless.com> | ||||
Editor: Clyde Wildes | Editor: Clyde Wildes | |||
<mailto:cwildes@cisco.com>"; | <mailto:cwildes@cisco.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. | |||
Copyright (c) 2016 IETF Trust and the persons identified as | Copyright (c) 2016 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | |||
'OPTIONAL' in the module text are to be interpreted as described | 'OPTIONAL' in the module text are to be interpreted as | |||
in RFC 2119 (http://tools.ietf.org/html/rfc2119). | described in RFC 2119 (http://tools.ietf.org/html/rfc2119). | |||
This version of this YANG module is part of RFC zzzz | This version of this YANG module is part of RFC zzzz | |||
(http://tools.ietf.org/html/rfczzzz); see the RFC itself for | (http://tools.ietf.org/html/rfczzzz); see the RFC itself for | |||
full legal notices."; | full legal notices."; | |||
reference | revision 2017-09-08 { | |||
"RFC 5424: The Syslog Protocol | description | |||
RFC 5425: Transport Layer Security (TLS) Transport Mapping for Syslog | "Initial Revision"; | |||
RFC 5426: Transmission of Syslog Messages over UDP | reference | |||
RFC 5848: Signed Syslog Messages | "RFC zzzz: Syslog YANG Model"; | |||
RFC 6587: Transmission of Syslog Messages over TCP | } | |||
RFC 6991: Common YANG Data Types | ||||
RFC 7223: YANG Interface Management | ||||
RFC xxxx: Keystore Management | ||||
RFC yyyy: Transport Layer Security (TLS) Client"; | ||||
revision 2017-06-07 { | feature console-action { | |||
description | description | |||
"Initial Revision"; | "This feature indicates that the local console action is | |||
reference | supported."; | |||
"RFC XXXX: Syslog YANG Model"; | } | |||
} | ||||
feature console-action { | feature file-action { | |||
description | description | |||
"This feature indicates that the local console action is | "This feature indicates that the local file action is | |||
supported."; | supported."; | |||
} | } | |||
feature file-action { | feature file-limit-size { | |||
description | description | |||
"This feature indicates that the local file action is | "This feature indicates that file logging resources | |||
supported."; | are managed using size and number limits."; | |||
} | } | |||
feature file-limit-size { | feature file-limit-duration { | |||
description | description | |||
"This feature indicates that file logging resources | "This feature indicates that file logging resources | |||
are managed using size and number limits."; | are managed using time based limits."; | |||
} | } | |||
feature file-limit-duration { | feature remote-action { | |||
description | description | |||
"This feature indicates that file logging resources | "This feature indicates that the remote server action is | |||
are managed using time based limits."; | supported."; | |||
} | } | |||
feature remote-action { | feature remote-source-interface { | |||
description | description | |||
"This feature indicates that the remote server action is | "This feature indicates that source-interface is supported | |||
supported."; | supported for the remote-action."; | |||
} | } | |||
feature remote-source-interface { | feature select-adv-compare { | |||
description | description | |||
"This feature indicates that source-interface is supported | "This feature represents the ability to select messages | |||
supported for the remote-action."; | using the additional comparison operators when comparing | |||
} | the syslog message severity."; | |||
} | ||||
feature select-adv-compare { | feature select-match { | |||
description | description | |||
"This feature represents the ability to select messages | "This feature represents the ability to select messages | |||
using the additional comparison operators when comparing | based on a Posix 1003.2 regular expression pattern match."; | |||
the syslog message severity."; | } | |||
} | ||||
feature select-match { | feature structured-data { | |||
description | description | |||
"This feature represents the ability to select messages based | "This feature represents the ability to log messages | |||
on a Posix 1003.2 regular expression pattern match."; | in structured-data format as per RFC 5424."; | |||
} | } | |||
feature structured-data { | feature signed-messages { | |||
description | description | |||
"This feature represents the ability to log messages | "This feature represents the ability to configure signed | |||
in structured-data format as per RFC 5424."; | syslog messages according to RFC 5848."; | |||
} | } | |||
feature signed-messages { | typedef syslog-severity { | |||
description | type enumeration { | |||
"This feature represents the ability to configure signed | enum "emergency" { | |||
syslog messages according to RFC 5848."; | value 0; | |||
} | description | |||
"The severity level 'Emergency' indicating that the | ||||
system is unusable."; | ||||
} | ||||
enum "alert" { | ||||
value 1; | ||||
description | ||||
"The severity level 'Alert' indicating that an action | ||||
must be taken immediately."; | ||||
} | ||||
enum "critical" { | ||||
value 2; | ||||
description | ||||
"The severity level 'Critical' indicating a critical | ||||
condition."; | ||||
} | ||||
enum "error" { | ||||
value 3; | ||||
description | ||||
"The severity level 'Error' indicating an error | ||||
condition."; | ||||
} | ||||
enum "warning" { | ||||
value 4; | ||||
description | ||||
"The severity level 'Warning' indicating a warning | ||||
condition."; | ||||
} | ||||
enum "notice" { | ||||
value 5; | ||||
description | ||||
"The severity level 'Notice' indicating a normal but | ||||
significant condition."; | ||||
} | ||||
enum "info" { | ||||
value 6; | ||||
description | ||||
"The severity level 'Info' indicating an informational | ||||
message."; | ||||
} | ||||
enum "debug" { | ||||
value 7; | ||||
description | ||||
"The severity level 'Debug' indicating a debug-level | ||||
message."; | ||||
} | ||||
} | ||||
description | ||||
"The definitions for Syslog message severity as per RFC 5424."; | ||||
} | ||||
typedef syslog-severity { | identity syslog-facility { | |||
type enumeration { | description | |||
enum "emergency" { | "This identity is used as a base for all syslog facilities as | |||
value 0; | per RFC 5424."; | |||
description | } | |||
"The severity level 'Emergency' indicating that the system | ||||
is unusable."; | ||||
} | ||||
enum "alert" { | ||||
value 1; | ||||
description | ||||
"The severity level 'Alert' indicating that an action must be | ||||
taken immediately."; | ||||
} | ||||
enum "critical" { | ||||
value 2; | ||||
description | ||||
"The severity level 'Critical' indicating a critical condition."; | ||||
} | ||||
enum "error" { | ||||
value 3; | ||||
description | ||||
"The severity level 'Error' indicating an error condition."; | ||||
} | ||||
enum "warning" { | ||||
value 4; | ||||
description | ||||
"The severity level 'Warning' indicating a warning condition."; | ||||
} | ||||
enum "notice" { | ||||
value 5; | ||||
description | ||||
"The severity level 'Notice' indicating a normal but significant | ||||
condition."; | ||||
} | ||||
enum "info" { | ||||
value 6; | ||||
description | ||||
"The severity level 'Info' indicating an informational message."; | ||||
} | ||||
enum "debug" { | ||||
value 7; | ||||
description | ||||
"The severity level 'Debug' indicating a debug-level message."; | ||||
} | ||||
} | ||||
description | ||||
"The definitions for Syslog message severity as per RFC 5424."; | ||||
} | ||||
identity syslog-facility { | identity kern { | |||
description | base syslog-facility; | |||
"This identity is used as a base for all syslog facilities as | description | |||
per RFC 5424."; | "The facility for kernel messages (0) as defined in RFC 5424."; | |||
} | ||||
identity kern { | } | |||
base syslog-facility; | ||||
description | ||||
"The facility for kernel messages (0) as defined in RFC 5424."; | ||||
} | ||||
identity user { | identity user { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for user-level messages (1) as defined in RFC 5424."; | "The facility for user-level messages (1) as defined in | |||
} | RFC 5424."; | |||
} | ||||
identity mail { | identity mail { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the mail system (2) as defined in RFC 5424."; | "The facility for the mail system (2) as defined in RFC 5424."; | |||
} | ||||
identity daemon { | ||||
base syslog-facility; | ||||
description | ||||
"The facility for the system daemons (3) as defined in | ||||
RFC 5424."; | ||||
} | } | |||
identity daemon { | identity auth { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the system daemons (3) as defined in RFC 5424."; | "The facility for security/authorization messages (4) as | |||
} | defined in RFC 5424."; | |||
} | ||||
identity auth { | identity syslog { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for security/authorization messages (4) as defined | "The facility for messages generated internally by syslogd | |||
in RFC 5424."; | facility (5) as defined in RFC 5424."; | |||
} | } | |||
identity syslog { | identity lpr { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for messages generated internally by syslogd | "The facility for the line printer subsystem (6) as defined | |||
facility (5) as defined in RFC 5424."; | in RFC 5424."; | |||
} | } | |||
identity lpr { | identity news { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the line printer subsystem (6) as defined in | "The facility for the network news subsystem (7) as defined | |||
RFC 5424."; | in RFC 5424."; | |||
} | ||||
identity news { | } | |||
base syslog-facility; | ||||
description | ||||
"The facility for the network news subsystem (7) as defined in | ||||
RFC 5424."; | ||||
} | ||||
identity uucp { | identity uucp { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the UUCP subsystem (8) as defined in RFC 5424."; | "The facility for the UUCP subsystem (8) as defined in | |||
} | RFC 5424."; | |||
} | ||||
identity cron { | identity cron { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the clock daemon (9) as defined in RFC 5424."; | "The facility for the clock daemon (9) as defined in | |||
} | RFC 5424."; | |||
} | ||||
identity authpriv { | identity authpriv { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for privileged security/authorization messages (10) | "The facility for privileged security/authorization messages | |||
as defined in RFC 5424."; | (10) as defined in RFC 5424."; | |||
} | } | |||
identity ftp { | identity ftp { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the FTP daemon (11) as defined in RFC 5424."; | "The facility for the FTP daemon (11) as defined in RFC 5424."; | |||
} | } | |||
identity ntp { | identity ntp { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the NTP subsystem (12) as defined in RFC 5424."; | "The facility for the NTP subsystem (12) as defined in | |||
} | RFC 5424."; | |||
} | ||||
identity audit { | identity audit { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for log audit messages (13) as defined in RFC 5424."; | "The facility for log audit messages (13) as defined in | |||
} | RFC 5424."; | |||
} | ||||
identity console { | identity console { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for log alert messages (14) as defined in RFC 5424."; | "The facility for log alert messages (14) as defined in | |||
} | RFC 5424."; | |||
identity cron2 { | } | |||
base syslog-facility; | ||||
description | ||||
"The facility for the second clock daemon (15) as defined in | ||||
RFC 5424."; | ||||
} | ||||
identity local0 { | identity cron2 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 0 messages (16) as defined in | "The facility for the second clock daemon (15) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
identity local1 { | identity local0 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 1 messages (17) as defined in | "The facility for local use 0 messages (16) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
identity local2 { | identity local1 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 2 messages (18) as defined in | "The facility for local use 1 messages (17) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
identity local3 { | ||||
base syslog-facility; | ||||
description | ||||
"The facility for local use 3 messages (19) as defined in | ||||
RFC 5424."; | ||||
} | ||||
identity local4 { | identity local2 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 4 messages (20) as defined in | "The facility for local use 2 messages (18) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
identity local5 { | identity local3 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 5 messages (21) as defined in | "The facility for local use 3 messages (19) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
identity local6 { | identity local4 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 6 messages (22) as defined in | "The facility for local use 4 messages (20) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
identity local7 { | identity local5 { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for local use 7 messages (23) as defined in | "The facility for local use 5 messages (21) as defined in | |||
RFC 5424."; | RFC 5424."; | |||
} | } | |||
grouping severity-filter { | identity local6 { | |||
description | base syslog-facility; | |||
"This grouping defines the processing used to select | description | |||
log messages by comparing syslog message severity using | "The facility for local use 6 messages (22) as defined in | |||
the following processing rules: | RFC 5424."; | |||
- if 'none', do not match. | } | |||
- if 'all', match. | ||||
- else compare message severity with the specified severity | ||||
according to the default compare rule (all messages of the | ||||
specified severity and greater match) or if the | ||||
select-adv-compare feature is present, the advance-compare | ||||
rule."; | ||||
leaf severity { | ||||
type union { | ||||
type syslog-severity; | ||||
type enumeration { | ||||
enum none { | ||||
value -2; | ||||
description | ||||
"This enum describes the case where no severities | ||||
are selected."; | ||||
} | ||||
enum all { | ||||
value -1; | ||||
description | ||||
"This enum describes the case where all severities | ||||
are selected."; | ||||
} | ||||
} | ||||
} | ||||
mandatory true; | ||||
description | ||||
"This leaf specifies the syslog message severity."; | ||||
} | ||||
container advanced-compare { | ||||
when '../severity != "all" and | ||||
../severity != "none"' { | ||||
description | ||||
"The advanced compare container is not applicable for severity | ||||
'all' or severity 'none'"; | ||||
} | ||||
if-feature select-adv-compare; | ||||
leaf compare { | ||||
type enumeration { | ||||
enum equals { | ||||
description | ||||
"This enum specifies that the severity comparison operation | ||||
will be equals."; | ||||
} | ||||
enum equals-or-higher { | ||||
description | ||||
"This enum specifies that the severity comparison operation | ||||
will be equals or higher."; | ||||
} | ||||
} | ||||
default equals-or-higher; | ||||
description | ||||
"The compare can be used to specify the comparison operator that | ||||
should be used to compare the syslog message severity with the | ||||
specified severity."; | ||||
} | ||||
leaf action { | ||||
type enumeration { | ||||
enum log { | ||||
description | ||||
"This enum specifies that if the compare operation is true | ||||
the message will be logged."; | ||||
} | ||||
enum block { | ||||
description | ||||
"This enum specifies that if the compare operation is true | ||||
the message will not be logged."; | ||||
} | identity local7 { | |||
} | base syslog-facility; | |||
default log; | description | |||
description | "The facility for local use 7 messages (23) as defined in | |||
"The action can be used to spectify if the message should be | RFC 5424."; | |||
logged or blocked based on the outcome of the compare operation."; | } | |||
} | ||||
description | ||||
"This container describes additional severity compare operations that can | ||||
be used in place of the default severity comparison. The compare leaf | ||||
specifies the type of the compare that is done and the action leaf | ||||
specifies the intended result. Example: compare->equals and action-> | ||||
no-match means messages that have a severity that is not equal to the | ||||
specified severity will be logged."; | ||||
} | ||||
} | ||||
grouping selector { | grouping severity-filter { | |||
description | description | |||
"This grouping defines a syslog selector which is used to | "This grouping defines the processing used to select | |||
select log messages for the log-actions (console, file, | log messages by comparing syslog message severity using | |||
remote, etc.). Choose one or both of the following: | the following processing rules: | |||
facility [<facility> <severity>...] | - if 'none', do not match. | |||
pattern-match regular-expression-match-string | - if 'all', match. | |||
If both facility and pattern-match are specified, both must | - else compare message severity with the specified severity | |||
match in order for a log message to be selected."; | according to the default compare rule (all messages of the | |||
container facility-filter { | specified severity and greater match) or if the | |||
description | select-adv-compare feature is present, the advance-compare | |||
"This container describes the syslog filter parameters."; | rule."; | |||
list facility-list { | leaf severity { | |||
key "facility severity"; | type union { | |||
ordered-by user; | type syslog-severity; | |||
description | type enumeration { | |||
"This list describes a collection of syslog | enum none { | |||
facilities and severities."; | value 2147483647; | |||
leaf facility { | description | |||
type union { | "This enum describes the case where no severities | |||
type identityref { | are selected."; | |||
base syslog-facility; | } | |||
} | enum all { | |||
type enumeration { | value -2147483648; | |||
enum all { | description | |||
description | "This enum describes the case where all severities | |||
"This enum describes the case where all | are selected."; | |||
facilities are requested."; | } | |||
} | } | |||
} | } | |||
mandatory true; | ||||
description | ||||
"This leaf specifies the syslog message severity."; | ||||
} | ||||
container advanced-compare { | ||||
when '../severity != "all" and | ||||
../severity != "none"' { | ||||
description | ||||
"The advanced compare container is not applicable for | ||||
severity 'all' or severity 'none'"; | ||||
} | ||||
if-feature select-adv-compare; | ||||
leaf compare { | ||||
type enumeration { | ||||
enum equals { | ||||
description | ||||
"This enum specifies that the severity comparison | ||||
operation will be equals."; | ||||
} | ||||
enum equals-or-higher { | ||||
description | ||||
"This enum specifies that the severity comparison | ||||
operation will be equals or higher."; | ||||
} | ||||
} | ||||
default equals-or-higher; | ||||
description | ||||
"The compare can be used to specify the comparison | ||||
operator that should be used to compare the syslog message | ||||
severity with the specified severity."; | ||||
} | ||||
leaf action { | ||||
type enumeration { | ||||
enum log { | ||||
description | ||||
"This enum specifies that if the compare operation is | ||||
true the message will be logged."; | ||||
} | } | |||
description | enum block { | |||
"The leaf uniquely identifies a syslog facility."; | description | |||
} | "This enum specifies that if the compare operation is | |||
uses severity-filter; | true the message will not be logged."; | |||
} | } | |||
} | } | |||
leaf pattern-match { | default log; | |||
if-feature select-match; | description | |||
type string; | "The action can be used to spectify if the message should | |||
description | be logged or blocked based on the outcome of the compare | |||
"This leaf describes a Posix 1003.2 regular expression | operation."; | |||
string that can be used to select a syslog message for | ||||
logging. The match is performed on the RFC 5424 | ||||
SYSLOG-MSG field."; | ||||
} | ||||
} | ||||
grouping structured-data { | } | |||
description | description | |||
"This grouping defines the syslog structured data option | "This container describes additional severity compare | |||
which is used to select the format used to write log | operations that can be used in place of the default | |||
messages."; | severity comparison. The compare leaf specifies the type of | |||
leaf structured-data { | the compare that is done and the action leaf specifies the | |||
if-feature structured-data; | intended result. | |||
type boolean; | Example: compare->equals and action->no-match means | |||
default false; | messages that have a severity that is not equal to the | |||
description | specified severity will be logged."; | |||
"This leaf describes how log messages are written. | } | |||
If true, messages will be written with one or more | } | |||
STRUCTURED-DATA elements as per RFC5424; if false, | ||||
messages will be written with STRUCTURED-DATA = | ||||
NILVALUE."; | ||||
} | ||||
} | ||||
container syslog { | grouping selector { | |||
presence "Enables logging."; | description | |||
description | "This grouping defines a syslog selector which is used to | |||
"This container describes the configuration parameters for | select log messages for the log-actions (console, file, | |||
syslog."; | remote, etc.). Choose one or both of the following: | |||
container actions { | facility [<facility> <severity>...] | |||
description | pattern-match regular-expression-match-string | |||
"This container describes the log-action parameters | If both facility and pattern-match are specified, both must | |||
for syslog."; | match in order for a log message to be selected."; | |||
container console { | container facility-filter { | |||
if-feature console-action; | description | |||
presence "Enables logging to the console"; | "This container describes the syslog filter parameters."; | |||
description | list facility-list { | |||
"This container describes the configuration parameters for | key "facility severity"; | |||
console logging."; | ordered-by user; | |||
uses selector; | description | |||
} | "This list describes a collection of syslog | |||
container file { | facilities and severities."; | |||
if-feature file-action; | leaf facility { | |||
description | type union { | |||
"This container describes the configuration parameters for | type identityref { | |||
file logging. If file-archive limits are not supplied, it | base syslog-facility; | |||
is assumed that the local implementation defined limits will | } | |||
be used."; | type enumeration { | |||
list log-file { | enum all { | |||
key "name"; | description | |||
description | "This enum describes the case where all | |||
"This list describes a collection of local logging | facilities are requested."; | |||
files."; | } | |||
leaf name { | } | |||
type inet:uri { | } | |||
pattern 'file:.*'; | description | |||
} | "The leaf uniquely identifies a syslog facility."; | |||
description | } | |||
"This leaf specifies the name of the log file which | uses severity-filter; | |||
MUST use the uri scheme file:."; | ||||
} | ||||
uses selector; | ||||
uses structured-data; | ||||
container file-rotation { | ||||
description | ||||
"This container describes the configuration | ||||
parameters for log file rotation."; | ||||
leaf number-of-files { | ||||
if-feature file-limit-size; | ||||
type uint32; | ||||
default 1; | ||||
description | ||||
"This leaf specifies the maximum number of log | ||||
files retained. Specify 1 for implementations | ||||
that only support one log file."; | ||||
} | ||||
leaf max-file-size { | ||||
if-feature file-limit-size; | ||||
type uint32; | ||||
units "megabytes"; | ||||
description | ||||
"This leaf specifies the maximum log file size."; | ||||
} | ||||
leaf rollover { | ||||
if-feature file-limit-duration; | ||||
type uint32; | ||||
units "minutes"; | ||||
description | ||||
"This leaf specifies the length of time that log | ||||
events should be written to a specific log file. | ||||
Log events that arrive after the rollover period | ||||
cause the current log file to be closed and a new | ||||
log file to be opened."; | ||||
} | ||||
leaf retention { | ||||
if-feature file-limit-duration; | ||||
type uint32; | ||||
units "hours"; | ||||
description | ||||
"This leaf specifies the length of time that | ||||
completed/closed log event files should be stored | ||||
in the file system before they are deleted."; | ||||
} | ||||
} | } | |||
} | } | |||
} | leaf pattern-match { | |||
container remote { | if-feature select-match; | |||
if-feature remote-action; | type string; | |||
description | description | |||
"This container describes the configuration parameters for | "This leaf describes a Posix 1003.2 regular expression | |||
forwarding syslog messages to remote relays or collectors."; | string that can be used to select a syslog message for | |||
list destination { | logging. The match is performed on the RFC 5424 | |||
key "name"; | SYSLOG-MSG field."; | |||
description | } | |||
"This list describes a collection of remote logging | } | |||
destinations."; | ||||
leaf name { | grouping structured-data { | |||
type string; | description | |||
description | "This grouping defines the syslog structured data option | |||
"An arbitrary name for the endpoint to connect to."; | which is used to select the format used to write log | |||
} | messages."; | |||
choice transport { | leaf structured-data { | |||
mandatory true; | if-feature structured-data; | |||
description | type boolean; | |||
"This choice describes the transport option."; | default false; | |||
case tcp { | description | |||
container tcp { | "This leaf describes how log messages are written. | |||
description | If true, messages will be written with one or more | |||
"This container describes the TCP transport | STRUCTURED-DATA elements as per RFC 5424; if false, | |||
options."; | messages will be written with STRUCTURED-DATA = | |||
reference | NILVALUE."; | |||
"RFC 6587: Transmission of Syslog Messages over TCP"; | } | |||
leaf address { | } | |||
type inet:host; | ||||
description | container syslog { | |||
"The leaf uniquely specifies the address of | presence "Enables logging."; | |||
the remote host. One of the following must | description | |||
be specified: an ipv4 address, an ipv6 | "This container describes the configuration parameters for | |||
address, or a host name."; | syslog."; | |||
} | container actions { | |||
leaf port { | description | |||
type inet:port-number; | "This container describes the log-action parameters | |||
default 514; | for syslog."; | |||
description | container console { | |||
"This leaf specifies the port number used to | if-feature console-action; | |||
deliver messages to the remote server."; | presence "Enables logging to the console"; | |||
} | description | |||
} | "This container describes the configuration parameters | |||
} | for console logging."; | |||
case udp { | uses selector; | |||
container udp { | } | |||
description | container file { | |||
"This container describes the UDP transport | if-feature file-action; | |||
options."; | description | |||
reference | "This container describes the configuration parameters for | |||
"RFC 5426: Transmission of Syslog Messages over UDP"; | file logging. If file-archive limits are not supplied, it | |||
leaf address { | is assumed that the local implementation defined limits | |||
type inet:host; | will be used."; | |||
description | list log-file { | |||
"The leaf uniquely specifies the address of | key "name"; | |||
the remote host. One of the following must be | description | |||
specified: an ipv4 address, an ipv6 address, | "This list describes a collection of local logging | |||
or a host name."; | files."; | |||
} | leaf name { | |||
leaf port { | type inet:uri { | |||
type inet:port-number; | pattern 'file:.*'; | |||
default 514; | } | |||
description | description | |||
"This leaf specifies the port number used to | "This leaf specifies the name of the log file which | |||
deliver messages to the remote server."; | MUST use the uri scheme file:."; | |||
} | } | |||
} | uses selector; | |||
} | uses structured-data; | |||
case tls { | container file-rotation { | |||
container tls { | description | |||
description | "This container describes the configuration | |||
"This container describes the TLS transport options."; | parameters for log file rotation."; | |||
reference | leaf number-of-files { | |||
"RFC 5425: Transport Layer Security (TLS) Transport | if-feature file-limit-size; | |||
Mapping for Syslog "; | type uint32; | |||
uses tlsc:tls-client-grouping; | default 1; | |||
leaf address { | description | |||
type inet:host; | "This leaf specifies the maximum number of log | |||
description | files retained. Specify 1 for implementations | |||
"The leaf uniquely specifies the address of | that only support one log file."; | |||
the remote host. One of the following must be | } | |||
specified: an ipv4 address, an ipv6 address, | leaf max-file-size { | |||
or a host name."; | if-feature file-limit-size; | |||
} | type uint32; | |||
leaf port { | units "megabytes"; | |||
type inet:port-number; | description | |||
default 6514; | "This leaf specifies the maximum log file size."; | |||
description | } | |||
"TCP port 6514 has been allocated as the default | leaf rollover { | |||
port for syslog over TLS."; | if-feature file-limit-duration; | |||
} | type uint32; | |||
} | units "minutes"; | |||
} | description | |||
} | "This leaf specifies the length of time that log | |||
uses selector; | events should be written to a specific log file. | |||
uses structured-data; | Log events that arrive after the rollover period | |||
leaf facility-override { | cause the current log file to be closed and a new | |||
type identityref { | log file to be opened."; | |||
base syslog-facility; | } | |||
} | leaf retention { | |||
description | if-feature file-limit-duration; | |||
"If specified, this leaf specifies the facility used | type uint32; | |||
to override the facility in messages delivered to the | units "hours"; | |||
remote server."; | description | |||
} | "This leaf specifies the length of time that | |||
leaf source-interface { | completed/closed log event files should be stored | |||
if-feature remote-source-interface; | in the file system before they are deleted."; | |||
type if:interface-ref; | } | |||
description | } | |||
"This leaf sets the source interface to be used to send | } | |||
message to the remote syslog server. If not set, | } | |||
messages sent to a remote syslog server will | container remote { | |||
contain the IP address of the interface the syslog | if-feature remote-action; | |||
message uses to exit the network element"; | description | |||
} | "This container describes the configuration parameters | |||
container signing-options { | for forwarding syslog messages to remote relays or | |||
if-feature signed-messages; | collectors."; | |||
presence | list destination { | |||
"If present, syslog-signing options is activated."; | key "name"; | |||
description | description | |||
"This container describes the configuration | "This list describes a collection of remote logging | |||
parameters for signed syslog messages as described | destinations."; | |||
by RFC 5848."; | leaf name { | |||
reference | type string; | |||
"RFC 5848: Signed Syslog Messages"; | description | |||
container cert-signers { | "An arbitrary name for the endpoint to connect to."; | |||
description | } | |||
"This container describes the signing certificate configuration | choice transport { | |||
for Signature Group 0 which covers the case for administrators | mandatory true; | |||
who want all Signature Blocks to be sent to a single destination."; | description | |||
list cert-signer { | "This choice describes the transport option."; | |||
key "name"; | case tcp { | |||
description | container tcp { | |||
"This list describes a collection of syslog message | description | |||
signers."; | "This container describes the TCP transport | |||
leaf name { | options."; | |||
type string; | reference | |||
description | "RFC 6587: Transmission of Syslog Messages over | |||
"This leaf specifies the name of the syslog message | TCP"; | |||
signer."; | leaf address { | |||
} | type inet:host; | |||
leaf certificate { | description | |||
type leafref { | "The leaf uniquely specifies the address of | |||
path "/ks:keystore/ks:keys/ks:key/ks:certificates" | the remote host. One of the following must | |||
+ "/ks:certificate/ks:name"; | be specified: an ipv4 address, an ipv6 | |||
} | address, or a host name."; | |||
description | } | |||
"This is the certificate that is periodically sent to the remote | leaf port { | |||
receiver. Selection of the certificate also implicitly selects | type inet:port-number; | |||
the private key used to sign the syslog messages."; | default 514; | |||
} | description | |||
leaf hash-algorithm { | "This leaf specifies the port number used to | |||
type enumeration { | deliver messages to the remote server."; | |||
enum SHA1 { | } | |||
value 1; | } | |||
description | } | |||
"This enum describes the SHA1 algorithm."; | case udp { | |||
} | container udp { | |||
enum SHA256 { | description | |||
value 2; | "This container describes the UDP transport | |||
description | options."; | |||
"This enum describes the SHA256 algorithm."; | reference | |||
} | "RFC 5426: Transmission of Syslog Messages over | |||
} | UDP"; | |||
description | leaf address { | |||
"This leaf describes the syslog signer hash | type inet:host; | |||
algorithm used."; | description | |||
} | "The leaf uniquely specifies the address of | |||
} | the remote host. One of the following must be | |||
leaf cert-initial-repeat { | specified: an ipv4 address, an ipv6 address, | |||
type uint32; | or a host name."; | |||
default 3; | } | |||
description | leaf port { | |||
"This leaf specifies the number of times each | type inet:port-number; | |||
Certificate Block should be sent before the first | default 514; | |||
message is sent."; | description | |||
} | "This leaf specifies the port number used to | |||
leaf cert-resend-delay { | deliver messages to the remote server."; | |||
type uint32; | } | |||
units "seconds"; | } | |||
default 3600; | } | |||
description | case tls { | |||
"This leaf specifies the maximum time delay in | container tls { | |||
seconds until resending the Certificate Block."; | description | |||
} | "This container describes the TLS transport | |||
leaf cert-resend-count { | options."; | |||
type uint32; | reference | |||
default 0; | "RFC 5425: Transport Layer Security (TLS) | |||
description | Transport Mapping for Syslog "; | |||
"This leaf specifies the maximum number of other | leaf address { | |||
syslog messages to send until resending the | type inet:host; | |||
Certificate Block."; | description | |||
} | "The leaf uniquely specifies the address of | |||
leaf sig-max-delay { | the remote host. One of the following must be | |||
type uint32; | specified: an ipv4 address, an ipv6 address, | |||
units "seconds"; | or a host name."; | |||
default 60; | } | |||
description | leaf port { | |||
"This leaf specifies when to generate a new | type inet:port-number; | |||
Signature Block. If this many seconds have | default 6514; | |||
elapsed since the message with the first message | description | |||
number of the Signature Block was sent, a new | "TCP port 6514 has been allocated as the default | |||
Signature Block should be generated."; | port for syslog over TLS."; | |||
} | } | |||
leaf sig-number-resends { | uses tlsc:tls-client-grouping; | |||
type uint32; | } | |||
default 0; | } | |||
description | } | |||
"This leaf specifies the number of times a | uses selector; | |||
Signature Block is resent. (It is recommended to | uses structured-data; | |||
select a value of greater than 0 in particular | leaf facility-override { | |||
when the UDP transport [RFC5426] is used.)."; | type identityref { | |||
} | base syslog-facility; | |||
leaf sig-resend-delay { | } | |||
type uint32; | description | |||
units "seconds"; | "If specified, this leaf specifies the facility used | |||
default 5; | to override the facility in messages delivered to | |||
description | the remote server."; | |||
"This leaf specifies when to send the next | } | |||
Signature Block transmission based on time. If | leaf source-interface { | |||
this many seconds have elapsed since the previous | if-feature remote-source-interface; | |||
sending of this Signature Block, resend it."; | type if:interface-ref; | |||
} | description | |||
leaf sig-resend-count { | "This leaf sets the source interface to be used to | |||
type uint32; | send messages to the remote syslog server. If not | |||
default 0; | set, messages sent to a remote syslog server will | |||
description | contain the IP address of the interface the syslog | |||
"This leaf specifies when to send the next | message uses to exit the network element"; | |||
Signature Block transmission based on a count. | } | |||
If this many other syslog messages have been sent | container signing-options { | |||
since the previous sending of this Signature | if-feature signed-messages; | |||
Block, resend it. A value of 0 means that you | presence | |||
don't resend based on the number of messages."; | "If present, syslog-signing options is activated."; | |||
} | description | |||
} | "This container describes the configuration | |||
} | parameters for signed syslog messages as described | |||
} | by RFC 5848."; | |||
} | reference | |||
} | "RFC 5848: Signed Syslog Messages"; | |||
} | container cert-signers { | |||
} | description | |||
<CODE ENDS> | "This container describes the signing certificate | |||
configuration for Signature Group 0 which covers | ||||
the case for administrators who want all Signature | ||||
Blocks to be sent to a single destination."; | ||||
list cert-signer { | ||||
key "name"; | ||||
description | ||||
"This list describes a collection of syslog | ||||
message signers."; | ||||
leaf name { | ||||
type string; | ||||
description | ||||
"This leaf specifies the name of the syslog | ||||
message signer."; | ||||
} | ||||
leaf certificate { | ||||
type leafref { | ||||
path "/ks:keystore/ks:keys/ks:key/ks:certificates" | ||||
+ "/ks:certificate/ks:name"; | ||||
} | ||||
description | ||||
"This is the certificate that is periodically | ||||
sent to the remote receiver. Selection of the | ||||
certificate also implicitly selects the private | ||||
key used to sign the syslog messages."; | ||||
} | ||||
leaf hash-algorithm { | ||||
type enumeration { | ||||
enum SHA1 { | ||||
value 1; | ||||
description | ||||
"This enum describes the SHA1 algorithm."; | ||||
} | ||||
enum SHA256 { | ||||
value 2; | ||||
description | ||||
"This enum describes the SHA256 algorithm."; | ||||
} | ||||
} | ||||
description | ||||
"This leaf describes the syslog signer hash | ||||
algorithm used."; | ||||
} | ||||
} | ||||
leaf cert-initial-repeat { | ||||
type uint32; | ||||
default 3; | ||||
description | ||||
"This leaf specifies the number of times each | ||||
Certificate Block should be sent before the first | ||||
message is sent."; | ||||
} | ||||
leaf cert-resend-delay { | ||||
type uint32; | ||||
units "seconds"; | ||||
default 3600; | ||||
description | ||||
"This leaf specifies the maximum time delay in | ||||
seconds until resending the Certificate Block."; | ||||
} | ||||
leaf cert-resend-count { | ||||
type uint32; | ||||
default 0; | ||||
description | ||||
"This leaf specifies the maximum number of other | ||||
syslog messages to send until resending the | ||||
Certificate Block."; | ||||
} | ||||
leaf sig-max-delay { | ||||
type uint32; | ||||
units "seconds"; | ||||
default 60; | ||||
description | ||||
"This leaf specifies when to generate a new | ||||
Signature Block. If this many seconds have | ||||
elapsed since the message with the first message | ||||
number of the Signature Block was sent, a new | ||||
Signature Block should be generated."; | ||||
} | ||||
leaf sig-number-resends { | ||||
type uint32; | ||||
default 0; | ||||
description | ||||
"This leaf specifies the number of times a | ||||
Signature Block is resent. (It is recommended to | ||||
select a value of greater than 0 in particular | ||||
when the UDP transport RFC 5426 is used.)."; | ||||
} | ||||
leaf sig-resend-delay { | ||||
type uint32; | ||||
units "seconds"; | ||||
default 5; | ||||
description | ||||
"This leaf specifies when to send the next | ||||
Signature Block transmission based on time. If | ||||
this many seconds have elapsed since the previous | ||||
sending of this Signature Block, resend it."; | ||||
} | ||||
leaf sig-resend-count { | ||||
type uint32; | ||||
default 0; | ||||
description | ||||
"This leaf specifies when to send the next | ||||
Signature Block transmission based on a count. | ||||
If this many other syslog messages have been | ||||
sent since the previous sending of this | ||||
Signature Block, resend it. A value of 0 means | ||||
that you don't resend based on the number of | ||||
messages."; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
<CODE ENDS> | ||||
Figure 3. ietf-syslog Module | Figure 3. ietf-syslog Module | |||
5. Usage Examples | 5. Usage Examples | |||
Requirement: | Requirement: | |||
Enable console logging of syslogs of severity critical | Enable console logging of syslogs of severity critical | |||
Here is the example syslog configuration xml: | Here is the example syslog configuration xml: | |||
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog" | <syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog" | |||
xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | |||
<actions> | <actions> | |||
<console> | <console> | |||
<facility-filter> | <facility-filter> | |||
<facility-list> | <facility-list> | |||
<facility>all</facility> | <facility>all</facility> | |||
<severity>critical</severity> | <severity>critical</severity> | |||
</facility-list> | </facility-list> | |||
</facility-filter> | </facility-filter> | |||
</console> | </console> | |||
</actions> | </actions> | |||
</syslog> | </syslog> | |||
</config> | </config> | |||
Enable remote logging of syslogs to udp destination 2001:db8:a0b:12f0::1 | Enable remote logging of syslogs to udp destination 2001:db8:a0b:12f0::1 | |||
for facility auth, severity error | for facility auth, severity error | |||
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog" | <syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog" | |||
xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | xmlns:syslog="urn:ietf:params:xml:ns:yang:ietf-syslog"> | |||
<actions> | <actions> | |||
<remote> | <remote> | |||
<destination> | <destination> | |||
<name>remote1</name> | <name>remote1</name> | |||
<udp> | <udp> | |||
<address>2001:db8:a0b:12f0::1</address> | <address>2001:db8:a0b:12f0::1</address> | |||
</udp> | </udp> | |||
<facility-filter> | <facility-filter> | |||
<facility-list> | <facility-list> | |||
<facility>auth</facility> | <facility>auth</facility> | |||
<severity>error</severity> | <severity>error</severity> | |||
</facility-list> | </facility-list> | |||
</facility-filter> | </facility-filter> | |||
</destination> | </destination> | |||
</remote> | </remote> | |||
</actions> | </actions> | |||
</syslog> | </syslog> | |||
</config> | </config> | |||
Figure 4. ietf-syslog Examples | Figure 4. ietf-syslog Examples | |||
6. Acknowledgements | 6. Acknowledgements | |||
The authors wish to thank the following who commented on this | The authors wish to thank the following who commented on this | |||
proposal: | proposal: | |||
Andy Bierman | Andy Bierman | |||
Martin Bjorklund | Martin Bjorklund | |||
Alex Campbell | Alex Campbell | |||
Alex Clemm | Alex Clemm | |||
Jim Gibson | Jim Gibson | |||
Jeffrey Haas | Jeffrey Haas | |||
John Heasley | John Heasley | |||
Giles Heron | Giles Heron | |||
Lisa Huang | Lisa Huang | |||
Mahesh Jethanandani | Mahesh Jethanandani | |||
Jeffrey K Lange | Jeffrey K Lange | |||
Jan Lindblad | Jan Lindblad | |||
Chris Lonvick | Chris Lonvick | |||
Tom Petch | Tom Petch | |||
Juergen Schoenwaelder | Juergen Schoenwaelder | |||
Phil Shafer | Phil Shafer | |||
Jason Sterne | Jason Sterne | |||
Peter Van Horne | Peter Van Horne | |||
Kent Watsen | Kent Watsen | |||
Bert Wijnen | Bert Wijnen | |||
Dale R Worley | Dale R Worley | |||
Aleksandr Zhdankin | Aleksandr Zhdankin | |||
7. IANA Considerations | 7. IANA Considerations | |||
This document registers one URI in the IETF XML registry [RFC3688]. | This document registers one URI in the IETF XML registry [RFC3688]. | |||
Following the format in [RFC3688], the following registration is | ||||
requested: | ||||
Following the format in RFC 3688, the following registration is | URI: urn:ietf:params:xml:ns:yang:ietf-syslog | |||
requested to be made: | Registrant Contact: The NETCONF WG of the IETF. | |||
XML: N/A, the requested URI is an XML namespace. | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-syslog | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
This document registers a YANG module in the YANG Module Names | ||||
registry [RFC7950]. | ||||
name: ietf-syslog namespace: urn:ietf:params:xml:ns:yang:ietf-syslog | 7.1. The YANG Module Names Registry | |||
prefix: ietf-syslog | This document registers one YANG module in the YANG Module Names | |||
registry [RFC7895]/>. Following the format in [RFC7950]/>, the the | ||||
following registration is requested: | ||||
reference: RFC zzzz | name: ietf-syslog | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-syslog | ||||
prefix: ietf-syslog | ||||
reference: RFC zzzz | ||||
8. Security Considerations | 8. Security Considerations | |||
The YANG module defined in this document is designed to be accessed | The YANG module defined in this document is designed to be accessed | |||
via YANG based management protocols, such as NETCONF [RFC6241] and | via YANG based management protocols, such as NETCONF [RFC6241] and | |||
RESTCONF [RFC8040]. Both of these protocols have mandatory-to- | RESTCONF [RFC8040]. Both of these protocols have mandatory-to- | |||
implement secure transport layers (e.g., SSH, TLS) with mutual | implement secure transport layers (e.g., SSH, TLS) with mutual | |||
authentication. | authentication. | |||
The NETCONF access control model (NACM) [RFC6536] provides the means | The NETCONF access control model (NACM) [RFC6536] provides the means | |||
skipping to change at page 27, line 34 ¶ | skipping to change at page 30, line 18 ¶ | |||
8.2. Inappropriate Configuration | 8.2. Inappropriate Configuration | |||
It is the responsibility of the network administrator to ensure that | It is the responsibility of the network administrator to ensure that | |||
the messages are actually going to the intended recipients. | the messages are actually going to the intended recipients. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[IEEE.1003.1_2013_EDITION] | ||||
IEEE, "Standard for Information TechnologyPortable | ||||
Operating System Interface (POSIX(R)) Base Specifications, | ||||
Issue 7", IEEE 1003.1, 2013 Edition, DOI 10.1109/ | ||||
ieeestd.2013.6506091, April 2013, <http:// | ||||
ieeexplore.ieee.org/servlet/opac?punumber=6506089>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, | |||
RFC2119, March 1997, <http://www.rfc-editor.org/info/ | DOI 10.17487/RFC2119, March 1997, | |||
rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC5424] Gerhards, R., "The Syslog Protocol", RFC 5424, DOI | [RFC5424] Gerhards, R., "The Syslog Protocol", RFC 5424, | |||
10.17487/RFC5424, March 2009, <http://www.rfc-editor.org/ | DOI 10.17487/RFC5424, March 2009, | |||
info/rfc5424>. | <https://www.rfc-editor.org/info/rfc5424>. | |||
[RFC5426] Okmianski, A., "Transmission of Syslog Messages over UDP", | [RFC5426] Okmianski, A., "Transmission of Syslog Messages over UDP", | |||
RFC 5426, DOI 10.17487/RFC5426, March 2009, <http://www | RFC 5426, DOI 10.17487/RFC5426, March 2009, | |||
.rfc-editor.org/info/rfc5426>. | <https://www.rfc-editor.org/info/rfc5426>. | |||
[RFC5848] Kelsey, J., Callas, J. and A. Clemm, "Signed Syslog | [RFC5848] Kelsey, J., Callas, J., and A. Clemm, "Signed Syslog | |||
Messages", RFC 5848, DOI 10.17487/RFC5848, May 2010, | Messages", RFC 5848, DOI 10.17487/RFC5848, May 2010, | |||
<http://www.rfc-editor.org/info/rfc5848>. | <https://www.rfc-editor.org/info/rfc5848>. | |||
[RFC6021] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC | [RFC6021] Schoenwaelder, J., Ed., "Common YANG Data Types", | |||
6021, DOI 10.17487/RFC6021, October 2010, <http://www.rfc- | RFC 6021, DOI 10.17487/RFC6021, October 2010, | |||
editor.org/info/rfc6021>. | <https://www.rfc-editor.org/info/rfc6021>. | |||
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration | ||||
Protocol (NETCONF) Access Control Model", RFC 6536, | ||||
DOI 10.17487/RFC6536, March 2012, | ||||
<https://www.rfc-editor.org/info/rfc6536>. | ||||
[RFC6587] Gerhards, R. and C. Lonvick, "Transmission of Syslog | [RFC6587] Gerhards, R. and C. Lonvick, "Transmission of Syslog | |||
Messages over TCP", RFC 6587, DOI 10.17487/RFC6587, April | Messages over TCP", RFC 6587, DOI 10.17487/RFC6587, April | |||
2012, <http://www.rfc-editor.org/info/rfc6587>. | 2012, <https://www.rfc-editor.org/info/rfc6587>. | |||
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface | [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | |||
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | |||
<http://www.rfc-editor.org/info/rfc7223>. | <https://www.rfc-editor.org/info/rfc7223>. | |||
[RFC7895] Bierman, A., Bjorklund, M., and K. Watsen, "YANG Module | ||||
Library", RFC 7895, DOI 10.17487/RFC7895, June 2016, | ||||
<https://www.rfc-editor.org/info/rfc7895>. | ||||
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
RFC 7950, DOI 10.17487/RFC7950, August 2016, <http://www | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <http://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[Std-1003.1-2008] | ||||
The Open Group, ""Chapter 9: Regular Expressions". The | ||||
Open Group Base Specifications Issue 6, IEEE Std | ||||
1003.1-2008, 2016 Edition.", September 2016, | ||||
<http://pubs.opengroup.org/onlinepubs/9699919799/>. | ||||
9.2. Informative References | 9.2. Informative References | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, <http://www.rfc- | DOI 10.17487/RFC3688, January 2004, | |||
editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J.Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
<http://www.rfc-editor.org/info/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | |||
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | |||
<http://www.rfc-editor.org/info/rfc6242>. | <https://www.rfc-editor.org/info/rfc6242>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
Appendix A. Implementor Guidelines | Appendix A. Implementor Guidelines | |||
Appendix A.1. Extending Facilities | A.1. Extending Facilities | |||
Many vendors extend the list of facilities available for logging in | Many vendors extend the list of facilities available for logging in | |||
their implementation. Additional facilities may not work with the | their implementation. Additional facilities may not work with the | |||
syslog protocol as defined in [RFC5424] and hence such facilities | syslog protocol as defined in [RFC5424] and hence such facilities | |||
apply for local syslog-like logging functionality. | apply for local syslog-like logging functionality. | |||
The following is an example that shows how additional facilities | The following is an example that shows how additional facilities | |||
could be added to the list of available facilities (in this example | could be added to the list of available facilities (in this example | |||
two facilities are added): | two facilities are added): | |||
skipping to change at page 29, line 42 ¶ | skipping to change at page 33, line 7 ¶ | |||
base syslogtypes:syslog-facility; | base syslogtypes:syslog-facility; | |||
} | } | |||
identity vendor_specific_type_2 { | identity vendor_specific_type_2 { | |||
base syslogtypes:syslog-facility; | base syslogtypes:syslog-facility; | |||
} | } | |||
} | } | |||
Authors' Addresses | Authors' Addresses | |||
Clyde Wildes, editor | Clyde Wildes (editor) | |||
Cisco Systems Inc. | Cisco Systems Inc. | |||
170 West Tasman Drive | 170 West Tasman Drive | |||
San Jose, CA 95134 | San Jose, CA 95134 | |||
US | US | |||
Phone: +1 408 527-2672 | Phone: +1 408 527-2672 | |||
Email: cwildes@cisco.com | EMail: cwildes@cisco.com | |||
Kiran Koushik, editor | ||||
Kiran Koushik (editor) | ||||
Verizon Wireless | Verizon Wireless | |||
500 W Dove Rd. | 500 W Dove Rd. | |||
Southlake, TX 76092 | Southlake, TX 76092 | |||
US | US | |||
Phone: +1 512 650-0210 | Phone: +1 512 650-0210 | |||
Email: kirankoushik.agraharasreenivasa@verizonwireless.com | EMail: kirankoushik.agraharasreenivasa@verizonwireless.com | |||
End of changes. 130 change blocks. | ||||
930 lines changed or deleted | 987 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |