rfc9742xml2.original.xml | rfc9742.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<?rfc toc="yes"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc sortrefs="yes" ?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<?rfc linkmailto="no" ?> | ||||
<?rfc editing="no" ?> | ||||
<?rfc comments="yes" ?> | ||||
<?rfc inline="yes"?> | ||||
<?rfc rfcedstyle="yes"?> | ||||
<?rfc-ext allow-markup-in-artwork="yes" ?> | ||||
<?rfc-ext include-index="no" ?> | ||||
<!--<?rfc strict="no"?> --> | ||||
<rfc | ||||
category="std" | ||||
docName="draft-ietf-netmod-syslog-model-33" | ||||
ipr="trust200902" | ||||
submissionType="IETF" | ||||
consensus="true"> | ||||
<?rfc toc="yes"?> | ||||
<front> | <!DOCTYPE rfc [ | |||
<title abbrev="Syslog Management">A YANG Data Model for Syslog | <!ENTITY nbsp " "> | |||
Configuration</title> | <!ENTITY zwsp "​"> | |||
<!ENTITY nbhy "‑"> | ||||
<!ENTITY wj "⁠"> | ||||
]> | ||||
<author fullname="Joe Clarke" | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie | |||
initials="J" | tf-netmod-syslog-model-33" number="9742" obsoletes="" updates="" ipr="trust20090 | |||
role="editor" | 2" submissionType="IETF" consensus="true" tocInclude="true" symRefs="true" sortR | |||
surname="Clarke"> | efs="true" version="3" xml:lang="en"> | |||
<organization>Cisco</organization> | ||||
<front> | ||||
<title abbrev="Syslog Management">A YANG Data Model for Syslog Configuration | ||||
</title> | ||||
<seriesInfo name="RFC" value="9742"/> | ||||
<author fullname="Joe Clarke" initials="J" role="editor" surname="Clarke"> | ||||
<organization>Cisco</organization> | ||||
<address> | <address> | |||
<postal> | <postal> | |||
<country>US</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>jclarke@cisco.com</email> | <email>jclarke@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Mahesh Jethanandani" initials="M" role="editor" surname="J | ||||
<author fullname="Mahesh Jethanandani" | ethanandani"> | |||
initials="M" | ||||
role="editor" | ||||
surname="Jethanandani"> | ||||
<organization>Kloud Services</organization> | <organization>Kloud Services</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<country>US</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<email>mjethanandani@gmail.com</email> | <email>mjethanandani@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Clyde Wildes" initials="C" role="editor" surname="Wildes"> | <author fullname="Clyde Wildes" initials="C" role="editor" surname="Wildes"> | |||
<organization>Cisco Systems Inc.</organization> | <organization>Cisco Systems Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>170 West Tasman Drive</street> | <street>170 West Tasman Drive</street> | |||
<city>San Jose</city> | <city>San Jose</city> | |||
<region>CA</region> | <region>CA</region> | |||
<code>95134</code> | <code>95134</code> | |||
<country>US</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<phone>+1 415 819-6111</phone> | <phone>+1 415 819-6111</phone> | |||
<email>clyde@clydewildes.com</email> | <email>clyde@clydewildes.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Kiran Koushik" initials="K" role="editor" surname="Koushik "> | <author fullname="Kiran Koushik" initials="K" role="editor" surname="Koushik "> | |||
<organization>Verizon Wireless</organization> | <organization>Verizon Wireless</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>500 W Dove Rd.</street> | <street>500 W Dove Rd.</street> | |||
<city>Southlake</city> | <city>Southlake</city> | |||
<region>TX</region> | <region>TX</region> | |||
<code>76092</code> | <code>76092</code> | |||
<country>United States of America</country> | ||||
<country>US</country> | ||||
</postal> | </postal> | |||
<phone>+1 512 650-0210</phone> | <phone>+1 512 650-0210</phone> | |||
<email>kirankoushik.agraharasreenivasa@verizonwireless.com</email> | <email>kirankoushik.agraharasreenivasa@verizonwireless.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="March" year="2025"/> | ||||
<area>OPS</area> | ||||
<workgroup>netmod</workgroup> | ||||
<date/> | <!-- [rfced] Please insert any keywords (beyond those that appear in | |||
the title) for use on https://www.rfc-editor.org/search. --> | ||||
<area>General</area> | <keyword>example</keyword> | |||
<!--[rfced] We have received guidance from Benoit Claise and the YANG | ||||
Doctors that "YANG module" and "YANG data model" are preferred. | ||||
We have updated the text to use these forms. Please review. | ||||
--> | ||||
<workgroup>NETMOD WG</workgroup> | <!-- [rfced] Some author comments are present in the XML. Please confirm | |||
that no updates related to these comments are outstanding. Note that the | ||||
comments will be deleted prior to publication. | ||||
--> | ||||
<abstract> | <abstract> | |||
<t> | <t> | |||
This document defines a YANG data model for the configuration | This document defines a YANG data model for the configuration | |||
of a syslog process. It is intended that this model be used by | of a syslog process. It is intended that this data model be used by | |||
vendors who implement syslog collectors in their systems. | vendors who implement syslog collectors in their systems. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction"> | <section> | |||
<name>Introduction</name> | ||||
<t>This document defines a YANG <xref target="RFC7950"/> | <t>This document defines a YANG <xref target="RFC7950"/> | |||
configuration | configuration | |||
data model that may be used to configure the syslog feature running on a | data model that may be used to configure the syslog feature running on a | |||
system. YANG models can be used with network management protocols | system. YANG data models can be used with network management protocols | |||
such as NETCONF <xref target="RFC6241"/> | such as NETCONF <xref target="RFC6241"/> | |||
to install, manipulate, and | to install, manipulate, and | |||
delete the configuration of network devices.</t> | delete the configuration of network devices.</t> | |||
<t>The data model makes use of the YANG "feature" construct that allows | ||||
<t>The data model makes use of the YANG "feature" construct which allows | ||||
implementations to support only those syslog features that lie within | implementations to support only those syslog features that lie within | |||
their capabilities.</t> | their capabilities.</t> | |||
<t> | <t> | |||
This module can be used to configure the syslog application | This module can be used to configure the syslog application | |||
conceptual layers as implemented on the syslog collector. | conceptual layers as implemented on the syslog collector. | |||
</t> | </t> | |||
<t>Essentially, a syslog process receives messages (from the kernel, | ||||
<t>Essentially, a syslog process receives messages (from the kernel, | processes, applications, or other syslog processes) and processes them. | |||
processes, applications or other syslog processes) and processes them. | The processing may involve logging to a local file, displaying on | |||
The processing may involve logging to a local file, and/or displaying on | ||||
console, and/or relaying to syslog processes on other machines. The | console, and/or relaying to syslog processes on other machines. The | |||
processing is determined by the "facility" that originated the message | process is determined by the "facility" that originated the message | |||
and the "severity" assigned to the message by the facility.</t> | and the "severity" assigned to the message by the facility.</t> | |||
<t>Such definitions of syslog protocol are defined in | ||||
<t>Such definitions of syslog protocol are defined in | <xref target="RFC5424"/> and are used in this RFC.</t> | |||
<xref target="RFC5424"/> | <t>The YANG data model in this document conforms to the Network Management | |||
, and are used in this RFC.</t> | Datastore Architecture defined in <xref target="RFC8342"/>.</t> | |||
<section> | ||||
<t>The YANG model in this document conforms to the Network Management | <name>Requirements Language</name> | |||
Datastore Architecture defined in | <t> | |||
[RFC8342].</t> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
<section title="Requirements Language"> | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | to be interpreted as described in BCP 14 <xref target="RFC2119"/> | |||
14 <xref target="RFC2119"/> | <xref target="RFC8174"/> when, and only when, they appear in all capitals, | |||
<xref target="RFC8174"/> | as shown here. | |||
when, and only | </t> | |||
when, they appear in all capitals, as shown here.</t> | </section> | |||
</section> | </section> | |||
</section> | <section> | |||
<name>Terminology</name> | ||||
<section title="Terminology"> | <t> | |||
<t> | ||||
The following terms are used throughout this document: | The following terms are used throughout this document: | |||
</t> | </t> | |||
<ul> | <dl spacing="normal" newline="false"> | |||
<li> | <dt>Originator:</dt><dd>An "originator" refers to an entity that generates | |||
Originator: an "originator" refers to an entity that generates | ||||
syslog content to be carried in a message. The term is defined | syslog content to be carried in a message. The term is defined | |||
in <xref target="RFC5424"/> | in <xref target="RFC5424"/>.</dd> | |||
</li> | ||||
<li> | <dt>Relay:</dt> <dd>A "relay" is an entity that forwards syslog messages. | |||
Relay: A "relay" is an entity that forwards syslog messages. It | It | |||
accepts messages from originators or other relays and sends them | accepts messages from originators or other relays and sends them | |||
to collectors or other relays. The term is defined in <xref | to collectors or other relays. The term is defined in <xref target="RFC542 | |||
target="RFC5424"/> | 4"/>.</dd> | |||
</li> | ||||
<li> | ||||
Collector: A "collector" gathers syslog content for | ||||
further analysis. The term is defined in <xref | ||||
target="RFC5424"/>. | ||||
</li> | ||||
<li> | ||||
Action: The term "action" refers to the processing that takes | ||||
place for each syslog message received. | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
<section title="NMDA Compliance"> | ||||
<t>The YANG model in this document conforms to the Network Management | ||||
Datastore Architecture defined in | ||||
<xref target="RFC8342"/> | ||||
. | ||||
</t> | ||||
</section> | ||||
<section title="Editorial Note (To be removed by RFC Editor)"> | ||||
<t>This document contains many placeholder values that need to be | ||||
replaced with finalized values at the time of publication. This note | ||||
summarizes all of the substitutions that are needed. No other RFC | ||||
Editor instructions are specified elsewhere in this document.</t> | ||||
<t>Artwork in this document contains shorthand references to drafts in | ||||
progress. Please apply the following replacements: <list style="symbols" | ||||
> | ||||
<t> | ||||
<spanx style="verb">I-D.ietf-netconf-crypto-types</spanx> --> | ||||
the assigned RFC value for draft-ietf-netconf-crypto-types</t> | ||||
<t> | ||||
<spanx style="verb">I-D.ietf-netconf-tls-client-server</spanx> | ||||
--> the assigned RFC value for | ||||
draft-ietf-netconf-tls-client-server</t> | ||||
<t> | <dt>Collector:</dt> <dd>A "collector" gathers syslog content for | |||
<spanx style="verb">zzzz</spanx> --> the assigned RFC value | further analysis. The term is defined in <xref target="RFC5424"/>.</dd> | |||
for this draft</t> | ||||
</list> | ||||
</t> | ||||
</section> | ||||
<section title="Design of the Syslog Model"> | <dt>Action:</dt> <dd>The term "action" refers to the process that takes | |||
<t> | place for each syslog message received.</dd> | |||
</dl> | ||||
</section> | ||||
<section> | ||||
<name>NMDA Compliance</name> | ||||
<t>The YANG data model in this document conforms to the Network Management | ||||
Datastore Architecture (NMDA) defined in | ||||
<xref target="RFC8342"/>. | ||||
</t> | ||||
</section> | ||||
<section> | ||||
<name>Design of the Syslog Model</name> | ||||
<t> | ||||
The syslog model was designed by comparing various syslog features | The syslog model was designed by comparing various syslog features | |||
implemented by various vendors' in different implementations. | implemented by various vendors in different implementations. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
The module defines leafs that are common across | The module defines leafs that are common across | |||
implementations. Its simple design is meant to offer maximum | implementations. Its simple design is meant to offer maximum | |||
flexibility. However, not all optional features defined in this | flexibility. However, not all optional features defined in this | |||
document are present in all vendor implementations. Vendors | document are present in all vendor implementations. Therefore, vendors | |||
therefore, need to use the feature statements to specify the | need to use the feature statements to specify the | |||
optional features they support. At the same time, vendors can | optional features they support. At the same time, vendors can | |||
augment the model to add proprietary features. <xref | augment the model to add proprietary features. <xref target="extending_facil | |||
target="extending_facilities">Extending Facilities</xref> shows an | ities">Extending Facilities</xref> shows an | |||
examples of how that can be realized. | examples of how that can be realized. | |||
</t> | </t> | |||
<t>Syslog consists of originators and collectors. The following diagram | ||||
<t>Syslog consists of originators and collectors. The following diagram | shows syslog messages flowing from originators to collectors where | |||
shows syslog messages flowing from originators, to collectors where | ||||
filtering can take place.</t> | filtering can take place.</t> | |||
<figure> | <figure title="Syslog Processing Flow"><artwork name="Syslog Process Flow" | |||
<artwork align="left"><![CDATA[ | align="left"><![CDATA[ | |||
Originators | Originators | |||
+-------------+ +-------------+ +-------------+ +-------------+ | +-------------+ +-------------+ +-------------+ +-------------+ | |||
| Various | | OS | | | | Remote | | | Various | | OS | | | | Remote | | |||
| Components | | Kernel | | Line Cards | | Servers | | | Components | | Kernel | | Line Cards | | Servers | | |||
+-------------+ +-------------+ +-------------+ +-------------+ | +-------------+ +-------------+ +-------------+ +-------------+ | |||
+-------------+ +-------------+ +-------------+ +-------------+ | +-------------+ +-------------+ +-------------+ +-------------+ | |||
| SNMP | | Interface | | Standby | | Syslog | | | SNMP | | Interface | | Standby | | Syslog | | |||
| Events | | Events | | Supervisor | | Itself | | | Events | | Events | | Supervisor | | Itself | | |||
+-------------+ +-------------+ +-------------+ +-------------+ | +-------------+ +-------------+ +-------------+ +-------------+ | |||
skipping to change at line 266 ¶ | skipping to change at line 201 ¶ | |||
| | | | |||
| | | | |||
| | | | |||
+-------------+--------------+ | +-------------+--------------+ | |||
| | | | | | | | |||
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) | | |||
+----------+ +----------+ +----------------+ | +----------+ +----------+ +----------------+]]></artwork></figure> | |||
]]> </artwork> | <t>Collectors are configured using the leaves in the syslog model | |||
"actions" container that correspond to each message collector:</t> | ||||
<postamble>Figure 1. Syslog Processing Flow</postamble> | <ul spacing="normal"> | |||
</figure> | <li> | |||
<t>console</t> | ||||
</li> | ||||
<li> | ||||
<t>log file(s)</t> | ||||
</li> | ||||
<li> | ||||
<t>remote relay(s)/collector(s)</t> | ||||
</li> | ||||
</ul> | ||||
<!-- [rfced] What field is "[RFC5424] field" referring to in this sentence? | ||||
<t>Collectors are configured using the leaves in the syslog model | Original: | |||
"actions" container which correspond to each message collector:</t> | Within each action, a selector is used to filter syslog messages. A | |||
selector consists of a list of one or more filters specified by | ||||
facility-severity pairs, and, if supported via the select-match | ||||
feature, an optional regular expression pattern match that is | ||||
performed on the [RFC5424] field. | ||||
--> | ||||
<t>Within each action, a selector is used to filter syslog messages. A | ||||
selector consists of a list of one or more filters specified by | ||||
facility-severity pairs, and, if supported via the select-match feature, | ||||
an optional regular expression pattern match that is performed on the | ||||
<xref target="RFC5424"/> field.</t> | ||||
<t>A syslog message is processed if: </t> | ||||
<t> | <!-- [rfced] This text has been changed from an artwork element | |||
<list style="empty"> | to a sourcecode element with type="pseudocode". Please let us | |||
<t>console</t> | know if you prefer to change it to running text (within a <t> | |||
element). | ||||
<t>log file(s)</t> | Original: | |||
A syslog message is processed if: | ||||
<t>remote relay(s)/collector(s)</t> | There is an element of facility-list (F, S) where | |||
</list> | the message facility matches F | |||
</t> | and the message severity matches S | |||
and/or the message text matches the regex pattern (if it | ||||
is present) | ||||
<t>Within each action, a selector is used to filter syslog messages. A | Perhaps: | |||
selector consists of a list of one or more filters specified by | A syslog message is processed if there is an element of facility-list | |||
facility-severity pairs, and, if supported via the select-match feature, | (F, S) where the message facility matches F, the message severity | |||
an optional regular expression pattern match that is performed on the <xre | matches S, and/or the message text matches the regex pattern (if it | |||
f target="RFC5424"/> | is present). | |||
field.</t> | --> | |||
<t>A syslog message is processed if: <figure> | <sourcecode type="pseudocode"><![CDATA[ | |||
<artwork><![CDATA[ | ||||
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 | the message facility matches F | |||
and the message severity matches S | and the message severity matches S | |||
and/or the message text matches the regex pattern (if it | and/or the message text matches the regex pattern (if it | |||
is present) | is present)]]></sourcecode> | |||
]]> </artwork> | ||||
</figure> | ||||
</t> | ||||
<t>The facility is one of a specific syslog-facility, or all | <t>The facility is one of a specific syslog-facility or all | |||
facilities.</t> | facilities.</t> | |||
<t> | <t> | |||
The model offers the ability to select a transport that a user | The model offers the ability to select a transport that a user | |||
might want to use for a remote relay or collector. The choice | might want to use for a remote relay or collector. The choice | |||
is between using UDP, or TLS based sessions. The user can | is between using UDP or TLS-based sessions. The user can | |||
configure multiple relays or collectors, but they have to use | configure multiple relays or collectors, but they have to use | |||
the same transport. | the same transport. | |||
</t> | </t> | |||
<t>The severity is one of type syslog-severity, all severities, or none. | <t>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 shown | specified severity and higher are selected to be logged. This is shown | |||
in the model as "default equals-or-higher". This behavior can be altered | in the model as "default equals-or-higher". This behavior can be altered | |||
if the select-adv-compare feature is enabled to specify a compare | if the select-adv-compare feature is enabled to specify a compare | |||
operation and an action. Compare operations are: "equals" to select | operation and an action. Compare operations are: "equals" to select | |||
messages with this single severity, or "equals-or-higher" to select | messages with this single severity, or "equals-or-higher" to select | |||
messages of the specified severity and higher. Actions are used to log | messages of the specified severity and higher. Actions are used to log | |||
the message, block the message, or stop the message from being logged.</t> | the message, block the message, or stop the message from being logged.</t> | |||
<t> | <t> | |||
Many vendors extend the list of facilities available for | Many vendors extend the list of facilities available for | |||
logging in their implementation. An example is included in | logging in their implementation. An example is included in "Extending Fac | |||
<xref target="extending_facilities">Extending | ilities" | |||
Facilities</xref>. | (<xref target="extending_facilities"/>). | |||
</t> | </t> | |||
<section> | ||||
<section title="Syslog Module"> | <name>Syslog Module</name> | |||
<t> | <t> | |||
A simplified tree representation of the data model is used in | A simplified tree representation of the data model is used in | |||
this document. Please see <xref target="RFC8340"/> for tree | this document. Please see <xref target="RFC8340"/> for tree | |||
diagram notation. | diagram notation. | |||
</t> | </t> | |||
<figure> | ||||
<name>Tree Diagram for Syslog Model</name> | ||||
<figure> | <!-- [rfced] FYI, in the YANG tree, this line was followed by a | |||
<name>Tree Diagram for Syslog Model</name> | floating question mark, which we moved up to the preceding line. | |||
<artwork><![CDATA[ | This line exceeds the character limit (69 chars for <sourcecode>) | |||
by 3 characters. For updating it, which option do you prefer? | ||||
Original: | ||||
| | | {certificate-expiration-notification} | ||||
? | ||||
Current: | ||||
| | | {certificate-expiration-notification}? | ||||
Option A (using the "\" line wrapping notation as used in Appendix A.1 | ||||
and adding the note about line wrapping for formatting only): | ||||
| | | {certificate-expiration-notificati\ | ||||
on}? | ||||
Option B (moving it 3 spaces to the left): | ||||
| | | {certificate-expiration-notification}? | ||||
--> | ||||
<sourcecode type="yangtree"><![CDATA[ | ||||
module: ietf-syslog | module: ietf-syslog | |||
+--rw syslog! | +--rw syslog! | |||
+--rw actions | +--rw actions | |||
+--rw console! {console-action}? | +--rw console! {console-action}? | |||
| +--rw filter | | +--rw 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 | |||
skipping to change at line 445 ¶ | skipping to change at line 421 ¶ | |||
| | | | ... | | | | | ... | |||
| | | +--:(hidden-private-key) | | | | +--:(hidden-private-key) | |||
| | | | {hidden-private-keys}? | | | | | {hidden-private-keys}? | |||
| | | | ... | | | | | ... | |||
| | | +--:(encrypted-private-key) | | | | +--:(encrypted-private-key) | |||
| | | {encrypted-private-keys}? | | | | {encrypted-private-keys}? | |||
| | | ... | | | | ... | |||
| | +--rw cert-data? | | | +--rw cert-data? | |||
| | | end-entity-cert-cms | | | | end-entity-cert-cms | |||
| | +---n certificate-expiration | | | +---n certificate-expiration | |||
| | | {certificate-expiration-notification} | | | | {certificate-expiration-notification}? | |||
? | ||||
| | | +-- expiration-date | | | | +-- expiration-date | |||
| | | yang:date-and-time | | | | yang:date-and-time | |||
| | +---x generate-csr {csr-generation}? | | | +---x generate-csr {csr-generation}? | |||
| | +---w input | | | +---w input | |||
| | | ... | | | | ... | |||
| | +--ro output | | | +--ro output | |||
| | ... | | | ... | |||
| +--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 | |||
]]></sourcecode> | ||||
</figure> | ||||
</section> | ||||
</section> | ||||
<section> | ||||
<name>Syslog YANG Module</name> | ||||
<section> | ||||
<name>The ietf-syslog Module</name> | ||||
<t> | ||||
This module imports typedefs from <xref target="RFC6991"/>, <xref target="RF | ||||
C8343"/>, groupings from <xref target="RFC9640"/>, and <xref target="RFC9645"/>. | ||||
It references | ||||
<xref target="RFC5424"/>, <xref target="RFC5425"/>, <xref target="RFC5426"/> | ||||
, <xref target="RFC5848"/>, <xref target="RFC8089"/>, <xref target="RFC8174"/>, | ||||
and <xref target="Std-1003.1-2008"/>. | ||||
</t> | ||||
<!-- [rfced] We have the following questions regarding the YANG module. | ||||
]]> | a) What do the numbers in parentheses refer to in various descriptions? | |||
</artwork> | They seem to refer to the numerical codes in Table 1 of RFC 5424; | |||
</figure> | should a sentence be added so that this is clear to readers? | |||
</section> | ||||
</section> | Original: | |||
"The facility for local use 0 messages (16)."; | ||||
<section title="Syslog YANG Module"> | b) May we change two instances of "the compare" to | |||
<section title="The ietf-syslog Module"> | "the compare operation" to match previous use? | |||
<t> | ||||
This module imports typedefs from <xref target="RFC6991"/>, <xref | Original: | |||
target="RFC8343"/>, groupings from <xref | "The compare can be used to specify the comparison | |||
target="I-D.ietf-netconf-crypto-types"/>, and <xref | operator that should be used to compare the syslog | |||
target="I-D.ietf-netconf-tls-client-server"/>, and it references | message severity with the specified severity." | |||
<xref target="RFC5424"/>, <xref target="RFC5425"/>, <xref | ||||
target="RFC5426"/>, <xref target="RFC5848"/>, <xref | ||||
target="RFC8089"/>, <xref target="RFC8174"/>, and <xref | ||||
target="Std-1003.1-2008"/>. | ||||
</t> | ||||
Perhaps: | ||||
"The compare operation can be used to specify the comparison | ||||
operator that should be used to compare the syslog | ||||
message severity with the specified severity." | ||||
--> | ||||
<!--[rfced] Note that the YANG module has been updated per the | ||||
formatting option of pyang. Please let us know any concerns. | ||||
--> | ||||
<figure> | <figure> | |||
<name>Sylog YANG Model</name> | <name>Syslog YANG Module</name> | |||
<artwork><![CDATA[ | <sourcecode type="yang" markers="true" name="ietf-syslog@2025-03-03.ya | |||
<CODE BEGINS> file "ietf-syslog@2024-09-18.yang" | ng"><![CDATA[ | |||
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: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
} | } | |||
skipping to change at line 497 ¶ | skipping to change at line 488 ¶ | |||
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: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
} | } | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix if; | prefix if; | |||
reference | reference | |||
"RFC 8343: A YANG Data Model for Interface Management"; | "RFC 8343: A YANG Data Model for Interface Management"; | |||
} | } | |||
import ietf-tls-client { | import ietf-tls-client { | |||
prefix tlsc; | prefix tlsc; | |||
reference | reference | |||
"I-D.ietf-netconf-tls-client-server: | "RFC 9645: YANG Groupings for TLS Clients and TLS Servers"; | |||
YANG Groupings for TLS Clients and TLS Servers"; | ||||
} | } | |||
import ietf-crypto-types { | import ietf-crypto-types { | |||
prefix ct; | prefix ct; | |||
reference | reference | |||
"I-D.ietf-netconf-crypto-types: YANG Data Types for | "RFC 9640: YANG Data Types and Groupings for Cryptography"; | |||
Cryptography"; | ||||
} | } | |||
organization | organization | |||
"IETF NETMOD (Network Modeling) Working Group"; | "IETF NETMOD (Network Modeling) Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/netmod/> | "WG Web: <https://datatracker.ietf.org/wg/netmod/> | |||
WG List: <mailto:netmod@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
Editor: Mahesh Jethanandani | Editor: Mahesh Jethanandani | |||
<mailto:mjethanandani@gmail.com> | <mailto:mjethanandani@gmail.com> | |||
skipping to change at line 539 ¶ | skipping to change at line 525 ¶ | |||
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:clyde@clydewildes.com>"; | <mailto:clyde@clydewildes.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) 2024 IETF Trust and the persons identified as | Copyright (c) 2025 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 | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal | set forth in Section 4.c of the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC zzzz | This version of this YANG module is part of RFC 9742 | |||
(https://www.rfc-editor.org/info/rfczzzz); | (https://www.rfc-editor.org/info/rfc9742); | |||
see the RFC itself for full legal notices. | see the RFC itself for full legal notices. | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
are to be interpreted as described in BCP 14 (RFC 2119) | are to be interpreted as described in BCP 14 (RFC 2119) | |||
(RFC 8174) when, and only when, they appear in all capitals, | (RFC 8174) when, and only when, they appear in all capitals, | |||
as shown here."; | as shown here."; | |||
revision 2024-09-18 { | revision 2025-03-03 { | |||
description | description | |||
"Initial Revision"; | "Initial Revision"; | |||
reference | reference | |||
"RFC zzzz: Syslog YANG Model"; | "RFC 9742: Syslog YANG Module"; | |||
} | } | |||
feature console-action { | feature console-action { | |||
description | description | |||
"This feature indicates that the local console action is | "This feature indicates that the local console action is | |||
supported."; | supported."; | |||
} | } | |||
feature file-action { | feature file-action { | |||
description | description | |||
skipping to change at line 600 ¶ | skipping to change at line 586 ¶ | |||
feature remote-action { | feature remote-action { | |||
description | description | |||
"This feature indicates that the remote server action is | "This feature indicates that the remote server action is | |||
supported."; | supported."; | |||
} | } | |||
feature remote-source-interface { | feature remote-source-interface { | |||
description | description | |||
"This feature indicates that source-interface is supported | "This feature indicates that source-interface is supported | |||
supported for the remote-action."; | for the remote-action."; | |||
} | } | |||
feature select-adv-compare { | feature select-adv-compare { | |||
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 | using the additional comparison operators when comparing | |||
the syslog message severity."; | the syslog message severity."; | |||
} | } | |||
feature select-match { | feature select-match { | |||
skipping to change at line 638 ¶ | skipping to change at line 624 ¶ | |||
syslog messages."; | syslog messages."; | |||
reference | reference | |||
"RFC 5848: Signed Syslog Messages"; | "RFC 5848: Signed Syslog Messages"; | |||
} | } | |||
typedef syslog-severity { | typedef syslog-severity { | |||
type enumeration { | type enumeration { | |||
enum emergency { | enum emergency { | |||
value 0; | value 0; | |||
description | description | |||
"The severity level 'Emergency' indicating that the | "The severity level 'Emergency' indicates that the | |||
system is unusable."; | system is unusable."; | |||
} | } | |||
enum alert { | enum alert { | |||
value 1; | value 1; | |||
description | description | |||
"The severity level 'Alert' indicating that an | "The severity level 'Alert' indicates that an | |||
action must be taken immediately."; | action must be taken immediately."; | |||
} | } | |||
enum critical { | enum critical { | |||
value 2; | value 2; | |||
description | description | |||
"The severity level 'Critical' indicating a | "The severity level 'Critical' indicates a | |||
critical condition."; | critical condition."; | |||
} | } | |||
enum error { | enum error { | |||
value 3; | value 3; | |||
description | description | |||
"The severity level 'Error' indicating an error | "The severity level 'Error' indicates an error | |||
condition."; | condition."; | |||
} | } | |||
enum warning { | enum warning { | |||
value 4; | value 4; | |||
description | description | |||
"The severity level 'Warning' indicating a warning | "The severity level 'Warning' indicates a warning | |||
condition."; | condition."; | |||
} | } | |||
enum notice { | enum notice { | |||
value 5; | value 5; | |||
description | description | |||
"The severity level 'Notice' indicating a normal | "The severity level 'Notice' indicates a normal | |||
but significant condition."; | but significant condition."; | |||
} | } | |||
enum info { | enum info { | |||
value 6; | value 6; | |||
description | description | |||
"The severity level 'Info' indicating an | "The severity level 'Info' indicates an | |||
informational message."; | informational message."; | |||
} | } | |||
enum debug { | enum debug { | |||
value 7; | value 7; | |||
description | description | |||
"The severity level 'Debug' indicating a | "The severity level 'Debug' indicates a | |||
debug-level message."; | debug-level message."; | |||
} | } | |||
} | } | |||
description | description | |||
"The definitions for Syslog message severity. | "The definitions for Syslog message severity. | |||
Note that a lower value is a higher severity. Comparisons | Note that a lower value is a higher severity. Comparisons | |||
of equal-or-higher severity mean equal or lower numeric | of equal-or-higher severity mean equal-or-lower numeric | |||
value"; | value"; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
} | } | |||
identity syslog-facility { | identity syslog-facility { | |||
description | description | |||
"This identity is used as a base for all syslog | "This identity is used as a base for all syslog | |||
facilities."; | facilities."; | |||
reference | reference | |||
skipping to change at line 744 ¶ | skipping to change at line 730 ¶ | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for security/authorization messages (4)."; | "The facility for security/authorization messages (4)."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
} | } | |||
identity syslog { | identity syslog { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for messages generated internally by syslogd | "The facility for messages generated internally by a syslogd | |||
facility (5)."; | facility (5)."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
} | } | |||
identity lpr { | identity lpr { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the line printer subsystem (6)."; | "The facility for the line printer subsystem (6)."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
skipping to change at line 769 ¶ | skipping to change at line 755 ¶ | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the network news subsystem (7)."; | "The facility for the network news subsystem (7)."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
} | } | |||
identity uucp { | identity uucp { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the UUCP subsystem (8)."; | "The facility for the Unix-to-Unix Copy (UUCP) subsystem (8)."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
} | } | |||
identity cron { | identity cron { | |||
base syslog-facility; | base syslog-facility; | |||
description | description | |||
"The facility for the clock daemon (9)."; | "The facility for the clock daemon (9)."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
skipping to change at line 905 ¶ | skipping to change at line 891 ¶ | |||
identity action { | identity action { | |||
description | description | |||
"Base identity for action for how a message will be | "Base identity for action for how a message will be | |||
handled."; | handled."; | |||
} | } | |||
identity log { | identity log { | |||
base action; | base action; | |||
description | description | |||
"This identity specifies that if the compare operation is | "This identity specifies that if the compare operation is | |||
true the message will be logged."; | true, the message will be logged."; | |||
} | } | |||
identity block { | identity block { | |||
base action; | base action; | |||
description | description | |||
"This identity specifies that if the compare operation is | "This identity specifies that if the compare operation is | |||
true the message will not be logged."; | true, the message will not be logged."; | |||
} | } | |||
identity stop { | identity stop { | |||
base action; | base action; | |||
description | description | |||
"This identity specifies that if the compare operation is | "This identity specifies that if the compare operation is | |||
true the message will not be logged and no further | true, the message will not be logged and no further | |||
processing will occur for it."; | processing will occur for it."; | |||
} | } | |||
grouping severity-filter { | grouping severity-filter { | |||
description | description | |||
"This grouping defines the processing used to select | "This grouping defines the processing used to select | |||
log messages by comparing syslog message severity using | log messages by comparing syslog message severity using | |||
the following processing rules: | the following processing rules: | |||
- if 'none', do not match. | - if 'none', do not match. | |||
- if 'all', match. | - if 'all', match. | |||
- else compare message severity with the specified | - else, compare message severity with the specified | |||
severity according to the default compare rule (all | severity according to the default compare rule (all | |||
messages of the specified severity and greater match) | messages of the specified severity and greater match) | |||
or if the select-adv-compare feature is present, use | or if the select-adv-compare feature is present, use | |||
the advance-compare rule."; | the advance-compare rule."; | |||
leaf severity { | leaf severity { | |||
type union { | type union { | |||
type syslog-severity; | type syslog-severity; | |||
type enumeration { | type enumeration { | |||
enum none { | enum none { | |||
value 2147483647; | value 2147483647; | |||
description | description | |||
"This enum describes the case where no | "This enum describes the case where no | |||
severities are selected."; | severities are selected."; | |||
} | } | |||
skipping to change at line 958 ¶ | skipping to change at line 943 ¶ | |||
description | description | |||
"This enum describes the case where all | "This enum describes the case where all | |||
severities are selected."; | severities are selected."; | |||
} | } | |||
} | } | |||
} | } | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This leaf specifies the syslog message severity."; | "This leaf specifies the syslog message severity."; | |||
} | } | |||
container advanced-compare { | container advanced-compare { | |||
when "../severity != \"all\" and | when "../severity != \"all\" and | |||
../severity != \"none\"" { | ../severity != \"none\"" { | |||
description | description | |||
"The advanced compare container is not applicable | "The advanced compare container is not applicable | |||
for severity 'all' or severity 'none'"; | for severity 'all' or severity 'none'"; | |||
} | } | |||
if-feature "select-adv-compare"; | if-feature "select-adv-compare"; | |||
leaf compare { | leaf compare { | |||
type enumeration { | type enumeration { | |||
enum equals { | enum equals { | |||
description | description | |||
"This enum specifies that the severity | "This enum specifies that the severity | |||
comparison operation will be equals."; | comparison operation will be equals."; | |||
} | } | |||
enum equals-or-higher { | enum equals-or-higher { | |||
description | description | |||
"This enum specifies that the severity | "This enum specifies that the severity | |||
skipping to change at line 988 ¶ | skipping to change at line 971 ¶ | |||
comparison operation will be equals or | comparison operation will be equals or | |||
higher."; | higher."; | |||
} | } | |||
} | } | |||
default "equals-or-higher"; | default "equals-or-higher"; | |||
description | description | |||
"The compare can be used to specify the comparison | "The compare can be used to specify the comparison | |||
operator that should be used to compare the syslog | operator that should be used to compare the syslog | |||
message severity with the specified severity."; | message severity with the specified severity."; | |||
} | } | |||
leaf action { | leaf action { | |||
type identityref { | type identityref { | |||
base "action"; | base action; | |||
} | } | |||
default "log"; | default "log"; | |||
description | description | |||
"The action can be used to specify how the message | "The action can be used to specify how the message | |||
should be handled. This may include logging the | should be handled. This may include logging the | |||
message, not logging the message (i.e., blocking | message, not logging the message (i.e., blocking | |||
it), or stopping further processing."; | it), or stopping further processing."; | |||
} | } | |||
description | description | |||
"This container describes additional severity compare | "This container describes additional severity compare | |||
operations that can be used in place of the default | operations that can be used in place of the default | |||
severity comparison. The compare leaf specifies the | severity comparison. The compare leaf specifies the | |||
type of the compare that is done and the action leaf | type of the compare that is done and the action leaf | |||
specifies the intended result. | specifies the intended result. | |||
Example: compare->equals and action->block means | Example: compare->equals and action->block means | |||
messages that have a severity that are equal to the | messages that have a severity that are equal to the | |||
specified severity will not be logged."; | specified severity will not be logged."; | |||
} | } | |||
} | } | |||
grouping selector { | grouping selector { | |||
description | description | |||
"This grouping defines a syslog selector which is used to | "This grouping defines a syslog selector, which is used to | |||
select log messages for the log-actions (console, file, | select log messages for the log-actions (console, file, | |||
remote, etc.). Choose one or both of the following: | remote, etc.). Choose one or both of the following: | |||
facility [<facility> <severity>...] | facility [<facility> <severity>...] | |||
pattern-match regular-expression-match-string | pattern-match regular-expression-match-string | |||
If both facility and pattern-match are specified, both | If both facility and pattern-match are specified, both | |||
must match in order for a log message to be selected."; | must match in order for a log message to be selected."; | |||
container filter { | container filter { | |||
description | description | |||
"This container describes the syslog filter | "This container describes the syslog filter | |||
parameters."; | parameters."; | |||
list facility-list { | list facility-list { | |||
key "facility severity"; | key "facility severity"; | |||
ordered-by user; | ordered-by user; | |||
description | description | |||
"This list describes a collection of syslog | "This list describes a collection of syslog | |||
facilities and severities."; | facilities and severities."; | |||
leaf facility { | leaf facility { | |||
type union { | type union { | |||
type identityref { | type identityref { | |||
base syslog-facility; | base syslog-facility; | |||
} | } | |||
type enumeration { | type enumeration { | |||
enum all { | enum all { | |||
description | description | |||
"This enum describes the case where | "This enum describes the case where | |||
all facilities are requested."; | all facilities are requested."; | |||
skipping to change at line 1054 ¶ | skipping to change at line 1033 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
description | description | |||
"The leaf uniquely identifies a syslog | "The leaf uniquely identifies a syslog | |||
facility."; | facility."; | |||
} | } | |||
uses severity-filter; | uses severity-filter; | |||
} | } | |||
} | } | |||
leaf pattern-match { | leaf pattern-match { | |||
if-feature "select-match"; | if-feature "select-match"; | |||
type string; | type string; | |||
description | description | |||
"This leaf describes a Posix 1003.2 regular expression | "This leaf describes 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 SYSLOG-MSG | logging. The match is performed on the SYSLOG-MSG | |||
field."; | field."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol | "RFC 5424: The Syslog Protocol | |||
Std-1003.1-2008 Regular Expressions"; | Std-1003.1-2008 Regular Expressions"; | |||
} | } | |||
} | } | |||
grouping structured-data { | grouping structured-data { | |||
description | description | |||
"This grouping defines the syslog structured data option | "This grouping defines the syslog structured data option, | |||
which is used to select the format used to write log | which is used to select the format used to write log | |||
messages."; | messages."; | |||
leaf structured-data { | leaf structured-data { | |||
if-feature "structured-data"; | if-feature "structured-data"; | |||
type boolean; | type boolean; | |||
default "false"; | default "false"; | |||
description | description | |||
"This leaf describes how log messages are written. | "This leaf describes how log messages are written. | |||
If true, messages will be written with one or more | If true, messages will be written with one or more | |||
STRUCTURED-DATA elements; if false, messages will be | STRUCTURED-DATA elements; if false, messages will be | |||
written with STRUCTURED-DATA = NILVALUE."; | written with STRUCTURED-DATA = NILVALUE."; | |||
reference | reference | |||
"RFC 5424: The Syslog Protocol"; | "RFC 5424: The Syslog Protocol"; | |||
} | } | |||
} | } | |||
container syslog { | container syslog { | |||
presence | presence "Enables logging."; | |||
"Enables logging."; | ||||
description | description | |||
"This container describes the configuration parameters for | "This container describes the configuration parameters for | |||
syslog."; | syslog."; | |||
container actions { | container actions { | |||
description | description | |||
"This container describes the log-action parameters | "This container describes the log-action parameters | |||
for syslog."; | for syslog."; | |||
container console { | container console { | |||
if-feature "console-action"; | if-feature "console-action"; | |||
presence | presence "Enables logging to the console"; | |||
"Enables logging to the console"; | ||||
description | description | |||
"This container describes the configuration | "This container describes the configuration | |||
parameters for console logging."; | parameters for console logging."; | |||
uses selector; | uses selector; | |||
} | } | |||
container file { | container file { | |||
if-feature "file-action"; | if-feature "file-action"; | |||
description | description | |||
"This container describes the configuration | "This container describes the configuration | |||
parameters for file logging. If file-archive | parameters for file logging. If file-archive | |||
limits are not supplied, it is assumed that | limits are not supplied, it is assumed that | |||
the local implementation defined limits will | the local implementation defined limits will | |||
be used."; | be used."; | |||
list log-file { | list log-file { | |||
key "name"; | key "name"; | |||
description | description | |||
"This list describes a collection of local | "This list describes a collection of local | |||
logging files."; | logging files."; | |||
leaf name { | leaf name { | |||
type inet:uri { | type inet:uri { | |||
pattern | pattern 'file:.*'; | |||
'file:.*'; | ||||
} | } | |||
description | description | |||
"This leaf specifies the name of the log | "This leaf specifies the name of the log | |||
file which MUST use the uri scheme | file, which MUST use the uri scheme | |||
file:."; | file:."; | |||
reference | reference | |||
"RFC 8089: The file URI Scheme"; | "RFC 8089: The file URI Scheme"; | |||
} | } | |||
uses selector; | uses selector; | |||
uses structured-data; | uses structured-data; | |||
container file-rotation { | container file-rotation { | |||
description | description | |||
"This container describes the configuration | "This container describes the configuration | |||
parameters for log file rotation."; | parameters for log file rotation."; | |||
leaf number-of-files { | leaf number-of-files { | |||
if-feature "file-limit-size"; | if-feature "file-limit-size"; | |||
type uint32; | type uint32; | |||
default "1"; | default "1"; | |||
description | description | |||
"This leaf specifies the maximum number | "This leaf specifies the maximum number | |||
of log files retained. Specify 1 for | of log files retained. Specify 1 for | |||
implementations that only support one | implementations that only support one | |||
log file."; | log file."; | |||
} | } | |||
leaf max-file-size { | leaf max-file-size { | |||
if-feature "file-limit-size"; | if-feature "file-limit-size"; | |||
type uint32; | type uint32; | |||
units "megabytes"; | units "megabytes"; | |||
description | description | |||
"This leaf specifies the maximum log | "This leaf specifies the maximum log | |||
file size."; | file size."; | |||
} | } | |||
leaf rollover { | leaf rollover { | |||
if-feature "file-limit-duration"; | if-feature "file-limit-duration"; | |||
type uint32; | type uint32; | |||
units "minutes"; | units "minutes"; | |||
description | description | |||
"This leaf specifies the length of time | "This leaf specifies the length of time | |||
that log events should be written to a | that log events should be written to a | |||
specific log file. Log events that | specific log file. Log events that | |||
arrive after the rollover period cause | arrive after the rollover period cause | |||
the current log file to be closed and | the current log file to be closed and | |||
a new log file to be opened."; | a new log file to be opened."; | |||
} | } | |||
leaf retention { | leaf retention { | |||
if-feature "file-limit-duration"; | if-feature "file-limit-duration"; | |||
type uint32; | type uint32; | |||
units "minutes"; | units "minutes"; | |||
description | description | |||
"This leaf specifies the length of time | "This leaf specifies the length of time | |||
that completed/closed log event files | that completed/closed log event files | |||
should be stored in the file system | should be stored in the file system | |||
before they are removed."; | before they are removed."; | |||
} | } | |||
skipping to change at line 1210 ¶ | skipping to change at line 1172 ¶ | |||
list destination { | list destination { | |||
key "name"; | key "name"; | |||
description | description | |||
"This list describes a collection of remote logging | "This list describes a collection of remote logging | |||
destinations."; | destinations."; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
description | description | |||
"An arbitrary name for the endpoint to connect to."; | "An arbitrary name for the endpoint to connect to."; | |||
} | } | |||
choice transport { | choice transport { | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This choice describes the transport option."; | "This choice describes the transport option."; | |||
case udp { | case udp { | |||
container udp { | container udp { | |||
description | description | |||
"This container describes the UDP transport | "This container describes the UDP transport | |||
options."; | options."; | |||
reference | reference | |||
"RFC 5426: Transmission of Syslog Messages over | "RFC 5426: Transmission of Syslog Messages over | |||
UDP"; | UDP"; | |||
list udp { | list udp { | |||
key "address"; | key "address"; | |||
description | description | |||
"List of all UDP sessions."; | "List of all UDP sessions."; | |||
leaf address { | leaf address { | |||
type inet:host; | type inet:host; | |||
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 | remote host. One of the following must be | |||
specified: | specified: | |||
- an ipv4 address, | - an ipv4 address, | |||
- an ipv6 address, or a | - an ipv6 address, or a | |||
- host name."; | - host name."; | |||
} | } | |||
leaf port { | leaf port { | |||
type inet:port-number; | type inet:port-number; | |||
default "514"; | default "514"; | |||
description | description | |||
"This leaf specifies the port number used to | "This leaf specifies the port number used to | |||
deliver messages to the remote server."; | deliver messages to the remote server."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
case tls { | case tls { | |||
container tls { | container tls { | |||
description | description | |||
"This container describes the TLS transport | "This container describes the TLS transport | |||
options."; | options."; | |||
reference | reference | |||
"RFC 5425: Transport Layer Security (TLS) Transport | "RFC 5425: Transport Layer Security (TLS) Transport | |||
Mapping for Syslog "; | Mapping for Syslog "; | |||
list tls { | list tls { | |||
key "address"; | key "address"; | |||
description | description | |||
"List of all TLS based sessions."; | "List of all TLS-based sessions."; | |||
leaf address { | leaf address { | |||
type inet:host; | type inet:host; | |||
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 | remote host. One of the following must be | |||
specified: an ipv4 address, an ipv6 address, or | specified: an ipv4 address, an ipv6 address, | |||
a host name."; | or a host name."; | |||
} | } | |||
leaf port { | leaf port { | |||
type inet:port-number; | type inet:port-number; | |||
default "6514"; | default "6514"; | |||
description | description | |||
"TCP port 6514 has been allocated as the | "TCP port 6514 has been allocated as the | |||
default port for syslog over TLS."; | default port for syslog over TLS."; | |||
} | } | |||
uses tlsc:tls-client-grouping; | uses tlsc:tls-client-grouping; | |||
} | } | |||
} | } | |||
skipping to change at line 1287 ¶ | skipping to change at line 1240 ¶ | |||
default "6514"; | default "6514"; | |||
description | description | |||
"TCP port 6514 has been allocated as the | "TCP port 6514 has been allocated as the | |||
default port for syslog over TLS."; | default port for syslog over TLS."; | |||
} | } | |||
uses tlsc:tls-client-grouping; | uses tlsc:tls-client-grouping; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
uses selector; | uses selector; | |||
uses structured-data; | uses structured-data; | |||
leaf facility-override { | leaf facility-override { | |||
type identityref { | type identityref { | |||
base syslog-facility; | base syslog-facility; | |||
} | } | |||
description | description | |||
"If specified, this leaf specifies the facility used | "If specified, this leaf specifies the facility used | |||
to override the facility in messages delivered to the | to override the facility in messages delivered to the | |||
remote server."; | remote server."; | |||
} | } | |||
leaf source-interface { | leaf source-interface { | |||
if-feature "remote-source-interface"; | if-feature "remote-source-interface"; | |||
type if:interface-ref; | type if:interface-ref; | |||
description | description | |||
"This leaf sets the source interface to be used to | "This leaf sets the source interface to be used to | |||
send messages to the remote syslog server. If not set, | send messages to the remote syslog server. If not set, | |||
messages can be sent on any interface."; | messages can be sent on any interface."; | |||
} | } | |||
container signing { | container signing { | |||
if-feature "signed-messages"; | if-feature "signed-messages"; | |||
presence | presence "If present, syslog-signing options is | |||
"If present, syslog-signing options is activated."; | activated."; | |||
description | description | |||
"This container describes the configuration | "This container describes the configuration | |||
parameters for signed syslog messages."; | parameters for signed syslog messages."; | |||
reference | reference | |||
"RFC 5848: Signed Syslog Messages"; | "RFC 5848: Signed Syslog Messages"; | |||
container cert-signers { | container cert-signers { | |||
description | description | |||
"This container describes the signing certificate | "This container describes the signing certificate | |||
configuration for Signature Group 0 which covers the | configuration for Signature Group 0, which covers | |||
case for administrators who want all Signature | the case for administrators who want all Signature | |||
Blocks to be sent to a single destination."; | Blocks to be sent to a single destination."; | |||
list cert-signer { | list cert-signer { | |||
key "name"; | key "name"; | |||
description | description | |||
"This list describes a collection of syslog message | "This list describes a collection of syslog message | |||
signers."; | signers."; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
description | description | |||
"This leaf specifies the name of the syslog | "This leaf specifies the name of the syslog | |||
message signer."; | message signer."; | |||
} | } | |||
container cert { | container cert { | |||
uses ct:asymmetric-key-pair-with-cert-grouping; | uses ct:asymmetric-key-pair-with-cert-grouping; | |||
description | description | |||
"This is the certificate that is periodically | "This is the certificate that is periodically | |||
sent to the remote receiver. The certificate is | sent to the remote receiver. The certificate is | |||
inherently associated with its private | inherently associated with its private | |||
and public keys."; | and public keys."; | |||
} | } | |||
leaf hash-algorithm { | leaf hash-algorithm { | |||
type enumeration { | type enumeration { | |||
enum SHA1 { | enum SHA1 { | |||
value 1; | value 1; | |||
description | description | |||
"This enum describes the SHA1 algorithm."; | "This enum describes the SHA1 algorithm."; | |||
} | } | |||
enum SHA256 { | enum SHA256 { | |||
value 2; | value 2; | |||
description | description | |||
skipping to change at line 1406 ¶ | skipping to change at line 1346 ¶ | |||
type uint32; | type uint32; | |||
units "seconds"; | units "seconds"; | |||
default "60"; | default "60"; | |||
description | description | |||
"This leaf specifies when to generate a new | "This leaf specifies when to generate a new | |||
Signature Block. If this many seconds have elapsed | Signature Block. If this many seconds have elapsed | |||
since the message with the first message number | since the message with the first message number | |||
of the Signature Block was sent, a new Signature | of the Signature Block was sent, a new Signature | |||
Block should be generated."; | Block should be generated."; | |||
} | } | |||
leaf sig-number-resends { | leaf sig-number-resends { | |||
type uint32; | type uint32; | |||
default "0"; | default "0"; | |||
description | description | |||
"This leaf specifies the number of times a | "This leaf specifies the number of times a | |||
Signature Block is resent. (It is recommended to | Signature Block is resent. (It is recommended to | |||
select a value of greater than 0 in particular | select a value of greater than 0 in particular | |||
when the UDP transport RFC 5426 is used.)."; | when the UDP transport as in RFC 5426 is used.)"; | |||
} | } | |||
leaf sig-resend-delay { | leaf sig-resend-delay { | |||
type uint32; | type uint32; | |||
units "seconds"; | units "seconds"; | |||
default "5"; | default "5"; | |||
description | description | |||
"This leaf specifies when to send the next | "This leaf specifies when to send the next | |||
Signature Block transmission based on time. If | Signature Block transmission based on time. If | |||
this many seconds have elapsed since the previous | this many seconds have elapsed since the previous | |||
sending of this Signature Block, resend it."; | sending of this Signature Block, resend it."; | |||
} | } | |||
leaf sig-resend-count { | leaf sig-resend-count { | |||
type uint32; | type uint32; | |||
default "0"; | default "0"; | |||
description | description | |||
"This leaf specifies when to send the next | "This leaf specifies when to send the next | |||
Signature Block transmission based on a count. If | Signature Block transmission based on a count. | |||
this many other syslog messages have been sent | If this many other syslog messages have been sent | |||
since the previous sending of this Signature | since the previous sending of this Signature | |||
Block, resend it. A value of 0 means that you | Block, resend it. A value of 0 means that you | |||
don't resend based on the number of messages."; | don't resend based on the number of messages."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | ]]></sourcecode> | |||
</figure> | ||||
]]></artwork> | </section> | |||
</section> | ||||
</figure> | <section> | |||
</section> | <name>Usage Examples</name> | |||
</section> | <section> | |||
<name>Syslog Configuration for Severity Critical</name> | ||||
<section title="Usage Examples"> | <figure> | |||
<section title="Syslog Configuration for Severity Critical"> | <name>Syslog Configuration for Severity Critical</name> | |||
<figure> | <artwork><![CDATA[ | |||
<name>Syslog Configuration for Severity Critical</name> | ||||
<artwork><![CDATA[ | ||||
[note: '\' line wrapping for formatting only] | [note: '\' line wrapping for formatting only] | |||
<!-- | <!-- | |||
Enable console logging of syslogs of severity critical | Enable console logging of syslogs of severity critical | |||
--> | --> | |||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog"> | <syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog"> | |||
<actions> | <actions> | |||
<console> | <console> | |||
<filter> | <filter> | |||
<facility-list> | <facility-list> | |||
<facility>all</facility> | <facility>all</facility> | |||
<severity>critical</severity> | <severity>critical</severity> | |||
</facility-list> | </facility-list> | |||
</filter> | </filter> | |||
</console> | </console> | |||
</actions> | </actions> | |||
</syslog> | </syslog>]]></artwork> | |||
</figure> | ||||
]]></artwork> | </section> | |||
<section> | ||||
</figure> | <name>Remote Syslog Configuration</name> | |||
</section> | <figure> | |||
<section title="Remote Syslog Configuration"> | <name>Remote Syslog Configuration</name> | |||
<figure> | <artwork><![CDATA[ | |||
<name>Remote Syslog Configuration</name> | ||||
<artwork><![CDATA[ | ||||
[note: '\' line wrapping for formatting only] | [note: '\' line wrapping for formatting only] | |||
<!-- | <!-- | |||
Enable remote logging of syslogs to udp destination | Enable remote logging of syslogs to udp destination | |||
foo.example.com for facility auth, severity error | foo.example.com for facility auth, severity error | |||
--> | --> | |||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog"> | <syslog xmlns="urn:ietf:params:xml:ns:yang:ietf-syslog"> | |||
<actions> | <actions> | |||
<remote> | <remote> | |||
skipping to change at line 1513 ¶ | skipping to change at line 1446 ¶ | |||
</udp> | </udp> | |||
<filter> | <filter> | |||
<facility-list> | <facility-list> | |||
<facility>auth</facility> | <facility>auth</facility> | |||
<severity>error</severity> | <severity>error</severity> | |||
</facility-list> | </facility-list> | |||
</filter> | </filter> | |||
</destination> | </destination> | |||
</remote> | </remote> | |||
</actions> | </actions> | |||
</syslog> | </syslog>]]></artwork> | |||
</figure> | ||||
]]></artwork> | </section> | |||
</section> | ||||
</figure> | <section anchor="IANA"> | |||
</section> | <name>IANA Considerations</name> | |||
</section> | <section> | |||
<name>The IETF XML Registry</name> | ||||
<section anchor="Acknowledgements" title="Acknowledgements"> | <t>This document registers one URI in the "IETF XML Registry", following | |||
<t>The authors wish to thank the following who commented on this | the format defined in <xref target="RFC3688"/>:</t> | |||
proposal:</t> | <dl newline="false" spacing="compact"> | |||
<dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-syslog</dd> | ||||
<t>Andy Bierman, Martin Bjorklund, Alex Campbell, Alex Clemm, | <dt>Registrant Contact:</dt><dd>The IESG.</dd> | |||
Francis Dupont, Jim Gibson, Jeffrey Haas, Bob Harold, John | <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | |||
Heasley, Giles Heron, Lisa Huang, Mahesh Jethanandani, Warren | </dl> | |||
Kumari, Jeffrey K Lange, Jan Lindblad, Chris Lonvick, Alexey | ||||
Melnikov, Kathleen Moriarty, Tom Petch, Adam Roach, Juergen | ||||
Schoenwaelder, Phil Shafer, Yaron Sheffer, Jason Sterne, Peter | ||||
Van Horne, Kent Watsen, Bert Wijnen, Dale R Worley, and | ||||
Aleksandr Zhdankin.</t> | ||||
</section> | ||||
<!-- Possibly a 'Contributors' section ... --> | ||||
<section anchor="IANA" title="IANA Considerations"> | ||||
<section title="The IETF XML Registry"> | ||||
<t>This document registers one URI in the IETF XML registry <xref target="RFC368 | ||||
8"/> | ||||
. | ||||
Following the format in <xref target="RFC3688"/> | ||||
, | ||||
the following registration is requested:</t> | ||||
<t> | ||||
<figure> | ||||
<artwork><![CDATA[ | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-syslog | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
]]></artwork> | ||||
</figure> | ||||
</t> | ||||
</section> | ||||
<section title="The YANG Module Names Registry"> | ||||
<t>This document registers one YANG module in the YANG Module Names | ||||
registry <xref target="RFC8525"/> | ||||
. Following the format in <xref target="RFC7950"/> | ||||
, | ||||
the following registration is requested:</t> | ||||
<t> | ||||
<figure> | ||||
<artwork><![CDATA[ | ||||
name: ietf-syslog | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-syslog | ||||
prefix: syslog | ||||
reference: RFC zzzz | ||||
]]></artwork> | ||||
</figure> | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section title="Security Considerations"> | ||||
<t> | ||||
This section is modeled after the template defined in <xref | ||||
section="3.7.1" target="RFC8407"/>. | ||||
</t> | ||||
<t> | ||||
The "ietf-syslog" YANG module specified in this document defines a | ||||
data model that is designed to be accessed via YANG-based | ||||
management protocols such as NETCONF <xref target="RFC6241"/> and | ||||
RESTCONF <xref target="RFC8040"/>. These protocols have | ||||
mandatory-to-implement secure transport layers (e.g., Secure Shell | ||||
(SSH) <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and | ||||
QUIC <xref target="RFC9000"/>) and mandatory-to-implement mutual | ||||
authentication. | ||||
</t> | ||||
<t> | </section> | |||
The NETCONF access control model <xref target="RFC8341"/> provides | <section> | |||
the means to restrict access for particular NETCONF or RESTCONF | <name>The YANG Module Names Registry</name> | |||
users to a preconfigured subset of all available NETCONF or | <t>This document registers one YANG module in the "YANG Module Names" | |||
RESTCONF protocol operations and content. | registry <xref target="RFC8525"/>, following the format in <xref target= | |||
</t> | "RFC7950"/>:</t> | |||
<dl spacing="compact" newline="false"> | ||||
<dt>Name:</dt><dd>ietf-syslog</dd> | ||||
<dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-syslog</dd> | ||||
<dt>Prefix:</dt><dd>syslog</dd> | ||||
<dt>Reference:</dt><dd>RFC 9742</dd> | ||||
</dl> | ||||
<t> | </section> | |||
</section> | ||||
<section> | ||||
<name>Security Considerations</name> | ||||
<t> | ||||
This section is modeled after the template defined in <xref section="3.7.1" ta | ||||
rget="RFC8407"/>. | ||||
</t> | ||||
<t> | ||||
<!-- DNE --> | ||||
The YANG module specified in this document defines a schema for data that is des | ||||
igned to be accessed via network management protocols such as NETCONF <xref targ | ||||
et="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer is | ||||
the secure transport layer, and the mandatory-to-implement secure transport is | ||||
Secure Shell (SSH) <xref target="RFC4252"/>. The lowest RESTCONF layer is HTTPS, | ||||
and the mandatory-to-implement secure transport is TLS <xref target="RFC8446"/> | ||||
. | ||||
<!-- End of DNE --> | ||||
</t> | ||||
<t> | ||||
<!-- DNE --> | ||||
The Network Configuration Access Control Model (NACM) <xref | ||||
target="RFC8341"/> provides the means to restrict access for particular | ||||
NETCONF or RESTCONF users to a preconfigured subset of all available | ||||
NETCONF or RESTCONF protocol operations and content. | ||||
</t> | ||||
<!-- End of DNE --> | ||||
<t> | ||||
This module imports groupings from ietf-crypto-types YANG module | This module imports groupings from ietf-crypto-types YANG module | |||
defined in <xref target="I-D.ietf-netconf-crypto-types">YANG | defined in <xref target="RFC9640">YANG | |||
Groupings for Crypto Types</xref>. Security considerations | Groupings for Crypto Types</xref>. Security considerations | |||
described in that document apply to this module also. | described in that document apply to this module also. | |||
</t> | </t> | |||
<t> | ||||
<t> | <!-- DNE --> | |||
There are a number of data nodes defined in this YANG module that | There are a number of data nodes defined in this YANG module that | |||
are writable/creatable/deletable (i.e., config true, which is the | are writable/creatable/deletable (i.e., config true, which is the | |||
default). These data nodes should be considered sensitive or | default). These data nodes should be considered sensitive or | |||
vulnerable in all network environments. Logging in particular is | vulnerable in all network environments. | |||
used to assess the state of systems and can be used to indicate a | <!-- End of DNE --> | |||
network compromise. If logging were to be disabled through | ||||
malicious means, attacks may not be readily detectable. Therefore | ||||
write operations (e.g., edit-config) to these data nodes without | ||||
proper protection can have a negative effect on network operations | ||||
and on network security. | ||||
</t> | ||||
<t> | <!--[rfced] Security Considerations: This text does not | |||
In addition there are data nodes that require careful analysis and | exactly match the text provided for security | |||
considerations of documents that contain YANG modules: | ||||
https://wiki.ietf.org/group/ops/yang-security-guidelines | ||||
Should this document be updated to match those? | ||||
For example: usage of "all" vs. "some" and the additional sentences | ||||
in the 5th paragraph (which start with "Logging" and "If logging"). | ||||
Original: | ||||
There are a number of data nodes defined in this YANG module that are | ||||
writable/creatable/deletable (i.e., config true, which is the | ||||
default). These data nodes should be considered sensitive or | ||||
vulnerable in all network environments. Logging in particular is | ||||
used to assess the state of systems and can be used to indicate a | ||||
network compromise. If logging were to be disabled through malicious | ||||
means, attacks may not be readily detectable. Therefore write | ||||
operations (e.g., edit-config) to these data nodes without proper | ||||
protection can have a negative effect on network operations and on | ||||
network security. | ||||
Corresponding text on https://wiki.ietf.org/group/ops/yang-security-guidelines: | ||||
There are a number of data nodes defined in this YANG module that are | ||||
writable/creatable/deletable (i.e., config true, which is the | ||||
default). These data nodes may be considered sensitive or vulnerable in | ||||
some network environments. Write operations (e.g., edit-config) to these | ||||
data nodes without proper protection can have a negative effect on network | ||||
operations. These are the subtrees and data nodes and their | ||||
sensitivity/vulnerability: | ||||
--> | ||||
Logging in particular is used to assess the state of systems and can be used | ||||
to indicate a network compromise. If logging were to be disabled through | ||||
malicious means, attacks may not be readily detectable. Therefore, write | ||||
operations (e.g., edit-config) to these data nodes without proper protection | ||||
can have a negative effect on network operations and on network security. | ||||
</t> | ||||
<t> | ||||
In addition, there are data nodes that require careful analysis and | ||||
review. These are the subtrees and data nodes and their | review. These are the subtrees and data nodes and their | |||
sensitivity/vulnerability: | sensitivity/vulnerability: | |||
<list hangIndent="6" style="hanging"> | </t> | |||
<t hangText=" facility-filter/pattern-match:">When writing | <dl newline="false" spacing="normal"> | |||
this node, implementations MUST ensure that the regular | <dt> facility-filter/pattern-match:</dt> | |||
<dd>When writing | ||||
this node, implementations <bcp14>MUST</bcp14> ensure that the regular | ||||
expression pattern match is not constructed to cause a regular | expression pattern match is not constructed to cause a regular | |||
expression denial of service attack due to a pattern that | expression denial-of-service attack due to a pattern that | |||
causes the regular expression implementation to work very | causes the regular expression implementation to work very | |||
slowly (exponentially related to input size). | slowly (exponentially related to input size). | |||
</t> | </dd> | |||
<dt> remote/destination/signing/cert-signer:</dt> | ||||
<t hangText=" remote/destination/signing/cert-signer:">When | <dd>When writing this subtree, implementations <bcp14>MUST NOT</bcp14> | |||
writing this subtree, implementations MUST NOT specify a | specify a private key that is used for any other purpose.</dd> | |||
private key that is used for any other purpose.</t> | </dl> | |||
</list> | <t> | |||
</t> | <!-- DNE --> | |||
<t> | ||||
Some of the readable data nodes in this YANG module may be | Some of the readable data nodes in this YANG module may be | |||
considered sensitive or vulnerable in some network | considered sensitive or vulnerable in some network | |||
environments. It is thus important to control read access (e.g., | environments. It is thus important to control read access (e.g., | |||
via get, get-config, or notification) to these data nodes. These | via get, get-config, or notification) to these data nodes. These | |||
are the subtrees and data nodes and their | are the subtrees and data nodes and their | |||
sensitivity/vulnerability: | sensitivity/vulnerability: | |||
<!-- End of DNE --> | ||||
<list hangIndent="6" style="hanging"> | </t> | |||
<t hangText=" remote/destination/transport:">This subtree | <dl newline="false" spacing="normal"> | |||
<dt> remote/destination/transport:</dt> | ||||
<dd>This subtree | ||||
contains information about other hosts in the network, the | contains information about other hosts in the network, the | |||
services available on those hosts, and the TLS transport | services available on those hosts, and the TLS transport | |||
certificate properties if TLS is selected as the transport | certificate properties if TLS is selected as the transport | |||
protocol. Knowing that a service like syslog (udp/514) is | protocol. Knowing that a service like syslog (udp/514) is | |||
enabled on the host, will allow a malicious user to spam the | enabled on the host will allow a malicious user to spam the | |||
host on that port. | host on that port. | |||
</t> | </dd> | |||
<dt> remote/destination/signing:</dt> | ||||
<t hangText=" remote/destination/signing:">This subtree contains | <dd>This subtree contains | |||
information about the syslog message signing properties | information about the syslog message signing properties, | |||
including signing certificate information. | including signing certificate information. | |||
</t> | </dd> | |||
</list> | </dl> | |||
</t> | <t> | |||
<t> | ||||
There are no RPC operations defined in this YANG module. | There are no RPC operations defined in this YANG module. | |||
</t> | </t> | |||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | ||||
<back> | <references> | |||
<references title="Normative References"> | <name>References</name> | |||
<?rfc include="reference.I-D.ietf-netconf-crypto-types.xml"?> | <references> | |||
<name>Normative References</name> | ||||
<?rfc include="reference.I-D.ietf-netconf-tls-client-server.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
640.xml"/> | ||||
<?rfc include="reference.RFC.8343.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
645.xml"/> | ||||
<?rfc include="reference.RFC.2119.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
343.xml"/> | ||||
<?rfc include="reference.RFC.3688.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
119.xml"/> | ||||
<?rfc include="reference.RFC.4252.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
688.xml"/> | ||||
<?rfc include="reference.RFC.5424.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
252.xml"/> | ||||
<?rfc include="reference.RFC.5425.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
424.xml"/> | ||||
<?rfc include="reference.RFC.5426.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
425.xml"/> | ||||
<?rfc include="reference.RFC.5848.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
426.xml"/> | ||||
<?rfc include="reference.RFC.6241.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
848.xml"/> | ||||
<?rfc include="reference.RFC.6991.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
241.xml"/> | ||||
<?rfc include="reference.RFC.8525.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
991.xml"/> | ||||
<?rfc include="reference.RFC.7950.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
525.xml"/> | ||||
<?rfc include="reference.RFC.8040.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | |||
950.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
040.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
089.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
407.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
341.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
446.xml"/> | ||||
<?rfc include="reference.RFC.8089.xml"?> | <!-- [rfced] References | |||
<?rfc include="reference.RFC.8174.xml"?> | a) We have updated the Security Considerations section to reflect the | |||
guidelines shown here: | ||||
https://wiki.ietf.org/group/ops/yang-security-guidelines. | ||||
As a result, RFC 9000 has been removed from the Normative References. Please | ||||
let us know if you prefer to cite it elsewhere. | ||||
<?rfc include="reference.RFC.8407.xml"?> | b) Please review the following reference. We note that a newer version of this | |||
standard was published in 2024; would you like to update this reference | ||||
to the most current version? | ||||
<?rfc include="reference.RFC.8341.xml"?> | Original: | |||
[Std-1003.1-2008] | ||||
Group, I. A. T. O., ""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/>. | ||||
<?rfc include="reference.RFC.8446.xml"?> | Perhaps: | |||
[Std-1003.1-2024] | ||||
The Open Group, "Chapter 9: Regular Expressions", The Open | ||||
Group Base Specifications Issue 8, IEEE Std 1003.1-2024, | ||||
2024, <https://pubs.opengroup.org/onlinepubs/9799919799/>. | ||||
--> | ||||
<?rfc include="reference.RFC.9000.xml"?> | <reference anchor="Std-1003.1-2008" target="https://pubs.opengroup.org/o | |||
nlinepubs/9699919799.2016edition/"> | ||||
<front> | ||||
<title>"Chapter 9: Regular Expressions" The Open Group Base | ||||
Specifications Issue 6, IEEE Std 1003.1-2008, 2016 Edition</title> | ||||
<author> | ||||
<organization>The Open Group</organization> | ||||
</author> | ||||
<date month="September" year="2016"/> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
<reference anchor="Std-1003.1-2008" target="http://pubs.opengroup.org/onlinepubs | <references> | |||
/9699919799/"> | <name>Informative References</name> | |||
<front> | ||||
<title>"Chapter 9: Regular Expressions". The Open Group Base | ||||
Specifications Issue 6, IEEE Std 1003.1-2008, 2016 Edition.</title> | ||||
<author fullname="IEEE and The Open Group"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
<organization>The Open Group</organization> | 340.xml"/> | |||
</author> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
342.xml"/> | ||||
<date month="September" year="2016"/> | </references> | |||
</front> | </references> | |||
</reference> | <section anchor="tree-diagrams"> | |||
</references> | <name>Tree Diagrams</name> | |||
<section anchor="complete-tree-diagram"> | ||||
<name>Complete Tree Diagram</name> | ||||
<references title="Informative References"> | <!-- [rfced] Please review the line wrapping in Appendix A.1. | |||
Specifically, the original contained extra line breaks that were | ||||
apparently not intended (e.g., before "ivate-key?"). We have updated | ||||
the tree diagram to remove the extraneous line breaks. Please review; | ||||
see https://www.rfc-editor.org/authors/rfc9742-rfcdiff.html | ||||
and the examples below. (FYI, two hyphens are changed to one hyphen | ||||
below for the sake of inclusion as a comment in the XML file.) | ||||
<?rfc include="reference.RFC.8340.xml"?> | Original: | |||
<?rfc include="reference.RFC.8342.xml"?> | | | | | | | +-rw cleartext\ | |||
-pr | ||||
ivate-key? | ||||
| | | | | | binary | ||||
| | | | | +-:(hidden-privat\ | ||||
e-k | ||||
ey) | ||||
| | | | | | {hidden-p\ | ||||
riv | ||||
ate-keys}? | ||||
</references> | Current: | |||
| | | | | | +-rw cleartext\ | ||||
-private-key? | ||||
| | | | | | binary | ||||
| | | | | +-:(hidden-privat\ | ||||
e-key) | ||||
| | | | | | {hidden-p\ | ||||
rivate-keys}? | ||||
--> | ||||
<section anchor="tree-diagrams" title="Tree Diagrams"> | <sourcecode type="yangtree"><![CDATA[ | |||
<section anchor="complete-tree-diagram" title="Complete Tree Diagram"> | ||||
<figure> | ||||
<artwork align="left"><![CDATA[ | ||||
[note: '\' line wrapping for formatting only] | [note: '\' line wrapping for formatting only] | |||
module: ietf-syslog | module: ietf-syslog | |||
+--rw syslog! | +--rw syslog! | |||
+--rw actions | +--rw actions | |||
+--rw console! {console-action}? | +--rw console! {console-action}? | |||
| +--rw filter | | +--rw filter | |||
| | +--rw facility-list* [facility severity] | | | +--rw facility-list* [facility severity] | |||
| | +--rw facility union | | | +--rw facility union | |||
| | +--rw severity union | | | +--rw severity union | |||
skipping to change at line 1797 ¶ | skipping to change at line 1757 ¶ | |||
| +--rw port? | | +--rw port? | |||
| | inet:port-number | | | inet:port-number | |||
| +--rw client-identity! | | +--rw client-identity! | |||
| | +--rw (auth-type) | | | +--rw (auth-type) | |||
| | +--:(certificate) | | | +--:(certificate) | |||
| | | {client-ident-x509-cert}? | | | | {client-ident-x509-cert}? | |||
| | | +--rw certificate | | | | +--rw certificate | |||
| | | +--rw (inline-or-keystore) | | | | +--rw (inline-or-keystore) | |||
| | | +--:(inline) | | | | +--:(inline) | |||
| | | | {inline-definition\ | | | | | {inline-definition\ | |||
s-s | s-supported}? | |||
upported}? | ||||
| | | | +--rw inline-definition | | | | | +--rw inline-definition | |||
| | | | +--rw public-key-form\ | | | | | +--rw public-key-form\ | |||
at? | at? | |||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw public-key? | | | | | +--rw public-key? | |||
| | | | | binary | | | | | | binary | |||
| | | | +--rw private-key-for\ | | | | | +--rw private-key-for\ | |||
mat | mat? | |||
? | ||||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw (private-key-ty\ | | | | | +--rw (private-key-ty\ | |||
pe) | pe) | |||
| | | | | +--:(cleartext-pri\ | | | | | | +--:(cleartext-pri\ | |||
vat | vate-key) | |||
e-key) | ||||
| | | | | | {cleartex\ | | | | | | | {cleartex\ | |||
t-p | t-private-keys}? | |||
rivate-keys}? | ||||
| | | | | | +--rw cleartext\ | | | | | | | +--rw cleartext\ | |||
-pr | -private-key? | |||
ivate-key? | ||||
| | | | | | binary | | | | | | | binary | |||
| | | | | +--:(hidden-privat\ | | | | | | +--:(hidden-privat\ | |||
e-k | e-key) | |||
ey) | ||||
| | | | | | {hidden-p\ | | | | | | | {hidden-p\ | |||
riv | rivate-keys}? | |||
ate-keys}? | ||||
| | | | | | +--rw hidden-pr\ | | | | | | | +--rw hidden-pr\ | |||
iva | ivate-key? | |||
te-key? | ||||
| | | | | | empty | | | | | | | empty | |||
| | | | | +--:(encrypted-pri\ | | | | | | +--:(encrypted-pri\ | |||
vat | vate-key) | |||
e-key) | ||||
| | | | | {encrypte\ | | | | | | {encrypte\ | |||
d-p | d-private-keys}? | |||
rivate-keys}? | ||||
| | | | | +--rw encrypted\ | | | | | | +--rw encrypted\ | |||
-pr | -private-key | |||
ivate-key | ||||
| | | | | +--rw encryp\ | | | | | | +--rw encryp\ | |||
ted | ted-by | |||
-by | ||||
| | | | | +--rw encryp\ | | | | | | +--rw encryp\ | |||
ted | ted-value-format | |||
-value-format | ||||
| | | | | | iden\ | | | | | | | iden\ | |||
tit | tityref | |||
yref | ||||
| | | | | +--rw encryp\ | | | | | | +--rw encryp\ | |||
ted | ted-value | |||
-value | ||||
| | | | | bina\ | | | | | | bina\ | |||
ry | ry | |||
| | | | +--rw cert-data? | | | | | +--rw cert-data? | |||
| | | | | end-entity-ce\ | | | | | | end-entity-ce\ | |||
rt- | rt-cms | |||
cms | ||||
| | | | +---n certificate-exp\ | | | | | +---n certificate-exp\ | |||
ira | iration | |||
tion | ||||
| | | | | {certificate-\ | | | | | | {certificate-\ | |||
exp | expiration-notification}? | |||
iration-notification}? | ||||
| | | | | +-- expiration-dat\ | | | | | | +-- expiration-dat\ | |||
e | e | |||
| | | | | yang:date-\ | | | | | | yang:date-\ | |||
and | and-time | |||
-time | ||||
| | | | +---x generate-csr | | | | | +---x generate-csr | |||
| | | | {csr-generati\ | | | | | {csr-generati\ | |||
on} | on}? | |||
? | ||||
| | | | +---w input | | | | | +---w input | |||
| | | | | +---w csr-forma\ | | | | | | +---w csr-forma\ | |||
t | t | |||
| | | | | | identit\ | | | | | | | identit\ | |||
yre | yref | |||
f | ||||
| | | | | +---w csr-info | | | | | | +---w csr-info | |||
| | | | | csr-inf\ | | | | | | csr-inf\ | |||
o | o | |||
| | | | +--ro output | | | | | +--ro output | |||
| | | | +--ro (csr-type\ | | | | | +--ro (csr-type\ | |||
) | ) | |||
| | | | +--:(p10-csr\ | | | | | +--:(p10-csr\ | |||
) | ) | |||
| | | | +--ro p10\ | | | | | +--ro p10\ | |||
-cs | -csr? | |||
r? | ||||
| | | | p\ | | | | | p\ | |||
10- | 10-csr | |||
csr | ||||
| | | +--:(central-keystore) | | | | +--:(central-keystore) | |||
| | | {central-keystore-\ | | | | {central-keystore-\ | |||
sup | supported,asymmetric-keys}? | |||
ported,asymmetric-keys}? | ||||
| | | +--rw central-keystore-r\ | | | | +--rw central-keystore-r\ | |||
efe | eference | |||
rence | ||||
| | | +--rw asymmetric-key?\ | | | | +--rw asymmetric-key?\ | |||
| | | | ks:central-as\ | | | | | ks:central-as\ | |||
ymm | ymmetric-key-ref | |||
etric-key-ref | ||||
| | | | {central-keys\ | | | | | {central-keys\ | |||
tor | tore-supported,asymmetric-keys}? | |||
e-supported,asymmetric-keys}? | ||||
| | | +--rw certificate? | | | | +--rw certificate? | |||
| | | leafref | | | | leafref | |||
| | +--:(raw-public-key) | | | +--:(raw-public-key) | |||
| | | {client-ident-raw-public-ke\ | | | | {client-ident-raw-public-ke\ | |||
y}? | y}? | |||
| | | +--rw raw-private-key | | | | +--rw raw-private-key | |||
| | | +--rw (inline-or-keystore) | | | | +--rw (inline-or-keystore) | |||
| | | +--:(inline) | | | | +--:(inline) | |||
| | | | {inline-definition\ | | | | | {inline-definition\ | |||
s-s | s-supported}? | |||
upported}? | ||||
| | | | +--rw inline-definition | | | | | +--rw inline-definition | |||
| | | | +--rw public-key-form\ | | | | | +--rw public-key-form\ | |||
at? | at? | |||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw public-key? | | | | | +--rw public-key? | |||
| | | | | binary | | | | | | binary | |||
| | | | +--rw private-key-for\ | | | | | +--rw private-key-for\ | |||
mat | mat? | |||
? | ||||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw (private-key-ty\ | | | | | +--rw (private-key-ty\ | |||
pe) | pe) | |||
| | | | +--:(cleartext-pri\ | | | | | +--:(cleartext-pri\ | |||
vat | vate-key) | |||
e-key) | ||||
| | | | | {cleartex\ | | | | | | {cleartex\ | |||
t-p | t-private-keys}? | |||
rivate-keys}? | ||||
| | | | | +--rw cleartext\ | | | | | | +--rw cleartext\ | |||
-pr | -private-key? | |||
ivate-key? | ||||
| | | | | binary | | | | | | binary | |||
| | | | +--:(hidden-privat\ | | | | | +--:(hidden-privat\ | |||
e-k | e-key) | |||
ey) | ||||
| | | | | {hidden-p\ | | | | | | {hidden-p\ | |||
riv | rivate-keys}? | |||
ate-keys}? | ||||
| | | | | +--rw hidden-pr\ | | | | | | +--rw hidden-pr\ | |||
iva | ivate-key? | |||
te-key? | ||||
| | | | | empty | | | | | | empty | |||
| | | | +--:(encrypted-pri\ | | | | | +--:(encrypted-pri\ | |||
vat | vate-key) | |||
e-key) | ||||
| | | | {encrypte\ | | | | | {encrypte\ | |||
d-p | d-private-keys}? | |||
rivate-keys}? | ||||
| | | | +--rw encrypted\ | | | | | +--rw encrypted\ | |||
-pr | -private-key | |||
ivate-key | ||||
| | | | +--rw encryp\ | | | | | +--rw encryp\ | |||
ted | ted-by | |||
-by | ||||
| | | | +--rw encryp\ | | | | | +--rw encryp\ | |||
ted | ted-value-format | |||
-value-format | ||||
| | | | | iden\ | | | | | | iden\ | |||
tit | tityref | |||
yref | ||||
| | | | +--rw encryp\ | | | | | +--rw encryp\ | |||
ted | ted-value | |||
-value | ||||
| | | | bina\ | | | | | bina\ | |||
ry | ry | |||
| | | +--:(central-keystore) | | | | +--:(central-keystore) | |||
| | | {central-keystore-\ | | | | {central-keystore-\ | |||
sup | supported,asymmetric-keys}? | |||
ported,asymmetric-keys}? | ||||
| | | +--rw central-keystore-r\ | | | | +--rw central-keystore-r\ | |||
efe | eference? | |||
rence? | ||||
| | | ks:central-asymm\ | | | | ks:central-asymm\ | |||
etr | etric-key-ref | |||
ic-key-ref | ||||
| | +--:(tls12-psk) | | | +--:(tls12-psk) | |||
| | | {client-ident-tls12-psk}? | | | | {client-ident-tls12-psk}? | |||
| | | +--rw tls12-psk | | | | +--rw tls12-psk | |||
| | | +--rw (inline-or-keystore) | | | | +--rw (inline-or-keystore) | |||
| | | | +--:(inline) | | | | | +--:(inline) | |||
| | | | | {inline-definition\ | | | | | | {inline-definition\ | |||
s-s | s-supported}? | |||
upported}? | ||||
| | | | | +--rw inline-definition | | | | | | +--rw inline-definition | |||
| | | | | +--rw key-format? | | | | | | +--rw key-format? | |||
| | | | | | identityref | | | | | | | identityref | |||
| | | | | +--rw (key-type) | | | | | | +--rw (key-type) | |||
| | | | | +--:(cleartext-sym\ | | | | | | +--:(cleartext-sym\ | |||
met | metric-key) | |||
ric-key) | ||||
| | | | | | +--rw cleartext\ | | | | | | | +--rw cleartext\ | |||
-sy | -symmetric-key? | |||
mmetric-key? | ||||
| | | | | | binary | | | | | | | binary | |||
| | | | | | {cleart\ | | | | | | | {cleart\ | |||
ext | ext-symmetric-keys}? | |||
-symmetric-keys}? | ||||
| | | | | +--:(hidden-symmet\ | | | | | | +--:(hidden-symmet\ | |||
ric | ric-key) | |||
-key) | ||||
| | | | | | {hidden-s\ | | | | | | | {hidden-s\ | |||
ymm | ymmetric-keys}? | |||
etric-keys}? | ||||
| | | | | | +--rw hidden-sy\ | | | | | | | +--rw hidden-sy\ | |||
mme | mmetric-key? | |||
tric-key? | ||||
| | | | | | empty | | | | | | | empty | |||
| | | | | +--:(encrypted-sym\ | | | | | | +--:(encrypted-sym\ | |||
met | metric-key) | |||
ric-key) | ||||
| | | | | {encrypte\ | | | | | | {encrypte\ | |||
d-s | d-symmetric-keys}? | |||
ymmetric-keys}? | ||||
| | | | | +--rw encrypted\ | | | | | | +--rw encrypted\ | |||
-sy | -symmetric-key | |||
mmetric-key | ||||
| | | | | +--rw encryp\ | | | | | | +--rw encryp\ | |||
ted | ted-by | |||
-by | ||||
| | | | | +--rw encryp\ | | | | | | +--rw encryp\ | |||
ted | ted-value-format | |||
-value-format | ||||
| | | | | | iden\ | | | | | | | iden\ | |||
tit | tityref | |||
yref | ||||
| | | | | +--rw encryp\ | | | | | | +--rw encryp\ | |||
ted | ted-value | |||
-value | ||||
| | | | | bina\ | | | | | | bina\ | |||
ry | ry | |||
| | | | +--:(central-keystore) | | | | | +--:(central-keystore) | |||
| | | | {central-keystore-\ | | | | | {central-keystore-\ | |||
sup | supported,symmetric-keys}? | |||
ported,symmetric-keys}? | ||||
| | | | +--rw central-keystore-r\ | | | | | +--rw central-keystore-r\ | |||
efe | eference? | |||
rence? | ||||
| | | | ks:central-symme\ | | | | | ks:central-symme\ | |||
tri | tric-key-ref | |||
c-key-ref | ||||
| | | +--rw id? | | | | +--rw id? | |||
| | | string | | | | string | |||
| | +--:(tls13-epsk) | | | +--:(tls13-epsk) | |||
| | {client-ident-tls13-epsk}? | | | {client-ident-tls13-epsk}? | |||
| | +--rw tls13-epsk | | | +--rw tls13-epsk | |||
| | +--rw (inline-or-keystore) | | | +--rw (inline-or-keystore) | |||
| | | +--:(inline) | | | | +--:(inline) | |||
| | | | {inline-definition\ | | | | | {inline-definition\ | |||
s-s | s-supported}? | |||
upported}? | ||||
| | | | +--rw inline-definition | | | | | +--rw inline-definition | |||
| | | | +--rw key-format? | | | | | +--rw key-format? | |||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw (key-type) | | | | | +--rw (key-type) | |||
| | | | +--:(cleartext-sym\ | | | | | +--:(cleartext-sym\ | |||
met | metric-key) | |||
ric-key) | ||||
| | | | | +--rw cleartext\ | | | | | | +--rw cleartext\ | |||
-sy | -symmetric-key? | |||
mmetric-key? | ||||
| | | | | binary | | | | | | binary | |||
| | | | | {cleart\ | | | | | | {cleart\ | |||
ext | ext-symmetric-keys}? | |||
-symmetric-keys}? | ||||
| | | | +--:(hidden-symmet\ | | | | | +--:(hidden-symmet\ | |||
ric | ric-key) | |||
-key) | ||||
| | | | | {hidden-s\ | | | | | | {hidden-s\ | |||
ymm | ymmetric-keys}? | |||
etric-keys}? | ||||
| | | | | +--rw hidden-sy\ | | | | | | +--rw hidden-sy\ | |||
mme | mmetric-key? | |||
tric-key? | ||||
| | | | | empty | | | | | | empty | |||
| | | | +--:(encrypted-sym\ | | | | | +--:(encrypted-sym\ | |||
met | metric-key) | |||
ric-key) | ||||
| | | | {encrypte\ | | | | | {encrypte\ | |||
d-s | d-symmetric-keys}? | |||
ymmetric-keys}? | ||||
| | | | +--rw encrypted\ | | | | | +--rw encrypted\ | |||
-sy | -symmetric-key | |||
mmetric-key | ||||
| | | | +--rw encryp\ | | | | | +--rw encryp\ | |||
ted | ted-by | |||
-by | ||||
| | | | +--rw encryp\ | | | | | +--rw encryp\ | |||
ted | ted-value-format | |||
-value-format | ||||
| | | | | iden\ | | | | | | iden\ | |||
tit | tityref | |||
yref | ||||
| | | | +--rw encryp\ | | | | | +--rw encryp\ | |||
ted | ted-value | |||
-value | ||||
| | | | bina\ | | | | | bina\ | |||
ry | ry | |||
| | | +--:(central-keystore) | | | | +--:(central-keystore) | |||
| | | {central-keystore-\ | | | | {central-keystore-\ | |||
sup | supported,symmetric-keys}? | |||
ported,symmetric-keys}? | ||||
| | | +--rw central-keystore-r\ | | | | +--rw central-keystore-r\ | |||
efe | eference? | |||
rence? | ||||
| | | ks:central-symme\ | | | | ks:central-symme\ | |||
tri | tric-key-ref | |||
c-key-ref | ||||
| | +--rw external-identity | | | +--rw external-identity | |||
| | | string | | | | string | |||
| | +--rw hash? | | | +--rw hash? | |||
| | | tlscmn:epsk-supported-\ | | | | tlscmn:epsk-supported-\ | |||
has | hash | |||
h | ||||
| | +--rw context? | | | +--rw context? | |||
| | | string | | | | string | |||
| | +--rw target-protocol? | | | +--rw target-protocol? | |||
| | | uint16 | | | | uint16 | |||
| | +--rw target-kdf? | | | +--rw target-kdf? | |||
| | uint16 | | | uint16 | |||
| +--rw server-authentication | | +--rw server-authentication | |||
| | +--rw ca-certs! {server-auth-x509-cert}\ | | | +--rw ca-certs! {server-auth-x509-cert}\ | |||
? | ? | |||
| | | +--rw (inline-or-truststore) | | | | +--rw (inline-or-truststore) | |||
| | | +--:(inline) | | | | +--:(inline) | |||
| | | | {inline-definitions-supp\ | | | | | {inline-definitions-supp\ | |||
ort | orted}? | |||
ed}? | ||||
| | | | +--rw inline-definition | | | | | +--rw inline-definition | |||
| | | | +--rw certificate* [name] | | | | | +--rw certificate* [name] | |||
| | | | +--rw name | | | | | +--rw name | |||
| | | | | string | | | | | | string | |||
| | | | +--rw cert-data | | | | | +--rw cert-data | |||
| | | | | trust-anchor-cer\ | | | | | | trust-anchor-cer\ | |||
t-c | t-cms | |||
ms | ||||
| | | | +---n certificate-expira\ | | | | | +---n certificate-expira\ | |||
tio | tion | |||
n | ||||
| | | | {certificate-exp\ | | | | | {certificate-exp\ | |||
ira | iration-notification}? | |||
tion-notification}? | ||||
| | | | +-- expiration-date | | | | | +-- expiration-date | |||
| | | | yang:date-and\ | | | | | yang:date-and\ | |||
-ti | -time | |||
me | ||||
| | | +--:(central-truststore) | | | | +--:(central-truststore) | |||
| | | {central-truststore-supp\ | | | | {central-truststore-supp\ | |||
ort | orted,certificates}? | |||
ed,certificates}? | ||||
| | | +--rw central-truststore-refer\ | | | | +--rw central-truststore-refer\ | |||
enc | ence? | |||
e? | ||||
| | | ts:central-certificate\ | | | | ts:central-certificate\ | |||
-ba | -bag-ref | |||
g-ref | ||||
| | +--rw ee-certs! {server-auth-x509-cert}\ | | | +--rw ee-certs! {server-auth-x509-cert}\ | |||
? | ? | |||
| | | +--rw (inline-or-truststore) | | | | +--rw (inline-or-truststore) | |||
| | | +--:(inline) | | | | +--:(inline) | |||
| | | | {inline-definitions-supp\ | | | | | {inline-definitions-supp\ | |||
ort | orted}? | |||
ed}? | ||||
| | | | +--rw inline-definition | | | | | +--rw inline-definition | |||
| | | | +--rw certificate* [name] | | | | | +--rw certificate* [name] | |||
| | | | +--rw name | | | | | +--rw name | |||
| | | | | string | | | | | | string | |||
| | | | +--rw cert-data | | | | | +--rw cert-data | |||
| | | | | trust-anchor-cer\ | | | | | | trust-anchor-cer\ | |||
t-c | t-cms | |||
ms | ||||
| | | | +---n certificate-expira\ | | | | | +---n certificate-expira\ | |||
tio | tion | |||
n | ||||
| | | | {certificate-exp\ | | | | | {certificate-exp\ | |||
ira | iration-notification}? | |||
tion-notification}? | ||||
| | | | +-- expiration-date | | | | | +-- expiration-date | |||
| | | | yang:date-and\ | | | | | yang:date-and\ | |||
-ti | -time | |||
me | ||||
| | | +--:(central-truststore) | | | | +--:(central-truststore) | |||
| | | {central-truststore-supp\ | | | | {central-truststore-supp\ | |||
ort | orted,certificates}? | |||
ed,certificates}? | ||||
| | | +--rw central-truststore-refer\ | | | | +--rw central-truststore-refer\ | |||
enc | ence? | |||
e? | ||||
| | | ts:central-certificate\ | | | | ts:central-certificate\ | |||
-ba | -bag-ref | |||
g-ref | ||||
| | +--rw raw-public-keys! | | | +--rw raw-public-keys! | |||
| | | {server-auth-raw-public-key}? | | | | {server-auth-raw-public-key}? | |||
| | | +--rw (inline-or-truststore) | | | | +--rw (inline-or-truststore) | |||
| | | +--:(inline) | | | | +--:(inline) | |||
| | | | {inline-definitions-supp\ | | | | | {inline-definitions-supp\ | |||
ort | orted}? | |||
ed}? | ||||
| | | | +--rw inline-definition | | | | | +--rw inline-definition | |||
| | | | +--rw public-key* [name] | | | | | +--rw public-key* [name] | |||
| | | | +--rw name | | | | | +--rw name | |||
| | | | | string | | | | | | string | |||
| | | | +--rw public-key-format | | | | | +--rw public-key-format | |||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw public-key | | | | | +--rw public-key | |||
| | | | binary | | | | | binary | |||
| | | +--:(central-truststore) | | | | +--:(central-truststore) | |||
| | | {central-truststore-supp\ | | | | {central-truststore-supp\ | |||
ort | orted,public-keys}? | |||
ed,public-keys}? | ||||
| | | +--rw central-truststore-refer\ | | | | +--rw central-truststore-refer\ | |||
enc | ence? | |||
e? | ||||
| | | ts:central-public-key-\ | | | | ts:central-public-key-\ | |||
bag | bag-ref | |||
-ref | ||||
| | +--rw tls12-psks? empty | | | +--rw tls12-psks? empty | |||
| | | {server-auth-tls12-psk}? | | | | {server-auth-tls12-psk}? | |||
| | +--rw tls13-epsks? empty | | | +--rw tls13-epsks? empty | |||
| | {server-auth-tls13-epsk}? | | | {server-auth-tls13-epsk}? | |||
| +--rw hello-params {tlscmn:hello-params}? | | +--rw hello-params {tlscmn:hello-params}? | |||
| | +--rw tls-versions | | | +--rw tls-versions | |||
| | | +--rw min? identityref | | | | +--rw min? identityref | |||
| | | +--rw max? identityref | | | | +--rw max? identityref | |||
| | +--rw cipher-suites | | | +--rw cipher-suites | |||
| | +--rw cipher-suite* | | | +--rw cipher-suite* | |||
| | tlscsa:tls-cipher-suite-algo\ | | | tlscsa:tls-cipher-suite-algo\ | |||
rit | rithm | |||
hm | ||||
| +--rw keepalives {tls-client-keepalives}? | | +--rw keepalives {tls-client-keepalives}? | |||
| +--rw peer-allowed-to-send? empty | | +--rw peer-allowed-to-send? empty | |||
| +--rw test-peer-aliveness! | | +--rw test-peer-aliveness! | |||
| +--rw max-wait? uint16 | | +--rw max-wait? uint16 | |||
| +--rw max-attempts? uint8 | | +--rw max-attempts? uint8 | |||
+--rw filter | +--rw 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}? | |||
skipping to change at line 2286 ¶ | skipping to change at line 2145 ¶ | |||
| | | +--rw encrypted-private-key | | | | +--rw encrypted-private-key | |||
| | | +--rw encrypted-by | | | | +--rw encrypted-by | |||
| | | +--rw encrypted-value-format | | | | +--rw encrypted-value-format | |||
| | | | identityref | | | | | identityref | |||
| | | +--rw encrypted-value | | | | +--rw encrypted-value | |||
| | | binary | | | | binary | |||
| | +--rw cert-data? | | | +--rw cert-data? | |||
| | | end-entity-cert-cms | | | | end-entity-cert-cms | |||
| | +---n certificate-expiration | | | +---n certificate-expiration | |||
| | | {certificate-expiration-notificati\ | | | | {certificate-expiration-notificati\ | |||
on} | on}? | |||
? | ||||
| | | +-- expiration-date | | | | +-- expiration-date | |||
| | | yang:date-and-time | | | | yang:date-and-time | |||
| | +---x generate-csr {csr-generation}? | | | +---x generate-csr {csr-generation}? | |||
| | +---w input | | | +---w input | |||
| | | +---w csr-format identityref | | | | +---w csr-format identityref | |||
| | | +---w csr-info csr-info | | | | +---w csr-info csr-info | |||
| | +--ro output | | | +--ro output | |||
| | +--ro (csr-type) | | | +--ro (csr-type) | |||
| | +--:(p10-csr) | | | +--:(p10-csr) | |||
| | +--ro p10-csr? p10-csr | | | +--ro p10-csr? p10-csr | |||
| +--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 | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | </section> | |||
</section> | </section> | |||
</section> | <section> | |||
<name>Implementer Guidelines</name> | ||||
<section title="Implementer Guidelines"> | <section anchor="extending_facilities"> | |||
<section anchor="extending_facilities" title="Extending Facilities"> | <name>Extending Facilities</name> | |||
<t>Many vendors extend the list of facilities available for logging in | <t>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 <xref target="RFC5424"/>. Thus, such facil ities | |||
apply for local syslog-like logging functionality.</t> | apply for local syslog-like logging functionality.</t> | |||
<t>The following is an example that shows how additional facilities | ||||
could be added to the list of available facilities (two facilities are a | ||||
dded in this example):</t> | ||||
<t>The following is an example that shows how additional facilities | <sourcecode type="yang" name="example-vendor-syslog-types@2025-03-03.yan | |||
could be added to the list of available facilities (in this example | g"><![CDATA[ | |||
two facilities are added):</t> | ||||
<figure> | ||||
<artwork align="left"><![CDATA[ | ||||
[note: '\' line wrapping for formatting only] | ||||
module example-vendor-syslog-types { | module example-vendor-syslog-types { | |||
namespace "http://example.com/ns/vendor-syslog-types"; | namespace "http://example.com/ns/vendor-syslog-types"; | |||
prefix vendor-syslogtypes; | prefix vendor-syslogtypes; | |||
import ietf-syslog { | import ietf-syslog { | |||
prefix syslog; | prefix syslog; | |||
} | } | |||
organization | organization | |||
"Example, Inc."; | "Example, Inc."; | |||
contact | contact | |||
"Example, Inc. | "Example, Inc. | |||
Customer Service | Customer Service | |||
E-mail: syslog-yang@example.com"; | Email: syslog-yang@example.com"; | |||
description | description | |||
"This module contains a collection of vendor-specific YANG type | "This module contains a collection of vendor-specific YANG type | |||
definitions for SYSLOG."; | definitions for Syslog."; | |||
revision 2024-03-19 { | revision 2025-03-03 { | |||
description | description | |||
"Version 1.0"; | "Version 1.0"; | |||
reference | reference | |||
"Vendor SYSLOG Types: SYSLOG YANG Model"; | "Vendor Syslog Types: Syslog YANG Module"; | |||
} | } | |||
identity vendor_specific_type_1 { | identity vendor_specific_type_1 { | |||
base syslog:syslog-facility; | base syslog:syslog-facility; | |||
description | description | |||
"Adding vendor specific type 1 to syslog-facility"; | "Adding vendor-specific type 1 to syslog-facility"; | |||
} | } | |||
identity vendor_specific_type_2 { | identity vendor_specific_type_2 { | |||
base syslog:syslog-facility; | base syslog:syslog-facility; | |||
description | description | |||
"Adding vendor specific type 2 to syslog-facility"; | "Adding vendor-specific type 2 to syslog-facility"; | |||
} | } | |||
} | }]]></sourcecode> | |||
]]></artwork> | </section> | |||
</figure> | <section> | |||
</section> | <name>Syslog Terminal Output</name> | |||
<section title="Syslog Terminal Output"> | <t>Terminal output with requirements more complex than the console | |||
<t>Terminal output with requirements more complex than the console | subtree currently provides are expected to be supported via vendor | |||
subtree currently provides, are expected to be supported via vendor | ||||
extensions rather than handled via the file subtree.</t> | extensions rather than handled via the file subtree.</t> | |||
</section> | </section> | |||
<section title="Syslog File Naming Convention"> | <section> | |||
<t>The syslog/file/log-file/file-rotation container contains | <name>Syslog File Naming Convention</name> | |||
<t>The syslog/file/log-file/file-rotation container contains | ||||
configuration parameters for syslog file rotation. This section | configuration parameters for syslog file rotation. This section | |||
describes how these fields might be used by an implementer to name | describes how these fields might be used by an implementer to name | |||
syslog files in a rotation process. This information is offered as | syslog files in a rotation process. This information is offered as | |||
an informative guide only.</t> | an informative guide only.</t> | |||
<t>When an active syslog file with a name specified by log-file/name | ||||
<t>When an active syslog file with a name specified by log-file/name, | ||||
reaches log-file/max-file-size and/or syslog events arrive after the | reaches log-file/max-file-size and/or syslog events arrive after the | |||
period specified by log-file/rollover, the logging system can close | period specified by log-file/rollover, the logging system can close | |||
the file, can compress it, and can name the archive file <log-file/ | the file, compress it, and name the archive file <log-file/ | |||
name>.0.gz. The logging system can then open a new active syslog | name>.0.gz. The logging system can then open a new active syslog | |||
file <log-file/name>.</t> | file <log-file/name>.</t> | |||
<t>When the new syslog file reaches either of the size limits referenced | ||||
above, <log-file/name>.0.gz can be renamed <log-file/name>.1.gz an | ||||
d | ||||
the new syslog file can be closed, compressed, and renamed <log-file/ | ||||
name>.0.gz. Each time that a new syslog file is closed, each of the | ||||
prior syslog archive files named <log-file/name>.<n>.gz can be | ||||
renamed to <log-file/name>.<n + 1>.gz.</t> | ||||
<t>When the new syslog file reaches either of the size limits referenced | <!--[rfced] FYI, we have updated this list as follows. Please review | |||
above, <log-file/name>.0.gz can be renamed <log-file/name>.1.gz and | whether this conveys the intended meaning. | |||
the new syslog file can be closed, compressed and renamed <log-file/ | ||||
name>.0.gz. Each time that a new syslog file is closed, each of the | ||||
prior syslog archive files named <log-file/name>.<n>.gz can be | ||||
renamed to <log-file/name>.<n + 1>.gz.</t> | ||||
<t>Removal of archive log files could occur when either or both:</t> | Original: | |||
Removal of archive log files could occur when either or both: | ||||
<t>- log-file/number-of-files specified - the logging system can create | - log-file/number-of-files specified - the logging system can create | |||
up to log-file/number-of-files syslog archive files after which, the | up to log-file/number-of-files syslog archive files after which, the | |||
contents of the oldest archived file could be overwritten.</t> | contents of the oldest archived file could be overwritten. | |||
<t>- log-file/retention specified - the logging system can remove those | - log-file/retention specified - the logging system can remove those | |||
syslog archive files whose file expiration time (file creation time | syslog archive files whose file expiration time (file creation time | |||
plus the specified log-file/retention time) is prior to the current | plus the specified log-file/retention time) is prior to the current | |||
time.</t> | time. | |||
</section> | ||||
</section> | ||||
<!-- Change Log | Current: | |||
Removal of archive log files could occur when either or both: | ||||
* log-file/number-of-files is specified. The logging system can | ||||
create up to log-file/number-of-files syslog archive files, after | ||||
which the contents of the oldest archived file could be | ||||
overwritten. | ||||
* log-file/retention is specified. The logging system can remove | ||||
those syslog archive files whose file expiration time (file | ||||
creation time plus the specified log-file/retention time) is prior | ||||
to the current time. | ||||
--> | ||||
<t>Removal of archive log files could occur when either or both:</t> | ||||
<ul> | ||||
<li>log-file/number-of-files is specified. The logging system can create | ||||
up to log-file/number-of-files syslog archive files, after which the | ||||
contents of the oldest archived file could be overwritten.</li> | ||||
<li>log-file/retention is specified. The logging system can remove those | ||||
syslog archive files whose file expiration time (file creation time | ||||
plus the specified log-file/retention time) is prior to the current | ||||
time.</li> | ||||
</ul> | ||||
</section> | ||||
</section> | ||||
<section numbered="false" anchor="Acknowledgements"> | ||||
<name>Acknowledgements</name> | ||||
<t>The authors wish to thank the following who commented on this | ||||
proposal:</t> | ||||
<t><contact fullname="Andy Bierman"/>, <contact fullname="Martin | ||||
Bjorklund"/>, <contact fullname="Alex Campbell"/>, <contact | ||||
fullname="Alex Clemm"/>, <contact fullname="Francis Dupont"/>, <contact | ||||
fullname="Jim Gibson"/>, <contact fullname="Jeffrey Haas"/>, <contact | ||||
fullname="Bob Harold"/>, <contact fullname="John Heasley"/>, <contact | ||||
fullname="Giles Heron"/>, <contact fullname="Lisa Huang"/>, <contact | ||||
fullname="Mahesh Jethanandani"/>, <contact fullname="Warren Kumari"/>, | ||||
<contact fullname="Jeffrey K Lange"/>, <contact fullname="Jan | ||||
Lindblad"/>, <contact fullname="Chris Lonvick"/>, <contact | ||||
fullname="Alexey Melnikov"/>, <contact fullname="Kathleen Moriarty"/>, | ||||
<contact fullname="Tom Petch"/>, <contact fullname="Adam Roach"/>, | ||||
<contact fullname="Juergen Schoenwaelder"/>, <contact fullname="Phil | ||||
Shafer"/>, <contact fullname="Yaron Sheffer"/>, <contact fullname="Jason | ||||
Sterne"/>, <contact fullname="Peter Van Horne"/>, <contact | ||||
fullname="Kent Watsen"/>, <contact fullname="Bert Wijnen"/>, <contact | ||||
fullname="Dale R Worley"/>, and <contact fullname="Aleksandr | ||||
Zhdankin"/>.</t> | ||||
</section> | ||||
<!-- Possibly a 'Contributors' section ... --> | ||||
<!-- Change Log | ||||
v07 2016-03-20 CW Converted the document to XML format and incorporated | v07 2016-03-20 CW Converted the document to XML format and incorporated | |||
changes from Martin Bjorklund and Tom Petch. | changes from Martin Bjorklund and Tom Petch. | |||
v08 2016-05-07 CW Incorporated changes from Benoit Claise, Tom Petch, | v08 2016-05-07 CW Incorporated changes from Benoit Claise, Tom Petch, | |||
and Mahesh Jethanandani. | and Mahesh Jethanandani. | |||
v09 2016-07-08 CW Incorporated changes from Jason Sterne, Tom Petch, | v09 2016-07-08 CW Incorporated changes from Jason Sterne, Tom Petch, | |||
and Juergen Schoenwaelder. | and Juergen Schoenwaelder. | |||
skipping to change at line 2444 ¶ | skipping to change at line 2347 ¶ | |||
v19 2018-01-12 CW Incorporated changes from various contributors. | v19 2018-01-12 CW Incorporated changes from various contributors. | |||
v20 2018-02-09 CW Incorporated changes from various contributors. | v20 2018-02-09 CW Incorporated changes from various contributors. | |||
v21 2018-02-14 CW Incorporated changes from various contributors. | v21 2018-02-14 CW Incorporated changes from various contributors. | |||
v22 2018-02-21 CW Incorporated changes from Yaron Sheffer and Ron Bonica. | v22 2018-02-21 CW Incorporated changes from Yaron Sheffer and Ron Bonica. | |||
v23 2018-03-01 CW Incorporated changes from Kent. --> | v23 2018-03-01 CW Incorporated changes from Kent. --> | |||
<!-- [rfced] We noticed that the following term is used inconsistently. If | ||||
there are no objections, we will use the form on the right. | ||||
leafs vs. leaves | ||||
--> | ||||
<!-- [rfced] Please review the "Inclusive Language" portion of the online | ||||
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
and let us know if any changes are needed. Updates of this nature typically | ||||
result in more precise language, which is helpful for readers. | ||||
Note that our script did not flag any words in particular, but this should | ||||
still be reviewed as a best practice. | ||||
--> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 311 change blocks. | ||||
804 lines changed or deleted | 775 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |