idnits 2.17.00 (12 Aug 2021) /tmp/idnits39798/draft-ietf-lsr-yang-isis-reverse-metric-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 10 instances of too long lines in the document, the longest one being 5 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 330 has weird spacing: '... name ietf-...' == Line 332 has weird spacing: '...mespace urn:i...' == Line 334 has weird spacing: '... prefix isis-...' -- The document date (28 July 2020) is 661 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO10589' Summary: 1 error (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group C. Hopps 3 Internet-Draft LabN Consulting, L.L.C. 4 Intended status: Standards Track 28 July 2020 5 Expires: 29 January 2021 7 YANG Module for IS-IS Reverse Metric 8 draft-ietf-lsr-yang-isis-reverse-metric-01 10 Abstract 12 This document defines a YANG module for managing the reverse metric 13 extension to the the intermediate system to intermediate system 14 routeing protocol. 16 Status of This Memo 18 This Internet-Draft is submitted in full conformance with the 19 provisions of BCP 78 and BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF). Note that other groups may also distribute 23 working documents as Internet-Drafts. The list of current Internet- 24 Drafts is at https://datatracker.ietf.org/drafts/current/. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 This Internet-Draft will expire on 29 January 2021. 33 Copyright Notice 35 Copyright (c) 2020 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 40 license-info) in effect on the date of publication of this document. 41 Please review these documents carefully, as they describe your rights 42 and restrictions with respect to this document. Code Components 43 extracted from this document must include Simplified BSD License text 44 as described in Section 4.e of the Trust Legal Provisions and are 45 provided without warranty as described in the Simplified BSD License. 47 Table of Contents 49 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 50 2. YANG Management . . . . . . . . . . . . . . . . . . . . . . . 2 51 2.1. YANG Tree . . . . . . . . . . . . . . . . . . . . . . . . 2 52 2.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 3 53 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 54 3.1. Updates to the IETF XML Registry . . . . . . . . . . . . 7 55 3.2. Updates to the YANG Module Names Registry . . . . . . . . 8 56 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 57 5. Normative References . . . . . . . . . . . . . . . . . . . . 10 58 6. Informative References . . . . . . . . . . . . . . . . . . . 11 59 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 11 60 A.1. Example Enable XML . . . . . . . . . . . . . . . . . . . 11 61 A.2. Example Use XML . . . . . . . . . . . . . . . . . . . . . 12 62 A.3. Example JSON . . . . . . . . . . . . . . . . . . . . . . 13 63 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 14 65 1. Introduction 67 This document defines a YANG module for managing the reverse metric 68 extension to the intermediate system to intermediate system routeing 69 protocol (IS-IS) [RFC8500], [ISO10589]. Please refer to [RFC8500] 70 for the description and definition of the functionality managed by 71 this module. 73 The YANG data model described in this document conforms to the 74 Network Management Datastore Architecture defined in [RFC8342]. 76 2. YANG Management 78 2.1. YANG Tree 80 The following is the YANG tree diagram ([RFC8340]) for the IS-IS 81 reverse metric extension additions. 83 module: ietf-isis-reverse-metric 84 augment /rt:routing/rt:control-plane-protocols 85 /rt:control-plane-protocol/isis:isis: 86 +--rw reverse-metric 87 +--rw enable-receive? boolean 88 augment /rt:routing/rt:control-plane-protocols 89 /rt:control-plane-protocol/isis:isis/isis:interfaces 90 /isis:interface: 91 +--rw reverse-metric 92 +--rw reverse-metric 93 | +--rw metric? isis:wide-metric 94 | +--rw flags 95 | | +--rw whole-lan? boolean 96 | | +--rw allow-unreachable? boolean 97 | +--rw exclude-te-metric? boolean 98 +--rw level-1 99 | +--rw reverse-metric 100 | +--rw metric? isis:wide-metric 101 | +--rw flags 102 | | +--rw whole-lan? boolean 103 | | +--rw allow-unreachable? boolean 104 | +--rw exclude-te-metric? boolean 105 +--rw level-2 106 +--rw reverse-metric 107 +--rw metric? isis:wide-metric 108 +--rw flags 109 | +--rw whole-lan? boolean 110 | +--rw allow-unreachable? boolean 111 +--rw exclude-te-metric? boolean 112 augment /rt:routing/rt:control-plane-protocols 113 /rt:control-plane-protocol/isis:isis/isis:interfaces 114 /isis:interface/isis:adjacencies/isis:adjacency: 115 +--ro reverse-metric 116 +--ro metric? isis:wide-metric 117 +--ro flags 118 | +--ro whole-lan? boolean 119 | +--ro allow-unreachable? boolean 120 +--ro te-metric? uint32 122 2.2. YANG Module 124 The following is the YANG module for managing the IS-IS reverse 125 metric functionality defined in [RFC8500]. It imports modules from 126 the following RFCs: [RFC8349], [I-D.ietf-isis-yang-isis-cfg]. 128 file "ietf-isis-reverse-metric@2020-07-28.yang" 129 module ietf-isis-reverse-metric { 130 yang-version 1.1; 131 namespace "urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric"; 132 prefix isis-rmetric; 134 import ietf-routing { 135 prefix rt; 136 reference 137 "RFC8349: A YANG Data Model for Routing Management (NMDA Version)"; 138 } 139 import ietf-isis { 140 prefix isis; 141 reference 142 "draft-ietf-isis-yang-isis-cfg-42: 143 YANG Data Model for IS-IS Protocol"; 144 } 146 organization 147 "IETF LSR Working Group (LSR)"; 149 contact 150 "WG Web: 151 WG List: 153 Author: Christian Hopps 154 "; 156 // RFC Ed.: replace XXXX with actual RFC number and 157 // remove this note. 159 description 160 "This module defines the configuration and operational state for 161 managing the IS-IS reverse metric functionality [RFC8500]. 163 Copyright (c) 2019 IETF Trust and the persons identified as 164 authors of the code. All rights reserved. 166 Redistribution and use in source and binary forms, with or 167 without modification, is permitted pursuant to, and subject to 168 the license terms contained in, the Simplified BSD License set 169 forth in Section 4.c of the IETF Trust's Legal Provisions 170 Relating to IETF Documents 171 (https://trustee.ietf.org/license-info). 173 This version of this YANG module is part of RFC XXXX 174 (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for 175 full legal notices."; 177 revision 2020-07-28 { 178 description "Initial Revision"; 179 reference "RFC XXXX: YANG IS-IS Reverse Metric"; 180 } 182 grouping reverse-metric-data { 183 description "IS-IS reverse metric data."; 184 leaf metric { 185 type isis:wide-metric; 186 description "The reverse metric value."; 187 reference "RFC8500, Section 2"; 188 } 190 container flags { 191 description "The reverse metric flag values."; 192 leaf whole-lan { 193 type boolean; 194 description 195 "The 'whole LAN' or W-bit. If true then a DIS processing this 196 reverse metric will add the metric value to all the nodes it 197 advertises in the pseudo-node LSP for this interface. 198 Otherwise it will only increment the metric for the 199 advertising node in the pseudo-node LSP for this interface."; 200 reference "RFC8500, Section 2"; 201 } 202 leaf allow-unreachable { 203 type boolean; 204 description 205 "The 'allow-unreachable' or U-bit. If true it allows the 206 neighbor to increment the overall metric up to 2^24-1 rather 207 than the lesser maximum of 2^24-2, and if done will cause 208 traffic to stop using rather than avoid using the interface."; 209 reference "RFC8500, Section 2"; 210 } 211 } 212 } 214 grouping reverse-metric-if-config-data { 215 description "IS-IS reverse metric config data."; 216 container reverse-metric { 217 description "IS-IS reverse metric data."; 218 uses reverse-metric-data; 219 leaf exclude-te-metric { 220 type boolean; 221 default false; 222 description 223 "If true and there is a TE metric defined for this 224 interface then do not send the TE metric sub-TLV in the 225 reverse metric TLV."; 226 reference "RFC8500, Section 3.5"; 227 } 228 } 229 } 231 grouping tlv16-reverse-metric { 232 description "IS-IS reverse metric TLV data."; 233 container reverse-metric { 234 description "IS-IS reverse metric TLV data."; 235 uses reverse-metric-data; 236 leaf te-metric { 237 type uint32; 238 description "The TE metric value from the sub-TLV if present."; 239 reference "RFC8500, Section 3.5"; 240 } 241 } 242 } 244 augment "/rt:routing/rt:control-plane-protocols/" 245 +"rt:control-plane-protocol/" 246 +"isis:isis" { 247 when "../rt:type = 'isis:isis'" { 248 description 249 "This augment is only valid when routing protocol instance 250 type is 'isis'."; 251 } 253 description 254 "The reverse metric configuration for an IS-IS instance."; 256 container reverse-metric { 257 description "Global reverse metric configuration."; 258 leaf enable-receive { 259 type boolean; 260 default false; 261 description 262 "Enable handling of reverse metric announcements from 263 neighbors. By default reverse metric handling is disabled 264 and must be explicitly enabled through this configuration."; 265 } 266 } 267 } 269 augment "/rt:routing/rt:control-plane-protocols/" 270 +"rt:control-plane-protocol/" 271 +"isis:isis/isis:interfaces/isis:interface" { 272 when "../../../rt:type = 'isis:isis'" { 273 description 274 "This augment is only valid when routing protocol instance 275 type is 'isis'."; 276 } 278 description 279 "The reverse metric configuration for an interface."; 281 container reverse-metric { 282 description "Announce a reverse metric to neighbors."; 283 uses reverse-metric-if-config-data; 284 container level-1 { 285 description "Announce a reverse metric to level-1 neighbors."; 286 uses reverse-metric-if-config-data; 287 } 288 container level-2 { 289 description "Announce a reverse metric to level-2 neighbors."; 290 uses reverse-metric-if-config-data; 291 } 292 } 293 } 294 augment "/rt:routing/rt:control-plane-protocols/" 295 +"rt:control-plane-protocol/" 296 +"isis:isis/isis:interfaces/isis:interface/" 297 +"isis:adjacencies/isis:adjacency" { 298 when "../../../../../rt:type = 'isis:isis'" { 299 description 300 "This augment is only valid when routing protocol instance 301 type is 'isis'"; 302 } 304 description 305 "The reverse metric state advertised by an adjacency."; 306 uses tlv16-reverse-metric; 307 } 308 } 309 311 3. IANA Considerations 313 3.1. Updates to the IETF XML Registry 315 This document registers a URI in the "IETF XML Registry" [RFC3688]. 316 Following the format in [RFC3688], the following registration has 317 been made: 319 URI urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric 320 Registrant Contact The IESG. 322 XML N/A; the requested URI is an XML namespace. 324 3.2. Updates to the YANG Module Names Registry 326 This document registers one YANG module in the "YANG Module Names" 327 registry [RFC6020]. Following the format in [RFC6020], the following 328 registration has been made: 330 name ietf-isis-reverse-metric 332 namespace urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric 334 prefix isis-rmetric 336 reference RFC XXXX (RFC Ed.: replace XXX with actual RFC number and 337 remove this note.) 339 4. Security Considerations 341 The YANG module specified in this document defines a schema for data 342 that is designed to be accessed via network management protocols such 343 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 344 is the secure transport layer, and the mandatory-to-implement secure 345 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 346 is HTTPS, and the mandatory-to-implement secure transport is TLS 347 [RFC8446]. 349 The NETCONF access control model [RFC8341] provides the means to 350 restrict access for particular NETCONF or RESTCONF users to a 351 preconfigured subset of all available NETCONF or RESTCONF protocol 352 operations and content. 354 The YANG module defined in this document can enable, disable and 355 modify the behavior of metrics used by routing. For the security 356 implications regarding these types of changes consult the [RFC8500] 357 which defines the functionality. 359 There are a number of data nodes defined in this YANG module that are 360 writable/creatable/deletable (i.e., "config true", which is the 361 default). These data nodes may be considered sensitive or vulnerable 362 in some network environments. Write operations (e.g., edit-config) 363 to these data nodes without proper protection can have a negative 364 effect on network operations. 366 These are the subtrees and data nodes and their sensitivity/ 367 vulnerability: 369 Under "/rt:routing/rt:control-plane-protocols/" + 370 "rt:control-plane-protocol/isis:isis" 372 - /isis-rmetric:reverse-metric/isis-rmetric:enable-receive 374 Under "/rt:routing/rt:control-plane-protocols/" + 375 "rt:control-plane-protocol/isis:isis/" + 376 "isis:interfaces/isis:interface/" + 377 "isis-rmetric:reverse-metric" 379 - /isis-rmetric:metric 380 - /isis-rmetric:flags/isis-rmetric:whole-lan 381 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 382 - /isis-rmetric:exclude-te-metric 384 Under "/rt:routing/rt:control-plane-protocols/" + 385 "rt:control-plane-protocol/isis:isis/" + 386 "isis:interfaces/isis:interface/" + 387 "isis:level-1/isis-rmetric:reverse-metric" 389 - /isis-rmetric:metric 390 - /isis-rmetric:flags/isis-rmetric:whole-lan 391 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 392 - /isis-rmetric:exclude-te-metric 394 Under "/rt:routing/rt:control-plane-protocols/" + 395 "rt:control-plane-protocol/isis:isis/" + 396 "isis:interfaces/isis:interface/" + 397 "isis:level-2/isis-rmetric:reverse-metric" 399 - /isis-rmetric:metric 400 - /isis-rmetric:flags/isis-rmetric:whole-lan 401 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 402 - /isis-rmetric:exclude-te-metric 404 Some of the readable data nodes in this YANG module may be considered 405 sensitive or vulnerable in some network environments. It is thus 406 important to control read access (e.g., via get, get-config, or 407 notification) to these data nodes. These are the subtrees and data 408 nodes and their sensitivity/vulnerability: 410 All nodes are under the following subtree, so that prefix will be 411 assume for each node description. 413 Under "/rt:routing/rt:control-plane-protocols/" + 414 "rt:control-plane-protocol/isis:isis/" + 415 "isis:interfaces/isis:interface/" + 416 "isis:adjacencies/isis:adjacency/" + 417 "isis-rmetric:reverse-metric" 419 - /isis-rmetric:metric 420 - /isis-rmetric:flags/isis-rmetric:whole-lan 421 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 422 - /isis-rmetric:te-metric 424 5. Normative References 426 [ISO10589] International Organization for Standardization, 427 "Intermediate system to intermediate system intra-domain- 428 routing routine information exchange protocol for use in 429 conjunction with the protocol for providing the 430 connectionless-mode Network Service (ISO 8473)", 431 ISO Standard 10589, 1992. 433 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 434 DOI 10.17487/RFC3688, January 2004, 435 . 437 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 438 the Network Configuration Protocol (NETCONF)", RFC 6020, 439 DOI 10.17487/RFC6020, October 2010, 440 . 442 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 443 and A. Bierman, Ed., "Network Configuration Protocol 444 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 445 . 447 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 448 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 449 . 451 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 452 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 453 . 455 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 456 Access Control Model", STD 91, RFC 8341, 457 DOI 10.17487/RFC8341, March 2018, 458 . 460 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 461 and R. Wilton, "Network Management Datastore Architecture 462 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 463 . 465 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 466 Routing Management (NMDA Version)", RFC 8349, 467 DOI 10.17487/RFC8349, March 2018, 468 . 470 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 471 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 472 . 474 [RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing 475 with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, 476 February 2019, . 478 [I-D.ietf-isis-yang-isis-cfg] 479 Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. 480 Lhotka, "YANG Data Model for IS-IS Protocol", Work in 481 Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- 482 42, 15 October 2019, . 485 6. Informative References 487 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 488 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 489 . 491 Appendix A. Examples 493 A.1. Example Enable XML 495 Below is an example of YANG XML data to enable reverse metric 496 processing. 498 502 503 504 isis:isis 505 default 506 507 00 508 509 true 510 511 512 513 514 516 Figure 1: Example XML data to enable reverse metric processing. 518 A.2. Example Use XML 520 Below is an example of YANG XML data for the ietf-isis-reverse-metric 521 module. 523 526 527 eth0 528 ianaift:ethernetCsmacd 529 530 531 535 536 537 isis:isis 538 default 539 540 00 541 542 543 eth0 544 545 546 547 65535 548 549 550 551 552 553 554 555 556 558 Figure 2: Example XML data for ietf-isis-reverse-metric module. 560 A.3. Example JSON 562 Below is an example of YANG XML data for the ietf-isis-reverse-metric 563 module. 565 { 566 "ietf-interfaces:interfaces": { 567 "interface": [ 568 { 569 "name": "eth0", 570 "type": "iana-if-type:ethernetCsmacd" 571 } 572 ] 573 }, 574 "ietf-routing:routing": { 575 "control-plane-protocols": { 576 "control-plane-protocol": [ 577 { 578 "type": "ietf-isis:isis", 579 "name": "default", 580 "ietf-isis:isis": { 581 "area-address": [ 582 "00" 583 ], 584 "interfaces": { 585 "interface": [ 586 { 587 "name": "eth0", 588 "ietf-isis-reverse-metric:reverse-metric": { 589 "level-1": { 590 "reverse-metric": { 591 "metric": 65535, 592 "exclude-te-metric": true 593 } 594 } 595 } 596 } 597 ] 598 } 599 } 600 } 601 ] 602 } 603 } 604 } 606 Figure 3: Example JSON data for level-1 only reverse metric. 608 Author's Address 610 Christian Hopps 611 LabN Consulting, L.L.C. 613 Email: chopps@chopps.org