draft-ietf-isis-yang-isis-cfg-06.txt   draft-ietf-isis-yang-isis-cfg-07.txt 
ISIS Working Group S. Litkowski IS-IS Working Group S. Litkowski
Internet-Draft Orange Internet-Draft Orange
Intended status: Standards Track D. Yeung Intended status: Standards Track D. Yeung
Expires: March 21, 2016 A. Lindem Expires: May 21, 2016 A. Lindem
Cisco Systems Cisco Systems
J. Zhang J. Zhang
Juniper Networks Juniper Networks
L. Lhotka L. Lhotka
CZ.NIC CZ.NIC
September 18, 2015 November 18, 2015
YANG Data Model for ISIS protocol YANG Data Model for IS-IS protocol
draft-ietf-isis-yang-isis-cfg-06 draft-ietf-isis-yang-isis-cfg-07
Abstract Abstract
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage ISIS protocol on network elements. It also defined an and manage IS-IS protocol on network elements. It also defined an
extension module for segment routing configuration and operation. extension module for segment routing and BFD configuration and
operation.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
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 44 skipping to change at page 1, line 45
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 21, 2016. This Internet-Draft will expire on May 21, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 25 skipping to change at page 2, line 25
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
2.1. ISIS Configuration . . . . . . . . . . . . . . . . . . . 10 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 10
2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10
2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10
2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 11 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12
2.5. ISO parameters . . . . . . . . . . . . . . . . . . . . . 13 2.5. ISO parameters . . . . . . . . . . . . . . . . . . . . . 12
2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7. Operational State . . . . . . . . . . . . . . . . . . . . 14 2.7. Operational State . . . . . . . . . . . . . . . . . . . . 13
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 14 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 13
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 15 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 19 5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 18
5.1. Segment Routing activation . . . . . . . . . . . . . . . 22 5.1. Segment Routing activation . . . . . . . . . . . . . . . 21
5.2. Advertising mapping server policy . . . . . . . . . . . . 22 5.2. Advertising mapping server policy . . . . . . . . . . . . 21
5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 22 5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 21
6. Interaction with Other YANG Modules . . . . . . . . . . . . . 22 6. BFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7. ISIS YANG Module . . . . . . . . . . . . . . . . . . . . . . 23 7. Interaction with Other YANG Modules . . . . . . . . . . . . . 22
8. ISIS Segment Routing YANG Module . . . . . . . . . . . . . . 98 8. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 23
9. Security Considerations . . . . . . . . . . . . . . . . . . . 111 9. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 98
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 112 10. IS-IS BFD YANG Module . . . . . . . . . . . . . . . . . . . . 111
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 112 11. Security Considerations . . . . . . . . . . . . . . . . . . . 114
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 112 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115
13. Normative References . . . . . . . . . . . . . . . . . . . . 112 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115
Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 113 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 116 15. Normative References . . . . . . . . . . . . . . . . . . . . 115
Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 116
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 119
1. Introduction 1. Introduction
This document defines a YANG data model for ISIS routing protocol. This document defines a YANG data model for IS-IS routing protocol.
The data model covers configuration of an ISIS routing protocol The data model covers configuration of an IS-IS routing protocol
instance as well as operational states. instance as well as operational states.
1.1. Tree diagram 1.1. Tree diagram
A simplified graphical representation of the data model is presented A simplified graphical representation of the data model is presented
in Section 2. in Section 2.
The meaning of the symbols in these diagrams is as follows: The meaning of the symbols in these diagrams is as follows:
o Brackets "[" and "]" enclose list keys. o Brackets "[" and "]" enclose list keys.
skipping to change at page 3, line 38 skipping to change at page 3, line 38
denotes a "list" or "leaf-list". denotes a "list" or "leaf-list".
o Parentheses enclose choice and case nodes, and case nodes are also o Parentheses enclose choice and case nodes, and case nodes are also
marked with a colon (":"). marked with a colon (":").
o Ellipsis ("...") stands for contents of subtrees that are not o Ellipsis ("...") stands for contents of subtrees that are not
shown. shown.
2. Design of the Data Model 2. Design of the Data Model
The ISIS YANG module is divided in two main "isis" containers that The IS-IS YANG module is divided in two main "isis" containers that
are augmenting the "routing-protocol" lists in ietf-routing module are augmenting the "routing-protocol" lists in ietf-routing module
with specific ISIS parameters. with specific IS-IS parameters.
One container contains the writable parameters, while the other One container contains the writable parameters, while the other
contains the operational states. contains the operational states.
The figure below describe the overall structure of the isis YANG The figure below describe the overall structure of the isis YANG
module: module:
module: ietf-isis module: ietf-isis
augment /rt:routing-state/rt:routing-instance/rt:ribs/rt:rib augment /rt:routing-state/rt:routing-instance/rt:ribs/rt:rib
/rt:routes/rt:route: /rt:routes/rt:route:
+--ro metric? uint32 +--ro metric? uint32
+--ro tag* uint64 +--ro tag* uint64
+--ro route-type? enumeration +--ro route-type? enumeration
augment /rt:fib-route/rt:output/rt:route: augment /rt:fib-route/rt:output/rt:route:
+--ro metric? uint32 +--ro metric? uint32
+--ro tag* uint64 +--ro tag* uint64
+--ro route-type? enumeration +--ro route-type? enumeration
augment /if:interfaces/if:interface: augment /if:interfaces/if:interface:
+--rw clns-mtu? uint16 +--rw clns-mtu? uint16
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /rt:routing/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol: /rt:routing-protocol:
+--rw isis +--rw isis
+--rw enable? boolean {admin-control}? +--rw enable? boolean {admin-control}?
+--rw level-type? level +--rw level-type? level
+--rw system-id? system-id +--rw system-id? system-id
+--rw maximum-area-addresses? uint8 {maximum-area-addresses}? +--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
+--rw area-address* area-address +--rw area-address* area-address
+--rw mpls +--rw mpls
| +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--rw igp-ldp-sync {igp-ldp-sync}? | +--rw igp-ldp-sync {igp-ldp-sync}?
skipping to change at page 4, line 39 skipping to change at page 4, line 39
+--rw node-tag {node-tag}? +--rw node-tag {node-tag}?
| +--rw node-tag* [tag] | +--rw node-tag* [tag]
| ... | ...
+--rw authentication* [level] +--rw authentication* [level]
| +--rw (authentication-type)? | +--rw (authentication-type)?
| | ... | | ...
| +--rw level level | +--rw level level
+--rw metric-type* [level] +--rw metric-type* [level]
| +--rw value? enumeration | +--rw value? enumeration
| +--rw level level | +--rw level level
+--rw preference* [level]
| +--rw (granularity)?
| | ...
| +--rw level level
+--rw default-metric* [level] +--rw default-metric* [level]
| +--rw value? wide-metric | +--rw value? wide-metric
| +--rw level level | +--rw level level
+--rw af* [af] {nlpid-control}? +--rw af* [af] {nlpid-control}?
| +--rw af identityref | +--rw af identityref
| +--rw enable? boolean | +--rw enable? boolean
+--rw overload* [level] +--rw preference
| +--rw status? boolean | +--rw (granularity)?
| +--rw timeout? uint16 | ...
| +--rw level level +--rw overload
+--rw overload-max-metric* [level] {overload-max-metric}? | +--rw status? boolean
| +--rw status? boolean +--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? uint16 | +--rw timeout? uint16
| +--rw level level
+--rw apply-policy +--rw apply-policy
| +--rw config | +--rw config
| | ... | | ...
| +--ro state | +--ro state
| ... | ...
+--rw fast-reroute {fast-reroute}? +--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}? | +--rw lfa {lfa}?
+--rw topologies* [name] {multi-topology}? +--rw topologies* [name] {multi-topology}?
| +--rw enable? boolean | +--rw enable? boolean
| +--rw name leafref | +--rw name leafref
| +--rw default-metric* [level] | +--rw default-metric* [level]
| | ... | | ...
| +--rw node-tag {node-tag}? | +--rw node-tag {node-tag}?
| | ... | | ...
| +--rw fast-reroute {fast-reroute}? | +--rw fast-reroute {fast-reroute}?
| ... | ...
+--rw interfaces +--rw interfaces
+--rw interface* [name] +--rw interface* [name]
... ...
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol: /rt:routing-protocol:
+--ro isis +--ro isis
+--ro enable? boolean {admin-control}? +--ro enable? boolean {admin-control}?
+--ro level-type? level +--ro level-type? level
+--ro system-id? system-id +--ro system-id? system-id
+--ro maximum-area-addresses? uint8 {maximum-area-addresses}? +--ro maximum-area-addresses? uint8 {maximum-area-addresses}?
+--ro area-address* area-address +--ro area-address* area-address
+--ro mpls +--ro mpls
| +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}? | +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}? | +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--ro igp-ldp-sync {igp-ldp-sync}? | +--ro igp-ldp-sync {igp-ldp-sync}?
skipping to change at page 6, line 4 skipping to change at page 5, line 47
+--ro lsp-lifetime? uint16 +--ro lsp-lifetime? uint16
+--ro lsp-refresh? uint16 {lsp-refresh}? +--ro lsp-refresh? uint16 {lsp-refresh}?
+--ro graceful-restart {graceful-restart}? +--ro graceful-restart {graceful-restart}?
| +--ro enable? boolean | +--ro enable? boolean
+--ro node-tag {node-tag}? +--ro node-tag {node-tag}?
| +--ro node-tag* [tag] | +--ro node-tag* [tag]
| ... | ...
+--ro authentication* [level] +--ro authentication* [level]
| +--ro (authentication-type)? | +--ro (authentication-type)?
| | ... | | ...
| +--ro level level | +--ro level level
+--ro metric-type* [level] +--ro metric-type* [level]
| +--ro value? enumeration | +--ro value? enumeration
| +--ro level level | +--ro level level
+--ro preference* [level]
| +--ro (granularity)?
| | ...
| +--ro level level
+--ro default-metric* [level] +--ro default-metric* [level]
| +--ro value? wide-metric | +--ro value? wide-metric
| +--ro level level | +--ro level level
+--ro af* [af] {nlpid-control}? +--ro af* [af] {nlpid-control}?
| +--ro af identityref | +--ro af identityref
| +--ro enable? boolean | +--ro enable? boolean
+--ro overload* [level] +--ro preference
| +--ro status? boolean | +--ro (granularity)?
| +--ro timeout? uint16 | ...
| +--ro level level +--ro overload
+--ro overload-max-metric* [level] {overload-max-metric}? | +--ro status? boolean
| +--ro status? boolean +--ro overload-max-metric {overload-max-metric}?
| +--ro timeout? uint16 | +--ro timeout? uint16
| +--ro level level
+--ro fast-reroute {fast-reroute}? +--ro fast-reroute {fast-reroute}?
| +--ro lfa {lfa}? | +--ro lfa {lfa}?
| +--ro protected-routes | +--ro protected-routes
| | ... | | ...
| +--ro nonprotected-routes | +--ro nonprotected-routes
| | ... | | ...
| +--ro protection-statistics* [frr-protection-method] | +--ro protection-statistics* [frr-protection-method]
| ... | ...
+--ro topologies* [name] +--ro topologies* [name]
| +--ro name leafref | +--ro name leafref
skipping to change at page 10, line 10 skipping to change at page 10, line 5
| +--ro sequence? uint32 | +--ro sequence? uint32
| +--ro received-timestamp? yang:timestamp | +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id | +--ro neighbor-system-id? system-id
+---n lsp-generation +---n lsp-generation
+--ro instance-name? string +--ro instance-name? string
+--ro instance-level? level +--ro instance-level? level
+--ro lsp-id? lsp-id +--ro lsp-id? lsp-id
+--ro sequence? uint32 +--ro sequence? uint32
+--ro send-timestamp? yang:timestamp +--ro send-timestamp? yang:timestamp
2.1. ISIS Configuration 2.1. IS-IS Configuration
The ISIS configuration supports a VRF-centric configuration approach. The IS-IS configuration supports a VRF-centric configuration
The isis configuration is applied directly within the appropriate approach. The isis configuration is applied directly within the
routing-instance where ISIS is activated. appropriate routing-instance where IS-IS is activated.
The ISIS configuration container is divided in: The IS-IS configuration container is divided in:
o Global parameters. o Global parameters.
o Per interface configuration (see Section 2.4). o Per interface configuration (see Section 2.4).
It would to up to extension modules to augment this model to support It would to up to extension modules to augment this model to support
vendor specific parameters. vendor specific parameters.
2.2. Multitopology Parameters 2.2. Multitopology Parameters
skipping to change at page 11, line 21 skipping to change at page 11, line 9
<level>level-2</level> <level>level-2</level>
</priority> </priority>
As a list is used, a user may decide to apply a level-1, level-2 and As a list is used, a user may decide to apply a level-1, level-2 and
level-all parameter at the same time. An implementation SHOULD level-all parameter at the same time. An implementation SHOULD
prefer a level specific parameter over level-all parameter. As prefer a level specific parameter over level-all parameter. As
example, if priority is 100 for level-1, 200 for level-2 and 250 for example, if priority is 100 for level-1, 200 for level-2 and 250 for
level-all, the implementation should use 100 for level-1 and 200 for level-all, the implementation should use 100 for level-1 and 200 for
level-2. level-2.
Overload bit and route preference are exceptions to this general
modelling approach. In order to accommodate differences between
existing implementations, overload, overload-max-metric and
preference are modelled as container without per-level configuration.
This let the opportunity for vendor to augment those containers with
per-level configuration. An implementation that augments those
containers with per-level configuration SHOULD :
o Create one container for level-1 and one container for level-2.
o Reuse the grouping defined for configuration parameters and apply
them in level-1 and level-2 containers.
In this case, the value defined in the top-level container SHOULD be
applied to both levels while the value defined in a specific level
container SHOULD apply to this level only and SHOULD override the
top-level value if defined.
Example of augmentation :
augment "/rt:routing-state/rt:routing-instance/" +
"rt:routing-protocols/rt:routing-protocol"+
"/isis:isis/isis:overload" {
when "rt:type = 'isis:isis'" {
description
"This augment IS-IS routing protocol when used";
}
description
"This augments IS-IS overload configuration
with per level configuration.";
container level-1 {
uses isis:overload-config;
description
"Level 1 configuration.";
}
container level-2 {
uses isis:overload-config;
description
"Level 2 configuration.";
}
}
2.4. Per-Interface Parameters 2.4. Per-Interface Parameters
The per-interface section of the ISIS instance describes the The per-interface section of the IS-IS instance describes the
interface specific parameters. interface specific parameters.
The interface is a reference to an interface in the Interface YANG The interface is a reference to an interface in the Interface YANG
model. model.
Each interface has interface-specific parameters that may have a Each interface has interface-specific parameters that may have a
different value per level as described in previous section. An different value per level as described in previous section. An
interface-specific parameter always override an ISIS global parameter interface-specific parameter always override an IS-IS global
. parameter .
Some parameters like BFD and hello-padding are defined as containers Some parameters like BFD and hello-padding are defined as containers
to permit easy extension by vendor specific modules. to permit easy extension by vendor specific modules.
+--rw interfaces TODO : interfaces.tree
+--rw interface* [name]
+--rw name if:interface-ref
+--rw level-type? level
+--rw lsp-pacing-interval? uint16
+--rw lsp-retransmit-interval? uint16
+--rw passive? boolean
+--rw csnp-interval? uint16
+--rw hello-padding
| +--rw enable? boolean
+--rw mesh-group-enable? mesh-group-state
+--rw mesh-group? uint8
+--rw interface-type? interface-type
+--rw enable? boolean {admin-control}?
+--rw tag* uint32 {prefix-tag}?
+--rw tag64* uint64 {prefix-tag64}?
+--rw hello-authentication* [level]
| +--rw (authentication-type)?
| | +--:(key-chain) {key-chain}?
| | | +--rw key-chain? key-chain:key-chain-ref
| | +--:(password)
| | +--rw key? string
| | +--rw (algorithm)?
| | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}?
| | | ...
| | +--:(md5)
| | | ...
| | +--:(sha-1)
| | | ...
| | +--:(hmac-sha-1)
| | | ...
| | +--:(hmac-sha-256)
| | | ...
| | +--:(hmac-sha-384)
| | | ...
| | +--:(hmac-sha-512)
| | ...
| +--rw level level
+--rw hello-interval* [level]
| +--rw value? uint16
| +--rw level level
+--rw hello-multiplier* [level]
| +--rw value? uint16
| +--rw level level
+--rw priority* [level]
| +--rw value? uint8
| +--rw level level
+--rw metric* [level]
| +--rw value? wide-metric
| +--rw level level
+--rw af* [af]
| +--rw af identityref
| +--rw bfd-cfg
| +--rw enabled? boolean
| +--rw local-multiplier? multiplier
| +--rw (interval-config-type)?
| +--:(tx-rx-intervals)
| | +--rw desired-min-tx-interval uint32
| | +--rw required-min-rx-interval uint32
| +--:(single-interval)
| +--rw min-interval uint32
+--rw mpls
| +--rw igp-ldp-sync {igp-ldp-sync}?
| +--rw enable? boolean
+--rw fast-reroute {fast-reroute}?
| +--rw lfa* [level] {lfa}?
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level level
+--rw topologies* [name]
+--rw name leafref
+--rw fast-reroute {fast-reroute}?
| +--rw lfa* [level] {lfa}?
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level level
+--rw metric* [level]
+--rw value? wide-metric
+--rw level level
2.5. ISO parameters 2.5. ISO parameters
Some ISO parameters may be required. Some ISO parameters may be required.
This module augments interface configuration model to support ISO This module augments interface configuration model to support ISO
configuration parameters. configuration parameters.
The clns-mtu can be defined under the interface. The clns-mtu can be defined under the interface.
skipping to change at page 14, line 7 skipping to change at page 13, line 7
like policies. like policies.
Remote LFA is considered as a child of LFA. Remote LFA cannot be Remote LFA is considered as a child of LFA. Remote LFA cannot be
enabled if LFA is not enabled. enabled if LFA is not enabled.
The "candidate-disabled" permit to mark an interface to not be used The "candidate-disabled" permit to mark an interface to not be used
as a backup. as a backup.
2.7. Operational State 2.7. Operational State
"isis" container provides operational states for ISIS. This "isis" container provides operational states for IS-IS. This
container is divided in multiple components: container is divided in multiple components:
o system-counters : provides statistical informations about the o system-counters : provides statistical informations about the
global system. global system.
o interface : provides configuration state information for each o interface : provides configuration state information for each
interface. interface.
o adjacencies: provides state information about current ISIS o adjacencies: provides state information about current IS-IS
adjacencies. adjacencies.
o spf-log: provides information about SPF events on the node. o spf-log: provides information about SPF events on the node.
o lsp-log: provides information about LSP events on the node o lsp-log: provides information about LSP events on the node
(reception of an LSP or modification of local LSP). (reception of an LSP or modification of local LSP).
o database: provides details on current LSDB. o database: provides details on current LSDB.
o hostnames: provides information about system-id to hostname o hostnames: provides information about system-id to hostname
mappings. mappings.
o fast-reroute: provides information about IP FRR. o fast-reroute: provides information about IP FRR.
3. RPC Operations 3. RPC Operations
The "ietf-isis" module defines two RPC operations: The "ietf-isis" module defines two RPC operations:
o clear-isis-database: reset the content of a particular ISIS o clear-isis-database: reset the content of a particular IS-IS
database and restart database synchronization with the neighbors. database and restart database synchronization with the neighbors.
o clear-isis-adjacency: restart a particular set of ISIS o clear-isis-adjacency: restart a particular set of IS-IS
adjacencies. adjacencies.
rpcs: rpcs:
+---x clear-adjacency +---x clear-adjacency
| +--ro input | +--ro input
| +--ro routing-instance-name rt:routing-instance-state-ref | +--ro routing-instance-name rt:routing-instance-state-ref
| +--ro routing-protocol-instance-name instance-state-ref | +--ro routing-protocol-instance-name instance-state-ref
| +--ro level? level | +--ro level? level
| +--ro interface? string | +--ro interface? string
+---x clear-database +---x clear-database
skipping to change at page 16, line 12 skipping to change at page 15, line 12
receives a Hello PDU from an IS but does not establish an receives a Hello PDU from an IS but does not establish an
adjacency for some reason. adjacency for some reason.
protocols-supported-mismatch : This notification is sent when the protocols-supported-mismatch : This notification is sent when the
system receives a non pseudonode LSP that has no matching protocol system receives a non pseudonode LSP that has no matching protocol
supported. supported.
lsp-error-detected : This notification is sent when the system lsp-error-detected : This notification is sent when the system
receives a LSP with a parse error. receives a LSP with a parse error.
adjacency-change : This notification is sent when an ISIS adjacency-change : This notification is sent when an IS-IS
adjacency moves to Up state or to Down state. adjacency moves to Up state or to Down state.
lsp-received : This notification is sent when a LSP is received. lsp-received : This notification is sent when a LSP is received.
lsp-generation : This notification is sent when a LSP is lsp-generation : This notification is sent when a LSP is
regenerated. regenerated.
notifications: notifications:
+---n database-overload +---n database-overload
| +--ro instance-name? string | +--ro instance-name? string
skipping to change at page 19, line 15 skipping to change at page 18, line 15
+--ro lsp-id? lsp-id +--ro lsp-id? lsp-id
+--ro sequence? uint32 +--ro sequence? uint32
+--ro send-timestamp? yang:timestamp +--ro send-timestamp? yang:timestamp
5. Segment Routing 5. Segment Routing
The IS-IS SR YANG module is augmenting IS-IS module for both The IS-IS SR YANG module is augmenting IS-IS module for both
configuration and operational states. configuration and operational states.
The IS-IS SR YANG module requires the base segment routing module The IS-IS SR YANG module requires the base segment routing module
([I-D.litkowski-spring-sr-yang]) to be supported as there is a strong ([I-D.ietf-spring-sr-yang]) to be supported as there is a strong
relationship between those modules. relationship between those modules.
The figure below describe the overall structure of the isis-sr YANG The figure below describe the overall structure of the isis-sr YANG
module: module:
module: ietf-isis-sr module: ietf-isis-sr
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis: /isis:isis:
+--rw segment-routing +--rw segment-routing
+--rw enabled? boolean | +--rw enabled? boolean
+--rw srgb-list | +--rw bindings
| +--rw srgb* [lower-bound upper-bound] | +--rw advertise
| +--rw lower-bound uint32 | | +--rw policies* string
| +--rw upper-bound uint32 | +--rw receive? boolean
+--rw bindings +--rw protocol-srgb {sr:protocol-srgb}?
+--rw advertise +--rw srgb* [lower-bound upper-bound]
| +--rw policies* string +--rw lower-bound uint32
+--rw receive? boolean +--rw upper-bound uint32
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface: /isis:isis/isis:interfaces/isis:interface:
+--rw segment-routing +--rw segment-routing
+--rw adjacency-sid +--rw adjacency-sid
+--rw advertise-adj-group-sid* [group-id] +--rw advertise-adj-group-sid* [group-id]
| +--rw group-id uint32 | +--rw group-id uint32
+--rw advertise-protection? enumeration +--rw advertise-protection? enumeration
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute:
/isis:fast-reroute:
+--rw ti-lfa {ti-lfa}? +--rw ti-lfa {ti-lfa}?
+--rw enable? boolean +--rw enable? boolean
augment /rt:routing/rt:routing-instance/rt:routing-protocols augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute
/isis:fast-reroute/isis:lfa/isis:remote-lfa: /isis:lfa/isis:remote-lfa:
+--rw use-segment-routing-path? boolean {remote-lfa-sr}? +--rw use-segment-routing-path? boolean {remote-lfa-sr}?
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis: /rt:routing-protocol/isis:isis:
+--ro segment-routing +--ro segment-routing
+--ro enabled? boolean | +--ro enabled? boolean
+--ro srgb-list | +--ro bindings
| +--ro srgb* [lower-bound upper-bound] | +--ro advertise
| +--ro lower-bound uint32 | | +--ro policies* string
| +--ro upper-bound uint32 | +--ro receive? boolean
+--ro bindings +--ro protocol-srgb {sr:protocol-srgb}?
+--ro advertise +--ro srgb* [lower-bound upper-bound]
| +--ro policies* string +--ro lower-bound uint32
+--ro receive? boolean +--ro upper-bound uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface: /rt:routing-protocol
/isis:isis/isis:interfaces/isis:interface:
+--ro segment-routing +--ro segment-routing
+--ro adjacency-sid +--ro adjacency-sid
+--ro advertise-adj-group-sid* [group-id] +--ro advertise-adj-group-sid* [group-id]
| +--ro group-id uint32 | +--ro group-id uint32
+--ro advertise-protection? enumeration +--ro advertise-protection? enumeration
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface /rt:routing-protocol/isis:isis/isis:interfaces/isis:interface
/isis:adjacencies/isis:adjacency: /isis:adjacencies/isis:adjacency:
+--ro adjacency-sid* [value] +--ro adjacency-sid* [value]
+--ro af? identityref +--ro af? identityref
+--ro value uint32 +--ro value uint32
+--ro weight? uint8 +--ro weight? uint8
+--ro protection-requested? boolean +--ro protection-requested? boolean
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /rt:routing-protocol
/isis:lsp/isis:extended-is-neighbor/isis:neighbor: /isis:isis/isis:database/isis:level-db/isis:lsp
/isis:extended-is-neighbor/isis:neighbor:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro weight? uint8 +--ro weight? uint8
+--ro neighbor-id? isis:system-id +--ro neighbor-id? isis:system-id
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /rt:routing-protocol/isis:isis/isis:database/isis:level-db
/isis:lsp/isis:mt-is-neighbor/isis:neighbor: /isis:lsp/isis:mt-is-neighbor/isis:neighbor:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro weight? uint8 +--ro weight? uint8
+--ro neighbor-id? isis:system-id +--ro neighbor-id? isis:system-id
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /rt:routing-protocol/isis:isis/isis:database/isis:level-db
/isis:lsp/isis:extended-ipv4-reachability/isis:prefixes: /isis:lsp/isis:extended-ipv4-reachability/isis:prefixes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /rt:routing-protocol/isis:isis/isis:database/isis:level-db
/isis:lsp/isis:mt-extended-ipv4-reachability/isis:prefixes: /isis:lsp/isis:mt-extended-ipv4-reachability/isis:prefixes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /rt:routing-protocol/isis:isis/isis:database/isis:level-db
/isis:lsp/isis:ipv6-reachability/isis:prefixes: /isis:lsp/isis:ipv6-reachability/isis:prefixes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /rt:routing-protocol/isis:isis/isis:database/isis:level-db
/isis:lsp/isis:mt-ipv6-reachability/isis:prefixes: /isis:lsp/isis:mt-ipv6-reachability/isis:prefixes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:database/isis:level-db/isis:lsp: /rt:routing-protocol/isis:isis/isis:database/isis:level-db/isis:lsp:
+--ro segment-routing-bindings* [fec range] +--ro segment-routing-bindings* [fec range]
+--ro fec string +--ro fec string
+--ro range uint16 +--ro range uint16
+--ro flags? bits +--ro flags? bits
+--ro weight? uint8 +--ro weight? uint8
+--ro binding* +--ro binding*
+--ro prefix-sid +--ro prefix-sid
| +--ro sid-list* [value] | +--ro sid-list* [value]
| +--ro flags? bits | +--ro flags? bits
| +--ro algorithm? uint8 | +--ro algorithm? uint8
skipping to change at page 22, line 29 skipping to change at page 21, line 30
policies" leaf-list. The "bindings/receive" leaf permits to enable policies" leaf-list. The "bindings/receive" leaf permits to enable
the reception of mapping server entries. the reception of mapping server entries.
5.3. IP Fast reroute 5.3. IP Fast reroute
IS-IS SR model augments the fast-reroute container under interface. IS-IS SR model augments the fast-reroute container under interface.
It brings the ability to activate TI-LFA (topology independent LFA) It brings the ability to activate TI-LFA (topology independent LFA)
and also enhances remote LFA to use segment-routing tunneling instead and also enhances remote LFA to use segment-routing tunneling instead
of LDP. of LDP.
6. Interaction with Other YANG Modules 6. BFD
Additionally this document defines a module that can be used to
configure and monitor the IS-IS BFD feature.
Bidirectional Forwarding Detection (BFD) ([RFC5880]) is a network
protocol that is used for liveness detection of arbitrary paths
between systems. A YANG data model is defined in
([I-D.ietf-bfd-yang]) that supports BFD configuration and management.
As a client of BFD, the IS-IS protocol uses the services provided by
BFD. The IS-IS BFD YANG augments the base IS-IS module and is
defined as a separate module. So any implementation that does not
support BFD can still use the IS-IS base model without having to
import the BFD module ([I-D.ietf-bfd-yang]).
module: ietf-isis-bfd
augment /rt:routing/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface:
+--rw bfd
+--rw enabled? boolean
+--rw local-multiplier? multiplier
+--rw (interval-config-type)?
+--:(tx-rx-intervals)
| +--rw desired-min-tx-interval uint32
| +--rw required-min-rx-interval uint32
+--:(single-interval)
+--rw min-interval uint32
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface:
+--ro bfd
+--ro enabled? boolean
+--ro local-multiplier? multiplier
+--ro (interval-config-type)?
+--:(tx-rx-intervals)
| +--ro desired-min-tx-interval uint32
| +--ro required-min-rx-interval uint32
+--:(single-interval)
+--ro min-interval uint32
7. Interaction with Other YANG Modules
The "isis" configuration container augments the "/rt:routing/ The "isis" configuration container augments the "/rt:routing/
rt:routing-instance/rt:routing-protocols/routing-protocol" container rt:routing-instance/rt:routing-protocols/routing-protocol" container
of the ietf-routing module by defining IS-IS specific parameters. of the ietf-routing module by defining IS-IS specific parameters.
The "isis" module augments "/if:interfaces/if:interface" with ISO The "isis" module augments "/if:interfaces/if:interface" with ISO
specific parameters. specific parameters.
The "isis" operational state container augments the "/rt:routing- The "isis" operational state container augments the "/rt:routing-
state/rt:routing-instance/rt:routing-protocols/routing-protocol" state/rt:routing-instance/rt:routing-protocols/routing-protocol"
container of the ietf-routing module by defining ISIS specific container of the ietf-routing module by defining IS-IS specific
operational states. operational states.
Some ISIS specific routes attributes are added to route objects of Some IS-IS specific routes attributes are added to route objects of
the ietf-routing module by augmenting "/rt:routing- the ietf-routing module by augmenting "/rt:routing-
state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:fib- state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:fib-
route/rt:output/rt:route". route/rt:output/rt:route".
The module uses some groupings from ietf-keychain, routing-policy and The modules defined in this document use some groupings from ietf-
ietf-bfd modules. keychain, routing-policy and ietf-bfd modules.
7. ISIS YANG Module 8. IS-IS YANG Module
<CODE BEGINS> file "ietf-isis@2015-09-18.yang" <CODE BEGINS> file "ietf-isis@2015-11-18.yang"
module ietf-isis { module ietf-isis {
namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; namespace "urn:ietf:params:xml:ns:yang:ietf-isis";
prefix isis; prefix isis;
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
skipping to change at page 23, line 34 skipping to change at page 23, line 34
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
} }
import ietf-bfd {
prefix "bfd";
}
import routing-policy { import routing-policy {
prefix rtgpol; prefix rtgpol;
} }
organization organization
"IETF ISIS Working Group"; "IETF ISIS Working Group";
contact contact
"WG List: &lt;mailto:isis-wg@ietf.org&gt; "WG List: &lt;mailto:isis-wg@ietf.org&gt;
skipping to change at page 24, line 28 skipping to change at page 24, line 26
&lt;mailto:yiqu@cisco.com&gt; &lt;mailto:yiqu@cisco.com&gt;
Jeff Tantsura Jeff Tantsura
&lt;mailto:jeff.tantsura@ericsson.com&gt; &lt;mailto:jeff.tantsura@ericsson.com&gt;
"; ";
description description
"The YANG module defines a generic configuration model for "The YANG module defines a generic configuration model for
ISIS common across all of the vendor implementations."; ISIS common across all of the vendor implementations.";
revision 2015-09-18 { revision 2015-11-18 {
description description
" * Reissuing draft."; "
reference "draft-ietf-isis-yang-isis-06"; * Move Overload config from list to container
* Move Overload-max-metric config from list to container
* Move preference config from list to container
* Add Node flag in config
* Removed BFD config => moved to isis-bfd module
";
reference "";
} }
revision 2015-09-10 { revision 2015-09-10 {
description description
" * Correct invalid references to previous " * Correct invalid references to previous
versions core routing model. versions core routing model.
* Moved BFD config to usage of ietf-bfd yang grouping * Moved BFD config to usage of ietf-bfd yang grouping
* Adding routing-policy support through routing-policy model * Adding routing-policy support through routing-policy model
"; ";
reference "draft-ietf-isis-yang-isis-05"; reference "draft-ietf-isis-yang-isis-05";
} }
skipping to change at page 28, line 48 skipping to change at page 29, line 4
identity clear-isis-adjacency { identity clear-isis-adjacency {
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
adjacency reset action."; adjacency reset action.";
} }
/* Feature definitions */ /* Feature definitions */
feature key-chain { feature key-chain {
description description
"Support of keychain for authentication."; "Support of keychain for authentication.";
} }
feature segment-routing { feature segment-routing {
description description
"Support of segment-routing."; "Support of segment-routing.";
}
feature node-flag {
description
"Support of node-flag advertisement
as prefix attribute";
} }
feature node-tag { feature node-tag {
description description
"Support of node tag."; "Support of node tag.";
} }
feature igp-ldp-sync { feature igp-ldp-sync {
description description
"Support of RFC5443."; "Support of RFC5443.";
} }
feature fast-reroute { feature fast-reroute {
skipping to change at page 29, line 27 skipping to change at page 29, line 36
} }
feature lfa { feature lfa {
description description
"Support of Loop Free Alternates."; "Support of Loop Free Alternates.";
} }
feature remote-lfa { feature remote-lfa {
description description
"Support of remote Loop Free Alternates."; "Support of remote Loop Free Alternates.";
} }
feature bfd {
description
"Support of BFD.";
}
feature overload-max-metric { feature overload-max-metric {
description description
"Support of overload by setting "Support of overload by setting
all links to max metric."; all links to max metric.";
} }
feature prefix-tag { feature prefix-tag {
description description
"Add 32bit tag to prefixes"; "Add 32bit tag to prefixes";
} }
feature prefix-tag64 { feature prefix-tag64 {
skipping to change at page 34, line 28 skipping to change at page 34, line 33
description description
"LSPs must not be flooded over that interface."; "LSPs must not be flooded over that interface.";
} }
} }
description description
"This type describes meshgroup state of an interface"; "This type describes meshgroup state of an interface";
} }
/* Grouping definitions */ /* Grouping definitions */
grouping route-preference-config {
choice granularity {
case detail {
leaf internal {
type uint8;
description
"This leaf defines the protocol
preference for internal routes.";
}
leaf external {
type uint8;
description
"This leaf defines the protocol
preference for external routes.";
}
}
case coarse {
leaf default {
type uint8;
description
"This leaf defines the protocol
preference for all ISIS routes.";
}
}
description
"Choice for implementation of route preference.";
}
description
"This grouping defines how route preference is configured.";
}
grouping admin-control { grouping admin-control {
leaf enable { leaf enable {
if-feature admin-control; if-feature admin-control;
type boolean; type boolean;
default true; default true;
description description
"Control the administrative "Control the administrative
state."; state.";
} }
skipping to change at page 61, line 24 skipping to change at page 62, line 15
This leaf is only affecting IPv4 metrics."; This leaf is only affecting IPv4 metrics.";
} }
leaf level { leaf level {
type level; type level;
description description
"Level applicability."; "Level applicability.";
} }
description description
"Metric style container."; "Metric style container.";
} }
list preference {
key level;
choice granularity {
case detail {
leaf internal {
type uint8;
description
"This leaf defines the protocol
preference for internal routes.";
}
leaf external {
type uint8;
description
"This leaf defines the protocol
preference for external routes.";
}
}
case coarse {
leaf default {
type uint8;
description
"This leaf defines the protocol
preference for all ISIS routes.";
}
}
description
"Choice for implementation of route preference.";
}
leaf level {
type level;
description
"Level applicability.";
}
description
"This leaf defines the protocol preference.";
}
list default-metric { list default-metric {
key level; key level;
leaf value { leaf value {
type wide-metric; type wide-metric;
description description
"Value of the metric"; "Value of the metric";
} }
leaf level { leaf level {
skipping to change at page 63, line 4 skipping to change at page 63, line 7
type boolean; type boolean;
description description
"Describes the activation state of the "Describes the activation state of the
AF."; AF.";
} }
description description
"This list permits activation "This list permits activation
of new address families."; of new address families.";
} }
list overload {
key level;
leaf status { container preference {
type boolean; uses route-preference-config;
description description
"This leaf defines the overload status."; "This container defines the protocol preference.";
} }
leaf timeout { container overload {
type uint16; leaf status {
units "seconds"; type boolean;
description description
"This leaf defines the timeout in seconds "This leaf defines the overload status.";
of the overload condition."; }
} description
leaf level { "This container describes if the router is
type level;
description
"Level applicability of the metric.";
}
description
"This leaf describes if the router is
set to overload state."; set to overload state.";
} }
list overload-max-metric {
if-feature overload-max-metric;
key level;
leaf status {
type boolean;
description
"This leaf defines the overload status.";
}
leaf timeout { container overload-max-metric {
type uint16; if-feature overload-max-metric;
units "seconds"; leaf timeout {
description type uint16;
"This leaf defines the timeout in seconds units "seconds";
of the overload condition."; description
} "This leaf defines the timeout in seconds
leaf level { of the overload condition.";
type level; }
description description
"Level applicability of the metric."; "This container describes if the router is
} set to overload state using max-metric
description advertisement.";
"This leaf describes if the router is }
set to overload state.";
}
} }
grouping isis-global-topologies-cfg { grouping isis-global-topologies-cfg {
description description
"Per topology config."; "Per topology config.";
list default-metric { list default-metric {
key level; key level;
leaf value { leaf value {
skipping to change at page 66, line 44 skipping to change at page 66, line 29
leaf-list tag64 { leaf-list tag64 {
if-feature prefix-tag64; if-feature prefix-tag64;
type uint64; type uint64;
description description
"This leaf defines list of 64bits tags "This leaf defines list of 64bits tags
associated with the interface."; associated with the interface.";
} }
leaf node-flag {
if-feature node-flag;
type boolean;
default false;
description
"Set prefix as a node
representative prefix.";
}
list hello-authentication { list hello-authentication {
key level; key level;
choice authentication-type { choice authentication-type {
case key-chain { case key-chain {
if-feature key-chain; if-feature key-chain;
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Reference to a key-chain."; "Reference to a key-chain.";
skipping to change at page 69, line 31 skipping to change at page 69, line 26
list af { list af {
key af; key af;
leaf af { leaf af {
type identityref { type identityref {
base rt:address-family; base rt:address-family;
} }
description description
"Address-family"; "Address-family";
} }
uses bfd:bfd-client-base-cfg-parms;
description description
"List of AFs."; "List of AFs.";
} }
container mpls { container mpls {
container igp-ldp-sync { container igp-ldp-sync {
if-feature igp-ldp-sync; if-feature igp-ldp-sync;
leaf enable { leaf enable {
type boolean; type boolean;
skipping to change at page 98, line 4 skipping to change at page 98, line 4
description description
"This notification is sent when a LSP "This notification is sent when a LSP
is regenerated. is regenerated.
The notification generation must be throttled with at least The notification generation must be throttled with at least
a 5 second gap. "; a 5 second gap. ";
} }
} }
<CODE ENDS> <CODE ENDS>
8. ISIS Segment Routing YANG Module 9. IS-IS Segment Routing YANG Module
<CODE BEGINS> file "ietf-isis-sr@2015-09-18.yang" <CODE BEGINS> file "ietf-isis-sr@2015-11-18.yang"
module ietf-isis-sr { module ietf-isis-sr {
namespace "urn:ietf:params:xml:ns:" namespace "urn:ietf:params:xml:ns:"
+ "yang:ietf-isis-sr"; + "yang:ietf-isis-sr";
prefix isis-sr; prefix isis-sr;
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
skipping to change at page 107, line 40 skipping to change at page 107, line 40
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-protocol"+
"/isis:isis" { "/isis:isis" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment ISIS routing protocol when used"; "This augment ISIS routing protocol when used";
} }
description description
"This augments ISIS protocol configuration "This augments ISIS protocol configuration
with segment routing."; with segment routing.";
uses sr:igp-controlplane-cfg; uses sr:controlplane-cfg;
container protocol-srgb {
if-feature sr:protocol-srgb;
uses sr:srgb-cfg;
description
"Per-protocol SRGB.";
}
} }
augment "/rt:routing/rt:routing-instance/" + augment "/rt:routing/rt:routing-instance/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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 ISIS routing protocol when used"; "This augment ISIS routing protocol when used";
} }
description description
skipping to change at page 109, line 22 skipping to change at page 109, line 28
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-protocol"+
"/isis:isis" { "/isis:isis" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment ISIS routing protocol when used"; "This augment ISIS routing protocol when used";
} }
description description
"This augments ISIS protocol configuration "This augments ISIS protocol configuration
with segment routing."; with segment routing.";
uses sr:igp-controlplane-cfg; uses sr:controlplane-cfg;
container protocol-srgb {
if-feature sr:protocol-srgb;
uses sr:srgb-cfg;
description
"Per-protocol SRGB.";
}
} }
augment "/rt:routing-state/rt:routing-instance/" + augment "/rt:routing-state/rt:routing-instance/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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 ISIS routing protocol when used"; "This augment ISIS routing protocol when used";
} }
description description
skipping to change at page 111, line 28 skipping to change at page 111, line 42
uses segment-routing-binding-tlv; uses segment-routing-binding-tlv;
} }
/* Notifications */ /* Notifications */
} }
<CODE ENDS> <CODE ENDS>
9. Security Considerations 10. IS-IS BFD YANG Module
<CODE BEGINS> file "ietf-isis-bfd@2015-11-18.yang"
module ietf-isis-bfd {
namespace "urn:ietf:params:xml:ns:yang:ietf-isis-bfd";
prefix isis-bfd;
import ietf-routing {
prefix "rt";
}
import ietf-bfd {
prefix "bfd";
}
import ietf-isis {
prefix "isis";
}
organization
"IETF ISIS Working Group";
contact
"
WG List: <mailto:isis-wg@ietf.org>
Editor: Stephane Litkowski
<mailto:stephane.litkowski@orange.com>
Author: Derek Yeung
<mailto:myeung@cisco.com>
Author: Yingzhen Qu
<mailto:yiqu@cisco.com>
Author: Acee Lindem
<mailto:acee@cisco.com>
Author: Jeffrey Zhang
<mailto:zzhang@juniper.net>
Author: Ing-Wher Chen
<mailto:ing-wher.chen@ericsson.com>
Author: Greg Hankins
<mailto:greg.hankins@alcatel-lucent.com>";
description
"This YANG module defines the generic configuration
and operational state for ISIS BFD, which is common
across all of the vendor implementations. It is
intended that the module will be extended by vendors to
define vendor-specific ISIS BFD configuration
and operational parameters and policies.";
revision 2015-11-18 {
description
"Initial revision.";
reference
"RFC XXXX: A YANG Data Model for ISIS BFD.";
}
feature bfd-protocol-parms {
description
"ISIS BFD protocol specific parameters support.";
}
/* Configuration */
augment "/rt:routing/rt:routing-instance/rt:routing-protocols/"
+ "rt:routing-protocol/isis:isis/"
+ "isis:interfaces/isis:interface" {
when "../../../../../../rt:type = 'isis:isis'" {
description
"This augments the ISIS routing protocol when used";
}
description
"This augments ISIS protocol configuration
with BFD.";
container bfd {
description "BFD configuration.";
leaf enabled {
type boolean;
default false;
description
"True if BFD is enabled for the ISIS interface.";
}
uses bfd:bfd-grouping-base-cfg-parms {
if-feature bfd-protocol-parms;
}
}
}
/* Operational states */
augment "/rt:routing-state/rt:routing-instance/"
+ "rt:routing-protocols/rt:routing-protocol/"
+ "isis:isis/"
+ "isis:interfaces/isis:interface" {
when "../../../../../../rt:type = 'isis:isis'" {
description
"This augments the ISIS routing protocol when used";
}
description
"This augments ISIS protocol operation
with BFD.";
container bfd {
description "BFD operation.";
leaf enabled {
type boolean;
description
"True if BFD is enabled for the ISIS interface.";
}
uses bfd:bfd-grouping-base-cfg-parms {
if-feature bfd-protocol-parms;
}
}
}
}
<CODE ENDS>
11. Security Considerations
Configuration and state data defined in this document are designed to Configuration and state data defined in this document are designed to
be accessed via the NETCONF protocol [RFC6241]. be accessed via the NETCONF protocol [RFC6241].
As ISIS is an IGP protocol (critical piece of the network), ensuring As IS-IS is an IGP protocol (critical piece of the network), ensuring
stability and security of the protocol is mandatory for the network stability and security of the protocol is mandatory for the network
service. service.
Authors recommends to implement NETCONF access control model Authors recommends to implement NETCONF access control model
([RFC6536]) to restrict access to all or part of the configuration to ([RFC6536]) to restrict access to all or part of the configuration to
specific users. Access control to RPCs is also critical as RPC specific users. Access control to RPCs is also critical as RPC
permits to clear protocol datastructures that would definitively permits to clear protocol datastructures that would definitively
impact the network service. This kind of RPC needs only to be used impact the network service. This kind of RPC needs only to be used
in specific cases by well-known experienced users. in specific cases by well-known experienced users.
skipping to change at page 112, line 25 skipping to change at page 115, line 12
Unauthorized access to configuration or RPC may cause high damages to Unauthorized access to configuration or RPC may cause high damages to
the network service. the network service.
The /isis-state/database may contain authentication information. As The /isis-state/database may contain authentication information. As
presented in the description of the /isis-state/database/level- presented in the description of the /isis-state/database/level-
1/lsp/authentication/authentication-key, the authentication MUST 1/lsp/authentication/authentication-key, the authentication MUST
never be presented in plaintext format for security reason. Authors never be presented in plaintext format for security reason. Authors
recommends the usage of MD5 to present the authentication-key. recommends the usage of MD5 to present the authentication-key.
Some authentication-key may also be present in the /isis Some authentication-key may also be present in the /isis
configuration. When configuring ISIS using the NETCONF protocol, configuration. When configuring IS-IS using the NETCONF protocol,
authors recommends the usage of secure transport of NETCONF using SSH authors recommends the usage of secure transport of NETCONF using SSH
([RFC6242]). ([RFC6242]).
10. Contributors 12. Contributors
Authors would like to thank Kiran Agrahara Sreenivasa, Dean Authors would like to thank Kiran Agrahara Sreenivasa, Dean
Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the
draft. draft.
11. Acknowledgements 13. Acknowledgements
TBD. TBD.
12. IANA Considerations 14. IANA Considerations
TBD. TBD.
13. Normative References 15. Normative References
[I-D.acee-rtg-yang-key-chain]
Lindem, A., Qu, Y., Yeung, D., Chen, H., Zhang, J., and Y.
Yang, "Key Chain YANG Data Model", draft-acee-rtg-yang-
key-chain-09 (work in progress), October 2015.
[I-D.ietf-bfd-yang]
Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and
G. Mirsky, "Yang Data Model for Bidirectional Forwarding
Detection (BFD)", draft-ietf-bfd-yang-00 (work in
progress), August 2015.
[I-D.ietf-netmod-routing-cfg] [I-D.ietf-netmod-routing-cfg]
Lhotka, L. and A. Lindem, "A YANG Data Model for Routing Lhotka, L. and A. Lindem, "A YANG Data Model for Routing
Management", draft-ietf-netmod-routing-cfg-19 (work in Management", draft-ietf-netmod-routing-cfg-20 (work in
progress), May 2015. progress), October 2015.
[I-D.litkowski-spring-sr-yang] [I-D.ietf-spring-sr-yang]
Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG
Data Model for Segment Routing", draft-litkowski-spring- Data Model for Segment Routing", draft-ietf-spring-sr-
sr-yang-01 (work in progress), June 2015. yang-01 (work in progress), October 2015.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
<http://www.rfc-editor.org/info/rfc5880>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<http://www.rfc-editor.org/info/rfc6241>. <http://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<http://www.rfc-editor.org/info/rfc6242>. <http://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
 End of changes. 87 change blocks. 
324 lines changed or deleted 448 lines changed or added

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