idnits 2.17.1 draft-ietf-lsr-ospf-yang-augmentation-v1-00.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 3 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 136 has weird spacing: '...face-id ine...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (October 22, 2019) is 1642 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) ** Obsolete normative reference: RFC 8022 (Obsoleted by RFC 8349) Summary: 4 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet A. Lindem 3 Internet-Draft Cisco Systems 4 Intended status: Informational Y. Qu 5 Expires: April 24, 2020 Futurewei 6 October 22, 2019 8 OSPF YANG Model Augmentations for Additional Features - Version 1 9 draft-ietf-lsr-ospf-yang-augmentation-v1-00 11 Abstract 13 This document defines YANG data modules augmenting the IETF OSPF YANG 14 model to provide support for Traffic Engineering Extensions to OSPF 15 Version 3 as defined in RF 5329, OSPF Two-Part Metric as defined in 16 RFC 8042, OSPF Graceful Link Shutdown as defined in RFC 8379 and OSPF 17 Link-Local Signaling (LLS) Extensions for Local Interface ID 18 Advertisement as defined in RFC 8510. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at https://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on April 24, 2020. 37 Copyright Notice 39 Copyright (c) 2019 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (https://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 55 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 56 2. YANG Module for Traffic Engineering Extesions to OSPF Version 57 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 3. YANG Module for OSPF Two-Part Metric . . . . . . . . . . . . 8 59 4. YANG Module for OSPF Graceful Link Shutdown . . . . . . . . . 12 60 5. YANG Module for OSPF LLS Extenstion for Local Interface ID 61 Advertisement . . . . . . . . . . . . . . . . . . . . . . . . 17 62 6. Security Considerations . . . . . . . . . . . . . . . . . . . 19 63 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 64 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 65 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 66 9.1. Normative References . . . . . . . . . . . . . . . . . . 21 67 9.2. Informative References . . . . . . . . . . . . . . . . . 22 68 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 70 1. Overview 72 YANG [RFC6020] [RFC7950] is a data definition language used to define 73 the contents of a conceptual data store that allows networked devices 74 to be managed using NETCONF [RFC6241]. YANG is proving relevant 75 beyond its initial confines, as bindings to other interfaces (e.g., 76 ReST) and encodings other than XML (e.g., JSON) are being defined. 77 Furthermore, YANG data models can be used as the basis for 78 implementation of other interfaces, such as CLI and programmatic 79 APIs. 81 This document defines YANG data modules augmenting the IETF OSPF YANG 82 model [I-D.ietf-ospf-yang], which itself augments [RFC8349], to 83 provide support for configuration and operational state for the 84 following OSPF features: 86 RFC5329: Traffic Engineering Extensions to OSPF Version 3 [RFC5329]. 88 RFC8042: OSPF Two-Part Metric [RFC8042]. 90 RFC8379: OSPF Graceful Link Shutdown [RFC8379]. 92 RFC8510: OSPF Link-Local Signaling (LLS) Extensions for Local 93 Interface ID Advertisement[RFC8510]. 95 The augmentations defined in this document requires support for the 96 OSPF base model[I-D.ietf-ospf-yang] which defines basic OSPF 97 configuration and state. The OSPF YANG model augments the ietf- 98 routing YANG model defined in [RFC8022]. 100 1.1. Requirements Language 102 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 103 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 104 document are to be interpreted as described in [RFC2119]. 106 2. YANG Module for Traffic Engineering Extesions to OSPF Version 3 108 This document defines a YANG module for Traffic Engineering 109 Extersions to OSPF Version 3 as defined in [RFC5329]. It is an 110 augmentation of the OSPF base model. 112 module: ietf-ospfv3-te 113 augment /rt:routing/rt:control-plane-protocols 114 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 115 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 116 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 117 /ospf:body: 118 +--ro ospfv3-intra-area-te 119 +--ro router-address-tlv 120 | +--ro router-address? inet:ipv6-address 121 +--ro link-tlv 122 +--ro link-type ospf:router-link-type 123 +--ro local-if-ipv6-addrs 124 | +--ro local-if-ipv6-addr* inet:ipv6-address 125 +--ro remote-if-ipv6-addrs 126 | +--ro remote-if-ipv6-addr* inet:ipv6-address 127 +--ro te-metric? uint32 128 +--ro max-bandwidth? rt-types:bandwidth-ieee-float32 129 +--ro max-reservable-bandwidth? rt-types:bandwidth-ieee-float32 130 +--ro unreserved-bandwidths 131 | +--ro unreserved-bandwidth* 132 | +--ro priority? uint8 133 | +--ro unreserved-bandwidth? rt-types:bandwidth-ieee-float32 134 +--ro admin-group? uint32 135 +--ro neighbor-id 136 | +--ro nbr-interface-id inet:ipv4-address 137 | +--ro nbr-router-id yang:dotted-quad 138 +--ro unknown-tlvs 139 +--ro unknown-tlv* 140 +--ro type? uint16 141 +--ro length? uint16 142 +--ro value? yang:hex-string 144 file "ietf-ospfv3-te@2019-08-13.yang" 145 module ietf-ospfv3-te { 146 yang-version 1.1; 147 namespace "urn:ietf:params:xml:ns:yang:ietf-ospfv3-te"; 149 prefix ospfv3-te; 151 import ietf-inet-types { 152 prefix "inet"; 153 reference "RFC 6991: Common YANG Data Types"; 154 } 156 import ietf-yang-types { 157 prefix "yang"; 158 reference "RFC 6991: Common YANG Data Types"; 159 } 161 import ietf-routing-types { 162 prefix "rt-types"; 163 reference "RFC 8294: Common YANG Data Types for the 164 Routing Area"; 165 } 167 import ietf-routing { 168 prefix "rt"; 169 } 171 import ietf-ospf { 172 prefix "ospf"; 173 } 175 organization 176 "IETF LSR - Link State Routing Working Group"; 178 contact 179 "WG Web: 180 WG List: 182 Author: Yingzhen Qu 183 184 Author: Acee Lindem 185 "; 187 description 188 "This YANG module defines the configuration and operational 189 state for OSPFv3 extensions to support intra-area Traffic 190 Engineering (TE) as defined in RFC 5329. 192 Copyright (c) 2019 IETF Trust and the persons identified as 193 authors of the code. All rights reserved. 195 Redistribution and use in source and binary forms, with or 196 without modification, is permitted pursuant to, and subject 197 to the license terms contained in, the Simplified BSD License 198 set forth in Section 4.c of the IETF Trust's Legal Provisions 199 Relating to IETF Documents 200 (http://trustee.ietf.org/license-info). 202 This version of this YANG module is part of RFC XXXX; 203 see the RFC itself for full legal notices."; 205 reference "RFC XXXX"; 207 revision 2019-08-13 { 208 description 209 "Initial version"; 210 reference 211 "RFC XXXX: A YANG Data Model for OSPFv3 TE."; 212 } 214 identity ospfv3-intra-area-te-lsa { 215 base ospf:ospfv3-lsa-type; 216 description 217 "OSPFv3 Intrea-area TE LSA."; 218 } 220 grouping ospfv3-intra-area-te { 221 description "Grouping for OSPFv3 intra-area-te-lsa."; 222 container ospfv3-intra-area-te { 223 container router-address-tlv { 224 description "The router IPv6 address tlv advertises a reachable 225 IPv6 address."; 226 leaf router-address { 227 type inet:ipv6-address; 228 description 229 "Router IPv6 address."; 230 } 231 } 233 container link-tlv { 234 description "Describes a singel link, and it is constructed 235 of a set of Sub-TLVs."; 236 leaf link-type { 237 type ospf:router-link-type; 238 mandatory true; 239 description "Link type."; 240 } 241 container local-if-ipv6-addrs { 242 description "All local interface IPv6 addresses."; 243 leaf-list local-if-ipv6-addr { 244 type inet:ipv6-address; 245 description 246 "List of local interface IPv6 addresses."; 247 } 248 } 250 container remote-if-ipv6-addrs { 251 description "All remote interface IPv6 addresses."; 252 leaf-list remote-if-ipv6-addr { 253 type inet:ipv6-address; 254 description 255 "List of remote interface IPv6 addresses."; 256 } 257 } 259 leaf te-metric { 260 type uint32; 261 description "TE metric."; 262 } 264 leaf max-bandwidth { 265 type rt-types:bandwidth-ieee-float32; 266 description "Maximum bandwidth."; 267 } 269 leaf max-reservable-bandwidth { 270 type rt-types:bandwidth-ieee-float32; 271 description "Maximum reservable bandwidth."; 272 } 274 container unreserved-bandwidths { 275 description "All unreserved bandwidths."; 276 list unreserved-bandwidth { 277 leaf priority { 278 type uint8 { 279 range "0 .. 7"; 280 } 281 description "Priority from 0 to 7."; 282 } 283 leaf unreserved-bandwidth { 284 type rt-types:bandwidth-ieee-float32; 285 description "Unreserved bandwidth."; 286 } 287 description 288 "List of unreserved bandwidths for different 289 priorities."; 290 } 291 } 293 leaf admin-group { 294 type uint32; 295 description 296 "Administrative group/Resource Class/Color."; 297 } 299 container neighbor-id { 300 description "Neighbor link identitification."; 301 leaf nbr-interface-id { 302 type inet:ipv4-address; 303 mandatory true; 304 description "The neighbor's interface ID."; 305 } 306 leaf nbr-router-id { 307 type yang:dotted-quad; 308 mandatory true; 309 description "The neighbor's router ID."; 310 } 311 } 313 uses ospf:unknown-tlvs; 314 } 316 description "OSPFv3 Intra-Area-TE-LSA."; 317 reference "RFC 5329: Traffic Engineering Extensions to OSPF 318 : Version 3."; 319 } 320 } 322 augment "/rt:routing/" 323 + "rt:control-plane-protocols/rt:control-plane-protocol/" 324 + "ospf:ospf/ospf:areas/" 325 + "ospf:area/ospf:database/" 326 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 327 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 328 + "ospf:ospfv3/ospf:body" { 329 when "../../../../../../../../../" 330 + "rt:type = 'ospf:ospfv3'" { 331 description 332 "This augmentation is only valid for OSPFv3."; 333 } 334 description 335 "OSPFv3 Intrea-Area-TE-LSA."; 337 uses ospfv3-intra-area-te; 338 } 339 } 340 342 3. YANG Module for OSPF Two-Part Metric 344 This document defines a YANG module for OSPF Two-Part Metric feature 345 as defined in [RFC8042]. It is an augmentation of the OSPF base 346 model. 348 module: ietf-ospf-two-part-metric 349 augment /rt:routing/rt:control-plane-protocols 350 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 351 /ospf:interfaces/ospf:interface: 352 +--rw two-part-metric 353 +--rw enable? boolean 354 +--rw int-input-cost? ospf:ospf-link-metric 355 augment /rt:routing/rt:control-plane-protocols 356 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 357 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 358 /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 359 /ospf:body/ospf:opaque/ospf:extended-link-opaque 360 /ospf:extended-link-tlv: 361 +--ro network-to-router-metric-sub-tlvs 362 +--ro net-to-rtr-sub-tlv* 363 +--ro mt-id? uint8 364 +--ro mt-metric? uint16 365 augment /rt:routing/rt:control-plane-protocols 366 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 367 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 368 /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 369 /ospf:body/ospf:opaque/ospf:te-opaque/ospf:link-tlv: 370 +--ro network-to-router-te-metric? uint32 371 augment /rt:routing/rt:control-plane-protocols 372 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 373 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 374 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 375 /ospf:body/ospfv3-te:ospfv3-intra-area-te/ospfv3-te:link-tlv: 376 +--ro network-to-router-te-metric? uint32 378 file "ietf-ospf-two-part-metric@2019-08-13.yang" 379 module ietf-ospf-two-part-metric { 380 yang-version 1.1; 381 namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-two-part-metric"; 383 prefix ospf-two-metric; 384 import ietf-routing { 385 prefix "rt"; 386 } 388 import ietf-ospf { 389 prefix "ospf"; 390 } 392 import ietf-ospfv3-te { 393 prefix "ospfv3-te"; 394 } 396 organization 397 "IETF LSR - Link State Routing Working Group"; 399 contact 400 "WG Web: 401 WG List: 403 Author: Yingzhen Qu 404 405 Author: Acee Lindem 406 "; 408 description 409 "This YANG module defines the configuration and operational 410 state for OSPF Two-Part Metric feature as defined in RFC 8042. 412 Copyright (c) 2019 IETF Trust and the persons identified as 413 authors of the code. All rights reserved. 415 Redistribution and use in source and binary forms, with or 416 without modification, is permitted pursuant to, and subject 417 to the license terms contained in, the Simplified BSD License 418 set forth in Section 4.c of the IETF Trust's Legal Provisions 419 Relating to IETF Documents 420 (http://trustee.ietf.org/license-info). 422 This version of this YANG module is part of RFC XXXX; 423 see the RFC itself for full legal notices."; 425 reference "RFC XXXX"; 427 revision 2019-08-13 { 428 description 429 "Initial version"; 430 reference 431 "RFC XXXX: A YANG Data Model for OSPF."; 433 } 435 identity two-part-metric { 436 base ospf:informational-capability; 437 description 438 "When set, the router is capable of supporting OSPF 439 two-part metrics."; 440 reference 441 "RFC 8042: OSPF Two-Part Metric"; 442 } 444 /* RFC 8042 */ 445 augment "/rt:routing/rt:control-plane-protocols/" 446 + "rt:control-plane-protocol/ospf:ospf/" 447 + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { 448 when "../../../../../rt:type = 'ospf:ospfv2' or " 449 + "../../../../../rt:type = 'ospf:ospfv3'" { 450 description 451 "This augments the OSPF interface configuration 452 when used."; 453 } 454 description 455 "This augments the OSPF protocol interface 456 configuration with two-part metric."; 458 container two-part-metric { 459 when "enum-value(../ospf:interface-type) = 2" { 460 description 461 "Two-part metric when link type is multi-access."; 462 } 463 leaf enable { 464 type boolean; 465 default false; 466 description 467 "Enable two-part metric."; 468 } 469 leaf int-input-cost { 470 type ospf:ospf-link-metric; 471 description 472 "Link state metric from the two-part-metric network 473 to this router."; 474 } 475 description 476 "Interface two part metric configuration."; 477 } 478 } 480 augment "/rt:routing/" 481 + "rt:control-plane-protocols/rt:control-plane-protocol/" 482 + "ospf:ospf/ospf:areas/" 483 + "ospf:area/ospf:database/" 484 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 485 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" 486 + "ospf:ospfv2/ospf:body/ospf:opaque/" 487 + "ospf:extended-link-opaque/ospf:extended-link-tlv" { 488 when "../../../../../../../../../../../../" 489 + "rt:type = 'ospf:ospfv2'" { 490 description 491 "This augmentation is only valid for OSPFv2."; 492 } 493 description 494 "Network-to-Router metric sub tlv for OSPFv2 extended link TLV 495 in type 10 opaque LSA."; 497 container network-to-router-metric-sub-tlvs { 498 description "Network-to-Router metric sub TLV."; 499 list net-to-rtr-sub-tlv { 500 leaf mt-id { 501 type uint8; 502 description "Multi-Topology Identifier (MT-ID)."; 503 } 504 leaf mt-metric { 505 type uint16; 506 description "Network-to-router metric."; 507 } 508 description 509 "Network-to-Router metric sub-TLV."; 510 } 511 } 512 } 514 augment "/rt:routing/" 515 + "rt:control-plane-protocols/rt:control-plane-protocol/" 516 + "ospf:ospf/ospf:areas/" 517 + "ospf:area/ospf:database/" 518 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 519 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" 520 + "ospf:ospfv2/ospf:body/ospf:opaque/ospf:te-opaque/" 521 + "ospf:link-tlv" { 522 when "../../../../../../../../../../../../" 523 + "rt:type = 'ospf:ospfv2'" { 524 description 525 "This augmentation is only valid for OSPFv2."; 526 } 527 description 528 "Traffic Engineering Network-to-Router Sub-TLV."; 529 leaf network-to-router-te-metric { 530 type uint32; 531 description "Network to Router TE metric."; 532 reference 533 "RFC 8042 - OSPF Two-Part Metric"; 534 } 535 } 537 augment "/rt:routing/" 538 + "rt:control-plane-protocols/rt:control-plane-protocol/" 539 + "ospf:ospf/ospf:areas/" 540 + "ospf:area/ospf:database/" 541 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 542 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 543 + "ospf:ospfv3/ospf:body/ospfv3-te:ospfv3-intra-area-te/" 544 + "ospfv3-te:link-tlv" { 545 when "../../../../../../../../../../../" 546 + "rt:type = 'ospf:ospfv3'" { 547 description 548 "This augmentation is only valid for OSPFv3."; 549 } 550 description 551 "Traffic Engineering Network-to-Router Sub-TLV."; 552 leaf network-to-router-te-metric { 553 type uint32; 554 description "Network to Router TE metric."; 555 reference 556 "RFC 8042 - OSPF Two-Part Metric"; 557 } 558 } 559 } 560 562 4. YANG Module for OSPF Graceful Link Shutdown 564 This document defines a YANG module for OSPF Graceful Link Shutdown 565 feature as defined in [RFC8379]. It is an augmentation of the OSPF 566 base model. 568 module: ietf-ospf-graceful-link-shutdown 569 augment /rt:routing/rt:control-plane-protocols 570 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 571 /ospf:interfaces/ospf:interface: 572 +--rw graceful-link-shutdown 573 +--rw enable? boolean 574 augment /rt:routing/rt:control-plane-protocols 575 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 576 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 577 /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 578 /ospf:body/ospf:opaque/ospf:extended-link-opaque 579 /ospf:extended-link-tlv: 580 +--ro graceful-link-shutdown-sub-tlv! 581 +--ro remote-address-sub-tlv 582 | +--ro remote-address? inet:ipv4-address 583 +--ro local-remote-int-id-sub-tlv 584 +--ro local-int-id? uint32 585 +--ro remote-int-id? uint32 586 augment /rt:routing/rt:control-plane-protocols 587 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 588 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 589 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 590 /ospf:body/ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs 591 /ospfv3-e-lsa:link-tlv: 592 +--ro graceful-link-shutdown-sub-tlv! 593 augment /rt:routing/rt:control-plane-protocols 594 /rt:control-plane-protocol/ospf:ospf/ospf:database 595 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 596 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 597 /ospfv3-e-lsa:e-router/ospfv3-e-lsa:e-router-tlvs 598 /ospfv3-e-lsa:link-tlv: 599 +--ro graceful-link-shutdown-sub-tlv! 601 file "ietf-ospf-graceful-link-shutdown@2019-08-13.yang" 602 module ietf-ospf-graceful-link-shutdown { 603 yang-version 1.1; 604 namespace 605 "urn:ietf:params:xml:ns:yang:ietf-ospf-graceful-link-shutdown"; 607 prefix ospf-grace-linkdown; 609 import ietf-inet-types { 610 prefix "inet"; 611 } 613 import ietf-routing { 614 prefix "rt"; 616 } 618 import ietf-ospf { 619 prefix "ospf"; 620 } 622 import ietf-ospfv3-extended-lsa { 623 prefix "ospfv3-e-lsa"; 624 } 626 organization 627 "IETF LSR - Link State Routing Working Group"; 629 contact 630 "WG Web: 631 WG List: 633 Author: Yingzhen Qu 634 635 Author: Acee Lindem 636 "; 638 description 639 "This YANG module defines the configuration and operational 640 state for OSPF Graceful Link Shutdown feature as defined 641 in RFC 8379. 643 Copyright (c) 2019 IETF Trust and the persons identified as 644 authors of the code. All rights reserved. 646 Redistribution and use in source and binary forms, with or 647 without modification, is permitted pursuant to, and subject 648 to the license terms contained in, the Simplified BSD License 649 set forth in Section 4.c of the IETF Trust's Legal Provisions 650 Relating to IETF Documents 651 (http://trustee.ietf.org/license-info). 653 This version of this YANG module is part of RFC XXXX; 654 see the RFC itself for full legal notices."; 656 reference "RFC XXXX"; 658 revision 2019-08-13 { 659 description 660 "Initial version"; 661 reference 662 "RFC XXXX: A YANG Data Model for OSPF."; 664 } 666 /* RFC 8379 */ 667 augment "/rt:routing/rt:control-plane-protocols/" 668 + "rt:control-plane-protocol/ospf:ospf/" 669 + "ospf:areas/ospf:area/ospf:interfaces/ospf:interface" { 670 when "../../../../../rt:type = 'ospf:ospfv2' or " 671 + "../../../../../rt:type = 'ospf:ospfv3'" { 672 description 673 "This augments the OSPF interface configuration 674 when used."; 675 } 676 description 677 "This augments the OSPF protocol interface 678 configuration with segment routing."; 680 container graceful-link-shutdown { 681 leaf enable { 682 type boolean; 683 default false; 684 description 685 "Enable OSPF graceful link shutdown."; 686 } 687 description 688 "OSPF Graceful Link Shutdown."; 689 } 690 } 692 /* Database */ 693 augment "/rt:routing/" 694 + "rt:control-plane-protocols/rt:control-plane-protocol/" 695 + "ospf:ospf/ospf:areas/" 696 + "ospf:area/ospf:database/" 697 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 698 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" 699 + "ospf:ospfv2/ospf:body/ospf:opaque/" 700 + "ospf:extended-link-opaque/ospf:extended-link-tlv" { 701 when "../../../../../../../../../../../../" 702 + "rt:type = 'ospf:ospfv2'" { 703 description 704 "This augmentation is only valid for OSPFv2."; 705 } 706 description 707 "OSPF graceful link shutdown for OSPFv2 extended link TLV 708 in type 10 opaque LSA."; 710 container graceful-link-shutdown-sub-tlv { 711 presence "Enable graceful link shutdown"; 712 description 713 "Graceful-Link-Shutdown sub-TLV identifies the link as being 714 gracefully shutdown."; 715 } 717 container remote-address-sub-tlv { 718 leaf remote-address { 719 type inet:ipv4-address; 720 description 721 "Remote IPv4 address used to identify a particular link 722 on the remote side."; 723 } 724 description 725 "This sub-TLV specifies the IPv4 address of the remote 726 endpoint on the link."; 727 } 729 container local-remote-int-id-sub-tlv { 730 leaf local-int-id { 731 type uint32; 732 description "Local interface ID."; 733 } 734 leaf remote-int-id { 735 type uint32; 736 description "Remote interface ID."; 737 } 738 description 739 "This sub-TLV specifies Local and Remote Interface IDs."; 740 } 741 } 743 augment "/rt:routing/" 744 + "rt:control-plane-protocols/rt:control-plane-protocol/" 745 + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" 746 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 747 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 748 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router" 749 + "/ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { 750 when "'ospf:../../../../../../../../../" 751 + "rt:type' = 'ospf:ospfv3'" { 752 description 753 "This augmentation is only valid for OSPFv3 754 E-Router LSAs"; 755 } 756 container graceful-link-shutdown-sub-tlv { 757 presence "Enable graceful link shutdown"; 758 description 759 "Graceful-Link-Shutdown sub-TLV identifies the link as being 760 gracefully shutdown."; 761 } 762 description 763 "Augemnt OSPFv3 Area scope router-link TLV."; 764 } 766 augment "/rt:routing/" 767 + "rt:control-plane-protocols/rt:control-plane-protocol/" 768 + "ospf:ospf/ospf:database/" 769 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 770 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 771 + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-router" 772 + "/ospfv3-e-lsa:e-router-tlvs/ospfv3-e-lsa:link-tlv" { 773 when "'ospf:../../../../../../../" 774 + "rt:type' = 'ospf:ospfv3'" { 775 description 776 "This augmentation is only valid for OSPFv3 777 E-Router LSAs"; 778 } 779 container graceful-link-shutdown-sub-tlv { 780 presence "Enable graceful link shutdown"; 781 description 782 "Graceful-Link-Shutdown sub-TLV identifies the link as being 783 gracefully shutdown."; 784 } 785 description 786 "Augemnt OSPFv3 AS scope router-link TLV."; 787 } 788 } 789 791 5. YANG Module for OSPF LLS Extenstion for Local Interface ID 792 Advertisement 794 This document defines a YANG module for OSPF Link-Local Signaling 795 (LLS) Extensions for Local Interface ID Advertisement feature as 796 defined in [RFC8510]. It is an augmentation of the OSPF base model. 798 module: ietf-ospf-lls-local-id 799 augment /rt:routing/rt:control-plane-protocols 800 /rt:control-plane-protocol/ospf:ospf: 801 +--rw lls-int-id 802 +--rw enable? boolean 804 file "ietf-ospf-lls-local-id@2019-08-13.yang" 805 module ietf-ospf-lls-local-id { 806 yang-version 1.1; 807 namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-lls-local-id"; 809 prefix ospf-lls-localid; 811 import ietf-routing { 812 prefix "rt"; 813 } 815 import ietf-ospf { 816 prefix "ospf"; 817 } 819 organization 820 "IETF LSR - Link State Routing Working Group"; 822 contact 823 "WG Web: 824 WG List: 826 Author: Yingzhen Qu 827 828 Author: Acee Lindem 829 "; 831 description 832 "This YANG module defines the configuration and operational 833 state for OSPF Link-Local Signaling (LLS) Extensions for Local 834 Interface ID Advertisement feature as defined in RFC 8510. 836 Copyright (c) 2019 IETF Trust and the persons identified as 837 authors of the code. All rights reserved. 839 Redistribution and use in source and binary forms, with or 840 without modification, is permitted pursuant to, and subject 841 to the license terms contained in, the Simplified BSD License 842 set forth in Section 4.c of the IETF Trust's Legal Provisions 843 Relating to IETF Documents 844 (http://trustee.ietf.org/license-info). 846 This version of this YANG module is part of RFC XXXX; 847 see the RFC itself for full legal notices."; 849 reference "RFC XXXX"; 851 revision 2019-08-13 { 852 description 853 "Initial version"; 854 reference 855 "RFC XXXX: A YANG Data Model for OSPF."; 856 } 858 augment "/rt:routing/rt:control-plane-protocols" 859 + "/rt:control-plane-protocol/ospf:ospf" { 860 when "../rt:type = 'ospf:ospfv2' or " 861 + "../rt:type = 'ospf:ospfv3'" { 862 description 863 "This augments the OSPF routing protocol when used."; 864 } 865 description 866 "This augments the OSPF protocol configuration 867 to support LLS extesnions for interfacde ID as 868 defined in RFC 8510."; 869 container lls-int-id { 870 leaf enable { 871 type boolean; 872 default false; 873 description 874 "Enable LLS to advertise local interface ID."; 875 } 876 description 877 "OSPF LLS Extensions for interface ID."; 878 } 879 } 880 } 881 883 6. Security Considerations 885 The YANG modules specified in this document define a schema for data 886 that is designed to be accessed via network management protocols such 887 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 888 is the secure transport layer, and the mandatory-to-implement secure 889 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 890 is HTTPS, and the mandatory-to-implement secure transport is TLS 891 [RFC5246]. 893 The NETCONF access control model [RFC6536] provides the means to 894 restrict access for particular NETCONF or RESTCONF users to a pre- 895 configured subset of all available NETCONF or RESTCONF protocol 896 operations and content. 898 There are a number of data nodes defined in the modules that are 899 writable/creatable/deletable (i.e., config true, which is the 900 default). These data nodes may be considered sensitive or vulnerable 901 in some network environments. Write operations (e.g., edit-config) 902 to these data nodes without proper protection can have a negative 903 effect on network operations. 905 Some of the readable data nodes in the modules may be considered 906 sensitive or vulnerable in some network environments. It is thus 907 important to control read access (e.g., via get, get-config, or 908 notification) to these data nodes. The exposure of the Link State 909 Database (LSDB) will expose the detailed topology of the network. 910 This may be undesirable since both due to the fact that exposure may 911 facilitate other attacks. Additionally, network operators may 912 consider their topologies to be sensitive confidential data. 914 7. IANA Considerations 916 This document registers URIs in the IETF XML registry [RFC3688]. 917 Following the format in [RFC3688], the following registrations is 918 requested to be made: 920 URI: urn:ietf:params:xml:ns:yang:ietf-ospf-two-metric 921 Registrant Contact: The IESG. 922 XML: N/A, the requested URI is an XML namespace. 924 URI: urn:ietf:params:xml:ns:yang:ietf-ospf-grace-linkdown 925 Registrant Contact: The IESG. 926 XML: N/A, the requested URI is an XML namespace. 928 URI: urn:ietf:params:xml:ns:yang:ietf-ospf-lls-localid 929 Registrant Contact: The IESG. 930 XML: N/A, the requested URI is an XML namespace. 932 This document registers the YANG modules in the YANG Module Names 933 registry [RFC6020]. 935 name: ietf-ospf-two-metric 936 namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-two-metric 937 prefix: ospf-two-metric 938 reference: RFC XXXX 940 name: ietf-ospf-grace-linkdown 941 namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-grace-linkdown 942 prefix: ospf-grace-linkdown 943 reference: RFC XXXX 945 name: ietf-ospf-lls-localid 946 namespace: urn:ietf:params:xml:ns:yang:ietf-ospf-lls-localid 947 prefix: ospf-lls-localid 948 reference: RFC XXXX 950 8. Acknowledgements 952 This document was produced using Marshall Rose's xml2rfc tool. 954 The YANG model was developed using the suite of YANG tools written 955 and maintained by numerous authors. 957 9. References 959 9.1. Normative References 961 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 962 Requirement Levels", BCP 14, RFC 2119, 963 DOI 10.17487/RFC2119, March 1997, 964 . 966 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 967 DOI 10.17487/RFC3688, January 2004, 968 . 970 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 971 (TLS) Protocol Version 1.2", RFC 5246, 972 DOI 10.17487/RFC5246, August 2008, 973 . 975 [RFC5329] Ishiguro, K., Manral, V., Davey, A., and A. Lindem, Ed., 976 "Traffic Engineering Extensions to OSPF Version 3", 977 RFC 5329, DOI 10.17487/RFC5329, September 2008, 978 . 980 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 981 the Network Configuration Protocol (NETCONF)", RFC 6020, 982 DOI 10.17487/RFC6020, October 2010, 983 . 985 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 986 and A. Bierman, Ed., "Network Configuration Protocol 987 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 988 . 990 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 991 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 992 . 994 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 995 Protocol (NETCONF) Access Control Model", RFC 6536, 996 DOI 10.17487/RFC6536, March 2012, 997 . 999 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1000 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1001 . 1003 [RFC8022] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 1004 Management", RFC 8022, DOI 10.17487/RFC8022, November 1005 2016, . 1007 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1008 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1009 . 1011 [RFC8042] Zhang, Z., Wang, L., and A. Lindem, "OSPF Two-Part 1012 Metric", RFC 8042, DOI 10.17487/RFC8042, December 2016, 1013 . 1015 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 1016 Routing Management (NMDA Version)", RFC 8349, 1017 DOI 10.17487/RFC8349, March 2018, 1018 . 1020 [RFC8379] Hegde, S., Sarkar, P., Gredler, H., Nanduri, M., and L. 1021 Jalil, "OSPF Graceful Link Shutdown", RFC 8379, 1022 DOI 10.17487/RFC8379, May 2018, 1023 . 1025 [RFC8510] Psenak, P., Ed., Talaulikar, K., Henderickx, W., and P. 1026 Pillay-Esnault, "OSPF Link-Local Signaling (LLS) 1027 Extensions for Local Interface ID Advertisement", 1028 RFC 8510, DOI 10.17487/RFC8510, January 2019, 1029 . 1031 9.2. Informative References 1033 [I-D.ietf-ospf-yang] 1034 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1035 "YANG Data Model for OSPF Protocol", draft-ietf-ospf- 1036 yang-29 (work in progress), October 2019. 1038 Authors' Addresses 1040 Acee Lindem 1041 Cisco Systems 1042 301 Midenhall Way 1043 Cary, NC 27513 1045 EMail: acee@cisco.com 1046 Yingzhen Qu 1047 Futurewei 1048 2330 Central Expressway 1049 Santa Clara, CA 95050 1050 USA 1052 EMail: yingzhen.qu@futurewei.com