idnits 2.17.1 draft-ietf-lsr-yang-isis-reverse-metric-04.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 (24 October 2021) is 912 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 24 October 2021 5 Expires: 27 April 2022 7 YANG Module for IS-IS Reverse Metric 8 draft-ietf-lsr-yang-isis-reverse-metric-04 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 27 April 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 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 . . . . . . . . . . . . . . . . . . . . . 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-10-24.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://tools.ietf.org/html/rfcXXXX); see the RFC itself for 175 full legal notices."; 177 revision 2021-10-24 { 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 196 this reverse metric will add the metric value to all the 197 nodes it advertises in the pseudo-node LSP for this 198 interface. Otherwise it will only increment the metric 199 for the advertising node in the pseudo-node LSP for this 200 interface."; 201 reference "RFC8500, Section 2"; 202 } 203 leaf allow-unreachable { 204 type boolean; 205 description 206 "The 'allow-unreachable' or U-bit. If true it allows the 207 neighbor to increment the overall metric up to 2^24-1 208 rather than the lesser maximum of 2^24-2. If the metric 209 is then set by the neighbor to 2^24-1, it will cause 210 traffic to stop using, rather than avoid using, the 211 interface."; 212 reference "RFC8500, Section 2"; 213 } 214 } 215 } 217 grouping reverse-metric-if-config-data { 218 description "IS-IS reverse metric config data."; 219 container reverse-metric { 220 description "IS-IS reverse metric data."; 221 uses reverse-metric-data; 222 leaf exclude-te-metric { 223 type boolean; 224 default false; 225 description 226 "If true and there is a TE metric defined for this 227 interface then do not send the TE metric sub-TLV in the 228 reverse metric TLV."; 229 reference "RFC8500, Section 3.5"; 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 3.5"; 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. 376 These are the subtrees and data nodes and their sensitivity/ 377 vulnerability: 379 Under "/rt:routing/rt:control-plane-protocols/" + 380 "rt:control-plane-protocol/isis:isis" 382 - /isis-rmetric:reverse-metric/isis-rmetric:enable-receive 384 Under "/rt:routing/rt:control-plane-protocols/" + 385 "rt:control-plane-protocol/isis:isis/" + 386 "isis:interfaces/isis:interface/" + 387 "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-1/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 Under "/rt:routing/rt:control-plane-protocols/" + 405 "rt:control-plane-protocol/isis:isis/" + 406 "isis:interfaces/isis:interface/" + 407 "isis:level-2/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 Some of the readable data nodes in this YANG module may be considered 415 sensitive or vulnerable in some network environments. It is thus 416 important to control read access (e.g., via get, get-config, or 417 notification) to these data nodes. These are the subtrees and data 418 nodes and their sensitivity/vulnerability: 420 All nodes are under the following subtree, so that prefix will be 421 assumed for each node description. 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 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 453 and A. Bierman, Ed., "Network Configuration Protocol 454 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 455 . 457 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 458 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 459 . 461 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 462 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 463 . 465 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 466 Access Control Model", STD 91, RFC 8341, 467 DOI 10.17487/RFC8341, March 2018, 468 . 470 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 471 and R. Wilton, "Network Management Datastore Architecture 472 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 473 . 475 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 476 Routing Management (NMDA Version)", RFC 8349, 477 DOI 10.17487/RFC8349, March 2018, 478 . 480 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 481 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 482 . 484 [RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing 485 with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, 486 February 2019, . 488 [I-D.ietf-isis-yang-isis-cfg] 489 Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. 490 Lhotka, "YANG Data Model for IS-IS Protocol", Work in 491 Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- 492 42, 15 October 2019, . 495 6. Informative References 497 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 498 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 499 . 501 Appendix A. Examples 503 A.1. Example Enable XML 505 Below is an example of XML instance data to enable reverse metric 506 processing. 508 513 514 515 isis:isis 516 default 517 518 00 519 520 true 521 522 523 524 525 527 Figure 1: Example XML data to enable reverse metric processing. 529 A.2. Example Use XML 531 Below is an example of XML instance data for the ietf-isis-reverse- 532 metric module. 534 537 538 eth0 539 ianaift:ethernetCsmacd 540 541 542 547 548 549 isis:isis 550 default 551 552 00 553 554 555 eth0 556 557 558 559 65535 560 561 562 563 564 565 566 567 568 570 Figure 2: Example XML data for ietf-isis-reverse-metric module. 572 A.3. Example JSON 574 Below is an example of JSON instance data for the ietf-isis-reverse- 575 metric module. 577 { 578 "ietf-interfaces:interfaces": { 579 "interface": [ 580 { 581 "name": "eth0", 582 "type": "iana-if-type:ethernetCsmacd" 583 } 584 ] 585 }, 586 "ietf-routing:routing": { 587 "control-plane-protocols": { 588 "control-plane-protocol": [ 589 { 590 "type": "ietf-isis:isis", 591 "name": "default", 592 "ietf-isis:isis": { 593 "area-address": [ 594 "00" 595 ], 596 "interfaces": { 597 "interface": [ 598 { 599 "name": "eth0", 600 "ietf-isis-reverse-metric:reverse-metric": { 601 "level-1": { 602 "reverse-metric": { 603 "metric": 65535, 604 "exclude-te-metric": true 605 } 606 } 607 } 608 } 609 ] 610 } 611 } 612 } 613 ] 614 } 615 } 616 } 618 Figure 3: Example JSON data for level-1 only reverse metric. 620 Author's Address 622 Christian Hopps 623 LabN Consulting, L.L.C. 625 Email: chopps@chopps.org