draft-ietf-isis-yang-isis-cfg-07.txt   draft-ietf-isis-yang-isis-cfg-08.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: May 21, 2016 A. Lindem Expires: September 22, 2016 A. Lindem
Cisco Systems Cisco Systems
J. Zhang J. Zhang
Juniper Networks Juniper Networks
L. Lhotka L. Lhotka
CZ.NIC CZ.NIC
November 18, 2015 March 21, 2016
YANG Data Model for IS-IS protocol YANG Data Model for IS-IS protocol
draft-ietf-isis-yang-isis-cfg-07 draft-ietf-isis-yang-isis-cfg-08
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 and BFD configuration and extension module for segment routing configuration and operation.
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 45 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 May 21, 2016. This Internet-Draft will expire on September 22, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
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
skipping to change at page 2, line 38 skipping to change at page 2, line 38
2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12
2.5. ISO parameters . . . . . . . . . . . . . . . . . . . . . 12 2.5. ISO parameters . . . . . . . . . . . . . . . . . . . . . 12
2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.6. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7. Operational State . . . . . . . . . . . . . . . . . . . . 13 2.7. Operational State . . . . . . . . . . . . . . . . . . . . 13
3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 13 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 13
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 14 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 18 5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 18
5.1. Segment Routing activation . . . . . . . . . . . . . . . 21 5.1. Segment Routing activation . . . . . . . . . . . . . . . 21
5.2. Advertising mapping server policy . . . . . . . . . . . . 21 5.2. Advertising mapping server policy . . . . . . . . . . . . 21
5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 21 5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 21
6. BFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6. Interaction with Other YANG Modules . . . . . . . . . . . . . 21
7. Interaction with Other YANG Modules . . . . . . . . . . . . . 22 7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22
8. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 23 8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 100
9. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 98 9. Security Considerations . . . . . . . . . . . . . . . . . . . 114
10. IS-IS BFD YANG Module . . . . . . . . . . . . . . . . . . . . 111 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115
11. Security Considerations . . . . . . . . . . . . . . . . . . . 114 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115
12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115 13. Normative References . . . . . . . . . . . . . . . . . . . . 116
14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115 Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 117
15. Normative References . . . . . . . . . . . . . . . . . . . . 115 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 120
Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 116
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 119
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 3, line 48 skipping to change at page 3, line 48
The IS-IS 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 IS-IS 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: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:
+--ro metric? uint32
+--ro tag* uint64
+--ro route-type? enumeration
augment /if:interfaces/if:interface:
+--rw clns-mtu? uint16
augment /rt:routing/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol:
+--rw isis
+--rw enable? boolean {admin-control}?
+--rw level-type? level
+--rw system-id? system-id
+--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
+--rw area-address* area-address
+--rw mpls
| +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--rw igp-ldp-sync {igp-ldp-sync}?
+--rw reference-bandwidth? uint32 {reference-bandwidth}?
+--rw lsp-mtu? uint16
+--rw lsp-lifetime? uint16
+--rw lsp-refresh? uint16 {lsp-refresh}?
+--rw graceful-restart {graceful-restart}?
| +--rw enable? boolean
+--rw node-tag {node-tag}?
| +--rw node-tag* [tag]
| ...
+--rw authentication* [level]
| +--rw (authentication-type)?
| | ...
| +--rw level level
+--rw metric-type* [level]
| +--rw value? enumeration
| +--rw level level
+--rw default-metric* [level]
| +--rw value? wide-metric
| +--rw level level
+--rw af* [af] {nlpid-control}?
| +--rw af identityref
| +--rw enable? boolean
+--rw preference
| +--rw (granularity)?
| ...
+--rw overload
| +--rw status? boolean
+--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? uint16
+--rw apply-policy
| +--rw config
| | ...
| +--ro state
| ...
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
+--rw topologies* [name] {multi-topology}?
| +--rw enable? boolean
| +--rw name leafref
| +--rw default-metric* [level]
| | ...
| +--rw node-tag {node-tag}?
| | ...
| +--rw fast-reroute {fast-reroute}?
| ...
+--rw interfaces
+--rw interface* [name]
...
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols
/rt:routing-protocol:
+--ro isis
+--ro enable? boolean {admin-control}?
+--ro level-type? level
+--ro system-id? system-id
+--ro maximum-area-addresses? uint8 {maximum-area-addresses}?
+--ro area-address* area-address
+--ro mpls
| +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--ro igp-ldp-sync {igp-ldp-sync}?
+--ro reference-bandwidth? uint32 {reference-bandwidth}?
+--ro lsp-mtu? uint16
+--ro lsp-lifetime? uint16
+--ro lsp-refresh? uint16 {lsp-refresh}?
+--ro graceful-restart {graceful-restart}?
| +--ro enable? boolean
+--ro node-tag {node-tag}?
| +--ro node-tag* [tag]
| ...
+--ro authentication* [level]
| +--ro (authentication-type)?
| | ...
| +--ro level level
+--ro metric-type* [level]
| +--ro value? enumeration
| +--ro level level
+--ro default-metric* [level]
| +--ro value? wide-metric
| +--ro level level
+--ro af* [af] {nlpid-control}?
| +--ro af identityref
| +--ro enable? boolean
+--ro preference
| +--ro (granularity)?
| ...
+--ro overload
| +--ro status? boolean
+--ro overload-max-metric {overload-max-metric}?
| +--ro timeout? uint16
+--ro fast-reroute {fast-reroute}?
| +--ro lfa {lfa}?
| +--ro protected-routes
| | ...
| +--ro nonprotected-routes
| | ...
| +--ro protection-statistics* [frr-protection-method]
| ...
+--ro topologies* [name]
| +--ro name leafref
| +--ro fast-route {fast-reroute}?
| ...
+--ro system-counters
| +--ro level* [level]
| ...
+--ro interfaces
| +--ro interface* [interface]
| ...
+--ro spf-log
| +--ro event* [id]
| ...
+--ro lsp-log
| +--ro event* [id]
| ...
+--ro database
| +--ro level-db* [level]
| ...
+--ro hostnames
+--ro hostname* [system-id]
...
rpcs:
+---x clear-adjacency
| +--ro input
| +--ro routing-instance-name rt:routing-instance-state-ref
| +--ro routing-protocol-instance-name instance-state-ref
| +--ro level? level
| +--ro interface? string
+---x clear-database
+--ro input
+--ro routing-instance-name rt:routing-instance-state-ref
+--ro routing-protocol-instance-name instance-state-ref
+--ro level? level
notifications:
+---n database-overload
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro overload? enumeration
+---n lsp-too-large
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id
+---n corrupted-lsp-detected
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro lsp-id? lsp-id
+---n id-len-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary
+---n max-area-addresses-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary
+---n own-lsp-purge
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n sequence-number-skipped
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n authentication-type-failure
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n authentication-failure
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n version-skew
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro protocol-version? uint8
| +--ro raw-pdu? binary
+---n area-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n rejected-adjacency
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
| +--ro reason? string
+---n protocols-supported-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
| +--ro protocols* uint8
+---n lsp-error-detected
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
| +--ro raw-pdu? binary
| +--ro error-offset? uint32
| +--ro tlv-type? uint8
+---n adjacency-change
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro neighbor? string
| +--ro neighbor-system-id? system-id
| +--ro level? level
| +--ro state? enumeration
| +--ro reason? string
+---n lsp-received
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
| +--ro sequence? uint32
| +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id
+---n lsp-generation
+--ro instance-name? string
+--ro instance-level? level
+--ro lsp-id? lsp-id
+--ro sequence? uint32
+--ro send-timestamp? yang:timestamp
2.1. IS-IS Configuration augment /rt:fib-route/rt:output/rt:route:
+--ro metric? uint32
+--ro tag* uint64
+--ro route-type? enumeration
augment /if:interfaces/if:interface:
+--rw clns-mtu? uint16
augment /rt:routing/rt:routing-protocols/rt:routing-protocol:
+--rw isis
+--rw enable? boolean {admin-control}?
+--rw level-type? level
+--rw system-id? system-id
+--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
+--rw area-address* area-address
+--rw mpls
| +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--rw igp-ldp-sync {igp-ldp-sync}?
+--rw reference-bandwidth? uint32 {reference-bandwidth}?
+--rw lsp-mtu? uint16
+--rw lsp-lifetime? uint16
+--rw lsp-refresh? uint16 {lsp-refresh}?
+--rw graceful-restart {graceful-restart}?
| +--rw enable? boolean
+--rw node-tag {node-tag}?
| +--rw node-tag* [tag]
| ...
+--rw authentication
| +--rw (authentication-type)?
| | ...
| +--rw level-1
| | ...
| +--rw level-2
| ...
+--rw metric-type
| +--rw value? enumeration
| +--rw level-1
| | ...
| +--rw level-2
| ...
+--rw default-metric
| +--rw value? wide-metric
| +--rw level-1
| | ...
| +--rw level-2
| ...
+--rw af* [af] {nlpid-control}?
| +--rw af identityref
| +--rw enable? boolean
+--rw preference
| +--rw (granularity)?
| ...
+--rw overload
| +--rw status? boolean
+--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? uint16
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
+--rw topologies* [name] {multi-topology}?
| +--rw enable? boolean
| +--rw name leafref
| +--rw default-metric
| | ...
| +--rw node-tag {node-tag}?
| | ...
| +--rw fast-reroute {fast-reroute}?
| ...
+--rw interfaces
+--rw interface* [name]
...
augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol:
+--ro isis
+--ro enable? boolean {admin-control}?
+--ro level-type? level
+--ro system-id? system-id
+--ro maximum-area-addresses? uint8 {maximum-area-addresses}?
+--ro area-address* area-address
+--ro mpls
| +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
| +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
| +--ro igp-ldp-sync {igp-ldp-sync}?
+--ro reference-bandwidth? uint32 {reference-bandwidth}?
+--ro lsp-mtu? uint16
+--ro lsp-lifetime? uint16
+--ro lsp-refresh? uint16 {lsp-refresh}?
+--ro graceful-restart {graceful-restart}?
| +--ro enable? boolean
+--ro node-tag {node-tag}?
| +--ro node-tag* [tag]
| ...
+--ro authentication
| +--ro (authentication-type)?
| | ...
| +--ro level-1
| | ...
| +--ro level-2
| ...
The IS-IS configuration supports a VRF-centric configuration +--ro metric-type
approach. The isis configuration is applied directly within the | +--ro value? enumeration
appropriate routing-instance where IS-IS is activated. | +--ro level-1
| | ...
| +--ro level-2
| ...
+--ro default-metric
| +--ro value? wide-metric
| +--ro level-1
| | ...
| +--ro level-2
| ...
+--ro af* [af] {nlpid-control}?
| +--ro af identityref
| +--ro enable? boolean
+--ro preference
| +--ro (granularity)?
| ...
+--ro overload
| +--ro status? boolean
+--ro overload-max-metric {overload-max-metric}?
| +--ro timeout? uint16
+--ro fast-reroute {fast-reroute}?
| +--ro lfa {lfa}?
| +--ro protected-routes
| | ...
| +--ro nonprotected-routes
| | ...
| +--ro protection-statistics* [frr-protection-method]
| ...
+--ro topologies* [name]
| +--ro name leafref
| +--ro fast-route {fast-reroute}?
| ...
+--ro system-counters
| +--ro level* [level]
| ...
+--ro interfaces
| +--ro interface* [interface]
| ...
+--ro spf-log
| +--ro event* [id]
| ...
+--ro lsp-log
| +--ro event* [id]
| ...
+--ro database
| +--ro level-db* [level]
| ...
+--ro hostnames
+--ro hostname* [system-id]
...
rpcs:
+---x clear-adjacency
| +--ro input
| +--ro routing-protocol-instance-name instance-state-ref
| +--ro level? level
| +--ro interface? string
+---x clear-database
+--ro input
+--ro routing-protocol-instance-name instance-state-ref
+--ro level? level
notifications:
+---n database-overload
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro overload? enumeration
+---n lsp-too-large
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id
+---n corrupted-lsp-detected
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro lsp-id? lsp-id
+---n id-len-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary
+---n max-area-addresses-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary
+---n own-lsp-purge
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n sequence-number-skipped
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
+---n authentication-type-failure
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n authentication-failure
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n version-skew
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro protocol-version? uint8
| +--ro raw-pdu? binary
+---n area-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
+---n rejected-adjacency
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
| +--ro reason? string
+---n protocols-supported-mismatch
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary
| +--ro protocols* uint8
+---n lsp-error-detected
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
| +--ro raw-pdu? binary
| +--ro error-offset? uint32
| +--ro tlv-type? uint8
+---n adjacency-change
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro neighbor? string
| +--ro neighbor-system-id? system-id
| +--ro level? level
| +--ro state? enumeration
| +--ro reason? string
+---n lsp-received
| +--ro instance-name? string
| +--ro instance-level? level
| +--ro interface-name? string
| +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id
| +--ro sequence? uint32
| +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id
+---n lsp-generation
+--ro instance-name? string
+--ro instance-level? level
+--ro lsp-id? lsp-id
+--ro sequence? uint32
+--ro send-timestamp? yang:timestamp
2.1. IS-IS Configuration
The IS-IS 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.
skipping to change at page 10, line 33 skipping to change at page 10, line 32
specific address families. specific address families.
Each topology should refer to an existing RIB. Each topology should refer to an existing RIB.
Some specific parameters could be defined for a specific topology at Some specific parameters could be defined for a specific topology at
global level and also at interface level. global level and also at interface level.
2.3. Per-Level Parameters 2.3. Per-Level Parameters
Some parameters support per level configuration. In this case, the Some parameters support per level configuration. In this case, the
parameter is built as a list, so different values could be used for parameter is built as a container with three levels of configuration
each level. The "level-all" permits to apply a value to both levels. :
+--rw priority* [level] o top level : corresponds to level-1-2, so the configuration applies
| +--rw value? uint8 to both levels.
| +--rw level level
Example : o level-1 : corresponds to level-1 specific parameter.
<priority> o level-2 : corresponds to level-2 specific parameter.
<value>100</value>
<level>level-1</level>
</priority>
<priority>
<value>200</value>
<level>level-2</level>
</priority>
As a list is used, a user may decide to apply a level-1, level-2 and +--rw priority
level-all parameter at the same time. An implementation SHOULD | +--rw value? uint8
prefer a level specific parameter over level-all parameter. As | +--rw level-1
example, if priority is 100 for level-1, 200 for level-2 and 250 for | | +--rw value? uint8
level-all, the implementation should use 100 for level-1 and 200 for | +--rw level-2
level-2. | +--rw value? uint8
Overload bit and route preference are exceptions to this general Example :
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. <priority>
<value>250</value>
<level-1>
<value>100</value>
</level-1>
<level-2>
<value>200</value>
</level-2>
</priority>
o Reuse the grouping defined for configuration parameters and apply An implementation SHOULD prefer a level specific parameter over
them in level-1 and level-2 containers. level-all parameter. As example, if priority is 100 for level-1, 200
for level-2 and 250 for top level configuration, the implementation
should use 100 for level-1 and 200 for level-2.
In this case, the value defined in the top-level container SHOULD be Some parameters like overload bit and route preference are not
applied to both levels while the value defined in a specific level modelled for per level configuration. If an implementation supports
container SHOULD apply to this level only and SHOULD override the per level configuration for such parameter, the implementation SHOULD
top-level value if defined. augment the current model by adding level-1 and level-2 containers
and reusing existing configuration groupings.
Example of augmentation : Example of augmentation :
augment "/rt:routing-state/rt:routing-instance/" + augment "/rt:routing/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-protocol"+
"/isis:isis/isis:overload" { "/isis:isis/isis:overload" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment IS-IS routing protocol when used"; "This augment IS-IS routing protocol when used";
} }
description description
"This augments IS-IS overload configuration "This augments IS-IS overload configuration
with per level configuration."; with per level configuration.";
container level-1 { container level-1 {
uses isis:overload-config; uses isis:overload-global-cfg;
description description
"Level 1 configuration."; "Level 1 configuration.";
} }
container level-2 { container level-2 {
uses isis:overload-config; uses isis:overload-global-cfg;
description description
"Level 2 configuration."; "Level 2 configuration.";
} }
} }
Moreover, if an implementation does not support per level
configuration for a parameter, like priority, which has per level
configuration, the implementation SHOULD advertise a deviation to
announce the non support of the level-1 and level-2 containers.
Finally, if an implementation supports per level configuration but
does not support the level-1-2 configuration, it SHOULD also
advertise a deviation.
2.4. Per-Interface Parameters 2.4. Per-Interface Parameters
The per-interface section of the IS-IS 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 IS-IS global interface-specific parameter always override an IS-IS global
parameter . parameter .
Some parameters like BFD and hello-padding are defined as containers Some parameters like hello-padding are defined as containers to
to permit easy extension by vendor specific modules. permit easy extension by vendor specific modules.
TODO : interfaces.tree TODO : interfaces.tree
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.
skipping to change at page 13, line 41 skipping to change at page 14, line 5
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 IS-IS 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 IS-IS 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-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 +--ro input
+--ro input +--ro routing-protocol-instance-name instance-state-ref
+--ro routing-instance-name rt:routing-instance-state-ref +--ro level? level
+--ro routing-protocol-instance-name instance-state-ref
+--ro level? level
4. Notifications 4. Notifications
The "ietf-isis" module introduces some notifications : The "ietf-isis" module introduces some notifications :
database-overload : raised when overload condition is changed. database-overload : raised when overload condition is changed.
lsp-too-large : raised when the system tries to propagate a too lsp-too-large : raised when the system tries to propagate a too
large PDU. large PDU.
skipping to change at page 18, line 22 skipping to change at page 18, 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 /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol augment /rt:routing/rt:routing-protocols/rt:routing-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 /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol augment /rt:routing/rt:routing-protocols/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/rt:routing-protocol augment /rt:routing/rt:routing-protocols/rt:routing-protocol
/isis:isis/isis:interfaces/isis:interface/isis:fast-reroute: /isis:isis/isis: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:routing-instance/rt:routing-protocols/rt:routing-protocol augment /rt:routing/rt:routing-protocols/rt:routing-protocol
/isis:isis/isis:interfaces/isis:interface/isis:fast-reroute /isis:isis/isis:interfaces/isis:interface/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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis: /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 /rt:routing-state/rt:routing-instance/rt:routing-protocols augment /rt:routing-state/rt:routing-protocols/rt:routing-protocol
/rt:routing-protocol /isis:isis/isis:interfaces/isis:interface:
/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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:interfaces/isis:interface /isis:isis/isis:interfaces/isis:interface/isis:adjacencies
/isis:adjacencies/isis:adjacency: /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-protocols/rt:routing-protocol
/rt:routing-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:
+--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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /isis:isis/isis:database/isis:level-db/isis:lsp
/isis:lsp/isis:mt-is-neighbor/isis:neighbor: /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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /isis:isis/isis:database/isis:level-db/isis:lsp
/isis:lsp/isis:extended-ipv4-reachability/isis:prefixes: /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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /isis:isis/isis:database/isis:level-db/isis:lsp
/isis:lsp/isis:mt-extended-ipv4-reachability/isis:prefixes: /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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /isis:isis/isis:database/isis:level-db/isis:lsp
/isis:lsp/isis:ipv6-reachability/isis:prefixes: /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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:database/isis:level-db /isis:isis/isis:database/isis:level-db/isis:lsp
/isis:lsp/isis:mt-ipv6-reachability/isis:prefixes: /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-protocols/rt:routing-protocol
/rt:routing-protocol/isis:isis/isis:database/isis:level-db/isis:lsp: /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 21, line 30 skipping to change at page 21, line 37
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. BFD 6. Interaction with Other YANG Modules
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-protocols/routing-protocol" container of the ietf-routing
of the ietf-routing module by defining IS-IS specific parameters. [I-D.ietf-netmod-routing-cfg] 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-protocols/routing-protocol" container of the ietf-
container of the ietf-routing module by defining IS-IS specific routing module by defining IS-IS specific operational states.
operational states.
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" 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 modules defined in this document use some groupings from ietf- The modules defined in this document use some groupings from ietf-
keychain, routing-policy and ietf-bfd modules. keychain [I-D.ietf-rtgwg-yang-key-chain] and ietf-segment routing
[I-D.ietf-spring-sr-yang].
8. IS-IS YANG Module 7. IS-IS YANG Module
<CODE BEGINS> file "ietf-isis@2015-11-18.yang" <CODE BEGINS> file "ietf-isis@2016-03-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";
} }
skipping to change at page 23, line 30 skipping to change at page 22, line 39
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
} }
import ietf-key-chain { import ietf-routing-key-chain {
prefix "key-chain"; prefix "key-chain";
} }
import routing-policy {
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;
Editor: Stephane Litkowski Editor: Stephane Litkowski
&lt;mailto:stephane.litkowski@orange.com&gt; &lt;mailto:stephane.litkowski@orange.com&gt;
Derek Yeung Derek Yeung
skipping to change at page 24, line 26 skipping to change at page 23, line 28
&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-03-21 {
description
"
- remove routing-instance as per core routing model v21
- added BFD leaf (no more BFD protocol model)
- changed keychain module reference
";
reference "draft-ietf-isis-yang-isis-cfg-09";
}
revision 2015-12-17 {
description
"Moved lists to containers+groupings for per level
configuration.";
reference "draft-ietf-isis-yang-isis-cfg-08";
}
revision 2015-11-25 {
description
"
* Remove selector from system-id type
* Added some defaults
";
reference "";
}
revision 2015-11-18 { revision 2015-11-18 {
description description
" "
* Move Overload config from list to container * Move Overload config from list to container
* Move Overload-max-metric config from list to container * Move Overload-max-metric config from list to container
* Move preference config from list to container * Move preference config from list to container
* Add Node flag in config * Add Node flag in config
* Removed BFD config => moved to isis-bfd module * Removed BFD config => moved to isis-bfd module
* Remove call to routing policy model
(waiting stabilization to add it)
"; ";
reference ""; reference "draft-ietf-isis-yang-isis-cfg-07";
} }
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 49 skipping to change at page 28, line 28
database reset action."; database reset action.";
} }
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 bfd {
description
"Support of BFD for IS-IS links.";
}
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 { feature node-flag {
description description
"Support of node-flag advertisement "Support of node-flag advertisement
as prefix attribute"; as prefix attribute";
} }
skipping to change at page 30, line 47 skipping to change at page 30, line 31
feature admin-control { feature admin-control {
description description
"Control administrative state of ISIS."; "Control administrative state of ISIS.";
} }
/* Type definitions */ /* Type definitions */
typedef instance-state-ref { typedef instance-state-ref {
type leafref { type leafref {
path "/rt:routing-state/rt:routing-instance/" path "/rt:routing-state/"
+"rt:routing-protocols/rt:routing-protocol/rt:name"; +"rt:routing-protocols/rt:routing-protocol/rt:name";
} }
description description
"This type is used for leaves that reference state data of "This type is used for leaves that reference state data of
an ISIS protocol instance."; an ISIS protocol instance.";
} }
typedef admin-state { typedef admin-state {
type enumeration { type enumeration {
enum "up" { enum "up" {
skipping to change at page 33, line 34 skipping to change at page 33, line 19
length "0 .. 20"; length "0 .. 20";
} }
description description
"This type defines Subnetwork Point of Attachement format."; "This type defines Subnetwork Point of Attachement format.";
} }
typedef system-id { typedef system-id {
type string { type string {
pattern pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.00'; '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
} }
description description
"This type defines ISIS system id using pattern, "This type defines ISIS system id using pattern,
system id looks like : 0143.0438.AeF0.00"; system id looks like : 0143.0438.AeF0";
} }
typedef wide-metric { typedef wide-metric {
type uint32 { type uint32 {
range "0 .. 16777215"; range "0 .. 16777215";
} }
description description
"This type defines wide style format "This type defines wide style format
of ISIS metric."; of ISIS metric.";
} }
skipping to change at page 34, line 33 skipping to change at page 34, line 17
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 45, line 14 skipping to change at page 44, line 18
type level; type level;
description description
"Level applicability."; "Level applicability.";
} }
description description
"LFA configuration."; "LFA configuration.";
} }
} }
grouping prefix-reachability-attributes {
description
"This group defines extended reachability attributes of an
IPv4 or IPv6 prefix.";
leaf external-prefix-flag {
type boolean;
description
"External prefix flag.";
}
leaf readvertisement-flag {
type boolean;
description
"Readvertisement flag.";
}
leaf node-flag {
type boolean;
description
"Node flag.";
}
}
grouping prefix-ipv4-source-router-id {
description
"This group defines the IPv4 source router ID of
a prefix advertisement.";
leaf ipv4-source-router-id {
type inet:ipv4-address;
description
"IPv4 Source router ID address.";
}
}
grouping prefix-ipv6-source-router-id {
description
"This group defines the IPv6 source router ID of
a prefix advertisement.";
leaf ipv6-source-router-id {
type inet:ipv6-address;
description
"IPv6 Source router ID address.";
}
}
grouping prefix-attributes-extension {
description
"Prefix extended attributes.";
uses prefix-reachability-attributes;
uses prefix-ipv4-source-router-id;
uses prefix-ipv6-source-router-id;
}
grouping prefix-ipv4-std { grouping prefix-ipv4-std {
description description
"This group defines attributes of an "This group defines attributes of an
IPv4 standard prefix."; IPv4 standard prefix.";
leaf up-down { leaf up-down {
type boolean; type boolean;
description description
"This leaf expresses the value of up/down bit."; "This leaf expresses the value of up/down bit.";
} }
leaf i-e { leaf i-e {
skipping to change at page 47, line 37 skipping to change at page 47, line 47
"This leaf describes a list of tags associated with "This leaf describes a list of tags associated with
the prefix."; the prefix.";
} }
leaf-list tag64 { leaf-list tag64 {
type uint64; type uint64;
description description
"This leaf describes a list of 64-bit tags associated with "This leaf describes a list of 64-bit tags associated with
the prefix."; the prefix.";
} }
uses prefix-attributes-extension;
} }
grouping prefix-ipv6-extended { grouping prefix-ipv6-extended {
description description
"This group defines attributes of an "This group defines attributes of an
IPv6 prefix."; IPv6 prefix.";
leaf up-down { leaf up-down {
type boolean; type boolean;
description description
"This leaf expresses the value of up/down bit."; "This leaf expresses the value of up/down bit.";
skipping to change at page 48, line 30 skipping to change at page 48, line 41
"This leaf describes a list of tags associated with "This leaf describes a list of tags associated with
the prefix."; the prefix.";
} }
leaf-list tag64 { leaf-list tag64 {
type uint64; type uint64;
description description
"This leaf describes a list of 64-bit tags associated with "This leaf describes a list of 64-bit tags associated with
the prefix."; the prefix.";
} }
uses prefix-attributes-extension;
} }
grouping neighbor-extended { grouping neighbor-extended {
description description
"This group defines attributes of an "This group defines attributes of an
ISIS extended neighbor."; ISIS extended neighbor.";
leaf neighbor-id { leaf neighbor-id {
type system-id; type system-id;
description description
"This leaf describes the system-id of the neighbor."; "This leaf describes the system-id of the neighbor.";
skipping to change at page 58, line 23 skipping to change at page 58, line 38
"Node tag value."; "Node tag value.";
} }
description description
"List of tags."; "List of tags.";
} }
description description
"Container for node tags."; "Container for node tags.";
} }
} }
grouping authentication-global-cfg {
choice authentication-type {
case key-chain {
if-feature key-chain;
leaf key-chain {
type key-chain:key-chain-ref;
description
"Reference to a key-chain.";
}
}
case password {
leaf key {
type string;
description
"This leaf describes the
authentication key.";
}
uses key-chain:crypto-algorithm-types;
}
description
"Choice of authentication.";
}
description
"Grouping for global auth config.";
}
grouping metric-type-global-cfg {
leaf value {
type enumeration {
enum wide-only {
description
"Advertise new metric style only
(RFC5305)";
}
enum old-only {
description
"Advertise old metric style only
(RFC1195)";
}
enum both {
description "Advertise both metric
styles";
}
}
description
"This leaf describes the type of metric
to be generated.
Wide-only means only new metric style
is generated,
old-only means that only old style metric
is generated,
and both means that both are advertised.
This leaf is only affecting IPv4 metrics.";
}
description
"Grouping for global metric style config.";
}
grouping default-metric-global-cfg {
leaf value {
type wide-metric;
default "10";
description
"Value of the metric";
}
description
"Grouping for global default metric config.";
}
grouping overload-global-cfg {
leaf status {
type boolean;
description
"This leaf defines the overload status.";
}
description
"Grouping for overload bit config.";
}
grouping overload-max-metric-global-cfg {
leaf timeout {
type uint16;
units "seconds";
description
"This leaf defines the timeout in seconds
of the overload condition.";
}
description
"Grouping for overload-max-metric config.";
}
grouping route-preference-global-cfg {
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 hello-authentication-cfg {
choice authentication-type {
case key-chain {
if-feature key-chain;
leaf key-chain {
type key-chain:key-chain-ref;
description
"Reference to a key-chain.";
}
}
case password {
leaf key {
type string;
description
"This leaf describes the
authentication key.";
}
uses key-chain:crypto-algorithm-types;
}
description
"Choice of authentication.";
}
description
"Grouping for hello authentication.";
}
grouping hello-interval-cfg {
leaf value {
type uint16 {
range "1..65535";
}
units "seconds";
default 10;
description
"This leaf defines the interval of
hello messages.";
}
description
"Interval between
hello messages.";
}
grouping hello-multiplier-cfg {
leaf value {
type uint16;
description
"This leaf defines the number of
hello failed to be received before
declaring the adjacency down.";
}
description
"This grouping defines the number of
hello failed to be received before
declaring the adjacency down.";
}
grouping priority-cfg {
leaf value {
type uint8 {
range "0 .. 127";
}
default 64;
description
"This leaf describes the priority of
the interface
for DIS election.";
}
description
"This grouping leaf describes the
priority of
the interface
for DIS election.";
}
grouping metric-cfg {
leaf value {
type wide-metric;
description
"Metric value.";
}
description
"Grouping for interface metric";
}
grouping isis-global-cfg { grouping isis-global-cfg {
description description
"Defines the ISIS global configuration."; "Defines the ISIS global configuration.";
uses admin-control; uses admin-control;
leaf level-type { leaf level-type {
type level; type level;
default "level-all"; default "level-all";
description description
skipping to change at page 60, line 8 skipping to change at page 64, line 43
leaf lsp-mtu { leaf lsp-mtu {
type uint16; type uint16;
units "bytes"; units "bytes";
default 1492; default 1492;
description description
"This leaf describes the maximum size of a "This leaf describes the maximum size of a
LSP PDU in bytes."; LSP PDU in bytes.";
} }
leaf lsp-lifetime { leaf lsp-lifetime {
type uint16; type uint16 {
range "1..65535";
}
units "seconds"; units "seconds";
description description
"This leaf describes the lifetime of the router "This leaf describes the lifetime of the router
LSP in seconds."; LSP in seconds.";
} }
leaf lsp-refresh { leaf lsp-refresh {
if-feature lsp-refresh; if-feature lsp-refresh;
type uint16; type uint16 {
range "1..65535";
}
units "seconds"; units "seconds";
description description
"This leaf describes the refresh interval of the "This leaf describes the refresh interval of the
router LSP in seconds."; router LSP in seconds.";
} }
container graceful-restart { container graceful-restart {
if-feature graceful-restart; if-feature graceful-restart;
leaf enable { leaf enable {
type boolean; type boolean;
description description
"Control enabling the feature."; "Control enabling the feature.";
} }
description description
"This container activates graceful restart."; "This container activates graceful restart.";
} }
uses isis-node-tag-cfg; uses isis-node-tag-cfg;
list authentication { container authentication {
key level; uses authentication-global-cfg;
choice authentication-type { container level-1 {
case key-chain { uses authentication-global-cfg;
if-feature key-chain; description "level-1 specific cfg";
leaf key-chain { }
type key-chain:key-chain-ref; container level-2 {
description uses authentication-global-cfg;
"Reference to a key-chain."; description "level-2 specific cfg";
} }
} description "authentication global cfg.
case password { It covers both LSPs and SNPs.";
leaf key { }
type string;
description
"This leaf describes the
authentication key.";
}
uses key-chain:crypto-algorithm-types;
}
description
"Choice of authentication.";
}
leaf level {
type level;
description
"Level applicability.";
}
description
"Container for ISIS authentication.
It covers both LSPs and SNPs.";
}
list metric-type { container metric-type {
key level; uses metric-type-global-cfg;
leaf value { container level-1 {
type enumeration { uses metric-type-global-cfg;
enum wide-only { description "level-1 specific cfg";
description }
"Advertise new metric style only container level-2 {
(RFC5305)"; uses metric-type-global-cfg;
} description "level-2 specific cfg";
enum old-only { }
description description "Metric style global cfg.";
"Advertise old metric style only }
(RFC1195)";
}
enum both {
description "Advertise both metric
styles";
}
}
description
"This leaf describes the type of metric
to be generated.
Wide-only means only new metric style
is generated,
old-only means that only old style metric
is generated,
and both means that both are advertised.
This leaf is only affecting IPv4 metrics."; container default-metric {
} uses default-metric-global-cfg;
leaf level {
type level;
description
"Level applicability.";
}
description
"Metric style container.";
}
list default-metric { container level-1 {
key level; uses default-metric-global-cfg;
description "level-1 specific cfg";
}
container level-2 {
uses default-metric-global-cfg;
description "level-2 specific cfg";
}
description "Default metric global cfg.";
}
leaf value {
type wide-metric;
description
"Value of the metric";
}
leaf level {
type level;
description
"Level applicability of the metric.";
}
description
"Defines the metric to be used by default.";
}
list af { list af {
if-feature nlpid-control; if-feature nlpid-control;
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";
} }
skipping to change at page 63, line 9 skipping to change at page 66, line 47
"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.";
} }
container preference { container preference {
uses route-preference-config; uses route-preference-global-cfg;
description description
"This container defines the protocol preference."; "This container defines the protocol preference.";
} }
container overload { container overload {
leaf status {
type boolean; uses overload-global-cfg;
description
"This leaf defines the overload status.";
}
description description
"This container describes if the router is "This container describes if the router is
set to overload state."; set to overload state.";
} }
container overload-max-metric { container overload-max-metric {
if-feature overload-max-metric; if-feature overload-max-metric;
leaf timeout { uses overload-max-metric-global-cfg;
type uint16;
units "seconds";
description
"This leaf defines the timeout in seconds
of the overload condition.";
}
description description
"This container describes if the router is "This container describes if the router is
set to overload state using max-metric set to overload state using max-metric
advertisement."; advertisement.";
} }
} }
grouping isis-global-topologies-cfg { grouping isis-global-topologies-cfg {
description description
"Per topology config."; "Per topology config.";
list default-metric {
key level;
leaf value { container default-metric {
type wide-metric; uses default-metric-global-cfg;
description
"Value of the metric"; container level-1 {
} uses default-metric-global-cfg;
leaf level { description "level-1 specific cfg";
type level; }
description container level-2 {
"Level applicability of the metric."; uses default-metric-global-cfg;
description "level-2 specific cfg";
}
description "Default metric per
topology cfg.";
} }
description
"Defines the metric to be used by default.";
}
uses isis-node-tag-cfg; uses isis-node-tag-cfg;
} }
grouping isis-if-cfg { grouping isis-if-cfg {
description description
"Grouping for interface cfg."; "Grouping for interface cfg.";
leaf level-type { leaf level-type {
type level; type level;
default "level-all"; default "level-all";
description description
"This leaf defines the associated ISIS "This leaf defines the associated ISIS
level of the interface."; level of the interface.";
} }
leaf lsp-pacing-interval { leaf lsp-pacing-interval {
type uint16; type uint16;
units "milliseconds"; units "milliseconds";
default 33;
description description
"This leaf defines the interval between "This leaf defines the interval between
LSP transmissions in milli-seconds"; LSP transmissions in milli-seconds";
} }
leaf lsp-retransmit-interval { leaf lsp-retransmit-interval {
type uint16; type uint16;
units "seconds"; units "seconds";
description description
"This leaf defines the interval between "This leaf defines the interval between
retransmission of LSP"; retransmission of LSP";
skipping to change at page 65, line 4 skipping to change at page 68, line 35
"This leaf defines the interval between "This leaf defines the interval between
retransmission of LSP"; retransmission of LSP";
} }
leaf passive { leaf passive {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf defines if interface is in "This leaf defines if interface is in
passive mode (ISIS not running, passive mode (ISIS not running,
but network is advertised)."; but network is advertised).";
} }
leaf csnp-interval { leaf csnp-interval {
type uint16; type uint16 {
range "1..65535";
}
units "seconds"; units "seconds";
default 10;
description description
"This leaf defines the interval of CSNP "This leaf defines the interval of CSNP
messages."; messages.";
} }
container hello-padding { container hello-padding {
leaf enable { leaf enable {
type boolean; type boolean;
default "true"; default "true";
description description
skipping to change at page 66, line 39 skipping to change at page 70, line 26
leaf node-flag { leaf node-flag {
if-feature node-flag; if-feature node-flag;
type boolean; type boolean;
default false; default false;
description description
"Set prefix as a node "Set prefix as a node
representative prefix."; representative prefix.";
} }
list hello-authentication { container hello-authentication {
key level; uses hello-authentication-cfg;
choice authentication-type { container level-1 {
case key-chain { uses hello-authentication-cfg;
if-feature key-chain; description "level-1 specific cfg";
leaf key-chain {
type key-chain:key-chain-ref;
description
"Reference to a key-chain.";
}
} }
case password { container level-2 {
leaf key { uses hello-authentication-cfg;
type string; description "level-2 specific cfg";
description
"This leaf describes the
authentication key.";
}
uses key-chain:crypto-algorithm-types;
} }
description description "Authentication type
"Choice of authentication.";
}
leaf level {
type level;
description
"Level applicability.";
}
description
"This leaf describes the authentication type
to be used in hello messages."; to be used in hello messages.";
} }
list hello-interval { container hello-interval {
key level; uses hello-interval-cfg;
leaf value { container level-1 {
type uint16; uses hello-interval-cfg;
units "seconds"; description "level-1 specific cfg";
description }
"This leaf defines the interval of container level-2 {
hello messages."; uses hello-interval-cfg;
} description "level-2 specific cfg";
leaf level {
type level; }
description description "Interval between
"Level applicability.";
}
description
"This leaf defines the interval of
hello messages."; hello messages.";
} }
list hello-multiplier {
key level;
leaf value { container hello-multiplier {
type uint16; uses hello-multiplier-cfg;
description
"This leaf defines the number of container level-1 {
hello failed to be received before uses hello-multiplier-cfg;
declaring the adjacency down."; description "level-1 specific cfg";
} }
leaf level { container level-2 {
type level; uses hello-multiplier-cfg;
description description "level-2 specific cfg";
"Level applicability."; }
} description "Hello multiplier
description configuration.";
"This leaf defines the number of
hello failed to be received before
declaring the adjacency down.";
} }
list priority { container priority {
must 'interface-type = "broadcast"' { must '../interface-type = "broadcast"' {
error-message error-message
"Priority only applies to broadcast "Priority only applies to broadcast
interfaces."; interfaces.";
description description
"Check for broadcast interface."; "Check for broadcast interface.";
} }
key level; uses priority-cfg;
leaf value {
type uint8 { container level-1 {
range "0 .. 127"; uses priority-cfg;
description "level-1 specific cfg";
} }
container level-2 {
uses priority-cfg;
description "level-2 specific cfg";
}
description "Priority for DIS election.";
}
description container metric {
"This leaf describes the priority of uses metric-cfg;
the interface
for DIS election."; container level-1 {
} uses metric-cfg;
leaf level { description "level-1 specific cfg";
type level; }
description container level-2 {
"Level applicability."; uses metric-cfg;
} description "level-2 specific cfg";
description }
"This leaf describes the priority of description "Metric configuration.";
the interface
for DIS election.";
} }
list metric {
key level;
leaf value { container bfd {
type wide-metric; if-feature bfd;
description leaf enabled {
"Metric value."; type boolean;
} default false;
leaf level { description "
type level; Enables BFD on the interface
";
}
description description
"Level applicability."; "BFD configuration.";
}
description
"Container for interface metric";
} }
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
skipping to change at page 69, line 41 skipping to change at page 73, line 4
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;
description description
"Enable/disable IGP LDP sync."; "Enable/disable IGP LDP sync.";
} }
description description
"IGP-LDP sync configuration."; "IGP-LDP sync configuration.";
} }
description description
"Container for MPLS specific configuration "Container for MPLS specific configuration
for ISIS."; for ISIS.";
} }
} }
grouping isis-if-topologies-cfg { grouping isis-if-topologies-cfg {
description description
"ISIS interface topology cfg."; "ISIS interface topology cfg.";
list metric { container metric {
key level; uses metric-cfg;
leaf value { container level-1 {
type wide-metric; uses metric-cfg;
description description "level-1 specific cfg";
"Metric value.";
} }
leaf level { container level-2 {
type level; uses metric-cfg;
description description "level-2 specific cfg";
"Level applicability.";
} }
description description "Metric configuration.";
"Container for interface metric";
} }
} }
/* */ /* */
augment "/rt:routing-state/rt:routing-instance/" augment "/rt:routing-state/"
+"rt:ribs/rt:rib/rt:routes/rt:route" { +"rt:ribs/rt:rib/rt:routes/rt:route" {
when "rt:source-protocol = 'isis:isis'" { when "rt:source-protocol = 'isis:isis'" {
description "ISIS-specific route attributes."; description "ISIS-specific route attributes.";
} }
uses route-content; uses route-content;
description description
"This augments route object in RIB with ISIS-specific "This augments route object in RIB with ISIS-specific
attributes."; attributes.";
} }
skipping to change at page 71, line 4 skipping to change at page 74, line 9
uses route-content; uses route-content;
description "ISIS-specific route attributes."; description "ISIS-specific route attributes.";
} }
augment "/if:interfaces/if:interface" augment "/if:interfaces/if:interface"
{ {
leaf clns-mtu { leaf clns-mtu {
type uint16; type uint16;
description description
"Defines CLNS MTU of the interface."; "Defines CLNS MTU of the interface.";
} }
description "ISO interface config."; description "ISO interface config.";
} }
augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" augment "/rt:routing/rt:routing-protocols/"
+"rt:routing-protocol" { +"rt:routing-protocol" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol
instance type is isis."; instance type is isis.";
} }
description description
"This augments a routing protocol instance with ISIS "This augments a routing protocol instance with ISIS
specific parameters."; specific parameters.";
container isis { container isis {
must "count(area-address) > 0" { must "count(area-address) > 0" {
error-message "At least one area-address error-message "At least one area-address
must be configured."; must be configured.";
description description
"Enforce configuration of at least one area."; "Enforce configuration of at least one area.";
} }
uses isis-global-cfg; uses isis-global-cfg;
uses rtgpol:apply-policy-group;
container fast-reroute { container fast-reroute {
if-feature fast-reroute; if-feature fast-reroute;
uses fast-reroute-global-cfg; uses fast-reroute-global-cfg;
description description
"IPFRR."; "IPFRR.";
} }
list topologies { list topologies {
if-feature multi-topology; if-feature multi-topology;
skipping to change at page 73, line 25 skipping to change at page 76, line 30
"This container defines ISIS interface specific "This container defines ISIS interface specific
configuration objects."; configuration objects.";
} }
description description
"This container defines ISIS specific configuration "This container defines ISIS specific configuration
objects."; objects.";
} }
} }
augment "/rt:routing-state/rt:routing-instance/" augment "/rt:routing-state/"
+"rt:routing-protocols/rt:routing-protocol" { +"rt:routing-protocols/rt:routing-protocol" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol
instance type is isis."; instance type is isis.";
} }
description description
"This augments routing protocol instance states with ISIS "This augments routing protocol instance states with ISIS
specific parameters."; specific parameters.";
skipping to change at page 86, line 48 skipping to change at page 89, line 50
/* RPC methods */ /* RPC methods */
rpc clear-adjacency { rpc clear-adjacency {
description description
"This RPC request clears a particular "This RPC request clears a particular
set of ISIS adjacencies. If the operation set of ISIS adjacencies. If the operation
fails for ISIS internal reason, then fails for ISIS internal reason, then
error-tag and error-app-tag should be set error-tag and error-app-tag should be set
to a meaningful value."; to a meaningful value.";
input { input {
leaf routing-instance-name {
type rt:routing-instance-state-ref;
mandatory "true";
description
"Name of the routing instance whose ISIS
information is being queried.
If the routing instance with name equal to the
value of this parameter doesn't exist, then this
operation SHALL fail with error-tag 'data-missing'
and error-app-tag 'routing-instance-not-found'.";
}
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type instance-state-ref; type instance-state-ref;
mandatory "true"; mandatory "true";
description description
"Name of the ISIS protocol instance whose ISIS "Name of the ISIS protocol instance whose ISIS
information is being queried. information is being queried.
If the ISIS instance with name equal to the If the ISIS instance with name equal to the
value of this parameter doesn't exist, then this value of this parameter doesn't exist, then this
operation SHALL fail with error-tag 'data-missing' operation SHALL fail with error-tag 'data-missing'
skipping to change at page 88, line 15 skipping to change at page 91, line 4
} }
rpc clear-database { rpc clear-database {
description description
"This RPC request clears a particular "This RPC request clears a particular
ISIS database. If the operation ISIS database. If the operation
fails for ISIS internal reason, then fails for ISIS internal reason, then
error-tag and error-app-tag should be set error-tag and error-app-tag should be set
to a meaningful value."; to a meaningful value.";
input { input {
leaf routing-instance-name {
type rt:routing-instance-state-ref;
mandatory "true";
description
"Name of the routing instance whose ISIS
information is being queried.
If the routing instance with name equal to the
value of this parameter doesn't exist, then this
operation SHALL fail with error-tag 'data-missing'
and error-app-tag 'routing-instance-not-found'.";
}
leaf routing-protocol-instance-name { leaf routing-protocol-instance-name {
type instance-state-ref; type instance-state-ref;
mandatory "true"; mandatory "true";
description description
"Name of the ISIS protocol instance whose ISIS "Name of the ISIS protocol instance whose ISIS
information is being queried. information is being queried.
If the ISIS instance with name equal to the If the ISIS instance with name equal to the
value of this parameter doesn't exist, then this value of this parameter doesn't exist, then this
operation SHALL fail with error-tag 'data-missing' operation SHALL fail with error-tag 'data-missing'
skipping to change at page 98, line 4 skipping to change at page 100, line 25
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>
9. IS-IS Segment Routing YANG Module
<CODE BEGINS> file "ietf-isis-sr@2015-11-18.yang" 8. IS-IS Segment Routing YANG Module
<CODE BEGINS> file "ietf-isis-sr@2016-03-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 99, line 5 skipping to change at page 101, line 29
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-03-21 {
description "
* Removed routing-instance in path as per
core routing model v21
";
reference "";
}
revision 2015-09-18 { revision 2015-09-18 {
description "no modif"; description "no modif";
reference ""; reference "";
} }
revision 2015-07-02 { revision 2015-07-02 {
description description
" "
* Add TILFA and rLFA SR * Add TILFA and rLFA SR
* Add container to SRGB * Add container to SRGB
"; ";
skipping to change at page 107, line 21 skipping to change at page 110, line 4
description description
"Binding a backup path over unnumbered interface."; "Binding a backup path over unnumbered interface.";
} }
description description
"Bindings associated with the range."; "Bindings associated with the range.";
} }
description description
"This container describes list of SID/Label "This container describes list of SID/Label
bindings. bindings.
ISIS reference is TLV 149."; ISIS reference is TLV 149.";
} }
description description
"Defines binding TLV for database."; "Defines binding TLV for database.";
} }
/* Cfg */ /* Cfg */
augment "/rt:routing/rt:routing-instance/" + augment "/rt:routing/" +
"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: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/rt:routing-instance/" + augment "/rt:routing/" +
"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
"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/rt:routing-instance/" + augment "/rt:routing/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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: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 {
skipping to change at page 108, line 41 skipping to change at page 111, line 25
type boolean; type boolean;
description description
"Enables TI-LFA computation."; "Enables TI-LFA computation.";
} }
description description
"TILFA configuration."; "TILFA configuration.";
} }
} }
augment "/rt:routing/rt:routing-instance/" + augment "/rt:routing/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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: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.";
skipping to change at page 109, line 17 skipping to change at page 111, line 49
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/rt:routing-instance/" + augment "/rt:routing-state/" +
"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: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/rt:routing-instance/" + augment "/rt:routing-state/" +
"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
"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/rt:routing-instance/" +
augment "/rt:routing-state/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-protocol"+
"/isis:isis/isis:interfaces/isis:interface" + "/isis:isis/isis:interfaces/isis:interface" +
"/isis:adjacencies/isis:adjacency" { "/isis:adjacencies/isis:adjacency" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment 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:routing-instance/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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" {
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/rt:routing-instance/" + augment "/rt:routing-state/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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" {
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/rt:routing-instance/" + augment "/rt:routing-state/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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" {
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/rt:routing-instance/" + augment "/rt:routing-state/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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" {
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/rt:routing-instance/" + augment "/rt:routing-state/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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" {
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/rt:routing-instance/" + augment "/rt:routing-state/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-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" {
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/rt:routing-instance/" + augment "/rt:routing-state/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:routing-protocols/rt:routing-protocol"+
"/isis:isis/isis:database/isis:level-db/isis:lsp" { "/isis:isis/isis:database/isis:level-db/isis:lsp" {
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>
10. IS-IS BFD YANG Module 9. Security Considerations
<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 IS-IS 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
skipping to change at page 115, line 16 skipping to change at page 115, line 26
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 IS-IS 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]).
12. Contributors 10. 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.
13. Acknowledgements 11. Acknowledgements
TBD. TBD.
14. IANA Considerations 12. IANA Considerations
TBD. The IANA is requested to assign two new URIs from the IETF XML
registry ([RFC3688]). Authors are suggesting the following URIs :
15. Normative References URI: urn:ietf:params:xml:ns:yang:ietf-isis
Registrant Contact: IS-IS WG
XML: N/A, the requested URI is an XML namespace
[I-D.acee-rtg-yang-key-chain] URI: urn:ietf:params:xml:ns:yang:ietf-isis-sr
Lindem, A., Qu, Y., Yeung, D., Chen, H., Zhang, J., and Y. Registrant Contact: IS-IS WG
Yang, "Key Chain YANG Data Model", draft-acee-rtg-yang- XML: N/A, the requested URI is an XML namespace
key-chain-09 (work in progress), October 2015.
[I-D.ietf-bfd-yang] This document also requests two new YANG modules name in the YANG
Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and Module Names registry ([RFC6020]) with the following suggestion :
G. Mirsky, "Yang Data Model for Bidirectional Forwarding
Detection (BFD)", draft-ietf-bfd-yang-00 (work in name: ietf-isis
progress), August 2015. namespace: urn:ietf:params:xml:ns:yang:ietf-isis
prefix: isis
reference: RFC XXXX
name: ietf-isis-sr
namespace: urn:ietf:params:xml:ns:yang:ietf-isis-sr
prefix: isis-sr
reference: RFC XXXX
13. Normative References
[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-20 (work in Management", draft-ietf-netmod-routing-cfg-21 (work in
progress), October 2015. progress), March 2016.
[I-D.ietf-rtgwg-yang-key-chain]
Lindem, A., Qu, Y., Yeung, D., Chen, H., Zhang, J., and Y.
Yang, "Routing Key Chain YANG Data Model", draft-ietf-
rtgwg-yang-key-chain-02 (work in progress), March 2016.
[I-D.ietf-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-ietf-spring-sr- Data Model for Segment Routing", draft-ietf-spring-sr-
yang-01 (work in progress), October 2015. yang-02 (work in progress), March 2016.
[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>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<http://www.rfc-editor.org/info/rfc3688>.
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
<http://www.rfc-editor.org/info/rfc5880>. <http://www.rfc-editor.org/info/rfc5880>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010,
<http://www.rfc-editor.org/info/rfc6020>.
[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
skipping to change at page 116, line 37 skipping to change at page 117, line 28
Appendix A. Example: NETCONF <get> Reply Appendix A. Example: NETCONF <get> Reply
This section gives an example of a reply to the NETCONF <get> request This section gives an example of a reply to the NETCONF <get> request
for a device that implements the data model defined in this document. for a device that implements the data model defined in this document.
The example is written in XML. The example is written in XML.
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<routing-instance>
<name>SLI</name> <name>SLI</name>
<router-id>1.1.1.1</router-id> <router-id>1.1.1.1</router-id>
<description/> <description/>
<default-ribs> <default-ribs>
<default-rib> <default-rib>
<address-family>ipv4-unicast</address-family> <address-family>ipv4-unicast</address-family>
<rib-name>default</rib-name> <rib-name>default</rib-name>
</default-rib> </default-rib>
</default-ribs> </default-ribs>
<interfaces> <interfaces>
skipping to change at page 118, line 15 skipping to change at page 119, line 4
</interface> </interface>
<interface> <interface>
<name>Eth1</name> <name>Eth1</name>
<level-type>level-2</level-type> <level-type>level-2</level-type>
<interface-type>point-to-point</interface-type> <interface-type>point-to-point</interface-type>
<metric> <metric>
<value>167890</value> <value>167890</value>
</metric> </metric>
</interface> </interface>
</interfaces> </interfaces>
</instance> </instance>
</isis> </isis>
</routing-protocol> </routing-protocol>
</routing-protocols> </routing-protocols>
</routing-instance>
<ribs> <ribs>
<rib> <rib>
<name>default</name> <name>default</name>
<address-family>ipv4-unicast</address-family> <address-family>ipv4-unicast</address-family>
<description/> <description/>
<recipient-ribs> <recipient-ribs>
<recipient-rib> <recipient-rib>
<rib-name/> <rib-name/>
<filter/> <filter/>
</recipient-rib> </recipient-rib>
 End of changes. 144 change blocks. 
895 lines changed or deleted 936 lines changed or added

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