rfc9194.original | rfc9194.txt | |||
---|---|---|---|---|
Network Working Group C. Hopps | Internet Engineering Task Force (IETF) C. Hopps | |||
Internet-Draft LabN Consulting, L.L.C. | Request for Comments: 9194 LabN Consulting, L.L.C. | |||
Intended status: Standards Track 1 January 2022 | Category: Standards Track October 2022 | |||
Expires: 5 July 2022 | ISSN: 2070-1721 | |||
YANG Module for IS-IS Reverse Metric | A YANG Module for IS-IS Reverse Metric | |||
draft-ietf-lsr-yang-isis-reverse-metric-06 | ||||
Abstract | Abstract | |||
This document defines a YANG module for managing the reverse metric | This document defines a YANG module for managing the reverse metric | |||
extension to the Intermediate System to Intermediate System intra- | extension to the Intermediate System to Intermediate System (IS-IS) | |||
domain routeing information exchange protocol (IS-IS). | intra-domain routing information exchange protocol. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 5 July 2022. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9194. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. YANG Management . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. YANG Management | |||
2.1. YANG Tree . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2.1. YANG Tree | |||
2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. YANG Module | |||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 3. IANA Considerations | |||
3.1. Updates to the IETF XML Registry . . . . . . . . . . . . 8 | 3.1. Updates to the IETF XML Registry | |||
3.2. Updates to the YANG Module Names Registry . . . . . . . . 8 | 3.2. Updates to the YANG Module Names Registry | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 4. Security Considerations | |||
5. Normative References . . . . . . . . . . . . . . . . . . . . 10 | 5. Normative References | |||
6. Informative References . . . . . . . . . . . . . . . . . . . 11 | 6. Informative References | |||
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 12 | Appendix A. Examples | |||
A.1. Enablement Example using XML YANG Instance Data . . . . . 12 | A.1. Enablement Example Using XML YANG Instance Data | |||
A.2. Usage Example using XML YANG Instance Data . . . . . . . 13 | A.2. Usage Example Using XML YANG Instance Data | |||
A.3. Usage Example using JSON YANG Instance Data . . . . . . . 14 | A.3. Usage Example Using JSON YANG Instance Data | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 15 | Author's Address | |||
1. Introduction | 1. Introduction | |||
This document defines a YANG module for managing the reverse metric | This document defines a YANG module for managing the reverse metric | |||
extension to IS-IS [RFC8500], [ISO10589]. Please refer to [RFC8500] | extension to IS-IS [RFC8500] [ISO-10589]. Please refer to [RFC8500] | |||
for the description and definition of the functionality managed by | for the description and definition of the functionality managed by | |||
this module. | this module. | |||
The YANG data model described in this document conforms to the | The YANG data model described in this document conforms to the | |||
Network Management Datastore Architecture defined in [RFC8342]. | Network Management Datastore Architecture defined in [RFC8342]. | |||
2. YANG Management | 2. YANG Management | |||
2.1. YANG Tree | 2.1. YANG Tree | |||
The following is the YANG tree diagram ([RFC8340]) for the IS-IS | The following is the YANG tree diagram [RFC8340] for the IS-IS | |||
reverse metric extension additions. | reverse metric extension additions. | |||
module: ietf-isis-reverse-metric | module: ietf-isis-reverse-metric | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/isis:isis: | /rt:control-plane-protocol/isis:isis: | |||
+--rw reverse-metric | +--rw reverse-metric | |||
+--rw enable-receive? boolean | +--rw enable-receive? boolean | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/isis:isis/isis:interfaces | /rt:control-plane-protocol/isis:isis/isis:interfaces | |||
/isis:interface: | /isis:interface: | |||
skipping to change at page 3, line 45 ¶ | skipping to change at line 119 ¶ | |||
+--ro metric? isis:wide-metric | +--ro metric? isis:wide-metric | |||
+--ro flags | +--ro flags | |||
| +--ro whole-lan? boolean | | +--ro whole-lan? boolean | |||
| +--ro allow-unreachable? boolean | | +--ro allow-unreachable? boolean | |||
+--ro te-metric? uint32 | +--ro te-metric? uint32 | |||
2.2. YANG Module | 2.2. YANG Module | |||
The following is the YANG module for managing the IS-IS reverse | The following is the YANG module for managing the IS-IS reverse | |||
metric functionality defined in [RFC8500]. It imports modules from | metric functionality defined in [RFC8500]. It imports modules from | |||
the following RFCs: [RFC8349], [I-D.ietf-isis-yang-isis-cfg]. | [RFC8349] and [RFC9130]. | |||
This YANG module uses the same "Per-Level" hierarchical configuration | This YANG module uses the same per-level hierarchical configuration | |||
structure as is defined in the augmented base module. | structure as that defined in the augmented base module. | |||
<CODE BEGINS> file "ietf-isis-reverse-metric@2022-01-01.yang" | <CODE BEGINS> | |||
file "ietf-isis-reverse-metric@2022-02-03.yang" | ||||
module ietf-isis-reverse-metric { | module ietf-isis-reverse-metric { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric"; | namespace "urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric"; | |||
prefix isis-rmetric; | prefix isis-rmetric; | |||
import ietf-routing { | import ietf-routing { | |||
prefix rt; | prefix rt; | |||
reference | reference | |||
"RFC8349: | "RFC 8349: A YANG Data Model for Routing Management | |||
A YANG Data Model for Routing Management (NMDA Version)"; | (NMDA Version)"; | |||
} | } | |||
import ietf-isis { | import ietf-isis { | |||
prefix isis; | prefix isis; | |||
reference | reference | |||
"draft-ietf-isis-yang-isis-cfg-42: | "RFC 9130: YANG Data Model for the IS-IS Protocol"; | |||
YANG Data Model for IS-IS Protocol"; | ||||
} | } | |||
organization | organization | |||
"IETF LSR Working Group (LSR)"; | "IETF LSR Working Group (LSR)"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/lsr/> | "WG Web: <https://datatracker.ietf.org/wg/lsr/> | |||
WG List: <mailto:lsr@ietf.org> | WG List: <mailto:lsr@ietf.org> | |||
Author: Christian Hopps | Author: Christian Hopps | |||
<mailto:chopps@chopps.org>"; | <mailto:chopps@chopps.org>"; | |||
// RFC Ed.: replace XXXX with actual RFC number and | ||||
// remove this note. | ||||
description | description | |||
"This module defines the configuration and operational state for | "This module defines the configuration and operational state | |||
managing the IS-IS reverse metric functionality [RFC8500]. | for managing the IS-IS reverse metric functionality | |||
(RFC 8500). | ||||
Copyright (c) 2022 IETF Trust and the persons identified as | Copyright (c) 2022 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Revised BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC 9194; see the | |||
(https://www.rfc-editor.org/info/rfcXXXX>); see the RFC itself | RFC itself for full legal notices."; | |||
for full legal notices."; | reference | |||
"RFC 8500: IS-IS Routing with Reverse Metric"; | ||||
revision 2022-01-01 { | revision 2022-02-03 { | |||
description "Initial Revision"; | description | |||
reference "RFC XXXX: YANG IS-IS Reverse Metric"; | "Initial revision."; | |||
reference | ||||
"RFC 9194: A YANG Module for IS-IS Reverse Metric"; | ||||
} | } | |||
grouping reverse-metric-data { | grouping reverse-metric-data { | |||
description "IS-IS reverse metric data."; | description | |||
"IS-IS reverse metric data."; | ||||
leaf metric { | leaf metric { | |||
type isis:wide-metric; | type isis:wide-metric; | |||
description "The reverse metric value."; | description | |||
reference "RFC8500, Section 2"; | "The reverse metric value."; | |||
reference | ||||
"RFC 8500: IS-IS Routing with Reverse Metric, Section 2"; | ||||
} | } | |||
container flags { | container flags { | |||
description "The reverse metric flag values."; | description | |||
"The reverse metric flag values."; | ||||
leaf whole-lan { | leaf whole-lan { | |||
type boolean; | type boolean; | |||
description | description | |||
"The 'whole LAN' or W-bit. If true then a DIS processing | "The 'Whole LAN' bit (W bit) (RFC 8500). If true, then | |||
this reverse metric will add the metric value to all the | a Designated Intermediate System (DIS) processing this | |||
nodes it advertises in the pseudo-node LSP for this | reverse metric will add the metric value to all the | |||
interface. Otherwise, it will only increment the metric | nodes it advertises in the pseudonode Link State | |||
for the advertising node in the pseudo-node LSP for this | Protocol Data Unit (LSP) for this interface. | |||
interface."; | Otherwise, it will only increment the metric for the | |||
reference "RFC8500, Section 2"; | advertising node in the pseudonode LSP for this | |||
interface."; | ||||
reference | ||||
"RFC 8500: IS-IS Routing with Reverse Metric, | ||||
Section 2"; | ||||
} | } | |||
leaf allow-unreachable { | leaf allow-unreachable { | |||
type boolean; | type boolean; | |||
description | description | |||
"The 'allow-unreachable' or U-bit. If true it allows the | "The 'Unreachable' bit (U bit) (RFC 8500). If true, it | |||
neighbor to increment the overall metric up to 2^24-1 | allows the neighbor to increment the overall metric up | |||
rather than the lesser maximum of 2^24-2. If the metric | to 2^24-1 rather than the lesser maximum of 2^24-2. | |||
is then set by the neighbor to 2^24-1, it will cause | If the metric is then set by the neighbor to 2^24-1, | |||
traffic to stop using, rather than avoid using, the | it will cause traffic to stop using, rather than avoid | |||
interface."; | using, the interface."; | |||
reference "RFC8500, Section 2"; | reference | |||
"RFC 8500: IS-IS Routing with Reverse Metric, | ||||
Section 2"; | ||||
} | } | |||
} | } | |||
} | } | |||
grouping reverse-metric-if-config-data { | grouping reverse-metric-if-config-data { | |||
description "IS-IS reverse metric config data."; | description | |||
"IS-IS reverse metric config data."; | ||||
uses reverse-metric-data; | uses reverse-metric-data; | |||
leaf exclude-te-metric { | leaf exclude-te-metric { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"If true and there is a TE metric defined for this | "If true and there is a TE metric defined for this | |||
interface then do not send the TE metric sub-TLV in the | interface, then do not send the Traffic Engineering | |||
reverse metric TLV."; | Metric sub-TLV in the Reverse Metric TLV."; | |||
reference "RFC8500, Section 2"; | reference | |||
"RFC 8500: IS-IS Routing with Reverse Metric, Section 2"; | ||||
} | } | |||
} | } | |||
grouping tlv16-reverse-metric { | grouping tlv16-reverse-metric { | |||
description "IS-IS reverse metric TLV data."; | description | |||
"IS-IS Reverse Metric TLV data."; | ||||
uses reverse-metric-data; | uses reverse-metric-data; | |||
leaf te-metric { | leaf te-metric { | |||
type uint32; | type uint32; | |||
description | description | |||
"The TE metric value from the sub-TLV if present."; | "The TE metric value from the sub-TLV, if present."; | |||
reference "RFC8500, Section 2"; | reference | |||
"RFC 8500: IS-IS Routing with Reverse Metric, Section 2"; | ||||
} | } | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+"rt:control-plane-protocol/" | + "rt:control-plane-protocol/" | |||
+"isis:isis" { | + "isis:isis" { | |||
when "derived-from-or-self(../rt:type, 'isis:isis')" { | when "derived-from-or-self(../rt:type, 'isis:isis')" { | |||
description | description | |||
"This augment is only valid when routing protocol instance | "This augment is only valid when the routing protocol | |||
type is 'isis'."; | instance type is 'isis'."; | |||
} | } | |||
description | description | |||
"The reverse metric configuration for an IS-IS instance."; | "The reverse metric configuration for an IS-IS instance."; | |||
container reverse-metric { | container reverse-metric { | |||
description "Global reverse metric configuration."; | description | |||
"Global reverse metric configuration."; | ||||
leaf enable-receive { | leaf enable-receive { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"Enable handling of reverse metric announcements from | "Enables handling of reverse metric announcements from | |||
neighbors. By default, reverse metric handling is disabled | neighbors. By default, reverse metric handling is | |||
and must be explicitly enabled through this | disabled and must be explicitly enabled through this | |||
configuration."; | configuration."; | |||
} | } | |||
} | } | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+"rt:control-plane-protocol/" | + "rt:control-plane-protocol/" | |||
+"isis:isis/isis:interfaces/isis:interface" { | + "isis:isis/isis:interfaces/isis:interface" { | |||
when "derived-from-or-self(../../../rt:type, 'isis:isis')" { | when "derived-from-or-self(../../../rt:type, 'isis:isis')" { | |||
description | description | |||
"This augment is only valid when routing protocol instance | "This augment is only valid when the routing protocol | |||
type is 'isis'."; | instance type is 'isis'."; | |||
} | } | |||
description | description | |||
"The reverse metric configuration for an interface."; | "The reverse metric configuration for an interface."; | |||
container reverse-metric { | container reverse-metric { | |||
description | description | |||
"Announce a reverse metric to neighbors. The configuration | "Announces a reverse metric to neighbors. The | |||
is hierarchical and follows the same behavior as defined | configuration is hierarchical and follows the same | |||
for 'Per-Level' values in the augmented base module. | behavior as that defined for per-level values in the | |||
augmented base module. | ||||
Reverse metric operation is enabled by the configuration of | Reverse metric operation is enabled by the configuration | |||
a reverse-metric metric value at either the top level or | of a 'reverse-metric' metric value either at the top | |||
under a level-specific container node. If a reverse-metric | level or under a level-specific container node. If a | |||
metric value is only specified under a level-specific | 'reverse-metric' metric value is only specified under a | |||
container node then operation is only enabled at the | level-specific container node, then operation is only | |||
specified level. | enabled at the specified level. | |||
As the reverse metric is advertised in IIH PDUs, level | As the reverse metric is advertised in IS-IS Hello | |||
specific configuration is only available for broadcast | Protocol Data Units (IIH PDUs), level-specific | |||
interface types"; | configuration is only available for broadcast interface | |||
types."; | ||||
uses reverse-metric-if-config-data { | uses reverse-metric-if-config-data { | |||
refine "flags/whole-lan" { | refine "flags/whole-lan" { | |||
default false; | default "false"; | |||
} | } | |||
refine "flags/allow-unreachable" { | refine "flags/allow-unreachable" { | |||
default false; | default "false"; | |||
} | } | |||
} | } | |||
container level-1 { | container level-1 { | |||
when '../../isis:interface-type = "broadcast"'; | when '../../isis:interface-type = "broadcast"'; | |||
description | description | |||
"Announce a reverse metric to level-1 neighbors."; | "Announces a reverse metric to level-1 neighbors."; | |||
uses reverse-metric-if-config-data; | uses reverse-metric-if-config-data; | |||
} | } | |||
container level-2 { | container level-2 { | |||
when '../../isis:interface-type = "broadcast"'; | when '../../isis:interface-type = "broadcast"'; | |||
description | description | |||
"Announce a reverse metric to level-2 neighbors."; | "Announces a reverse metric to level-2 neighbors."; | |||
uses reverse-metric-if-config-data; | uses reverse-metric-if-config-data; | |||
} | } | |||
} | } | |||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+"rt:control-plane-protocol/" | + "rt:control-plane-protocol/" | |||
+"isis:isis/isis:interfaces/isis:interface/" | + "isis:isis/isis:interfaces/isis:interface/" | |||
+"isis:adjacencies/isis:adjacency" { | + "isis:adjacencies/isis:adjacency" { | |||
when "derived-from-or-self(../../../../../rt:type, | when "derived-from-or-self(../../../../../rt:type, | |||
'isis:isis')" { | 'isis:isis')" { | |||
description | description | |||
"This augment is only valid when routing protocol instance | "This augment is only valid when the routing protocol | |||
type is 'isis'"; | instance type is 'isis'."; | |||
} | } | |||
description | description | |||
"The reverse metric state advertised by an adjacency."; | "The reverse metric state advertised by an adjacency."; | |||
container reverse-metric { | container reverse-metric { | |||
description "IS-IS reverse metric TLV data."; | description | |||
"IS-IS Reverse Metric TLV data."; | ||||
uses tlv16-reverse-metric; | uses tlv16-reverse-metric; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
3. IANA Considerations | 3. IANA Considerations | |||
3.1. Updates to the IETF XML Registry | 3.1. Updates to the IETF XML Registry | |||
This document registers a URI in the "IETF XML Registry" [RFC3688]. | This document registers a URI in the "IETF XML Registry" [RFC3688]. | |||
Following the format in [RFC3688], the following registration has | Following the format in [RFC3688], the following registration has | |||
been made: | been made: | |||
URI urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric | URI: urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric | |||
Registrant Contact: The IESG. | ||||
Registrant Contact The IESG. | XML: N/A; the requested URI is an XML namespace. | |||
XML N/A; the requested URI is an XML namespace. | ||||
3.2. Updates to the YANG Module Names Registry | 3.2. Updates to the YANG Module Names Registry | |||
This document registers one YANG module in the "YANG Module Names" | This document registers one YANG module in the "YANG Module Names" | |||
registry [RFC6020]. Following the format in [RFC6020], the following | registry [RFC6020]. Following the format in [RFC6020], the following | |||
registration has been made: | registration has been made: | |||
name ietf-isis-reverse-metric | Name: ietf-isis-reverse-metric | |||
Maintained by IANA? N | ||||
namespace urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric | Namespace: urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric | |||
Prefix: isis-rmetric | ||||
prefix isis-rmetric | Reference: RFC 9194 | |||
reference RFC XXXX (RFC Ed.: replace XXX with actual RFC number and | ||||
remove this note.) | ||||
4. Security Considerations | 4. Security Considerations | |||
The YANG module specified in this document defines a schema for data | The YANG module specified in this document defines a schema for data | |||
that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
[RFC8446]. | [RFC8446]. | |||
The NETCONF access control model [RFC8341] provides the means to | The Network Configuration Access Control Model (NACM) [RFC8341] | |||
restrict access for particular NETCONF or RESTCONF users to a | provides the means to restrict access for particular NETCONF or | |||
preconfigured subset of all available NETCONF or RESTCONF protocol | RESTCONF users to a preconfigured subset of all available NETCONF or | |||
operations and content. | RESTCONF protocol operations and content. | |||
The YANG module defined in this document can enable, disable and | The YANG module defined in this document can enable, disable, and | |||
modify the behavior of metrics used by routing. For the security | modify the behavior of metrics used by routing. For the security | |||
implications regarding these types of changes consult [RFC8500] which | implications regarding these types of changes, consult [RFC8500] -- | |||
defines the functionality as well as [I-D.ietf-isis-yang-isis-cfg]. | which defines the functionality -- as well as [RFC9130]. | |||
There are a number of data nodes defined in this YANG module that are | There are a number of data nodes defined in this YANG module that are | |||
writable/creatable/deletable (i.e., "config true", which is the | writable/creatable/deletable (i.e., config true, which is the | |||
default). These data nodes may be considered sensitive or vulnerable | default). These data nodes may be considered sensitive or vulnerable | |||
in some network environments. Write operations (e.g., edit-config) | in some network environments. Write operations (e.g., edit-config) | |||
to these data nodes without proper protection can have a negative | to these data nodes without proper protection can have a negative | |||
effect on network operations. These YANG nodes correspond directly | effect on network operations. These YANG nodes correspond directly | |||
to the RFC 8500 functionality and the security considerations of the | to the functionality provided in RFC 8500, and the security | |||
functionality are described in RFC 8500. | considerations of the functionality are described in RFC 8500. These | |||
are the subtrees and data nodes: | ||||
These are the subtrees and data nodes: | ||||
Under "/rt:routing/rt:control-plane-protocols/" + | Under "/rt:routing/rt:control-plane-protocols/" + | |||
"rt:control-plane-protocol/isis:isis" | "rt:control-plane-protocol/isis:isis" | |||
- /isis-rmetric:reverse-metric/isis-rmetric:enable-receive | - /isis-rmetric:reverse-metric/isis-rmetric:enable-receive | |||
Under "/rt:routing/rt:control-plane-protocols/" + | Under "/rt:routing/rt:control-plane-protocols/" + | |||
"rt:control-plane-protocol/isis:isis/" + | "rt:control-plane-protocol/isis:isis/" + | |||
"isis:interfaces/isis:interface/" + | "isis:interfaces/isis:interface/" + | |||
"isis-rmetric:reverse-metric" | "isis-rmetric:reverse-metric" | |||
skipping to change at page 10, line 31 ¶ | skipping to change at line 450 ¶ | |||
- /isis-rmetric:metric | - /isis-rmetric:metric | |||
- /isis-rmetric:flags/isis-rmetric:whole-lan | - /isis-rmetric:flags/isis-rmetric:whole-lan | |||
- /isis-rmetric:flags/isis-rmetric:allow-unreachable | - /isis-rmetric:flags/isis-rmetric:allow-unreachable | |||
- /isis-rmetric:exclude-te-metric | - /isis-rmetric:exclude-te-metric | |||
Some of the readable data nodes in this YANG module may be considered | Some of the readable data nodes in this YANG module may be considered | |||
sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus | |||
important to control read access (e.g., via get, get-config, or | important to control read access (e.g., via get, get-config, or | |||
notification) to these data nodes. These YANG nodes correspond | notification) to these data nodes. These YANG nodes correspond | |||
directly to the RFC 8500 functionality and the security | directly to the functionality provided in RFC 8500, and the security | |||
considerations of the functionality are described in RFC 8500. These | considerations of the functionality are described in RFC 8500. These | |||
are the subtrees and data nodes: | are the subtrees and data nodes: | |||
Under "/rt:routing/rt:control-plane-protocols/" + | Under "/rt:routing/rt:control-plane-protocols/" + | |||
"rt:control-plane-protocol/isis:isis/" + | "rt:control-plane-protocol/isis:isis/" + | |||
"isis:interfaces/isis:interface/" + | "isis:interfaces/isis:interface/" + | |||
"isis:adjacencies/isis:adjacency/" + | "isis:adjacencies/isis:adjacency/" + | |||
"isis-rmetric:reverse-metric" | "isis-rmetric:reverse-metric" | |||
- /isis-rmetric:metric | - /isis-rmetric:metric | |||
- /isis-rmetric:flags/isis-rmetric:whole-lan | - /isis-rmetric:flags/isis-rmetric:whole-lan | |||
- /isis-rmetric:flags/isis-rmetric:allow-unreachable | - /isis-rmetric:flags/isis-rmetric:allow-unreachable | |||
- /isis-rmetric:te-metric | - /isis-rmetric:te-metric | |||
5. Normative References | 5. Normative References | |||
[ISO10589] International Organization for Standardization, | [ISO-10589] | |||
"Intermediate System to Intermediate System intra-domain | ISO, "Intermediate System to Intermediate System intra- | |||
routeing information exchange protocol for use in | domain routeing information exchange protocol for use in | |||
conjunction with the protocol for providing the | conjunction with the protocol for providing the | |||
connectionless-mode network service (ISO 8473)", ISO | connectionless-mode network service (ISO 8473)", | |||
Standard 10589:2002, 2002. | International Standard 10589: 2002, Second Edition, 2002, | |||
<https://www.iso.org/standard/30932.html>. | ||||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
<https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | ||||
and A. Bierman, Ed., "Network Configuration Protocol | ||||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6241>. | ||||
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | ||||
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6242>. | ||||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | ||||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8340>. | ||||
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration | |||
Access Control Model", STD 91, RFC 8341, | Access Control Model", STD 91, RFC 8341, | |||
DOI 10.17487/RFC8341, March 2018, | DOI 10.17487/RFC8341, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8341>. | <https://www.rfc-editor.org/info/rfc8341>. | |||
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for | |||
Routing Management (NMDA Version)", RFC 8349, | Routing Management (NMDA Version)", RFC 8349, | |||
DOI 10.17487/RFC8349, March 2018, | DOI 10.17487/RFC8349, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8349>. | <https://www.rfc-editor.org/info/rfc8349>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8446>. | ||||
[RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing | [RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing | |||
with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, | with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, | |||
February 2019, <https://www.rfc-editor.org/info/rfc8500>. | February 2019, <https://www.rfc-editor.org/info/rfc8500>. | |||
[I-D.ietf-isis-yang-isis-cfg] | [RFC9130] Litkowski, S., Ed., Yeung, D., Lindem, A., Zhang, J., and | |||
Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. | L. Lhotka, "YANG Data Model for the IS-IS Protocol", | |||
Lhotka, "YANG Data Model for IS-IS Protocol", Work in | RFC 9130, DOI 10.17487/RFC9130, October 2022, | |||
Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- | <https://www.rfc-editor.org/info/rfc9130>. | |||
42, 15 October 2019, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-isis- | ||||
yang-isis-cfg-42>. | ||||
6. Informative References | ||||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [W3C.REC-xml-20081126] | |||
and A. Bierman, Ed., "Network Configuration Protocol | Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and | |||
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth | |||
<https://www.rfc-editor.org/info/rfc6241>. | Edition)", World Wide Web Consortium Recommendation REC- | |||
xml-20081126, November 2008, | ||||
<https://www.w3.org/TR/2008/REC-xml-20081126>. | ||||
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure | 6. Informative References | |||
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, | ||||
<https://www.rfc-editor.org/info/rfc6242>. | ||||
[RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
RFC 7951, DOI 10.17487/RFC7951, August 2016, | RFC 7951, DOI 10.17487/RFC7951, August 2016, | |||
<https://www.rfc-editor.org/info/rfc7951>. | <https://www.rfc-editor.org/info/rfc7951>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | ||||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8340>. | ||||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8446>. | ||||
Appendix A. Examples | Appendix A. Examples | |||
A.1. Enablement Example using XML YANG Instance Data | A.1. Enablement Example Using XML YANG Instance Data | |||
Below is an example of XML YANG instance data [RFC8342] to enable | Below is an example of XML [W3C.REC-xml-20081126] YANG instance data | |||
reverse metric processing. | [RFC8342] to enable reverse metric processing. | |||
<rt:routing | <rt:routing | |||
xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing" | xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing" | |||
xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis" | xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis" | |||
xmlns:isis-rmetric= | xmlns:isis-rmetric= | |||
"urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric"> | "urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric"> | |||
<rt:control-plane-protocols> | <rt:control-plane-protocols> | |||
<rt:control-plane-protocol> | <rt:control-plane-protocol> | |||
<rt:type>isis:isis</rt:type> | <rt:type>isis:isis</rt:type> | |||
<rt:name>default</rt:name> | <rt:name>default</rt:name> | |||
<isis:isis> | <isis:isis> | |||
<isis:area-address>00</isis:area-address> | <isis:area-address>00</isis:area-address> | |||
<isis-rmetric:reverse-metric> | <isis-rmetric:reverse-metric> | |||
<isis-rmetric:enable-receive>true</isis-rmetric:enable-receive> | <isis-rmetric:enable-receive>true</isis-rmetric:enable-receive> | |||
</isis-rmetric:reverse-metric> | </isis-rmetric:reverse-metric> | |||
</isis:isis> | </isis:isis> | |||
</rt:control-plane-protocol> | </rt:control-plane-protocol> | |||
</rt:control-plane-protocols> | </rt:control-plane-protocols> | |||
</rt:routing> | </rt:routing> | |||
Figure 1: Example XML data to enable reverse metric processing. | Figure 1: Example XML Data to Enable Reverse Metric Processing | |||
A.2. Usage Example using XML YANG Instance Data | A.2. Usage Example Using XML YANG Instance Data | |||
Below is an example of XML YANG instance data [RFC8342] for the ietf- | Below is an example of XML YANG instance data [RFC8342] for the | |||
isis-reverse-metric module. | "ietf-isis-reverse-metric" module. | |||
<if:interfaces | <if:interfaces | |||
xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces" | xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces" | |||
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
<if:interface> | <if:interface> | |||
<if:name>eth0</if:name> | <if:name>eth0</if:name> | |||
<if:type>ianaift:ethernetCsmacd</if:type> | <if:type>ianaift:ethernetCsmacd</if:type> | |||
</if:interface> | </if:interface> | |||
</if:interfaces> | </if:interfaces> | |||
<rt:routing | <rt:routing | |||
skipping to change at page 14, line 39 ¶ | skipping to change at line 609 ¶ | |||
65535 | 65535 | |||
</isis-rmetric:metric> | </isis-rmetric:metric> | |||
</isis-rmetric:reverse-metric> | </isis-rmetric:reverse-metric> | |||
</isis:interface> | </isis:interface> | |||
</isis:interfaces> | </isis:interfaces> | |||
</isis:isis> | </isis:isis> | |||
</rt:control-plane-protocol> | </rt:control-plane-protocol> | |||
</rt:control-plane-protocols> | </rt:control-plane-protocols> | |||
</rt:routing> | </rt:routing> | |||
Figure 2: Example XML data for ietf-isis-reverse-metric module. | Figure 2: Example XML Data for the "ietf-isis-reverse-metric" Module | |||
A.3. Usage Example using JSON YANG Instance Data | A.3. Usage Example Using JSON YANG Instance Data | |||
Below is an example of JSON YANG instance data [RFC7951] for the | Below is an example of JSON YANG instance data [RFC7951] for the | |||
ietf-isis-reverse-metric module. | "ietf-isis-reverse-metric" module. | |||
{ | { | |||
"ietf-interfaces:interfaces": { | "ietf-interfaces:interfaces": { | |||
"interface": [ | "interface": [ | |||
{ | { | |||
"name": "eth0", | "name": "eth0", | |||
"type": "iana-if-type:ethernetCsmacd" | "type": "iana-if-type:ethernetCsmacd" | |||
} | } | |||
] | ] | |||
}, | }, | |||
skipping to change at page 15, line 44 ¶ | skipping to change at line 655 ¶ | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
} | } | |||
Figure 3: Example JSON data for level-1 only reverse metric. | Figure 3: Example JSON Data for the Level-1-Only Reverse Metric | |||
Author's Address | Author's Address | |||
Christian Hopps | Christian Hopps | |||
LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
Email: chopps@chopps.org | Email: chopps@chopps.org | |||
End of changes. 77 change blocks. | ||||
204 lines changed or deleted | 218 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |