draft-ietf-isis-yang-isis-cfg-09.txt   draft-ietf-isis-yang-isis-cfg-10.txt 
skipping to change at page 1, line 15 skipping to change at page 1, line 15
Intended status: Standards Track D. Yeung Intended status: Standards Track D. Yeung
Expires: March 24, 2017 A. Lindem Expires: March 24, 2017 A. Lindem
Cisco Systems Cisco Systems
J. Zhang J. Zhang
Juniper Networks Juniper Networks
L. Lhotka L. Lhotka
CZ.NIC CZ.NIC
September 20, 2016 September 20, 2016
YANG Data Model for IS-IS protocol YANG Data Model for IS-IS protocol
draft-ietf-isis-yang-isis-cfg-09 draft-ietf-isis-yang-isis-cfg-10
Abstract Abstract
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage IS-IS protocol on network elements. It also defined an and manage IS-IS protocol on network elements. It also defined an
extension module for segment routing configuration and operation. extension module for segment routing configuration and operation.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
skipping to change at page 2, line 47 skipping to change at page 2, line 47
5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 20 5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 20
6. Interaction with Other YANG Modules . . . . . . . . . . . . . 21 6. Interaction with Other YANG Modules . . . . . . . . . . . . . 21
7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 21 7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 21
8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 100 8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 100
9. Security Considerations . . . . . . . . . . . . . . . . . . . 114 9. Security Considerations . . . . . . . . . . . . . . . . . . . 114
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 115
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 115
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115
13. Normative References . . . . . . . . . . . . . . . . . . . . 116 13. Normative References . . . . . . . . . . . . . . . . . . . . 116
Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 117 Appendix A. Example: NETCONF <get> Reply . . . . . . . . . . . . 117
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 120 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 119
1. Introduction 1. Introduction
This document defines a YANG data model for IS-IS routing protocol. This document defines a YANG data model for IS-IS routing protocol.
The data model covers configuration of an IS-IS routing protocol The data model covers configuration of an IS-IS routing protocol
instance as well as operational states. instance as well as operational states.
1.1. Tree diagram 1.1. Tree diagram
skipping to change at page 3, line 39 skipping to change at page 3, line 39
o Parentheses enclose choice and case nodes, and case nodes are also o Parentheses enclose choice and case nodes, and case nodes are also
marked with a colon (":"). marked with a colon (":").
o Ellipsis ("...") stands for contents of subtrees that are not o Ellipsis ("...") stands for contents of subtrees that are not
shown. shown.
2. Design of the Data Model 2. Design of the Data Model
The IS-IS YANG module is divided in two main "isis" containers that The IS-IS YANG module is divided in two main "isis" containers that
are augmenting the "routing-protocol" lists in ietf-routing module are augmenting the "control-plane-protocol" lists in ietf-routing
with specific IS-IS parameters. module with specific IS-IS parameters.
One container contains the writable parameters, while the other One container contains the writable parameters, while the other
contains the operational states. contains the operational states.
The figure below describe the overall structure of the isis YANG The figure below describe the overall structure of the isis YANG
module: module:
module: ietf-isis module: ietf-isis
augment /rt:routing-state/rt: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
skipping to change at page 11, line 19 skipping to change at page 11, line 19
Some parameters like overload bit and route preference are not Some parameters like overload bit and route preference are not
modelled for per level configuration. If an implementation supports modelled for per level configuration. If an implementation supports
per level configuration for such parameter, the implementation SHOULD per level configuration for such parameter, the implementation SHOULD
augment the current model by adding level-1 and level-2 containers augment the current model by adding level-1 and level-2 containers
and reusing existing configuration groupings. and reusing existing configuration groupings.
Example of augmentation : Example of augmentation :
augment "/rt:routing/" + augment "/rt:routing/" +
"rt:routing-protocols/rt:routing-protocol"+ "rt:control-plane-protocols/rt:control-plane-protocol"+
"/isis:isis/isis:overload" { "/isis:isis/isis:overload" {
when "rt:type = 'isis:isis'" { when "rt:type = 'isis:isis'" {
description description
"This augment IS-IS routing protocol when used"; "This augment IS-IS routing protocol when used";
} }
description description
"This augments IS-IS overload configuration "This augments IS-IS overload configuration
with per level configuration."; with per level configuration.";
container level-1 { container level-1 {
skipping to change at page 18, line 22 skipping to change at page 18, line 22
configuration and operational states. configuration and operational states.
The IS-IS SR YANG module requires the base segment routing module The IS-IS SR YANG module requires the base segment routing module
([I-D.ietf-spring-sr-yang]) to be supported as there is a strong ([I-D.ietf-spring-sr-yang]) to be supported as there is a strong
relationship between those modules. relationship between those modules.
The figure below describe the overall structure of the isis-sr YANG The figure below describe the overall structure of the isis-sr YANG
module: module:
module: ietf-isis-sr module: ietf-isis-sr
augment /rt:routing/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis: /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis:
+--rw segment-routing +--rw segment-routing
| +--rw enabled? boolean | +--rw enabled? boolean
| +--rw bindings | +--rw bindings
| +--rw advertise | +--rw advertise
| | +--rw policies* string | | +--rw policies* string
| +--rw receive? boolean | +--rw receive? boolean
+--rw protocol-srgb {sr:protocol-srgb}? +--rw protocol-srgb {sr:protocol-srgb}?
+--rw srgb* [lower-bound upper-bound] +--rw srgb* [lower-bound upper-bound]
+--rw lower-bound uint32 +--rw lower-bound uint32
+--rw upper-bound uint32 +--rw upper-bound uint32
augment /rt:routing/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis:
isis:interfaces/isis:interface: interfaces/isis:interface:
+--rw segment-routing +--rw segment-routing
+--rw adjacency-sid +--rw adjacency-sid
+--rw advertise-adj-group-sid* [group-id] +--rw advertise-adj-group-sid* [group-id]
| +--rw group-id uint32 | +--rw group-id uint32
+--rw advertise-protection? enumeration +--rw advertise-protection? enumeration
augment /rt:routing/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis:
isis:interfaces/isis:interface/isis:fast-reroute: interfaces/isis:interface/isis:fast-reroute:
+--rw ti-lfa {ti-lfa}? +--rw ti-lfa {ti-lfa}?
+--rw enable? boolean +--rw enable? boolean
augment /rt:routing/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis/isis:
isis:interfaces/isis:interface/isis:fast-reroute/isis:lfa/isis:remote-lfa: interfaces/isis:interface/isis:fast-reroute/isis:lfa/isis:remote-lfa:
+--rw use-segment-routing-path? boolean {remote-lfa-sr}? +--rw use-segment-routing-path? boolean {remote-lfa-sr}?
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis: /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
:
+--ro segment-routing +--ro segment-routing
| +--ro enabled? boolean | +--ro enabled? boolean
| +--ro bindings | +--ro bindings
| +--ro advertise | +--ro advertise
| | +--ro policies* string | | +--ro policies* string
| +--ro receive? boolean | +--ro receive? boolean
+--ro protocol-srgb {sr:protocol-srgb}? +--ro protocol-srgb {sr:protocol-srgb}?
+--ro srgb* [lower-bound upper-bound] +--ro srgb* [lower-bound upper-bound]
+--ro lower-bound uint32 +--ro lower-bound uint32
+--ro upper-bound uint32 +--ro upper-bound uint32
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:interfaces/isis:interface: /isis:interfaces/isis:interface:
+--ro segment-routing +--ro segment-routing
+--ro adjacency-sid +--ro adjacency-sid
+--ro advertise-adj-group-sid* [group-id] +--ro advertise-adj-group-sid* [group-id]
| +--ro group-id uint32 | +--ro group-id uint32
+--ro advertise-protection? enumeration +--ro advertise-protection? enumeration
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:interfaces/isis:interface/isis:adjacencies/isis:adjacency: /isis:interfaces/isis:interface/isis:adjacencies/isis:adjacency:
+--ro adjacency-sid* [value] +--ro adjacency-sid* [value]
+--ro af? identityref +--ro af? identityref
+--ro value uint32 +--ro value uint32
+--ro weight? uint8 +--ro weight? uint8
+--ro protection-requested? boolean +--ro protection-requested? boolean
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:database/isis:level-db/isis:lsp/isis:extended-is-neighbor/ /isis:database/isis:level-db/isis:lsp/isis:extended-is-neighbor/isis:neighbor:
isis:neighbor:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro weight? uint8 +--ro weight? uint8
+--ro neighbor-id? isis:system-id +--ro neighbor-id? isis:system-id
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:database/isis:level-db/isis:lsp/isis:mt-is-neighbor/ /isis:database/isis:level-db/isis:lsp/isis:mt-is-neighbor/isis:neighbor:
isis:neighbor:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro weight? uint8 +--ro weight? uint8
+--ro neighbor-id? isis:system-id +--ro neighbor-id? isis:system-id
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/isis:database/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:level-db/isis:lsp/isis:extended-ipv4-reachability/ /isis:database/isis:level-db/isis:lsp/isis:extended-ipv4-reachability/isis:prefi
isis:prefixes: xes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:database/isis:level-db/isis:lsp/ /isis:database/isis:level-db/isis:lsp/isis:mt-extended-ipv4-reachability/isis:pr
isis:mt-extended-ipv4-reachability/isis:prefixes: efixes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:database/isis:level-db/isis:lsp/ /isis:database/isis:level-db/isis:lsp/isis:ipv6-reachability/isis:prefixes:
isis:ipv6-reachability/isis:prefixes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:database/isis:level-db/isis:lsp/isis:mt-ipv6-reachability/ /isis:database/isis:level-db/isis:lsp/isis:mt-ipv6-reachability/isis:prefixes:
isis:prefixes:
+--ro sid-list* [value] +--ro sid-list* [value]
+--ro flags? bits +--ro flags? bits
+--ro algorithm? uint8 +--ro algorithm? uint8
+--ro value uint32 +--ro value uint32
augment /rt:routing-state/rt:control-plane-protocols/ augment
rt:control-plane-protocol/isis:isis/ /rt:routing-state/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis
isis:database/isis:level-db/isis:lsp: /isis:database/isis:level-db/isis:lsp:
+--ro segment-routing-bindings* [fec range] +--ro segment-routing-bindings* [fec range]
+--ro fec string +--ro fec string
+--ro range uint16 +--ro range uint16
+--ro flags? bits +--ro flags? bits
+--ro weight? uint8 +--ro weight? uint8
+--ro binding +--ro binding
+--ro prefix-sid +--ro prefix-sid
| +--ro sid-list* [value] | +--ro sid-list* [value]
| +--ro flags? bits | +--ro flags? bits
skipping to change at page 117, line 28 skipping to change at page 117, line 28
Appendix A. Example: NETCONF <get> Reply Appendix A. Example: NETCONF <get> Reply
This section gives an example of a reply to the NETCONF <get> request This section gives an example of a reply to the NETCONF <get> request
for a device that implements the data model defined in this document. for a device that implements the data model defined in this document.
The example is written in XML. The example is written in XML.
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<routing-instance>
<name>SLI</name> <name>SLI</name>
<router-id>1.1.1.1</router-id> <router-id>1.1.1.1</router-id>
<description/> <description/>
<default-ribs>
<default-rib>
<address-family>ipv4-unicast</address-family>
<rib-name>default</rib-name>
</default-rib>
</default-ribs>
<interfaces> <interfaces>
<interface> <interface>
<name>Loopback0</name> <name>Loopback0</name>
</interface> </interface>
<interface> <interface>
<name>Eth1</name> <name>Eth1</name>
</interface> </interface>
</interfaces> </interfaces>
<routing-protocols> <control-plane-protocols>
<routing-protocol> <control-plane-protocol>
<name>ISIS</name> <name>ISIS</name>
<description/> <description/>
<type>isis:isis</type> <type>isis:isis</type>
<connected-ribs>
<connected-rib>
<rib-name>default</rib-name>
<import-filter/>
<export-filter/>
</connected-rib>
</connected-ribs>
<isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis"> <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">
<instance> <enable>true</enable>
<routing-instance>SLI</routing-instance>
<level-type>level-2</level-type> <level-type>level-2</level-type>
<system-id>87FC.FCDF.4432</system-id> <system-id>87FC.FCDF.4432</system-id>
<area-address>49.0001</area-address> <area-address>49.0001</area-address>
<mpls-te> <mpls-te>
<ipv4-router-id>1.1.1.1</ipv4-router-id> <ipv4-router-id>1.1.1.1</ipv4-router-id>
</mpls-te> </mpls-te>
<lsp-lifetime>65535</lsp-lifetime> <lsp-lifetime>65535</lsp-lifetime>
<lsp-refresh>65000</lsp-refresh> <lsp-refresh>65000</lsp-refresh>
<authentication>
<key>ThisIsThePassword</key>
<type>plain-text</type>
<level>level-2</level>
</authentication>
<metric-type> <metric-type>
<value>wide</value> <value>wide</value>
</metric-type> </metric-type>
<default-metric> <default-metric>
<value>111111</value> <value>111111</value>
</default-metric> </default-metric>
<af> <afs>
<af>ipv4-unicast</af> <af>
<enabled>true</enabled> <af>ipv4-unicast</af>
</af> <enabled>true</enabled>
</af>
</afs>
<interfaces> <interfaces>
<interface> <interface>
<name>Loopback0</name> <name>Loopback0</name>
<tag>200</tag> <tag>200</tag>
<metric> <metric>
<value>0</value> <value>0</value>
</metric> </metric>
<passive>true</passive> <passive>true</passive>
</interface> </interface>
<interface> <interface>
skipping to change at page 119, line 4 skipping to change at page 118, line 33
</metric> </metric>
<passive>true</passive> <passive>true</passive>
</interface> </interface>
<interface> <interface>
<name>Eth1</name> <name>Eth1</name>
<level-type>level-2</level-type> <level-type>level-2</level-type>
<interface-type>point-to-point</interface-type> <interface-type>point-to-point</interface-type>
<metric> <metric>
<value>167890</value> <value>167890</value>
</metric> </metric>
</interface> </interface>
</interfaces> </interfaces>
</instance>
</isis> </isis>
</routing-protocol> </control-plane-protocol>
</routing-protocols> </control-plane-protocols>
</routing-instance>
<ribs>
<rib>
<name>default</name>
<address-family>ipv4-unicast</address-family>
<description/>
<recipient-ribs>
<recipient-rib>
<rib-name/>
<filter/>
</recipient-rib>
</recipient-ribs>
</rib>
</ribs>
<route-filters>
<route-filter>
<name/>
<description/>
<type/>
</route-filter>
</route-filters>
</routing> </routing>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface> <interface>
<name>Loopback0</name> <name>Loopback0</name>
<description/> <description/>
<type/> <type/>
<link-up-down-trap-enable/> <link-up-down-trap-enable/>
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<mtu/> <mtu/>
<address> <address>
 End of changes. 28 change blocks. 
103 lines changed or deleted 59 lines changed or added

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