idnits 2.17.1 draft-ietf-lsr-yang-isis-reverse-metric-05.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 340 has weird spacing: '... name ietf-...' == Line 342 has weird spacing: '...mespace urn:i...' == Line 344 has weird spacing: '... prefix isis-...' -- The document date (11 December 2021) is 867 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: 0 errors (**), 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 11 December 2021 5 Expires: 14 June 2022 7 YANG Module for IS-IS Reverse Metric 8 draft-ietf-lsr-yang-isis-reverse-metric-05 10 Abstract 12 This document defines a YANG module for managing the reverse metric 13 extension to the Intermediate System to Intermediate System intra- 14 domain routeing information exchange protocol (IS-IS). 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 14 June 2022. 33 Copyright Notice 35 Copyright (c) 2021 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 Revised BSD License text as 44 described in Section 4.e of the Trust Legal Provisions and are 45 provided without warranty as described in the Revised 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 . . . . . . . . . . . . . . . . . . . . . 8 54 3.1. Updates to the IETF XML Registry . . . . . . . . . . . . 8 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 IS-IS [RFC8500], [ISO10589]. Please refer to [RFC8500] 69 for the description and definition of the functionality managed by 70 this module. 72 The YANG data model described in this document conforms to the 73 Network Management Datastore Architecture defined in [RFC8342]. 75 2. YANG Management 77 2.1. YANG Tree 79 The following is the YANG tree diagram ([RFC8340]) for the IS-IS 80 reverse metric extension additions. 82 module: ietf-isis-reverse-metric 83 augment /rt:routing/rt:control-plane-protocols 84 /rt:control-plane-protocol/isis:isis: 85 +--rw reverse-metric 86 +--rw enable-receive? boolean 87 augment /rt:routing/rt:control-plane-protocols 88 /rt:control-plane-protocol/isis:isis/isis:interfaces 89 /isis:interface: 90 +--rw reverse-metric 91 +--rw reverse-metric 92 | +--rw metric? isis:wide-metric 93 | +--rw flags 94 | | +--rw whole-lan? boolean 95 | | +--rw allow-unreachable? boolean 96 | +--rw exclude-te-metric? boolean 97 +--rw level-1 98 | +--rw reverse-metric 99 | +--rw metric? isis:wide-metric 100 | +--rw flags 101 | | +--rw whole-lan? boolean 102 | | +--rw allow-unreachable? boolean 103 | +--rw exclude-te-metric? boolean 104 +--rw level-2 105 +--rw reverse-metric 106 +--rw metric? isis:wide-metric 107 +--rw flags 108 | +--rw whole-lan? boolean 109 | +--rw allow-unreachable? boolean 110 +--rw exclude-te-metric? boolean 111 augment /rt:routing/rt:control-plane-protocols 112 /rt:control-plane-protocol/isis:isis/isis:interfaces 113 /isis:interface/isis:adjacencies/isis:adjacency: 114 +--ro reverse-metric 115 +--ro metric? isis:wide-metric 116 +--ro flags 117 | +--ro whole-lan? boolean 118 | +--ro allow-unreachable? boolean 119 +--ro te-metric? uint32 121 2.2. YANG Module 123 The following is the YANG module for managing the IS-IS reverse 124 metric functionality defined in [RFC8500]. It imports modules from 125 the following RFCs: [RFC8349], [I-D.ietf-isis-yang-isis-cfg]. 127 file "ietf-isis-reverse-metric@2021-12-11.yang" 128 module ietf-isis-reverse-metric { 129 yang-version 1.1; 130 namespace "urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric"; 131 prefix isis-rmetric; 133 import ietf-routing { 134 prefix rt; 135 reference 136 "RFC8349: 137 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://www.rfc-editor.org/info/rfcXXXX>); see the RFC itself 175 for full legal notices."; 177 revision 2021-12-11 { 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 } 189 container flags { 190 description "The reverse metric flag values."; 191 leaf whole-lan { 192 type boolean; 193 description 194 "The 'whole LAN' or W-bit. If true then a DIS processing 195 this reverse metric will add the metric value to all the 196 nodes it advertises in the pseudo-node LSP for this 197 interface. Otherwise, it will only increment the metric 198 for the advertising node in the pseudo-node LSP for this 199 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 207 rather than the lesser maximum of 2^24-2. If the metric 208 is then set by the neighbor to 2^24-1, it will cause 209 traffic to stop using, rather than avoid using, the 210 interface."; 211 reference "RFC8500, Section 2"; 212 } 213 } 214 } 216 grouping reverse-metric-if-config-data { 217 description "IS-IS reverse metric config data."; 218 container reverse-metric { 219 description "IS-IS reverse metric data."; 220 uses reverse-metric-data; 221 leaf exclude-te-metric { 222 type boolean; 223 default false; 224 description 225 "If true and there is a TE metric defined for this 226 interface then do not send the TE metric sub-TLV in the 227 reverse metric TLV."; 229 reference "RFC8500, Section 2"; 230 } 231 } 232 } 234 grouping tlv16-reverse-metric { 235 description "IS-IS reverse metric TLV data."; 236 container reverse-metric { 237 description "IS-IS reverse metric TLV data."; 238 uses reverse-metric-data; 239 leaf te-metric { 240 type uint32; 241 description 242 "The TE metric value from the sub-TLV if present."; 243 reference "RFC8500, Section 2"; 244 } 245 } 246 } 248 augment "/rt:routing/rt:control-plane-protocols/" 249 +"rt:control-plane-protocol/" 250 +"isis:isis" { 251 when "derived-from-or-self(../rt:type, 'isis:isis')" { 252 description 253 "This augment is only valid when routing protocol instance 254 type is 'isis'."; 255 } 257 description 258 "The reverse metric configuration for an IS-IS instance."; 260 container reverse-metric { 261 description "Global reverse metric configuration."; 262 leaf enable-receive { 263 type boolean; 264 default false; 265 description 266 "Enable handling of reverse metric announcements from 267 neighbors. By default, reverse metric handling is disabled 268 and must be explicitly enabled through this 269 configuration."; 270 } 272 } 273 } 275 augment "/rt:routing/rt:control-plane-protocols/" 276 +"rt:control-plane-protocol/" 277 +"isis:isis/isis:interfaces/isis:interface" { 278 when "derived-from-or-self(../../../rt:type, 'isis:isis')" { 279 description 280 "This augment is only valid when routing protocol instance 281 type is 'isis'."; 282 } 284 description 285 "The reverse metric configuration for an interface."; 287 container reverse-metric { 288 description "Announce a reverse metric to neighbors."; 289 uses reverse-metric-if-config-data; 290 container level-1 { 291 description 292 "Announce a reverse metric to level-1 neighbors."; 293 uses reverse-metric-if-config-data; 294 } 295 container level-2 { 296 description 297 "Announce a reverse metric to level-2 neighbors."; 298 uses reverse-metric-if-config-data; 299 } 300 } 301 } 302 augment "/rt:routing/rt:control-plane-protocols/" 303 +"rt:control-plane-protocol/" 304 +"isis:isis/isis:interfaces/isis:interface/" 305 +"isis:adjacencies/isis:adjacency" { 306 when "derived-from-or-self(../../../../../rt:type, 307 'isis:isis')" { 308 description 309 "This augment is only valid when routing protocol instance 310 type is 'isis'"; 311 } 313 description 314 "The reverse metric state advertised by an adjacency."; 315 uses tlv16-reverse-metric; 316 } 317 } 318 320 3. IANA Considerations 322 3.1. Updates to the IETF XML Registry 324 This document registers a URI in the "IETF XML Registry" [RFC3688]. 325 Following the format in [RFC3688], the following registration has 326 been made: 328 URI urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric 330 Registrant Contact The IESG. 332 XML N/A; the requested URI is an XML namespace. 334 3.2. Updates to the YANG Module Names Registry 336 This document registers one YANG module in the "YANG Module Names" 337 registry [RFC6020]. Following the format in [RFC6020], the following 338 registration has been made: 340 name ietf-isis-reverse-metric 342 namespace urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric 344 prefix isis-rmetric 346 reference RFC XXXX (RFC Ed.: replace XXX with actual RFC number and 347 remove this note.) 349 4. Security Considerations 351 The YANG module specified in this document defines a schema for data 352 that is designed to be accessed via network management protocols such 353 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 354 is the secure transport layer, and the mandatory-to-implement secure 355 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 356 is HTTPS, and the mandatory-to-implement secure transport is TLS 357 [RFC8446]. 359 The NETCONF access control model [RFC8341] provides the means to 360 restrict access for particular NETCONF or RESTCONF users to a 361 preconfigured subset of all available NETCONF or RESTCONF protocol 362 operations and content. 364 The YANG module defined in this document can enable, disable and 365 modify the behavior of metrics used by routing. For the security 366 implications regarding these types of changes consult [RFC8500] which 367 defines the functionality. 369 There are a number of data nodes defined in this YANG module that are 370 writable/creatable/deletable (i.e., "config true", which is the 371 default). These data nodes may be considered sensitive or vulnerable 372 in some network environments. Write operations (e.g., edit-config) 373 to these data nodes without proper protection can have a negative 374 effect on network operations. These YANG nodes correspond directly 375 to the RFC 8500 functionality and the security considerations of the 376 functionality are described in RFC 8500. 378 These are the subtrees and data nodes: 380 Under "/rt:routing/rt:control-plane-protocols/" + 381 "rt:control-plane-protocol/isis:isis" 383 - /isis-rmetric:reverse-metric/isis-rmetric:enable-receive 385 Under "/rt:routing/rt:control-plane-protocols/" + 386 "rt:control-plane-protocol/isis:isis/" + 387 "isis:interfaces/isis:interface/" + 388 "isis-rmetric:reverse-metric" 390 - /isis-rmetric:metric 391 - /isis-rmetric:flags/isis-rmetric:whole-lan 392 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 393 - /isis-rmetric:exclude-te-metric 395 Under "/rt:routing/rt:control-plane-protocols/" + 396 "rt:control-plane-protocol/isis:isis/" + 397 "isis:interfaces/isis:interface/" + 398 "isis:level-1/isis-rmetric:reverse-metric" 400 - /isis-rmetric:metric 401 - /isis-rmetric:flags/isis-rmetric:whole-lan 402 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 403 - /isis-rmetric:exclude-te-metric 405 Under "/rt:routing/rt:control-plane-protocols/" + 406 "rt:control-plane-protocol/isis:isis/" + 407 "isis:interfaces/isis:interface/" + 408 "isis:level-2/isis-rmetric:reverse-metric" 410 - /isis-rmetric:metric 411 - /isis-rmetric:flags/isis-rmetric:whole-lan 412 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 413 - /isis-rmetric:exclude-te-metric 415 Some of the readable data nodes in this YANG module may be considered 416 sensitive or vulnerable in some network environments. It is thus 417 important to control read access (e.g., via get, get-config, or 418 notification) to these data nodes. These YANG nodes correspond 419 directly to the RFC 8500 functionality and the security 420 considerations of the functionality are described in RFC 8500. These 421 are the subtrees and data nodes: 423 Under "/rt:routing/rt:control-plane-protocols/" + 424 "rt:control-plane-protocol/isis:isis/" + 425 "isis:interfaces/isis:interface/" + 426 "isis:adjacencies/isis:adjacency/" + 427 "isis-rmetric:reverse-metric" 429 - /isis-rmetric:metric 430 - /isis-rmetric:flags/isis-rmetric:whole-lan 431 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 432 - /isis-rmetric:te-metric 434 5. Normative References 436 [ISO10589] International Organization for Standardization, 437 "Intermediate System to Intermediate System intra-domain 438 routeing information exchange protocol for use in 439 conjunction with the protocol for providing the 440 connectionless-mode network service (ISO 8473)", ISO 441 Standard 10589:2002, 2002. 443 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 444 DOI 10.17487/RFC3688, January 2004, 445 . 447 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 448 the Network Configuration Protocol (NETCONF)", RFC 6020, 449 DOI 10.17487/RFC6020, October 2010, 450 . 452 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 453 Access Control Model", STD 91, RFC 8341, 454 DOI 10.17487/RFC8341, March 2018, 455 . 457 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 458 and R. Wilton, "Network Management Datastore Architecture 459 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 460 . 462 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 463 Routing Management (NMDA Version)", RFC 8349, 464 DOI 10.17487/RFC8349, March 2018, 465 . 467 [RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing 468 with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, 469 February 2019, . 471 [I-D.ietf-isis-yang-isis-cfg] 472 Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. 473 Lhotka, "YANG Data Model for IS-IS Protocol", Work in 474 Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- 475 42, 15 October 2019, 476 . 479 6. Informative References 481 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 482 and A. Bierman, Ed., "Network Configuration Protocol 483 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 484 . 486 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 487 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 488 . 490 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 491 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 492 . 494 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 495 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 496 . 498 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 499 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 500 . 502 Appendix A. Examples 504 A.1. Example Enable XML 506 Below is an example of XML instance data to enable reverse metric 507 processing. 509 514 515 516 isis:isis 517 default 518 519 00 520 521 true 522 523 524 525 526 528 Figure 1: Example XML data to enable reverse metric processing. 530 A.2. Example Use XML 532 Below is an example of XML instance data for the ietf-isis-reverse- 533 metric module. 535 538 539 eth0 540 ianaift:ethernetCsmacd 541 542 543 548 549 550 isis:isis 551 default 552 553 00 554 555 556 eth0 557 558 559 560 65535 561 562 563 564 565 566 567 568 569 571 Figure 2: Example XML data for ietf-isis-reverse-metric module. 573 A.3. Example JSON 575 Below is an example of JSON instance data for the ietf-isis-reverse- 576 metric module. 578 { 579 "ietf-interfaces:interfaces": { 580 "interface": [ 581 { 582 "name": "eth0", 583 "type": "iana-if-type:ethernetCsmacd" 584 } 585 ] 586 }, 587 "ietf-routing:routing": { 588 "control-plane-protocols": { 589 "control-plane-protocol": [ 590 { 591 "type": "ietf-isis:isis", 592 "name": "default", 593 "ietf-isis:isis": { 594 "area-address": [ 595 "00" 596 ], 597 "interfaces": { 598 "interface": [ 599 { 600 "name": "eth0", 601 "ietf-isis-reverse-metric:reverse-metric": { 602 "level-1": { 603 "reverse-metric": { 604 "metric": 65535, 605 "exclude-te-metric": true 606 } 607 } 608 } 609 } 610 ] 611 } 612 } 613 } 614 ] 615 } 616 } 617 } 619 Figure 3: Example JSON data for level-1 only reverse metric. 621 Author's Address 623 Christian Hopps 624 LabN Consulting, L.L.C. 626 Email: chopps@chopps.org