draft-ietf-isis-yang-isis-cfg-10.txt   draft-ietf-isis-yang-isis-cfg-11.txt 
IS-IS 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 24, 2017 A. Lindem Expires: March 25, 2017 A. Lindem
Cisco Systems Cisco Systems
J. Zhang J. Zhang
Juniper Networks Juniper Networks
L. Lhotka L. Lhotka
CZ.NIC CZ.NIC
September 20, 2016 September 21, 2016
YANG Data Model for IS-IS protocol YANG Data Model for IS-IS protocol
draft-ietf-isis-yang-isis-cfg-10 draft-ietf-isis-yang-isis-cfg-11
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 IS-IS 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 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",
skipping to change at page 1, line 44 skipping to change at page 1, line 44
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 24, 2017. This Internet-Draft will expire on March 25, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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 29 skipping to change at page 2, line 29
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. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9
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 . . . . . . . . . . . . . . . . 12 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12
2.5. ISO parameters . . . . . . . . . . . . . . . . . . . . . 12 2.5. ISO parameters . . . . . . . . . . . . . . . . . . . . . 15
2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7. Operational State . . . . . . . . . . . . . . . . . . . . 13 2.7. Operational State . . . . . . . . . . . . . . . . . . . . 16
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 13 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 16
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 14 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 17
5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 18 5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 21
5.1. Segment Routing activation . . . . . . . . . . . . . . . 20 5.1. Segment Routing activation . . . . . . . . . . . . . . . 23
5.2. Advertising mapping server policy . . . . . . . . . . . . 20 5.2. Advertising mapping server policy . . . . . . . . . . . . 24
5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 20 5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 24
6. Interaction with Other YANG Modules . . . . . . . . . . . . . 21 6. Interaction with Other YANG Modules . . . . . . . . . . . . . 24
7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 21 7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 24
8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 100 8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 104
9. Security Considerations . . . . . . . . . . . . . . . . . . . 114 9. Security Considerations . . . . . . . . . . . . . . . . . . . 119
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 120
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 120
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 120
13. Normative References . . . . . . . . . . . . . . . . . . . . 116 13. Normative References . . . . . . . . . . . . . . . . . . . . 120
Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 117 Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 121
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 119 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 124
1. Introduction 1. Introduction
This document defines a YANG data model for IS-IS routing protocol. This document defines a YANG data model for IS-IS routing protocol.
The data model covers configuration of an IS-IS 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
skipping to change at page 4, line 7 skipping to change at page 4, line 7
module: module:
module: ietf-isis module: ietf-isis
augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route: augment /rt:routing-state/rt:ribs/rt:rib/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 /if:interfaces/if:interface: augment /if:interfaces/if:interface:
+--rw clns-mtu? uint16 +--rw clns-mtu? uint16
augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: augment /rt:routing/rt:control-plane-protocols/rt:control-plane-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 5, line 15 skipping to change at page 5, line 15
+--rw overload-max-metric {overload-max-metric}? +--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? uint16 | +--rw timeout? uint16
+--rw fast-reroute {fast-reroute}? +--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}? | +--rw lfa {lfa}?
+--rw multi-topology {multi-topology}? +--rw multi-topology {multi-topology}?
| +--rw topology* [name] | +--rw topology* [name]
| ... | ...
+--rw interfaces +--rw interfaces
+--rw interface* [name] +--rw interface* [name]
... ...
augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol: augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
otocol:
+--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 12, line 21 skipping to change at page 12, line 21
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 IS-IS global interface-specific parameter always override an IS-IS global
parameter . parameter .
Some parameters like hello-padding are defined as containers to Some parameters like hello-padding are defined as containers to
permit easy extension by vendor specific modules. permit easy extension by vendor specific modules.
TODO : interfaces.tree +--rw interfaces
+--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 node-flag? boolean {node-flag}?
+--rw hello-authentication
| +--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}?
| | | +--rw hmac-sha1-12? empty
| | +--:(md5)
| | | +--rw md5? empty
| | +--:(sha-1)
| | | +--rw sha-1? empty
| | +--:(hmac-sha-1)
| | | +--rw hmac-sha-1? empty
| | +--:(hmac-sha-256)
| | | +--rw hmac-sha-256? empty
| | +--:(hmac-sha-384)
| | | +--rw hmac-sha-384? empty
| | +--:(hmac-sha-512)
| | +--rw hmac-sha-512? empty
| +--rw level-1
| | +--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}?
| | | +--rw hmac-sha1-12? empty
| | +--:(md5)
| | | +--rw md5? empty
| | +--:(sha-1)
| | | +--rw sha-1? empty
| | +--:(hmac-sha-1)
| | | +--rw hmac-sha-1? empty
| | +--:(hmac-sha-256)
| | | +--rw hmac-sha-256? empty
| | +--:(hmac-sha-384)
| | | +--rw hmac-sha-384? empty
| | +--:(hmac-sha-512)
| | +--rw hmac-sha-512? empty
| +--rw level-2
| +--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}?
| | +--rw hmac-sha1-12? empty
| +--:(md5)
| | +--rw md5? empty
| +--:(sha-1)
| | +--rw sha-1? empty
| +--:(hmac-sha-1)
| | +--rw hmac-sha-1? empty
| +--:(hmac-sha-256)
| | +--rw hmac-sha-256? empty
| +--:(hmac-sha-384)
| | +--rw hmac-sha-384? empty
| +--:(hmac-sha-512)
| +--rw hmac-sha-512? empty
+--rw hello-interval
| +--rw value? uint16
| +--rw level-1
| | +--rw value? uint16
| +--rw level-2
| +--rw value? uint16
+--rw hello-multiplier
| +--rw value? uint16
| +--rw level-1
| | +--rw value? uint16
| +--rw level-2
| +--rw value? uint16
+--rw priority
| +--rw value? uint8
| +--rw level-1
| | +--rw value? uint8
| +--rw level-2
| +--rw value? uint8
+--rw metric
| +--rw value? wide-metric
| +--rw level-1
| | +--rw value? wide-metric
| +--rw level-2
| +--rw value? wide-metric
+--rw bfd {bfd}?
| +--rw enabled? boolean
+--rw afs
| +--rw af* [af]
| +--rw af identityref
+--rw mpls
| +--rw igp-ldp-sync {igp-ldp-sync}?
| +--rw enable? boolean
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level-1
| | +--rw candidate-disabled? boolean
| | +--rw enable? boolean
| | +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level-2
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| +--rw enable? boolean
+--rw multi-topology {multi-topology}?
+--rw topology* [name]
+--rw name leafref
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level-1
| | +--rw candidate-disabled? boolean
| | +--rw enable? boolean
| | +--rw remote-lfa {remote-lfa}?
| | +--rw enable? boolean
| +--rw level-2
| +--rw candidate-disabled? boolean
| +--rw enable? boolean
| +--rw remote-lfa {remote-lfa}?
| +--rw enable? boolean
+--rw metric
+--rw value? wide-metric
+--rw level-1
| +--rw value? wide-metric
+--rw level-2
+--rw value? wide-metric
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 18, line 22 skipping to change at page 21, line 32
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.ietf-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 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis: /isis:isis:
+--rw segment-routing +--rw segment-routing
| +--rw enabled? boolean | +--rw enabled? boolean
| +--rw bindings | +--rw bindings
| +--rw advertise | +--rw advertise
| | +--rw policies* string | | +--rw policies* string
| +--rw receive? boolean | +--rw receive? boolean
+--rw protocol-srgb {sr:protocol-srgb}? +--rw protocol-srgb {sr:protocol-srgb}?
+--rw srgb* [lower-bound upper-bound] +--rw srgb* [lower-bound upper-bound]
+--rw lower-bound uint32 +--rw lower-bound uint32
+--rw upper-bound uint32 +--rw upper-bound uint32
augment augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis: /isis:isis/isis:interfaces/isis:interface:
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 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis: /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute:
interfaces/isis:interface/isis:fast-reroute:
+--rw ti-lfa {ti-lfa}? +--rw ti-lfa {ti-lfa}?
+--rw enable? boolean +--rw enable? boolean
augment
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis: augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
interfaces/isis:interface/isis:fast-reroute/isis:lfa/isis:remote-lfa: /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute/isis:lfa/isi
s:remote-lfa:
+--rw use-segment-routing-path? boolean {remote-lfa-sr}? +--rw use-segment-routing-path? boolean {remote-lfa-sr}?
augment augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis:
:
+--ro segment-routing +--ro segment-routing
| +--ro enabled? boolean | +--ro enabled? boolean
| +--ro bindings | +--ro bindings
| +--ro advertise | +--ro advertise
| | +--ro policies* string | | +--ro policies* string
| +--ro receive? boolean | +--ro receive? boolean
+--ro protocol-srgb {sr:protocol-srgb}? +--ro protocol-srgb {sr:protocol-srgb}?
+--ro srgb* [lower-bound upper-bound] +--ro srgb* [lower-bound upper-bound]
+--ro lower-bound uint32 +--ro lower-bound uint32
+--ro upper-bound uint32 +--ro upper-bound uint32
augment augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:interfaces/isis:interface:
/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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:interfaces/isis:interface/isis:adjacencies/isis:ad
/isis:interfaces/isis:interface/isis:adjacencies/isis:adjacency: jacency:
+--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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:extended-is-n
/isis:database/isis:level-db/isis:lsp/isis:extended-is-neighbor/isis:neighbor: eighbor/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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:mt-is-neighbo
/isis:database/isis:level-db/isis:lsp/isis:mt-is-neighbor/isis:neighbor: r/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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:extended-ipv4
/isis:database/isis:level-db/isis:lsp/isis:extended-ipv4-reachability/isis:prefi -reachability/isis:prefixes:
xes:
+--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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:mt-extended-i
/isis:database/isis:level-db/isis:lsp/isis:mt-extended-ipv4-reachability/isis:pr pv4-reachability/isis:prefixes:
efixes:
+--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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:ipv6-reachabi
/isis:database/isis:level-db/isis:lsp/isis:ipv6-reachability/isis:prefixes: lity/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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:mt-ipv6-reach
/isis:database/isis:level-db/isis:lsp/isis:mt-ipv6-reachability/isis:prefixes: ability/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 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
/rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis otocol/isis:isis/isis:database/isis:level-db/isis:lsp:
/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 21, line 32 skipping to change at page 24, line 46
Some IS-IS 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". state/rt:ribs/rt:rib/rt:routes/rt:route".
The modules defined in this document use some groupings from ietf- The modules defined in this document use some groupings from ietf-
keychain [I-D.ietf-rtgwg-yang-key-chain] and ietf-segment routing keychain [I-D.ietf-rtgwg-yang-key-chain] and ietf-segment routing
[I-D.ietf-spring-sr-yang]. [I-D.ietf-spring-sr-yang].
7. IS-IS YANG Module 7. IS-IS YANG Module
<CODE BEGINS> file "ietf-isis@2016-09-20.yang" <CODE BEGINS> file "ietf-isis@2016-09-21.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";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
skipping to change at page 22, line 45 skipping to change at page 26, line 11
&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 2016-09-21 {
description
"
Draft refresh
";
reference "draft-ietf-isis-yang-isis-cfg-11";
}
revision 2016-09-20 { revision 2016-09-20 {
description description
" "
Align to draft-ietf-netmod-routing-cfg-23. Align to draft-ietf-netmod-routing-cfg-23.
"; ";
reference "draft-ietf-isis-yang-isis-cfg-09"; reference "draft-ietf-isis-yang-isis-cfg-09";
} }
revision 2016-05-30 { revision 2016-05-30 {
description description
" "
Added container before af list Added container before af list
Added container before topology list Added container before topology list
Aligned LFA if per level cfg Aligned LFA if per level cfg
"; ";
reference ""; reference "";
} }
revision 2016-03-21 { revision 2016-03-21 {
skipping to change at page 100, line 28 skipping to change at page 104, line 7
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. IS-IS Segment Routing YANG Module 8. IS-IS Segment Routing YANG Module
<CODE BEGINS> file "ietf-isis-sr@2016-09-20.yang" <CODE BEGINS> file "ietf-isis-sr@2016-09-21.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 101, line 29 skipping to change at page 105, line 5
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
Segment routing ISIS extensions common across all of the vendor Segment routing ISIS extensions common across all of the vendor
implementations."; implementations.";
revision 2016-09-21 {
description
"Fixed XPATH in 'when' expression";
reference "draft-ietf-isis-yang-isis-cfg-11";
}
revision 2016-09-20 { revision 2016-09-20 {
description description
" "
Align to draft-ietf-netmod-routing-cfg-23. Align to draft-ietf-netmod-routing-cfg-23.
"; ";
reference "draft-ietf-isis-yang-isis-cfg-09"; reference "draft-ietf-isis-yang-isis-cfg-09";
} }
revision 2016-03-21 { revision 2016-03-21 {
description " description "
skipping to change at page 110, line 21 skipping to change at page 114, line 4
} }
description description
"Defines binding TLV for database."; "Defines binding TLV for database.";
} }
/* Cfg */ /* Cfg */
augment "/rt:routing/" + augment "/rt:routing/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis" { "/isis:isis" {
when "rt:type = 'isis:isis'" {
when "/rt:routing/rt:control-plane-protocols/"+
"rt:control-plane-protocol/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:controlplane-cfg; uses sr:controlplane-cfg;
container protocol-srgb { container protocol-srgb {
if-feature sr:protocol-srgb; if-feature sr:protocol-srgb;
uses sr:srgb-cfg; uses sr:srgb-cfg;
description description
"Per-protocol SRGB."; "Per-protocol SRGB.";
} }
} }
augment "/rt:routing/" + augment "/rt:routing/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:interfaces/isis:interface" { "/isis:isis/isis:interfaces/isis:interface" {
when "rt:type = 'isis:isis'" { when "/rt:routing/rt:control-plane-protocols/"+
"rt:control-plane-protocol/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-interface-cfg; uses sr:igp-interface-cfg;
} }
augment "/rt:routing/" + augment "/rt:routing/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:interfaces/isis:interface"+ "/isis:isis/isis:interfaces/isis:interface"+
"/isis:fast-reroute" { "/isis:fast-reroute" {
when "rt:type = 'isis:isis'" { when "/rt:routing/rt:control-plane-protocols/"+
"rt:control-plane-protocol/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 IP FRR with TILFA."; "This augments ISIS IP FRR with TILFA.";
container ti-lfa { container ti-lfa {
if-feature ti-lfa; if-feature ti-lfa;
leaf enable { leaf enable {
type boolean; type boolean;
skipping to change at page 111, line 35 skipping to change at page 115, line 20
description description
"TILFA configuration."; "TILFA configuration.";
} }
} }
augment "/rt:routing/" + augment "/rt:routing/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:interfaces/isis:interface"+ "/isis:isis/isis:interfaces/isis:interface"+
"/isis:fast-reroute/isis:lfa/isis:remote-lfa" { "/isis:fast-reroute/isis:lfa/isis:remote-lfa" {
when "rt:type = 'isis:isis'" { when "/rt:routing/rt:control-plane-protocols/"+
"rt:control-plane-protocol/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 remoteLFA config with "This augments ISIS remoteLFA config with
use of segment-routing path."; use of segment-routing path.";
leaf use-segment-routing-path { leaf use-segment-routing-path {
if-feature remote-lfa-sr; if-feature remote-lfa-sr;
type boolean; type boolean;
skipping to change at page 112, line 4 skipping to change at page 115, line 38
leaf use-segment-routing-path { leaf use-segment-routing-path {
if-feature remote-lfa-sr; if-feature remote-lfa-sr;
type boolean; type boolean;
description description
"force remote LFA to use segment routing "force remote LFA to use segment routing
path instead of LDP path."; path instead of LDP path.";
} }
} }
/* Operational states */ /* Operational states */
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis" { "/isis:isis" {
when "rt:type = 'isis:isis'" { when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/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:controlplane-cfg; uses sr:controlplane-cfg;
container protocol-srgb { container protocol-srgb {
if-feature sr:protocol-srgb; if-feature sr:protocol-srgb;
uses sr:srgb-cfg; uses sr:srgb-cfg;
description description
"Per-protocol SRGB."; "Per-protocol SRGB.";
} }
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:interfaces/isis:interface" { "/isis:isis/isis:interfaces/isis:interface" {
when "rt:type = 'isis:isis'" { when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/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-interface-cfg; uses sr:igp-interface-cfg;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/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:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/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 adjacency-state; uses adjacency-state;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp"+ "/isis:isis/isis:database/isis:level-db/isis:lsp"+
"/isis:extended-is-neighbor/isis:neighbor" { "/isis:extended-is-neighbor/isis:neighbor" {
when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/rt:type = 'isis:isis'" {
description
"This augment ISIS routing protocol when used";
}
description description
"This augments ISIS protocol LSDB neighbor."; "This augments ISIS protocol LSDB neighbor.";
uses adjacency-segment-id; uses adjacency-segment-id;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp"+ "/isis:isis/isis:database/isis:level-db/isis:lsp"+
"/isis:mt-is-neighbor/isis:neighbor" { "/isis:mt-is-neighbor/isis:neighbor" {
when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/rt:type = 'isis:isis'" {
description
"This augment ISIS routing protocol when used";
}
description description
"This augments ISIS protocol LSDB neighbor."; "This augments ISIS protocol LSDB neighbor.";
uses adjacency-segment-id; uses adjacency-segment-id;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp"+ "/isis:isis/isis:database/isis:level-db/isis:lsp"+
"/isis:extended-ipv4-reachability/isis:prefixes" { "/isis:extended-ipv4-reachability/isis:prefixes" {
when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/rt:type = 'isis:isis'" {
description
"This augment ISIS routing protocol when used";
}
description description
"This augments ISIS protocol LSDB prefix."; "This augments ISIS protocol LSDB prefix.";
uses prefix-segment-id; uses prefix-segment-id;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp"+ "/isis:isis/isis:database/isis:level-db/isis:lsp"+
"/isis:mt-extended-ipv4-reachability/isis:prefixes" { "/isis:mt-extended-ipv4-reachability/isis:prefixes" {
when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/rt:type = 'isis:isis'" {
description
"This augment ISIS routing protocol when used";
}
description description
"This augments ISIS protocol LSDB prefix."; "This augments ISIS protocol LSDB prefix.";
uses prefix-segment-id; uses prefix-segment-id;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp"+ "/isis:isis/isis:database/isis:level-db/isis:lsp"+
"/isis:ipv6-reachability/isis:prefixes" { "/isis:ipv6-reachability/isis:prefixes" {
when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/rt:type = 'isis:isis'" {
description
"This augment ISIS routing protocol when used";
}
description description
"This augments ISIS protocol LSDB prefix."; "This augments ISIS protocol LSDB prefix.";
uses prefix-segment-id; uses prefix-segment-id;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp"+ "/isis:isis/isis:database/isis:level-db/isis:lsp"+
"/isis:mt-ipv6-reachability/isis:prefixes" { "/isis:mt-ipv6-reachability/isis:prefixes" {
when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/rt:type = 'isis:isis'" {
description
"This augment ISIS routing protocol when used";
}
description description
"This augments ISIS protocol LSDB prefix."; "This augments ISIS protocol LSDB prefix.";
uses prefix-segment-id; uses prefix-segment-id;
} }
augment "/rt:routing-state/" + augment "/rt:routing-state/" +
"rt:control-plane-protocols/rt:control-plane-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp" { "/isis:isis/isis:database/isis:level-db/isis:lsp" {
when "/rt:routing-state/rt:control-plane-protocols/"+
"rt:control-plane-protocol/rt:type = 'isis:isis'" {
description
"This augment ISIS routing protocol when used";
}
description description
"This augments ISIS protocol LSDB."; "This augments ISIS protocol LSDB.";
uses segment-routing-binding-tlv; uses segment-routing-binding-tlv;
} }
/* Notifications */ /* Notifications */
} }
<CODE ENDS> <CODE ENDS>
9. Security Considerations 9. 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].
 End of changes. 45 change blocks. 
82 lines changed or deleted 284 lines changed or added

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