idnits 2.17.1 draft-ietf-lsr-yang-isis-reverse-metric-06.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 359 has weird spacing: '... name ietf-...' == Line 361 has weird spacing: '...mespace urn:i...' == Line 363 has weird spacing: '... prefix isis-...' -- The document date (1 January 2022) is 847 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 1 January 2022 5 Expires: 5 July 2022 7 YANG Module for IS-IS Reverse Metric 8 draft-ietf-lsr-yang-isis-reverse-metric-06 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 5 July 2022. 33 Copyright Notice 35 Copyright (c) 2022 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 . . . . . . . . . . . . . . . . . . . 9 57 5. Normative References . . . . . . . . . . . . . . . . . . . . 10 58 6. Informative References . . . . . . . . . . . . . . . . . . . 11 59 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 12 60 A.1. Enablement Example using XML YANG Instance Data . . . . . 12 61 A.2. Usage Example using XML YANG Instance Data . . . . . . . 13 62 A.3. Usage Example using JSON YANG Instance Data . . . . . . . 14 63 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 15 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 metric? isis:wide-metric 92 +--rw flags 93 | +--rw whole-lan? boolean 94 | +--rw allow-unreachable? boolean 95 +--rw exclude-te-metric? boolean 96 +--rw level-1 97 | +--rw metric? isis:wide-metric 98 | +--rw flags 99 | | +--rw whole-lan? boolean 100 | | +--rw allow-unreachable? boolean 101 | +--rw exclude-te-metric? boolean 102 +--rw level-2 103 +--rw metric? isis:wide-metric 104 +--rw flags 105 | +--rw whole-lan? boolean 106 | +--rw allow-unreachable? boolean 107 +--rw exclude-te-metric? boolean 108 augment /rt:routing/rt:control-plane-protocols 109 /rt:control-plane-protocol/isis:isis/isis:interfaces 110 /isis:interface/isis:adjacencies/isis:adjacency: 111 +--ro reverse-metric 112 +--ro metric? isis:wide-metric 113 +--ro flags 114 | +--ro whole-lan? boolean 115 | +--ro allow-unreachable? boolean 116 +--ro te-metric? uint32 118 2.2. YANG Module 120 The following is the YANG module for managing the IS-IS reverse 121 metric functionality defined in [RFC8500]. It imports modules from 122 the following RFCs: [RFC8349], [I-D.ietf-isis-yang-isis-cfg]. 124 This YANG module uses the same "Per-Level" hierarchical configuration 125 structure as is defined in the augmented base module. 127 file "ietf-isis-reverse-metric@2022-01-01.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) 2022 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 2022-01-01 { 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 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."; 227 reference "RFC8500, Section 2"; 228 } 229 } 231 grouping tlv16-reverse-metric { 232 description "IS-IS reverse metric TLV data."; 233 uses reverse-metric-data; 234 leaf te-metric { 235 type uint32; 236 description 237 "The TE metric value from the sub-TLV if present."; 238 reference "RFC8500, Section 2"; 239 } 240 } 242 augment "/rt:routing/rt:control-plane-protocols/" 243 +"rt:control-plane-protocol/" 244 +"isis:isis" { 245 when "derived-from-or-self(../rt:type, 'isis:isis')" { 246 description 247 "This augment is only valid when routing protocol instance 248 type is 'isis'."; 249 } 251 description 252 "The reverse metric configuration for an IS-IS instance."; 254 container reverse-metric { 255 description "Global reverse metric configuration."; 256 leaf enable-receive { 257 type boolean; 258 default false; 259 description 260 "Enable handling of reverse metric announcements from 261 neighbors. By default, reverse metric handling is disabled 262 and must be explicitly enabled through this 263 configuration."; 264 } 265 } 266 } 268 augment "/rt:routing/rt:control-plane-protocols/" 269 +"rt:control-plane-protocol/" 270 +"isis:isis/isis:interfaces/isis:interface" { 271 when "derived-from-or-self(../../../rt:type, 'isis:isis')" { 272 description 273 "This augment is only valid when routing protocol instance 274 type is 'isis'."; 275 } 277 description 278 "The reverse metric configuration for an interface."; 280 container reverse-metric { 281 description 282 "Announce a reverse metric to neighbors. The configuration 283 is hierarchical and follows the same behavior as defined 284 for 'Per-Level' values in the augmented base module. 286 Reverse metric operation is enabled by the configuration of 287 a reverse-metric metric value at either the top level or 288 under a level-specific container node. If a reverse-metric 289 metric value is only specified under a level-specific 290 container node then operation is only enabled at the 291 specified level. 293 As the reverse metric is advertised in IIH PDUs, level 294 specific configuration is only available for broadcast 295 interface types"; 296 uses reverse-metric-if-config-data { 297 refine "flags/whole-lan" { 298 default false; 299 } 300 refine "flags/allow-unreachable" { 301 default false; 302 } 303 } 304 container level-1 { 305 when '../../isis:interface-type = "broadcast"'; 306 description 307 "Announce a reverse metric to level-1 neighbors."; 308 uses reverse-metric-if-config-data; 309 } 310 container level-2 { 311 when '../../isis:interface-type = "broadcast"'; 312 description 313 "Announce a reverse metric to level-2 neighbors."; 314 uses reverse-metric-if-config-data; 315 } 316 } 317 } 318 augment "/rt:routing/rt:control-plane-protocols/" 319 +"rt:control-plane-protocol/" 320 +"isis:isis/isis:interfaces/isis:interface/" 321 +"isis:adjacencies/isis:adjacency" { 322 when "derived-from-or-self(../../../../../rt:type, 323 'isis:isis')" { 324 description 325 "This augment is only valid when routing protocol instance 326 type is 'isis'"; 327 } 329 description 330 "The reverse metric state advertised by an adjacency."; 331 container reverse-metric { 332 description "IS-IS reverse metric TLV data."; 333 uses tlv16-reverse-metric; 334 } 335 } 336 } 337 339 3. IANA Considerations 341 3.1. Updates to the IETF XML Registry 343 This document registers a URI in the "IETF XML Registry" [RFC3688]. 344 Following the format in [RFC3688], the following registration has 345 been made: 347 URI urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric 349 Registrant Contact The IESG. 351 XML N/A; the requested URI is an XML namespace. 353 3.2. Updates to the YANG Module Names Registry 355 This document registers one YANG module in the "YANG Module Names" 356 registry [RFC6020]. Following the format in [RFC6020], the following 357 registration has been made: 359 name ietf-isis-reverse-metric 361 namespace urn:ietf:params:xml:ns:yang:ietf-isis-reverse-metric 363 prefix isis-rmetric 365 reference RFC XXXX (RFC Ed.: replace XXX with actual RFC number and 366 remove this note.) 368 4. Security Considerations 370 The YANG module specified in this document defines a schema for data 371 that is designed to be accessed via network management protocols such 372 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 373 is the secure transport layer, and the mandatory-to-implement secure 374 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 375 is HTTPS, and the mandatory-to-implement secure transport is TLS 376 [RFC8446]. 378 The NETCONF access control model [RFC8341] provides the means to 379 restrict access for particular NETCONF or RESTCONF users to a 380 preconfigured subset of all available NETCONF or RESTCONF protocol 381 operations and content. 383 The YANG module defined in this document can enable, disable and 384 modify the behavior of metrics used by routing. For the security 385 implications regarding these types of changes consult [RFC8500] which 386 defines the functionality as well as [I-D.ietf-isis-yang-isis-cfg]. 388 There are a number of data nodes defined in this YANG module that are 389 writable/creatable/deletable (i.e., "config true", which is the 390 default). These data nodes may be considered sensitive or vulnerable 391 in some network environments. Write operations (e.g., edit-config) 392 to these data nodes without proper protection can have a negative 393 effect on network operations. These YANG nodes correspond directly 394 to the RFC 8500 functionality and the security considerations of the 395 functionality are described in RFC 8500. 397 These are the subtrees and data nodes: 399 Under "/rt:routing/rt:control-plane-protocols/" + 400 "rt:control-plane-protocol/isis:isis" 402 - /isis-rmetric:reverse-metric/isis-rmetric:enable-receive 404 Under "/rt:routing/rt:control-plane-protocols/" + 405 "rt:control-plane-protocol/isis:isis/" + 406 "isis:interfaces/isis:interface/" + 407 "isis-rmetric:reverse-metric" 409 - /isis-rmetric:metric 410 - /isis-rmetric:flags/isis-rmetric:whole-lan 411 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 412 - /isis-rmetric:exclude-te-metric 414 Under "/rt:routing/rt:control-plane-protocols/" + 415 "rt:control-plane-protocol/isis:isis/" + 416 "isis:interfaces/isis:interface/" + 417 "isis-rmetric:reverse-metric/" + 418 "isis-rmetric:level-1/" 420 - /isis-rmetric:metric 421 - /isis-rmetric:flags/isis-rmetric:whole-lan 422 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 423 - /isis-rmetric:exclude-te-metric 425 Under "/rt:routing/rt:control-plane-protocols/" + 426 "rt:control-plane-protocol/isis:isis/" + 427 "isis:interfaces/isis:interface/" + 428 "isis-rmetric:reverse-metric/" + 429 "isis-rmetric:level-2/" 431 - /isis-rmetric:metric 432 - /isis-rmetric:flags/isis-rmetric:whole-lan 433 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 434 - /isis-rmetric:exclude-te-metric 436 Some of the readable data nodes in this YANG module may be considered 437 sensitive or vulnerable in some network environments. It is thus 438 important to control read access (e.g., via get, get-config, or 439 notification) to these data nodes. These YANG nodes correspond 440 directly to the RFC 8500 functionality and the security 441 considerations of the functionality are described in RFC 8500. These 442 are the subtrees and data nodes: 444 Under "/rt:routing/rt:control-plane-protocols/" + 445 "rt:control-plane-protocol/isis:isis/" + 446 "isis:interfaces/isis:interface/" + 447 "isis:adjacencies/isis:adjacency/" + 448 "isis-rmetric:reverse-metric" 450 - /isis-rmetric:metric 451 - /isis-rmetric:flags/isis-rmetric:whole-lan 452 - /isis-rmetric:flags/isis-rmetric:allow-unreachable 453 - /isis-rmetric:te-metric 455 5. Normative References 457 [ISO10589] International Organization for Standardization, 458 "Intermediate System to Intermediate System intra-domain 459 routeing information exchange protocol for use in 460 conjunction with the protocol for providing the 461 connectionless-mode network service (ISO 8473)", ISO 462 Standard 10589:2002, 2002. 464 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 465 DOI 10.17487/RFC3688, January 2004, 466 . 468 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 469 the Network Configuration Protocol (NETCONF)", RFC 6020, 470 DOI 10.17487/RFC6020, October 2010, 471 . 473 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 474 Access Control Model", STD 91, RFC 8341, 475 DOI 10.17487/RFC8341, March 2018, 476 . 478 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 479 and R. Wilton, "Network Management Datastore Architecture 480 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 481 . 483 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 484 Routing Management (NMDA Version)", RFC 8349, 485 DOI 10.17487/RFC8349, March 2018, 486 . 488 [RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing 489 with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, 490 February 2019, . 492 [I-D.ietf-isis-yang-isis-cfg] 493 Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. 494 Lhotka, "YANG Data Model for IS-IS Protocol", Work in 495 Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- 496 42, 15 October 2019, 497 . 500 6. Informative References 502 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 503 and A. Bierman, Ed., "Network Configuration Protocol 504 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 505 . 507 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 508 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 509 . 511 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 512 RFC 7951, DOI 10.17487/RFC7951, August 2016, 513 . 515 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 516 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 517 . 519 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 520 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 521 . 523 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 524 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 525 . 527 Appendix A. Examples 529 A.1. Enablement Example using XML YANG Instance Data 531 Below is an example of XML YANG instance data [RFC8342] to enable 532 reverse metric processing. 534 539 540 541 isis:isis 542 default 543 544 00 545 546 true 547 548 549 550 551 553 Figure 1: Example XML data to enable reverse metric processing. 555 A.2. Usage Example using XML YANG Instance Data 557 Below is an example of XML YANG instance data [RFC8342] for the ietf- 558 isis-reverse-metric module. 560 563 564 eth0 565 ianaift:ethernetCsmacd 566 567 568 573 574 575 isis:isis 576 default 577 578 00 579 580 581 eth0 582 583 584 65535 585 586 587 588 589 590 591 592 594 Figure 2: Example XML data for ietf-isis-reverse-metric module. 596 A.3. Usage Example using JSON YANG Instance Data 598 Below is an example of JSON YANG instance data [RFC7951] for the 599 ietf-isis-reverse-metric module. 601 { 602 "ietf-interfaces:interfaces": { 603 "interface": [ 604 { 605 "name": "eth0", 606 "type": "iana-if-type:ethernetCsmacd" 607 } 608 ] 609 }, 610 "ietf-routing:routing": { 611 "control-plane-protocols": { 612 "control-plane-protocol": [ 613 { 614 "type": "ietf-isis:isis", 615 "name": "default", 616 "ietf-isis:isis": { 617 "area-address": [ 618 "00" 619 ], 620 "interfaces": { 621 "interface": [ 622 { 623 "name": "eth0", 624 "ietf-isis-reverse-metric:reverse-metric": { 625 "level-1": { 626 "metric": 65535, 627 "exclude-te-metric": true 628 } 629 } 630 } 631 ] 632 } 633 } 634 } 635 ] 636 } 637 } 638 } 640 Figure 3: Example JSON data for level-1 only reverse metric. 642 Author's Address 644 Christian Hopps 645 LabN Consulting, L.L.C. 647 Email: chopps@chopps.org