idnits 2.17.00 (12 Aug 2021) /tmp/idnits46175/draft-qct-lsr-ppr-yang-01.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 is 1 instance of too long lines in the document, the longest one being 1 character in excess of 72. ** The abstract seems to contain references ([I-D.chunduri-lsr-isis-preferred-path-routing], [I-D.chunduri-lsr-ospf-preferred-path-routing]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 99 has weird spacing: '... ppr-id uin...' == Line 102 has weird spacing: '... ppr-id ine...' == Line 105 has weird spacing: '... ppr-id ine...' == Line 108 has weird spacing: '... ppr-id ine...' -- The document date (March 10, 2019) is 1168 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 (-07) exists of draft-chunduri-lsr-isis-preferred-path-routing-02 == Outdated reference: A later version (-04) exists of draft-chunduri-lsr-ospf-preferred-path-routing-02 == Outdated reference: A later version (-42) exists of draft-ietf-isis-yang-isis-cfg-35 == Outdated reference: A later version (-29) exists of draft-ietf-ospf-yang-21 ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: draft-ietf-netmod-yang-tree-diagrams has been published as RFC 8340 Summary: 4 errors (**), 0 flaws (~~), 10 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 LSR Working Group Y. Qu 3 Internet-Draft U. Chunduri 4 Intended status: Standards Track Huawei USA 5 Expires: September 11, 2019 J. Tantsura 6 Apstra 7 March 10, 2019 9 YANG Data Model for Preferred Path Routing 10 draft-qct-lsr-ppr-yang-01 12 Abstract 14 This document defines YANG data modules for preferred path routing 15 ([I-D.chunduri-lsr-isis-preferred-path-routing], 16 [I-D.chunduri-lsr-ospf-preferred-path-routing]) configuration and 17 operation. The YANG modules are intended to be used on network 18 elements to manage the configurations and operations of preferred 19 path routing. 21 Requirements Language 23 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 24 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 25 document are to be interpreted as described in [RFC2119]. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on September 11, 2019. 44 Copyright Notice 46 Copyright (c) 2019 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 2 63 2. PPR YANG Module . . . . . . . . . . . . . . . . . . . . . . . 2 64 3. ISIS PPR YANG Module . . . . . . . . . . . . . . . . . . . . 6 65 4. OSPF PPR YANG Module . . . . . . . . . . . . . . . . . . . . 18 66 5. Security Considerations . . . . . . . . . . . . . . . . . . . 54 67 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 54 68 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 55 69 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 70 8.1. Normative References . . . . . . . . . . . . . . . . . . 55 71 8.2. Informative References . . . . . . . . . . . . . . . . . 56 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 56 74 1. Introduction 76 This document defines YANG data modules ([RFC6020], [RFC7950]) for 77 preferred path routing configuration and operation. 79 There are three YANG modules defined in this document. Module ietf- 80 ppr.yang defined the protocol independent part of configuration and 81 operations. Two IGP modules are defined as ietf-isis-ppr.yang and 82 ietf-ospf-ppr.yang. 84 1.1. Tree diagram 86 Tree diagrams used in this document follow the notation defined in 87 [I-D.ietf-netmod-yang-tree-diagrams]. 89 2. PPR YANG Module 91 This YANG module defines protocol independent part of configuration 92 and operation of preferred path routing (PPR) as defined in 93 ([I-D.chunduri-lsr-isis-preferred-path-routing]). 95 module: ietf-ppr 96 augment /rt:routing: 97 +--rw preferred-path-routing 98 +--rw preferred-path-mpls* [ppr-id] 99 | +--rw ppr-id uint32 100 | +--rw pde-id* uint32 101 +--rw preferred-path-ipv4* [ppr-id] 102 | +--rw ppr-id inet:ipv4-prefix 103 | +--rw pde-id* inet:ipv4-prefix 104 +--rw preferred-path-ipv6* [ppr-id] 105 | +--rw ppr-id inet:ipv6-prefix 106 | +--rw pde-id* inet:ipv6-prefix 107 +--rw preferred-path-srv6* [ppr-id] 108 +--rw ppr-id inet:ipv6-prefix 109 +--rw pde-id* inet:ipv6-prefix 111 file "ietf-ppr@2018-06-20.yang" 112 module ietf-ppr { 113 yang-version 1.1; 114 namespace "urn:ietf:params:xml:ns:yang:ietf-ppr"; 116 prefix ppr; 118 import ietf-inet-types { 119 prefix inet; 120 } 122 import ietf-yang-types { 123 prefix "yang"; 124 } 126 import ietf-routing-types { 127 prefix "rt-types"; 128 } 130 import ietf-routing { 131 prefix rt; 132 } 134 organization 135 "IETF LSR - Link State Routing Working Group"; 137 contact 138 "WG Web: 139 WG List: 141 Author: Yingzhen Qu 142 143 Uma Chunduri 144 "; 145 description 146 "This Yang module defines the configuration and operational 147 state for Preferred Path Routing common to all vendor 148 implementations. 150 This YANG model conforms to the Network Management 151 Datastore Architecture (NDMA) as described in RFC XXXX. 153 Copyright (c) 2018 IETF Trust and the persons identified as 154 authors of the code. All rights reserved. 156 Redistribution and use in source and binary forms, with or 157 without modification, is permitted pursuant to, and subject 158 to the license terms contained in, the Simplified BSD License 159 set forth in Section 4.c of the IETF Trust's Legal Provisions 160 Relating to IETF Documents 161 (http://trustee.ietf.org/license-info). 163 This version of this YANG module is part of RFC XXXX; 164 see the RFC itself for full legal notices."; 166 reference "RFC XXXX"; 168 revision 2018-06-20 { 169 description 170 "Initial revision."; 171 reference 172 "RFC XXXX: A YANG Data Model for PPR."; 173 } 175 augment "/rt:routing" { 176 description 177 "This module augments routing-instace configuration 178 with preferred path routing."; 179 container preferred-path-routing { 180 description 181 "preferred path routing configuration."; 183 list preferred-path-mpls { 184 key "ppr-id"; 185 description 186 "List of preferred path using MPLS data plane."; 187 leaf ppr-id { 188 type uint32; 189 description 190 "PPR ID, A 20 bit label or 32 bit SID."; 191 } 192 leaf-list pde-id { 193 type uint32; 194 description 195 "List of PPR Path Description Element (PDE)."; 196 } 197 } 199 list preferred-path-ipv4 { 200 key "ppr-id"; 201 description 202 "List of preferred path using IPv4 data plane."; 203 leaf ppr-id { 204 type inet:ipv4-prefix; 205 description 206 "PPR ID, IPv4 address format."; 207 } 208 leaf-list pde-id { 209 type inet:ipv4-prefix; 210 description 211 "List of PPR Path Description Element (PDE)."; 212 } 213 } 215 list preferred-path-ipv6 { 216 key "ppr-id"; 217 description 218 "List of preferred path using IPv6 data plane."; 219 leaf ppr-id { 220 type inet:ipv6-prefix; 221 description 222 "PPR ID, IPv6 address format."; 223 } 224 leaf-list pde-id { 225 type inet:ipv6-prefix; 226 description 227 "List of PPR Path Description Element (PDE)."; 228 } 229 } 231 list preferred-path-srv6 { 232 key "ppr-id"; 233 description 234 "List of preferred path using SRv6 data plane."; 235 leaf ppr-id { 236 type inet:ipv6-prefix; 237 description 238 "PPR ID, SRv6 SID format."; 239 } 240 leaf-list pde-id { 241 type inet:ipv6-prefix; 242 description 243 "List of PPR Path Description Element (PDE)."; 244 } 245 } 246 } 247 } 248 } 249 251 3. ISIS PPR YANG Module 253 This YANG module defines ISIS configuration and operation of 254 preferred path routing (PPR) as defined in 255 ([I-D.chunduri-lsr-isis-preferred-path-routing]). It augments base 256 ISIS module defined in [I-D.ietf-isis-yang-isis-cfg]. 258 module: ietf-isis-ppr 259 augment /rt:routing/rt:control-plane-protocols 260 /rt:control-plane-protocol/isis:isis: 261 +--rw ppr 262 +--rw enable? boolean 263 augment /rt:routing/rt:control-plane-protocols 264 /rt:control-plane-protocol/isis:isis/isis:database 265 /isis:level-db/isis:lsp: 266 +--ro ppr-tlvs 267 +--ro ppr-tlv* 268 +--ro flags? bits 269 +--ro fragment-id? uint8 270 +--ro ppr-prefix-sub-tlv 271 | +--ro mt-id? uint16 272 | +--ro prefix-len? uint8 273 | +--ro mask-len? uint8 274 | +--ro isis-prefix? inet:ip-address 275 | +--ro ppr-prefix-sub-sub-tlvs 276 | +--ro unknown-tlv* 277 | +--ro type? uint8 278 | +--ro length? uint8 279 | +--ro value? yang:hex-string 280 +--ro ppr-id-sub-tlv 281 | +--ro flags? bits 282 | +--ro ppr-id-type? enumeration 283 | +--ro ppr-id-len? uint8 284 | +--ro ppr-id-mask-len? uint8 285 | +--ro ppr-id-algo? uint8 286 | +--ro (ppr-id)? 287 | +--:(mpls-id) 288 | | +--ro mpls-id? uint32 289 | +--:(ipv4-id) 290 | | +--ro ipv4-id? inet:ipv4-prefix 291 | +--:(srv6-ipv6-id) 292 | +--ro srv6-ipv6-id? inet:ipv6-prefix 293 +--ro ppr-pde-sub-tlvs* 294 | +--ro pde-type? enumeration 295 | +--ro ppr-pde-flags? bits 296 | +--ro pde-id-type? enumeration 297 | +--ro pde-id-len? uint8 298 | +--ro (pde-id)? 299 | | +--:(mpls-id) 300 | | | +--ro mpls-id? uint32 301 | | +--:(ipv4-id) 302 | | | +--ro ipv4-id? inet:ipv4-prefix 303 | | +--:(srv6-ipv6-id) 304 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 305 | +--ro ppr-pde-sub-sub-tlvs 306 | +--ro unknown-tlv* 307 | +--ro type? uint8 308 | +--ro length? uint8 309 | +--ro value? yang:hex-string 310 +--ro ppr-attribute-sub-tlv 311 +--ro traffic-accounting-sub-tlv 312 | +--ro type? uint8 313 +--ro traffic-statis-sub-tlv 314 | +--ro type? uint8 315 +--ro ipv4-routerid-sub-tlv 316 | +--ro type? uint8 317 | +--ro length? uint8 318 | +--ro value? inet:ipv4-address 319 +--ro ipv6-routerid-sub-tlv 320 | +--ro type? uint8 321 | +--ro length? uint8 322 | +--ro value? inet:ipv6-address 323 +--ro ppr-metric-sub-tlv 324 +--ro type? uint8 325 +--ro length? uint8 326 +--ro value? uint32 328 file "ietf-isis-ppr@2019-03-10.yang" 329 module ietf-isis-ppr { 330 yang-version 1.1; 331 namespace "urn:ietf:params:xml:ns:yang:ietf-isis-ppr"; 332 prefix isis-ppr; 334 import ietf-inet-types { 335 prefix inet; 336 } 338 import ietf-yang-types { 339 prefix "yang"; 340 } 342 import ietf-routing { 343 prefix rt; 344 } 346 import ietf-isis { 347 prefix "isis"; 348 } 350 organization 351 "IETF LSR - Link State Routing Working Group"; 353 contact 354 "WG Web: 355 WG List: 357 Author: Yingzhen Qu 358 359 Uma Chunduri 360 "; 361 description 362 "This Yang module defines the configuration and operational 363 state for Preferred Path Routing common to all vendor 364 implementations. 366 This YANG model conforms to the Network Management 367 Datastore Architecture (NDMA) as described in RFC XXXX. 369 Copyright (c) 2018 IETF Trust and the persons identified as 370 authors of the code. All rights reserved. 372 Redistribution and use in source and binary forms, with or 373 without modification, is permitted pursuant to, and subject 374 to the license terms contained in, the Simplified BSD License 375 set forth in Section 4.c of the IETF Trust's Legal Provisions 376 Relating to IETF Documents 377 (http://trustee.ietf.org/license-info). 378 This version of this YANG module is part of RFC XXXX; 379 see the RFC itself for full legal notices."; 381 reference "RFC XXXX"; 383 revision 2019-03-10 { 384 description 385 "Initial revision."; 386 reference 387 "RFC XXXX: A YANG Data Model for ISIS PPR."; 388 } 390 /* Groupings */ 391 grouping tlv { 392 description 393 "TLV"; 394 leaf type { 395 type uint8; 396 description "TLV type."; 397 } 398 leaf length { 399 type uint8; 400 description "TLV length (octets)."; 401 } 402 leaf value { 403 type yang:hex-string; 404 description "TLV value."; 405 } 406 } 408 grouping general-tlvs { 409 description 410 "Unknown TLVs grouping - Used for unknown TLVs or 411 unknown sub-TLVs."; 413 list unknown-tlv { 414 description "General TLV."; 415 uses tlv; 416 } 417 } 419 grouping ppr-prefix-sub-tlv { 420 description "ISIS destination prefix."; 422 container ppr-prefix-sub-tlv { 423 leaf mt-id { 424 type uint16 { 425 range "0 .. 4095"; 427 } 428 description 429 "This leaf defines the identifier 430 of a topology."; 431 } 432 leaf prefix-len { 433 type uint8; 434 description "The length of the profix in bytes."; 435 } 436 leaf mask-len { 437 type uint8; 438 description "The length of the profix in bits."; 439 } 440 leaf isis-prefix { 441 type inet:ip-address; 442 description "FEC Prefix."; 443 } 444 container ppr-prefix-sub-sub-tlvs { 445 uses general-tlvs; 446 description "PPR Prefix sub sub-tlvs."; 447 } 448 description 449 "PPR Prefix sub-tlv."; 450 } 451 } 453 grouping ppr-id-sub-tlv { 454 description 455 "PPR ID: the actual data plane identifier in the packet header."; 457 container ppr-id-sub-tlv { 458 leaf flags { 459 type bits { 460 bit L { 461 position 0; 462 description 463 "If set, the PPR path is a Loose-PPR."; 464 } 465 bit A { 466 position 1; 467 description 468 "If set, all non-PPR path nodes in the ISIS area/domain 469 MUST add a FIB entry for the PPR-ID with NH set to the 470 shortest path NH for the prefix being advertised."; 471 } 472 } 473 description "Flags."; 474 } 475 leaf ppr-id-type { 476 type enumeration { 477 enum mpls { 478 value 1; 479 description 480 "PPR ID in mpls label format."; 481 } 482 enum ipv4 { 483 value 2; 484 description 485 "PPR ID in IPv4 address format."; 486 } 487 enum ipv6 { 488 value 3; 489 description 490 "PPR ID in ipv6 address format."; 491 } 492 enum srv6 { 493 value 4; 494 description 495 "PPR ID in SRv6 SID format."; 496 } 497 } 498 description "Type of PPR ID."; 499 } 500 leaf ppr-id-len { 501 type uint8; 502 description 503 "Length of the PPR ID."; 504 } 505 leaf ppr-id-mask-len { 506 type uint8; 507 description "The length of the profix in bits."; 508 } 509 leaf ppr-id-algo { 510 type uint8; 511 description "The SPF algorithm."; 512 } 513 choice ppr-id { 514 leaf mpls-id { 515 type uint32; 516 description "MPLS Label format."; 517 } 518 leaf ipv4-id { 519 type inet:ipv4-prefix; 520 description "IPv4 format."; 521 } 522 leaf srv6-ipv6-id { 523 type inet:ipv6-prefix; 524 description "SRv6 or IPv6 format."; 525 } 526 description "Preferred Path ID."; 527 } 528 description "PPR ID sub tlv."; 529 } 531 } 533 grouping ppr-pde-sub-tlv { 534 description 535 "This sub-tlv represents the PPR Path Description Element (PDE)."; 537 list ppr-pde-sub-tlvs { 538 description "PPR PDE sub tlvs."; 539 leaf pde-type { 540 type enumeration { 541 enum topological { 542 value 1; 543 description 544 "Topological PDE."; 545 } 546 enum non-topological { 547 value 2; 548 description 549 "Non-topological PDE."; 550 } 551 } 552 description "Type of PDE."; 553 } 554 leaf ppr-pde-flags { 555 type bits { 556 bit L { 557 position 0; 558 description 559 "If set, the PPR path is a Loose-PPR."; 560 } 561 bit D { 562 position 1; 563 description 564 "If set, the PDE is topological and this PDE represents 565 the node PPR-prfix"; 566 } 567 } 568 description "Flags."; 569 } 570 leaf pde-id-type { 571 type enumeration { 572 enum sidlabel { 573 value 1; 574 description 575 "PPR ID in mpls label format."; 576 } 577 enum prefix-sid { 578 value 2; 579 description 580 "SR-MPLS prefix SID."; 581 } 582 enum adj-sid { 583 value 3; 584 description 585 "SR-MPLS adjacency SID."; 586 } 587 enum ipv4 { 588 value 4; 589 description 590 "PDE ID in IPv4 address format."; 591 } 592 enum ipv6 { 593 value 5; 594 description 595 "PDE ID in IPv6 address format."; 596 } 597 enum srv6-node-sid { 598 value 6; 599 description 600 "PDE ID in SRv6 node SID format."; 601 } 602 enum srv6-adj-sid { 603 value 7; 604 description 605 "PDE ID in SRv6 node SID format."; 606 } 607 } 608 description "Type of PPR ID."; 609 } 610 leaf pde-id-len { 611 type uint8; 612 description 613 "Length of the PDE ID."; 614 } 615 choice pde-id { 616 leaf mpls-id { 617 type uint32; 618 description "MPLS Label format."; 620 } 621 leaf ipv4-id { 622 type inet:ipv4-prefix; 623 description "IPv4 format."; 624 } 625 leaf srv6-ipv6-id { 626 type inet:ipv6-prefix; 627 description "SRv6 or IPv6 format."; 628 } 629 description "Preferred Path ID."; 630 } 631 container ppr-pde-sub-sub-tlvs { 632 uses general-tlvs; 633 description "PPR PDE sub sub-tlvs."; 634 } 635 } 636 } 638 grouping ppr-attribute-sub-tlv { 639 description "Grouping for PPR attribute sub-tlvs."; 641 container ppr-attribute-sub-tlv { 642 description "PPR attribute sub-tlv."; 644 container traffic-accounting-sub-tlv { 645 description 646 "packet traffic acccounting sub-tlv. Specifies to create 647 a counter to count number of packets forwarded to this 648 PPR-ID on each node in the path description."; 649 leaf type { 650 type uint8; 651 default 1; 652 description "Type 1 sub-tlv."; 653 } 654 } 655 container traffic-statis-sub-tlv { 656 description 657 "Specifies to create a counter to count number of bytes 658 forwarded on this PPR-ID specified in the network header 659 (e.g. IPv4, IPv6) on each node in the path description."; 660 leaf type { 661 type uint8; 662 default 2; 663 description "Traffic statistics in bytes sub-tlv."; 664 } 665 } 666 container ipv4-routerid-sub-tlv { 667 description "PPR-prefix originating node's IPv4 router ID."; 668 leaf type { 669 type uint8; 670 default 3; 671 description "PPR-prefix originating node's IPv4 router ID."; 672 } 673 leaf length { 674 type uint8; 675 default 4; 676 description "Lenght is 4 bytes."; 677 } 678 leaf value { 679 type inet:ipv4-address; 680 description "IPv4 router ID."; 681 } 682 } 683 container ipv6-routerid-sub-tlv { 684 description "PPR-prefix originating node's IPv6 router ID."; 685 leaf type { 686 type uint8; 687 default 4; 688 description "PPR-prefix originating node's IPv6 router ID."; 689 } 690 leaf length { 691 type uint8; 692 default 16; 693 description "Length is 16 bytes."; 694 } 695 leaf value { 696 type inet:ipv6-address; 697 description "IPv6 router ID."; 698 } 699 } 700 container ppr-metric-sub-tlv { 701 description 702 "The metric of this path represented through the PPR-ID."; 703 leaf type { 704 type uint8; 705 default 5; 706 description "Metric sub-tlv."; 707 } 708 leaf length { 709 type uint8; 710 default 4; 711 description "4 bytes."; 712 } 713 leaf value { 714 type uint32; 715 description "Metirc of the PPR-ID."; 717 } 718 } 719 } 720 } 722 grouping ppr-tlvs { 723 description "PPR TLV encodings."; 725 container ppr-tlvs { 726 description "List of PPR TLVs."; 727 list ppr-tlv { 728 description "List of PPR TLVs."; 729 leaf flags { 730 type bits { 731 bit S { 732 position 0; 733 description 734 "If set, the PPR TLV must be flooded across 735 the entire routing domain."; 736 } 737 bit D { 738 position 1; 739 description 740 "If set, the PPR TLV is leaked from ISIS level-2 741 to level-1."; 742 } 743 bit A { 744 position 2; 745 description 746 "If set, it is to signal that the prefixes and PPR IDs 747 advertised in this TLV are directly connected to 748 their originators."; 749 } 750 bit L { 751 position 3; 752 description 753 "L bit MUST be set if a path has only one fragment or if 754 it is the last Fragment of the path."; 755 } 756 } 757 description "Flags."; 758 } 759 leaf fragment-id { 760 type uint8 { 761 range "0 .. 127"; 762 } 763 description 764 "Identifiler of the fragment."; 766 } 767 uses ppr-prefix-sub-tlv; 768 uses ppr-id-sub-tlv; 769 uses ppr-pde-sub-tlv; 770 uses ppr-attribute-sub-tlv; 771 } 772 } 773 } 775 /* Configuration */ 776 augment "/rt:routing/rt:control-plane-protocols" 777 + "/rt:control-plane-protocol/isis:isis" { 778 when "../rt:type = 'isis:isis'" { 779 description 780 "This augments the ISIS routing protocol when used."; 781 } 782 description 783 "This augments the ISIS protocol configuration 784 with preferred path routing."; 786 container ppr { 787 description 788 "ISIS PPR."; 789 leaf enable { 790 type boolean; 791 description 792 "Enable PPR."; 793 } 794 } 795 } 797 /* Database */ 798 augment "/rt:routing/" + 799 "rt:control-plane-protocols/rt:control-plane-protocol"+ 800 "/isis:isis/isis:database/isis:level-db/isis:lsp" { 801 when "/rt:routing/rt:control-plane-protocols/"+ 802 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 803 description 804 "This augment ISIS routing protocol when used"; 805 } 806 description 807 "This augments ISIS protocol LSDB."; 808 uses ppr-tlvs; 810 } 811 } 812 813 4. OSPF PPR YANG Module 815 This YANG module defines OSPF configuration and operation of 816 preferred path routing (PPR) as defined in 817 ([I-D.chunduri-lsr-ospf-preferred-path-routing]). It augments the 818 base OSPF module defined in [I-D.ietf-ospf-yang]. Both OSPFv2 and 819 OSPFv3 are included. 821 module: ietf-ospf-ppr 822 augment /rt:routing/rt:control-plane-protocols 823 /rt:control-plane-protocol/ospf:ospf: 824 +--rw ppr 825 +--rw enable? boolean 826 augment /rt:routing/rt:control-plane-protocols 827 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 828 /ospf:interfaces/ospf:interface/ospf:database 829 /ospf:link-scope-lsa-type/ospf:link-scope-lsas 830 /ospf:link-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 831 /ospf:body/ospf:opaque/ospf:extended-prefix-tlvs 832 /ospf:extended-prefix-tlv: 833 +--ro ppr-tlvs 834 +--ro ppr-tlv* 835 +--ro flags? bits 836 +--ro af? iana-rt-types:address-family 837 +--ro ppr-prefix-sub-tlv 838 | +--ro mt-id? uint8 839 | +--ro prefix-len? uint8 840 | +--ro mask-len? uint8 841 | +--ro ospf-prefix? inet:ip-address 842 | +--ro ppr-prefix-sub-sub-tlvs 843 | +--ro unknown-tlvs 844 | +--ro unknown-tlv* 845 | +--ro type? uint16 846 | +--ro length? uint16 847 | +--ro value? yang:hex-string 848 +--ro ppr-id-sub-tlv 849 | +--ro flags? bits 850 | +--ro ppr-id-type? enumeration 851 | +--ro ppr-id-len? uint8 852 | +--ro ppr-id-mask-len? uint8 853 | +--ro ppr-id-algo? uint8 854 | +--ro (ppr-id)? 855 | +--:(mpls-id) 856 | | +--ro mpls-id? uint32 857 | +--:(ipv4-id) 858 | | +--ro ipv4-id? inet:ipv4-prefix 859 | +--:(srv6-ipv6-id) 860 | +--ro srv6-ipv6-id? inet:ipv6-prefix 861 +--ro ppr-pde-sub-tlvs* 862 | +--ro pde-type? enumeration 863 | +--ro ppr-pde-flags? bits 864 | +--ro pde-id-type? enumeration 865 | +--ro pde-id-len? uint8 866 | +--ro (pde-id)? 867 | | +--:(mpls-id) 868 | | | +--ro mpls-id? uint32 869 | | +--:(ipv4-id) 870 | | | +--ro ipv4-id? inet:ipv4-prefix 871 | | +--:(srv6-ipv6-id) 872 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 873 | +--ro ppr-pde-sub-sub-tlvs 874 | +--ro unknown-tlvs 875 | +--ro unknown-tlv* 876 | +--ro type? uint16 877 | +--ro length? uint16 878 | +--ro value? yang:hex-string 879 +--ro ppr-attribute-sub-tlv 880 +--ro traffic-accounting-sub-tlv 881 | +--ro type? uint8 882 +--ro traffic-statis-sub-tlv 883 | +--ro type? uint8 884 +--ro ipv4-routerid-sub-tlv 885 | +--ro type? uint8 886 | +--ro length? uint8 887 | +--ro value? inet:ipv4-address 888 +--ro ipv6-routerid-sub-tlv 889 | +--ro type? uint8 890 | +--ro length? uint8 891 | +--ro value? inet:ipv6-address 892 +--ro ppr-metric-sub-tlv 893 +--ro type? uint8 894 +--ro length? uint8 895 +--ro value? uint32 896 augment /rt:routing/rt:control-plane-protocols 897 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 898 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 899 /ospf:area-scope-lsa/ospf:version/ospf:ospfv2/ospf:ospfv2 900 /ospf:body/ospf:opaque/ospf:extended-prefix-tlvs 901 /ospf:extended-prefix-tlv: 902 +--ro ppr-tlvs 903 +--ro ppr-tlv* 904 +--ro flags? bits 905 +--ro af? iana-rt-types:address-family 906 +--ro ppr-prefix-sub-tlv 907 | +--ro mt-id? uint8 908 | +--ro prefix-len? uint8 909 | +--ro mask-len? uint8 910 | +--ro ospf-prefix? inet:ip-address 911 | +--ro ppr-prefix-sub-sub-tlvs 912 | +--ro unknown-tlvs 913 | +--ro unknown-tlv* 914 | +--ro type? uint16 915 | +--ro length? uint16 916 | +--ro value? yang:hex-string 917 +--ro ppr-id-sub-tlv 918 | +--ro flags? bits 919 | +--ro ppr-id-type? enumeration 920 | +--ro ppr-id-len? uint8 921 | +--ro ppr-id-mask-len? uint8 922 | +--ro ppr-id-algo? uint8 923 | +--ro (ppr-id)? 924 | +--:(mpls-id) 925 | | +--ro mpls-id? uint32 926 | +--:(ipv4-id) 927 | | +--ro ipv4-id? inet:ipv4-prefix 928 | +--:(srv6-ipv6-id) 929 | +--ro srv6-ipv6-id? inet:ipv6-prefix 930 +--ro ppr-pde-sub-tlvs* 931 | +--ro pde-type? enumeration 932 | +--ro ppr-pde-flags? bits 933 | +--ro pde-id-type? enumeration 934 | +--ro pde-id-len? uint8 935 | +--ro (pde-id)? 936 | | +--:(mpls-id) 937 | | | +--ro mpls-id? uint32 938 | | +--:(ipv4-id) 939 | | | +--ro ipv4-id? inet:ipv4-prefix 940 | | +--:(srv6-ipv6-id) 941 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 942 | +--ro ppr-pde-sub-sub-tlvs 943 | +--ro unknown-tlvs 944 | +--ro unknown-tlv* 945 | +--ro type? uint16 946 | +--ro length? uint16 947 | +--ro value? yang:hex-string 948 +--ro ppr-attribute-sub-tlv 949 +--ro traffic-accounting-sub-tlv 950 | +--ro type? uint8 951 +--ro traffic-statis-sub-tlv 952 | +--ro type? uint8 953 +--ro ipv4-routerid-sub-tlv 954 | +--ro type? uint8 955 | +--ro length? uint8 956 | +--ro value? inet:ipv4-address 957 +--ro ipv6-routerid-sub-tlv 958 | +--ro type? uint8 959 | +--ro length? uint8 960 | +--ro value? inet:ipv6-address 961 +--ro ppr-metric-sub-tlv 962 +--ro type? uint8 963 +--ro length? uint8 964 +--ro value? uint32 965 augment /rt:routing/rt:control-plane-protocols 966 /rt:control-plane-protocol/ospf:ospf/ospf:database 967 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 968 /ospf:version/ospf:ospfv2/ospf:ospfv2/ospf:body/ospf:opaque 969 /ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv: 970 +--ro ppr-tlvs 971 +--ro ppr-tlv* 972 +--ro flags? bits 973 +--ro af? iana-rt-types:address-family 974 +--ro ppr-prefix-sub-tlv 975 | +--ro mt-id? uint8 976 | +--ro prefix-len? uint8 977 | +--ro mask-len? uint8 978 | +--ro ospf-prefix? inet:ip-address 979 | +--ro ppr-prefix-sub-sub-tlvs 980 | +--ro unknown-tlvs 981 | +--ro unknown-tlv* 982 | +--ro type? uint16 983 | +--ro length? uint16 984 | +--ro value? yang:hex-string 985 +--ro ppr-id-sub-tlv 986 | +--ro flags? bits 987 | +--ro ppr-id-type? enumeration 988 | +--ro ppr-id-len? uint8 989 | +--ro ppr-id-mask-len? uint8 990 | +--ro ppr-id-algo? uint8 991 | +--ro (ppr-id)? 992 | +--:(mpls-id) 993 | | +--ro mpls-id? uint32 994 | +--:(ipv4-id) 995 | | +--ro ipv4-id? inet:ipv4-prefix 996 | +--:(srv6-ipv6-id) 997 | +--ro srv6-ipv6-id? inet:ipv6-prefix 998 +--ro ppr-pde-sub-tlvs* 999 | +--ro pde-type? enumeration 1000 | +--ro ppr-pde-flags? bits 1001 | +--ro pde-id-type? enumeration 1002 | +--ro pde-id-len? uint8 1003 | +--ro (pde-id)? 1004 | | +--:(mpls-id) 1005 | | | +--ro mpls-id? uint32 1006 | | +--:(ipv4-id) 1007 | | | +--ro ipv4-id? inet:ipv4-prefix 1008 | | +--:(srv6-ipv6-id) 1009 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1010 | +--ro ppr-pde-sub-sub-tlvs 1011 | +--ro unknown-tlvs 1012 | +--ro unknown-tlv* 1013 | +--ro type? uint16 1014 | +--ro length? uint16 1015 | +--ro value? yang:hex-string 1016 +--ro ppr-attribute-sub-tlv 1017 +--ro traffic-accounting-sub-tlv 1018 | +--ro type? uint8 1019 +--ro traffic-statis-sub-tlv 1020 | +--ro type? uint8 1021 +--ro ipv4-routerid-sub-tlv 1022 | +--ro type? uint8 1023 | +--ro length? uint8 1024 | +--ro value? inet:ipv4-address 1025 +--ro ipv6-routerid-sub-tlv 1026 | +--ro type? uint8 1027 | +--ro length? uint8 1028 | +--ro value? inet:ipv6-address 1029 +--ro ppr-metric-sub-tlv 1030 +--ro type? uint8 1031 +--ro length? uint8 1032 +--ro value? uint32 1033 augment /rt:routing/rt:control-plane-protocols 1034 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1035 /ospf:interfaces/ospf:interface/ospf:database 1036 /ospf:link-scope-lsa-type/ospf:link-scope-lsas 1037 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1038 /ospf:body/ospf:inter-area-prefix: 1039 +--ro ppr-tlvs 1040 +--ro ppr-tlv* 1041 +--ro flags? bits 1042 +--ro af? iana-rt-types:address-family 1043 +--ro ppr-prefix-sub-tlv 1044 | +--ro mt-id? uint8 1045 | +--ro prefix-len? uint8 1046 | +--ro mask-len? uint8 1047 | +--ro ospf-prefix? inet:ip-address 1048 | +--ro ppr-prefix-sub-sub-tlvs 1049 | +--ro unknown-tlvs 1050 | +--ro unknown-tlv* 1051 | +--ro type? uint16 1052 | +--ro length? uint16 1053 | +--ro value? yang:hex-string 1054 +--ro ppr-id-sub-tlv 1055 | +--ro flags? bits 1056 | +--ro ppr-id-type? enumeration 1057 | +--ro ppr-id-len? uint8 1058 | +--ro ppr-id-mask-len? uint8 1059 | +--ro ppr-id-algo? uint8 1060 | +--ro (ppr-id)? 1061 | +--:(mpls-id) 1062 | | +--ro mpls-id? uint32 1063 | +--:(ipv4-id) 1064 | | +--ro ipv4-id? inet:ipv4-prefix 1065 | +--:(srv6-ipv6-id) 1066 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1067 +--ro ppr-pde-sub-tlvs* 1068 | +--ro pde-type? enumeration 1069 | +--ro ppr-pde-flags? bits 1070 | +--ro pde-id-type? enumeration 1071 | +--ro pde-id-len? uint8 1072 | +--ro (pde-id)? 1073 | | +--:(mpls-id) 1074 | | | +--ro mpls-id? uint32 1075 | | +--:(ipv4-id) 1076 | | | +--ro ipv4-id? inet:ipv4-prefix 1077 | | +--:(srv6-ipv6-id) 1078 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1079 | +--ro ppr-pde-sub-sub-tlvs 1080 | +--ro unknown-tlvs 1081 | +--ro unknown-tlv* 1082 | +--ro type? uint16 1083 | +--ro length? uint16 1084 | +--ro value? yang:hex-string 1085 +--ro ppr-attribute-sub-tlv 1086 +--ro traffic-accounting-sub-tlv 1087 | +--ro type? uint8 1088 +--ro traffic-statis-sub-tlv 1089 | +--ro type? uint8 1090 +--ro ipv4-routerid-sub-tlv 1091 | +--ro type? uint8 1092 | +--ro length? uint8 1093 | +--ro value? inet:ipv4-address 1094 +--ro ipv6-routerid-sub-tlv 1095 | +--ro type? uint8 1096 | +--ro length? uint8 1097 | +--ro value? inet:ipv6-address 1098 +--ro ppr-metric-sub-tlv 1099 +--ro type? uint8 1100 +--ro length? uint8 1101 +--ro value? uint32 1102 augment /rt:routing/rt:control-plane-protocols 1103 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1104 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 1105 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1106 /ospf:body/ospf:inter-area-prefix: 1107 +--ro ppr-tlvs 1108 +--ro ppr-tlv* 1109 +--ro flags? bits 1110 +--ro af? iana-rt-types:address-family 1111 +--ro ppr-prefix-sub-tlv 1112 | +--ro mt-id? uint8 1113 | +--ro prefix-len? uint8 1114 | +--ro mask-len? uint8 1115 | +--ro ospf-prefix? inet:ip-address 1116 | +--ro ppr-prefix-sub-sub-tlvs 1117 | +--ro unknown-tlvs 1118 | +--ro unknown-tlv* 1119 | +--ro type? uint16 1120 | +--ro length? uint16 1121 | +--ro value? yang:hex-string 1122 +--ro ppr-id-sub-tlv 1123 | +--ro flags? bits 1124 | +--ro ppr-id-type? enumeration 1125 | +--ro ppr-id-len? uint8 1126 | +--ro ppr-id-mask-len? uint8 1127 | +--ro ppr-id-algo? uint8 1128 | +--ro (ppr-id)? 1129 | +--:(mpls-id) 1130 | | +--ro mpls-id? uint32 1131 | +--:(ipv4-id) 1132 | | +--ro ipv4-id? inet:ipv4-prefix 1133 | +--:(srv6-ipv6-id) 1134 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1135 +--ro ppr-pde-sub-tlvs* 1136 | +--ro pde-type? enumeration 1137 | +--ro ppr-pde-flags? bits 1138 | +--ro pde-id-type? enumeration 1139 | +--ro pde-id-len? uint8 1140 | +--ro (pde-id)? 1141 | | +--:(mpls-id) 1142 | | | +--ro mpls-id? uint32 1143 | | +--:(ipv4-id) 1144 | | | +--ro ipv4-id? inet:ipv4-prefix 1145 | | +--:(srv6-ipv6-id) 1146 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1147 | +--ro ppr-pde-sub-sub-tlvs 1148 | +--ro unknown-tlvs 1149 | +--ro unknown-tlv* 1150 | +--ro type? uint16 1151 | +--ro length? uint16 1152 | +--ro value? yang:hex-string 1153 +--ro ppr-attribute-sub-tlv 1154 +--ro traffic-accounting-sub-tlv 1155 | +--ro type? uint8 1156 +--ro traffic-statis-sub-tlv 1157 | +--ro type? uint8 1158 +--ro ipv4-routerid-sub-tlv 1159 | +--ro type? uint8 1160 | +--ro length? uint8 1161 | +--ro value? inet:ipv4-address 1162 +--ro ipv6-routerid-sub-tlv 1163 | +--ro type? uint8 1164 | +--ro length? uint8 1165 | +--ro value? inet:ipv6-address 1166 +--ro ppr-metric-sub-tlv 1167 +--ro type? uint8 1168 +--ro length? uint8 1169 +--ro value? uint32 1170 augment /rt:routing/rt:control-plane-protocols 1171 /rt:control-plane-protocol/ospf:ospf/ospf:database 1172 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 1173 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 1174 /ospf:inter-area-prefix: 1175 +--ro ppr-tlvs 1176 +--ro ppr-tlv* 1177 +--ro flags? bits 1178 +--ro af? iana-rt-types:address-family 1179 +--ro ppr-prefix-sub-tlv 1180 | +--ro mt-id? uint8 1181 | +--ro prefix-len? uint8 1182 | +--ro mask-len? uint8 1183 | +--ro ospf-prefix? inet:ip-address 1184 | +--ro ppr-prefix-sub-sub-tlvs 1185 | +--ro unknown-tlvs 1186 | +--ro unknown-tlv* 1187 | +--ro type? uint16 1188 | +--ro length? uint16 1189 | +--ro value? yang:hex-string 1190 +--ro ppr-id-sub-tlv 1191 | +--ro flags? bits 1192 | +--ro ppr-id-type? enumeration 1193 | +--ro ppr-id-len? uint8 1194 | +--ro ppr-id-mask-len? uint8 1195 | +--ro ppr-id-algo? uint8 1196 | +--ro (ppr-id)? 1197 | +--:(mpls-id) 1198 | | +--ro mpls-id? uint32 1199 | +--:(ipv4-id) 1200 | | +--ro ipv4-id? inet:ipv4-prefix 1201 | +--:(srv6-ipv6-id) 1202 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1203 +--ro ppr-pde-sub-tlvs* 1204 | +--ro pde-type? enumeration 1205 | +--ro ppr-pde-flags? bits 1206 | +--ro pde-id-type? enumeration 1207 | +--ro pde-id-len? uint8 1208 | +--ro (pde-id)? 1209 | | +--:(mpls-id) 1210 | | | +--ro mpls-id? uint32 1211 | | +--:(ipv4-id) 1212 | | | +--ro ipv4-id? inet:ipv4-prefix 1213 | | +--:(srv6-ipv6-id) 1214 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1215 | +--ro ppr-pde-sub-sub-tlvs 1216 | +--ro unknown-tlvs 1217 | +--ro unknown-tlv* 1218 | +--ro type? uint16 1219 | +--ro length? uint16 1220 | +--ro value? yang:hex-string 1221 +--ro ppr-attribute-sub-tlv 1222 +--ro traffic-accounting-sub-tlv 1223 | +--ro type? uint8 1224 +--ro traffic-statis-sub-tlv 1225 | +--ro type? uint8 1226 +--ro ipv4-routerid-sub-tlv 1227 | +--ro type? uint8 1228 | +--ro length? uint8 1229 | +--ro value? inet:ipv4-address 1230 +--ro ipv6-routerid-sub-tlv 1231 | +--ro type? uint8 1232 | +--ro length? uint8 1233 | +--ro value? inet:ipv6-address 1234 +--ro ppr-metric-sub-tlv 1235 +--ro type? uint8 1236 +--ro length? uint8 1237 +--ro value? uint32 1238 augment /rt:routing/rt:control-plane-protocols 1239 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1240 /ospf:interfaces/ospf:interface/ospf:database 1241 /ospf:link-scope-lsa-type/ospf:link-scope-lsas 1242 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1243 /ospf:body/ospf:intra-area-prefix: 1244 +--ro ppr-tlvs 1245 +--ro ppr-tlv* 1246 +--ro flags? bits 1247 +--ro af? iana-rt-types:address-family 1248 +--ro ppr-prefix-sub-tlv 1249 | +--ro mt-id? uint8 1250 | +--ro prefix-len? uint8 1251 | +--ro mask-len? uint8 1252 | +--ro ospf-prefix? inet:ip-address 1253 | +--ro ppr-prefix-sub-sub-tlvs 1254 | +--ro unknown-tlvs 1255 | +--ro unknown-tlv* 1256 | +--ro type? uint16 1257 | +--ro length? uint16 1258 | +--ro value? yang:hex-string 1259 +--ro ppr-id-sub-tlv 1260 | +--ro flags? bits 1261 | +--ro ppr-id-type? enumeration 1262 | +--ro ppr-id-len? uint8 1263 | +--ro ppr-id-mask-len? uint8 1264 | +--ro ppr-id-algo? uint8 1265 | +--ro (ppr-id)? 1266 | +--:(mpls-id) 1267 | | +--ro mpls-id? uint32 1268 | +--:(ipv4-id) 1269 | | +--ro ipv4-id? inet:ipv4-prefix 1270 | +--:(srv6-ipv6-id) 1271 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1272 +--ro ppr-pde-sub-tlvs* 1273 | +--ro pde-type? enumeration 1274 | +--ro ppr-pde-flags? bits 1275 | +--ro pde-id-type? enumeration 1276 | +--ro pde-id-len? uint8 1277 | +--ro (pde-id)? 1278 | | +--:(mpls-id) 1279 | | | +--ro mpls-id? uint32 1280 | | +--:(ipv4-id) 1281 | | | +--ro ipv4-id? inet:ipv4-prefix 1282 | | +--:(srv6-ipv6-id) 1283 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1284 | +--ro ppr-pde-sub-sub-tlvs 1285 | +--ro unknown-tlvs 1286 | +--ro unknown-tlv* 1287 | +--ro type? uint16 1288 | +--ro length? uint16 1289 | +--ro value? yang:hex-string 1290 +--ro ppr-attribute-sub-tlv 1291 +--ro traffic-accounting-sub-tlv 1292 | +--ro type? uint8 1293 +--ro traffic-statis-sub-tlv 1294 | +--ro type? uint8 1295 +--ro ipv4-routerid-sub-tlv 1296 | +--ro type? uint8 1297 | +--ro length? uint8 1298 | +--ro value? inet:ipv4-address 1299 +--ro ipv6-routerid-sub-tlv 1300 | +--ro type? uint8 1301 | +--ro length? uint8 1302 | +--ro value? inet:ipv6-address 1303 +--ro ppr-metric-sub-tlv 1304 +--ro type? uint8 1305 +--ro length? uint8 1306 +--ro value? uint32 1307 augment /rt:routing/rt:control-plane-protocols 1308 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1309 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 1310 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1311 /ospf:body/ospf:intra-area-prefix: 1312 +--ro ppr-tlvs 1313 +--ro ppr-tlv* 1314 +--ro flags? bits 1315 +--ro af? iana-rt-types:address-family 1316 +--ro ppr-prefix-sub-tlv 1317 | +--ro mt-id? uint8 1318 | +--ro prefix-len? uint8 1319 | +--ro mask-len? uint8 1320 | +--ro ospf-prefix? inet:ip-address 1321 | +--ro ppr-prefix-sub-sub-tlvs 1322 | +--ro unknown-tlvs 1323 | +--ro unknown-tlv* 1324 | +--ro type? uint16 1325 | +--ro length? uint16 1326 | +--ro value? yang:hex-string 1327 +--ro ppr-id-sub-tlv 1328 | +--ro flags? bits 1329 | +--ro ppr-id-type? enumeration 1330 | +--ro ppr-id-len? uint8 1331 | +--ro ppr-id-mask-len? uint8 1332 | +--ro ppr-id-algo? uint8 1333 | +--ro (ppr-id)? 1334 | +--:(mpls-id) 1335 | | +--ro mpls-id? uint32 1336 | +--:(ipv4-id) 1337 | | +--ro ipv4-id? inet:ipv4-prefix 1338 | +--:(srv6-ipv6-id) 1339 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1340 +--ro ppr-pde-sub-tlvs* 1341 | +--ro pde-type? enumeration 1342 | +--ro ppr-pde-flags? bits 1343 | +--ro pde-id-type? enumeration 1344 | +--ro pde-id-len? uint8 1345 | +--ro (pde-id)? 1346 | | +--:(mpls-id) 1347 | | | +--ro mpls-id? uint32 1348 | | +--:(ipv4-id) 1349 | | | +--ro ipv4-id? inet:ipv4-prefix 1350 | | +--:(srv6-ipv6-id) 1351 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1352 | +--ro ppr-pde-sub-sub-tlvs 1353 | +--ro unknown-tlvs 1354 | +--ro unknown-tlv* 1355 | +--ro type? uint16 1356 | +--ro length? uint16 1357 | +--ro value? yang:hex-string 1358 +--ro ppr-attribute-sub-tlv 1359 +--ro traffic-accounting-sub-tlv 1360 | +--ro type? uint8 1361 +--ro traffic-statis-sub-tlv 1362 | +--ro type? uint8 1363 +--ro ipv4-routerid-sub-tlv 1364 | +--ro type? uint8 1365 | +--ro length? uint8 1366 | +--ro value? inet:ipv4-address 1367 +--ro ipv6-routerid-sub-tlv 1368 | +--ro type? uint8 1369 | +--ro length? uint8 1370 | +--ro value? inet:ipv6-address 1371 +--ro ppr-metric-sub-tlv 1372 +--ro type? uint8 1373 +--ro length? uint8 1374 +--ro value? uint32 1375 augment /rt:routing/rt:control-plane-protocols 1376 /rt:control-plane-protocol/ospf:ospf/ospf:database 1377 /ospf:as-scope-lsa-type/ospf:as-scope-lsas/ospf:as-scope-lsa 1378 /ospf:version/ospf:ospfv3/ospf:ospfv3/ospf:body 1379 /ospf:intra-area-prefix: 1380 +--ro ppr-tlvs 1381 +--ro ppr-tlv* 1382 +--ro flags? bits 1383 +--ro af? iana-rt-types:address-family 1384 +--ro ppr-prefix-sub-tlv 1385 | +--ro mt-id? uint8 1386 | +--ro prefix-len? uint8 1387 | +--ro mask-len? uint8 1388 | +--ro ospf-prefix? inet:ip-address 1389 | +--ro ppr-prefix-sub-sub-tlvs 1390 | +--ro unknown-tlvs 1391 | +--ro unknown-tlv* 1392 | +--ro type? uint16 1393 | +--ro length? uint16 1394 | +--ro value? yang:hex-string 1395 +--ro ppr-id-sub-tlv 1396 | +--ro flags? bits 1397 | +--ro ppr-id-type? enumeration 1398 | +--ro ppr-id-len? uint8 1399 | +--ro ppr-id-mask-len? uint8 1400 | +--ro ppr-id-algo? uint8 1401 | +--ro (ppr-id)? 1402 | +--:(mpls-id) 1403 | | +--ro mpls-id? uint32 1404 | +--:(ipv4-id) 1405 | | +--ro ipv4-id? inet:ipv4-prefix 1406 | +--:(srv6-ipv6-id) 1407 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1408 +--ro ppr-pde-sub-tlvs* 1409 | +--ro pde-type? enumeration 1410 | +--ro ppr-pde-flags? bits 1411 | +--ro pde-id-type? enumeration 1412 | +--ro pde-id-len? uint8 1413 | +--ro (pde-id)? 1414 | | +--:(mpls-id) 1415 | | | +--ro mpls-id? uint32 1416 | | +--:(ipv4-id) 1417 | | | +--ro ipv4-id? inet:ipv4-prefix 1418 | | +--:(srv6-ipv6-id) 1419 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1420 | +--ro ppr-pde-sub-sub-tlvs 1421 | +--ro unknown-tlvs 1422 | +--ro unknown-tlv* 1423 | +--ro type? uint16 1424 | +--ro length? uint16 1425 | +--ro value? yang:hex-string 1426 +--ro ppr-attribute-sub-tlv 1427 +--ro traffic-accounting-sub-tlv 1428 | +--ro type? uint8 1429 +--ro traffic-statis-sub-tlv 1430 | +--ro type? uint8 1431 +--ro ipv4-routerid-sub-tlv 1432 | +--ro type? uint8 1433 | +--ro length? uint8 1434 | +--ro value? inet:ipv4-address 1435 +--ro ipv6-routerid-sub-tlv 1436 | +--ro type? uint8 1437 | +--ro length? uint8 1438 | +--ro value? inet:ipv6-address 1439 +--ro ppr-metric-sub-tlv 1440 +--ro type? uint8 1441 +--ro length? uint8 1442 +--ro value? uint32 1443 augment /rt:routing/rt:control-plane-protocols 1444 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1445 /ospf:interfaces/ospf:interface/ospf:database 1446 /ospf:link-scope-lsa-type/ospf:link-scope-lsas 1447 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1448 /ospf:body/ospf:as-external: 1449 +--ro ppr-tlvs 1450 +--ro ppr-tlv* 1451 +--ro flags? bits 1452 +--ro af? iana-rt-types:address-family 1453 +--ro ppr-prefix-sub-tlv 1454 | +--ro mt-id? uint8 1455 | +--ro prefix-len? uint8 1456 | +--ro mask-len? uint8 1457 | +--ro ospf-prefix? inet:ip-address 1458 | +--ro ppr-prefix-sub-sub-tlvs 1459 | +--ro unknown-tlvs 1460 | +--ro unknown-tlv* 1461 | +--ro type? uint16 1462 | +--ro length? uint16 1463 | +--ro value? yang:hex-string 1464 +--ro ppr-id-sub-tlv 1465 | +--ro flags? bits 1466 | +--ro ppr-id-type? enumeration 1467 | +--ro ppr-id-len? uint8 1468 | +--ro ppr-id-mask-len? uint8 1469 | +--ro ppr-id-algo? uint8 1470 | +--ro (ppr-id)? 1471 | +--:(mpls-id) 1472 | | +--ro mpls-id? uint32 1473 | +--:(ipv4-id) 1474 | | +--ro ipv4-id? inet:ipv4-prefix 1475 | +--:(srv6-ipv6-id) 1476 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1477 +--ro ppr-pde-sub-tlvs* 1478 | +--ro pde-type? enumeration 1479 | +--ro ppr-pde-flags? bits 1480 | +--ro pde-id-type? enumeration 1481 | +--ro pde-id-len? uint8 1482 | +--ro (pde-id)? 1483 | | +--:(mpls-id) 1484 | | | +--ro mpls-id? uint32 1485 | | +--:(ipv4-id) 1486 | | | +--ro ipv4-id? inet:ipv4-prefix 1487 | | +--:(srv6-ipv6-id) 1488 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1489 | +--ro ppr-pde-sub-sub-tlvs 1490 | +--ro unknown-tlvs 1491 | +--ro unknown-tlv* 1492 | +--ro type? uint16 1493 | +--ro length? uint16 1494 | +--ro value? yang:hex-string 1495 +--ro ppr-attribute-sub-tlv 1496 +--ro traffic-accounting-sub-tlv 1497 | +--ro type? uint8 1498 +--ro traffic-statis-sub-tlv 1499 | +--ro type? uint8 1500 +--ro ipv4-routerid-sub-tlv 1501 | +--ro type? uint8 1502 | +--ro length? uint8 1503 | +--ro value? inet:ipv4-address 1504 +--ro ipv6-routerid-sub-tlv 1505 | +--ro type? uint8 1506 | +--ro length? uint8 1507 | +--ro value? inet:ipv6-address 1508 +--ro ppr-metric-sub-tlv 1509 +--ro type? uint8 1510 +--ro length? uint8 1511 +--ro value? uint32 1512 augment /rt:routing/rt:control-plane-protocols 1513 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1514 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 1515 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1516 /ospf:body/ospf:as-external: 1517 +--ro ppr-tlvs 1518 +--ro ppr-tlv* 1519 +--ro flags? bits 1520 +--ro af? iana-rt-types:address-family 1521 +--ro ppr-prefix-sub-tlv 1522 | +--ro mt-id? uint8 1523 | +--ro prefix-len? uint8 1524 | +--ro mask-len? uint8 1525 | +--ro ospf-prefix? inet:ip-address 1526 | +--ro ppr-prefix-sub-sub-tlvs 1527 | +--ro unknown-tlvs 1528 | +--ro unknown-tlv* 1529 | +--ro type? uint16 1530 | +--ro length? uint16 1531 | +--ro value? yang:hex-string 1532 +--ro ppr-id-sub-tlv 1533 | +--ro flags? bits 1534 | +--ro ppr-id-type? enumeration 1535 | +--ro ppr-id-len? uint8 1536 | +--ro ppr-id-mask-len? uint8 1537 | +--ro ppr-id-algo? uint8 1538 | +--ro (ppr-id)? 1539 | +--:(mpls-id) 1540 | | +--ro mpls-id? uint32 1541 | +--:(ipv4-id) 1542 | | +--ro ipv4-id? inet:ipv4-prefix 1543 | +--:(srv6-ipv6-id) 1544 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1545 +--ro ppr-pde-sub-tlvs* 1546 | +--ro pde-type? enumeration 1547 | +--ro ppr-pde-flags? bits 1548 | +--ro pde-id-type? enumeration 1549 | +--ro pde-id-len? uint8 1550 | +--ro (pde-id)? 1551 | | +--:(mpls-id) 1552 | | | +--ro mpls-id? uint32 1553 | | +--:(ipv4-id) 1554 | | | +--ro ipv4-id? inet:ipv4-prefix 1555 | | +--:(srv6-ipv6-id) 1556 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1557 | +--ro ppr-pde-sub-sub-tlvs 1558 | +--ro unknown-tlvs 1559 | +--ro unknown-tlv* 1560 | +--ro type? uint16 1561 | +--ro length? uint16 1562 | +--ro value? yang:hex-string 1563 +--ro ppr-attribute-sub-tlv 1564 +--ro traffic-accounting-sub-tlv 1565 | +--ro type? uint8 1566 +--ro traffic-statis-sub-tlv 1567 | +--ro type? uint8 1568 +--ro ipv4-routerid-sub-tlv 1569 | +--ro type? uint8 1570 | +--ro length? uint8 1571 | +--ro value? inet:ipv4-address 1572 +--ro ipv6-routerid-sub-tlv 1573 | +--ro type? uint8 1574 | +--ro length? uint8 1575 | +--ro value? inet:ipv6-address 1576 +--ro ppr-metric-sub-tlv 1577 +--ro type? uint8 1578 +--ro length? uint8 1579 +--ro value? uint32 1580 augment /rt:routing/rt:control-plane-protocols 1581 /rt:control-plane-protocol/ospf:ospf/ospf:database 1582 /ospf:as-scope-lsa-type/ospf:as-scope-lsas 1583 /ospf:as-scope-lsa/ospf:version/ospf:ospfv3 1584 /ospf:ospfv3/ospf:body/ospf:as-external: 1585 +--ro ppr-tlvs 1586 +--ro ppr-tlv* 1587 +--ro flags? bits 1588 +--ro af? iana-rt-types:address-family 1589 +--ro ppr-prefix-sub-tlv 1590 | +--ro mt-id? uint8 1591 | +--ro prefix-len? uint8 1592 | +--ro mask-len? uint8 1593 | +--ro ospf-prefix? inet:ip-address 1594 | +--ro ppr-prefix-sub-sub-tlvs 1595 | +--ro unknown-tlvs 1596 | +--ro unknown-tlv* 1597 | +--ro type? uint16 1598 | +--ro length? uint16 1599 | +--ro value? yang:hex-string 1600 +--ro ppr-id-sub-tlv 1601 | +--ro flags? bits 1602 | +--ro ppr-id-type? enumeration 1603 | +--ro ppr-id-len? uint8 1604 | +--ro ppr-id-mask-len? uint8 1605 | +--ro ppr-id-algo? uint8 1606 | +--ro (ppr-id)? 1607 | +--:(mpls-id) 1608 | | +--ro mpls-id? uint32 1609 | +--:(ipv4-id) 1610 | | +--ro ipv4-id? inet:ipv4-prefix 1611 | +--:(srv6-ipv6-id) 1612 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1613 +--ro ppr-pde-sub-tlvs* 1614 | +--ro pde-type? enumeration 1615 | +--ro ppr-pde-flags? bits 1616 | +--ro pde-id-type? enumeration 1617 | +--ro pde-id-len? uint8 1618 | +--ro (pde-id)? 1619 | | +--:(mpls-id) 1620 | | | +--ro mpls-id? uint32 1621 | | +--:(ipv4-id) 1622 | | | +--ro ipv4-id? inet:ipv4-prefix 1623 | | +--:(srv6-ipv6-id) 1624 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1625 | +--ro ppr-pde-sub-sub-tlvs 1626 | +--ro unknown-tlvs 1627 | +--ro unknown-tlv* 1628 | +--ro type? uint16 1629 | +--ro length? uint16 1630 | +--ro value? yang:hex-string 1631 +--ro ppr-attribute-sub-tlv 1632 +--ro traffic-accounting-sub-tlv 1633 | +--ro type? uint8 1634 +--ro traffic-statis-sub-tlv 1635 | +--ro type? uint8 1636 +--ro ipv4-routerid-sub-tlv 1637 | +--ro type? uint8 1638 | +--ro length? uint8 1639 | +--ro value? inet:ipv4-address 1640 +--ro ipv6-routerid-sub-tlv 1641 | +--ro type? uint8 1642 | +--ro length? uint8 1643 | +--ro value? inet:ipv6-address 1644 +--ro ppr-metric-sub-tlv 1645 +--ro type? uint8 1646 +--ro length? uint8 1647 +--ro value? uint32 1648 augment /rt:routing/rt:control-plane-protocols 1649 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1650 /ospf:interfaces/ospf:interface/ospf:database 1651 /ospf:link-scope-lsa-type/ospf:link-scope-lsas 1652 /ospf:link-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1653 /ospf:body/ospf:nssa: 1654 +--ro ppr-tlvs 1655 +--ro ppr-tlv* 1656 +--ro flags? bits 1657 +--ro af? iana-rt-types:address-family 1658 +--ro ppr-prefix-sub-tlv 1659 | +--ro mt-id? uint8 1660 | +--ro prefix-len? uint8 1661 | +--ro mask-len? uint8 1662 | +--ro ospf-prefix? inet:ip-address 1663 | +--ro ppr-prefix-sub-sub-tlvs 1664 | +--ro unknown-tlvs 1665 | +--ro unknown-tlv* 1666 | +--ro type? uint16 1667 | +--ro length? uint16 1668 | +--ro value? yang:hex-string 1669 +--ro ppr-id-sub-tlv 1670 | +--ro flags? bits 1671 | +--ro ppr-id-type? enumeration 1672 | +--ro ppr-id-len? uint8 1673 | +--ro ppr-id-mask-len? uint8 1674 | +--ro ppr-id-algo? uint8 1675 | +--ro (ppr-id)? 1676 | +--:(mpls-id) 1677 | | +--ro mpls-id? uint32 1678 | +--:(ipv4-id) 1679 | | +--ro ipv4-id? inet:ipv4-prefix 1680 | +--:(srv6-ipv6-id) 1681 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1682 +--ro ppr-pde-sub-tlvs* 1683 | +--ro pde-type? enumeration 1684 | +--ro ppr-pde-flags? bits 1685 | +--ro pde-id-type? enumeration 1686 | +--ro pde-id-len? uint8 1687 | +--ro (pde-id)? 1688 | | +--:(mpls-id) 1689 | | | +--ro mpls-id? uint32 1690 | | +--:(ipv4-id) 1691 | | | +--ro ipv4-id? inet:ipv4-prefix 1692 | | +--:(srv6-ipv6-id) 1693 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1694 | +--ro ppr-pde-sub-sub-tlvs 1695 | +--ro unknown-tlvs 1696 | +--ro unknown-tlv* 1697 | +--ro type? uint16 1698 | +--ro length? uint16 1699 | +--ro value? yang:hex-string 1700 +--ro ppr-attribute-sub-tlv 1701 +--ro traffic-accounting-sub-tlv 1702 | +--ro type? uint8 1703 +--ro traffic-statis-sub-tlv 1704 | +--ro type? uint8 1705 +--ro ipv4-routerid-sub-tlv 1706 | +--ro type? uint8 1707 | +--ro length? uint8 1708 | +--ro value? inet:ipv4-address 1709 +--ro ipv6-routerid-sub-tlv 1710 | +--ro type? uint8 1711 | +--ro length? uint8 1712 | +--ro value? inet:ipv6-address 1713 +--ro ppr-metric-sub-tlv 1714 +--ro type? uint8 1715 +--ro length? uint8 1716 +--ro value? uint32 1717 augment /rt:routing/rt:control-plane-protocols 1718 /rt:control-plane-protocol/ospf:ospf/ospf:areas/ospf:area 1719 /ospf:database/ospf:area-scope-lsa-type/ospf:area-scope-lsas 1720 /ospf:area-scope-lsa/ospf:version/ospf:ospfv3/ospf:ospfv3 1721 /ospf:body/ospf:nssa: 1722 +--ro ppr-tlvs 1723 +--ro ppr-tlv* 1724 +--ro flags? bits 1725 +--ro af? iana-rt-types:address-family 1726 +--ro ppr-prefix-sub-tlv 1727 | +--ro mt-id? uint8 1728 | +--ro prefix-len? uint8 1729 | +--ro mask-len? uint8 1730 | +--ro ospf-prefix? inet:ip-address 1731 | +--ro ppr-prefix-sub-sub-tlvs 1732 | +--ro unknown-tlvs 1733 | +--ro unknown-tlv* 1734 | +--ro type? uint16 1735 | +--ro length? uint16 1736 | +--ro value? yang:hex-string 1737 +--ro ppr-id-sub-tlv 1738 | +--ro flags? bits 1739 | +--ro ppr-id-type? enumeration 1740 | +--ro ppr-id-len? uint8 1741 | +--ro ppr-id-mask-len? uint8 1742 | +--ro ppr-id-algo? uint8 1743 | +--ro (ppr-id)? 1744 | +--:(mpls-id) 1745 | | +--ro mpls-id? uint32 1746 | +--:(ipv4-id) 1747 | | +--ro ipv4-id? inet:ipv4-prefix 1748 | +--:(srv6-ipv6-id) 1749 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1750 +--ro ppr-pde-sub-tlvs* 1751 | +--ro pde-type? enumeration 1752 | +--ro ppr-pde-flags? bits 1753 | +--ro pde-id-type? enumeration 1754 | +--ro pde-id-len? uint8 1755 | +--ro (pde-id)? 1756 | | +--:(mpls-id) 1757 | | | +--ro mpls-id? uint32 1758 | | +--:(ipv4-id) 1759 | | | +--ro ipv4-id? inet:ipv4-prefix 1760 | | +--:(srv6-ipv6-id) 1761 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1762 | +--ro ppr-pde-sub-sub-tlvs 1763 | +--ro unknown-tlvs 1764 | +--ro unknown-tlv* 1765 | +--ro type? uint16 1766 | +--ro length? uint16 1767 | +--ro value? yang:hex-string 1768 +--ro ppr-attribute-sub-tlv 1769 +--ro traffic-accounting-sub-tlv 1770 | +--ro type? uint8 1771 +--ro traffic-statis-sub-tlv 1772 | +--ro type? uint8 1773 +--ro ipv4-routerid-sub-tlv 1774 | +--ro type? uint8 1775 | +--ro length? uint8 1776 | +--ro value? inet:ipv4-address 1777 +--ro ipv6-routerid-sub-tlv 1778 | +--ro type? uint8 1779 | +--ro length? uint8 1780 | +--ro value? inet:ipv6-address 1781 +--ro ppr-metric-sub-tlv 1782 +--ro type? uint8 1783 +--ro length? uint8 1784 +--ro value? uint32 1785 augment /rt:routing/rt:control-plane-protocols 1786 /rt:control-plane-protocol/ospf:ospf/ospf:database 1787 /ospf:as-scope-lsa-type/ospf:as-scope-lsas 1788 /ospf:as-scope-lsa/ospf:version/ospf:ospfv3 1789 /ospf:ospfv3/ospf:body/ospf:nssa: 1790 +--ro ppr-tlvs 1791 +--ro ppr-tlv* 1792 +--ro flags? bits 1793 +--ro af? iana-rt-types:address-family 1794 +--ro ppr-prefix-sub-tlv 1795 | +--ro mt-id? uint8 1796 | +--ro prefix-len? uint8 1797 | +--ro mask-len? uint8 1798 | +--ro ospf-prefix? inet:ip-address 1799 | +--ro ppr-prefix-sub-sub-tlvs 1800 | +--ro unknown-tlvs 1801 | +--ro unknown-tlv* 1802 | +--ro type? uint16 1803 | +--ro length? uint16 1804 | +--ro value? yang:hex-string 1805 +--ro ppr-id-sub-tlv 1806 | +--ro flags? bits 1807 | +--ro ppr-id-type? enumeration 1808 | +--ro ppr-id-len? uint8 1809 | +--ro ppr-id-mask-len? uint8 1810 | +--ro ppr-id-algo? uint8 1811 | +--ro (ppr-id)? 1812 | +--:(mpls-id) 1813 | | +--ro mpls-id? uint32 1814 | +--:(ipv4-id) 1815 | | +--ro ipv4-id? inet:ipv4-prefix 1816 | +--:(srv6-ipv6-id) 1817 | +--ro srv6-ipv6-id? inet:ipv6-prefix 1818 +--ro ppr-pde-sub-tlvs* 1819 | +--ro pde-type? enumeration 1820 | +--ro ppr-pde-flags? bits 1821 | +--ro pde-id-type? enumeration 1822 | +--ro pde-id-len? uint8 1823 | +--ro (pde-id)? 1824 | | +--:(mpls-id) 1825 | | | +--ro mpls-id? uint32 1826 | | +--:(ipv4-id) 1827 | | | +--ro ipv4-id? inet:ipv4-prefix 1828 | | +--:(srv6-ipv6-id) 1829 | | +--ro srv6-ipv6-id? inet:ipv6-prefix 1830 | +--ro ppr-pde-sub-sub-tlvs 1831 | +--ro unknown-tlvs 1832 | +--ro unknown-tlv* 1833 | +--ro type? uint16 1834 | +--ro length? uint16 1835 | +--ro value? yang:hex-string 1836 +--ro ppr-attribute-sub-tlv 1837 +--ro traffic-accounting-sub-tlv 1838 | +--ro type? uint8 1839 +--ro traffic-statis-sub-tlv 1840 | +--ro type? uint8 1841 +--ro ipv4-routerid-sub-tlv 1842 | +--ro type? uint8 1843 | +--ro length? uint8 1844 | +--ro value? inet:ipv4-address 1845 +--ro ipv6-routerid-sub-tlv 1846 | +--ro type? uint8 1847 | +--ro length? uint8 1848 | +--ro value? inet:ipv6-address 1849 +--ro ppr-metric-sub-tlv 1850 +--ro type? uint8 1851 +--ro length? uint8 1852 +--ro value? uint32 1854 file "ietf-ospf-ppr@2018-06-20.yang" 1855 module ietf-ospf-ppr { 1856 yang-version 1.1; 1857 namespace "urn:ietf:params:xml:ns:yang:ietf-ospf-ppr"; 1859 prefix ospf-ppr; 1861 import ietf-inet-types { 1862 prefix inet; 1863 } 1865 import ietf-yang-types { 1866 prefix "yang"; 1867 } 1868 import ietf-routing-types { 1869 prefix "rt-types"; 1870 reference "RFC 8291 - Common YANG Data Types for the 1871 Routing Area"; 1872 } 1874 import iana-routing-types { 1875 prefix "iana-rt-types"; 1876 reference "RFC 8291 - Common YANG Data Types for the 1877 Routing Area"; 1878 } 1880 import ietf-routing { 1881 prefix rt; 1882 } 1884 import ietf-segment-routing-common { 1885 prefix sr-cmn; 1886 } 1888 import ietf-ospf { 1889 prefix "ospf"; 1890 } 1892 organization 1893 "IETF LSR - Link State Routing Working Group"; 1895 contact 1896 "WG Web: 1897 WG List: 1899 Author: Yingzhen Qu 1900 1901 Uma Chunduri 1902 "; 1903 description 1904 "This Yang module defines the configuration and operational 1905 state for Preferred Path Routing common to all vendor 1906 implementations. 1908 This YANG model conforms to the Network Management 1909 Datastore Architecture (NDMA) as described in RFC XXXX. 1911 Copyright (c) 2017 IETF Trust and the persons identified as 1912 authors of the code. All rights reserved. 1914 Redistribution and use in source and binary forms, with or 1915 without modification, is permitted pursuant to, and subject 1916 to the license terms contained in, the Simplified BSD License 1917 set forth in Section 4.c of the IETF Trust's Legal Provisions 1918 Relating to IETF Documents 1919 (http://trustee.ietf.org/license-info). 1921 This version of this YANG module is part of RFC XXXX; 1922 see the RFC itself for full legal notices."; 1924 reference "RFC XXXX"; 1926 revision 2018-06-20 { 1927 description 1928 "Initial revision."; 1929 reference 1930 "RFC XXXX: A YANG Data Model for OSPFv2 and OSPFv3 PPR."; 1931 } 1933 grouping ppr-prefix-sub-tlv { 1934 description "Grouping for OSPF prefix sub-tlv."; 1936 container ppr-prefix-sub-tlv { 1937 leaf mt-id { 1938 type uint8 { 1939 range "0 .. 255"; 1940 } 1941 description 1942 "This leaf defines the identifier 1943 of a topology."; 1944 } 1945 leaf prefix-len { 1946 type uint8; 1947 description "The length of the profix in bytes."; 1948 } 1949 leaf mask-len { 1950 type uint8; 1951 description "The length of the profix in bits."; 1952 } 1953 leaf ospf-prefix { 1954 type inet:ip-address; 1955 description "OSPF Prefix."; 1956 } 1957 container ppr-prefix-sub-sub-tlvs { 1958 uses ospf:unknown-tlvs; 1959 description 1960 "PPR-Prefix sub-tlvs."; 1961 } 1962 description 1963 "OSPF PPR prefix sub-tlv."; 1964 } 1965 } 1967 grouping ppr-id-sub-tlv { 1968 description 1969 "PPR ID: the actual data plane identifier in the packet header."; 1971 container ppr-id-sub-tlv { 1972 description "PPR ID sub tlv."; 1973 leaf flags { 1974 type bits { 1975 bit L { 1976 position 0; 1977 description 1978 "If set, the PPR path is a Loose-PPR."; 1979 } 1981 bit A { 1982 position 1; 1983 description 1984 "If set, all non-PPR path nodes in the OSPF area/domain 1985 MUST add a FIB entry for the PPR-ID with NH set to the 1986 shortest path NH for the prefix being advertised."; 1987 } 1988 } 1989 description "Flags."; 1990 } 1991 leaf ppr-id-type { 1992 type enumeration { 1993 enum mpls { 1994 value 1; 1995 description 1996 "PPR ID in mpls label format."; 1997 } 1998 enum ipv4 { 1999 value 2; 2000 description 2001 "PPR ID in IPv4 address format."; 2002 } 2003 enum srv6 { 2004 value 3; 2005 description 2006 "PPR ID in SRv6 SID format."; 2007 } 2008 enum ipv6 { 2009 value 4; 2010 description 2011 "PPR ID in ipv6 address format."; 2012 } 2013 } 2014 description "Type of PPR ID."; 2015 } 2016 leaf ppr-id-len { 2017 type uint8; 2018 description 2019 "Length of the PPR ID."; 2020 } 2021 leaf ppr-id-mask-len { 2022 type uint8; 2023 description "The length of the profix in bits."; 2024 } 2025 leaf ppr-id-algo { 2026 type uint8; 2027 description "The SPF algorithm."; 2028 } 2029 choice ppr-id { 2030 leaf mpls-id { 2031 type uint32; 2032 description "MPLS Label format."; 2033 } 2034 leaf ipv4-id { 2035 type inet:ipv4-prefix; 2036 description "IPv4 format."; 2037 } 2038 leaf srv6-ipv6-id { 2039 type inet:ipv6-prefix; 2040 description "SRv6 or IPv6 format."; 2041 } 2042 description "Preferred Path ID."; 2043 } 2044 } 2046 } 2048 grouping ppr-pde-sub-tlv { 2049 description 2050 "This sub-tlv represents the PPR Path Description 2051 Element (PDE)."; 2053 list ppr-pde-sub-tlvs { 2054 description "PPR PDE sub tlvs."; 2055 leaf pde-type { 2056 type enumeration { 2057 enum topological { 2058 value 1; 2059 description 2060 "Topological PDE."; 2061 } 2062 enum non-topological { 2063 value 2; 2064 description 2065 "Non-topological PDE."; 2066 } 2067 } 2068 description "PDE type."; 2069 } 2070 leaf ppr-pde-flags { 2071 type bits { 2072 bit L { 2073 position 0; 2074 description 2075 "If set, the PPR path is a Loose-PPR."; 2076 } 2077 bit D { 2078 position 1; 2079 description 2080 "If set, the PDE is topological and this PDE represents 2081 the node PPR-prfix"; 2082 } 2083 } 2084 description "Flags."; 2085 } 2086 leaf pde-id-type { 2087 type enumeration { 2088 enum sidlabel { 2089 value 1; 2090 description 2091 "PPR ID in mpls label format."; 2092 } 2093 enum prefix-sid { 2094 value 2; 2095 description 2096 "SR-MPLS prefix SID."; 2097 } 2098 enum adj-sid { 2099 value 3; 2100 description 2101 "SR-MPLS adjacency SID."; 2102 } 2103 enum ipv4 { 2104 value 4; 2105 description 2106 "PDE ID in IPv4 address format."; 2108 } 2109 enum ipv6 { 2110 value 5; 2111 description 2112 "PDE ID in IPv6 address format."; 2113 } 2114 enum srv6-node-sid { 2115 value 6; 2116 description 2117 "PDE ID in SRv6 node SID format."; 2118 } 2119 enum srv6-adj-sid { 2120 value 7; 2121 description 2122 "PDE ID in SRv6 node SID format."; 2123 } 2124 } 2125 description "Type of PDE ID."; 2126 } 2127 leaf pde-id-len { 2128 type uint8; 2129 description 2130 "Length of the PDE ID."; 2131 } 2132 choice pde-id { 2133 leaf mpls-id { 2134 type uint32; 2135 description "MPLS Label format."; 2136 } 2137 leaf ipv4-id { 2138 type inet:ipv4-prefix; 2139 description "IPv4 format."; 2140 } 2141 leaf srv6-ipv6-id { 2142 type inet:ipv6-prefix; 2143 description "SRv6 or IPv6 format."; 2144 } 2145 description "Preferred Path ID."; 2146 } 2147 container ppr-pde-sub-sub-tlvs { 2148 uses ospf:unknown-tlvs; 2149 description "PPR PDE sub sub-tlv."; 2150 } 2151 } 2152 } 2154 grouping ppr-attribute-sub-tlv { 2155 description "Grouping for PPR attribute sub-tlvs."; 2156 container ppr-attribute-sub-tlv { 2157 description "PPR attribute sub-tlv."; 2159 container traffic-accounting-sub-tlv { 2160 description 2161 "packet traffic acccounting sub-tlv. Specifies to create 2162 a counter to count number of packets forwarded to this 2163 PPR-ID on each node in the path description."; 2164 leaf type { 2165 type uint8; 2166 default 1; 2167 description "Type 1 sub-tlv."; 2168 } 2169 } 2170 container traffic-statis-sub-tlv { 2171 description 2172 "Specifies to create a counter to count number of bytes 2173 forwarded on this PPR-ID specified in the network header 2174 (e.g. IPv4, IPv6) on each node in the path description."; 2175 leaf type { 2176 type uint8; 2177 default 2; 2178 description "Traffic statistics in bytes sub-tlv."; 2179 } 2180 } 2181 container ipv4-routerid-sub-tlv { 2182 description "PPR-prefix originating node's IPv4 router ID."; 2183 leaf type { 2184 type uint8; 2185 default 3; 2186 description "PPR-prefix originating node's IPv4 router ID."; 2187 } 2188 leaf length { 2189 type uint8; 2190 default 4; 2191 description "TLV length is 4."; 2192 } 2193 leaf value { 2194 type inet:ipv4-address; 2195 description "IPv4 router ID."; 2196 } 2197 } 2198 container ipv6-routerid-sub-tlv { 2199 description "PPR-prefix originating node's IPv6 router ID."; 2200 leaf type { 2201 type uint8; 2202 default 4; 2203 description "PPR-prefix originating node's IPv6 router ID."; 2205 } 2206 leaf length { 2207 type uint8; 2208 default 16; 2209 description "TLV length is 16."; 2210 } 2211 leaf value { 2212 type inet:ipv6-address; 2213 description "IPv6 router ID."; 2214 } 2215 } 2216 container ppr-metric-sub-tlv { 2217 description 2218 "The metric of this path represented through the PPR-ID."; 2219 leaf type { 2220 type uint8; 2221 default 5; 2222 description "Metric sub-tlv."; 2223 } 2224 leaf length { 2225 type uint8; 2226 default 4; 2227 description "4 bytes."; 2228 } 2229 leaf value { 2230 type uint32; 2231 description "Metirc of the PPR-ID."; 2232 } 2233 } 2234 } 2235 } 2237 grouping ppr-tlvs { 2238 description "PPR TLV in extended prefix opaque LSAs."; 2240 container ppr-tlvs { 2241 description "List of PPR TLVs."; 2242 list ppr-tlv { 2243 description "OSPF PPR TLV."; 2244 leaf flags { 2245 type bits { 2246 bit IA { 2247 position 0; 2248 description 2249 "Inter-Area flag."; 2250 } 2251 bit A { 2252 position 1; 2253 description 2254 "If set, it is to signal that the prefixes and PPR 2255 IDs advertised in this TLV are directly connected 2256 to their originators."; 2257 } 2258 } 2259 description "Flags."; 2260 } 2261 leaf af { 2262 type iana-rt-types:address-family; 2263 description 2264 "Address family of the OSPF instance."; 2265 } 2267 uses ppr-prefix-sub-tlv; 2268 uses ppr-id-sub-tlv; 2269 uses ppr-pde-sub-tlv; 2270 uses ppr-attribute-sub-tlv; 2271 } 2273 } 2275 } 2277 /* Configuration */ 2278 augment "/rt:routing/rt:control-plane-protocols" 2279 + "/rt:control-plane-protocol/ospf:ospf" { 2280 when "../rt:type = 'ospf:ospfv2' or " 2281 + "../rt:type = 'ospf:ospfv3'" { 2282 description 2283 "This augments the OSPF routing protocol when used."; 2284 } 2285 description 2286 "This augments the OSPF protocol configuration 2287 with preferred path routing."; 2289 container ppr { 2290 description 2291 "OSPF PPR."; 2292 leaf enable { 2293 type boolean; 2294 description 2295 "Enable PPR."; 2296 } 2297 } 2298 } 2300 /* Database */ 2301 augment "/rt:routing/" 2302 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2303 + "ospf:ospf/ospf:areas/ospf:area/" 2304 + "ospf:interfaces/ospf:interface/ospf:database/" 2305 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 2306 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv2/" 2307 + "ospf:ospfv2/ospf:body/ospf:opaque/" 2308 + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { 2309 when "../../../../../../../../../../../../../../" 2310 + "rt:type = 'ospf:ospfv2'" { 2311 description 2312 "This augmentation is only valid for OSPFv2."; 2313 } 2314 description 2315 "PPR specific TLVs for OSPFv2 type 9 opaque LSA."; 2316 uses ppr-tlvs; 2317 } 2319 augment "/rt:routing/" 2320 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2321 + "ospf:ospf/ospf:areas/" 2322 + "ospf:area/ospf:database/" 2323 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 2324 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv2/" 2325 + "ospf:ospfv2/ospf:body/ospf:opaque/" 2326 + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { 2327 when "../../../../../../../../../../../../" 2328 + "rt:type = 'ospf:ospfv2'" { 2329 description 2330 "This augmentation is only valid for OSPFv2."; 2331 } 2332 description 2333 "PPR specific TLVs for OSPFv2 type 10 opaque LSA."; 2334 uses ppr-tlvs; 2335 } 2337 augment "/rt:routing/" 2338 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2339 + "ospf:ospf/ospf:database/" 2340 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 2341 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv2/" 2342 + "ospf:ospfv2/ospf:body/ospf:opaque/" 2343 + "ospf:extended-prefix-tlvs/ospf:extended-prefix-tlv" { 2344 when "../../../../../../../../../../" 2345 + "rt:type = 'ospf:ospfv2'" { 2346 description 2347 "This augmentation is only valid for OSPFv2."; 2348 } 2349 description 2350 "PPR specific TLVs for OSPFv2 type 11 opaque LSA."; 2351 uses ppr-tlvs; 2352 } 2354 /* OSPFv3 inter-area-prefix-lsa */ 2355 augment "/rt:routing/" 2356 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2357 + "ospf:ospf/ospf:areas/ospf:area/" 2358 + "ospf:interfaces/ospf:interface/ospf:database/" 2359 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 2360 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" 2361 + "ospf:ospfv3/ospf:body/ospf:inter-area-prefix" { 2362 when "../../../../../../../../../../../../" 2363 + "rt:type = 'ospf:ospfv3'" { 2364 description 2365 "This augmentation is only valid for OSPFv3."; 2366 } 2368 description 2369 "SR specific TLVs for OSPFv3 link scope Inter-Area-Prefix-LSA."; 2370 uses ppr-tlvs; 2371 } 2373 augment "/rt:routing/" 2374 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2375 + "ospf:ospf/ospf:areas/" 2376 + "ospf:area/ospf:database/" 2377 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 2378 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 2379 + "ospf:ospfv3/ospf:body/ospf:inter-area-prefix" { 2380 when "../../../../../../../../../../" 2381 + "rt:type = 'ospf:ospfv3'" { 2382 description 2383 "This augmentation is only valid for OSPFv3."; 2384 } 2385 description 2386 "SR specific TLVs for OSPFv3 area scope Inter-Area-Prefix-LSA."; 2387 uses ppr-tlvs; 2388 } 2390 augment "/rt:routing/" 2391 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2392 + "ospf:ospf/ospf:database/" 2393 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 2394 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 2395 + "ospf:ospfv3/ospf:body/ospf:inter-area-prefix" { 2396 when "../../../../../../../../" 2397 + "rt:type = 'ospf:ospfv3'" { 2398 description 2399 "This augmentation is only valid for OSPFv3."; 2400 } 2401 description 2402 "SR specific TLVs for OSPFv3 as scope Inter-Area-Prefix-LSA."; 2403 uses ppr-tlvs; 2404 } 2406 /* OSPFv3 intra-area-prefix-lsa */ 2407 augment "/rt:routing/" 2408 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2409 + "ospf:ospf/ospf:areas/ospf:area/" 2410 + "ospf:interfaces/ospf:interface/ospf:database/" 2411 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 2412 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" 2413 + "ospf:ospfv3/ospf:body/ospf:intra-area-prefix" { 2414 when "../../../../../../../../../../../../" 2415 + "rt:type = 'ospf:ospfv3'" { 2416 description 2417 "This augmentation is only valid for OSPFv3."; 2418 } 2420 description 2421 "SR specific TLVs for OSPFv3 link scope Intra-Area-Prefix-LSA."; 2422 uses ppr-tlvs; 2423 } 2425 augment "/rt:routing/" 2426 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2427 + "ospf:ospf/ospf:areas/" 2428 + "ospf:area/ospf:database/" 2429 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 2430 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 2431 + "ospf:ospfv3/ospf:body/ospf:intra-area-prefix" { 2432 when "../../../../../../../../../../" 2433 + "rt:type = 'ospf:ospfv3'" { 2434 description 2435 "This augmentation is only valid for OSPFv3."; 2436 } 2437 description 2438 "SR specific TLVs for OSPFv3 area scope Inter-Area-Prefix-LSA."; 2439 uses ppr-tlvs; 2440 } 2442 augment "/rt:routing/" 2443 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2444 + "ospf:ospf/ospf:database/" 2445 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 2446 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 2447 + "ospf:ospfv3/ospf:body/ospf:intra-area-prefix" { 2448 when "../../../../../../../../" 2449 + "rt:type = 'ospf:ospfv3'" { 2450 description 2451 "This augmentation is only valid for OSPFv3."; 2452 } 2453 description 2454 "SR specific TLVs for OSPFv3 as scope Intra-Area-Prefix-LSA."; 2455 uses ppr-tlvs; 2456 } 2458 /* OSPFv3 external-lsa */ 2459 augment "/rt:routing/" 2460 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2461 + "ospf:ospf/ospf:areas/ospf:area/" 2462 + "ospf:interfaces/ospf:interface/ospf:database/" 2463 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 2464 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" 2465 + "ospf:ospfv3/ospf:body/ospf:as-external" { 2466 when "../../../../../../../../../../../../" 2467 + "rt:type = 'ospf:ospfv3'" { 2468 description 2469 "This augmentation is only valid for OSPFv3."; 2470 } 2472 description 2473 "SR specific TLVs for OSPFv3 link scope AS-External-LSA."; 2474 uses ppr-tlvs; 2475 } 2477 augment "/rt:routing/" 2478 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2479 + "ospf:ospf/ospf:areas/" 2480 + "ospf:area/ospf:database/" 2481 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 2482 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 2483 + "ospf:ospfv3/ospf:body/ospf:as-external" { 2484 when "../../../../../../../../../../" 2485 + "rt:type = 'ospf:ospfv3'" { 2486 description 2487 "This augmentation is only valid for OSPFv3."; 2488 } 2489 description 2490 "SR specific TLVs for OSPFv3 area scope AS-External-LSA."; 2491 uses ppr-tlvs; 2493 } 2495 augment "/rt:routing/" 2496 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2497 + "ospf:ospf/ospf:database/" 2498 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 2499 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 2500 + "ospf:ospfv3/ospf:body/ospf:as-external" { 2501 when "../../../../../../../../" 2502 + "rt:type = 'ospf:ospfv3'" { 2503 description 2504 "This augmentation is only valid for OSPFv3."; 2505 } 2506 description 2507 "SR specific TLVs for OSPFv3 as scope AS-External-LSA."; 2508 uses ppr-tlvs; 2509 } 2511 /* OSPFv3 Type-7 NSSA */ 2512 augment "/rt:routing/" 2513 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2514 + "ospf:ospf/ospf:areas/ospf:area/" 2515 + "ospf:interfaces/ospf:interface/ospf:database/" 2516 + "ospf:link-scope-lsa-type/ospf:link-scope-lsas/" 2517 + "ospf:link-scope-lsa/ospf:version/ospf:ospfv3/" 2518 + "ospf:ospfv3/ospf:body/ospf:nssa" { 2519 when "../../../../../../../../../../../../" 2520 + "rt:type = 'ospf:ospfv3'" { 2521 description 2522 "This augmentation is only valid for OSPFv3."; 2523 } 2525 description 2526 "SR specific TLVs for OSPFv3 link scope Type-7-LSA."; 2527 uses ppr-tlvs; 2528 } 2530 augment "/rt:routing/" 2531 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2532 + "ospf:ospf/ospf:areas/" 2533 + "ospf:area/ospf:database/" 2534 + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" 2535 + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" 2536 + "ospf:ospfv3/ospf:body/ospf:nssa" { 2537 when "../../../../../../../../../../" 2538 + "rt:type = 'ospf:ospfv3'" { 2539 description 2540 "This augmentation is only valid for OSPFv3."; 2541 } 2542 description 2543 "SR specific TLVs for OSPFv3 area scope Type-7-LSA."; 2544 uses ppr-tlvs; 2545 } 2547 augment "/rt:routing/" 2548 + "rt:control-plane-protocols/rt:control-plane-protocol/" 2549 + "ospf:ospf/ospf:database/" 2550 + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" 2551 + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" 2552 + "ospf:ospfv3/ospf:body/ospf:nssa" { 2553 when "../../../../../../../../" 2554 + "rt:type = 'ospf:ospfv3'" { 2555 description 2556 "This augmentation is only valid for OSPFv3."; 2557 } 2558 description 2559 "SR specific TLVs for OSPFv3 as scope Type-7-LSA."; 2560 uses ppr-tlvs; 2561 } 2562 } 2563 2565 5. Security Considerations 2567 The YANG modules specified in this document define a schema for data 2568 that is designed to be accessed via network management protocols such 2569 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 2570 is the secure transport layer, and the mandatory-to-implement secure 2571 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 2572 is HTTPS, and the mandatory-to-implement secure transport is TLS 2573 [RFC5246]. 2575 The NETCONF access control model [RFC6536] provides the means to 2576 restrict access for particular NETCONF or RESTCONF users to a pre- 2577 configured subset of all available NETCONF or RESTCONF protocol 2578 operations and content. 2580 6. Acknowledgements 2582 TBD. 2584 7. IANA Considerations 2586 TBD. 2588 8. References 2590 8.1. Normative References 2592 [I-D.chunduri-lsr-isis-preferred-path-routing] 2593 Chunduri, U., Li, R., White, R., Tantsura, J., Contreras, 2594 L., and Y. Qu, "Preferred Path Routing (PPR) in IS-IS", 2595 draft-chunduri-lsr-isis-preferred-path-routing-02 (work in 2596 progress), February 2019. 2598 [I-D.chunduri-lsr-ospf-preferred-path-routing] 2599 Chunduri, U., Qu, Y., White, R., Tantsura, J., and L. 2600 Contreras, "Preferred Path Routing (PPR) in OSPF", draft- 2601 chunduri-lsr-ospf-preferred-path-routing-02 (work in 2602 progress), February 2019. 2604 [I-D.ietf-isis-yang-isis-cfg] 2605 Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. 2606 Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- 2607 isis-yang-isis-cfg-35 (work in progress), March 2019. 2609 [I-D.ietf-ospf-yang] 2610 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 2611 "YANG Data Model for OSPF Protocol", draft-ietf-ospf- 2612 yang-21 (work in progress), January 2019. 2614 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2615 Requirement Levels", BCP 14, RFC 2119, March 1997. 2617 [RFC5246] Dierks, T., "The Transport Layer Security (TLS) Protocol 2618 Version 1.2", RFC 5246, August 2008. 2620 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 2621 Network Configuration Protocol (NETCONF)", RFC 6020, 2622 October 2010. 2624 [RFC6241] Enns, R., "Network Configuration Protocol (NETCONF)", 2625 RFC 6241, June 2011. 2627 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 2628 Shell (SSH)", RFC 6242, June 2011. 2630 [RFC6536] Bierman, A., "Network Configuration Protocol (NETCONF) 2631 Access Control Model", RFC 6536, March 2012. 2633 [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", 2634 RFC 7950, August 2016. 2636 [RFC8040] Bierman, A., "RESTCONF Protocol", RFC 8040, January 2017. 2638 8.2. Informative References 2640 [I-D.ietf-netmod-yang-tree-diagrams] 2641 Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- 2642 ietf-netmod-yang-tree-diagrams-06 (work in progress), 2643 February 2018. 2645 Authors' Addresses 2647 Yingzhen Qu 2648 Huawei USA 2649 2330 Central Expressway 2650 Santa Clara, CA 95050 2651 USA 2653 Email: yingzhen.qu@huawei.com 2655 Uma Chunduri 2656 Huawei USA 2657 2330 Central Expressway 2658 Santa Clara, CA 95050 2659 USA 2661 Email: uma.chunduri@huawei.com 2663 Jeff Tantsura 2664 Apstra 2666 Email: jefftant.ietf@gmail.com