< draft-hopps-lsr-yang-isis-reverse-metric-01.txt   draft-hopps-lsr-yang-isis-reverse-metric-02.txt >
Network Working Group C. Hopps Network Working Group C. Hopps
Internet-Draft LabN Consulting, L.L.C. Internet-Draft LabN Consulting, L.L.C.
Intended status: Standards Track 25 September 2019 Intended status: Standards Track 21 November 2019
Expires: 28 March 2020 Expires: 24 May 2020
YANG Data Model for the IS-IS Reverse Metric Extension YANG Module for IS-IS Reverse Metric
draft-hopps-lsr-yang-isis-reverse-metric-01 draft-hopps-lsr-yang-isis-reverse-metric-02
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 the intermediate system to intermediate system extension to the the intermediate system to intermediate system
routeing protocol. routeing protocol.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 32 skipping to change at page 1, line 32
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 28 March 2020. This Internet-Draft will expire on 24 May 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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 (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 11 skipping to change at page 2, line 11
extracted from this document must include Simplified BSD License text extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License. provided without warranty as described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. YANG Management . . . . . . . . . . . . . . . . . . . . . . . 2 2. YANG Management . . . . . . . . . . . . . . . . . . . . . . . 2
2.1. YANG Tree . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1. YANG Tree . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 3
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
3.1. Updates to the IETF XML Registry . . . . . . . . . . . . 5 3.1. Updates to the IETF XML Registry . . . . . . . . . . . . 7
3.2. Updates to the YANG Module Names Registry . . . . . . . . 6 3.2. Updates to the YANG Module Names Registry . . . . . . . . 7
4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8
5. Normative References . . . . . . . . . . . . . . . . . . . . 6 5. Normative References . . . . . . . . . . . . . . . . . . . . 8
6. Informative References . . . . . . . . . . . . . . . . . . . 7 6. Informative References . . . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 9
A.1. Example Enable XML . . . . . . . . . . . . . . . . . . . 9
A.2. Example Use XML . . . . . . . . . . . . . . . . . . . . . 10
A.3. Example JSON . . . . . . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 12
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 the intermediate system to intermediate system routeing extension to the intermediate system to intermediate system routeing
protocol (IS-IS) [RFC8500], [ISO10589]. Please refer to [RFC8500] protocol (IS-IS) [RFC8500], [ISO10589]. 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
skipping to change at page 2, line 39 skipping to change at page 3, line 7
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:
+--rw reverse-metric
+--rw enable-receive? boolean
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:
+--rw reverse-metric +--rw reverse-metric
+--rw reverse-metric +--rw reverse-metric
| +--rw metric? isis:wide-metric | +--rw metric? isis:wide-metric
| +--rw flags? bits | +--rw flags
+--rw exclude-te-metric? boolean | | +--rw whole-lan? boolean
| | +--rw allow-unreachable? boolean
| +--rw exclude-te-metric? boolean
+--rw level-1
| +--rw reverse-metric
| +--rw metric? isis:wide-metric
| +--rw flags
| | +--rw whole-lan? boolean
| | +--rw allow-unreachable? boolean
| +--rw exclude-te-metric? boolean
+--rw level-2
+--rw reverse-metric
+--rw metric? isis:wide-metric
+--rw flags
| +--rw whole-lan? boolean
| +--rw allow-unreachable? boolean
+--rw exclude-te-metric? 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:adjacencies/isis:adjacency: /isis:interface/isis:adjacencies/isis:adjacency:
+--ro reverse-metric +--ro reverse-metric
| +--ro metric? isis:wide-metric +--ro metric? isis:wide-metric
| +--ro flags? bits +--ro flags
+--ro te-metric? uint32 | +--ro whole-lan? boolean
| +--ro allow-unreachable? boolean
+--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]. metric functionality defined in [RFC8500].
<CODE BEGINS> file "ietf-isis-reverse-metric@2019-03-31.yang" <CODE BEGINS> file "ietf-isis-reverse-metric@2019-11-21.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-isis { prefix isis; }
import ietf-routing { prefix "rt"; } import ietf-routing { prefix "rt"; }
import ietf-isis { prefix "isis"; }
organization organization
"IETF NETMOD Working Group (NETMOD)"; "IETF LSR Working Group (LSR)";
contact contact
"WG Web: <https://tools.ietf.org/wg/netmod/> "WG Web: <https://tools.ietf.org/wg/lsr/>
WG List: <mailto:netmod@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 // RFC Ed.: replace XXXX with actual RFC number and
// remove this note. // remove this note.
description description
"This module defines the configuration and operational state for "This module defines the configuration and operational state for
managing the IS-IS reverse metric functionality [RFC8500]. managing the IS-IS reverse metric functionality [RFC8500].
skipping to change at page 3, line 49 skipping to change at page 4, line 45
without modification, is permitted pursuant to, and subject to without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(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 XXXX
(https://tools.ietf.org/html/rfcXXXX); see the RFC itself for (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for
full legal notices."; full legal notices.";
revision 2019-03-31 { revision 2019-11-21 {
description "Initial Revision"; description "Initial Revision";
reference "RFC XXXX: YANG IS-IS Reverse Metric"; reference "RFC XXXX: YANG 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 {
type isis:wide-metric;
description "The reverse metric value.";
}
container flags {
description "The reverse metric flag values.";
leaf whole-lan {
type boolean;
description
"The 'whole LAN' or W-bit. If true then a DIS processing this
reverse metric will add the metric value to all the nodes it
advertises in the pseudo-node LSP for this interface.
Otherwise it will only increment the metric for the
advertising node in the pseudo-node LSP for this interface.";
}
leaf allow-unreachable {
type boolean;
description
"The 'allow-unreachable' or U-bit. If true it allows the
neighbor to increment the overall metric up to 2^24-1 rather
than the lesser maximum of 2^24-2, and if done will cause
traffic to stop using rather than avoid using the interface.";
}
}
}
grouping reverse-metric-if-config-data {
description "IS-IS reverse metric config data.";
container reverse-metric { container reverse-metric {
description "IS-IS reverse metric data."; description "IS-IS reverse metric data.";
leaf metric { uses reverse-metric-data;
type isis:wide-metric; leaf exclude-te-metric {
description "The reverse metric value."; type boolean;
} default false;
leaf flags { description
type bits { "If true and there is a TE metric defined for this
bit whole-lan { interface then do not send the TE metric sub-TLV in the
position 0; reverse metric TLV.";
description
"The 'whole LAN' or W-bit. If true then a DIS
processing this reverse metric will add the metric
value to all the nodes it advertises in the
pseudo-node LSP for this interface. Otherwise it will
only increment the metric for the advertising node in
the pseudo-node LSP for this interface.";
}
bit allow-unreachable {
position 1;
description
"The 'allow-unreachable' or U-bit. If true it allows
the neighbor to increment the overall metric up to
2^24-1 rather than the lesser maximum of 2^24-2, and
if done will cause traffic to stop using rather than
avoid using the interface.";
}
}
description "The reverse metric flag values.";
} }
} }
} }
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; container reverse-metric {
leaf te-metric { description "IS-IS reverse metric TLV data.";
type uint32; uses reverse-metric-data;
description "The TE metric value from the sub-TLV if present."; leaf te-metric {
type uint32;
description "The TE metric value from the sub-TLV if present.";
}
}
}
augment "/rt:routing/rt:control-plane-protocols/"
+"rt:control-plane-protocol/"
+"isis:isis" {
when "../rt:type = 'isis:isis'" {
description
"This augment is only valid when routing protocol instance
type is 'isis'.";
}
description
"The reverse metric configuration for an IS-IS instance.";
container reverse-metric {
description "Global reverse metric configuration.";
leaf enable-receive {
type boolean;
default false;
description
"Enable handling of reverse metric announcements from
neighbors. By default reverse metric handling is disabled
and must be explicitly enabled through this 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 "../../../rt:type = 'isis:isis'" { when "../../../rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol instance "This augment is only valid when routing protocol instance
type is 'isis'."; 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 "Announce a reverse metric to neighbors."; description "Announce a reverse metric to neighbors.";
uses reverse-metric-data; uses reverse-metric-if-config-data;
leaf exclude-te-metric { container level-1 {
type boolean; description "Announce a reverse metric to level-1 neighbors.";
default false; uses reverse-metric-if-config-data;
description }
"If true and there is a TE metric defined for this container level-2 {
interface then do not send the TE metric sub-TLV in the description "Announce a reverse metric to level-2 neighbors.";
reverse metric TLV."; 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 "../../../../../rt:type = 'isis:isis'" { when "../../../../../rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol instance "This augment is only valid when routing protocol instance
type is 'isis'"; type is 'isis'";
} }
description description
"The reverse metric state advertised by a neighbor."; "The reverse metric state advertised by an adjacency.";
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].
skipping to change at page 7, line 51 skipping to change at page 9, line 39
[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>.
6. Informative References 6. Informative References
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
Appendix A. Examples
A.1. Example Enable XML
Below is an example of YANG XML data to enable reverse metric
processing.
<rt:routing
xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing"
xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"
xmlns:rm="urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric">
<rt:control-plane-protocols>
<rt:control-plane-protocol>
<rt:type>isis:isis</rt:type>
<rt:name>default</rt:name>
<isis:isis>
<isis:area-address>00</isis:area-address>
<rm:reverse-metric>
<rm:enable-receive>true</rm:enable-receive>
</rm:reverse-metric>
</isis:isis>
</rt:control-plane-protocol>
</rt:control-plane-protocols>
</rt:routing>
Figure 1: Example XML data to enable reverse metric processing.
A.2. Example Use XML
Below is an example of YANG XML data for the ietf-isis-reverse-metric
module.
<if:interfaces
xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces"
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">
<if:interface>
<if:name>eth0</if:name>
<if:type>ianaift:ethernetCsmacd</if:type>
</if:interface>
</if:interfaces>
<rt:routing
xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing"
xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"
xmlns:rm="urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric">
<rt:control-plane-protocols>
<rt:control-plane-protocol>
<rt:type>isis:isis</rt:type>
<rt:name>default</rt:name>
<isis:isis>
<isis:area-address>00</isis:area-address>
<isis:interfaces>
<isis:interface>
<isis:name>eth0</isis:name>
<rm:reverse-metric>
<rm:reverse-metric>
<rm:metric>
65535
</rm:metric>
</rm:reverse-metric>
</rm:reverse-metric>
</isis:interface>
</isis:interfaces>
</isis:isis>
</rt:control-plane-protocol>
</rt:control-plane-protocols>
</rt:routing>
Figure 2: Example XML data for ietf-isis-reverse-metric module.
A.3. Example JSON
Below is an example of YANG XML data for the ietf-isis-reverse-metric
module.
{
"ietf-interfaces:interfaces": {
"interface": [
{
"name": "eth0",
"type": "iana-if-type:ethernetCsmacd"
}
]
},
"ietf-routing:routing": {
"control-plane-protocols": {
"control-plane-protocol": [
{
"type": "ietf-isis:isis",
"name": "default",
"ietf-isis:isis": {
"area-address": [
"00"
],
"interfaces": {
"interface": [
{
"name": "eth0",
"ietf-isis-reverse-metric:reverse-metric": {
"level-1": {
"reverse-metric": {
"metric": 65535,
"exclude-te-metric": true
}
}
}
}
]
}
}
}
]
}
}
}
Figure 3: Example JSON data for 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. 21 change blocks. 
64 lines changed or deleted 248 lines changed or added

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