idnits 2.17.1 draft-rasool-lsr-flex-algo-yang-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 212 has weird spacing: '...eag-val te-...' == Line 228 has weird spacing: '...eag-val te-...' == Line 263 has weird spacing: '...eag-val te-...' == Line 277 has weird spacing: '...eag-val te-...' == Line 291 has weird spacing: '...eag-val te-...' == (1 more instance...) -- The document date (April 26, 2019) is 1827 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) == Outdated reference: A later version (-06) exists of draft-hu-isis-srv6-yang-01 == Outdated reference: A later version (-04) exists of draft-hu-lsr-ospf-srv6-yang-00 == Outdated reference: A later version (-21) exists of draft-ietf-isis-sr-yang-05 == Outdated reference: A later version (-30) exists of draft-ietf-ospf-sr-yang-07 == Outdated reference: A later version (-26) exists of draft-ietf-lsr-flex-algo-01 Summary: 0 errors (**), 0 flaws (~~), 12 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 LSR M. Rasool, Ed. 3 Internet-Draft S. Sreenivasan, Ed. 4 Intended status: Standards Track M. Negi, Ed. 5 Expires: October 28, 2019 Huawei Technologies 6 April 26, 2019 8 YANG Model for IGP Flexible Algorithm 9 draft-rasool-lsr-flex-algo-yang-00 11 Abstract 13 This document describes a YANG data model for IGP Flexible Algorithm. 14 The model serves as a base framework for configuring and managing 15 Flexible Algorithms which is used by IGPs to compute constraint based 16 paths over the network. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on October 28, 2019. 35 Copyright Notice 37 Copyright (c) 2019 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (https://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 54 3. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 55 4. Design of Data Model . . . . . . . . . . . . . . . . . . . . 3 56 4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 57 4.2. Flex-Algorithm Types . . . . . . . . . . . . . . . . . . 4 58 4.3. Flex-Algorithm Data Model . . . . . . . . . . . . . . . . 4 59 4.3.1. YANG Model Tree . . . . . . . . . . . . . . . . . . . 4 60 4.3.2. Notifications . . . . . . . . . . . . . . . . . . . . 7 61 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 7 62 6. Flex-Algorithm YANG Module . . . . . . . . . . . . . . . . . 8 63 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 64 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 65 9. Security Considerations . . . . . . . . . . . . . . . . . . . 16 66 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 67 10.1. Normative References . . . . . . . . . . . . . . . . . . 16 68 10.2. Informative References . . . . . . . . . . . . . . . . . 18 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 71 1. Introduction 73 The Network Configuration Protocol (NETCONF) [RFC6241] is one of the 74 network management protocols that defines mechanisms to manage 75 network devices. YANG [RFC6020] is a modular language that 76 represents data structures in an XML tree format, and is used as a 77 data modeling language for the NETCONF. 79 IGP Flexible Algorithm as defined in [I-D.ietf-lsr-flex-algo], 80 proposes a solution that allows IGPs themselves to compute constraint 81 based paths over the network. It also specifies a way of using 82 Segment Routing Prefix-SIDs to steer packets along the constraint- 83 based paths. 85 This document describes a YANG [RFC7950] data model for IGP Flexible 86 Algorithms. The model serves as a base framework for configuring and 87 managing Flexible Algorithm which is used by IGPs to compute 88 constraint based paths over the network. 90 IGP protocols like IS-IS and OSPF uses this Flexible algorithm 91 definition in their YANG models defined in : 93 o [I-D.hu-lsr-ospf-srv6-yang] 95 o [I-D.hu-isis-srv6-yang] 97 o [I-D.ietf-isis-sr-yang], 98 o [I-D.ietf-ospf-sr-yang]. 100 The model currently defines the following constructs that are used 101 for managing Flexible Algorithm: 103 o Configuration 105 o Operational State 107 o Notifications 109 2. Requirements Language 111 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 112 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 113 document are to be interpreted as described in [RFC2119]. 115 3. Terminology and Notation 117 This document uses the terminology defined in 118 [I-D.ietf-lsr-flex-algo] . In particular, it uses the following 119 acronyms. 121 o FAD: Flexible Algorithm Definition is the set consisting of (a) 122 calculation-type, (b) metric-type and (c) a set of constraints. 124 o Flexible Algorithm (Flex-Algorithm) - a numeric identifier in the 125 range 128-255 that is associated via provisioning with the 126 Flexible-Algorithm Definition. 128 o IGP Algorithm - value from the the "IGP Algorithm Types" registry 129 defined under "Interior Gateway Protocol (IGP) Parameters" IANA 130 registries. IGP Algorithms represents the triplet (Calculation 131 Type, Metric, Constraints). 133 o EAG : Extended Administrative Group: as defined in [RFC7308]. 135 4. Design of Data Model 137 4.1. Overview 139 This document defines the following new YANG module: 141 o ietf-flex-algo: This defines common and basic types related to 142 Flex-Algorithm. 143 and specifies configuration and management model for Flex- 144 Algorithm. 146 The modeling in this document complies with the Network Management 147 Datastore Architecture (NMDA) defined in [RFC8342]. The operational 148 state data is combined with the associated configuration data in the 149 same hierarchy [RFC8407]. When protocol states are retrieved from 150 the NMDA operational state datastore, the returned states cover all 151 "config true" (rw) and "config false" (ro) nodes defined in the 152 schema. 154 In this document, when a simplified graphical representation of YANG 155 model is presented in a tree diagram, the meaning of the symbols in 156 these tree diagrams is defined in [RFC8340]. 158 4.2. Flex-Algorithm Types 160 Flex-Algorithm common types and definitions are defined in this 161 module. The main types defined in this module include: 163 o flex-algo-id: Flexible-Algorithm is single octet value between 128 164 and 255 both inclusive. 166 o flex-algo-metric-type: Type of metric to be used during the 167 calculation. 169 o flex-algo-calc-type: Calculation type value from 0 to 127 170 inclusive from the "IGP Algorithm Types" registry defined under 171 "Interior Gateway Protocol (IGP) Parameters" IANA registries. 173 The above fields are described in details in 174 [I-D.ietf-lsr-flex-algo]. 176 4.3. Flex-Algorithm Data Model 178 The Flex-Algorithm model is captured by ietf-flex-algo module. This 179 data model specifies the configuration, operational state, and 180 notification events required to manage Flex-Algorithm. 182 The associated YANG specification for this module is captured in 183 Section Flex-Algorithm YANG Module. 185 4.3.1. YANG Model Tree 187 The module defines some fundamental items required to configure and 188 maintain FAD. 190 The operational state is included in the same tree as configuration 191 consistent with Network Management Datastore Architecture [RFC8342]. 193 fad-bindings: This is used for configuring the FAD in the IGP. IGP 194 advertises this information. 196 fad-tlvs: This is used to display the received information from the 197 IGP Peers. 199 Following is a simplified graphical representation of the data model 200 for Flex Algorithm configuration: 202 module: ietf-flex-algo 203 augment /rt:routing: 204 +--rw flex-algos 205 +--rw flex-algo* [flex-algo-id] 206 +--rw flex-algo-id flex-algo-id 207 +--rw metric-type? identityref 208 +--rw calc-type? flex-algo-calc-type 209 +--rw priority? uint8 210 +--rw extended-admin-groups 211 | +--rw extended-admin-group* [eag-val] 212 | +--rw eag-val te-types:extended-admin-group 213 +--ro routing-protocols* [] 214 | +--ro routing-protocol? leafref 215 +--ro flex-algo-counters 216 +--ro igp-use-count? yang:counter64 217 augment /rt:routing/rt:control-plane-protocols 218 /rt:control-plane-protocol/isis:isis/isis:database 219 /isis:levels/isis:lsp/isis:router-capabilities: 220 +--ro fad-tlvs 221 +--ro fad-tlv* [flex-algo-id] 222 +--ro flex-algo-id flex-algo-id 223 +--ro metric-type? identityref 224 +--ro calc-type? flex-algo-calc-type 225 +--ro priority? uint8 226 +--ro extended-admin-groups 227 +--ro extended-admin-group* [eag-val] 228 +--ro eag-val te-types:extended-admin-group 229 augment /rt:routing/rt:control-plane-protocols 230 /rt:control-plane-protocol/isis:isis: 231 +--rw fad-bindings* [flex-algo-id] 232 +--rw flex-algo-id 233 | -> /rt:routing/flex-algos/flex-algo/flex-algo-id 234 +--rw is-level? isis:level 235 augment /rt:routing/srv6:srv6/srv6:locators/srv6:locator: 236 +--rw flex-algo-id? 237 -> /rt:routing/flex-algos/flex-algo/flex-algo-id 238 augment /rt:routing/rt:control-plane-protocols 239 /rt:control-plane-protocol/ospf:ospf: 241 +--rw fad-bindings 242 +--rw flex-algo-id* 243 -> /rt:routing/flex-algos/flex-algo/flex-algo-id 244 augment /rt:routing/rt:control-plane-protocols 245 /rt:control-plane-protocol/ospf:ospf/ospf:areas 246 /ospf:area: 247 +--rw fad-bindings 248 +--rw flex-algo-id* 249 -> /rt:routing/flex-algos/flex-algo/flex-algo-id 250 augment /rt:routing/rt:control-plane-protocols 251 /rt:control-plane-protocol/ospf:ospf/ospf:database 252 /ospf:as-scope-lsa-type/ospf:as-scope-lsas 253 /ospf:as-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 254 /ospf:body/ospf:opaque: 255 +--ro fad-tlvs 256 +--ro fad-tlv* [flex-algo-id] 257 +--ro flex-algo-id flex-algo-id 258 +--ro metric-type? identityref 259 +--ro calc-type? flex-algo-calc-type 260 +--ro priority? uint8 261 +--ro extended-admin-groups 262 +--ro extended-admin-group* [eag-val] 263 +--ro eag-val te-types:extended-admin-group 264 augment /rt:routing/rt:control-plane-protocols 265 /rt:control-plane-protocol/ospf:ospf/ospf:areas 266 /ospf:area/ospf:database/ospf:area-scope-lsa-type 267 /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version 268 /ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque: 269 +--ro fad-tlvs 270 +--ro fad-tlv* [flex-algo-id] 271 +--ro flex-algo-id flex-algo-id 272 +--ro metric-type? identityref 273 +--ro calc-type? flex-algo-calc-type 274 +--ro priority? uint8 275 +--ro extended-admin-groups 276 +--ro extended-admin-group* [eag-val] 277 +--ro eag-val te-types:extended-admin-group 278 augment /rt:routing/rt:control-plane-protocols 279 /rt:control-plane-protocol/ospf:ospf/ospf:database 280 /ospf:as-scope-lsa-type/ospf:as-scope-lsas 281 /ospf:as-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 282 /ospf:body/ospf:router-information: 283 +--ro fad-tlvs 284 +--ro fad-tlv* [flex-algo-id] 285 +--ro flex-algo-id flex-algo-id 286 +--ro metric-type? identityref 287 +--ro calc-type? flex-algo-calc-type 288 +--ro priority? uint8 289 +--ro extended-admin-groups 290 +--ro extended-admin-group* [eag-val] 291 +--ro eag-val te-types:extended-admin-group 292 augment /rt:routing/rt:control-plane-protocols 293 /rt:control-plane-protocol/ospf:ospf/ospf:areas 294 /ospf:area/ospf:database/ospf:area-scope-lsa-type 295 /ospf:area-scope-lsas/ospf:area-scope-lsa/ospf:version 296 /ospf:ospfv3/ospf:ospfv3/ospf:body 297 /ospf:router-information: 298 +--ro fad-tlvs 299 +--ro fad-tlv* [flex-algo-id] 300 +--ro flex-algo-id flex-algo-id 301 +--ro metric-type? identityref 302 +--ro calc-type? flex-algo-calc-type 303 +--ro priority? uint8 304 +--ro extended-admin-groups 305 +--ro extended-admin-group* [eag-val] 306 +--ro eag-val te-types:extended-admin-group 308 Figure 1: Flex-Algorithm Tree 310 4.3.2. Notifications 312 To be updated if any notification is required. 314 5. Interaction with Other YANG Modules 316 The "flex-algo" module augments the "/rt:routing/" container of the 317 ietf-routing [RFC8349] module by defining flex-algorithm specific 318 parameters. 320 The "flex-algo" module augments the "/rt:routing/rt:control-plane- 321 protocols/rt:control-plane-protocol/isis:isis" container and 322 "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ 323 ospf:ospf" for advertisement of the FAD in the IGP protocols. It 324 also augments the specified modules for displaying the received flex- 325 algorithm information in the database. 327 The "flex-algo" module also augments the "/rt:routing/srv6:srv6/ 328 srv6:locators/" for attaching the flex-algorithm to the srv6 329 locators. 331 6. Flex-Algorithm YANG Module 333 Following are actual YANG definition for Flexible Algorithm modules 334 defined earlier in the document. 336 file "ietf-flex-algo@2019-04-26.yang" --> 338 module ietf-flex-algo { 339 yang-version 1.1; 340 namespace "urn:ietf:params:xml:ns:yang:ietf-flex-algo"; 341 prefix flex-algo; 343 import ietf-routing { 344 prefix rt; 345 } 346 import ietf-yang-types { 347 prefix yang; 348 } 349 import ietf-ospf { 350 prefix ospf; 351 } 352 import ietf-isis { 353 prefix isis; 354 } 355 import ietf-srv6-base { 356 prefix srv6; 357 } 359 /* Import TE generic types */ 360 import ietf-te-types { 361 prefix te-types; 362 } 364 organization 365 "IETF LSR Working Group"; 366 contact 367 "WG Web: 368 WG List: 370 Editor: 371 372 373 374 "; 375 description 376 "This YANG module defines the essential types for the 377 management of Flex-Algorithm for IGP. It also defines the 378 module for configuration and management of IGP Flex-Algorithms. 380 Copyright (c) 2019 IETF Trust and the persons identified as 381 authors of the code. All rights reserved. 383 Redistribution and use in source and binary forms, with or 384 without modification, is permitted pursuant to, and subject 385 to the license terms contained in, the Simplified BSD License 386 set forth in Section 4.c of the IETF Trust's Legal Provisions 387 Relating to IETF Documents 388 (http://trustee.ietf.org/license-info)."; 389 reference "RFC XXXX"; 391 // RFC Editor: replace XXXX with actual RFC number and remove 392 // this note 394 revision 2019-04-26 { 395 description 396 "Initial revision."; 397 reference "RFC XXXX"; 398 } 400 /* Types definitions */ 402 identity flex-metric-type { 403 description 404 "Identity from which Metric type for Flex-algorithm are 405 derived"; 406 } 408 identity igp { 409 base flex-metric-type; 410 description 411 "IGP metric to be used during the calculation."; 412 } 414 identity link-delay { 415 base flex-metric-type; 416 description 417 "Min Unidirectional Link Delay as defined in [RFC7810] to 418 be used during the calculation."; 419 } 421 identity te { 422 base flex-metric-type; 423 description 424 "TE default metric as defined in [RFC5305] to be used during 425 the calculation."; 427 } 429 typedef flex-algo-id { 430 type uint8 { 431 range "128 .. 255"; 432 } 433 description 434 "Flex-Algorithm value is a single octet value between 435 128 and 255 both inclusive."; 436 } 438 typedef flex-algo-calc-type { 439 type uint8 { 440 range "0 .. 127"; 441 } 442 default "0"; 443 description 444 "Calculation type value ranges from 0 to 127 both inclusive 445 from the IGP Algorithm Types registry defined under 446 Interior Gateway Protocol (IGP) 447 Parameters IANA registries. 448 If the required calculation type is Shortest Path First, 449 the value 0 SHOULD appear in this field."; 450 } 452 /* Groupings */ 454 grouping fad-definition { 455 description 456 "Flexible Algorithm Definition"; 457 leaf flex-algo-id { 458 type flex-algo-id; 459 mandatory true; 460 description 461 "Flex Algorithm Identifier"; 462 } 463 leaf metric-type { 464 type identityref { 465 base flex-metric-type; 466 } 467 description 468 "Indicates which is the corresponding metric type for 469 this algorithm, default is IGP"; 470 } 471 leaf calc-type { 472 type flex-algo-calc-type; 473 description 474 "Indicates the calculation type"; 476 } 477 leaf priority { 478 type uint8; 479 description 480 "Indicates the priority for this algorithm"; 481 } 482 container extended-admin-groups { 483 description 484 "Extended Admin group configuration for this 485 flex algorithm"; 486 list extended-admin-group { 487 key "eag-val"; 488 description 489 "Configure an Extended admin group"; 490 leaf eag-val { 491 type te-types:extended-admin-group; 492 description 493 "The Flexible-Algorithm definition can specify 494 'colors' that are used by the operator to include 495 or exclude links during the Flex-Algorithm 496 path computation."; 497 } 498 } 499 } 500 } 502 grouping fad-tlvs { 503 description 504 "Flexible Algorithm Definition TLV"; 505 container fad-tlvs { 506 description 507 "Flex Algorithms Definition TLV"; 508 list fad-tlv { 509 key "flex-algo-id"; 510 description 511 "List of FAD TLVs."; 512 uses fad-definition; 513 } 514 } 515 } 517 /* Configuration and State Info */ 519 augment "/rt:routing" { 520 description 521 "This augments routing-instance configuration with 522 Flexible Algorithm."; 523 container flex-algos { 524 description 525 "Flex Algorithms"; 526 list flex-algo { 527 key "flex-algo-id"; 528 description 529 "Configure a Flex Algorithm"; 530 uses fad-definition; 531 list routing-protocols { 532 config false; 533 description 534 "Details of Routing Protocols using this Flexible 535 algorithm"; 536 leaf routing-protocol { 537 type leafref { 538 path "/rt:routing/rt:control-plane-protocols" 539 + "/rt:control-plane-protocol/rt:name"; 540 } 541 config false; 542 description 543 "Indicates which routing protocol used this flex 544 algorithm"; 545 } 546 } 547 container flex-algo-counters { 548 config false; 549 description 550 "Flex Algorithm Counters"; 551 leaf igp-use-count { 552 type yang:counter64; 553 config false; 554 description 555 "This counter helps to find the number of IGP instances 556 using this FAD"; 557 } 558 } 559 } 560 } 561 } 563 /* Configuration and state information for ISIS */ 564 augment "/rt:routing/" + 565 "rt:control-plane-protocols/rt:control-plane-protocol"+ 566 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 567 "/isis:router-capabilities" { 568 when "/rt:routing/rt:control-plane-protocols/"+ 569 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 570 description 571 "This augment ISIS routing protocol when used"; 573 } 574 description 575 "This augments ISIS protocol LSDB router capability."; 576 uses fad-tlvs; 577 } 579 augment "/rt:routing/" + 580 "rt:control-plane-protocols/rt:control-plane-protocol"+ 581 "/isis:isis" { 582 description 583 "This augments isis configuration."; 584 list fad-bindings { 585 key "flex-algo-id"; 586 description 587 "Flex Algorithm Counters"; 588 leaf flex-algo-id { 589 type leafref { 590 path "/rt:routing/flex-algos/flex-algo/flex-algo-id"; 591 } 592 description 593 "Flex Algorithm Identifier binded to ISIS"; 594 } 595 leaf is-level { 596 type isis:level; 597 description 598 "ISIS Level associted with this Flex Algorithm"; 599 } 600 } 601 } 603 /*SRv6 Locator config and state */ 605 augment "/rt:routing/srv6:srv6/srv6:locators/srv6:locator" { 606 description 607 "This augments locator configuration in segment-routing 608 SRv6."; 609 leaf flex-algo-id { 610 type leafref { 611 path "/rt:routing/flex-algos/flex-algo/flex-algo-id"; 612 } 613 description 614 "Flex Algorithm Identifier that is used by this locator"; 615 } 616 } 618 /* OSPF configuration */ 620 augment "/rt:routing/rt:control-plane-protocols" 621 + "/rt:control-plane-protocol/ospf:ospf" { 622 description 623 "Flex Algorithm is binded to OSPF. OSPF then 624 advertises FAD TLVs in RI LSA in AS-scope"; 625 container fad-bindings { 626 description 627 "Flex Algorithm is binded to OSPF."; 628 leaf-list flex-algo-id { 629 type leafref { 630 path "/rt:routing/flex-algos/flex-algo/flex-algo-id"; 631 } 632 description 633 "Flex Algorithm that the router will use and advertise."; 634 } 635 } 636 } 638 augment "/rt:routing/rt:control-plane-protocols" 639 + "/rt:control-plane-protocol/ospf:ospf" 640 + "/ospf:areas/ospf:area" { 641 description 642 "Flex Algorithm is binded to OSPF area. OSPF then 643 advertises FAD TLVs in RI LSA in Area-scope"; 644 container fad-bindings { 645 description 646 "Flex Algorithm is binded to OSPF."; 647 leaf-list flex-algo-id { 648 type leafref { 649 path "/rt:routing/flex-algos/flex-algo/flex-algo-id"; 650 } 651 description 652 "Flex Algorithm that the router will use and advertise."; 653 } 654 } 655 } 657 /* State information for OSPFv2*/ 658 augment "/rt:routing/" 659 + "rt:control-plane-protocols/rt:control-plane-protocol/" 660 + "ospf:ospf/ospf:database/" 661 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 662 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" 663 + "ospf:ospfv2/ospf:body/ospf:opaque" { 664 when "../../../../../../../../" 665 + "rt:type = 'ospf:ospfv2'" { 666 description 667 "This augmentation is only valid for OSPFv2."; 668 } 669 description 670 "SR specific TLVs for OSPFv2 type 11 opaque LSA."; 671 uses fad-tlvs; 672 } 674 augment "/rt:routing/" 675 + "rt:control-plane-protocols/rt:control-plane-protocol/" 676 + "ospf:ospf/ospf:areas/" 677 + "ospf:area/ospf:database/" 678 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 679 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" 680 + "ospf:ospfv2/ospf:body/ospf:opaque" { 681 when "../../../../../../../../../../" 682 + "rt:type = 'ospf:ospfv2'" { 683 description 684 "This augmentation is only valid for OSPFv2."; 685 } 686 description 687 "FAD TLVs for OSPFv2 type 10 opaque LSA."; 688 uses fad-tlvs; 689 } 691 /* State information for OSPFv3 */ 692 augment "/rt:routing/" 693 + "rt:control-plane-protocols/rt:control-plane-protocol/" 694 + "ospf:ospf/ospf:database/ospf:as-scope-lsa-type/" 695 + "ospf:as-scope-lsas/ospf:as-scope-lsa/" 696 + "ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body/" 697 + "ospf:router-information" { 698 description "This is augmented only for OSPFv3"; 699 uses fad-tlvs; 700 } 702 augment "/rt:routing/" 703 + "rt:control-plane-protocols/rt:control-plane-protocol/" 704 + "ospf:ospf/ospf:areas/ospf:area/" 705 + "ospf:database/" 706 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 707 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 708 + "ospf:ospfv3/ospf:body/ospf:router-information" { 709 when "/rt:routing/rt:control-plane-protocols/"+ 710 "rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { 711 description 712 "This augment OSPFv3 routing protocol when used"; 713 } 714 description 715 "This displays FAD TLVs in router capability"; 716 uses fad-tlvs; 718 } 720 // RFC Editor: replace XXXX with actual RFC number and remove 721 // this note 722 } 723 725 7. Acknowledgements 727 The authors wish to thank Dhruv Dhody and Rohit Ranade for their 728 helpful comments and suggestions. 730 8. IANA Considerations 732 None 734 9. Security Considerations 736 The configuration, state, and notification data defined using YANG 737 data models in this document are likely to be accessed via the 738 protocols such as NETCONF [RFC6241] etc. 740 Hence, YANG implementations MUST comply with the security 741 requirements specified in section 15 of [RFC6020]. Additionally, 742 NETCONF implementations MUST comply with the security requirements 743 specified in sections 2.2, 2.3 and 9 of [RFC6241] as well as section 744 3.7 of [RFC8341]. 746 The security considerations are same as defined in 747 [I-D.ietf-lsr-flex-algo] 749 10. References 751 10.1. Normative References 753 [I-D.hu-isis-srv6-yang] 754 Hu, Z., Ye, D., Qu, Y., and J. Dong, "YANG Data Model for 755 IS-IS SRv6", draft-hu-isis-srv6-yang-01 (work in 756 progress), March 2019. 758 [I-D.hu-lsr-ospf-srv6-yang] 759 Hu, Z., Raza, K., Qu, Y., and J. Dong, "YANG Data Model 760 for OSPF SRv6", draft-hu-lsr-ospf-srv6-yang-00 (work in 761 progress), October 2018. 763 [I-D.ietf-isis-sr-yang] 764 Litkowski, S., Qu, Y., Sarkar, P., Chen, I., and J. 765 Tantsura, "YANG Data Model for IS-IS Segment Routing", 766 draft-ietf-isis-sr-yang-05 (work in progress), March 2019. 768 [I-D.ietf-ospf-sr-yang] 769 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 770 "YANG Data Model for OSPF SR (Segment Routing) Protocol", 771 draft-ietf-ospf-sr-yang-07 (work in progress), March 2019. 773 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 774 Requirement Levels", BCP 14, RFC 2119, 775 DOI 10.17487/RFC2119, March 1997, 776 . 778 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 779 the Network Configuration Protocol (NETCONF)", RFC 6020, 780 DOI 10.17487/RFC6020, October 2010, 781 . 783 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 784 and A. Bierman, Ed., "Network Configuration Protocol 785 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 786 . 788 [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS 789 Traffic Engineering (MPLS-TE)", RFC 7308, 790 DOI 10.17487/RFC7308, July 2014, 791 . 793 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 794 RFC 7950, DOI 10.17487/RFC7950, August 2016, 795 . 797 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 798 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 799 . 801 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration 802 Access Control Model", STD 91, RFC 8341, 803 DOI 10.17487/RFC8341, March 2018, 804 . 806 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 807 and R. Wilton, "Network Management Datastore Architecture 808 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 809 . 811 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 812 Routing Management (NMDA Version)", RFC 8349, 813 DOI 10.17487/RFC8349, March 2018, 814 . 816 [RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of 817 Documents Containing YANG Data Models", BCP 216, RFC 8407, 818 DOI 10.17487/RFC8407, October 2018, 819 . 821 10.2. Informative References 823 [I-D.ietf-lsr-flex-algo] 824 Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and 825 A. Gulko, "IGP Flexible Algorithm", draft-ietf-lsr-flex- 826 algo-01 (work in progress), November 2018. 828 Authors' Addresses 830 Mobashshera Rasool (editor) 831 Huawei Technologies 832 Divyashree Techno Park, Whitefield 833 Bengaluru, Karnataka 560066 834 India 836 Email: mobashshera.rasool@huawei.com 838 Sreekanth S (editor) 839 Huawei Technologies 840 Divyashree Techno Park, Whitefield 841 Bengaluru, Karnataka 560066 842 India 844 Email: sreekanths@huawei.com 846 Mahendra Singh Negi (editor) 847 Huawei Technologies 848 Divyashree Techno Park, Whitefield 849 Bengaluru, Karnataka 560066 850 India 852 Email: mahendrasingh@huawei.com