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