idnits 2.17.1 draft-chh-bier-bier-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 are 38 instances of too long lines in the document, the longest one being 27 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 82 has weird spacing: '...-prefix ine...' == Line 84 has weird spacing: '...-prefix ine...' == Line 90 has weird spacing: '...glength enu...' == Line 128 has weird spacing: '...glength uin...' == Line 145 has weird spacing: '...t-label uin...' == (2 more instances...) -- The document date (October 16, 2015) is 3115 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'I-D.ietf-bier-mpls-encapsulation' is defined on line 723, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 735, but no explicit reference was found in the text == Unused Reference: 'RFC6241' is defined on line 740, but no explicit reference was found in the text == Unused Reference: 'RFC6991' is defined on line 745, but no explicit reference was found in the text == Unused Reference: 'RFC7223' is defined on line 749, but no explicit reference was found in the text == Outdated reference: A later version (-08) exists of draft-ietf-bier-architecture-02 == Outdated reference: A later version (-11) exists of draft-ietf-bier-isis-extensions-00 == Outdated reference: A later version (-12) exists of draft-ietf-bier-mpls-encapsulation-02 == Outdated reference: A later version (-18) exists of draft-ietf-bier-ospf-bier-extensions-00 ** Obsolete normative reference: RFC 7223 (Obsoleted by RFC 8343) Summary: 2 errors (**), 0 flaws (~~), 16 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 BIER WG Ran. Chen 3 Internet-Draft Fangwei. Hu 4 Intended status: Standards Track Zheng. Zhang 5 Expires: April 18, 2016 Xianxia. Dai 6 ZTE Corporation 7 Mahesh Sivakumar 8 Cisco Systems, Inc. 9 October 16, 2015 11 YANG Data Model for BIER Protocol 12 draft-chh-bier-bier-yang-01.txt 14 Abstract 16 This document defines a YANG data model for BIER configuration and 17 operation. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at http://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on April 18, 2016. 36 Copyright Notice 38 Copyright (c) 2015 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (http://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 54 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 2 55 3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 4 56 4. Control plane configuration . . . . . . . . . . . . . . . . . 4 57 5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 58 6. Notification . . . . . . . . . . . . . . . . . . . . . . . . 5 59 7. BIER YANG Data Model . . . . . . . . . . . . . . . . . . . . 5 60 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 61 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 62 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 63 11. Normative references . . . . . . . . . . . . . . . . . . . . 15 64 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 66 1. Introduction 68 This document defines a YANG data model for BIER configuration and 69 operation. 71 2. Design of the Data Model 73 module: ietf-bier 74 augment /rt:routing: 75 +--rw bier 76 +--rw bier-global 77 +--rw encapsulation-type? identityref 78 +--rw bitstringlength enumeration 79 +--rw bfr-id uint16 80 +--rw af 81 | +--rw ipv4 82 | | +--rw ipv4-bfr-prefix inet:ipv4-prefix 83 | +--rw ipv6 84 | +--rw ipv6-bfr-prefix inet:ipv6-prefix 85 +--rw sub-domain* [sub-domain-id] 86 +--rw sub-domain-id uint16 87 +--rw mt-id uint16 88 +--rw bfr-id? uint16 89 +--rw frr? boolean 90 +--rw bitstringlength enumeration 91 +--rw af 92 +--rw ipv4* [bitstringlength bier-mpls-label] 93 | +--rw bitstringlength uint16 94 | +--rw bier-mpls-label uint32 95 | +--rw bier-mpls-label-range-size? uint8 96 +--rw ipv6* [bitstringlength bier-mpls-label] 97 +--rw bitstringlength uint16 98 +--rw bier-mpls-label uint32 99 +--rw bier-mpls-label-range-size? uint8 101 augment /rt:routing/rt:routing-instance/rt:routing-protocols 102 /rt:routing-protocol/isis:isis/isis:instance: 103 +--rw mt 104 +--rw mt-id uint16 105 +--rw bier-global 106 +--rw enable? boolean 107 +--rw advertise? boolean 108 +--rw receive? boolean 110 augment /rt:routing/rt:routing-instance/rt:routing-protocols 111 /rt:routing-protocol/ospf:ospf/ospf:instance: 112 +--rw mt 113 +--rw mt-id uint16 114 +--rw bier-global 115 +--rw enable? boolean 116 +--rw advertise? boolean 117 +--rw receive? boolean 119 augment /rt:routing-state: 120 +--ro bier-global 121 | +--ro bfr-id uint16 122 | +--ro ipv4-bfr-prefix? inet:ipv4-prefix 123 | +--ro ipv6-bfr-prefix? inet:ipv6-prefix 124 | +--ro sub-domain* [sub-domain-id] 125 | +--ro sub-domain-id uint16 126 | +--ro mt-id uint16 127 | +--ro bfr-id? uint16 128 | +--ro bitstringlength uint16 129 | +--ro ipv4* [bitstringlength label] 130 | | +--ro bitstringlength uint16 131 | | +--ro label? uint32 132 | | +--ro label-range-size? uint8 133 | +--ro ipv6* [bitstringlength label] 134 | +--ro bitstringlength uint16 135 | +--ro label? uint32 136 | +--ro label-range-size? uint8 137 +--ro birts 138 +--ro birt* [sub-domain-id bitstringlength si] 139 +--ro sub-domain-id uint16 140 +--ro bitstringlength uint16 141 +--ro si uint16 142 +--ro f-bm? uint16 143 +--ro bier-mpls-in-label uint32 144 +--ro bfr-nbr? union 145 +--ro bier-mpls-out-label uint32 147 notifications: 148 +---n bfr-id-collision 149 | +--ro bfr-id? uint16 150 +---n bfr-zero 151 | +--ro ipv4-bfr-prefix? inet:ipv4-prefix 152 | +--ro ipv6-bfr-prefix? inet:ipv6-prefix 153 +---n sub-domain-id-collision 154 +--ro sub-domain-id? uint16 155 +--ro mt-id? uint16 157 3. Configuration 159 This Module augments the "/rt:routing:" with a BIER container. This 160 Container defines all the configuration parameters related to BIER 161 for this particular routing. 163 The BIER configuration contains global configuration. 165 The global configuration includes BIER transport type, imposition 166 BitStringLengths, BFR-id, AF, and parameters associated with bier 167 sub-domain. 169 In this document, we contains two types of BitStringLengths: 170 Imposition and Disposition BitStringLengths, as defined in 171 ([I-D.ietf-bier-architecture]).The imposition BitStringLengths is 172 defined under bier-global container, and the disposition 173 BitStringLengths is defined under the sub-domain. 175 4. Control plane configuration 177 This Module augments routing-protocol configuration with BIER. 179 This Module supports ISIS ([I-D.ietf-bier-isis-extensions])and OSPF 180 ([I-D.ietf-bier-ospf-bier-extensions]) as control plane for BIER. 182 5. States 184 The operational states contains basic parameters associated with 185 bier, such as BFR-id, BFR-prefixes and parameters associated with 186 bier sub-domain. 188 It also includes the Bit Index Routing Table(BIRT). 190 6. Notification 192 This Module includes bfr-id-collision, bfr-zero, and sub-domain-id- 193 collision. 195 7. BIER YANG Data Model 197 module ietf-bier { 199 namespace "urn:ietf:params:xml:ns:yang:ietf-bier"; 201 prefix "bier"; 203 import ietf-routing { 204 prefix "rt"; 205 } 207 import ietf-inet-types { 208 prefix "inet"; 209 } 211 organization 212 "IETF BIER(Bit Indexed Explicit Replication ) Working Group"; 214 contact 215 "WG List: 217 WG Chair: Tony Przygienda 218 220 WG Chair: Greg Shepherd 221 223 Editor: Ran Chen 224 225 Editor: Fangwei Hu 226 227 Editor: Zheng Zhang 228 229 Editor: Xianxian Dai 230 231 Editor: Mahesh Sivakumar 232 234 "; 235 description 236 "The YANG module defines a generic configuration 237 model for BIER."; 239 revision 2015-10-16 { 240 description 241 "01 revision."; 242 reference 243 "draft-chh-bier-bier-yang-01"; 244 } 246 revision 2015-06-22 { 247 description 248 "Initial revision."; 249 reference 250 "draft-chh-bier-bier-yang-00"; 251 } 253 /* Identities */ 254 identity bier-encapsulation{ 255 description 256 "Base identity for BIER encapsulation."; 257 } 258 identity bier-encapsulation-mpls { 259 base bier-encapsulation; 260 description 261 "This identity represents MPLS encapsulation for bier."; 262 } 264 /* Configuration Data */ 265 augment "/rt:routing" { 266 description 267 "This augments routing-instance configuration with bier."; 268 container bier{ 269 description "BIER config."; 270 container bier-global { 271 description 272 "BIER global config."; 273 leaf encapsulation-type { 274 type identityref { 275 base bier-encapsulation; 276 } 277 default "bier-encapsulation-mpls"; 278 description 279 "Dataplane to be used."; 280 } 281 leaf bitstringlength{ 282 type enumeration{ 283 enum 64-bit{ 284 description "bitstringlength is 64"; 285 } 286 enum 128-bit{ 287 description "bitstringlength is 128"; 288 } 289 enum 256-bit{ 290 description "bitstringlength is 256"; 291 } 292 enum 512-bit{ 293 description "bitstringlength is 512"; 294 } 295 enum 1024-bit{ 296 description "bitstringlength is 1024"; 297 } 298 enum 2048-bit{ 299 description "bitstringlength is 2048"; 300 } 301 enum 4096-bit{ 302 description "bitstringlength is 4096"; 303 } 304 } 305 description 306 "imposition"; 307 } 308 leaf bfr-id { 309 type uint16; 310 description 311 "BIER bfr identifier."; 312 } 313 container af { 314 container ipv4 { 315 leaf ipv4-bfr-prefix { 316 type inet:ipv4-prefix; 317 description 318 "BIER IPv4 prefix."; 319 } 320 description 321 "IPv4 prefix."; 322 } 323 container ipv6 { 324 leaf ipv6-bfr-prefix { 325 type inet:ipv6-prefix; 326 description 327 "BIER IPv6 prefix."; 328 } 329 description 330 "IPv6 prefix."; 331 } 332 description 333 "BIER IPV4&IPV6 prefix"; 334 } 335 list sub-domain { 336 key "sub-domain-id"; 337 leaf sub-domain-id{ 338 type uint16; 339 description 340 "sub-domain ID."; 341 } 342 leaf mt-id { 343 type uint16; 344 description 345 "multi-topology ID."; 346 } 347 leaf bfr-id{ 348 type uint16; 349 description 350 "BIER bfr identifier."; 351 } 352 leaf frr{ 353 type boolean; 354 description 355 "Enables BIER FRR."; 356 } 357 leaf bitstringlength{ 358 type enumeration{ 359 enum 64-bit{ 360 description "bitstringlength is 64"; 361 } 362 enum 128-bit{ 363 description "bitstringlength is 128"; 364 } 365 enum 256-bit{ 366 description "bitstringlength is 256"; 367 } 368 enum 512-bit{ 369 description "bitstringlength is 512"; 370 } 371 enum 1024-bit{ 372 description "bitstringlength is 1024"; 373 } 374 enum 2048-bit{ 375 description "bitstringlength is 2048"; 376 } 377 enum 4096-bit{ 378 description "bitstringlength is 4096"; 379 } 380 } 381 description 382 "disposition"; 383 } 384 container af { 385 list ipv4 { 386 key "bitstringlength bier-mpls-label"; 387 leaf bitstringlength { 388 type uint16; 389 description 390 "BIER bitstringlength."; 391 } 392 leaf bier-mpls-label{ 393 type uint32; 394 description 395 "BIER label."; 396 } 397 leaf bier-mpls-label-range-size{ 398 type uint8; 399 description 400 "BIER label range."; 401 } 402 description 403 "IPv4 mapping entries."; 404 } 405 list ipv6 { 406 key "bitstringlength bier-mpls-label"; 407 leaf bitstringlength { 408 type uint16; 409 description 410 "BIER bitstringlength."; 411 } 412 leaf bier-mpls-label{ 413 type uint32; 414 description 415 "BIER label."; 416 } 417 leaf bier-mpls-label-range-size{ 418 type uint8; 419 description 420 "BIER label range."; 421 } 422 description 423 "IPv6 mapping entries."; 424 } 425 description 426 "Bier mapping entries."; 427 } 428 description 429 "Parameters associated with bier sub-domain."; 430 } 431 } 432 } 433 } 434 augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" 435 + "rt:routing-protocol" { 436 description 437 "This augments ospf protocol configuration with bier."; 438 container mt{ 439 description 440 "Control of bier advertisement and reception."; 441 leaf mt-id{ 442 type uint16; 443 description 444 "Multi-topology associated with bier sub-domain."; 445 } 446 container bier-global { 447 description 448 "BIER global config."; 449 leaf enable { 450 type boolean; 451 default false; 452 description 453 "Enables bier protocol extensions."; 454 } 455 leaf advertise { 456 type boolean; 457 default true; 458 description 459 "Enable to advertise the parameters associated with 460 bier."; 461 } 462 leaf receive { 463 type boolean; 464 default true; 465 description 466 "Enable to receive the parameters associated with 467 bier."; 468 } 469 } 470 } 471 } 473 augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" 474 + "rt:routing-protocol" { 475 description 476 "This augments ISIS protocol configuration with bier."; 477 container mt{ 478 description 479 "Control of bier advertisement and reception."; 480 leaf mt-id{ 481 type uint16; 482 description 483 "Multi-topology associated with bier sub-domain."; 484 } 485 container bier-global { 486 description 487 "BIER global config."; 488 leaf enable { 489 type boolean; 490 default false; 491 description 492 "Enables bier protocol extensions."; 493 } 494 leaf advertise { 495 type boolean; 496 default true; 497 description 498 "Enable to advertise the parameters associated with 499 bier."; 500 } 501 leaf receive { 502 type boolean; 503 default true; 504 description 505 "Enable to receive the parameters associated with 506 bier."; 507 } 508 } 509 } 510 } 512 /* Operational data */ 513 augment "/rt:routing-state" { 514 description 515 "This augments the operational states with bier."; 516 container bier-global{ 517 leaf bfr-id{ 518 type uint16; 519 description 520 "BIER BFR ID."; 521 } 522 leaf ipv4-bfr-prefix{ 523 type inet:ipv4-prefix; 524 description 525 "BIER ipv4 prefix."; 526 } 527 leaf ipv6-bfr-prefix{ 528 type inet:ipv6-prefix; 529 description 530 "BIER ipv6 prefix."; 531 } 532 list sub-domain { 533 key "sub-domain-id"; 534 leaf sub-domain-id { 535 type uint16; 536 description 537 "sub-domain ID."; 538 } 539 leaf mt-id { 540 type uint16; 541 description 542 "Multi-topology ID"; 543 } 544 leaf bfr-id { 545 type uint16; 546 description 547 "BIER bfr identifier."; 548 } 549 leaf bitstringlength{ 550 type uint16; 551 description 552 "BIER bitstringlength."; 553 } 554 list ipv4 { 555 key "bitstringlength label"; 556 leaf bitstringlength { 557 type uint16; 558 description 559 "BIER bitstringlength."; 560 } 561 leaf label{ 562 type uint32; 563 description 564 "BIER label."; 565 } 566 leaf label-range-size{ 567 type uint8; 568 description 569 "BIER label range."; 571 } 572 description 573 "IPv4 mapping entries."; 574 } 575 list ipv6 { 576 key "bitstringlength label"; 577 leaf bitstringlength { 578 type uint16; 579 description 580 "BIER bitstringlength."; 581 } 582 leaf label{ 583 type uint32; 584 description 585 "BIER label."; 586 } 587 leaf label-range-size{ 588 type uint8; 589 description 590 "BIER label range."; 591 } 592 description 593 "IPv6 mapping entries."; 594 } 596 description 597 "Parameters associated with bier sub-domain."; 598 } 599 description 600 "Parameters associated with bier."; 601 } 602 container birts{ 603 list birt{ 604 key "sub-domain-id bitstringlength si"; 605 leaf sub-domain-id{ 606 type uint16; 607 description 608 "BIER sub domain ID"; 609 } 610 leaf bitstringlength{ 611 type uint16; 612 description 613 "BIER bitstringlength."; 614 } 615 leaf si{ 616 type uint16; 617 description 618 "BIER SI."; 620 } 621 leaf f-bm{ 622 type uint16; 623 description 624 "BIER Forwarding Bit Mask."; 625 } 626 leaf bier-mpls-in-label{ 627 type uint32; 628 description 629 "BIER in-label."; 630 } 631 leaf bfr-nbr{ 632 type union{ 633 type inet:ipv4-address; 634 type inet:ipv6-address; 635 } 636 description 637 "BIER BFR Neighbors."; 638 } 639 leaf bier-mpls-out-label{ 640 type uint32; 641 description 642 "BIER out-label."; 643 } 644 description 645 "Shows Bit Index Routing Table."; 646 } 647 description 648 "BIER birt operational states."; 649 } 650 } 652 /* Notifications */ 653 notification bfr-id-collision{ 654 leaf bfr-id{ 655 type uint16; 656 description 657 "BIER BFR ID."; 658 } 659 description 660 "BFR ID received in the controlplane that caused BFR ID 661 collision."; 662 } 664 notification bfr-zero{ 665 leaf ipv4-bfr-prefix{ 666 type inet:ipv4-prefix; 667 description 668 "BIER ipv4 bfr prefix"; 669 } 670 leaf ipv6-bfr-prefix{ 671 type inet:ipv6-prefix; 672 description 673 "BIER ipv6 bfr prefix"; 674 } 675 description 676 "Invalid value associated with prefix"; 677 } 679 notification sub-domain-id-collision{ 680 leaf sub-domain-id{ 681 type uint16; 682 description 683 "BIER sub domain ID"; 684 } 685 leaf mt-id{ 686 type uint16; 687 description 688 "Multi-topology ID"; 689 } 690 description 691 "Sub domain ID received in the controlplane that 692 caused Sub domain ID collision"; 693 } 695 } 697 8. Security Considerations 699 TBD. 701 9. Acknowledgements 703 TBD. 705 10. IANA Considerations 707 This document requires no IANA Actions. Please remove this section 708 before RFC publication. 710 11. Normative references 712 [I-D.ietf-bier-architecture] 713 Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and 714 S. Aldrin, "Multicast using Bit Index Explicit 715 Replication", draft-ietf-bier-architecture-02 (work in 716 progress), July 2015. 718 [I-D.ietf-bier-isis-extensions] 719 Ginsberg, L., Aldrin, S., Zhang, J., and T. Przygienda, 720 "BIER support via ISIS", draft-ietf-bier-isis- 721 extensions-00 (work in progress), April 2015. 723 [I-D.ietf-bier-mpls-encapsulation] 724 Wijnands, I., Rosen, E., Dolganow, A., Tantsura, J., and 725 S. Aldrin, "Encapsulation for Bit Index Explicit 726 Replication in MPLS Networks", draft-ietf-bier-mpls- 727 encapsulation-02 (work in progress), August 2015. 729 [I-D.ietf-bier-ospf-bier-extensions] 730 Psenak, P., Kumar, N., Wijnands, I., Dolganow, A., 731 Przygienda, T., Zhang, J., and S. Aldrin, "OSPF Extensions 732 For BIER", draft-ietf-bier-ospf-bier-extensions-00 (work 733 in progress), April 2015. 735 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 736 the Network Configuration Protocol (NETCONF)", RFC 6020, 737 DOI 10.17487/RFC6020, October 2010, 738 . 740 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 741 and A. Bierman, Ed., "Network Configuration Protocol 742 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 743 . 745 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 746 RFC 6991, DOI 10.17487/RFC6991, July 2013, 747 . 749 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 750 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 751 . 753 Authors' Addresses 754 Ran Chen 755 ZTE Corporation 756 No.50 Software Avenue,Yuhuatai District 757 Nanjing, Jiangsu Province 210012 758 China 760 Phone: +86 025 88014636 761 Email: chen.ran@zte.com.cn 763 Fangwei Hu 764 ZTE Corporation 765 No.889 Bibo Rd 766 Shanghai 201203 767 China 769 Phone: +86 21 68896273 770 Email: hu.fangwei@zte.com.cn 772 Zheng Zhang 773 ZTE Corporation 774 No.50 Software Avenue,Yuhuatai District 775 Nanjing, Jiangsu Province 210012 776 China 778 Email: zhang.zheng@zte.com.cn 780 Xianxian Dai 781 ZTE Corporation 782 No.50 Software Avenue,Yuhuatai District 783 Nanjing, Jiangsu Province 210012 784 China 786 Email: Dai.xianxian@zte.com.cn 788 Mahesh Sivakumar 789 Cisco Systems, Inc. 790 510 McCarthy Blvd 791 Milpitas,California 95035 792 United States 794 Email: masivaku@cisco.com