draft-ietf-isis-yang-isis-cfg-31.txt   draft-ietf-isis-yang-isis-cfg-32.txt 
skipping to change at page 1, line 16 skipping to change at page 1, line 16
Expires: July 25, 2019 Arrcus, Inc Expires: July 25, 2019 Arrcus, Inc
A. Lindem A. Lindem
Cisco Systems Cisco Systems
J. Zhang J. Zhang
Juniper Networks Juniper Networks
L. Lhotka L. Lhotka
CZ.NIC CZ.NIC
January 21, 2019 January 21, 2019
YANG Data Model for IS-IS Protocol YANG Data Model for IS-IS Protocol
draft-ietf-isis-yang-isis-cfg-31 draft-ietf-isis-yang-isis-cfg-32
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. and manage IS-IS protocol on network elements.
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", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
skipping to change at page 1, line 39 skipping to change at page 1, line 39
capitals, as shown here. capitals, as shown here.
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
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at 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 July 25, 2019. This Internet-Draft will expire on July 25, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://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
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
skipping to change at page 2, line 49 skipping to change at page 2, line 49
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 105 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 105
10. Change log for ietf-isis YANG module . . . . . . . . . . . . 105 10. Change log for ietf-isis YANG module . . . . . . . . . . . . 105
10.1. From version -29 to version -30 . . . . . . . . . . . . 105 10.1. From version -29 to version -30 . . . . . . . . . . . . 105
10.2. From version -28 to version -29 . . . . . . . . . . . . 106 10.2. From version -28 to version -29 . . . . . . . . . . . . 106
10.3. From version -27 to version -28 . . . . . . . . . . . . 106 10.3. From version -27 to version -28 . . . . . . . . . . . . 106
10.4. From version -26 to version -27 . . . . . . . . . . . . 106 10.4. From version -26 to version -27 . . . . . . . . . . . . 106
10.5. From version -25 to version -26 . . . . . . . . . . . . 106 10.5. From version -25 to version -26 . . . . . . . . . . . . 106
10.6. From version -24 to version -25 . . . . . . . . . . . . 106 10.6. From version -24 to version -25 . . . . . . . . . . . . 106
10.7. From version -22 to version -24 . . . . . . . . . . . . 107 10.7. From version -22 to version -24 . . . . . . . . . . . . 107
10.8. From version -21 to version -22 . . . . . . . . . . . . 107 10.8. From version -21 to version -22 . . . . . . . . . . . . 107
10.9. From version -20 to version -21 . . . . . . . . . . . . 107 10.9. From version -20 to version -21 . . . . . . . . . . . . 108
10.10. From version -19 to version -20 . . . . . . . . . . . . 108 10.10. From version -19 to version -20 . . . . . . . . . . . . 108
10.11. From version -18 to version -19 . . . . . . . . . . . . 108 10.11. From version -18 to version -19 . . . . . . . . . . . . 108
10.12. From version -17 to version -18 . . . . . . . . . . . . 108 10.12. From version -17 to version -18 . . . . . . . . . . . . 108
10.13. From version -16 to version -17 . . . . . . . . . . . . 108 10.13. From version -16 to version -17 . . . . . . . . . . . . 108
10.14. From version -15 to version -16 . . . . . . . . . . . . 108 10.14. From version -15 to version -16 . . . . . . . . . . . . 108
10.15. From version -14 to version -15 . . . . . . . . . . . . 108 10.15. From version -14 to version -15 . . . . . . . . . . . . 109
10.16. From version -13 to version -14 . . . . . . . . . . . . 109 10.16. From version -13 to version -14 . . . . . . . . . . . . 109
10.17. From version -12 to version -13 . . . . . . . . . . . . 109 10.17. From version -12 to version -13 . . . . . . . . . . . . 109
10.18. From version -09 to version -12 . . . . . . . . . . . . 109 10.18. From version -09 to version -12 . . . . . . . . . . . . 109
10.19. From version -08 to version -09 . . . . . . . . . . . . 109 10.19. From version -08 to version -09 . . . . . . . . . . . . 110
10.20. From version -07 to version -08 . . . . . . . . . . . . 110 10.20. From version -07 to version -08 . . . . . . . . . . . . 110
10.21. From version -05 to version -07 . . . . . . . . . . . . 110 10.21. From version -05 to version -07 . . . . . . . . . . . . 110
10.22. From version -03 to version -05 . . . . . . . . . . . . 110 10.22. From version -03 to version -05 . . . . . . . . . . . . 110
10.23. From version -02 to version -03 . . . . . . . . . . . . 110 10.23. From version -02 to version -03 . . . . . . . . . . . . 111
10.24. From version -01 to version -02 . . . . . . . . . . . . 111 10.24. From version -01 to version -02 . . . . . . . . . . . . 111
10.25. From version -00 to version -01 . . . . . . . . . . . . 111 10.25. From version -00 to version -01 . . . . . . . . . . . . 111
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 112 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 112
11.1. Normative References . . . . . . . . . . . . . . . . . . 112 11.1. Normative References . . . . . . . . . . . . . . . . . . 112
11.2. Informative References . . . . . . . . . . . . . . . . . 115 11.2. Informative References . . . . . . . . . . . . . . . . . 116
Appendix A. Example of IS-IS configuration in XML . . . . . . . 116 Appendix A. Example of IS-IS configuration in XML . . . . . . . 116
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 118 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 118
1. Introduction 1. Introduction
This document defines a YANG ([RFC7950]) data model for IS-IS routing This document defines a YANG ([RFC7950]) data model for IS-IS routing
protocol. 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.
skipping to change at page 3, line 47 skipping to change at page 3, line 47
2. Design of the Data Model 2. Design of the Data Model
The IS-IS YANG module augments the "control-plane-protocol" list in The IS-IS YANG module augments the "control-plane-protocol" list in
ietf-routing module (defined in [RFC8349]) with specific IS-IS ietf-routing module (defined in [RFC8349]) with specific IS-IS
parameters. parameters.
The figure below describes the overall structure of the isis YANG The figure below describes the overall structure of the isis YANG
module: module:
module: ietf-isis module: ietf-isis
augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route: augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route:
+--ro metric? uint32 +--ro metric? uint32
+--ro tag* uint64 +--ro tag* uint64
+--ro route-type? enumeration +--ro route-type? enumeration
augment /if:interfaces/if:interface: augment /if:interfaces/if:interface:
+--rw clns-mtu? uint16 +--rw clns-mtu? uint16
augment augment
/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol: /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:
+--rw isis +--rw isis
+--rw enable? boolean {admin-control}? +--rw enable? boolean {admin-control}?
+--rw level-type? level +--rw level-type? level
+--rw system-id? system-id +--rw system-id? system-id
+--rw maximum-area-addresses? uint8 {maximum-area-addresses}? +--rw maximum-area-addresses? uint8
+--rw area-address* area-address | {maximum-area-addresses}?
+--rw lsp-mtu? uint16 +--rw area-address* area-address
+--rw lsp-lifetime? uint16 +--rw lsp-mtu? uint16
+--rw lsp-refresh? rt-types:timer-value-seconds16 +--rw lsp-lifetime? uint16
{lsp-refresh}? +--rw lsp-refresh? rt-types:timer-value-seconds16
+--rw poi-tlv? boolean {poi-tlv}? | {lsp-refresh}?
+--rw graceful-restart {graceful-restart}? +--rw poi-tlv? boolean {poi-tlv}?
| +--rw enable? boolean +--rw graceful-restart {graceful-restart}?
| +--rw restart-interval? rt-types:timer-value-seconds16 | +--rw enable? boolean
| +--rw helper-enable? boolean | +--rw restart-interval? rt-types:timer-value-seconds16
+--rw nsr {nsr}? | +--rw helper-enable? boolean
| +--rw enable? boolean +--rw nsr {nsr}?
+--rw node-tags {node-tag}? | +--rw enable? boolean
| +--rw node-tag* [tag] +--rw node-tags {node-tag}?
| ... | +--rw node-tag* [tag]
+--rw metric-type | ...
| +--rw value? enumeration +--rw metric-type
| +--rw level-1 | +--rw value? enumeration
| | ... | +--rw level-1
| +--rw level-2 | | ...
| ... | +--rw level-2
+--rw default-metric | ...
| +--rw value? wide-metric +--rw default-metric
| +--rw level-1 | +--rw value? wide-metric
| | ... | +--rw level-1
| +--rw level-2 | | ...
| ... | +--rw level-2
+--rw auto-cost {auto-cost}? | ...
| +--rw enable? boolean +--rw auto-cost {auto-cost}?
| +--rw reference-bandwidth? uint32 | +--rw enable? boolean
+--rw authentication | +--rw reference-bandwidth? uint32
| +--rw (authentication-type)? +--rw authentication
| | ... | +--rw (authentication-type)?
| +--rw level-1 | | ...
| | ... | +--rw level-1
| +--rw level-2 | | ...
| ... | +--rw level-2
+--rw address-families {nlpid-control}? | ...
| +--rw address-family-list* [address-family]
| ...
+--rw mpls
| +--rw te-rid {te-rid}?
| | ...
| +--rw ldp
| ...
+--rw spf-control
| +--rw paths? uint16 {max-ecmp}?
| +--rw ietf-spf-delay {ietf-spf-delay}?
| ...
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
+--rw preference
| +--rw (granularity)?
| ...
+--rw overload
| +--rw status? boolean
+--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? rt-types:timer-value-seconds16
+--ro spf-log
| +--ro event* [id]
| ...
+--ro lsp-log
| +--ro event* [id]
| ...
+--ro hostnames
| +--ro hostname* [system-id]
| ...
+--ro database
| +--ro levels* [level]
| ...
+--ro local-rib
| +--ro route* [prefix]
| ...
+--ro system-counters
| +--ro level* [level]
| ...
+--ro protected-routes
| +--ro address-family-stats* [address-family prefix alternate]
| ...
+--ro unprotected-routes
| +--ro address-family-stats* [address-family prefix]
| ...
+--ro protection-statistics* [frr-protection-method]
| +--ro frr-protection-method string
| +--ro address-family-stats* [address-family]
| ...
+--rw topologies {multi-topology}? +--rw address-families {nlpid-control}?
| +--rw topology* [name] | +--rw address-family-list* [address-family]
| ... | ...
+--rw interfaces +--rw mpls
+--rw interface* [name] | +--rw te-rid {te-rid}?
... | | ...
| +--rw ldp
| ...
+--rw spf-control
| +--rw paths? uint16 {max-ecmp}?
| +--rw ietf-spf-delay {ietf-spf-delay}?
| ...
+--rw fast-reroute {fast-reroute}?
| +--rw lfa {lfa}?
+--rw preference
| +--rw (granularity)?
| ...
+--rw overload
| +--rw status? boolean
+--rw overload-max-metric {overload-max-metric}?
| +--rw timeout? rt-types:timer-value-seconds16
+--ro spf-log
| +--ro event* [id]
| ...
+--ro lsp-log
| +--ro event* [id]
| ...
+--ro hostnames
| +--ro hostname* [system-id]
| ...
+--ro database
| +--ro levels* [level]
| ...
+--ro local-rib
| +--ro route* [prefix]
| ...
+--ro system-counters
| +--ro level* [level]
| ...
+--ro protected-routes
| +--ro address-family-stats*
| [address-family prefix alternate]
| ...
+--ro unprotected-routes
| +--ro address-family-stats* [address-family prefix]
| ...
+--ro protection-statistics* [frr-protection-method]
| +--ro frr-protection-method string
| +--ro address-family-stats* [address-family]
| ...
+--rw topologies {multi-topology}?
| +--rw topology* [name]
| ...
+--rw interfaces
+--rw interface* [name]
...
rpcs: rpcs:
+---x clear-adjacency +---x clear-adjacency
| +---w input | +---w input
| +---w routing-protocol-instance-name -> | +---w routing-protocol-instance-name ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +---w level? level | +---w level? level
| +---w interface? if:interface-ref | +---w interface? if:interface-ref
+---x clear-database +---x clear-database
+---w input +---w input
+---w routing-protocol-instance-name -> +---w routing-protocol-instance-name ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
+---w level? level +---w level? level
notifications: notifications:
+---n database-overload +---n database-overload
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro overload? enumeration | +--ro overload? enumeration
+---n lsp-too-large +---n lsp-too-large
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-size? uint32 | +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n if-state-change +---n if-state-change
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro state? if-state-type | +--ro state? if-state-type
+---n corrupted-lsp-detected +---n corrupted-lsp-detected
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence +---n attempt-to-exceed-max-sequence
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n id-len-mismatch +---n id-len-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-field-len? uint8 | +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n max-area-addresses-mismatch +---n max-area-addresses-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro max-area-addresses? uint8 | +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n own-lsp-purge +---n own-lsp-purge
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n sequence-number-skipped +---n sequence-number-skipped
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n authentication-type-failure +---n authentication-type-failure
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n authentication-failure +---n authentication-failure
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n version-skew +---n version-skew
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro protocol-version? uint8 | +--ro protocol-version? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n area-mismatch +---n area-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n rejected-adjacency +---n rejected-adjacency
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro reason? string | +--ro reason? string
+---n protocols-supported-mismatch +---n protocols-supported-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro protocols* uint8 | +--ro protocols* uint8
+---n lsp-error-detected +---n lsp-error-detected
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro error-offset? uint32 | +--ro error-offset? uint32
| +--ro tlv-type? uint8 | +--ro tlv-type? uint8
+---n adjacency-state-change +---n adjacency-state-change
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro neighbor? string | +--ro neighbor? string
| +--ro neighbor-system-id? system-id | +--ro neighbor-system-id? system-id
| +--ro state? adj-state-type | +--ro state? adj-state-type
| +--ro reason? string | +--ro reason? string
+---n lsp-received +---n lsp-received
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
| +--ro sequence? uint32 | +--ro sequence? uint32
| +--ro received-timestamp? yang:timestamp | +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id | +--ro neighbor-system-id? system-id
+---n lsp-generation +---n lsp-generation
+--ro routing-protocol-name? -> +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
+--ro isis-level? level +--ro isis-level? level
+--ro lsp-id? lsp-id +--ro lsp-id? lsp-id
+--ro sequence? uint32 +--ro sequence? uint32
+--ro send-timestamp? yang:timestamp +--ro send-timestamp? yang:timestamp
2.1. IS-IS Configuration 2.1. IS-IS Configuration
The IS-IS configuration is divided in: The IS-IS configuration 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).
Additional modules may be created to support any additional Additional modules may be created to support any additional
skipping to change at page 13, line 5 skipping to change at page 13, line 5
defined in the "ietf-interfaces" YANG model ([RFC8343]. defined in the "ietf-interfaces" YANG model ([RFC8343].
Each interface has some interface-specific parameters that may have a Each interface has some interface-specific parameters that may have a
different per level value as described in previous section. An different per level value as described in previous section. An
interface-specific parameter always override an IS-IS global interface-specific parameter always override an IS-IS global
parameter. parameter.
Some parameters like hello-padding are defined as containers to allow Some parameters like hello-padding are defined as containers to allow
easy extension by vendor specific modules. easy extension by vendor specific modules.
+--rw interfaces +--rw interfaces
+--rw interface* [name] +--rw interface* [name]
+--rw name if:interface-ref +--rw name if:interface-ref
+--rw level-type? level +--rw level-type? level
+--rw lsp-pacing-interval? +--rw lsp-pacing-interval?
rt-types:timer-value-milliseconds | rt-types:timer-value-milliseconds
+--rw lsp-retransmit-interval? +--rw lsp-retransmit-interval?
rt-types:timer-value-seconds16 | rt-types:timer-value-seconds16
+--rw passive? boolean +--rw passive? boolean
+--rw csnp-interval? +--rw csnp-interval?
rt-types:timer-value-seconds16 | rt-types:timer-value-seconds16
+--rw hello-padding +--rw hello-padding
| +--rw enable? boolean | +--rw enable? boolean
+--rw mesh-group-enable? mesh-group-state +--rw mesh-group-enable? mesh-group-state
+--rw mesh-group? uint8 +--rw mesh-group? uint8
+--rw interface-type? interface-type +--rw interface-type? interface-type
+--rw enable? boolean {admin-control}? +--rw enable? boolean {admin-control}?
+--rw tag* uint32 {prefix-tag}? +--rw tag* uint32 {prefix-tag}?
+--rw tag64* uint64 {prefix-tag64}? +--rw tag64* uint64 {prefix-tag64}?
+--rw node-flag? boolean {node-flag}? +--rw node-flag? boolean {node-flag}?
+--rw hello-authentication +--rw hello-authentication
| +--rw (authentication-type)? | +--rw (authentication-type)?
| | +--:(key-chain) {key-chain}? | | +--:(key-chain) {key-chain}?
| | | +--rw key-chain? key-chain:key-chain-ref | | | +--rw key-chain?
| | +--:(password) | | | key-chain:key-chain-ref
| | +--rw key? string | | +--:(password)
| | +--rw crypto-algorithm? identityref | | +--rw key? string
| +--rw level-1 | | +--rw crypto-algorithm? identityref
| | +--rw (authentication-type)? | +--rw level-1
| | +--:(key-chain) {key-chain}? | | +--rw (authentication-type)?
| | | +--rw key-chain? | | +--:(key-chain) {key-chain}?
key-chain:key-chain-ref | | | +--rw key-chain?
| | +--:(password) | | | key-chain:key-chain-ref
| | +--rw key? string | | +--:(password)
| | +--rw crypto-algorithm? identityref | | +--rw key? string
| +--rw level-2 | | +--rw crypto-algorithm? identityref
| +--rw (authentication-type)? | +--rw level-2
| +--:(key-chain) {key-chain}? | +--rw (authentication-type)?
| | +--rw key-chain? | +--:(key-chain) {key-chain}?
key-chain:key-chain-ref | | +--rw key-chain?
| +--:(password) | | key-chain:key-chain-ref
| +--rw key? string | +--:(password)
| +--rw crypto-algorithm? identityref | +--rw key? string
+--rw hello-interval | +--rw crypto-algorithm? identityref
| +--rw value? rt-types:timer-value-seconds16 +--rw hello-interval
| +--rw level-1 | +--rw value? rt-types:timer-value-seconds16
| | +--rw value? rt-types:timer-value-seconds16 | +--rw level-1
| +--rw level-2 | | +--rw value? rt-types:timer-value-seconds16
| +--rw value? rt-types:timer-value-seconds16 | +--rw level-2
+--rw hello-multiplier | +--rw value? rt-types:timer-value-seconds16
| +--rw value? uint16 +--rw hello-multiplier
| +--rw level-1 | +--rw value? uint16
| | +--rw value? uint16 | +--rw level-1
| +--rw level-2 | | +--rw value? uint16
| +--rw value? uint16 | +--rw level-2
+--rw priority | +--rw value? uint16
| +--rw value? uint8 +--rw priority
| +--rw level-1 | +--rw value? uint8
| | +--rw value? uint8 | +--rw level-1
| +--rw level-2 | | +--rw value? uint8
| +--rw value? uint8 | +--rw level-2
+--rw metric | +--rw value? uint8
| +--rw value? wide-metric +--rw metric
| +--rw level-1 | +--rw value? wide-metric
| | +--rw value? wide-metric | +--rw level-1
| +--rw level-2 | | +--rw value? wide-metric
| +--rw value? wide-metric | +--rw level-2
+--rw bfd {bfd}? | +--rw value? wide-metric
| +--rw enable? boolean +--rw bfd {bfd}?
| +--rw local-multiplier? multiplier | +--rw enable? boolean
| +--rw (interval-config-type)? | +--rw local-multiplier? multiplier
| +--:(tx-rx-intervals) | +--rw (interval-config-type)?
| | +--rw desired-min-tx-interval? uint32 | +--:(tx-rx-intervals)
| | +--rw required-min-rx-interval? uint32 | | +--rw desired-min-tx-interval? uint32
| +--:(single-interval) {single-minimum-interval}? | | +--rw required-min-rx-interval? uint32
| +--rw min-interval? uint32 | +--:(single-interval) {single-minimum-interval}?
+--rw address-families {nlpid-control}? | +--rw min-interval? uint32
| +--rw address-family-list* [address-family] +--rw address-families {nlpid-control}?
| +--rw address-family iana-rt-types:address-family | +--rw address-family-list* [address-family]
+--rw mpls | +--rw address-family iana-rt-types:address-family
| +--rw ldp +--rw mpls
| +--rw igp-sync? boolean {ldp-igp-sync}? | +--rw ldp
+--rw fast-reroute {fast-reroute}? | +--rw igp-sync? boolean {ldp-igp-sync}?
| +--rw lfa {lfa}? +--rw fast-reroute {fast-reroute}?
| +--rw candidate-enable? boolean | +--rw lfa {lfa}?
| +--rw enable? boolean | +--rw candidate-enable? boolean
| +--rw remote-lfa {remote-lfa}? | +--rw enable? boolean
| | +--rw enable? boolean | +--rw remote-lfa {remote-lfa}?
| +--rw level-1 | | +--rw enable? boolean
| | +--rw candidate-enable? boolean | +--rw level-1
| | +--rw enable? boolean | | +--rw candidate-enable? boolean
| | +--rw remote-lfa {remote-lfa}? | | +--rw enable? boolean
| | +--rw enable? boolean | | +--rw remote-lfa {remote-lfa}?
| +--rw level-2 | | +--rw enable? boolean
| +--rw candidate-enable? boolean | +--rw level-2
| +--rw enable? boolean | +--rw candidate-enable? boolean
| +--rw remote-lfa {remote-lfa}? | +--rw enable? boolean
| +--rw enable? boolean | +--rw remote-lfa {remote-lfa}?
+--ro adjacencies | +--rw enable? boolean
| +--ro adjacency* [] +--ro adjacencies
| +--ro neighbor-sys-type? level | +--ro adjacency* []
| +--ro neighbor-sysid? system-id | +--ro neighbor-sys-type? level
| +--ro neighbor-extended-circuit-id? | +--ro neighbor-sysid? system-id
extended-circuit-id | +--ro neighbor-extended-circuit-id?
| +--ro neighbor-snpa? snpa | | extended-circuit-id
| +--ro usage? level | +--ro neighbor-snpa? snpa
| +--ro hold-timer? | +--ro usage? level
rt-types:timer-value-seconds16 | +--ro hold-timer?
| +--ro neighbor-priority? uint8 | | rt-types:timer-value-seconds16
| +--ro lastuptime? yang:timestamp | +--ro neighbor-priority? uint8
| +--ro state? adj-state-type | +--ro lastuptime? yang:timestamp
+--ro event-counters | +--ro state? adj-state-type
| +--ro adjacency-changes? uint32 +--ro event-counters
| +--ro adjacency-number? uint32 | +--ro adjacency-changes? uint32
| +--ro init-fails? uint32 | +--ro adjacency-number? uint32
| +--ro adjacency-rejects? uint32 | +--ro init-fails? uint32
| +--ro id-len-mismatch? uint32 | +--ro adjacency-rejects? uint32
| +--ro max-area-addresses-mismatch? uint32 | +--ro id-len-mismatch? uint32
| +--ro authentication-type-fails? uint32 | +--ro max-area-addresses-mismatch? uint32
| +--ro authentication-fails? uint32 | +--ro authentication-type-fails? uint32
| +--ro lan-dis-changes? uint32 | +--ro authentication-fails? uint32
+--ro packet-counters | +--ro lan-dis-changes? uint32
| +--ro level* [level] +--ro packet-counters
| +--ro level level-number | +--ro level* [level]
| +--ro iih | +--ro level level-number
| | +--ro in? uint32 | +--ro iih
| | +--ro out? uint32 | | +--ro in? uint32
| +--ro ish | | +--ro out? uint32
| | +--ro in? uint32 | +--ro ish
| | +--ro out? uint32 | | +--ro in? uint32
| +--ro esh | | +--ro out? uint32
| | +--ro in? uint32 | +--ro esh
| | +--ro out? uint32 | | +--ro in? uint32
| +--ro lsp | | +--ro out? uint32
| | +--ro in? uint32 | +--ro lsp
| | +--ro out? uint32 | | +--ro in? uint32
| +--ro psnp | | +--ro out? uint32
| | +--ro in? uint32 | +--ro psnp
| | +--ro out? uint32 | | +--ro in? uint32
| +--ro csnp | | +--ro out? uint32
| | +--ro in? uint32 | +--ro csnp
| | +--ro out? uint32 | | +--ro in? uint32
| +--ro unknown | | +--ro out? uint32
| +--ro in? uint32 | +--ro unknown
| +--ro out? uint32 | +--ro in? uint32
+--rw topologies {multi-topology}? | +--ro out? uint32
+--rw topology* [name] +--rw topologies {multi-topology}?
+--rw name -> +--rw topology* [name]
../../../../../../../../rt:ribs/rib/name +--rw name ->
+--rw metric ../../../../../../../../rt:ribs/rib/name
+--rw value? wide-metric +--rw metric
+--rw level-1 +--rw value? wide-metric
| +--rw value? wide-metric +--rw level-1
+--rw level-2 | +--rw value? wide-metric
+--rw value? wide-metric +--rw level-2
+--rw value? wide-metric
rpcs: rpcs:
+---x clear-adjacency +---x clear-adjacency
| +---w input | +---w input
| +---w routing-protocol-instance-name -> | +---w routing-protocol-instance-name ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +---w level? level | +---w level? level
| +---w interface? if:interface-ref | +---w interface? if:interface-ref
+---x clear-database +---x clear-database
+---w input +---w input
+---w routing-protocol-instance-name -> +---w routing-protocol-instance-name ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
+---w level? level +---w level? level
notifications: notifications:
+---n database-overload +---n database-overload
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro overload? enumeration | +--ro overload? enumeration
+---n lsp-too-large +---n lsp-too-large
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-size? uint32 | +--ro pdu-size? uint32
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n if-state-change +---n if-state-change
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro state? if-state-type | +--ro state? if-state-type
+---n corrupted-lsp-detected +---n corrupted-lsp-detected
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n attempt-to-exceed-max-sequence +---n attempt-to-exceed-max-sequence
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n id-len-mismatch +---n id-len-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro pdu-field-len? uint8 | +--ro pdu-field-len? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n max-area-addresses-mismatch +---n max-area-addresses-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro max-area-addresses? uint8 | +--ro max-area-addresses? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n own-lsp-purge +---n own-lsp-purge
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n sequence-number-skipped +---n sequence-number-skipped
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
+---n authentication-type-failure +---n authentication-type-failure
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n authentication-failure +---n authentication-failure
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n version-skew +---n version-skew
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro protocol-version? uint8 | +--ro protocol-version? uint8
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n area-mismatch +---n area-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
+---n rejected-adjacency +---n rejected-adjacency
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro reason? string | +--ro reason? string
+---n protocols-supported-mismatch +---n protocols-supported-mismatch
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro protocols* uint8 | +--ro protocols* uint8
+---n lsp-error-detected +---n lsp-error-detected
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
| +--ro raw-pdu? binary | +--ro raw-pdu? binary
| +--ro error-offset? uint32 | +--ro error-offset? uint32
| +--ro tlv-type? uint8 | +--ro tlv-type? uint8
+---n adjacency-state-change +---n adjacency-state-change
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro neighbor? string | +--ro neighbor? string
| +--ro neighbor-system-id? system-id | +--ro neighbor-system-id? system-id
| +--ro state? adj-state-type | +--ro state? adj-state-type
| +--ro reason? string | +--ro reason? string
+---n lsp-received +---n lsp-received
| +--ro routing-protocol-name? -> | +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
| +--ro isis-level? level | +--ro isis-level? level
| +--ro interface-name? if:interface-ref | +--ro interface-name? if:interface-ref
| +--ro interface-level? level | +--ro interface-level? level
| +--ro extended-circuit-id? extended-circuit-id | +--ro extended-circuit-id? extended-circuit-id
| +--ro lsp-id? lsp-id | +--ro lsp-id? lsp-id
| +--ro sequence? uint32 | +--ro sequence? uint32
| +--ro received-timestamp? yang:timestamp | +--ro received-timestamp? yang:timestamp
| +--ro neighbor-system-id? system-id | +--ro neighbor-system-id? system-id
+---n lsp-generation +---n lsp-generation
+--ro routing-protocol-name? -> +--ro routing-protocol-name? ->
/rt:routing/control-plane-protocols/control-plane-protocol/name /rt:routing/control-plane-protocols/control-plane-protocol/name
+--ro isis-level? level +--ro isis-level? level
+--ro lsp-id? lsp-id +--ro lsp-id? lsp-id
+--ro sequence? uint32 +--ro sequence? uint32
+--ro send-timestamp? yang:timestamp +--ro send-timestamp? yang:timestamp
2.5. Authentication Parameters 2.5. Authentication Parameters
The module enables authentication configuration through the IETF key- The module enables authentication configuration through the IETF key-
chain module ([RFC8177]). The IS-IS module imports the "ietf-key- chain module ([RFC8177]). The IS-IS module imports the "ietf-key-
chain" module and reuses some groupings to allow global and per chain" module and reuses some groupings to allow global and per
interface configuration of authentication. If a global interface configuration of authentication. If a global
authentication is configured, an implementation SHOULD authenticate authentication is configured, an implementation SHOULD authenticate
PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence
Number Packets) and LSPs (Link State Packets) with the authentication Number Packets) and LSPs (Link State Packets) with the authentication
skipping to change at page 23, line 44 skipping to change at page 23, line 44
[I-D.ietf-bfd-yang]. [I-D.ietf-bfd-yang].
6. IS-IS YANG Module 6. IS-IS YANG Module
The following RFCs, drafts and external standards are not referenced The following RFCs, drafts and external standards are not referenced
in the document text but are referenced in the ietf-isis.yang module: in the document text but are referenced in the ietf-isis.yang module:
[ISO-10589], [RFC1195], [RFC5029], [RFC5130], [RFC5305], [RFC5306], [ISO-10589], [RFC1195], [RFC5029], [RFC5130], [RFC5305], [RFC5306],
[RFC5308], [RFC5880], [RFC5881], [RFC6119], [RFC6232], [RFC7794], [RFC5308], [RFC5880], [RFC5881], [RFC6119], [RFC6232], [RFC7794],
[RFC7810], [RFC7917], [RFC8405]. [RFC7810], [RFC7917], [RFC8405].
<CODE BEGINS> file "ietf-isis@2019-01-21.yang" <CODE BEGINS> file "ietf-isis@2019-01-21.yang"
module ietf-isis { module ietf-isis {
yang-version 1.1; yang-version 1.1;
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";
reference "RFC 8349 - A YANG Data Model for Routing reference "RFC 8349 - A YANG Data Model for Routing
Management (NMDA Version)"; Management (NMDA Version)";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference "RFC 6991 - Common YANG Data Types"; reference "RFC 6991 - Common YANG Data Types";
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference "RFC 6991 - Common YANG Data Types"; reference "RFC 6991 - Common YANG Data Types";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
reference "RFC 8343 - A YANG Data Model for Interface reference "RFC 8343 - A YANG Data Model for Interface
Management (NDMA Version)"; Management (NDMA Version)";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
reference "RFC 8177 - YANG Data Model for Key Chains"; reference "RFC 8177 - YANG Data Model for Key Chains";
} }
import ietf-routing-types { import ietf-routing-types {
prefix "rt-types"; prefix "rt-types";
reference "RFC 8294 - Common YANG Data Types for the reference "RFC 8294 - Common YANG Data Types for the
Routing Area"; Routing Area";
} }
import iana-routing-types { import iana-routing-types {
prefix "iana-rt-types"; prefix "iana-rt-types";
reference "RFC 8294 - Common YANG Data Types for the reference "RFC 8294 - Common YANG Data Types for the
Routing Area"; Routing Area";
} }
import ietf-bfd-types { import ietf-bfd-types {
prefix "bfd-types"; prefix "bfd-types";
reference "RFC YYYY - YANG Data Model for Bidirectional reference "RFC YYYY - YANG Data Model for Bidirectional
Forwarding Detection (BFD). Forwarding Detection (BFD).
draft-ietf-bfd-yang."; -- Note to RFC Editor Please replace YYYY with published RFC number
for draft-ietf-bfd-yang.";
} }
organization organization
"IETF LSR Working Group"; "IETF LSR Working Group";
contact contact
"WG List: &lt;mailto:lsr@ietf.org&gt; "WG List: &lt;mailto:lsr@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
&lt;mailto:derek@arrcus.com&gt; &lt;mailto:derek@arrcus.com&gt;
Acee Lindem Acee Lindem
&lt;mailto:acee@cisco.com&gt; &lt;mailto:acee@cisco.com&gt;
Jeffrey Zhang Jeffrey Zhang
&lt;mailto:zzhang@juniper.net&gt; &lt;mailto:zzhang@juniper.net&gt;
Ladislav Lhotka Ladislav Lhotka
&lt;mailto:llhotka@nic.cz&gt; &lt;mailto:llhotka@nic.cz&gt;
Yi Yang Yi Yang
&lt;mailto:yiya@cisco.com&gt; &lt;mailto:yiya@cisco.com&gt;
Dean Bogdanovic Dean Bogdanovic
&lt;mailto:deanb@juniper.net&gt; &lt;mailto:deanb@juniper.net&gt;
Kiran Agrahara Sreenivasa Kiran Agrahara Sreenivasa
&lt;mailto:kkoushik@brocade.com&gt; &lt;mailto:kkoushik@brocade.com&gt;
Yingzhen Qu Yingzhen Qu
&lt;mailto:yiqu@cisco.com&gt; &lt;mailto:yiqu@cisco.com&gt;
Jeff Tantsura Jeff Tantsura
&lt;mailto:jefftant.ietf@gmail.com&gt; &lt;mailto:jefftant.ietf@gmail.com&gt;
"; ";
description description
"This YANG module defines the generic configuration and "This YANG module defines the generic configuration and
operational state for the IS-IS protocol. operational state for the IS-IS protocol.
It is intended that the module It is intended that the module
will be extended by vendors to define vendor-specific will be extended by vendors to define vendor-specific
IS-IS configuration parameters and policies, IS-IS configuration parameters and policies,
for example route maps or route policies. for example route maps or route policies.
This YANG module conforms to the Network Management This YANG module conforms to the Network Management
Datastore Architecture (NDMA) as described in RFC 8242. Datastore Architecture (NDMA) as described in RFC 8242.
Copyright (c) 2018 IETF Trust and the persons identified as Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices. see the RFC itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] are to be interpreted as described in BCP 14 [RFC2119]
when, and only when, they appear in all capitals, as shown here. [RFC8174] when, and only when, they appear in all capitals, as
"; shown here.
";
revision 2019-01-21 { revision 2019-01-21 {
description description
"Initial revision."; "Initial revision.";
reference "RFC XXXX"; reference "RFC XXXX";
} }
/* Identities */ /* Identities */
identity isis { identity isis {
base rt:routing-protocol; base rt:routing-protocol;
description "Identity for the IS-IS routing protocol."; description "Identity for the IS-IS routing protocol.";
} }
identity lsp-log-reason { identity lsp-log-reason {
description "Base identity for an LSP change log reason."; description "Base identity for an LSP change log reason.";
} }
identity refresh { identity refresh {
base lsp-log-reason; base lsp-log-reason;
description description
"Identity used when the LSP log reason is "Identity used when the LSP log reason is
a refresh LSP received."; a refresh LSP received.";
} }
identity content-change { identity content-change {
base lsp-log-reason; base lsp-log-reason;
description description
"Identity used when the LSP log reason is "Identity used when the LSP log reason is
a change in the content of the LSP."; a change in the content of the LSP.";
} }
/* Feature definitions */ /* Feature definitions */
feature poi-tlv {
description "Support of Purge Originator Identification.";
reference "RFC 6232 - Purge Originator Identification TLV
for IS-IS";
}
feature ietf-spf-delay {
description
"Support for IETF SPF delay algorithm.";
reference "RFC 8405 - SPF Back-off algorithm for link
state IGPs";
}
feature bfd {
description
"Support for BFD detection of IS-IS neighbor reachability.";
reference "RFC 5880 - Bidirectional Forwarding Detection (BFD)
RFC 5881 - Bidirectional Forwarding Detection
(BFD) for IPv4 and IPv6 (Single Hop)";
}
feature key-chain {
description
"Support of keychain for authentication.";
reference "RFC8177 - YANG Data Model for Key Chains";
}
feature node-flag {
description
"Support for node-flag for IS-IS prefixes.";
reference "RFC7794 - IS-IS Prefix Attributes for
Extended IP and IPv6 Reachability";
}
feature node-tag {
description
"Support for node admin tag for IS-IS routing instances.";
reference "RFC7917 - Advertising Node Administrative Tags
in IS-IS";
}
feature ldp-igp-sync {
description
"LDP IGP synchronization.";
reference "RFC5443 - LDP IGP Synchronization.";
}
feature fast-reroute {
description
"Support for IP Fast Reroute (IP-FRR).";
}
feature nsr {
description
"Non-Stop-Routing (NSR) support.";
}
feature lfa {
description
"Support for Loop-Free Alternates (LFAs).";
reference "RFC5286 - Basic Specification of IP Fast-Reroute:
Loop-free Alternates";
}
feature remote-lfa {
description
"Support for Remote Loop-Free Alternates (R-LFAs).";
reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute";
}
feature poi-tlv { feature overload-max-metric {
description "Support of Purge Originator Identification."; description
reference "RFC 6232 - Purge Originator Identification TLV "Support of overload by setting
for IS-IS"; all links to max metric.";
} }
feature ietf-spf-delay { feature prefix-tag {
description description
"Support for IETF SPF delay algorithm."; "Support for 32-bit prefix tags";
reference "RFC 8405 - SPF Back-off algorithm for link reference "RFC5130 - A Policy Control Mechanism in
state IGPs"; IS-IS Using Administrative Tags";
} }
feature bfd { feature prefix-tag64 {
description description
"Support for BFD detection of IS-IS neighbor reachability."; "Support for 64-bit prefix tags";
reference "RFC 5880 - Bidirectional Forwarding Detection (BFD) reference "RFC5130 - A Policy Control Mechanism in
RFC 5881 - Bidirectional Forwarding Detection IS-IS Using Administrative Tags";
(BFD) for IPv4 and IPv6 (Single Hop)"; }
} feature auto-cost {
feature key-chain { description
description "Calculate IS-IS interface metric according to
"Support of keychain for authentication."; reference bandwidth.";
reference "RFC8177 - YANG Data Model for Key Chains"; }
}
feature node-flag {
description
"Support for node-flag for IS-IS prefixes.";
reference "RFC7794 - IS-IS Prefix Attributes for
Extended IP and IPv6 Reachability";
}
feature node-tag {
description
"Support for node admin tag for IS-IS routing instances.";
reference "RFC7917 - Advertising Node Administrative Tags
in IS-IS";
}
feature ldp-igp-sync {
description
"LDP IGP synchronization.";
reference "RFC5443 - LDP IGP Synchronization.";
}
feature fast-reroute {
description
"Support for IP Fast Reroute (IP-FRR).";
}
feature nsr {
description
"Non-Stop-Routing (NSR) support.";
}
feature lfa {
description
"Support for Loop-Free Alternates (LFAs).";
reference "RFC5286 - Basic Specification of IP Fast-Reroute:
Loop-free Alternates";
}
feature remote-lfa {
description
"Support for Remote Loop-Free Alternates (R-LFAs).";
reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute";
}
feature overload-max-metric { feature te-rid {
description description
"Support of overload by setting "Traffic-Engineering Router-ID.";
all links to max metric."; reference "RFC5305 - IS-IS Extensions for Traffic Engineering
} RFC6119 - IPv6 Traffic Engineering in IS-IS";
feature prefix-tag { }
description feature max-ecmp {
"Support for 32-bit prefix tags"; description
reference "RFC5130 - A Policy Control Mechanism in "Setting maximum number of ECMP paths.";
IS-IS Using Administrative Tags"; }
} feature multi-topology {
feature prefix-tag64 { description
description "Support for Multiple-Topology Routing (MTR).";
"Support for 64-bit prefix tags";
reference "RFC5130 - A Policy Control Mechanism in
IS-IS Using Administrative Tags";
}
feature auto-cost {
description
"Calculate IS-IS interface metric according to
reference bandwidth.";
}
feature te-rid { reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS";
description }
"Traffic-Engineering Router-ID."; feature nlpid-control {
reference "RFC5305 - IS-IS Extensions for Traffic Engineering description
RFC6119 - IPv6 Traffic Engineering in IS-IS"; "This feature controls the advertisement
} of support NLPID within IS-IS configuration.";
feature max-ecmp { }
description feature graceful-restart {
"Setting maximum number of ECMP paths."; description
} "IS-IS Graceful restart support.";
feature multi-topology { reference "RFC5306 - Restart Signaling in IS-IS";
description }
"Support for Multiple-Topology Routing (MTR).";
reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS";
} feature lsp-refresh {
feature nlpid-control { description
description "Configuration of LSP refresh interval.";
"This feature controls the advertisement }
of support NLPID within IS-IS configuration.";
}
feature graceful-restart {
description
"IS-IS Graceful restart support.";
reference "RFC5306 - Restart Signaling in IS-IS";
}
feature lsp-refresh { feature maximum-area-addresses {
description description
"Configuration of LSP refresh interval."; "Support of maximum-area-addresses config.";
} }
feature maximum-area-addresses { feature admin-control {
description description
"Support of maximum-area-addresses config."; "Administrative control of the protocol state.";
} }
feature admin-control { /* Type definitions */
description
"Administrative control of the protocol state.";
}
/* Type definitions */ typedef circuit-id {
type uint8;
description
"This type defines the circuit ID
associated with an interface.";
}
typedef circuit-id { typedef extended-circuit-id {
type uint8; type uint32;
description description
"This type defines the circuit ID "This type defines the extended circuit ID
associated with an interface."; associated with an interface.";
} }
typedef extended-circuit-id { typedef interface-type {
type uint32; type enumeration {
description enum broadcast {
"This type defines the extended circuit ID description
associated with an interface."; "Broadcast interface type.";
} }
enum point-to-point {
description
"Point-to-point interface type.";
}
}
description
"This type defines the type of adjacency
to be established on the interface.
The interface-type determines the type
of hello message that is used.";
typedef interface-type { }
type enumeration {
enum broadcast {
description
"Broadcast interface type.";
} typedef level {
enum point-to-point { type enumeration {
description enum "level-1" {
"Point-to-point interface type."; description
} "This enum indicates L1-only capability.";
} }
description enum "level-2" {
"This type defines the type of adjacency description
to be established on the interface. "This enum indicates L2-only capability.";
The interface-type determines the type }
of hello message that is used."; enum "level-all" {
description
"This enum indicates capability for both levels.";
}
}
default "level-all";
description
"This type defines IS-IS level of an object.";
} }
typedef level { typedef adj-state-type {
type enumeration { type enumeration {
enum "level-1" { enum "up" {
description description
"This enum indicates L1-only capability."; "State indicates the adjacency is established.";
} }
enum "level-2" { enum "down" {
description description
"This enum indicates L2-only capability."; "State indicates the adjacency is NOT established.";
} }
enum "level-all" { enum "init" {
description description
"This enum indicates capability for both levels."; "State indicates the adjacency is establishing.";
} }
} enum "failed" {
default "level-all"; description
description "State indicates the adjacency is failed.";
"This type defines IS-IS level of an object."; }
}
description
"This type defines states of an adjacency";
}
} typedef if-state-type {
type enumeration {
enum "up" {
description "Up state.";
typedef adj-state-type { }
type enumeration { enum "down" {
enum "up" { description "Down state";
description }
"State indicates the adjacency is established."; }
} description
enum "down" { "This type defines the state of an interface";
description }
"State indicates the adjacency is NOT established.";
}
enum "init" {
description
"State indicates the adjacency is establishing.";
} typedef level-number {
enum "failed" { type uint8 {
description range "1 .. 2";
"State indicates the adjacency is failed."; }
} description
} "This type defines the current IS-IS level.";
description }
"This type defines states of an adjacency";
}
typedef if-state-type { typedef lsp-id {
type enumeration { type string {
enum "up" { pattern
description "Up state."; '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]'
+'{4}\.[0-9][0-9]-[0-9][0-9]';
}
description
"This type defines the IS-IS LSP ID format using a
pattern. An example LSP ID is 0143.0438.AEF0.02-01";
}
} typedef area-address {
enum "down" { type string {
description "Down state"; pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}';
} }
} description
description "This type defines the area address format.";
"This type defines the state of an interface"; }
}
typedef level-number { typedef snpa {
type uint8 { type string {
range "1 .. 2"; length "0 .. 20";
} }
description description
"This type defines the current IS-IS level."; "This type defines the Subnetwork Point
} of Attachement (SNPA) format.
The SNPA should be encoded according to the rules
specified for the particular type of subnetwork
being used. As an example, for an ethernet subnetwork,
the SNPA is encoded as a MAC address like
'00aa.bbcc.ddee'.";
}
typedef lsp-id { typedef system-id {
type string { type string {
pattern pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
+'{4}\.[0-9][0-9]-[0-9][0-9]'; }
} description
description "This type defines IS-IS system-id using pattern,
"This type defines the IS-IS LSP ID format using a An example system-id is 0143.0438.AEF0";
pattern. An example LSP ID is 0143.0438.AEF0.02-01"; }
} typedef extended-system-id {
type string {
pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.'
+'[0-9][0-9]';
}
description
"This type defines IS-IS system-id using pattern. The extended
system-id contains the pseudonode number in addition to the
system-id.
An example system-id is 0143.0438.AEF0.00";
}
typedef area-address { typedef wide-metric {
type string { type uint32 {
pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}'; range "0 .. 16777215";
} }
description description
"This type defines the area address format."; "This type defines wide style format of IS-IS metric.";
} }
typedef std-metric {
type uint8 {
range "0 .. 63";
}
description
"This type defines old style format of IS-IS metric.";
}
typedef snpa { typedef mesh-group-state {
type string { type enumeration {
length "0 .. 20"; enum "mesh-inactive" {
} description
description "Interface is not part of a mesh group.";
"This type defines the Subnetwork Point }
of Attachement (SNPA) format. enum "mesh-set" {
The SNPA should be encoded according to the rules description
specified for the particular type of subnetwork "Interface is part of a mesh group.";
being used. As an example, for an ethernet subnetwork, }
the SNPA is encoded as a MAC address like 00aa.bbcc.ddee"; enum "mesh-blocked" {
} description
"LSPs must not be flooded over this interface.";
}
}
description
"This type describes mesh group state of an interface";
}
typedef system-id { /* Grouping for notifications */
type string {
pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
}
description
"This type defines IS-IS system-id using pattern,
An example system-id is 0143.0438.AEF0";
}
typedef extended-system-id {
type string {
pattern
'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9][0-9]';
}
description
"This type defines IS-IS system-id using pattern. The extended
system-id contains the pseudonode number in addition to the
system-id.
An example system-id is 0143.0438.AEF0.00";
}
typedef wide-metric { grouping notification-instance-hdr {
type uint32 { description
range "0 .. 16777215"; "Instance specific IS-IS notification data grouping";
} leaf routing-protocol-name {
description type leafref {
"This type defines wide style format of IS-IS metric."; path "/rt:routing/rt:control-plane-protocols/"
} + "rt:control-plane-protocol/rt:name";
}
description "Name of the IS-IS instance.";
}
leaf isis-level {
type level;
description "IS-IS level of the instance.";
}
}
typedef std-metric { grouping notification-interface-hdr {
type uint8 { description
range "0 .. 63"; "Interface specific IS-IS notification data grouping";
} leaf interface-name {
description type if:interface-ref;
"This type defines old style format of IS-IS metric."; description "IS-IS interface name";
} }
leaf interface-level {
type level;
description "IS-IS level of the interface.";
}
leaf extended-circuit-id {
type extended-circuit-id;
description "Eextended circuit-id of the interface.";
}
}
typedef mesh-group-state { /* Groupings for IP Fast Reroute */
type enumeration {
enum "mesh-inactive" {
description
"Interface is not part of a mesh group.";
}
enum "mesh-set" {
description
"Interface is part of a mesh group.";
}
enum "mesh-blocked" {
description
"LSPs must not be flooded over this interface.";
}
}
description
"This type describes mesh group state of an interface";
}
/* Grouping for notifications */ grouping instance-fast-reroute-config {
description
"This group defines global configuration of IP
Fast ReRoute (FRR).";
container fast-reroute {
if-feature fast-reroute;
description
"This container may be augmented with global
parameters for IP-FRR.";
container lfa {
if-feature lfa;
description
"This container may be augmented with
global parameters for Loop-Free Alternatives (LFA).
Container creation has no effect on LFA activation.";
}
}
}
grouping notification-instance-hdr { grouping interface-lfa-config {
description leaf candidate-enable {
"Instance specific IS-IS notification data grouping"; type boolean;
leaf routing-protocol-name { default true;
type leafref { description
path "/rt:routing/rt:control-plane-protocols/" "Enable the interface to be used as backup.";
+ "rt:control-plane-protocol/rt:name"; }
} leaf enable {
description "Name of the IS-IS instance."; type boolean;
} default false;
leaf isis-level { description
type level; "Activates LFA - Per-prefix LFA computation
description "IS-IS level of the instance."; is assumed.";
} }
} container remote-lfa {
if-feature remote-lfa;
leaf enable {
type boolean;
default false;
description
"Activates Remote LFA (R-LFA).";
}
description
"Remote LFA configuration.";
}
description "Grouping for LFA interface configuration";
}
grouping interface-fast-reroute-config {
description
"This group defines interface configuration of IP-FRR.";
container fast-reroute {
if-feature fast-reroute;
container lfa {
if-feature lfa;
uses interface-lfa-config;
container level-1 {
uses interface-lfa-config;
description
"LFA level 1 config";
}
container level-2 {
uses interface-lfa-config;
description
"LFA level 2 config";
}
description
"LFA configuration.";
}
description
"Interface IP Fast-reroute configuration.";
}
}
grouping instance-fast-reroute-state {
description "IPFRR state data grouping";
container protected-routes {
config false;
list address-family-stats {
key "address-family prefix alternate";
grouping notification-interface-hdr { leaf address-family {
description type iana-rt-types:address-family;
"Interface specific IS-IS notification data grouping"; description
leaf interface-name { "Address-family";
type if:interface-ref; }
description "IS-IS interface name"; leaf prefix {
type inet:ip-prefix;
description
"Protected prefix.";
}
leaf alternate {
type inet:ip-address;
description
"Alternate nexthop for the prefix.";
}
leaf alternate-type {
type enumeration {
enum equal-cost {
description
"ECMP alternate.";
}
enum lfa {
description
"LFA alternate.";
}
enum remote-lfa {
description
"Remote LFA alternate.";
}
enum tunnel {
description
"Tunnel based alternate
(like RSVP-TE or GRE).";
}
enum ti-lfa {
description
"TI-LFA alternate.";
}
enum mrt {
description
"MRT alternate.";
}
enum other {
description
"Unknown alternate type.";
}
}
description
"Type of alternate.";
} }
leaf interface-level { leaf best {
type level; type boolean;
description "IS-IS level of the interface."; description
} "Is set when the alternate is the preferred one,
leaf extended-circuit-id { is unset otherwise.";
type extended-circuit-id; }
description "Eextended circuit-id of the interface."; leaf non-best-reason {
} type string {
} length "1..255";
}
description
"Information field to describe why the alternate
is not best. The length should be limited to 255
unicode characters. The expected format is a single
line text.";
}
leaf protection-available {
type bits {
bit node-protect {
position 0;
description
"Node protection available.";
}
bit link-protect {
position 1;
description
"Link protection available.";
}
bit srlg-protect {
position 2;
description
"SRLG protection available.";
}
bit downstream-protect {
position 3;
description
"Downstream protection available.";
}
bit other {
position 4;
description
"Other protection available.";
}
}
description "Protection provided by the alternate.";
}
leaf alternate-metric1 {
type uint32;
description
"Metric from Point of Local Repair (PLR) to
destination through the alternate path.";
}
leaf alternate-metric2 {
type uint32;
description
"Metric from PLR to the alternate node";
}
leaf alternate-metric3 {
type uint32;
description
"Metric from alternate node to the destination";
}
description
"Per-AF protected prefix statistics.";
}
description
"List of prefixes that are protected.";
}
/* Groupings for IP Fast Reroute */ container unprotected-routes {
config false;
list address-family-stats {
key "address-family prefix";
grouping instance-fast-reroute-config { leaf address-family {
description type iana-rt-types:address-family;
"This group defines global configuration of IP
Fast ReRoute (FRR).";
container fast-reroute {
if-feature fast-reroute;
description
"This container may be augmented with global
parameters for IP-FRR.";
container lfa {
if-feature lfa;
description
"This container may be augmented with
global parameters for Loop-Free Alternatives (LFA).
Container creation has no effect on LFA activation.";
}
}
}
grouping interface-lfa-config { description "Address-family";
leaf candidate-enable { }
type boolean; leaf prefix {
default true; type inet:ip-prefix;
description description "Unprotected prefix.";
"Enable the interface to be used as backup."; }
} description
leaf enable { "Per AF unprotected prefix statistics.";
type boolean; }
default false;
description
"Activates LFA - Per-prefix LFA computation
is assumed.";
}
container remote-lfa {
if-feature remote-lfa;
leaf enable {
type boolean;
default false;
description
"Activates Remote LFA (R-LFA).";
}
description
"Remote LFA configuration.";
}
description "Grouping for LFA interface configuration";
}
grouping interface-fast-reroute-config {
description
"This group defines interface configuration of IP-FRR.";
container fast-reroute {
if-feature fast-reroute;
container lfa {
if-feature lfa;
uses interface-lfa-config;
container level-1 {
uses interface-lfa-config;
description
"LFA level 1 config";
}
container level-2 {
uses interface-lfa-config;
description description
"LFA level 2 config"; "List of prefixes that are not protected.";
} }
description
"LFA configuration.";
}
description
"Interface IP Fast-reroute configuration.";
}
}
grouping instance-fast-reroute-state {
description "IPFRR state data grouping";
container protected-routes {
config false;
list address-family-stats {
key "address-family prefix alternate";
leaf address-family { list protection-statistics {
type iana-rt-types:address-family; key frr-protection-method;
description config false;
"Address-family"; leaf frr-protection-method {
type string;
description "Protection method used.
The expected format is a single word.
As example: LFA,rLFA, MRT, RSVP-TE...";
}
list address-family-stats {
key address-family;
} leaf address-family {
leaf prefix { type iana-rt-types:address-family;
type inet:ip-prefix;
description
"Protected prefix.";
}
leaf alternate {
type inet:ip-address;
description
"Alternate nexthop for the prefix.";
}
leaf alternate-type {
type enumeration {
enum equal-cost {
description
"ECMP alternate.";
}
enum lfa {
description
"LFA alternate.";
}
enum remote-lfa {
description
"Remote LFA alternate.";
}
enum tunnel {
description
"Tunnel based alternate
(like RSVP-TE or GRE).";
}
enum ti-lfa {
description
"TI-LFA alternate.";
}
enum mrt {
description
"MRT alternate.";
}
enum other {
description
"Unknown alternate type.";
}
}
description
"Type of alternate.";
}
leaf best {
type boolean;
description
"Is set when the alternate is the preferred one,
is unset otherwise.";
}
leaf non-best-reason {
type string {
length "1..255";
}
description
"Information field to describe why the alternate
is not best. The length should be limited to 255 unicode
characters. The expected format is a single line text.";
}
leaf protection-available {
type bits {
bit node-protect {
position 0;
description
"Node protection available.";
}
bit link-protect {
position 1;
description
"Link protection available.";
}
bit srlg-protect {
position 2;
description
"SRLG protection available.";
}
bit downstream-protect {
position 3;
description
"Downstream protection available.";
}
bit other {
position 4;
description
"Other protection available.";
}
}
description "Protection provided by the alternate.";
}
leaf alternate-metric1 {
type uint32;
description
"Metric from Point of Local Repair (PLR) to
destination through the alternate path.";
} description "Address-family";
leaf alternate-metric2 { }
type uint32; leaf total-routes {
description type uint32;
"Metric from PLR to the alternate node"; description "Total prefixes.";
} }
leaf alternate-metric3 { leaf unprotected-routes {
type uint32; type uint32;
description description
"Metric from alternate node to the destination"; "Total prefixes that are not protected.";
} }
description leaf protected-routes {
"Per-AF protected prefix statistics."; type uint32;
} description
description "Total prefixes that are protected.";
"List of prefixes that are protected."; }
} leaf linkprotected-routes {
type uint32;
description
"Total prefixes that are link protected.";
}
leaf nodeprotected-routes {
type uint32;
description
"Total prefixes that are node protected.";
}
description
"Per AF protected prefix statistics.";
}
container unprotected-routes { description "Global protection statistics.";
config false; }
list address-family-stats { }
key "address-family prefix";
leaf address-family { /* Route table and local RIB groupings */
type iana-rt-types:address-family;
description "Address-family"; grouping local-rib {
} description "Local-rib - RIB for Routes computed by the local
leaf prefix { IS-IS routing instance.";
type inet:ip-prefix; container local-rib {
description "Unprotected prefix."; config false;
} description "Local-rib.";
description list route {
"Per AF unprotected prefix statistics."; key "prefix";
} description "Routes";
description leaf prefix {
"List of prefixes that are not protected."; type inet:ip-prefix;
} description "Destination prefix.";
}
container next-hops {
description "Next hops for the route.";
list next-hop {
key "next-hop";
description "List of next hops for the route";
leaf outgoing-interface {
type if:interface-ref;
description
"Name of the outgoing interface.";
}
leaf next-hop {
type inet:ip-address;
description "Nexthop address.";
}
}
}
leaf metric {
type uint32;
description "Metric for this route.";
}
leaf level {
type level-number;
description "Level number for this route.";
}
leaf route-tag {
type uint32;
description "Route tag for this route.";
}
}
}
}
list protection-statistics { grouping route-content {
key frr-protection-method; description
config false; "IS-IS protocol-specific route properties grouping.";
leaf frr-protection-method { leaf metric {
type string; type uint32;
description "Protection method used. description "IS-IS metric of a route.";
The expected format is a single word. }
As example: LFA,rLFA, MRT, RSVP-TE..."; leaf-list tag {
} type uint64;
list address-family-stats { description
key address-family; "List of tags associated with the route. The leaf
describes both 32-bit and 64-bit tags.";
}
leaf route-type {
type enumeration {
enum l2-up-internal {
description "Level 2 internal route
and not leaked to a lower level";
}
enum l1-up-internal {
description "Level 1 internal route
and not leaked to a lower level";
}
enum l2-up-external {
description "Level 2 external route
and not leaked to a lower level";
}
enum l1-up-external {
description "Level 1 external route
and not leaked to a lower level";
}
enum l2-down-internal {
description "Level 2 internal route
and leaked to a lower level";
}
enum l1-down-internal {
description "Level 1 internal route
and leaked to a lower level";
}
enum l2-down-external {
description "Level 2 external route
and leaked to a lower level";
}
enum l1-down-external {
description "Level 1 external route
and leaked to a lower level";
}
}
description "IS-IS route type.";
}
}
/* Grouping definitions for configuration and ops state */
leaf address-family { grouping adjacency-state {
type iana-rt-types:address-family; container adjacencies {
config false;
list adjacency {
leaf neighbor-sys-type {
type level;
description
"Level capability of neighboring system";
}
leaf neighbor-sysid {
type system-id;
description
"The system-id of the neighbor";
}
leaf neighbor-extended-circuit-id {
type extended-circuit-id;
description
"Circuit ID of the neighbor";
}
leaf neighbor-snpa {
type snpa;
description
"SNPA of the neighbor";
}
leaf usage {
type level;
description
"Define the level(s) activated on the adjacency.
On a p2p link this might be level 1 and 2,
but on a LAN, the usage will be level 1
between peers at level 1 or level 2 between
peers at level 2.";
}
leaf hold-timer {
type rt-types:timer-value-seconds16;
units seconds;
description
"The holding time in seconds for this
adjacency. This value is based on
received hello PDUs and the elapsed
time since receipt.";
}
leaf neighbor-priority {
type uint8 {
range "0 .. 127";
description "Address-family"; }
} description
leaf total-routes { "Priority of the neighboring IS for becoming
type uint32; the DIS.";
description "Total prefixes."; }
} leaf lastuptime {
leaf unprotected-routes { type yang:timestamp;
type uint32; description
description "When the adjacency most recently entered
"Total prefixes that are not protected."; state 'up', measured in hundredths of a
} second since the last reinitialization of
leaf protected-routes { the network management subsystem.
type uint32; The value is 0 if the adjacency has never
description been in state 'up'.";
"Total prefixes that are protected."; }
} leaf state {
leaf linkprotected-routes { type adj-state-type;
type uint32; description
description "This leaf describes the state of the interface.";
"Total prefixes that are link protected."; }
}
leaf nodeprotected-routes {
type uint32;
description
"Total prefixes that are node protected.";
}
description
"Per AF protected prefix statistics.";
}
description "Global protection statistics."; description
} "List of operational adjacencies.";
} }
description
"This container lists the adjacencies of
the local node.";
}
description
"Adjacency state";
}
/* Route table and local RIB groupings */ grouping admin-control {
leaf enable {
if-feature admin-control;
type boolean;
default true;
description
"Enable/Disable the protocol.";
}
description
"Grouping for admin control.";
}
grouping local-rib { grouping ietf-spf-delay {
description "Local-rib - RIB for Routes computed by the local leaf initial-delay {
IS-IS routing instance."; type rt-types:timer-value-milliseconds;
container local-rib { units msec;
config false; description
description "Local-rib."; "Delay used while in QUIET state (milliseconds).";
list route { }
key "prefix"; leaf short-delay {
description "Routes"; type rt-types:timer-value-milliseconds;
leaf prefix { units msec;
type inet:ip-prefix; description
description "Destination prefix."; "Delay used while in SHORT_WAIT state (milliseconds).";
} }
container next-hops { leaf long-delay {
description "Next hops for the route."; type rt-types:timer-value-milliseconds;
list next-hop { units msec;
key "next-hop"; description
description "List of next hops for the route"; "Delay used while in LONG_WAIT state (milliseconds).";
leaf outgoing-interface { }
type if:interface-ref;
description
"Name of the outgoing interface.";
}
leaf next-hop {
type inet:ip-address;
description "Nexthop address.";
}
}
}
leaf metric {
type uint32;
description "Metric for this route.";
}
leaf level {
type level-number;
description "Level number for this route.";
}
leaf route-tag {
type uint32;
description "Route tag for this route.";
}
}
}
}
grouping route-content { leaf hold-down {
description type rt-types:timer-value-milliseconds;
"IS-IS protocol-specific route properties grouping."; units msec;
leaf metric { description
type uint32; "Timer used to consider an IGP stability period
description "IS-IS metric of a route."; (milliseconds).";
} }
leaf-list tag { leaf time-to-learn {
type uint64; type rt-types:timer-value-milliseconds;
description units msec;
"List of tags associated with the route. The leaf description
describes both 32-bit and 64-bit tags."; "Duration used to learn all the IGP events
} related to a single component failure (milliseconds).";
leaf route-type { }
type enumeration { leaf current-state {
enum l2-up-internal { type enumeration {
description "Level 2 internal route enum "quiet" {
and not leaked to a lower level"; description "QUIET state";
} }
enum l1-up-internal { enum "short-wait" {
description "Level 1 internal route description "SHORT_WAIT state";
and not leaked to a lower level"; }
} enum "long-wait" {
enum l2-up-external { description "LONG_WAIT state";
description "Level 2 external route }
and not leaked to a lower level"; }
} config false;
enum l1-up-external { description
description "Level 1 external route "Current SPF backoff algorithm state.";
and not leaked to a lower level"; }
} leaf remaining-time-to-learn {
enum l2-down-internal { type rt-types:timer-value-milliseconds;
description "Level 2 internal route units "msec";
and leaked to a lower level"; config false;
} description
enum l1-down-internal { "Remaining time until time-to-learn timer fires.";
description "Level 1 internal route }
and leaked to a lower level"; leaf remaining-hold-down {
} type rt-types:timer-value-milliseconds;
enum l2-down-external { units "msec";
description "Level 2 external route config false;
and leaked to a lower level"; description
} "Remaining time until hold-down timer fires.";
enum l1-down-external { }
description "Level 1 external route leaf last-event-received {
and leaked to a lower level"; type yang:timestamp;
} config false;
} description
description "IS-IS route type."; "Time of last IGP event received";
} }
} leaf next-spf-time {
type yang:timestamp;
config false;
description
"Time when next SPF has been scheduled.";
}
leaf last-spf-time {
type yang:timestamp;
config false;
description
"Time of last SPF computation.";
}
description
"Grouping for IETF SPF delay configuration and state.";
}
/* Grouping definitions for configuration and ops state */ grouping node-tag-config {
description
"IS-IS node tag config state.";
container node-tags {
if-feature node-tag;
list node-tag {
key tag;
leaf tag {
type uint32;
description
"Node tag value.";
}
description
"List of tags.";
}
description
"Container for node admin tags.";
}
}
grouping adjacency-state { grouping authentication-global-cfg {
container adjacencies { choice authentication-type {
config false; case key-chain {
list adjacency { if-feature key-chain;
leaf neighbor-sys-type { leaf key-chain {
type level; type key-chain:key-chain-ref;
description description
"Level capability of neighboring system"; "Reference to a key-chain.";
} }
leaf neighbor-sysid { }
type system-id; case password {
description leaf key {
"The system-id of the neighbor"; type string;
} description
leaf neighbor-extended-circuit-id { "This leaf specifies the authentication key. The
type extended-circuit-id; length of the key may be dependent on the
description cryptographic algorithm. In cases where it is
"Circuit ID of the neighbor"; not, a key length of at least 32 octets should be
} supported to allow for interoperability with
leaf neighbor-snpa { strong keys.";
type snpa; }
description leaf crypto-algorithm {
"SNPA of the neighbor"; type identityref {
} base key-chain:crypto-algorithm;
leaf usage { }
type level; description
description "Cryptographic algorithm associated with key.";
"Define the level(s) activated on the adjacency. }
On a p2p link this might be level 1 and 2, }
but on a LAN, the usage will be level 1 description "Choice of authentication.";
between peers at level 1 or level 2 between }
peers at level 2."; description "Grouping for global authentication config.";
} }
leaf hold-timer {
type rt-types:timer-value-seconds16;
units seconds;
description
"The holding time in seconds for this
adjacency. This value is based on
received hello PDUs and the elapsed
time since receipt.";
}
leaf neighbor-priority {
type uint8 {
range "0 .. 127";
}
description
"Priority of the neighboring IS for becoming
the DIS.";
} grouping metric-type-global-cfg {
leaf lastuptime { leaf value {
type yang:timestamp; type enumeration {
description enum wide-only {
"When the adjacency most recently entered description
state 'up', measured in hundredths of a "Advertise new metric style only (RFC5305)";
second since the last reinitialization of
the network management subsystem.
The value is 0 if the adjacency has never
been in state 'up'.";
}
leaf state {
type adj-state-type;
description
"This leaf describes the state of the interface.";
}
description }
"List of operational adjacencies."; enum old-only {
} description
description "Advertise old metric style only (RFC1195)";
"This container lists the adjacencies of }
the local node."; enum both {
} description "Advertise both metric styles";
description }
"Adjacency state"; }
} default wide-only;
description
"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,
- both means that both are advertised.
This leaf is only affecting IPv4 metrics.";
}
description
"Grouping for global metric style config.";
}
grouping admin-control { grouping default-metric-global-cfg {
leaf enable { leaf value {
if-feature admin-control; type wide-metric;
type boolean; default "10";
default true; description "Value of the metric";
description }
"Enable/Disable the protocol."; description
} "Global default metric config grouping.";
description }
"Grouping for admin control.";
}
grouping ietf-spf-delay { grouping overload-global-cfg {
leaf initial-delay { leaf status {
type rt-types:timer-value-milliseconds; type boolean;
units msec; default false;
description description
"Delay used while in QUIET state (milliseconds)."; "This leaf specifies the overload status.";
} }
leaf short-delay { description "Grouping for overload bit config.";
type rt-types:timer-value-milliseconds; }
units msec;
description
"Delay used while in SHORT_WAIT state (milliseconds).";
}
leaf long-delay {
type rt-types:timer-value-milliseconds;
units msec;
description
"Delay used while in LONG_WAIT state (milliseconds).";
}
leaf hold-down { grouping overload-max-metric-global-cfg {
type rt-types:timer-value-milliseconds; leaf timeout {
units msec; type rt-types:timer-value-seconds16;
description units "seconds";
"Timer used to consider an IGP stability period description
(milliseconds)."; "Timeout (in seconds) of the overload condition.";
} }
leaf time-to-learn { description
type rt-types:timer-value-milliseconds; "Overload maximum metric configuration grouping";
units msec; }
description
"Duration used to learn all the IGP events
related to a single component failure (milliseconds).";
}
leaf current-state {
type enumeration {
enum "quiet" {
description "QUIET state";
}
enum "short-wait" {
description "SHORT_WAIT state";
}
enum "long-wait" {
description "LONG_WAIT state";
}
}
config false;
description
"Current SPF backoff algorithm state.";
}
leaf remaining-time-to-learn {
type rt-types:timer-value-milliseconds;
units "msec";
config false;
description
"Remaining time until time-to-learn timer fires.";
} grouping route-preference-global-cfg {
leaf remaining-hold-down { choice granularity {
type rt-types:timer-value-milliseconds; case detail {
units "msec"; leaf internal {
config false; type uint8;
description description
"Remaining time until hold-down timer fires."; "Protocol preference for internal routes.";
} }
leaf last-event-received { leaf external {
type yang:timestamp; type uint8;
config false; description
description "Protocol preference for external routes.";
"Time of last IGP event received"; }
} }
leaf next-spf-time { case coarse {
type yang:timestamp; leaf default {
config false; type uint8;
description description
"Time when next SPF has been scheduled."; "Protocol preference for all IS-IS routes.";
} }
leaf last-spf-time { }
type yang:timestamp; description
config false; "Choice for implementation of route preference.";
description }
"Time of last SPF computation."; description
} "Global route preference grouping";
description }
"Grouping for IETF SPF delay configuration and state.";
}
grouping node-tag-config { grouping hello-authentication-cfg {
description choice authentication-type {
"IS-IS node tag config state."; case key-chain {
container node-tags { if-feature key-chain;
if-feature node-tag; leaf key-chain {
list node-tag { type key-chain:key-chain-ref;
key tag; description "Reference to a key-chain.";
leaf tag { }
type uint32; }
description case password {
"Node tag value."; leaf key {
} type string;
description description "Authentication key specification - The
"List of tags."; length of the key may be dependent on the
} cryptographic algorithm. In cases where
description it is not, a key length of at least 32 octets
"Container for node admin tags."; should be supported to allow for
} interoperability with strong keys.";
} }
leaf crypto-algorithm {
type identityref {
base key-chain:crypto-algorithm;
}
description
"Cryptographic algorithm associated with key.";
}
}
description "Choice of authentication.";
}
description "Grouping for hello authentication.";
}
grouping authentication-global-cfg { grouping hello-interval-cfg {
choice authentication-type { leaf value {
case key-chain { type rt-types:timer-value-seconds16;
if-feature key-chain; units "seconds";
leaf key-chain { default 10;
type key-chain:key-chain-ref; description
description "Interval (in seconds) between successive hello
"Reference to a key-chain."; messages.";
} }
}
case password {
leaf key {
type string;
description
"This leaf specifies the authentication key. The
length of the key may be dependent on the
cryptographic algorithm. In cases where it is
not, a key length of at least 32 octets should be
supported to allow for interoperability with
strong keys.";
}
leaf crypto-algorithm {
type identityref {
base key-chain:crypto-algorithm;
}
description
"Cryptographic algorithm associated with key.";
}
}
description "Choice of authentication.";
}
description "Grouping for global authentication config.";
}
grouping metric-type-global-cfg { description "Interval between hello messages.";
leaf value { }
type enumeration {
enum wide-only {
description
"Advertise new metric style only (RFC5305)";
}
enum old-only {
description
"Advertise old metric style only (RFC1195)";
} grouping hello-multiplier-cfg {
enum both { leaf value {
description "Advertise both metric styles"; type uint16;
} default 3;
} description
default wide-only; "Number of missed hello messages prior to
description declaring the adjacency down.";
"Type of metric to be generated: }
- wide-only means only new metric style description
is generated, "Number of missed hello messages prior to
- old-only means that only old style metric adjacency down grouping.";
is generated, }
- 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 { grouping priority-cfg {
leaf value { leaf value {
type wide-metric; type uint8 {
default "10"; range "0 .. 127";
description "Value of the metric"; }
} default 64;
description description
"Global default metric config grouping."; "Priority of interface for DIS election.";
} }
grouping overload-global-cfg { description "Interface DIS election priority grouping";
leaf status { }
type boolean;
default false;
description
"This leaf specifies the overload status.";
}
description "Grouping for overload bit config.";
}
grouping overload-max-metric-global-cfg { grouping metric-cfg {
leaf timeout { leaf value {
type rt-types:timer-value-seconds16; type wide-metric;
units "seconds"; default "10";
description description "Metric value.";
"Timeout (in seconds) of the overload condition."; }
} description "Interface metric grouping";
description }
"Overload maximum metric configuration grouping";
}
grouping route-preference-global-cfg { grouping metric-parameters {
choice granularity { container metric-type {
case detail { uses metric-type-global-cfg;
leaf internal { container level-1 {
type uint8; uses metric-type-global-cfg;
description description "level-1 specific configuration";
"Protocol preference for internal routes."; }
} container level-2 {
leaf external { uses metric-type-global-cfg;
type uint8; description "level-2 specific configuration";
description }
"Protocol preference for external routes."; description "Metric style global configuration";
} }
}
case coarse {
leaf default {
type uint8;
description
"Protocol preference for all IS-IS routes.";
}
}
description
"Choice for implementation of route preference.";
}
description
"Global route preference grouping";
}
grouping hello-authentication-cfg { container default-metric {
choice authentication-type { uses default-metric-global-cfg;
case key-chain { container level-1 {
if-feature key-chain; uses default-metric-global-cfg;
leaf key-chain { description "level-1 specific configuration";
type key-chain:key-chain-ref; }
description "Reference to a key-chain."; container level-2 {
} uses default-metric-global-cfg;
} description "level-2 specific configuration";
case password { }
leaf key { description "Default metric global configuration";
type string; }
description "Authentication key specification - The container auto-cost {
length of the key may be dependent on the if-feature auto-cost;
cryptographic algorithm. In cases where it is description
not, a key length of at leawt 32 octets should be "Interface Auto-cost configuration state.";
supported to allow for interoperability with leaf enable {
type boolean;
description
"Enable/Disable interface auto-cost.";
}
leaf reference-bandwidth {
when "../enable = 'true'" {
description "Only when auto cost is enabled";
}
type uint32 {
range "1..4294967";
}
units Mbits;
description
"Configure reference bandwidth used to automatically
determine interface cost (Mbits). The cost is the
reference bandwidth divided by the interface speed
with 1 being the minimum cost.";
}
}
strong description "Grouping for global metric parameters.";
keys."; }
}
leaf crypto-algorithm {
type identityref {
base key-chain:crypto-algorithm;
}
description
"Cryptographic algorithm associated with key.";
}
}
description "Choice of authentication.";
}
description "Grouping for hello authentication.";
}
grouping hello-interval-cfg { grouping high-availability-parameters {
leaf value { container graceful-restart {
type rt-types:timer-value-seconds16; if-feature graceful-restart;
units "seconds"; leaf enable {
default 10; type boolean;
description default false;
"Interval (in seconds) between successive hello description "Enable graceful restart.";
messages."; }
} leaf restart-interval {
type rt-types:timer-value-seconds16;
units "seconds";
description
"Interval (in seconds) to attempt graceful restart prior
to failure.";
}
leaf helper-enable {
type boolean;
default true;
description
"Enable local IS-IS router as graceful restart helper.";
}
description "Graceful-Restart Configuration.";
description "Interval between hello messages."; }
} container nsr {
if-feature nsr;
description "Non-Stop Routing (NSR) configuration.";
leaf enable {
type boolean;
default false;
description "Enable/Disable Non-Stop Routing (NSR).";
}
}
description "Grouping for High Availability parameters.";
}
grouping hello-multiplier-cfg { grouping authentication-parameters {
leaf value { container authentication {
type uint16; uses authentication-global-cfg;
default 3;
description
"Number of missed hello messages prior to
declaring the adjacency down.";
}
description
"Number of missed hello messages prior to
adjacency down grouping.";
}
grouping priority-cfg { container level-1 {
leaf value { uses authentication-global-cfg;
type uint8 { description "level-1 specific configuration";
range "0 .. 127"; }
} container level-2 {
default 64; uses authentication-global-cfg;
description description "level-2 specific configuration";
"Priority of interface for DIS election."; }
} description "Authentication global configuration for
both LSPs and SNPs.";
}
description "Grouping for authentication parameters";
}
grouping address-family-parameters {
container address-families {
if-feature nlpid-control;
list address-family-list {
key address-family;
leaf address-family {
type iana-rt-types:address-family;
description "Address-family";
}
leaf enable {
type boolean;
description "Activate the address family.";
}
description
"List of address families and whether or not they
are activated.";
}
description "Address Family configuration";
description "Interface DIS election priority grouping"; }
} description "Grouping for address family parameters.";
}
grouping metric-cfg { grouping mpls-parameters {
leaf value { container mpls {
type wide-metric; container te-rid {
default "10"; if-feature te-rid;
description "Metric value."; description
} "Stable ISIS Router IP Address used for Traffic
description "Interface metric grouping"; Engineering";
} leaf ipv4-router-id {
type inet:ipv4-address;
description
"Router ID value that would be used in TLV 134.";
}
leaf ipv6-router-id {
type inet:ipv6-address;
description
"Router ID value that would be used in TLV 140.";
}
}
container ldp {
container igp-sync {
if-feature ldp-igp-sync;
description
"This container may be augmented with global
parameters for igp-ldp-sync.";
}
description "LDP configuration.";
}
description "MPLS configuration";
}
description "Grouping for MPLS global parameters.";
}
grouping metric-parameters { grouping lsp-parameters {
container metric-type { leaf lsp-mtu {
uses metric-type-global-cfg; type uint16;
container level-1 { units "bytes";
uses metric-type-global-cfg; default 1492;
description "level-1 specific configuration"; description
} "Maximum size of an LSP PDU in bytes.";
container level-2 { }
uses metric-type-global-cfg; leaf lsp-lifetime {
description "level-2 specific configuration"; type uint16 {
} range "1..65535";
description "Metric style global configuration"; }
} units "seconds";
description
"Lifetime of the router's LSPs in seconds.";
}
leaf lsp-refresh {
if-feature lsp-refresh;
type rt-types:timer-value-seconds16;
units "seconds";
description
"Refresh interval of the router's LSPs in seconds.";
}
leaf poi-tlv {
if-feature poi-tlv;
type boolean;
default false;
description
"Enable advertisement of IS-IS purge TLV.";
}
description "Grouping for LSP global parameters.";
}
grouping spf-parameters {
container spf-control {
leaf paths {
if-feature max-ecmp;
type uint16 {
range "1..32";
}
description
"Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
}
container ietf-spf-delay {
if-feature ietf-spf-delay;
uses ietf-spf-delay;
description "IETF SPF delay algorithm configuration.";
}
description
"SPF calculation control.";
}
description "Grouping for SPF global parameters.";
}
grouping instance-config {
description "IS-IS global configuration grouping";
container default-metric { uses admin-control;
uses default-metric-global-cfg;
container level-1 {
uses default-metric-global-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses default-metric-global-cfg;
description "level-2 specific configuration";
}
description "Default metric global configuration";
}
container auto-cost {
if-feature auto-cost;
description
"Interface Auto-cost configuration state.";
leaf enable {
type boolean;
description
"Enable/Disable interface auto-cost.";
}
leaf reference-bandwidth {
when "../enable = 'true'" {
description "Only when auto cost is enabled";
}
type uint32 {
range "1..4294967";
}
units Mbits;
description
"Configure reference bandwidth used to automatically
determine interface cost (Mbits). The cost is the
reference bandwidth divided by the interface speed
with 1 being the minimum cost.";
}
}
description "Grouping for global metric parameters."; leaf level-type {
} type level;
default "level-all";
description
"Level of an IS-IS node - can be level-1,
level-2 or level-all.";
}
grouping high-availability-parameters { leaf system-id {
container graceful-restart { type system-id;
if-feature graceful-restart; description "system-id of the node.";
leaf enable { }
type boolean;
default false;
description "Enable graceful restart.";
}
leaf restart-interval {
type rt-types:timer-value-seconds16;
units "seconds";
description
"Interval (in seconds) to attempt graceful restart prior
to failure.";
}
leaf helper-enable {
type boolean;
default true;
description
"Enable local IS-IS router as graceful restart helper.";
}
description "Graceful-Restart Configuration.";
}
container nsr {
if-feature nsr;
description "Non-Stop Routing (NSR) configuration.";
leaf enable {
type boolean;
default false;
description "Enable/Disable Non-Stop Routing (NSR).";
}
}
description "Grouping for High Availability parameters.";
}
grouping authentication-parameters { leaf maximum-area-addresses {
container authentication { if-feature maximum-area-addresses;
uses authentication-global-cfg; type uint8;
default 3;
description "Maximum areas supported.";
}
container level-1 { leaf-list area-address {
uses authentication-global-cfg; type area-address;
description "level-1 specific configuration"; description
} "List of areas supported by the protocol instance.";
container level-2 { }
uses authentication-global-cfg;
description "level-2 specific configuration";
}
description "Authentication global configuration for
both LSPs and SNPs.";
}
description "Grouping for authentication parameters";
}
grouping address-family-parameters {
container address-families {
if-feature nlpid-control;
list address-family-list {
key address-family;
leaf address-family {
type iana-rt-types:address-family;
description "Address-family";
}
leaf enable {
type boolean;
description "Activate the address family.";
}
description
"List of address families and whether or not they
are activated.";
}
description "Address Family configuration";
}
description "Grouping for address family parameters.";
}
grouping mpls-parameters {
container mpls {
container te-rid {
if-feature te-rid;
description
"Stable ISIS Router IP Address used for Traffic
Engineering";
leaf ipv4-router-id {
type inet:ipv4-address;
description
"Router ID value that would be used in TLV 134.";
}
leaf ipv6-router-id {
type inet:ipv6-address;
description
"Router ID value that would be used in TLV 140.";
}
}
container ldp {
container igp-sync {
if-feature ldp-igp-sync;
description
"This container may be augmented with global
parameters for igp-ldp-sync.";
}
description "LDP configuration.";
}
description "MPLS configuration";
}
description "Grouping for MPLS global parameters.";
}
grouping lsp-parameters { uses lsp-parameters;
leaf lsp-mtu { uses high-availability-parameters;
type uint16; uses node-tag-config;
units "bytes"; uses metric-parameters;
default 1492; uses authentication-parameters;
description uses address-family-parameters;
"Maximum size of an LSP PDU in bytes."; uses mpls-parameters;
} uses spf-parameters;
leaf lsp-lifetime { uses instance-fast-reroute-config;
type uint16 {
range "1..65535";
}
units "seconds";
description
"Lifetime of the router's LSPs in seconds.";
}
leaf lsp-refresh {
if-feature lsp-refresh;
type rt-types:timer-value-seconds16;
units "seconds";
description
"Refresh interval of the router's LSPs in seconds.";
}
leaf poi-tlv {
if-feature poi-tlv;
type boolean;
default false;
description
"Enable advertisement of IS-IS purge TLV.";
}
description "Grouping for LSP global parameters.";
}
grouping spf-parameters {
container spf-control {
leaf paths {
if-feature max-ecmp;
type uint16 {
range "1..32";
}
description
"Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
}
container ietf-spf-delay {
if-feature ietf-spf-delay;
uses ietf-spf-delay;
description "IETF SPF delay algorithm configuration.";
}
description
"SPF calculation control.";
}
description "Grouping for SPF global parameters.";
}
grouping instance-config {
description "IS-IS global configuration grouping";
uses admin-control; container preference {
uses route-preference-global-cfg;
description "Router preference configuration for IS-IS
protocol instance route installation";
}
leaf level-type { container overload {
type level; uses overload-global-cfg;
default "level-all"; description "Router protocol instance overload state
description configuration";
"Level of an IS-IS node - can be level-1, }
level-2 or level-all.";
}
leaf system-id {
type system-id;
description "system-id of the node.";
}
leaf maximum-area-addresses { container overload-max-metric {
if-feature maximum-area-addresses; if-feature overload-max-metric;
type uint8; uses overload-max-metric-global-cfg;
default 3; description
description "Maximum areas supported."; "Router protocol instance overload maximum
} metric advertisement configuration.";
}
}
leaf-list area-address { grouping instance-state {
type area-address; description
description "IS-IS instance operational state.";
"List of areas supported by the protocol instance."; uses spf-log;
} uses lsp-log;
uses hostname-db;
uses lsdb;
uses local-rib;
uses system-counters;
uses instance-fast-reroute-state;
}
uses lsp-parameters; grouping multi-topology-config {
uses high-availability-parameters; description "Per-topology configuration";
uses node-tag-config; container default-metric {
uses metric-parameters; uses default-metric-global-cfg;
uses authentication-parameters; container level-1 {
uses address-family-parameters; uses default-metric-global-cfg;
uses mpls-parameters; description "level-1 specific configuration";
uses spf-parameters; }
uses instance-fast-reroute-config; container level-2 {
uses default-metric-global-cfg;
description "level-2 specific configuration";
}
description "Default metric per-topology configuration";
}
uses node-tag-config;
}
container preference { grouping interface-config {
uses route-preference-global-cfg; description "Interface configuration grouping";
description "Router preference configuration for IS-IS leaf level-type {
protocol instance route installation"; type level;
} default "level-all";
description "IS-IS level of the interface.";
}
leaf lsp-pacing-interval {
type rt-types:timer-value-milliseconds;
units "milliseconds";
default 33;
description
"Interval (in milli-seconds) between LSP
transmissions.";
}
leaf lsp-retransmit-interval {
type rt-types:timer-value-seconds16;
units "seconds";
description
"Interval (in seconds) between LSP
retransmissions.";
}
leaf passive {
type boolean;
default "false";
description
"Indicates whetherthe interface is in passive mode (IS-IS
not running but network is advertised).";
}
leaf csnp-interval {
type rt-types:timer-value-seconds16;
units "seconds";
default 10;
description
"Interval (in seconds) between CSNP messages.";
}
container hello-padding {
leaf enable {
type boolean;
default "true";
description
"IS-IS Hello-padding activation - enabled by default.";
}
description "IS-IS hello padding configuration.";
}
leaf mesh-group-enable {
type mesh-group-state;
description "IS-IS interface mesh-group state";
}
leaf mesh-group {
when "../mesh-group-enable = 'mesh-set'" {
description
"Only valid when mesh-group-enable equals meshset";
}
type uint8;
description "IS-IS interface mesh-group ID.";
}
leaf interface-type {
type interface-type;
default "broadcast";
description
"Type of adjacency to be established on the interface. This
dictates the type of hello messages that are used.";
}
container overload { uses admin-control;
uses overload-global-cfg;
description "Router protocol instance overload state
configuration";
}
container overload-max-metric { leaf-list tag {
if-feature overload-max-metric; if-feature prefix-tag;
uses overload-max-metric-global-cfg; type uint32;
description description
"Router protocol instance overload maximum "List of tags associated with the interface.";
metric advertisement configuration."; }
} leaf-list tag64 {
} if-feature prefix-tag64;
grouping instance-state { type uint64;
description description
"IS-IS instance operational state."; "List of 64-bit tags associated with the interface.";
uses spf-log; }
uses lsp-log; leaf node-flag {
uses hostname-db; if-feature node-flag;
uses lsdb; type boolean;
uses local-rib; default false;
uses system-counters; description
uses instance-fast-reroute-state; "Set prefix as a node representative prefix.";
} }
container hello-authentication {
uses hello-authentication-cfg;
container level-1 {
uses hello-authentication-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses hello-authentication-cfg;
description "level-2 specific configuration";
}
description
"Authentication type to be used in hello messages.";
}
container hello-interval {
uses hello-interval-cfg;
container level-1 {
uses hello-interval-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses hello-interval-cfg;
description "level-2 specific configuration";
}
description "Interval between hello messages.";
}
container hello-multiplier {
uses hello-multiplier-cfg;
container level-1 {
uses hello-multiplier-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses hello-multiplier-cfg;
description "level-2 specific configuration";
}
description "Hello multiplier configuration.";
}
container priority {
must '../interface-type = "broadcast"' {
error-message
"Priority only applies to broadcast interfaces.";
description "Check for broadcast interface.";
}
uses priority-cfg;
container level-1 {
uses priority-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses priority-cfg;
description "level-2 specific configuration";
}
description "Priority for DIS election.";
}
container metric {
uses metric-cfg;
container level-1 {
uses metric-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses metric-cfg;
description "level-2 specific configuration";
}
description "Metric configuration.";
}
container bfd {
if-feature bfd;
description "BFD Client Configuration.";
uses bfd-types:client-cfg-parms;
reference "RFC YYYY - YANG Data Model for Bidirectional
Forwarding Detection (BFD).
grouping multi-topology-config { -- Note to RFC Editor Please replace YYYY with published RFC number
description "Per-topology configuration"; for draft-ietf-bfd-yang.";
container default-metric {
uses default-metric-global-cfg;
container level-1 {
uses default-metric-global-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses default-metric-global-cfg;
description "level-2 specific configuration";
}
description "Default metric per-topology configuration";
}
uses node-tag-config;
}
grouping interface-config { }
description "Interface configuration grouping"; container address-families {
leaf level-type { if-feature nlpid-control;
type level; list address-family-list {
default "level-all"; key address-family;
description "IS-IS level of the interface."; leaf address-family {
} type iana-rt-types:address-family;
leaf lsp-pacing-interval { description "Address-family";
type rt-types:timer-value-milliseconds; }
units "milliseconds"; description "List of AFs.";
default 33; }
description description "Interface address-families";
"Interval (in milli-seconds) between LSP }
transmissions."; container mpls {
} container ldp {
leaf lsp-retransmit-interval { leaf igp-sync {
type rt-types:timer-value-seconds16; if-feature ldp-igp-sync;
units "seconds"; type boolean;
description default false;
"Interval (in seconds) between LSP description "Enables IGP/LDP synchronization";
retransmissions."; }
} description "LDP protocol related configuration.";
leaf passive { }
type boolean; description "MPLS configuration for IS-IS interfaces";
default "false"; }
description uses interface-fast-reroute-config;
"Indicates whetherthe interface is in passive mode (IS-IS }
not running but network is advertised).";
}
leaf csnp-interval {
type rt-types:timer-value-seconds16;
units "seconds";
default 10;
description
"Interval (in seconds) between CSNP messages.";
}
container hello-padding {
leaf enable {
type boolean;
default "true";
description
"IS-IS Hello-padding activation - enabled by default.";
}
description "IS-IS hello padding configuration.";
}
leaf mesh-group-enable {
type mesh-group-state;
description "IS-IS interface mesh-group state";
}
leaf mesh-group {
when "../mesh-group-enable = 'mesh-set'" {
description
"Only valid when mesh-group-enable equals meshset";
}
type uint8;
description "IS-IS interface mesh-group ID.";
}
leaf interface-type {
type interface-type;
default "broadcast";
description
"Type of adjacency to be established on the interface. This
dictates the type of hello messages that are used.";
}
uses admin-control; grouping multi-topology-interface-config {
leaf-list tag { description "IS-IS interface topology configuration.";
if-feature prefix-tag; container metric {
type uint32; uses metric-cfg;
description container level-1 {
"List of tags associated with the interface."; uses metric-cfg;
} description "level-1 specific configuration";
leaf-list tag64 { }
if-feature prefix-tag64; container level-2 {
type uint64; uses metric-cfg;
description description "level-2 specific configuration";
"List of 64-bit tags associated with the interface."; }
} description "Metric IS-IS interface configuration.";
leaf node-flag { }
if-feature node-flag;
type boolean;
default false;
description
"Set prefix as a node representative prefix.";
}
container hello-authentication {
uses hello-authentication-cfg;
container level-1 {
uses hello-authentication-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses hello-authentication-cfg;
description "level-2 specific configuration";
}
description
"Authentication type to be used in hello messages.";
}
container hello-interval {
uses hello-interval-cfg;
container level-1 {
uses hello-interval-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses hello-interval-cfg;
description "level-2 specific configuration";
}
description "Interval between hello messages.";
}
container hello-multiplier {
uses hello-multiplier-cfg;
container level-1 {
uses hello-multiplier-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses hello-multiplier-cfg;
description "level-2 specific configuration";
}
description "Hello multiplier configuration.";
}
container priority {
must '../interface-type = "broadcast"' {
error-message
"Priority only applies to broadcast interfaces.";
description "Check for broadcast interface.";
}
uses priority-cfg;
container level-1 {
uses priority-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses priority-cfg;
description "level-2 specific configuration";
}
description "Priority for DIS election.";
}
container metric {
uses metric-cfg;
container level-1 {
uses metric-cfg;
description "level-1 specific configuration";
}
container level-2 {
uses metric-cfg;
description "level-2 specific configuration";
}
description "Metric configuration.";
}
container bfd {
if-feature bfd;
description "BFD Client Configuration.";
uses bfd-types:client-cfg-parms;
reference "RFC YYYY - YANG Data Model for Bidirectional }
Forwarding Detection (BFD). grouping interface-state {
description
"IS-IS interface operational state.";
uses adjacency-state;
uses event-counters;
uses packet-counters;
}
draft-ietf-bfd-yang."; /* Grouping for the hostname database */
}
container address-families {
if-feature nlpid-control;
list address-family-list {
key address-family;
leaf address-family {
type iana-rt-types:address-family;
description "Address-family";
}
description "List of AFs.";
}
description "Interface address-families";
}
container mpls {
container ldp {
leaf igp-sync {
if-feature ldp-igp-sync;
type boolean;
default false;
description "Enables IGP/LDP synchronization";
}
description "LDP protocol related configuration.";
}
description "MPLS configuration for IS-IS interfaces";
}
uses interface-fast-reroute-config;
}
grouping multi-topology-interface-config { grouping hostname-db {
description "IS-IS interface topology configuration."; container hostnames {
container metric { config false;
uses metric-cfg; list hostname {
container level-1 { key system-id;
uses metric-cfg; leaf system-id {
description "level-1 specific configuration"; type system-id;
} description
container level-2 { "system-id associated with the hostname.";
uses metric-cfg; }
description "level-2 specific configuration"; leaf hostname {
} type string {
description "Metric IS-IS interface configuration."; length "1..255";
} }
} description
grouping interface-state { "Hostname associated with the system-id
description as defined in RFC5301.";
"IS-IS interface operational state."; }
uses adjacency-state; description
uses event-counters; "List of system-id/hostname associations.";
uses packet-counters; }
} description
"Hostname to system-id mapping database.";
}
description
"Grouping for hostname to system-id mapping database.";
}
/* Grouping for the hostname database */ /* Groupings for counters */
grouping hostname-db { grouping system-counters {
container hostnames { container system-counters {
config false; config false;
list hostname { list level {
key system-id; key level;
leaf system-id {
type system-id;
description
"system-id associated with the hostname.";
}
leaf hostname {
type string {
length "1..255";
}
description
"Hostname associated with the system-id
as defined in RFC5301.";
}
description
"List of system-id/hostname associations.";
}
description
"Hostname to system-id mapping database.";
}
description
"Grouping for hostname to system-id mapping database.";
}
/* Groupings for counters */ leaf level {
type level-number;
description "IS-IS level.";
}
leaf corrupted-lsps {
type uint32;
description
"Number of corrupted in-memory LSPs detected.
LSPs received from the wire with a bad
checksum are silently dropped and not counted.
LSPs received from the wire with parse errors
are counted by lsp-errors.";
}
leaf authentication-type-fails {
type uint32;
description
"Number of authentication type mismatches.";
}
leaf authentication-fails {
type uint32;
description
"Number of authentication key failures.";
}
leaf database-overload {
type uint32;
description
"Number of times the database has become
overloaded.";
}
leaf own-lsp-purge {
type uint32;
description
"Number of times a zero-aged copy of the system's
own LSP is received from some other IS-IS node.";
}
leaf manual-address-drop-from-area {
type uint32;
description
"Number of times a manual address
has been dropped from the area.";
}
leaf max-sequence {
type uint32;
description
"Number of times the system has attempted
to exceed the maximum sequence number.";
}
leaf sequence-number-skipped {
type uint32;
description
"Number of times a sequence number skip has
occured.";
}
leaf id-len-mismatch {
type uint32;
description
"Number of times a PDU is received with a
different value for the ID field length
than that of the receiving system.";
}
leaf partition-changes {
type uint32;
description
"Number of partition changes detected.";
}
leaf lsp-errors {
type uint32;
description
"Number of LSPs with errors we have received.";
}
leaf spf-runs {
type uint32;
description
"Number of times we ran SPF at this level.";
}
description
"List of supported levels.";
}
description
"List counters for the IS-IS protocol instance";
}
description "System counters grouping.";
}
grouping system-counters { grouping event-counters {
container system-counters { container event-counters {
config false; config false;
list level { leaf adjacency-changes {
key level; type uint32;
description
"The number of times an adjacency state change has
occured on this interface.";
}
leaf adjacency-number {
type uint32;
description
"The number of adjacencies on this interface.";
leaf level { }
type level-number; leaf init-fails {
description "IS-IS level."; type uint32;
} description
leaf corrupted-lsps { "The number of times initialization of this
type uint32; interface has failed. This counts events such
description as PPP NCP failures. Failures to form an
"Number of corrupted in-memory LSPs detected. adjacency are counted by adjacency-rejects.";
LSPs received from the wire with a bad }
checksum are silently dropped and not counted. leaf adjacency-rejects {
LSPs received from the wire with parse errors type uint32;
are counted by lsp-errors."; description
} "The number of times an adjacency has been
leaf authentication-type-fails { rejected on this interface.";
type uint32; }
description leaf id-len-mismatch {
type uint32;
description
"The number of times an IS-IS PDU with an ID
field length different from that for this
system has been received on this interface.";
}
leaf max-area-addresses-mismatch {
type uint32;
description
"The number of times an IS-IS PDU has been
received on this interface with the
max area address field differing from that of
this system.";
}
leaf authentication-type-fails {
type uint32;
description
"Number of authentication type mismatches."; "Number of authentication type mismatches.";
} }
leaf authentication-fails { leaf authentication-fails {
type uint32; type uint32;
description description
"Number of authentication key failures."; "Number of authentication key failures.";
} }
leaf database-overload { leaf lan-dis-changes {
type uint32; type uint32;
description description
"Number of times the database has become "The number of times the DIS has changed on this
overloaded."; interface at this level. If the interface type is
} point-to-point,the count is zero.";
leaf own-lsp-purge { }
type uint32; description "IS-IS interface event counters.";
description
"Number of times a zero-aged copy of the system's
own LSP is received from some other IS-IS node.";
}
leaf manual-address-drop-from-area {
type uint32;
description
"Number of times a manual address
has been dropped from the area.";
}
leaf max-sequence {
type uint32;
description
"Number of times the system has attempted
to exceed the maximum sequence number.";
}
leaf sequence-number-skipped {
type uint32;
description
"Number of times a sequence number skip has
occured.";
}
leaf id-len-mismatch {
type uint32;
description
"Number of times a PDU is received with a
different value for the ID field length
than that of the receiving system.";
}
leaf partition-changes {
type uint32;
description
"Number of partition changes detected.";
}
leaf lsp-errors {
type uint32;
description
"Number of LSPs with errors we have received.";
}
leaf spf-runs {
type uint32;
description
"Number of times we ran SPF at this level.";
}
description
"List of supported levels.";
}
description
"List counters for the IS-IS protocol instance";
}
description "System counters grouping.";
}
grouping event-counters {
container event-counters {
config false;
leaf adjacency-changes {
type uint32;
description
"The number of times an adjacency state change has
occured on this interface.";
}
leaf adjacency-number {
type uint32;
description
"The number of adjacencies on this interface.";
}
leaf init-fails {
type uint32;
description
"The number of times initialization of this
interface has failed. This counts events such
as PPP NCP failures. Failures to form an
adjacency are counted by adjacency-rejects.";
}
leaf adjacency-rejects {
type uint32;
description
"The number of times an adjacency has been
rejected on this interface.";
}
leaf id-len-mismatch {
type uint32;
description
"The number of times an IS-IS PDU with an ID
field length different from that for this
system has been received on this interface.";
}
leaf max-area-addresses-mismatch {
type uint32;
description
"The number of times an IS-IS PDU has been
received on this interface with the
max area address field differing from that of
this system.";
}
leaf authentication-type-fails {
type uint32;
description
"Number of authentication type mismatches.";
}
leaf authentication-fails {
type uint32;
description
"Number of authentication key failures.";
}
leaf lan-dis-changes {
type uint32;
description
"The number of times the DIS has changed on this
interface at this level. If the interface type is
point-to-point,the count is zero.";
}
description "IS-IS interface event counters.";
}
description
"Grouping for IS-IS interface event counters";
}
grouping packet-counters { }
container packet-counters { description
config false; "Grouping for IS-IS interface event counters";
list level { }
key level;
leaf level { grouping packet-counters {
type level-number; container packet-counters {
description "IS-IS level."; config false;
} list level {
container iih { key level;
leaf in {
type uint32;
description "Received IIH PDUs.";
}
leaf out {
type uint32;
description "Sent IIH PDUs.";
}
description "Number of IIH PDUs received/sent.";
}
container ish {
leaf in {
type uint32;
description "Received ISH PDUs.";
}
leaf out {
type uint32;
description "Sent ISH PDUs.";
}
description
"ISH PDUs received/sent.";
}
container esh {
leaf in {
type uint32;
description "Received ESH PDUs.";
}
leaf out {
type uint32;
description "Sent ESH PDUs.";
}
description "Number of ESH PDUs received/sent.";
}
container lsp {
leaf in {
type uint32;
description "Received LSP PDUs.";
}
leaf out {
type uint32;
description "Sent LSP PDUs.";
}
description "Number of LSP PDUs received/sent.";
}
container psnp {
leaf in {
type uint32;
description "Received PSNP PDUs.";
}
leaf out {
type uint32;
description "Sent PSNP PDUs.";
}
description "Number of PSNP PDUs received/sent.";
}
container csnp {
leaf in {
type uint32;
description "Received CSNP PDUs.";
}
leaf out {
type uint32;
description "Sent CSNP PDUs.";
}
description "Number of CSNP PDUs received/sent.";
}
container unknown {
leaf in {
type uint32;
description "Received unknown PDUs.";
}
leaf out {
type uint32;
description "Sent unknown PDUs.";
}
description "Number of unknown PDUs received/sent.";
}
description
"List of packet counter for supported llevels.";
}
description "Packet counters per IS-IS level.";
}
description
"Grouping for per IS-IS Level packet counters.";
}
/* Groupings for various log buffers */
grouping spf-log {
container spf-log {
config false;
list event {
key id;
leaf id { leaf level {
type uint32; type level-number;
description description "IS-IS level.";
"Event identifier - purely internal value."; }
} container iih {
leaf spf-type { leaf in {
type enumeration { type uint32;
enum full { description "Received IIH PDUs.";
description "Full SPF computation."; }
} leaf out {
enum route-only { type uint32;
description description "Sent IIH PDUs.";
"Route reachability only SPF computation"; }
} description "Number of IIH PDUs received/sent.";
} }
description "Type of SPF computation performed."; container ish {
} leaf in {
leaf level { type uint32;
type level-number; description "Received ISH PDUs.";
description }
"IS-IS level number for SPF computation"; leaf out {
} type uint32;
leaf schedule-timestamp { description "Sent ISH PDUs.";
type yang:timestamp; }
description description
"Timestamp of when the SPF computation was "ISH PDUs received/sent.";
scheduled."; }
} container esh {
leaf start-timestamp { leaf in {
type yang:timestamp; type uint32;
description description "Received ESH PDUs.";
"Timestamp of when the SPF computation started."; }
} leaf out {
leaf end-timestamp { type uint32;
type yang:timestamp; description "Sent ESH PDUs.";
description }
"Timestamp of when the SPF computation ended."; description "Number of ESH PDUs received/sent.";
}
list trigger-lsp {
key "lsp";
leaf lsp {
type lsp-id;
description
"LSP ID of the LSP triggering SPF computation.";
}
leaf sequence {
type uint32;
description
"Sequence number of the LSP triggering SPF
computation";
}
description
"This list includes the LSPs that triggered the
SPF computation.";
}
description
"List of computation events - implemented as a
wrapping buffer.";
}
description }
"This container lists the SPF computation events."; container lsp {
} leaf in {
description "Grouping for spf-log events."; type uint32;
} description "Received LSP PDUs.";
}
leaf out {
type uint32;
description "Sent LSP PDUs.";
}
description "Number of LSP PDUs received/sent.";
}
container psnp {
leaf in {
type uint32;
description "Received PSNP PDUs.";
}
leaf out {
type uint32;
description "Sent PSNP PDUs.";
}
description "Number of PSNP PDUs received/sent.";
}
container csnp {
leaf in {
type uint32;
description "Received CSNP PDUs.";
}
leaf out {
type uint32;
description "Sent CSNP PDUs.";
}
description "Number of CSNP PDUs received/sent.";
}
container unknown {
leaf in {
type uint32;
description "Received unknown PDUs.";
}
leaf out {
type uint32;
description "Sent unknown PDUs.";
}
description "Number of unknown PDUs received/sent.";
}
description
"List of packet counter for supported llevels.";
}
description "Packet counters per IS-IS level.";
}
description
"Grouping for per IS-IS Level packet counters.";
}
grouping lsp-log { /* Groupings for various log buffers */
container lsp-log { grouping spf-log {
config false; container spf-log {
list event { config false;
key id; list event {
key id;
leaf id { leaf id {
type uint32; type uint32;
description description
"Event identifier - purely internal value."; "Event identifier - purely internal value.";
} }
leaf level { leaf spf-type {
type level-number; type enumeration {
description enum full {
"IS-IS level number for LSP"; description "Full SPF computation.";
} }
container lsp { enum route-only {
leaf lsp { description
type lsp-id; "Route reachability only SPF computation";
description }
"LSP ID of the LSP."; }
} description "Type of SPF computation performed.";
leaf sequence { }
type uint32; leaf level {
description type level-number;
"Sequence number of the LSP."; description
} "IS-IS level number for SPF computation";
description }
"LSP identification container - either the received leaf schedule-timestamp {
LSP or the locally generated LSP."; type yang:timestamp;
} description
"Timestamp of when the SPF computation was
scheduled.";
}
leaf start-timestamp {
type yang:timestamp;
description
"Timestamp of when the SPF computation started.";
}
leaf end-timestamp {
type yang:timestamp;
description
"Timestamp of when the SPF computation ended.";
}
list trigger-lsp {
key "lsp";
leaf lsp {
type lsp-id;
description
"LSP ID of the LSP triggering SPF computation.";
}
leaf sequence {
type uint32;
description
"Sequence number of the LSP triggering SPF
computation";
}
description
"This list includes the LSPs that triggered the
SPF computation.";
}
description
"List of computation events - implemented as a
wrapping buffer.";
}
leaf received-timestamp { description
type yang:timestamp; "This container lists the SPF computation events.";
description }
"This is the timestamp when the LSA was received. description "Grouping for spf-log events.";
In case of local LSA update, the timestamp refers }
to the LSA origination time.";
}
leaf reason { grouping lsp-log {
type identityref { container lsp-log {
base lsp-log-reason; config false;
} list event {
description "Type of LSP change."; key id;
}
description leaf id {
"List of LSP events - implemented as a type uint32;
wrapping buffer."; description
} "Event identifier - purely internal value.";
}
leaf level {
type level-number;
description
"IS-IS level number for LSP";
}
container lsp {
leaf lsp {
type lsp-id;
description
"LSP ID of the LSP.";
}
leaf sequence {
type uint32;
description
"Sequence number of the LSP.";
}
description
"LSP identification container - either the received
LSP or the locally generated LSP.";
}
description leaf received-timestamp {
"This container lists the LSP log. type yang:timestamp;
Local LSP modifications are also included description
in the list."; "This is the timestamp when the LSA was received.
In case of local LSA update, the timestamp refers
to the LSA origination time.";
}
} description "Grouping for LSP log."; leaf reason {
} type identityref {
base lsp-log-reason;
}
description "Type of LSP change.";
}
/* Groupings for the LSDB description */ description
"List of LSP events - implemented as a
wrapping buffer.";
}
/* Unknown TLV and subTLV description */ description
grouping tlv { "This container lists the LSP log.
description Local LSP modifications are also included
"Type-Length-Value (TLV)"; in the list.";
leaf type {
type uint16;
description "TLV type.";
} } description "Grouping for LSP log.";
leaf length { }
type uint16;
description "TLV length (octets).";
}
leaf value {
type yang:hex-string;
description "TLV value.";
}
}
grouping unknown-tlvs { /* Groupings for the LSDB description */
description
"Unknown TLVs grouping - Used for unknown TLVs or
unknown sub-TLVs.";
container unknown-tlvs {
description "All unknown TLVs.";
list unknown-tlv {
description "Unknown TLV.";
uses tlv;
}
}
}
/* TLVs and subTLVs for prefixes */ /* Unknown TLV and subTLV description */
grouping tlv {
description
"Type-Length-Value (TLV)";
leaf type {
type uint16;
description "TLV type.";
}
leaf length {
type uint16;
description "TLV length (octets).";
}
leaf value {
type yang:hex-string;
description "TLV value.";
}
}
grouping prefix-reachability-attributes { grouping unknown-tlvs {
description description
"Grouping for extended reachability attributes of an "Unknown TLVs grouping - Used for unknown TLVs or
IPv4 or IPv6 prefix."; unknown sub-TLVs.";
container unknown-tlvs {
description "All unknown TLVs.";
list unknown-tlv {
description "Unknown TLV.";
uses tlv;
}
}
}
leaf external-prefix-flag { /* TLVs and subTLVs for prefixes */
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 { grouping prefix-reachability-attributes {
description description
"Grouping for the IPv4 source router ID of a prefix "Grouping for extended reachability attributes of an
advertisement."; IPv4 or IPv6 prefix.";
leaf ipv4-source-router-id { leaf external-prefix-flag {
type inet:ipv4-address; type boolean;
description "IPv4 Source router ID address."; description "External prefix flag.";
} }
} leaf readvertisement-flag {
type boolean;
description "Readvertisement flag.";
}
leaf node-flag {
type boolean;
description "Node flag.";
grouping prefix-ipv6-source-router-id { }
description }
"Grouping for the IPv6 source router ID of a prefix
advertisement.";
leaf ipv6-source-router-id { grouping prefix-ipv4-source-router-id {
type inet:ipv6-address; description
description "IPv6 Source router ID address."; "Grouping for the IPv4 source router ID of a prefix
} advertisement.";
}
grouping prefix-attributes-extension { leaf ipv4-source-router-id {
description "Prefix extended attributes type inet:ipv4-address;
as defined in RFC7794."; description "IPv4 Source router ID address.";
}
}
uses prefix-reachability-attributes; grouping prefix-ipv6-source-router-id {
uses prefix-ipv4-source-router-id; description
uses prefix-ipv6-source-router-id; "Grouping for the IPv6 source router ID of a prefix
} advertisement.";
grouping prefix-ipv4-std { leaf ipv6-source-router-id {
description type inet:ipv6-address;
"Grouping for attributes of an IPv4 standard prefix description "IPv6 Source router ID address.";
as defined in RFC1195."; }
leaf ip-prefix { }
type inet:ipv4-address;
description "IPv4 prefix address";
}
leaf prefix-len {
type uint8;
description "IPv4 prefix length (in bits)";
}
leaf i-e {
type boolean;
description "Internal or External (I/E) Metric bit value.";
}
container default-metric {
leaf metric {
type std-metric;
description "Default IS-IS metric for IPv4 prefix";
} grouping prefix-attributes-extension {
description "IS-IS default metric container."; description "Prefix extended attributes
} as defined in RFC7794.";
container delay-metric {
leaf metric {
type std-metric;
description "IS-IS delay metric for IPv4 prefix";
}
leaf supported {
type boolean;
default "false";
description
"Indicates whether IS-IS delay metric is supported.";
}
description "IS-IS delay metric container.";
}
container expense-metric {
leaf metric {
type std-metric;
description "IS-IS expense metric for IPv4 prefix";
}
leaf supported {
type boolean;
default "false";
description
"Indicates whether IS-IS delay metric is supported.";
}
description "IS-IS expense metric container.";
}
container error-metric {
leaf metric {
type std-metric;
description
"This leaf describes the IS-IS error metric value";
}
leaf supported {
type boolean;
default "false";
description "IS-IS error metric for IPv4 prefix";
}
description "IS-IS error metric container.";
}
}
grouping prefix-ipv4-extended { uses prefix-reachability-attributes;
description uses prefix-ipv4-source-router-id;
"Grouping for attributes of an IPv4 extended prefix uses prefix-ipv6-source-router-id;
as defined in RFC5305."; }
leaf up-down { grouping prefix-ipv4-std {
type boolean; description
description "Value of up/down bit."; "Grouping for attributes of an IPv4 standard prefix
} as defined in RFC1195.";
leaf ip-prefix { leaf ip-prefix {
type inet:ipv4-address; type inet:ipv4-address;
description "IPv4 prefix address"; description "IPv4 prefix address";
} }
leaf prefix-len { leaf prefix-len {
type uint8; type uint8;
description "IPv4 prefix length (in bits)"; description "IPv4 prefix length (in bits)";
} }
leaf metric { leaf i-e {
type wide-metric; type boolean;
description "IS-IS wide metric value"; description "Internal or External (I/E) Metric bit value.";
} }
leaf-list tag { container default-metric {
type uint32; leaf metric {
description type std-metric;
"List of 32-bit tags associated with the IPv4 prefix."; description "Default IS-IS metric for IPv4 prefix";
} }
leaf-list tag64 { description "IS-IS default metric container.";
type uint64; }
description container delay-metric {
"List of 32-bit tags associated with the IPv4 prefix."; leaf metric {
} type std-metric;
uses prefix-attributes-extension; description "IS-IS delay metric for IPv4 prefix";
} }
leaf supported {
type boolean;
default "false";
description
"Indicates whether IS-IS delay metric is supported.";
}
description "IS-IS delay metric container.";
}
container expense-metric {
leaf metric {
type std-metric;
description "IS-IS expense metric for IPv4 prefix";
}
leaf supported {
type boolean;
default "false";
description
"Indicates whether IS-IS delay metric is supported.";
}
description "IS-IS expense metric container.";
}
container error-metric {
leaf metric {
type std-metric;
description
"This leaf describes the IS-IS error metric value";
}
leaf supported {
type boolean;
default "false";
description "IS-IS error metric for IPv4 prefix";
}
description "IS-IS error metric container.";
}
grouping prefix-ipv6-extended { }
description "Grouping for attributes of an IPv6 prefix
as defined in RFC5308.";
leaf up-down {
type boolean;
description "Value of up/down bit.";
}
leaf ip-prefix {
type inet:ipv6-address;
description "IPv6 prefix address";
}
leaf prefix-len {
type uint8;
description "IPv4 prefix length (in bits)";
}
leaf metric {
type wide-metric;
description "IS-IS wide metric value";
}
leaf-list tag {
type uint32;
description
"List of 32-bit tags associated with the IPv4 prefix.";
}
leaf-list tag64 {
type uint64;
description
"List of 32-bit tags associated with the IPv4 prefix.";
}
uses prefix-attributes-extension;
}
/* TLVs and subTLVs for neighbors */ grouping prefix-ipv4-extended {
description
"Grouping for attributes of an IPv4 extended prefix
as defined in RFC5305.";
leaf up-down {
type boolean;
description "Value of up/down bit.";
}
leaf ip-prefix {
type inet:ipv4-address;
description "IPv4 prefix address";
}
leaf prefix-len {
type uint8;
description "IPv4 prefix length (in bits)";
}
leaf metric {
type wide-metric;
description "IS-IS wide metric value";
}
leaf-list tag {
type uint32;
description
"List of 32-bit tags associated with the IPv4 prefix.";
}
leaf-list tag64 {
type uint64;
description
"List of 32-bit tags associated with the IPv4 prefix.";
}
uses prefix-attributes-extension;
}
grouping neighbor-link-attributes { grouping prefix-ipv6-extended {
description description "Grouping for attributes of an IPv6 prefix
"Grouping for link attributes as defined as defined in RFC5308.";
in RFC5029"; leaf up-down {
leaf link-attributes-flags { type boolean;
type uint16; description "Value of up/down bit.";
description }
"Flags for the link attributes"; leaf ip-prefix {
} type inet:ipv6-address;
} description "IPv6 prefix address";
grouping neighbor-gmpls-extensions { }
description leaf prefix-len {
"Grouping for GMPLS attributes of a neighbor as defined type uint8;
in RFC5307"; description "IPv4 prefix length (in bits)";
leaf link-local-id { }
type uint32; leaf metric {
description type wide-metric;
"Local identifier of the link."; description "IS-IS wide metric value";
} }
leaf remote-local-id { leaf-list tag {
type uint32; type uint32;
description description
"Remote identifier of the link."; "List of 32-bit tags associated with the IPv4 prefix.";
} }
leaf protection-capability { leaf-list tag64 {
type uint8; type uint64;
description description
"Describes the protection capabilities "List of 32-bit tags associated with the IPv4 prefix.";
of the link. This is the value of the }
first octet of the sub-TLV type 20 value."; uses prefix-attributes-extension;
} }
container interface-switching-capability {
description
"Interface switching capabilities of the link.";
leaf switching-capability {
type uint8;
description
"Switching capability of the link.";
}
leaf encoding {
type uint8;
description
"Type of encoding of the LSP being used.";
}
container max-lsp-bandwidths {
description "Per priority max LSP bandwidths.";
list max-lsp-bandwidth {
leaf priority {
type uint8 {
range "0 .. 7";
}
description "Priority from 0 to 7.";
}
leaf bandwidth {
type rt-types:bandwidth-ieee-float32;
description "max LSP bandwidth.";
}
description
"List of max LSP bandwidths for different
priorities.";
}
}
container tdm-specific {
when "../switching-capability = 100";
description
"Switching Capability-specific information applicable
when switching type is TDM.";
leaf minimum-lsp-bandwidth { /* TLVs and subTLVs for neighbors */
type rt-types:bandwidth-ieee-float32;
description "minimum LSP bandwidth.";
}
leaf indication {
type uint8;
description
"The indication whether the interface supports Standard
or Arbitrary SONET/SDH.";
}
}
container psc-specific {
when "../switching-capability >= 1 and
../switching-capability <= 4"; grouping neighbor-link-attributes {
description description
"Switching Capability-specific information applicable "Grouping for link attributes as defined
when switching type is PSC1,PSC2,PSC3 or PSC4."; in RFC5029";
leaf link-attributes-flags {
type uint16;
description
"Flags for the link attributes";
}
}
grouping neighbor-gmpls-extensions {
description
"Grouping for GMPLS attributes of a neighbor as defined
in RFC5307";
leaf link-local-id {
type uint32;
description
"Local identifier of the link.";
}
leaf remote-local-id {
type uint32;
description
"Remote identifier of the link.";
}
leaf protection-capability {
type uint8;
description
"Describes the protection capabilities
of the link. This is the value of the
first octet of the sub-TLV type 20 value.";
}
container interface-switching-capability {
description
"Interface switching capabilities of the link.";
leaf switching-capability {
type uint8;
description
"Switching capability of the link.";
}
leaf encoding {
type uint8;
description
"Type of encoding of the LSP being used.";
}
container max-lsp-bandwidths {
description "Per priority max LSP bandwidths.";
list max-lsp-bandwidth {
leaf priority {
type uint8 {
range "0 .. 7";
}
description "Priority from 0 to 7.";
}
leaf bandwidth {
type rt-types:bandwidth-ieee-float32;
description "max LSP bandwidth.";
}
description
"List of max LSP bandwidths for different
priorities.";
}
}
container tdm-specific {
when "../switching-capability = 100";
description
"Switching Capability-specific information applicable
when switching type is TDM.";
leaf minimum-lsp-bandwidth { leaf minimum-lsp-bandwidth {
type rt-types:bandwidth-ieee-float32; type rt-types:bandwidth-ieee-float32;
description "minimum LSP bandwidth."; description "minimum LSP bandwidth.";
} }
leaf mtu { leaf indication {
type uint16; type uint8;
units bytes; description
description "The indication whether the interface supports Standard
"Interface MTU"; or Arbitrary SONET/SDH.";
} }
} }
} container psc-specific {
} when "../switching-capability >= 1 and
../switching-capability <= 4";
description
"Switching Capability-specific information applicable
when switching type is PSC1,PSC2,PSC3 or PSC4.";
grouping neighbor-extended-te-extensions { leaf minimum-lsp-bandwidth {
description type rt-types:bandwidth-ieee-float32;
"Grouping for TE attributes of a neighbor as defined description "minimum LSP bandwidth.";
in RFC7810"; }
leaf mtu {
type uint16;
units bytes;
description
"Interface MTU";
}
}
}
}
container unidirectional-link-delay { grouping neighbor-extended-te-extensions {
description description
"Container for the average delay "Grouping for TE attributes of a neighbor as defined
from the local neighbor to the remote one."; in RFC7810";
leaf flags {
type bits {
bit A {
position 7;
description
"The A bit represents the Anomalous (A) bit.
The A bit is set when the measured value of
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
}
description
"Flags.";
}
leaf value {
type uint32;
units usec;
description
"Delay value expressed in microseconds.";
}
}
container min-max-unidirectional-link-delay {
description
"Container for the min and max delay
from the local neighbor to the remote one.";
leaf flags {
type bits {
bit A {
position 7;
description
"The A bit represents the Anomalous (A) bit.
The A bit is set when the measured value of
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
}
description
"Flags.";
}
leaf min-value {
type uint32;
units usec;
description
"Minimum delay value expressed in microseconds.";
}
leaf max-value {
type uint32;
units usec;
description
"Maximum delay value expressed in microseconds.";
}
}
container unidirectional-link-delay-variation {
description
"Container for the average delay variation
from the local neighbor to the remote one.";
leaf value {
type uint32;
units usec;
description
"Delay variation value expressed in microseconds.";
}
}
container unidirectional-link-loss{
description
"Container for the packet loss
from the local neighbor to the remote one.";
leaf flags {
type bits {
bit A {
position 7;
description
"The A bit represents the Anomalous (A) bit.
The A bit is set when the measured value of
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
}
description
"Flags.";
}
leaf value {
type uint32;
units percent;
description
"Link packet loss expressed as a percentage
of the total traffic sent over a configurable interval.";
}
}
container unidirectional-link-residual-bandwidth {
description
"Container for the residual bandwidth
from the local neighbor to the remote one.";
leaf value {
type rt-types:bandwidth-ieee-float32;
units Bps;
description
"Residual bandwidth.";
}
}
container unidirectional-link-available-bandwidth {
description
"Container for the available bandwidth
from the local neighbor to the remote one.";
leaf value { container unidirectional-link-delay {
type rt-types:bandwidth-ieee-float32; description
units Bps; "Container for the average delay
description from the local neighbor to the remote one.";
"Available bandwidth."; leaf flags {
} type bits {
} bit A {
container unidirectional-link-utilized-bandwidth { position 7;
description description
"Container for the utilized bandwidth "The A bit represents the Anomalous (A) bit.
from the local neighbor to the remote one."; The A bit is set when the measured value of
leaf value { this parameter exceeds its configured
type rt-types:bandwidth-ieee-float32; maximum threshold.
units Bps; The A bit is cleared when the measured value
description falls below its configured reuse threshold.
"Utilized bandwidth."; If the A bit is clear,
} the value represents steady-state link performance.";
} }
}
grouping neighbor-te-extensions { }
description description
"Grouping for TE attributes of a neighbor as defined "Flags.";
in RFC5305"; }
leaf admin-group { leaf value {
type uint32; type uint32;
description units usec;
"Administrative group/Resource Class/Color."; description
} "Delay value expressed in microseconds.";
container local-if-ipv4-addrs { }
description "All local interface IPv4 addresses."; }
leaf-list local-if-ipv4-addr { container min-max-unidirectional-link-delay {
type inet:ipv4-address; description
description "Container for the min and max delay
"List of local interface IPv4 addresses."; from the local neighbor to the remote one.";
} leaf flags {
} type bits {
container remote-if-ipv4-addrs { bit A {
description "All remote interface IPv4 addresses."; position 7;
leaf-list remote-if-ipv4-addr { description
type inet:ipv4-address; "The A bit represents the Anomalous (A) bit.
description The A bit is set when the measured value of
"List of remote interface IPv4 addresses."; this parameter exceeds its configured
} maximum threshold.
} The A bit is cleared when the measured value
leaf te-metric { falls below its configured reuse threshold.
type uint32; If the A bit is clear,
description "TE metric."; the value represents steady-state link performance.";
}
}
description
"Flags.";
}
leaf min-value {
type uint32;
units usec;
description
"Minimum delay value expressed in microseconds.";
}
leaf max-value {
type uint32;
units usec;
description
"Maximum delay value expressed in microseconds.";
}
}
container unidirectional-link-delay-variation {
description
"Container for the average delay variation
from the local neighbor to the remote one.";
leaf value {
type uint32;
units usec;
description
"Delay variation value expressed in microseconds.";
}
}
container unidirectional-link-loss{
description
"Container for the packet loss
from the local neighbor to the remote one.";
leaf flags {
type bits {
bit A {
position 7;
description
"The A bit represents the Anomalous (A) bit.
The A bit is set when the measured value of
this parameter exceeds its configured
maximum threshold.
The A bit is cleared when the measured value
falls below its configured reuse threshold.
If the A bit is clear,
the value represents steady-state link performance.";
}
}
description
"Flags.";
}
leaf value {
type uint32;
units percent;
description
"Link packet loss expressed as a percentage
of the total traffic sent over a configurable interval.";
}
}
container unidirectional-link-residual-bandwidth {
description
"Container for the residual bandwidth
from the local neighbor to the remote one.";
leaf value {
type rt-types:bandwidth-ieee-float32;
units Bps;
description
"Residual bandwidth.";
} }
leaf max-bandwidth { }
type rt-types:bandwidth-ieee-float32; container unidirectional-link-available-bandwidth {
description "Maximum bandwidth."; description
} "Container for the available bandwidth
leaf max-reservable-bandwidth { from the local neighbor to the remote one.";
type rt-types:bandwidth-ieee-float32; leaf value {
description "Maximum reservable bandwidth."; type rt-types:bandwidth-ieee-float32;
} units Bps;
container unreserved-bandwidths { description
description "All unreserved bandwidths."; "Available bandwidth.";
list unreserved-bandwidth { }
leaf priority { }
type uint8 { container unidirectional-link-utilized-bandwidth {
range "0 .. 7"; description
} "Container for the utilized bandwidth
description "Priority from 0 to 7."; from the local neighbor to the remote one.";
} leaf value {
leaf unreserved-bandwidth { type rt-types:bandwidth-ieee-float32;
type rt-types:bandwidth-ieee-float32; units Bps;
description "Unreserved bandwidth."; description
} "Utilized bandwidth.";
description }
"List of unreserved bandwidths for different }
priorities."; }
}
}
}
grouping neighbor-extended { grouping neighbor-te-extensions {
description description
"Grouping for attributes of an IS-IS extended neighbor."; "Grouping for TE attributes of a neighbor as defined
leaf neighbor-id { in RFC5305";
type extended-system-id; leaf admin-group {
description "system-id of the extended neighbor."; type uint32;
} description
container instances { "Administrative group/Resource Class/Color.";
description "List of all adjacencies between the local }
system and the neighbor system-id."; container local-if-ipv4-addrs {
list instance { description "All local interface IPv4 addresses.";
key id; leaf-list local-if-ipv4-addr {
type inet:ipv4-address;
description
"List of local interface IPv4 addresses.";
}
}
container remote-if-ipv4-addrs {
description "All remote interface IPv4 addresses.";
leaf-list remote-if-ipv4-addr {
type inet:ipv4-address;
description
"List of remote interface IPv4 addresses.";
}
}
leaf te-metric {
type uint32;
description "TE metric.";
}
leaf max-bandwidth {
type rt-types:bandwidth-ieee-float32;
description "Maximum bandwidth.";
}
leaf max-reservable-bandwidth {
type rt-types:bandwidth-ieee-float32;
description "Maximum reservable bandwidth.";
}
container unreserved-bandwidths {
description "All unreserved bandwidths.";
list unreserved-bandwidth {
leaf priority {
type uint8 {
range "0 .. 7";
}
description "Priority from 0 to 7.";
}
leaf unreserved-bandwidth {
type rt-types:bandwidth-ieee-float32;
description "Unreserved bandwidth.";
}
description
"List of unreserved bandwidths for different
priorities.";
}
}
}
leaf id { grouping neighbor-extended {
type uint32; description
description "Unique identifier of an instance of a "Grouping for attributes of an IS-IS extended neighbor.";
particular neighbor."; leaf neighbor-id {
} type extended-system-id;
leaf metric { description "system-id of the extended neighbor.";
type wide-metric; }
description "IS-IS wide metric for extended neighbor"; container instances {
} description "List of all adjacencies between the local
uses neighbor-gmpls-extensions; system and the neighbor system-id.";
uses neighbor-te-extensions; list instance {
uses neighbor-extended-te-extensions; key id;
uses neighbor-link-attributes; leaf id {
uses unknown-tlvs; type uint32;
description "Instance of a particular adjacency."; description "Unique identifier of an instance of a
} particular neighbor.";
} }
} leaf metric {
type wide-metric;
description "IS-IS wide metric for extended neighbor";
}
uses neighbor-gmpls-extensions;
uses neighbor-te-extensions;
uses neighbor-extended-te-extensions;
uses neighbor-link-attributes;
uses unknown-tlvs;
description "Instance of a particular adjacency.";
}
}
}
grouping neighbor { grouping neighbor {
description "IS-IS standard neighbor grouping."; description "IS-IS standard neighbor grouping.";
leaf neighbor-id { leaf neighbor-id {
type extended-system-id; type extended-system-id;
description "IS-IS neighbor system-id"; description "IS-IS neighbor system-id";
} }
container instances { container instances {
description "List of all adjacencies between the local description "List of all adjacencies between the local
system and the neighbor system-id."; system and the neighbor system-id.";
list instance { list instance {
key id; key id;
leaf id { leaf id {
type uint32; type uint32;
description "Unique identifier of an instance of a description "Unique identifier of an instance of a
particular neighbor."; particular neighbor.";
} }
leaf i-e { leaf i-e {
type boolean; type boolean;
description description
"Internal or External (I/E) Metric bit value"; "Internal or External (I/E) Metric bit value";
} }
container default-metric { container default-metric {
leaf metric { leaf metric {
type std-metric; type std-metric;
description "IS-IS default metric value"; description "IS-IS default metric value";
} }
description "IS-IS default metric container"; description "IS-IS default metric container";
} }
container delay-metric { container delay-metric {
leaf metric { leaf metric {
type std-metric; type std-metric;
description "IS-IS delay metric value"; description "IS-IS delay metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description "IS-IS delay metric supported"; description "IS-IS delay metric supported";
} }
description "IS-IS delay metric container"; description "IS-IS delay metric container";
} }
container expense-metric { container expense-metric {
leaf metric { leaf metric {
type std-metric; type std-metric;
description "IS-IS delay expense metric value"; description "IS-IS delay expense metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description "IS-IS delay expense metric supported"; description "IS-IS delay expense metric supported";
} }
description "IS-IS delay expense metric container"; description "IS-IS delay expense metric container";
} }
container error-metric { container error-metric {
leaf metric { leaf metric {
type std-metric; type std-metric;
description "IS-IS error metric value"; description "IS-IS error metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description "IS-IS error metric supported"; description "IS-IS error metric supported";
} }
description "IS-IS error metric container"; description "IS-IS error metric container";
} }
description "Instance of a particular adjacency description "Instance of a particular adjacency
as defined in ISO10589."; as defined in ISO10589.";
} }
} }
} }
/* Top level TLVs */ /* Top level TLVs */
grouping tlv132-ipv4-addresses { grouping tlv132-ipv4-addresses {
leaf-list ipv4-addresses { leaf-list ipv4-addresses {
type inet:ipv4-address; type inet:ipv4-address;
description description
"List of IPv4 addresses of the IS-IS node - IS-IS "List of IPv4 addresses of the IS-IS node - IS-IS
reference is TLV 132."; reference is TLV 132.";
} }
description "Grouping for TLV132."; description "Grouping for TLV132.";
} }
grouping tlv232-ipv6-addresses { grouping tlv232-ipv6-addresses {
leaf-list ipv6-addresses { leaf-list ipv6-addresses {
type inet:ipv6-address; type inet:ipv6-address;
description description
"List of IPv6 addresses of the IS-IS node - IS-IS "List of IPv6 addresses of the IS-IS node - IS-IS
reference is TLV 232."; reference is TLV 232.";
} }
description "Grouping for TLV232."; description "Grouping for TLV232.";
} }
grouping tlv134-ipv4-te-rid { grouping tlv134-ipv4-te-rid {
leaf ipv4-te-routerid { leaf ipv4-te-routerid {
type inet:ipv4-address; type inet:ipv4-address;
description description
"IPv4 Traffic Engineering router ID of the IS-IS node - "IPv4 Traffic Engineering router ID of the IS-IS node -
IS-IS reference is TLV 134."; IS-IS reference is TLV 134.";
} }
description "Grouping for TLV134."; description "Grouping for TLV134.";
} }
grouping tlv140-ipv6-te-rid { grouping tlv140-ipv6-te-rid {
leaf ipv6-te-routerid { leaf ipv6-te-routerid {
type inet:ipv6-address; type inet:ipv6-address;
description description
"IPv6 Traffic Engineering router ID of the IS-IS node - "IPv6 Traffic Engineering router ID of the IS-IS node -
IS-IS reference is TLV 140."; IS-IS reference is TLV 140.";
} }
description "Grouping for TLV140."; description "Grouping for TLV140.";
} }
grouping tlv129-protocols { grouping tlv129-protocols {
leaf-list protocol-supported { leaf-list protocol-supported {
type uint8; type uint8;
description description
"List of supported protocols of the IS-IS node - "List of supported protocols of the IS-IS node -
IS-IS reference is TLV 129."; IS-IS reference is TLV 129.";
} }
description "Grouping for TLV129."; description "Grouping for TLV129.";
} }
grouping tlv137-hostname { grouping tlv137-hostname {
leaf dynamic-hostname { leaf dynamic-hostname {
type string; type string;
description description
"Host Name of the IS-IS node - IS-IS reference "Host Name of the IS-IS node - IS-IS reference
is TLV 137."; is TLV 137.";
} }
description "Grouping for TLV137."; description "Grouping for TLV137.";
} }
grouping tlv10-authentication { grouping tlv10-authentication {
container authentication { container authentication {
leaf authentication-type { leaf authentication-type {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
description description
"Authentication type to be used with IS-IS node."; "Authentication type to be used with IS-IS node.";
} }
leaf authentication-key { leaf authentication-key {
type string; type string;
description description
"Authentication key to be used. For security reasons, "Authentication key to be used. For security reasons,
the authentication key MUST NOT be presented in the authentication key MUST NOT be presented in
a clear text format in response to any request a clear text format in response to any request
(e.g., via get, get-config)."; (e.g., via get, get-config).";
} }
description description
"IS-IS node authentication information container - "IS-IS node authentication information container -
IS-IS reference is TLV 10."; IS-IS reference is TLV 10.";
} }
description "Grouping for TLV10."; description "Grouping for TLV10.";
} }
grouping tlv229-mt { grouping tlv229-mt {
container mt-entries { container mt-entries {
list topology { list topology {
description description
"List of topologies supported"; "List of topologies supported";
leaf mt-id { leaf mt-id {
type uint16 { type uint16 {
range "0 .. 4095"; range "0 .. 4095";
} }
description description
"Multi-Topology identifier of topology."; "Multi-Topology identifier of topology.";
} }
leaf attributes { leaf attributes {
type bits { type bits {
bit overload { bit overload {
description description
"If set, the originator is overloaded, "If set, the originator is overloaded,
and must be avoided in path calculation."; and must be avoided in path calculation.";
} }
bit attached { bit attached {
description description
"If set, the originator is attached to "If set, the originator is attached to
another area using the referred metric."; another area using the referred metric.";
} }
} }
description description
"Attributes of the LSP for the associated "Attributes of the LSP for the associated
topology."; topology.";
} }
} }
description description
"IS-IS node topology information container - "IS-IS node topology information container -
IS-IS reference is TLV 229."; IS-IS reference is TLV 229.";
} }
description "Grouping for TLV229."; description "Grouping for TLV229.";
} }
grouping tlv242-router-capabilities { grouping tlv242-router-capabilities {
container router-capabilities { container router-capabilities {
list router-capability { list router-capability {
leaf flags { leaf flags {
type bits { type bits {
bit flooding { bit flooding {
position 0; position 0;
description description
"If the S bit is set, the IS-IS Router CAPABILITY "If the S bit is set, the IS-IS Router CAPABILITY
TLV MUST be flooded across the entire routing TLV MUST be flooded across the entire routing
domain. If the S bit is clear, the TLV MUST NOT domain. If the S bit is clear, the TLV MUST NOT
be leaked between levels. This bit MUST NOT be leaked between levels. This bit MUST NOT
be altered during the TLV leaking."; be altered during the TLV leaking.";
} }
bit down { bit down {
position 1; position 1;
description description
"When the IS-IS Router CAPABILITY TLV is leaked "When the IS-IS Router CAPABILITY TLV is leaked
from level-2 to level-1, the D bit MUST be set. from level-2 to level-1, the D bit MUST be set.
Otherwise, this bit MUST be clear. IS-IS Router Otherwise, this bit MUST be clear. IS-IS Router
capability TLVs with the D bit set MUST NOT be capability TLVs with the D bit set MUST NOT be
leaked from level-1 to level-2 in to prevent leaked from level-1 to level-2 in to prevent
TLV looping."; TLV looping.";
} }
} }
description "Router Capability Flags"; description "Router Capability Flags";
} }
container node-tags { container node-tags {
if-feature node-tag; if-feature node-tag;
list node-tag { list node-tag {
leaf tag { leaf tag {
type uint32; type uint32;
description "Node tag value."; description "Node tag value.";
} }
description "List of tags."; description "List of tags.";
} }
description "Container for node admin tags"; description "Container for node admin tags";
} }
uses unknown-tlvs;
leaf binary { uses unknown-tlvs;
type binary;
description
"Binary encoding of the IS-IS node capabilities";
}
description
"IS-IS node capabilities. This list element may
be extended with detailed information - IS-IS
reference is TLV 242.";
}
description "List of router capability TLVs.";
}
description "Grouping for TLV242.";
}
grouping tlv138-srlg { leaf binary {
description type binary;
"Grouping for TLV138."; description
container links-srlgs { "Binary encoding of the IS-IS node capabilities";
list links { }
leaf neighbor-id { description
type extended-system-id; "IS-IS node capabilities. This list element may
description "system-id of the extended neighbor."; be extended with detailed information - IS-IS
} reference is TLV 242.";
leaf flags { }
type uint8; description "List of router capability TLVs.";
description }
"Flags associated with the link."; description "Grouping for TLV242.";
} }
leaf link-local-id {
type union {
type inet:ip-address;
type uint32;
}
description
"Local identifier of the link.
It could be an IPv4 address or a local identifier.";
}
leaf link-remote-id {
type union {
type inet:ip-address;
type uint32;
}
description
"Remote identifier of the link.
It could be an IPv4 address or a remotely learned
identifier.";
}
container srlgs {
description "List of SRLGs.";
leaf-list srlg {
type uint32;
description
"SRLG value of the link.";
}
}
description
"SRLG attribute of a link.";
}
description
"List of links with SRLGs";
}
}
/* Grouping for LSDB description */ grouping tlv138-srlg {
description
"Grouping for TLV138.";
container links-srlgs {
list links {
leaf neighbor-id {
type extended-system-id;
description "system-id of the extended neighbor.";
}
leaf flags {
type uint8;
description
"Flags associated with the link.";
}
leaf link-local-id {
type union {
type inet:ip-address;
type uint32;
}
description
"Local identifier of the link.
It could be an IPv4 address or a local identifier.";
}
leaf link-remote-id {
type union {
type inet:ip-address;
type uint32;
}
description
"Remote identifier of the link.
It could be an IPv4 address or a remotely learned
identifier.";
}
container srlgs {
description "List of SRLGs.";
leaf-list srlg {
type uint32;
description
"SRLG value of the link.";
}
}
description
"SRLG attribute of a link.";
}
description
"List of links with SRLGs";
}
}
grouping lsp-entry { /* Grouping for LSDB description */
description "IS-IS LSP database entry groupting";
leaf decoded-completed { grouping lsp-entry {
type boolean; description "IS-IS LSP database entry groupting";
description "IS-IS LSP body fully decoded.";
}
leaf raw-data {
type yang:hex-string;
description
"The hexadecial representation of the complete LSP in
network-byte order (NBO) as received or originated.";
}
leaf lsp-id {
type lsp-id;
description "LSP ID of the LSP";
}
leaf checksum {
type uint16;
description "LSP checksum";
}
leaf remaining-lifetime {
type uint16;
units "seconds";
description
"Remaining lifetime (in seconds) until LSP expiration.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence number of the LSP.";
}
leaf attributes {
type bits {
bit partitioned {
description "Originator partition repair supported";
}
bit attached-error {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-expense {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-delay {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-default {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit overload {
description
"If set, the originator is overloaded,
and must be avoided in path calculation.";
}
}
description "LSP attributes";
}
uses tlv132-ipv4-addresses; leaf decoded-completed {
uses tlv232-ipv6-addresses; type boolean;
uses tlv134-ipv4-te-rid; description "IS-IS LSP body fully decoded.";
uses tlv140-ipv6-te-rid; }
uses tlv129-protocols; leaf raw-data {
uses tlv137-hostname; type yang:hex-string;
uses tlv10-authentication; description
uses tlv229-mt; "The hexadecial representation of the complete LSP in
uses tlv242-router-capabilities; network-byte order (NBO) as received or originated.";
uses tlv138-srlg; }
uses unknown-tlvs; leaf lsp-id {
type lsp-id;
description "LSP ID of the LSP";
}
leaf checksum {
type uint16;
description "LSP checksum";
}
leaf remaining-lifetime {
type uint16;
units "seconds";
description
"Remaining lifetime (in seconds) until LSP expiration.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence number of the LSP.";
}
leaf attributes {
type bits {
bit partitioned {
description "Originator partition repair supported";
}
bit attached-error {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-expense {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-delay {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit attached-default {
description
"If set, the originator is attached to
another area using the referred metric.";
}
bit overload {
description
"If set, the originator is overloaded,
and must be avoided in path calculation.";
}
}
description "LSP attributes";
}
container is-neighbor { uses tlv132-ipv4-addresses;
list neighbor { uses tlv232-ipv6-addresses;
key neighbor-id; uses tlv134-ipv4-te-rid;
uses tlv140-ipv6-te-rid;
uses tlv129-protocols;
uses tlv137-hostname;
uses tlv10-authentication;
uses tlv229-mt;
uses tlv242-router-capabilities;
uses tlv138-srlg;
uses unknown-tlvs;
uses neighbor; container is-neighbor {
description "List of neighbors."; list neighbor {
} key neighbor-id;
description
"Standard IS neighbors container - IS-IS reference is
TLV 2.";
}
container extended-is-neighbor { uses neighbor;
list neighbor { description "List of neighbors.";
key neighbor-id; }
description
"Standard IS neighbors container - IS-IS reference is
TLV 2.";
}
uses neighbor-extended; container extended-is-neighbor {
description list neighbor {
"List of extended IS neighbors"; key neighbor-id;
}
description
"Standard IS extended neighbors container - IS-IS
reference is TLV 22";
}
container ipv4-internal-reachability { uses neighbor-extended;
list prefixes { description
uses prefix-ipv4-std; "List of extended IS neighbors";