< draft-litkowski-isis-yang-isis-cfg-00.txt   draft-litkowski-isis-yang-isis-cfg-01.txt >
ISIS Working Group S. Litkowski ISIS Working Group S. Litkowski
Internet-Draft Orange Internet-Draft Orange
Intended status: Standards Track June 24, 2014 Intended status: Standards Track June 27, 2014
Expires: December 26, 2014 Expires: December 29, 2014
Yang Data Model for ISIS protocol Yang Data Model for ISIS protocol
draft-litkowski-isis-yang-isis-cfg-00 draft-litkowski-isis-yang-isis-cfg-01
Abstract Abstract
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage ISIS protocol. and manage ISIS protocol.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 26, 2014. This Internet-Draft will expire on December 29, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 23 skipping to change at page 2, line 23
2.1. ISIS configuration . . . . . . . . . . . . . . . . . . . 5 2.1. ISIS configuration . . . . . . . . . . . . . . . . . . . 5
2.2. Multitopology parameters . . . . . . . . . . . . . . . . 5 2.2. Multitopology parameters . . . . . . . . . . . . . . . . 5
2.3. Per level parameters . . . . . . . . . . . . . . . . . . 5 2.3. Per level parameters . . . . . . . . . . . . . . . . . . 5
2.4. Per interface parameters . . . . . . . . . . . . . . . . 6 2.4. Per interface parameters . . . . . . . . . . . . . . . . 6
2.5. Operational states . . . . . . . . . . . . . . . . . . . 7 2.5. Operational states . . . . . . . . . . . . . . . . . . . 7
3. RPC operations . . . . . . . . . . . . . . . . . . . . . . . 8 3. RPC operations . . . . . . . . . . . . . . . . . . . . . . . 8
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 8
5. Interaction with other YANG modules . . . . . . . . . . . . . 9 5. Interaction with other YANG modules . . . . . . . . . . . . . 9
6. Yang module . . . . . . . . . . . . . . . . . . . . . . . . . 9 6. Yang module . . . . . . . . . . . . . . . . . . . . . . . . . 9
7. Security Considerations . . . . . . . . . . . . . . . . . . . 45 7. Security Considerations . . . . . . . . . . . . . . . . . . . 45
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 45 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 46
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46
10. Normative References . . . . . . . . . . . . . . . . . . . . 45 10. Normative References . . . . . . . . . . . . . . . . . . . . 46
Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 45 Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 47
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 48 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 53
1. Introduction 1. Introduction
This document defines a YANG data model for ISIS routing protocol. This document defines a YANG data model for ISIS routing protocol.
The data model covers configuration of an ISIS routing protocol The data model covers configuration of an ISIS routing protocol
instance as well as operational states. instance as well as operational states.
1.1. Tree diagram 1.1. Tree diagram
skipping to change at page 3, line 33 skipping to change at page 3, line 33
augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route: augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route:
+--ro metric? uint32 +--ro metric? uint32
+--ro tag* uint32 +--ro tag* uint32
+--ro route-type? enumeration +--ro route-type? enumeration
augment /rt:active-route/rt:output/rt:route: augment /rt:active-route/rt:output/rt:route:
+--ro metric? uint32 +--ro metric? uint32
+--ro tag* uint32 +--ro tag* uint32
+--ro route-type? enumeration +--ro route-type? enumeration
augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: augment
+--rw isis-cfg /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol:
+--rw isis
+--rw isis-level? isis-level +--rw isis-level? isis-level
+--rw nsap-address simple-iso-address +--rw nsap-address simple-iso-address
+--rw ipv4-router-id? inet:ipv4-address +--rw ipv4-router-id? inet:ipv4-address
+--rw ipv6-router-id? inet:ipv6-address +--rw ipv6-router-id? inet:ipv6-address
+--rw reference-bandwidth? uint32 +--rw reference-bandwidth? uint32
+--rw lsp-mtu? uint16 +--rw lsp-mtu? uint16
+--rw lsp-lifetime? uint16 +--rw lsp-lifetime? uint16
+--rw lsp-refresh? uint16 +--rw lsp-refresh? uint16
+--rw psnp-authentication? boolean +--rw psnp-authentication? boolean
+--rw csnp-authentication? boolean +--rw csnp-authentication? boolean
skipping to change at page 3, line 52 skipping to change at page 4, line 4
+--rw lsp-refresh? uint16 +--rw lsp-refresh? uint16
+--rw psnp-authentication? boolean +--rw psnp-authentication? boolean
+--rw csnp-authentication? boolean +--rw csnp-authentication? boolean
+--rw hello-authentication? boolean +--rw hello-authentication? boolean
+--rw authentication-key? string +--rw authentication-key? string
+--rw authentication-type? enumeration +--rw authentication-type? enumeration
+--rw isis-multi-topology-cfg +--rw isis-multi-topology-cfg
| ... | ...
+--rw isis-level-1-cfg +--rw isis-level-1-cfg
| ... | ...
+--rw isis-level-2-cfg +--rw isis-level-2-cfg
| ... | ...
+--rw overload +--rw overload
| +--rw status? boolean | +--rw status? boolean
| +--rw timeout? uint16 | +--rw timeout? uint16
+--rw interfaces +--rw interfaces
+--rw interface* [name] +--rw interface* [name]
... ...
augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: augment
/rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol:
+--ro isis-state +--ro isis-state
+--ro adjacencies +--ro adjacencies
| +--ro adjacency* [interface] | +--ro adjacency* [interface]
| +--ro interface string | +--ro interface string
| +--ro level? isis-level | +--ro level? isis-level
| +--ro state? enumeration | +--ro state? enumeration
+--ro spf-log +--ro spf-log
| +--ro event* [id] | +--ro event* [id]
| +--ro id uint32 | +--ro id uint32
| +--ro spf-type? enumeration | +--ro spf-type? enumeration
skipping to change at page 9, line 32 skipping to change at page 9, line 32
of the ietf-routing module by defining ISIS specific operational of the ietf-routing module by defining ISIS specific operational
states. states.
Some ISIS specific routes attributes are added to route objects of Some ISIS specific routes attributes are added to route objects of
the ietf-routing module by augmenting "/rt:routing- the ietf-routing module by augmenting "/rt:routing-
state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:active- state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:active-
route/rt:output/rt:route". route/rt:output/rt:route".
6. Yang module 6. Yang module
<CODE BEGINS> file "ietf-isis@2014-06-20.yang" <CODE BEGINS> file "ietf-isis@2014-06-25.yang"
module ietf-isis { module ietf-isis {
namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; namespace "urn:ietf:params:xml:ns:yang:ietf-isis";
prefix isis; prefix isis;
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
organization organization
"IETF ISIS Working Group"; "IETF ISIS Working Group";
contact contact
"WG List: <mailto:isis-wg@ietf.org> "WG List: <mailto:isis-wg@ietf.org>
Editor: Stephane Litkowski Editor: Stephane Litkowski
<mailto:stephane.litkowski@orange.com>"; <mailto:stephane.litkowski@orange.com>";
description description
"The YANG module defines a generic configuration model for ISIS "The YANG module defines a generic configuration model for
common across all of the vendor implementations."; ISIS common across all of the vendor implementations.";
revision 2014-06-20 { revision 2014-06-25 {
description " description "
* isis-op renamed to isis-state. * isis-cfg renamed to isis.
* Multiple instances under isis are removed. * Add precisions on authentication-keys in description
* interface-cfg grouping removed and content ";
is directly included in container isis. reference "draft-litkowski-isis-yang-isis-01";
* TLVxx renamed with human-readable name in isis-database. }
TLV reference are putted in description.
* Reference to core routing module were fixed.
* Namespace fixed.
* Add simple-iso-address type.
* area-id and system-id in isis container are merged to
nsap-address.
* Add isis-system-id type.
* Add isis-lsp-id type.
* Add remaining-lifetime leaf in isis-database.
* Add TLV2 (is-neighbor) in isis-database.
* Renamed some container name for consistency
reason ('isis-' prefixed).
* Add new identities isis-cfg and isis-state.
* Add descriptions.
* Add notification isis-adjacency-updown.
* Add RPC clear-isis-adjacency and clear-isis-database.
";
reference "draft-litkowski-isis-yang-isis-00";
}
revision 2014-06-11 { revision 2014-06-20 {
description "Initial revision."; description "
reference "draft-litkowski-netmod-isis-cfg-00"; * isis-op renamed to isis-state.
} * Multiple instances under isis are removed.
identity isis { * interface-cfg grouping removed and content
base rt:routing-protocol; is directly included in container isis.
description "Identity for the ISIS routing protocol."; * TLVxx renamed with human-readable name in isis-database.
} TLV reference are putted in description.
* Reference to core routing module were fixed.
* Namespace fixed.
* Add simple-iso-address type.
* area-id and system-id in isis container are merged to
nsap-address.
* Add isis-system-id type.
* Add isis-lsp-id type.
* Add remaining-lifetime leaf in isis-database.
* Add TLV2 (is-neighbor) in isis-database.
* Renamed some container name for consistency
reason ('isis-' prefixed).
* Add new identities isis-cfg and isis-state.
* Add descriptions.
* Add notification isis-adjacency-updown.
* Add RPC clear-isis-adjacency and clear-isis-database.
";
reference "draft-litkowski-isis-yang-isis-00";
}
identity isis-cfg { revision 2014-06-11 {
description "Identity for the ISIS routing protocol description "Initial revision.";
configuration."; reference "draft-litkowski-netmod-isis-cfg-00";
} }
identity isis {
base rt:routing-protocol;
description "Identity for the ISIS routing protocol.";
}
identity isis-state { identity isis-state {
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
operational states."; operational states.";
} }
identity isis-adjacency-updown { identity isis-adjacency-updown {
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
adjacency state."; adjacency state.";
} }
identity clear-isis-database { identity clear-isis-database {
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
database reset action."; database reset action.";
} }
identity clear-isis-adjacency { identity clear-isis-adjacency {
description "Identity for the ISIS routing protocol description "Identity for the ISIS routing protocol
adjacency reset action."; adjacency reset action.";
} }
typedef isis-instance-state-ref { typedef isis-instance-state-ref {
type leafref { type leafref {
path "/rt:routing-state/rt:routing-instance/" path "/rt:routing-state/rt:routing-instance/"
+"rt:routing-protocols/rt:routing-protocol/rt:name"; +"rt:routing-protocols/rt:routing-protocol/rt:name";
} }
description description
"This type is used for leafs that reference state data of "This type is used for leafs that reference state data of
an ISIS protocol instance."; an ISIS protocol instance.";
} }
typedef isis-level { typedef isis-level {
type enumeration { type enumeration {
enum "level-1" { enum "level-1" {
description description
"This enum describes L1 only capability."; "This enum describes L1 only capability.";
} }
enum "level-2" { enum "level-2" {
description description
"This enum describes L2 only capability."; "This enum describes L2 only capability.";
} }
enum "level-1-2" { enum "level-1-2" {
description description
"This enum describes both level capability."; "This enum describes both level capability.";
}
}
description
"This type defines ISIS level of an object.";
} }
}
description
"This type defines ISIS level of an object.";
} typedef isis-lsp-id {
type string {
pattern
'[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 isis LSP ID using pattern,
system id looks like : 0143.0438.AeF0.02-01";
}
typedef simple-iso-address {
type string {
pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'
+'[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.'
+'[0-9][0-9]';
}
description
"This type defines simple iso address format,
it looks like : area_id.systemid.nsel
The area ID is at least 1 byte of AFI, and is up to
13 bytes.";
}
typedef isis-lsp-id { typedef isis-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}\.00';
+"{4}.[0-9][0-9]-[0-9][0-9]"; }
} description
description "This type defines isis system id using pattern,
"This type defines isis LSP ID using pattern, system id looks like : 0143.0438.AeF0.00";
system id looks like : 0143.0438.AeF0.02-01"; }
}
typedef simple-iso-address {
type string {
pattern "[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}"
+"[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}."
+"[0-9][0-9]";
}
description
"This type defines simple iso address format,
it looks like : area_id.systemid.nsel
The area ID is at least 1 byte of AFI, and is up to 13 bytes.";
}
typedef isis-system-id { typedef isis-wide-metric {
type string { type uint32 {
pattern "[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}.00"; range "0 .. 16777215";
} }
description description
"This type defines isis system id using pattern, "This type defines wide style format
system id looks like : 0143.0438.AeF0.00"; of ISIS metric.";
} }
typedef isis-wide-metric { typedef isis-std-metric {
type uint32 { type uint8 {
range "0 .. 16777215"; range "0 .. 63";
} }
description description
"This type defines wide style format "This type defines old style format
of ISIS metric."; of ISIS metric.";
} }
typedef isis-std-metric { grouping isis-route-content {
type uint8 { description
range "0 .. 63"; "This group add isis-specific route properties.";
} leaf metric {
description type uint32;
"This type defines old style format description
of ISIS metric."; "This leaf describes isis metric of a route.";
} }
leaf-list tag {
type uint32;
description
"This leaf describes list of tags associated
with the route.";
}
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";
grouping isis-route-content { }
description enum l1-down-internal {
"This group add isis-specific route properties."; description "Level 1 internal route
leaf metric { and leaked to a lower level";
type uint32; }
description enum l2-down-external {
"This leaf describes isis metric of a route."; description "Level 2 external route
} and leaked to a lower level";
leaf-list tag { }
type uint32; enum l1-down-external {
description description "Level 1 external route
"This leaf describes list of tags associated and leaked to a lower level";
with the route."; }
} }
leaf route-type { description
type enumeration { "This leaf describes the type of isis route.";
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
"This leaf describes the type of isis route.";
}
}
augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route" { augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route" {
when "rt:source-protocol = 'isis:isis'" { when "rt:source-protocol = 'isis:isis'" {
description "ISIS-specific route attributes."; description "ISIS-specific route attributes.";
} }
uses isis-route-content; uses isis-route-content;
description description
"This augments route object in RIB with ISIS-specific "This augments route object in RIB with ISIS-specific
attributes."; attributes.";
} }
augment "/rt:active-route/rt:output/rt:route" augment "/rt:active-route/rt:output/rt:route"
{ {
uses isis-route-content; uses isis-route-content;
description "ISIS-specific route attributes."; description "ISIS-specific route attributes.";
} }
grouping isis-prefix-ipv4-std { grouping isis-prefix-ipv4-std {
description description
"This group defines attributes of an "This group defines attributes of an
IPv4 standard prefix."; IPv4 standard prefix.";
leaf up-down { leaf up-down {
type boolean; type boolean;
description description
"This leaf expresses the value of up/down bit."; "This leaf expresses the value of up/down bit.";
} }
leaf i-e { leaf i-e {
type boolean; type boolean;
description description
"This leaf expresses the value of I/E bit."; "This leaf expresses the value of I/E bit.";
} }
leaf ip-prefix { leaf ip-prefix {
type inet:ipv4-address; type inet:ipv4-address;
description description
"This leaf describes the IPv4 prefix"; "This leaf describes the IPv4 prefix";
} }
leaf prefix-len { leaf prefix-len {
type uint8; type uint8;
description description
"This leaf describes the IPv4 prefix len in bits"; "This leaf describes the IPv4 prefix len in bits";
} }
leaf default-metric { leaf default-metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis default metric value"; "This leaf describes the isis default metric value";
} }
container delay-metric { container delay-metric {
leaf metric { leaf metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis delay metric value"; "This leaf describes the isis delay metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf describes if the metric is supported."; "This leaf describes if the metric is supported.";
} }
description description
"This container defines the ISIS delay metric."; "This container defines the ISIS delay metric.";
} }
container expense-metric { container expense-metric {
leaf metric { leaf metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis delay metric value"; "This leaf describes the isis delay metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf describes if the metric is supported."; "This leaf describes if the metric is supported.";
} }
description description
"This container defines the ISIS expense metric."; "This container defines the ISIS expense metric.";
} }
container error-metric { container error-metric {
leaf metric { leaf metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis delay metric value"; "This leaf describes the isis delay metric value";
}
leaf supported {
type boolean;
default "false";
description
"This leaf describes if the metric is supported.";
}
} description
leaf supported { "This container defines the ISIS error metric.";
type boolean; }
default "false"; }
description
"This leaf describes if the metric is supported.";
}
description grouping isis-prefix-ipv4-extended {
"This container defines the ISIS error metric."; description
} "This group defines attributes of an
} IPv4 extended prefix.";
leaf up-down {
type boolean;
description
"This leaf expresses the value of up/down bit.";
}
leaf ip-prefix {
type inet:ipv4-address;
description
"This leaf describes the IPv4 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
grouping isis-prefix-ipv4-extended { leaf metric {
description type isis-wide-metric;
"This group defines attributes of an description
IPv4 extended prefix."; "This leaf describes the isis metric value";
leaf up-down { }
type boolean; leaf-list tag {
description type uint32;
"This leaf expresses the value of up/down bit."; description
} "This leaf describes a list of tags associated with
leaf ip-prefix { the prefix.";
type inet:ipv4-address;
description
"This leaf describes the IPv4 prefix";
}
leaf prefix-len {
type uint8;
description
"This leaf describes the IPv4 prefix len in bits";
}
leaf metric { }
type isis-wide-metric; }
description
"This leaf describes the isis metric value";
}
leaf-list tag {
type uint32;
description
"This leaf describes a list of tags associated with
the prefix.";
}
}
grouping isis-prefix-ipv6-extended { grouping isis-prefix-ipv6-extended {
description description
"This group defines attributes of an "This group defines attributes of an
IPv6 prefix."; IPv6 prefix.";
leaf up-down { leaf up-down {
type boolean; type boolean;
description description
"This leaf expresses the value of up/down bit."; "This leaf expresses the value of up/down bit.";
} }
leaf ip-prefix { leaf ip-prefix {
type inet:ipv6-address; type inet:ipv6-address;
description description
"This leaf describes the IPv6 prefix"; "This leaf describes the IPv6 prefix";
} }
leaf prefix-len { leaf prefix-len {
type uint8; type uint8;
description description
"This leaf describes the IPv4 prefix len in bits"; "This leaf describes the IPv4 prefix len in bits";
} }
leaf metric { leaf metric {
type isis-wide-metric; type isis-wide-metric;
description description
"This leaf describes the isis metric value"; "This leaf describes the isis metric value";
} }
leaf-list tag { leaf-list tag {
type uint32; type uint32;
description description
"This leaf describes a list of tags associated with "This leaf describes a list of tags associated with
the prefix."; the prefix.";
} }
} }
grouping isis-neighbor-extended { grouping isis-neighbor-extended {
description description
"This group defines attributes of an "This group defines attributes of an
ISIS extended neighbor."; ISIS extended neighbor.";
leaf neighbor-id { leaf neighbor-id {
type isis-system-id; type isis-system-id;
description description
"This leaf describes the system-id of the neighbor."; "This leaf describes the system-id of the neighbor.";
} }
leaf metric { leaf metric {
type isis-wide-metric; type isis-wide-metric;
description description
"This leaf describes the isis metric value"; "This leaf describes the isis metric value";
} }
} }
grouping isis-neighbor { grouping isis-neighbor {
description description
"This group defines attributes of an "This group defines attributes of an
ISIS standard neighbor."; ISIS standard neighbor.";
leaf neighbor-id { leaf neighbor-id {
type isis-system-id; type isis-system-id;
description description
"This leaf describes the system-id of the neighbor."; "This leaf describes the system-id of the neighbor.";
} }
leaf i-e { leaf i-e {
type boolean; type boolean;
description description
"This leaf expresses the value of I/E bit."; "This leaf expresses the value of I/E bit.";
} }
leaf default-metric { leaf default-metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis default metric value"; "This leaf describes the isis default metric value";
} }
container delay-metric { container delay-metric {
leaf metric { leaf metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis delay metric value"; "This leaf describes the isis delay metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf describes if the metric is supported."; "This leaf describes if the metric is supported.";
} }
description description
"This container defines the ISIS delay metric."; "This container defines the ISIS delay metric.";
} }
container expense-metric { container expense-metric {
leaf metric { leaf metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis delay metric value"; "This leaf describes the isis delay metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf describes if the metric is supported."; "This leaf describes if the metric is supported.";
} }
description description
"This container defines the ISIS expense metric."; "This container defines the ISIS expense metric.";
} }
container error-metric { container error-metric {
leaf metric { leaf metric {
type isis-std-metric; type isis-std-metric;
description description
"This leaf describes the isis delay metric value"; "This leaf describes the isis delay metric value";
} }
leaf supported { leaf supported {
type boolean; type boolean;
default "false"; default "false";
description description
"This leaf describes if the metric is supported."; "This leaf describes if the metric is supported.";
} }
description description
"This container defines the ISIS error metric."; "This container defines the ISIS error metric.";
} }
} }
grouping isis-database { grouping isis-database {
description description
"This group defines attributes of an "This group defines attributes of an
ISIS database (Link State DB)."; ISIS database (Link State DB).";
leaf lsp-id { leaf lsp-id {
type isis-lsp-id; type isis-lsp-id;
description description
"This leaf describes the LSP ID of the LSP."; "This leaf describes the LSP ID of the LSP.";
} }
leaf checksum { leaf checksum {
type uint16; type uint16;
description description
"This leaf describes the checksum of the LSP."; "This leaf describes the checksum of the LSP.";
} }
leaf remaining-lifetime { leaf remaining-lifetime {
type uint16; type uint16;
units "seconds"; units "seconds";
description description
"This leaf describes the remaining lifetime "This leaf describes the remaining lifetime
in seconds before the LSP expiration."; in seconds before the LSP expiration.";
} }
leaf sequence { leaf sequence {
type uint32; type uint32;
description description
"This leaf describes the sequence number of the LSP."; "This leaf describes the sequence number of the LSP.";
} }
leaf attributes { leaf attributes {
type bits { type bits {
bit PARTITIONNED { bit PARTITIONNED {
description description
"If set, the originator supports partition "If set, the originator supports partition
repair."; repair.";
} }
bit ATTACHED-ERROR { bit ATTACHED-ERROR {
description description
"If set, the originator is attached to "If set, the originator is attached to
another area using the refered metric."; another area using the refered metric.";
} }
bit ATTACHED-EXPENSE { bit ATTACHED-EXPENSE {
description description
"If set, the originator is attached to "If set, the originator is attached to
another area using the refered metric."; another area using the refered metric.";
} }
bit ATTACHED-DELAY { bit ATTACHED-DELAY {
description description
"If set, the originator is attached to "If set, the originator is attached to
another area using the refered metric."; another area using the refered metric.";
} }
bit ATTACHED-DEFAULT { bit ATTACHED-DEFAULT {
description description
"If set, the originator is attached to "If set, the originator is attached to
another area using the refered metric."; another area using the refered metric.";
} }
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.";
} }
} }
description description
"This leaf describes attributes of the LSP."; "This leaf describes attributes of the LSP.";
} }
container is-neighbor { container is-neighbor {
list neighbor { list neighbor {
key "neighbor-id"; key "neighbor-id";
uses isis-neighbor-extended; uses isis-neighbor-extended;
description description
"List of neighbors."; "List of neighbors.";
} }
description description
"This leaf describes list of ISIS extended neighbors. "This leaf describes list of ISIS extended neighbors.
ISIS reference is TLV 2."; ISIS reference is TLV 2.";
} }
container authentication {
leaf authentication-type {
type uint8;
description
"This leaf describes the authentication type
to be used.";
}
leaf authentication-key {
type string;
description
"This leaf describes the authentication key
to be used. For security reason, the
authentication key MUST NOT be presented
in plaintext format. Authors recommends
to use MD5 hash to present the authentication-key.";
}
description "This container describes authentication
information of the node. ISIS reference is TLV 10.";
}
container authentication { container extended-is-neighbor {
leaf authentication-type { list neighbor {
type uint8; key "neighbor-id";
description uses isis-neighbor-extended;
"This leaf describes the authentication type description
to be used."; "List of neighbors.";
} }
leaf authentication-key { description
type string; "This container describes list of ISIS extended
description neighbors.
"This leaf describes the authentication key ISIS reference is TLV 22.";
to be used."; }
}
description "This container describes authentication
information of the node. ISIS reference is TLV 10.";
}
container extended-is-neighbor { container ipv4-internal-reachability {
list neighbor { list prefixes {
key "neighbor-id"; key "ip-prefix";
uses isis-neighbor-extended; uses isis-prefix-ipv4-std;
description description
"List of neighbors."; "List of prefixes.";
} }
description description
"This container describes list of ISIS extended neighbors. "This container describes list of ipv4 internal
ISIS reference is TLV 22."; reachability information.
} ISIS reference is TLV 128.";
}
container ipv4-internal-reachability { leaf-list protocol-supported {
list prefixes { type uint8;
key "ip-prefix"; description
uses isis-prefix-ipv4-std; "This leaf describes the list of
description supported protocols.
"List of prefixes."; ISIS reference is TLV 129.";
} }
description
"This container describes list of ipv4 internal
reachability information.
ISIS reference is TLV 128.";
}
leaf-list protocol-supported { container ipv4-external-reachability {
type uint8; list prefixes {
description key "ip-prefix";
"This leaf describes the list of uses isis-prefix-ipv4-std;
supported protocols. description
ISIS reference is TLV 129."; "List of prefixes.";
} }
description
"This container describes list of ipv4 external
reachability information.
ISIS reference is TLV 130.";
}
container ipv4-external-reachability { leaf-list ipv4-addresses {
list prefixes { type inet:ipv4-address;
key "ip-prefix"; description
uses isis-prefix-ipv4-std; "This leaf describes the ipv4 addresses of the node.
description ISIS reference is TLV 132.";
"List of prefixes."; }
}
description
"This container describes list of ipv4 external
reachability information.
ISIS reference is TLV 130.";
}
leaf-list ipv4-addresses { leaf ipv4-te-routerid {
type inet:ipv4-address;
description
"This leaf describes the ipv4 addresses of the node.
ISIS reference is TLV 132.";
}
leaf ipv4-te-routerid { type inet:ipv4-address;
description
"This leaf describes the IPv4 Traffic Engineering
router ID of the node.
ISIS reference is TLV 134.";
}
type inet:ipv4-address; container extended-ipv4-reachability {
description
"This leaf describes the IPv4 Traffic Engineering
router ID of the node.
ISIS reference is TLV 134.";
}
container extended-ipv4-reachability { list prefixes {
key "ip-prefix";
uses isis-prefix-ipv4-extended;
description
"List of prefixes.";
}
description
"This container describes list of ipv4 extended
reachability information.
ISIS reference is TLV 135.";
}
leaf dynamic-hostname {
type string;
list prefixes { description
key "ip-prefix"; "This leaf describes the name of the node.
uses isis-prefix-ipv4-extended; ISIS reference is TLV 137.";
description }
"List of prefixes.";
}
description
"This container describes list of ipv4 extended
reachability information.
ISIS reference is TLV 135.";
}
leaf dynamic-hostname { leaf ipv6-te-routerid {
type string; type inet:ipv6-address;
description
"This leaf describes the IPv6 Traffic Engineering
router ID of the node.
ISIS reference is TLV 140.";
}
description container mt-is-neighbor {
"This leaf describes the name of the node. list neighbor {
ISIS reference is TLV 137."; key "neighbor-id";
} leaf MT-ID {
leaf ipv6-te-routerid { type uint16 {
type inet:ipv6-address; range "0 .. 4095";
description }
"This leaf describes the IPv6 Traffic Engineering description
router ID of the node. "This leaf defines the identifier
ISIS reference is TLV 140."; of a topology.";
} }
uses isis-neighbor-extended;
description
"List of neighbors.";
}
description
"This container describes list of ISIS multi-topology
neighbors.
ISIS reference is TLV 223.";
}
container mt-is-neighbor { container mt-entries {
list neighbor { list topology {
key "neighbor-id"; key "MT-ID";
leaf MT-ID {
type uint16 {
range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
uses isis-neighbor-extended;
description
"List of neighbors.";
}
description
"This container describes list of ISIS multi-topology
neighbors.
ISIS reference is TLV 223.";
}
container mt-entries { leaf MT-ID {
list topology { type uint16 {
key "MT-ID"; range "0 .. 4095";
}
description
"This leaf defines the identifier
of a topology.";
}
leaf MT-ID { leaf attributes {
type uint16 { type bits {
range "0 .. 4095"; bit OVERLOAD {
} description
description "If set, the originator is overloaded,
"This leaf defines the identifier and must be avoided in path
of a topology."; calculation.";
} }
bit ATTACHED {
description
"If set, the originator is attached to
another area using the refered metric.";
}
}
description
"This leaf describes attributes of the LSP
for the associated topology.";
}
description
"List of topologies supported.";
}
description
"This container describes the topology supported.
ISIS reference is TLV 229.";
}
leaf attributes { leaf-list ipv6-addresses {
type bits { type inet:ipv6-address;
bit OVERLOAD { description
description "This leaf describes the ipv6 interface
"If set, the originator is overloaded, addresses of the node.
and must be avoided in path ISIS reference is TLV 232.";
calculation."; }
}
bit ATTACHED {
description
"If set, the originator is attached to
another area using the refered metric.";
}
}
description
"This leaf describes attributes of the LSP
for the associated topology.";
}
description
"List of topologies supported.";
}
description
"This container describes the topology supported.
ISIS reference is TLV 229.";
}
leaf-list ipv6-addresses { container mt-extended-ipv4-reachability {
type inet:ipv6-address; list prefixes {
description key "ip-prefix";
"This leaf describes the ipv6 interface leaf MT-ID {
addresses of the node. type uint16 {
ISIS reference is TLV 232."; range "0 .. 4095";
} }
description
"This leaf defines the identifier
of a topology.";
}
uses isis-prefix-ipv4-extended;
description
"List of prefixes.";
container mt-extended-ipv4-reachability { }
list prefixes { description
key "ip-prefix"; "This container describes list of ipv4
leaf MT-ID { reachability information in multi-topology
type uint16 { environment.
range "0 .. 4095"; ISIS reference is TLV 235.";
} }
description
"This leaf defines the identifier
of a topology.";
}
uses isis-prefix-ipv4-extended;
description
"List of prefixes.";
} container mt-ipv6-reachability {
description list prefixes {
"This container describes list of ipv4 key "ip-prefix";
reachability information in multi-topology leaf MT-ID {
environment. type uint16 {
ISIS reference is TLV 235."; range "0 .. 4095";
} }
description
"This leaf defines the identifier
of a topology.";
}
uses isis-prefix-ipv6-extended;
description
"List of prefixes.";
}
description
"This container describes list of ipv6
reachability information in multi-topology
environment.
ISIS reference is TLV 237.";
}
container mt-ipv6-reachability { container ipv6-reachability {
list prefixes { list prefixes {
key "ip-prefix"; key "ip-prefix";
leaf MT-ID { uses isis-prefix-ipv6-extended;
type uint16 { description
range "0 .. 4095"; "List of prefixes.";
} }
description description
"This leaf defines the identifier "This container describes list of ipv6
of a topology."; reachability information.
} ISIS reference is TLV 236.";
uses isis-prefix-ipv6-extended;
description
"List of prefixes.";
}
description
"This container describes list of ipv6
reachability information in multi-topology
environment.
ISIS reference is TLV 237.";
}
container ipv6-reachability { }
list prefixes {
key "ip-prefix";
uses isis-prefix-ipv6-extended;
description
"List of prefixes.";
}
description
"This container describes list of ipv6
reachability information.
ISIS reference is TLV 236.";
}
container router-capabilities { container router-capabilities {
leaf binary { leaf binary {
type binary; type binary;
description description
"This leaf describes the capability of the node. "This leaf describes the capability of the node.
Format is binary according to the protocol encoding."; Format is binary according to the protocol encoding.";
}
description
"This container describes the capabilities of the node.
This container may be extended with detailed
information.
ISIS reference is TLV 242.";
}
}
} grouping isis-address-family-cfg {
description description
"This container describes the capabilities of the node. "This group defines address-family-cfg
This container may be extended with detailed global configuration for ISIS.";
information. leaf ipv4-unicast {
ISIS reference is TLV 242."; type boolean;
} description
} "This leaf defines if IPv4 unicast is activated.";
}
leaf ipv6-unicast {
type boolean;
description
"This leaf defines if IPv6 unicast is activated.";
}
leaf ipv4-multicast {
type boolean;
description
"This leaf defines if IPv4 multicast is activated.";
}
leaf ipv6-multicast {
type boolean;
description
"This leaf defines if IPv6 multicast is activated.";
}
}
grouping isis-address-family-cfg { grouping isis-interface-hello-cfg {
description description
"This group defines address-family-cfg "This group defines hello interface
global configuration for ISIS."; parameters for ISIS.";
leaf ipv4-unicast { leaf hello-authentication-type {
type boolean; type enumeration {
description enum none {
"This leaf defines if IPv4 unicast is activated."; description "No authentication used.";
} }
leaf ipv6-unicast { enum plaintext {
type boolean; description "Plain text password used.";
description }
"This leaf defines if IPv6 unicast is activated."; enum message-digest {
} description "MD5 digest used.";
leaf ipv4-multicast { }
type boolean; }
description description
"This leaf defines if IPv4 multicast is activated."; "This leaf describes the authentication type
} to be used in hello messages.";
leaf ipv6-multicast { }
type boolean; leaf hello-authentication-key {
description type string;
"This leaf defines if IPv6 multicast is activated."; description
} "This leaf describes the authentication key
} to be used in hello messages.
For security reason, the
authentication key MUST NOT be presented
in plaintext format upon a get-config reply.
Authors recommends
to use MD5 hash to present the authentication-key";
}
leaf hello-interval {
type uint16;
units "seconds";
description
"This leaf defines the interval of hello messages.";
}
leaf hello-multiplier {
type uint16;
description
"This leaf defines the number of hello failed to be
received before declaring the adjacency down.";
}
}
grouping isis-interface-hello-cfg { grouping isis-interface-level-cfg {
description description
"This group defines hello interface "This group defines level specific
parameters for ISIS."; configuration for ISIS interfaces.";
leaf hello-authentication-type { uses isis-interface-hello-cfg;
type enumeration {
enum none {
description "No authentication used.";
}
enum plaintext {
description "Plain text password used.";
}
enum message-digest {
description "MD5 digest used.";
}
}
description
"This leaf describes the authentication type
to be used in hello messages.";
}
leaf hello-authentication-key {
type string;
description
"This leaf describes the authentication key
to be used in hello messages.";
}
leaf hello-interval {
type uint16;
units "seconds";
description
"This leaf defines the interval of hello messages.";
}
leaf hello-multiplier {
type uint16;
description
"This leaf defines the number of hello failed to be
received before declaring the adjacency down.";
}
}
grouping isis-interface-level-cfg { uses isis-address-family-cfg;
description leaf priority {
"This group defines level specific type uint8 {
configuration for ISIS interfaces."; range "0 .. 127";
uses isis-interface-hello-cfg; }
uses isis-address-family-cfg; description
"This leaf describes the priority of the interface
for DIS election.";
}
leaf ipv4-unicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv4 unicast metric
of the interface.";
}
leaf ipv6-unicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv6 unicast metric
of the interface.";
}
leaf ipv4-multicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv4 multicast metric
of the interface.";
}
leaf ipv6-multicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv6 multicast metric
of the interface.";
}
leaf passive {
type boolean;
default "false";
description
"This leaf defines if interface is in passive mode
(ISIS not running, but network is advertised).";
}
}
leaf priority { grouping isis-authentication-cfg {
type uint8 { description
range "0 .. 127"; "This group defines authentication
} configuration for ISIS.";
leaf psnp-authentication {
type boolean;
default "true";
description
"This leaf describes if PSNP messages must be
authenticated.";
}
leaf csnp-authentication {
type boolean;
default "true";
description
"This leaf describes if CSNP messages must be
authenticated.";
}
leaf hello-authentication {
type boolean;
default "true";
description
"This leaf describes if HELLO messages must be
authenticated.";
}
leaf authentication-key {
type string;
description
"This leaf describes the authentication key
to be used.
For security reason, the
authentication key MUST NOT be presented
in plaintext format upon a get-config reply.
Authors recommends
to use MD5 hash to present the authentication-key";";
}
leaf authentication-type {
type enumeration {
enum none {
description "No authentication used.";
}
enum plaintext {
description "Plain text password used.";
}
enum message-digest {
description "MD5 digest used.";
}
}
description
"This leaf describes the authentication type
to be used.";
}
}
grouping isis-level-cfg {
description
"This group defines level specific
global configuration for ISIS.";
leaf enabled {
type boolean;
default "true";
description
"This leaf defines the status of the administrative
status of the level (Active / not active).";
}
description uses isis-authentication-cfg;
"This leaf describes the priority of the interface
for DIS election.";
}
leaf ipv4-unicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv4 unicast metric
of the interface.";
}
leaf ipv6-unicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv6 unicast metric
of the interface.";
}
leaf ipv4-multicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv4 multicast metric
of the interface.";
}
leaf ipv6-multicast-metric {
type isis-wide-metric;
description
"This leaf describes the IPv6 multicast metric
of the interface.";
}
leaf passive {
type boolean;
default "false";
description
"This leaf defines if interface is in passive mode
(ISIS not running, but network is advertised).";
}
}
grouping isis-authentication-cfg { leaf metric-type {
description type enumeration {
"This group defines authentication enum wide-only {
configuration for ISIS."; description
leaf psnp-authentication { "Advertise new metric style only (RFC5305)";
type boolean; }
default "true"; enum old-only {
description description
"This leaf describes if PSNP messages must be "Advertise old metric style only (RFC1195)";
authenticated."; }
} enum both {
leaf csnp-authentication { description "Advertise both metric styles";
type boolean; }
default "true"; }
description description
"This leaf describes if CSNP messages must be "This leaf describes the type of metric to be generated.
authenticated."; Wide-only means only new metric style is generated,
} old-only means that only old style metric is generated,
leaf hello-authentication { and both means that both are advertised.";
type boolean; }
default "true"; leaf preference {
description type uint8;
"This leaf describes if HELLO messages must be description
authenticated."; "This leaf defines the protocol preference.";
} }
leaf authentication-key { leaf external-preference {
type string; type uint8;
description description
"This leaf describes the authentication key "This leaf defines the protocol preference for external
to be used."; routes.";
} }
leaf authentication-type { leaf default-ipv4-unicast-metric {
type enumeration { type isis-wide-metric;
enum none { description
description "No authentication used."; "This leaf defines the IPv4 unicast default metric.";
} }
enum plaintext { leaf default-ipv6-unicast-metric {
description "Plain text password used."; type isis-wide-metric;
} description
enum message-digest { "This leaf defines the IPv6 unicast default metric.";
description "MD5 digest used."; }
} leaf default-ipv4-multicast-metric {
} type isis-wide-metric;
description description
"This leaf describes the authentication type "This leaf defines the IPv4 multicast default metric.";
to be used."; }
} leaf default-ipv6-multicast-metric {
} type isis-wide-metric;
description
"This leaf defines the IPv6 multicast default metric.";
}
}
grouping isis-level-cfg { augment "/rt:routing/rt:routing-instance/rt:routing-protocols/"
description +"rt:routing-protocol" {
"This group defines level specific when "rt:type = 'isis:isis'" {
global configuration for ISIS."; description
leaf enabled { "This augment is only valid when routing protocol
type boolean; instance type is isis.";
default "true"; }
description description
"This leaf defines the status of the administrative "This augments a routing protocol instance with ISIS
status of the level (Active / not active)."; specific parameters.";
} container isis {
leaf isis-level {
type isis-level;
default "level-1-2";
description
"This leaf describes the type of ISIS node.
A node can be level-1-only, level-2-only
or level-1-2.
";
}
leaf nsap-address {
type simple-iso-address;
description
"This leaf defines the NSAP address of the node
in a simple format. This parameter is mandatory.";
}
leaf ipv4-router-id {
type inet:ipv4-address;
description
"Router ID value that would be used in TLV134.";
}
leaf ipv6-router-id {
type inet:ipv6-address;
description
"Router ID value that would be used in TLV234.";
}
leaf reference-bandwidth {
type uint32;
units "bps";
description
"This leaf defines the bandwidth for calculating
metric.";
}
uses isis-authentication-cfg; leaf lsp-mtu {
type uint16;
units "bytes";
default 1492;
description
"This leaf describes the maximum size of a
LSP PDU in bytes.";
}
leaf lsp-lifetime {
type uint16;
units "seconds";
description
"This leaf describes the lifetime of the router
LSP in seconds.";
}
leaf lsp-refresh {
type uint16;
units "seconds";
description
"This leaf describes the refresh interval of the
router LSP in seconds.";
}
leaf metric-type { uses isis-authentication-cfg;
type enumeration {
enum wide-only {
description "Advertise new metric style only (RFC5305)";
} container isis-multi-topology-cfg {
enum old-only { uses isis-address-family-cfg;
description "Advertise old metric style only (RFC1195)"; description
} "This container describes activation of MT extensions
enum both { for supporting new address families.";
description "Advertise both metric styles"; }
}
}
description
"This leaf describes the type of metric to be generated.
Wide-only means only new metric style is generated, old-only
means that only old style metric is generated, and both means
that both are advertised.";
}
leaf preference {
type uint8;
description
"This leaf defines the protocol preference.";
}
leaf external-preference {
type uint8;
description
"This leaf defines the protocol preference for external routes.";
}
leaf default-ipv4-unicast-metric {
type isis-wide-metric;
description
"This leaf defines the IPv4 unicast default metric.";
}
leaf default-ipv6-unicast-metric {
type isis-wide-metric;
description
"This leaf defines the IPv6 unicast default metric.";
}
leaf default-ipv4-multicast-metric {
type isis-wide-metric;
description
"This leaf defines the IPv4 multicast default metric.";
}
leaf default-ipv6-multicast-metric {
type isis-wide-metric;
description
"This leaf defines the IPv6 multicast default metric.";
}
}
augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" container isis-level-1-cfg {
+"rt:routing-protocol" { uses isis-level-cfg;
when "rt:type = 'isis:isis'" { description
description "Defines configuration parameters of level 1.";
"This augment is only valid when routing protocol }
instance type is isis.";
}
description
"This augments a routing protocol instance with ISIS
specific parameters.";
container isis-cfg {
leaf isis-level {
type isis-level;
default "level-1-2";
description
"This leaf describes the type of ISIS node.
A node can be level-1-only, level-2-only or level-1-2.
";
}
leaf nsap-address {
type simple-iso-address;
description
"This leaf defines the NSAP address of the node
in a simple format. This parameter is mandatory.";
}
leaf ipv4-router-id {
type inet:ipv4-address;
description
"Router ID value that would be used in TLV134.";
}
leaf ipv6-router-id {
type inet:ipv6-address;
description
"Router ID value that would be used in TLV234.";
}
leaf reference-bandwidth {
type uint32;
units "bps";
description
"This leaf defines the bandwidth for calculating metric.";
}
leaf lsp-mtu { container isis-level-2-cfg {
type uint16; uses isis-level-cfg;
units "bytes"; description
default 1492; "Defines configuration parameters of level 2.";
description
"This leaf describes the maximum size of a
LSP PDU in bytes.";
}
leaf lsp-lifetime {
type uint16;
units "seconds";
description
"This leaf describes the lifetime of the router
LSP in seconds.";
}
leaf lsp-refresh {
type uint16;
units "seconds";
description
"This leaf describes the refresh interval of the
router LSP in seconds.";
}
uses isis-authentication-cfg; }
container isis-multi-topology-cfg { container overload {
uses isis-address-family-cfg; leaf status {
description type boolean;
"This container describes activation of MT extensions description
for supporting new address families."; "This leaf defines the overload status.";
} }
leaf timeout {
type uint16;
units "seconds";
description
"This leaf defines the timeout in seconds
of the overload condition.";
}
description
"This leaf describes if the router is
set to overload state.";
}
container isis-level-1-cfg { container interfaces {
uses isis-level-cfg; list interface {
description key "name";
"Defines configuration parameters of level 1."; leaf name {
} type leafref {
path "/rt:routing/rt:routing-instance/"
+"rt:interfaces/rt:interface/rt:name";
}
description
"Reference to the interface within
the routing-instance.";
}
leaf level {
type isis-level;
default "level-1-2";
description
"This leaf defines the associated ISIS level
of the interface.";
container isis-level-2-cfg { }
uses isis-level-cfg; leaf lsp-interval {
description type uint16;
"Defines configuration parameters of level 2."; units "milliseconds";
description
"This leaf defines the interval between LSP
transmissions in msec";
}
leaf passive {
type boolean;
default "false";
description
"This leaf defines if interface is in passive
mode (ISIS not running,
but network is advertised).";
}
leaf csnp-interval {
type uint16;
units "seconds";
description
"This leaf defines the interval of CSNP
messages.";
}
} uses isis-interface-hello-cfg;
container overload { leaf hello-padding {
leaf status { type boolean;
type boolean; description
description "This leaf defines if ISIS Hellos would be
"This leaf defines the overload status."; padded up to MTU size.";
} }
leaf timeout {
type uint16;
units "seconds";
description
"This leaf defines the timeout in seconds
of the overload condition.";
}
description
"This leaf describes if the router is
set to overload state.";
}
container interfaces { uses isis-address-family-cfg;
list interface {
key "name";
leaf name {
type leafref {
path "/rt:routing/rt:routing-instance/"
+"rt:interfaces/rt:interface/rt:name";
}
description
"Reference to the interface within
the routing-instance.";
}
leaf level {
type isis-level;
default "level-1-2";
description
"This leaf defines the associated ISIS level
of the interface.";
}
leaf lsp-interval {
type uint16;
units "milliseconds";
description
"This leaf defines the interval between LSP
transmissions in msec";
}
leaf passive {
type boolean;
default "false";
description
"This leaf defines if interface is in passive mode
(ISIS not running, but network is advertised).";
}
leaf csnp-interval {
type uint16;
units "seconds";
description
"This leaf defines the interval of CSNP
messages.";
}
uses isis-interface-hello-cfg;
leaf hello-padding { leaf interface-type {
type boolean; type enumeration {
description enum broadcast {
"This leaf defines if ISIS Hellos would be description "Broadcast interface type.
padded up to MTU size."; Would result in DIS election.";
} }
enum point-to-point {
description
"Point to point interface type.";
}
}
description
"This leaf defines the type of adjacency
to be established on the interface.
This is affecting the type of hello
message that would be used.";
}
uses isis-address-family-cfg; leaf enabled {
type boolean;
default "true";
description
"This leaf describes the administrative
status of the ISIS interface.";
leaf interface-type { }
type enumeration {
enum broadcast {
description "Broadcast interface type.
Would result in DIS election.";
}
enum point-to-point {
description "Point to point interface type.";
}
}
description
"This leaf defines the type of adjacency
to be established on the interface. This is
affecting the type of hello message that would
be used.";
}
leaf enabled { leaf-list tag {
type boolean; type uint32;
default "true"; description
description "This leaf defines list of tags associated
"This leaf describes the administrative status with the interface.";
of the ISIS interface."; }
}
leaf-list tag { container level-1 {
type uint32; uses isis-interface-level-cfg;
description description
"This leaf defines list of tags associated "This container defines the level 1 specific
with the interface."; configuration of the interface.";
} }
container level-1 { container level-2 {
uses isis-interface-level-cfg; uses isis-interface-level-cfg;
description description
"This container defines the level 1 specific "This container defines the level 2 specific
configuration of the interface."; configuration of the interface.";
} }
container level-2 { description
uses isis-interface-level-cfg; "List of ISIS interfaces.";
description }
"This container defines the level 2 specific description
configuration of the interface."; "This container defines ISIS interface specific
} configuration objects.";
}
description description
"List of ISIS interfaces."; "This container defines ISIS specific configuration
} objects.";
description }
"This container defines ISIS interface specific
configuration objects.";
}
description }
"This container defines ISIS specific configuration
objects.";
}
}
augment "/rt:routing-state/rt:routing-instance/" augment "/rt:routing-state/rt:routing-instance/"
+"rt:routing-protocols/rt:routing-protocol" { +"rt:routing-protocols/rt:routing-protocol" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment is only valid when routing protocol "This augment is only valid when routing protocol
instance type is isis."; instance type is isis.";
} }
description description
"This augments routing protocol instance states with ISIS "This augments routing protocol instance states with ISIS
specific parameters."; specific parameters.";
container isis-state { container isis-state {
config false; config false;
container adjacencies { container adjacencies {
list adjacency { list adjacency {
key interface; key interface;
leaf interface { leaf interface {
type string; type string;
description description
"This leaf describes the name "This leaf describes the name
of the interface."; of the interface.";
} }
leaf level { leaf level {
type uint8 { type uint8 {
range "1 .. 2"; range "1 .. 2";
} }
description description
"This leaf describes the associated "This leaf describes the associated
ISIS level of the interface. ISIS level of the interface.
The value of the level can only be 1 The value of the level can only be 1
or 2."; or 2.";
} }
leaf state { leaf state {
type enumeration { type enumeration {
enum "Up" { enum "Up" {
description description
"This state describes that "This state describes that
adjacency is established."; adjacency is established.";
} }
enum "Down" { enum "Down" {
description description
"This state describes that "This state describes that
adjacency is NOT established."; adjacency is NOT established.";
} }
enum "Init" { enum "Init" {
description description
"This state describes that "This state describes that
adjacency is establishing."; adjacency is establishing.";
} }
} }
description description
"This leaf describes the state of the "This leaf describes the state of the
interface."; interface.";
} }
description description
"List of operational adjacencies."; "List of operational adjacencies.";
} }
description description
"This container lists the adjacencies of "This container lists the adjacencies of
the local node."; the local node.";
} }
container spf-log { container spf-log {
list event { list event {
key id; key id;
leaf id { leaf id {
type uint32; type uint32;
description description
"This leaf defines the event identifier. "This leaf defines the event identifier.
This is a purely internal value."; This is a purely internal value.";
} }
leaf spf-type { leaf spf-type {
type enumeration { type enumeration {
enum full { enum full {
description description
"Computation done is a Full SPF."; "Computation done is a Full SPF.";
} }
enum incremental { enum incremental {
description description
"Computation done is an "Computation done is an
incremental SPF."; incremental SPF.";
} }
enum route-only { enum route-only {
description description
"Computation done is a "Computation done is a
reachability computation reachability computation
only."; only.";
} }
} }
description description
"This leaf describes the type of computation "This leaf describes the type of computation
used."; used.";
} }
leaf level { leaf level {
type uint8 { type uint8 {
range "1 .. 2"; range "1 .. 2";
} }
description description
"This leaf describes the level affected bytes "This leaf describes the level affected bytes
the computation."; the computation.";
} }
leaf spf-delay { leaf spf-delay {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
description description
"This leaf describes the SPF delay that "This leaf describes the SPF delay that
was used for this event."; was used for this event.";
} }
leaf schedule-timestamp { leaf schedule-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"This leaf describes the timestamp "This leaf describes the timestamp
when the computation was scheduled."; when the computation was scheduled.";
} }
leaf start-timestamp { leaf start-timestamp {
type yang:timestamp; type yang:timestamp;
description description
"This leaf describes the timestamp "This leaf describes the timestamp
when the computation was started."; when the computation was started.";
}
leaf end-timestamp {
type yang:timestamp;
description
"This leaf describes the timestamp
when the computation was ended.";
}
list trigger-lsp {
key "lsp";
leaf lsp {
type isis-lsp-id;
description
"This leaf describes the LSPID
of the LSP.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence
number of the LSP.";
}
description
"This leaf describes list of LSPs
that triggered the computation.";
}
description
"List of computation events.";
}
} description
leaf end-timestamp { "This container lists the SPF computation events.";
type yang:timestamp; }
description container lsp-log {
"This leaf describes the timestamp list event {
when the computation was ended."; key id;
}
list trigger-lsp {
key "lsp";
leaf lsp {
type isis-lsp-id;
description
"This leaf describes the LSPID
of the LSP.";
}
leaf sequence {
type uint32;
description
"This leaf describes the sequence
number of the LSP.";
}
description
"This leaf describes list of LSPs
that triggered the computation.";
}
description
"List of computation events.";
}
description leaf id {
"This container lists the SPF computation events."; type uint32;
} description
container lsp-log { "This leaf defines the event identifier.
list event { This is a purely internal value.";
key id; }
leaf level {
type uint8 {
range "1 .. 2";
}
description
"This leaf describes the level affected bytes
the computation.";
}
container lsp {
leaf lsp {
leaf id { type isis-lsp-id;
type uint32; description
description "This leaf describes the LSPID
"This leaf defines the event identifier. of the LSP.";
This is a purely internal value."; }
} leaf sequence {
leaf level { type uint32;
type uint8 { description
range "1 .. 2"; "This leaf describes the sequence
} number of the LSP.";
description }
"This leaf describes the level affected bytes description
the computation."; "This container describes the received LSP
} , in case of local LSP update the local
container lsp { LSP ID is referenced.";
leaf lsp { }
leaf received-timestamp {
type yang:timestamp;
type isis-lsp-id; description
description "This leaf describes the timestamp
"This leaf describes the LSPID when the LSP was received. In case of
of the LSP."; local LSP update, the timestamp refers
} to the local LSP update time.";
leaf sequence { }
type uint32;
description
"This leaf describes the sequence
number of the LSP.";
}
description
"This container describes the received LSP
, in case of local LSP update the local
LSP ID is referenced.";
}
leaf received-timestamp { description
type yang:timestamp; "List of LSP events.";
}
description description
"This leaf describes the timestamp "This container lists the LSP reception events.
when the LSP was received. In case of Local LSP modification are also contained in the
local LSP update, the timestamp refers list.";
to the local LSP update time."; }
} container database {
container level-1 {
list lsp {
key lsp-id;
description uses isis-database;
"List of LSP events."; description
} "List of LSPs in LSDB.";
}
description description
"This container lists the LSP reception events. "This container describes the list of LSPs
Local LSP modification are also contained in the in the level-1 database.";
list."; }
} container level-2 {
container database { list lsp {
container level-1 { key lsp-id;
list lsp {
key lsp-id;
uses isis-database; uses isis-database;
description description
"List of LSPs in LSDB."; "List of LSPs in LSDB.";
} }
description description
"This container describes the list of LSPs "This container describes the list of LSPs
in the level-1 database."; in the level-2 database.";
} }
container level-2 { description
list lsp { "This container describes ISIS Link State
key lsp-id; databases.";
}
container hostnames {
uses isis-database; list hostname {
description key system-id;
"List of LSPs in LSDB."; leaf system-id {
} type isis-system-id;
description
"This leaf describes the system-id
associated with the hostname.";
}
leaf hostname {
description type string;
"This container describes the list of LSPs description
in the level-2 database."; "This leaf describes the hostname
} associated with the system ID.";
description }
"This container describes ISIS Link State description
databases."; "List of system-id/hostname associations";
} }
container hostnames {
list hostname { description
key system-id; "This container describes the list
leaf system-id { of binding between system-id and
type isis-system-id; hostnames.";
description }
"This leaf describes the system-id
associated with the hostname.";
}
leaf hostname {
type string; description
description "This container defines various ISIS states objects.";
"This leaf describes the hostname }
associated with the system ID."; }
}
description
"List of system-id/hostname associations";
}
description /* RPC methods */
"This container describes the list
of binding between system-id and
hostnames.";
}
description rpc clear-isis-adjacency {
"This container defines various ISIS states objects."; description
} "This RPC request clears a particular
} set of ISIS adjacencies. If the operation
fails for ISIS internal reason, then
error-tag and error-app-tag should be set
to a meaningful value.";
input {
leaf routing-instance-name {
type rt:routing-instance-state-ref;
mandatory "true";
description
"Name of the routing instance whose ISIS
information is being queried.
/* RPC methods */ If the routing instance with name equal to the
value of this parameter doesn't exist, then this
operation SHALL fail with error-tag 'data-missing'
and error-app-tag 'routing-instance-not-found'.";
rpc clear-isis-adjacency { }
description leaf routing-protocol-instance-name {
"This RPC request clears a particular type isis-instance-state-ref;
set of ISIS adjacencies. If the operation mandatory "true";
fails for ISIS internal reason, then description
error-tag and error-app-tag should be set "Name of the ISIS protocol instance whose ISIS
to a meaningful value."; information is being queried.
input {
leaf routing-instance-name {
type rt:routing-instance-state-ref;
mandatory "true";
description
"Name of the routing instance whose ISIS
information is being queried.
If the routing instance with name equal to the If the ISIS instance with name equal to the
value of this parameter doesn't exist, then this value of this parameter doesn't exist, then this
operation SHALL fail with error-tag 'data-missing' operation SHALL fail with error-tag 'data-missing'
and error-app-tag 'routing-instance-not-found'."; and error-app-tag
'routing-protocol-instance-not-found'.";
}
leaf isis-level {
type isis-level;
description
"ISIS level of the adjacency to be cleared.
If ISIS level is level-1-2, both level 1 and level 2
adjacencies would be cleared.
} If the value provided is different from the one
leaf routing-protocol-instance-name { authorized in the enum type, then this
type isis-instance-state-ref; operation SHALL fail with error-tag 'data-missing'
mandatory "true"; and error-app-tag
description 'bad-isis-level'.
"Name of the ISIS protocol instance whose ISIS ";
information is being queried. }
leaf interface {
type string;
description
"Name of the ISIS interface.
If the ISIS instance with name equal to the If the ISIS interface with name equal to the
value of this parameter doesn't exist, then this value of this parameter doesn't exist, then this
operation SHALL fail with error-tag 'data-missing' operation SHALL fail with error-tag 'data-missing'
and error-app-tag and error-app-tag
'routing-protocol-instance-not-found'."; 'isis-interface-not-found'.";
} }
leaf isis-level {
type isis-level;
description
"ISIS level of the adjacency to be cleared.
If ISIS level is level-1-2, both level 1 and level 2
adjacencies would be cleared.
If the value provided is different from the one }
authorized in the enum type, then this }
operation SHALL fail with error-tag 'data-missing'
and error-app-tag
'bad-isis-level'.
";
}
leaf interface {
type string;
description
"Name of the ISIS interface.
If the ISIS interface with name equal to the rpc clear-isis-database {
value of this parameter doesn't exist, then this description
operation SHALL fail with error-tag 'data-missing' "This RPC request clears a particular
and error-app-tag ISIS database. If the operation
'isis-interface-not-found'."; fails for ISIS internal reason, then
} error-tag and error-app-tag should be set
} to a meaningful value.";
} input {
leaf routing-instance-name {
type rt:routing-instance-state-ref;
mandatory "true";
description
"Name of the routing instance whose ISIS
information is being queried.
rpc clear-isis-database { If the routing instance with name equal to the
description value of this parameter doesn't exist, then this
"This RPC request clears a particular operation SHALL fail with error-tag 'data-missing'
ISIS database. If the operation and error-app-tag 'routing-instance-not-found'.";
fails for ISIS internal reason, then
error-tag and error-app-tag should be set
to a meaningful value.";
input {
leaf routing-instance-name {
type rt:routing-instance-state-ref;
mandatory "true";
description
"Name of the routing instance whose ISIS
information is being queried.
If the routing instance with name equal to the }
value of this parameter doesn't exist, then this leaf routing-protocol-instance-name {
operation SHALL fail with error-tag 'data-missing' type isis-instance-state-ref;
and error-app-tag 'routing-instance-not-found'."; mandatory "true";
description
"Name of the ISIS protocol instance whose ISIS
information is being queried.
} If the ISIS instance with name equal to the
leaf routing-protocol-instance-name { value of this parameter doesn't exist, then this
type isis-instance-state-ref; operation SHALL fail with error-tag 'data-missing'
mandatory "true"; and error-app-tag
description 'routing-protocol-instance-not-found'.";
"Name of the ISIS protocol instance whose ISIS }
information is being queried. leaf isis-level {
type isis-level;
description
"ISIS level of the adjacency to be cleared.
If ISIS level is level-1-2, both level 1 and level 2
adjacencies would be cleared.
If the ISIS instance with name equal to the If the value provided is different from the one
value of this parameter doesn't exist, then this authorized in the enum type, then this
operation SHALL fail with error-tag 'data-missing' operation SHALL fail with error-tag 'data-missing'
and error-app-tag and error-app-tag
'routing-protocol-instance-not-found'."; 'bad-isis-level'.
} ";
leaf isis-level { }
type isis-level; }
description
"ISIS level of the adjacency to be cleared.
If ISIS level is level-1-2, both level 1 and level 2
adjacencies would be cleared.
If the value provided is different from the one }
authorized in the enum type, then this
operation SHALL fail with error-tag 'data-missing'
and error-app-tag
'bad-isis-level'.
";
}
}
} /* Notifications */
/* Notifications */ notification isis-adjacency-updown {
leaf interface {
type string;
description
"Describes the interface of the adjacency";
}
leaf neighbor {
type string;
description
"Describes the name of the neighbor. If the
name of the neighbor is not available, the
field would be empty.";
}
leaf neighbor-system-id {
type isis-system-id;
description
"Describes the system-id of the neighbor.";
}
leaf isis-level {
type isis-level;
description
"Describes the ISIS level of the adjacency.";
}
leaf state {
type enumeration {
enum "Up" {
description
"This state describes that
adjacency is established.";
}
enum "Down" {
description
"This state describes that
adjacency is no more established.";
}
}
description
"This leaf describes the new state of the
ISIS adjacency.";
}
leaf reason {
type string;
description
"If the adjacency is going to DOWN,
this leaf provides a reason for the adjacency
going down. The reason is provided as a text.
If the adjacency is going to UP, no reason is
provided.";
}
description
"This notification is sent when an ISIS adjacency
moves to Up state or to Down state.";
}
notification isis-adjacency-updown { }
leaf interface {
type string;
description
"Describes the interface of the adjacency";
}
leaf neighbor {
type string;
description
"Describes the name of the neighbor. If the
name of the neighbor is not available, the
field would be empty.";
}
leaf neighbor-system-id {
type isis-system-id;
description
"Describes the system-id of the neighbor.";
}
leaf isis-level {
type isis-level;
description
"Describes the ISIS level of the adjacency.";
}
leaf state {
type enumeration {
enum "Up" {
description
"This state describes that
adjacency is established.";
}
enum "Down" {
description
"This state describes that
adjacency is no more established.";
}
}
description
"This leaf describes the new state of the
ISIS adjacency.";
}
leaf reason {
type string;
description
"If the adjacency is going to DOWN,
this leaf provides a reason for the adjacency
going down. The reason is provided as a text.
If the adjacency is going to UP, no reason is
provided.";
}
description
"This notification is sent when an ISIS adjacency
moves to Up state or to Down state.";
}
} <CODE ENDS>
<CODE ENDS>
7. Security Considerations 7. Security Considerations
Configuration and state data defined in this document are designed to
be accessed via the NETCONF protocol [RFC6241].
As ISIS is an IGP protocol (critical piece of the network), ensuring
stability and security of the protocol is mandatory for the network
service.
Authors recommends to implement NETCONF access control model
([RFC6536]) to restrict access to all or part of the configuration to
specific users. Access control to RPCs is also critical as RPC
permits to clear protocol datastructures that would definitively
impact the network service. This kind of RPC needs only to be used
in specific cases by well-known experienced users.
Authors consider that all the configuration is considered as
sensitive/vulnerable as well as RPCs. But security teams can decide
to open some part of the configuration to less experienced users
depending on the internal organization, for example :
o User FullWrite : would access to the whole data model. This kind
of profile may be restricted to few experienced people.
o User PartialWrite : would only access to configuration part within
/isis/interfaces/interface. So this kind of profile is restricted
to creation/modification/deletion of interfaces. This profile
does not have access to RPC.
o User Read : would only access to state part /isis-state.
Unauthorized access to configuration or RPC may cause high damages to
the network service.
The /isis-state/database may contain authentication information. As
presented in the description of the /isis-state/database/level-
1/lsp/authentication/authentication-key, the authentication MUST
never be presented in plaintext format for security reason. Authors
recommends the usage of MD5 to present the authentication-key.
Some authentication-key may also be present in the /isis
configuration. When configuring ISIS using the NETCONF protocol,
authors recommends the usage of secure transport of NETCONF using SSH
([RFC6242]).
8. Acknowledgements 8. Acknowledgements
9. IANA Considerations 9. IANA Considerations
10. Normative References 10. Normative References
[I-D.ietf-netmod-routing-cfg] [I-D.ietf-netmod-routing-cfg]
Lhotka, L., "A YANG Data Model for Routing Management", Lhotka, L., "A YANG Data Model for Routing Management",
draft-ietf-netmod-routing-cfg-15 (work in progress), May draft-ietf-netmod-routing-cfg-15 (work in progress), May
2014. 2014.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020, Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010. October 2010.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
Bierman, "Network Configuration Protocol (NETCONF)", RFC
6241, June 2011.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, June 2011.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, March
2012.
Appendix A. Example: NETCONF <get> Reply Appendix A. Example: NETCONF <get> Reply
This section gives an example of a reply to the NETCONF <get> request This section gives an example of a reply to the NETCONF <get> request
for a device that implements the data model defined in this document. for a device that implements the data model defined in this document.
The example is written in XML. The example is written in XML.
<?xml version="1.0" encoding="cp1252"?> <?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
<routing-state xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis"
<routing-instance> xmlns:v4ur="urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"
<name>rtr1</name> xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing"
<id>1</id> xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces"
<router-id>192.0.2.1</router-id> xmlns:ip="urn:ietf:params:xml:ns:yang:ietf-ip">
<routing-protocols> <if:interfaces>
<routing-protocol> <if:interface>
<name>ISIS1</name> <if:name>eth0</if:name>
<type>isis</type> <ip:ipv4>
<isis-state xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> <ip:address>
<adjacencies> <ip:ip>10.0.0.1</ip:ip>
<adjacency> <ip:prefix-length>30</ip:prefix-length>
<interface>eth0</interface> </ip:address>
<level>2</level> </ip:ipv4>
<state>Up</state> </if:interface>
</adjacency> <if:interface>
</adjacencies> <if:name>lo0</if:name>
<spf-log> <ip:ipv4>
<event> <ip:address>
<id>18979</id> <ip:ip>192.168.0.2</ip:ip>
<spf-type>full</spf-type> <ip:prefix-length>32</ip:prefix-length>
<level>2</level> </ip:address>
<spf-delay>150</spf-delay> </ip:ipv4>
<schedule-timestamp>1403612245</schedule-timestamp> </if:interface>
<start-timestamp>1403612399</start-timestamp> </if:interfaces>
<end-timestamp>1403612420</end-timestamp> <if:interfaces-state>
<trigger-lsp> <if:interface>
<lsp>0000.01245.1245.01-01</lsp> <if:name>eth0</if:name>
<sequence>125458</sequence> <if:oper-status>up</if:oper-status>
</trigger-lsp> <if:statistics>
</event> <if:discontinuity-time>
</spf-log> 2014-12-02T12:14:25.123Z
<lsp-log> </if:discontinuity-time>
<event> <if:in-octets>100</if:in-octets>
<id>1245</id> <if:in-unicast-pkts>10</if:in-unicast-pkts>
<level>2</level> <if:in-broadcast-pkts>0</if:in-broadcast-pkts>
<lsp> <if:in-multicast-pkts>0</if:in-multicast-pkts>
<lsp>0000.01245.1245.01-01</lsp> <if:in-discards>0</if:in-discards>
<sequence>125458</sequence> <if:in-errors>0</if:in-errors>
</lsp> <if:in-unknown-protos>0</if:in-unknown-protos>
<received-timestamp></received-timestamp> <if:out-octets>541</if:out-octets>
</event> <if:out-unicast-pkts>100</if:out-unicast-pkts>
</lsp-log> <if:out-broadcast-pkts>0</if:out-broadcast-pkts>
<database> <if:out-multicast-pkts>0</if:out-multicast-pkts>
<level-2> <if:out-discards>0</if:out-discards>
<lsp> <if:out-errors>0</if:out-errors>
<lsp-id>0000.01245.1245.01-01</lsp-id> </if:statistics>
<checksum>1245</checksum> <ip:ipv4>
<remaining-lifetime>45</remaining-lifetime> <ip:address>
<sequence>125458</sequence> <ip:ip>10.0.0.1</ip:ip>
<attributes /> <ip:prefix-length>30</ip:prefix-length>
<extended-is-neighbor> </ip:address>
<neighbor> </ip:ipv4>
<neighbor-id>0000.01245.9999.00</neighbor-id> </if:interface>
<metric>100</metric> <if:interface>
</neighbor> <if:name>lo0</if:name>
</extended-is-neighbor> <if:oper-status>up</if:oper-status>
<if:statistics>
<protocol-supported>204<protocol-supported> <if:discontinuity-time>
2014-12-02T12:14:25.123Z
</if:discontinuity-time>
<if:in-octets>100</if:in-octets>
<if:in-unicast-pkts>10</if:in-unicast-pkts>
<if:in-broadcast-pkts>0</if:in-broadcast-pkts>
<if:in-multicast-pkts>0</if:in-multicast-pkts>
<if:in-discards>0</if:in-discards>
<if:in-errors>0</if:in-errors>
<if:in-unknown-protos>0</if:in-unknown-protos>
<if:out-octets>541</if:out-octets>
<if:out-unicast-pkts>100</if:out-unicast-pkts>
<if:out-broadcast-pkts>0</if:out-broadcast-pkts>
<if:out-multicast-pkts>0</if:out-multicast-pkts>
<if:out-discards>0</if:out-discards>
<if:out-errors>0</if:out-errors>
</if:statistics>
<ip:ipv4>
<ip:address>
<ip:ip>192.168.0.2</ip:ip>
<ip:prefix-length>32</ip:prefix-length>
</ip:address>
</ip:ipv4>
</if:interface>
</if:interfaces-state>
<rt:routing-state>
<rt:routing-instance>
<rt:name>rtr1</rt:name>
<rt:id>1</rt:id>
<rt:router-id>192.0.2.1</rt:router-id>
<rt:interfaces>
<rt:interface>
<rt:name>eth0</rt:name>
</rt:interface>
</rt:interfaces>
<rt:routing-protocols>
<rt:routing-protocol>
<rt:name>ISIS1</rt:name>
<rt:type>isis:isis</rt:type>
<isis:isis-state>
<isis:adjacencies>
<isis:adjacency>
<isis:interface>eth0</isis:interface>
<isis:level>2</isis:level>
<isis:state>Up</isis:state>
</isis:adjacency>
</isis:adjacencies>
<isis:spf-log>
<isis:event>
<isis:id>18979</isis:id>
<isis:spf-type>full</isis:spf-type>
<isis:level>2</isis:level>
<isis:spf-delay>150</isis:spf-delay>
<isis:schedule-timestamp>
1403612245
</isis:schedule-timestamp>
<isis:start-timestamp>
1403612399
</isis:start-timestamp>
<isis:end-timestamp>
1403612420
</isis:end-timestamp>
<isis:trigger-lsp>
<isis:lsp>0000.1245.1245.01-01</isis:lsp>
<isis:sequence>125458</isis:sequence>
</isis:trigger-lsp>
</isis:event>
</isis:spf-log>
<isis:lsp-log>
<isis:event>
<isis:id>1245</isis:id>
<isis:level>2</isis:level>
<isis:lsp>
<isis:lsp>0000.1245.1245.01-01</isis:lsp>
<isis:sequence>125458</isis:sequence>
</isis:lsp>
<isis:received-timestamp>
1403612420
</isis:received-timestamp>
</isis:event>
</isis:lsp-log>
<isis:database>
<isis:level-2>
<isis:lsp>
<isis:lsp-id>0000.1245.1245.01-01</isis:lsp-id>
<isis:checksum>1245</isis:checksum>
<isis:remaining-lifetime>
45
</isis:remaining-lifetime>
<isis:sequence>125458</isis:sequence>
<isis:extended-is-neighbor>
<isis:neighbor>
<isis:neighbor-id>
0000.1245.9999.00
</isis:neighbor-id>
<isis:metric>100</isis:metric>
</isis:neighbor>
</isis:extended-is-neighbor>
<ipv4-addresses>192.168.0.2</ipv4-addresses> <isis:protocol-supported>
<extended-ipv4-reachability> 204
<prefixes> </isis:protocol-supported>
<up-down>false</up-down>
<ip-prefix>192.168.0.2</ip-prefix>
<prefix-len>32</prefix-len>
<metric>30490</metric>
<tag>200</tag>
</prefixes> <isis:ipv4-addresses>
</extended-ipv4-reachability> 192.168.0.2
<dynamic-hostname>rtr1</dynamic-hostname> </isis:ipv4-addresses>
<isis:extended-ipv4-reachability>
<isis:prefixes>
<isis:ip-prefix>192.168.0.2</isis:ip-prefix>
<isis:up-down>false</isis:up-down>
<isis:prefix-len>32</isis:prefix-len>
<isis:metric>30490</isis:metric>
<isis:tag>200</isis:tag>
</isis:prefixes>
</isis:extended-ipv4-reachability>
<isis:dynamic-hostname>
rtr1
</isis:dynamic-hostname>
</lsp> </isis:lsp>
</level-2> </isis:level-2>
</database> </isis:database>
<hostnames> <isis:hostnames>
<hostname> <isis:hostname>
<system-id>0000.01245.9999.00</system-id> <isis:system-id>
<hostname>rtr1</hostname> 0000.1245.9999.00
</hostname> </isis:system-id>
</hostnames> <isis:hostname>rtr1</isis:hostname>
</isis-state> </isis:hostname>
</routing-protocol> </isis:hostnames>
</routing-protocols> </isis:isis-state>
</routing-instance> </rt:routing-protocol>
<ribs> </rt:routing-protocols>
<rib> </rt:routing-instance>
<name>ipv4-master</name> <rt:ribs>
<id>1</id> <rt:rib>
<address-family>v4ur:ipv4-unicast</address-family> <rt:name>ipv4-master</rt:name>
<routes> <rt:id>1</rt:id>
<route> <rt:address-family>
<id>124554657</id> v4ur:ipv4-unicast
<outgoing-interface>eth0</outgoing-interface> </rt:address-family>
<source-protocol>isis</source-protocol> <rt:routes>
<last-updated>2013-07-02T18:02:45+01:00</last-updated> <rt:route>
<destination-prefix xmlns="urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"> <rt:id>124554657</rt:id>
10.0.0.0/24</destination-prefix> <rt:outgoing-interface>eth0</rt:outgoing-interface>
<metric xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> <rt:source-protocol>isis:isis</rt:source-protocol>
750 <rt:last-updated>
</metric> 2013-07-02T18:02:45+01:00
<route-type xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">l2-up-internal</route-type> </rt:last-updated>
<v4ur:destination-prefix>
10.0.0.0/24
</v4ur:destination-prefix>
<isis:metric>750</isis:metric>
<isis:route-type>l2-up-internal</isis:route-type>
</route> </rt:route>
</routes> </rt:routes>
</rib> </rt:rib>
</ribs> </rt:ribs>
</routing-state> </rt:routing-state>
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> <rt:routing>
<routing-instance> <rt:routing-instance>
<id>1</id> <rt:name>rtr1</rt:name>
<router-id>192.0.2.1<router-id> <rt:router-id>192.0.2.1</rt:router-id>
<routing-protocols> <rt:interfaces>
<routing-protocol> <rt:interface>
<name>ISIS1</name> <rt:name>eth0</rt:name>
<type>isis</type> </rt:interface>
<isis-cfg xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> <rt:interface>
<isis-level>level-2</isis-level> <rt:name>lo0</rt:name>
<nsap-address>49.0002.0000.01245.9999.00</nsap-address> </rt:interface>
<lsp-lifetime>65535</lsp-lifetime> </rt:interfaces>
<lsp-refresh>65000</lsp-refresh> <rt:routing-protocols>
<authentication-key>my_password</authentication-key> <rt:routing-protocol>
<authentication-type>plaintext</authentication-type> <rt:name>ISIS1</rt:name>
<isis-multi-topology-cfg> <rt:type>isis:isis</rt:type>
<ipv4-unicast>true</ipv4-unicast> <isis:isis>
</isis-multi-topology-cfg> <isis:isis-level>level-2</isis:isis-level>
<isis:nsap-address>
49.0002.0000.1245.9999.00
</isis:nsap-address>
<isis:lsp-lifetime>65535</isis:lsp-lifetime>
<isis:lsp-refresh>65000</isis:lsp-refresh>
<isis:authentication-key>
f567acafcd6578861df5683268$
</isis:authentication-key>
<isis:authentication-type>
plaintext
</isis:authentication-type>
<isis:isis-multi-topology-cfg>
<isis:ipv4-unicast>true</isis:ipv4-unicast>
</isis:isis-multi-topology-cfg>
<isis-level-2-cfg> <isis:isis-level-2-cfg>
<metric-type>wide-only</metric-type> <isis:metric-type>wide-only</isis:metric-type>
<default-ipv4-unicast-metric>11111111</default-ipv4-unicast-metric> <isis:default-ipv4-unicast-metric>
</isis-level-2-cfg> 11111111
<interfaces> </isis:default-ipv4-unicast-metric>
<interface> </isis:isis-level-2-cfg>
<name>eth0</name> <isis:interfaces>
<lsp-interval>100</lsp-interval> <isis:interface>
<csnp-interval>10</csnp-interval> <isis:name>eth0</isis:name>
<interface-type>point-to-point</interface-type> <isis:lsp-interval>100</isis:lsp-interval>
<level-2> <isis:csnp-interval>10</isis:csnp-interval>
<ipv4-unicast-metric>200</ipv4-unicast-metric> <isis:interface-type>
</level-2> point-to-point
</interface> </isis:interface-type>
<interface> <isis:level-2>
<name>lo0</name> <isis:ipv4-unicast-metric>
<level-2> 200
<ipv4-unicast-metric>1</ipv4-unicast-metric> </isis:ipv4-unicast-metric>
</level-2> </isis:level-2>
<passive>true</passive> </isis:interface>
</interface> <isis:interface>
</interfaces> <isis:name>lo0</isis:name>
</isis-cfg> <isis:level-2>
</routing-protocol> <isis:ipv4-unicast-metric>
</routing-protocols> 1
</routing-instance> </isis:ipv4-unicast-metric>
</routing> </isis:level-2>
</data> <isis:passive>true</isis:passive>
</isis:interface>
</isis:interfaces>
</isis:isis>
</rt:routing-protocol>
</rt:routing-protocols>
</rt:routing-instance>
</rt:routing>
</data>
Author's Address Author's Address
Stephane Litkowski Stephane Litkowski
Orange Orange
Email: stephane.litkowski@orange.com Email: stephane.litkowski@orange.com
 End of changes. 146 change blocks. 
1726 lines changed or deleted 1940 lines changed or added

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