idnits 2.17.1 draft-zhang-bier-te-yang-03.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 document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There are 25 instances of too long lines in the document, the longest one being 47 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: '...main-id bie...' == Line 85 has weird spacing: '... adj-if uin...' == Line 98 has weird spacing: '...fwd-bsl uin...' == Line 103 has weird spacing: '...f-index bit...' == Line 118 has weird spacing: '... number uin...' == (11 more instances...) -- The document date (April 28, 2017) is 2548 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) == Unused Reference: 'I-D.eckert-bier-te-frr' is defined on line 558, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-bier-architecture' is defined on line 563, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 575, but no explicit reference was found in the text == Unused Reference: 'RFC6087' is defined on line 580, but no explicit reference was found in the text == Unused Reference: 'RFC7223' is defined on line 584, but no explicit reference was found in the text == Outdated reference: A later version (-06) exists of draft-eckert-bier-te-arch-04 == Outdated reference: A later version (-03) exists of draft-eckert-bier-te-frr-00 ** Downref: Normative reference to an Experimental draft: draft-eckert-bier-te-frr (ref. 'I-D.eckert-bier-te-frr') == Outdated reference: A later version (-08) exists of draft-ietf-bier-architecture-06 == Outdated reference: A later version (-08) exists of draft-ietf-bier-bier-yang-01 ** Obsolete normative reference: RFC 6087 (Obsoleted by RFC 8407) ** Obsolete normative reference: RFC 7223 (Obsoleted by RFC 8343) Summary: 6 errors (**), 0 flaws (~~), 16 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 BIER WG Zheng. Zhang 3 Internet-Draft Cui. Wang 4 Intended status: Standards Track Ran. Chen 5 Expires: October 30, 2017 Fangwei. Hu 6 ZTE Corporation 7 Mahesh. Sivakumar 8 Cisco Systems, Inc. 9 April 28, 2017 11 BIER TE YANG module 12 draft-zhang-bier-te-yang-03 14 Abstract 16 This document defines a YANG data model for BIER TE 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 October 30, 2017. 36 Copyright Notice 38 Copyright (c) 2017 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. BIER-TE configuration . . . . . . . . . . . . . . . . . . . . 5 56 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 5 57 5. BIER TE YANG module . . . . . . . . . . . . . . . . . . . . . 5 58 6. Normative References . . . . . . . . . . . . . . . . . . . . 12 59 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 61 1. Introduction 63 [I-D.eckert-bier-te-arch] introduces an architecture for BIER-TE: 64 Traffic Engineering for Bit Index Explicit Replication (BIER). This 65 document defines a YANG data model for BIER TE. The content is in 66 keeping with the TE architecture draft. 68 2. Design of the Data Model 70 Instead of using respective sub-domain-id, si and bsl information 71 like in BIER yang draft [I-D.ietf-bier-bier-yang], this document 72 tries to group these sub-domain-id, si and bsl information in a new 73 bier-common grouping to simplify the reference. Later yang modules 74 may import the common grouping easily. Further, if this optimization 75 is recognized, then BIER yang draft [I-D.ietf-bier-bier-yang] will be 76 updated to group these sub-domain-id, si and bsl information as well. 78 module: ietf-bier-te 79 augment /rt:routing: 80 +--rw bier-te-config 81 +--rw te-subdomain* [subdomain-id] 82 +--rw subdomain-id bier:sub-domain-id 83 +--rw adj-id* [adjID] 84 | +--rw adjID adjid 85 | +--rw adj-if uint32 86 | +--rw (te-adjID-type) 87 | +--:(p2p) 88 | +--:(bfer) 89 | +--:(leaf-bfer) 90 | +--:(lan) 91 | +--:(spoke) 92 | +--:(ring-clockwise) 93 | +--:(ring-counterclockwise) 94 | +--:(ecmp) 95 | +--:(virtual-link) 96 | +--:(other) 97 +--rw te-bsl* [fwd-bsl] 98 | +--rw fwd-bsl uint16 99 | +--rw te-si* [si] 100 | +--rw si bier:si 101 | +--rw ft-label? rt-types:mpls-label 102 | +--rw te-f-index* [te-f-index] 103 | +--rw te-f-index bit-string 104 | +--rw (te-adj-type) 105 | | +--:(connected) 106 | | +--:(routed) 107 | | +--:(local-decap) 108 | | +--:(ecmp) 109 | | +--:(other) 110 | +--rw f-bm bit-string 111 | +--rw f-intf uint32 112 | +--rw ecmp? boolean 113 | +--rw ecmp-index? uint16 114 | +--rw frr? boolean 115 +--rw ecmp-path* [index] 116 | +--rw index uint32 117 | +--rw number* [number] 118 | +--rw number uint16 119 | +--rw out-if uint32 120 +--rw btaft* [adj-index] 121 +--rw adj-index uint32 122 +--rw bitposition bit-string 123 +--rw resetbitmask bit-string 124 +--rw addbitmask bit-string 125 augment /rt:routing-state: 126 +--ro bier-te-state 127 +--ro te-subdomain* [subdomain-id] 128 +--ro subdomain-id bier:sub-domain-id 129 +--ro adj-id* [adjID] 130 | +--ro adjID adjid 131 | +--ro adj-if uint32 132 | +--ro (te-adjID-type) 133 | +--:(p2p) 134 | +--:(bfer) 135 | +--:(leaf-bfer) 136 | +--:(lan) 137 | +--:(spoke) 138 | +--:(ring-clockwise) 139 | +--:(ring-counterclockwise) 140 | +--:(ecmp) 141 | +--:(virtual-link) 142 | +--:(other) 143 +--ro te-bsl* [fwd-bsl] 144 | +--ro fwd-bsl uint16 145 | +--ro te-si* [si] 146 | +--ro si bier:si 147 | +--ro ft-label? rt-types:mpls-label 148 | +--ro te-f-index* [te-f-index] 149 | +--ro te-f-index bit-string 150 | +--ro (te-adj-type) 151 | | +--:(connected) 152 | | +--:(routed) 153 | | +--:(local-decap) 154 | | +--:(ecmp) 155 | | +--:(other) 156 | +--ro f-bm bit-string 157 | +--ro f-intf uint32 158 | +--ro ecmp? boolean 159 | +--ro ecmp-index? uint16 160 | +--ro frr? boolean 161 +--ro ecmp-path* [index] 162 | +--ro index uint32 163 | +--ro number* [number] 164 | +--ro number uint16 165 | +--ro out-if uint32 166 +--ro btaft* [adj-index] 167 +--ro adj-index uint32 168 +--ro bitposition bit-string 169 +--ro resetbitmask bit-string 170 +--ro addbitmask bit-string 172 notifications: 173 +---n bier-te-notification 174 +--ro adjID-is-zero* [if-index] 175 +--ro if-index uint32 176 +--ro (te-adjID-type) 177 +--:(p2p) 178 +--:(bfer) 179 +--:(leaf-bfer) 180 +--:(lan) 181 +--:(spoke) 182 +--:(ring-clockwise) 183 +--:(ring-counterclockwise) 184 +--:(ecmp) 185 +--:(virtual-link) 186 +--:(other) 188 3. BIER-TE configuration 190 The BIER-TE information is indexed by the sub-domain ID. Maybe there 191 are some global BIER-TE information, it should be added in later 192 version. 194 One interface can be used in different sub-domain, so the BIER TE 195 adjacency information is managed by BIER TE other than by interface. 197 Because the BIER-TE is controlled by controller now, the information 198 about IGP is not defined. If in the future the IGP is used to carry 199 the information about BIER-TE, the IGP extension will be added in 200 this document. 202 4. Notifications 204 If the adjacency id of one adjacency is set to zero, the value is 205 invalid. The notification should be sent to controller and network 206 manager. 208 5. BIER TE YANG module 210 file "ietf-bier-te.yang" 212 module ietf-bier-te { 214 namespace "urn:ietf:params:xml:ns:yang:ietf-bier-te"; 216 prefix bier-te; 218 import ietf-routing { 219 prefix "rt"; 220 } 222 import ietf-bier { 223 prefix "bier"; 224 } 226 import ietf-routing-types { 227 prefix "rt-types"; 228 } 230 organization " IETF BIER(Bit Indexed Explicit Replication ) Working Group"; 231 contact 232 "WG List: 233 WG Chair: Tony Przygienda 234 235 WG Chair: Greg Shepherd 236 238 Editor: Zheng Zhang 239 240 Editor: Cui Wang 241 242 Editor: Ran Chen 243 244 Editor: Fangwei Hu 245 246 Editor: Mahesh Sivakumar 247 248 "; 250 description 251 "This module contains a collection of YANG definitions for 252 managing BIER TE information."; 254 revision 2017-04-26 { 255 description 256 "Add label for forwading table."; 257 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 258 } 260 revision 2016-10-13 { 261 description 262 "Add reference of BIER common structure."; 263 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 264 } 266 revision 2016-03-01 { 267 description 268 "Initial version."; 269 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 270 } 272 /* 273 * Features 274 */ 275 feature bier-te-frr { 276 description 277 "Support ECMP feature in BIER TE."; 278 } 280 grouping te-frr { 281 description "The TE fast reroute information."; 282 list btaft { 283 key "adj-index"; 284 description "The adjacency index of the frr paths."; 285 leaf adj-index { 286 type uint32; 287 mandatory true; 288 description "The frr adjacency index."; 289 } 290 leaf bitposition { 291 type bit-string; 292 mandatory true; 293 description "The bitposition information."; 294 } 295 leaf resetbitmask { 296 type bit-string; 297 mandatory true; 298 description "The deleting bitmask of the forwarding item."; 299 } 300 leaf addbitmask { 301 type bit-string; 302 mandatory true; 303 description "The adding bitmask of the forwarding item."; 304 } 305 } 306 } 308 grouping te-adj-type { 309 description "The collection of all possible adjacency type."; 310 choice te-adj-type { 311 mandatory true; 312 case connected { 313 description "The type of adjacency is connected. Mostly connected interfaces."; 314 } 315 case routed { 316 description "The type of adjacency is routed. Mostly not connected interfaces."; 317 } 318 case local-decap { 319 description "Means that the packet should be decapsulated and forward out BIER domain."; 320 } 321 case ecmp { 322 description "There is more than one path in the adjacency with equal cost."; 323 } 324 case other { 325 description "Means that the packet should be discarded."; 326 } 327 description "The collection of all possible adjacency type."; 328 } 329 } 331 grouping te-adjID-type { 332 description "The collection of all possible adjacency type."; 333 choice te-adjID-type { 334 mandatory true; 335 case p2p { 336 description "Describes p2p adjacency."; 337 } 338 case bfer { 339 description "Describes bfer adjacency."; 340 } 341 case leaf-bfer { 342 description "Describes leaf-bfer adjacency. There is no next BFR that the packet should be forwarded."; 343 } 344 case lan { 345 description "Describes lan adjacency.."; 346 } 347 case spoke { 348 description "Describes spoke adjacency of hub-and-spoke."; 349 } 350 case ring-clockwise { 351 description "Describes clockwise adjacency in ring."; 352 } 353 case ring-counterclockwise { 354 description "Describes counterclockwise adjacency in ring."; 355 } 356 case ecmp { 357 description "Describes ecmp adjacency."; 358 } 359 case virtual-link { 360 description "Describes virtual adjacency between two indirect connect nodes."; 361 } 362 case other { 363 description "Describes other id type of adjacency."; 364 } 365 description "The collection of all possible adjacency type."; 366 } 367 } 369 typedef adjid { 370 type uint32; 371 description "The type for adjacency ID."; 372 } 374 typedef bit-string { 375 type uint16; 376 description "The bit mask of one bitstring."; 377 } 379 grouping te-adjID { 380 list adj-id { 381 key "adjID"; 382 description "This ID information of one adjacency."; 383 leaf adjID { 384 type adjid; 385 mandatory true; 386 description "The adjacency id."; 387 } 388 leaf adj-if { 389 /* type if:if-index; */ 390 type uint32; /* for compilation */ 391 mandatory true; 392 description "The corresponding interface of this adjacency."; 393 } 394 uses te-adjID-type; 395 } 396 description "This group presents adjacency ID information for BIER TE."; 397 } 399 grouping te-ecmp { 400 description "The ecmp information."; 401 list ecmp-path { 402 key "index"; 403 description "The index of the ecmp paths."; 404 leaf index { 405 type uint32; 406 mandatory true; 407 description "The ecmp index."; 408 } 409 list number { 410 key "number"; 411 description "The list of the ecmp paths."; 412 leaf number { 413 type uint16; 414 mandatory true; 415 description "The number of the ecmp paths."; 416 } 417 leaf out-if { 418 /* type if:if-index; */ 419 type uint32; /* for compilation */ 420 mandatory true; 421 description "The outgoing interface."; 422 } 423 } 424 } 425 } 427 grouping te-items { 428 description "The BIER TE forwarding items collection."; 429 uses te-adj-type; 430 leaf f-bm { 431 type bit-string; 432 mandatory true; 433 description "The bitmask of the forwarding item."; 434 } 435 leaf f-intf { 436 /* type if:if-index; */ 437 type uint32; /* for compilation */ 438 mandatory true; 439 description "The out interface of this forwarding item."; 440 } 441 leaf ecmp { 442 type boolean; 443 description "The capibility of ecmp paths."; 444 } 445 leaf ecmp-index { 446 type uint16; 447 description "The index of ecmp path."; 448 } 449 leaf frr { 450 type boolean; 451 description "The capibility of fast re-route."; 452 } 453 } 455 grouping te-fwd-item { 456 list te-si { 457 key "si"; 458 description "The forwarding items of one set identifier."; 459 leaf si{ 460 type bier:si; 461 mandatory true; 462 description "The set identifier of this forwarding item."; 463 } 464 leaf ft-label { 465 type rt-types:mpls-label; 466 description "The label of forwarding table."; 467 } 468 list te-f-index { 469 key "te-f-index"; 470 description "The forwarding information of one BIER TE item."; 471 leaf te-f-index { 472 type bit-string; 473 mandatory true; 474 description "The bit index of BIER TE forwarding item."; 475 } 476 uses te-items; 477 } 478 } 479 description "The forwarding items in one set identifier."; 480 } 482 grouping te-info { 483 description "The BIER TE forwarding information."; 484 list te-subdomain { 485 key "subdomain-id"; 486 description "The forwarding items of one sub-domain."; 487 leaf subdomain-id { 488 type bier:sub-domain-id; 489 description "The sub-domain-id of this sub-domain."; 490 } 491 uses te-adjID; 493 list te-bsl { 494 key "fwd-bsl"; 495 description "The forwarding items in one bitstringlength."; 496 leaf fwd-bsl { 497 type uint16; 498 description "The value of bitstringlength."; 499 } 500 uses te-fwd-item; 501 } 502 uses te-ecmp; 503 uses te-frr { 504 if-feature bier-te-frr; 505 } 506 } 507 } 509 /* 510 * Configuration data nodes 511 */ 512 augment "/rt:routing" { 513 description "The BIER TE information."; 514 container bier-te-config { 515 description "The BIER TE information container."; 516 uses te-info; 517 } 518 } 520 /* 521 * Operational state data nodes 522 */ 523 augment "/rt:routing-state" { 524 description "BIER TE state information."; 525 container bier-te-state { 526 description "The BIER TE information in nodes."; 527 uses te-info; 528 } 529 } 531 /* 532 * Notifications 533 */ 534 notification bier-te-notification { 535 description 536 "This notification is sent when a condition changes in BIER TE."; 537 list adjID-is-zero { 538 key "if-index"; 539 description "The adjacency id is zero."; 540 leaf if-index { 541 type uint32; 542 description "The adjacency id of this interface is zero."; 543 } 544 uses te-adjID-type; 545 } 546 } 547 } 548 550 6. Normative References 552 [I-D.eckert-bier-te-arch] 553 Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Traffic 554 Engineering for Bit Index Explicit Replication BIER-TE", 555 draft-eckert-bier-te-arch-04 (work in progress), July 556 2016. 558 [I-D.eckert-bier-te-frr] 559 Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Fast 560 ReRoute (FRR) Extensions for BIER-TE", draft-eckert-bier- 561 te-frr-00 (work in progress), July 2016. 563 [I-D.ietf-bier-architecture] 564 Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and 565 S. Aldrin, "Multicast using Bit Index Explicit 566 Replication", draft-ietf-bier-architecture-06 (work in 567 progress), April 2017. 569 [I-D.ietf-bier-bier-yang] 570 Chen, R., hu, f., Zhang, Z., dai.xianxian@zte.com.cn, d., 571 and M. Sivakumar, "YANG Data Model for BIER Protocol", 572 draft-ietf-bier-bier-yang-01 (work in progress), January 573 2017. 575 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 576 the Network Configuration Protocol (NETCONF)", RFC 6020, 577 DOI 10.17487/RFC6020, October 2010, 578 . 580 [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG 581 Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 582 January 2011, . 584 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 585 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 586 . 588 Authors' Addresses 590 Zheng(Sandy) Zhang 591 ZTE Corporation 592 No. 50 Software Ave, Yuhuatai Distinct 593 Nanjing 594 China 596 Email: zhang.zheng@zte.com.cn 598 Cui(Linda) Wang 599 ZTE Corporation 600 No. 50 Software Ave, Yuhuatai Distinct 601 Nanjing 602 China 604 Email: lindawangjoy@gmail.com 606 Ran Chen 607 ZTE Corporation 608 No. 50 Software Ave, Yuhuatai Distinct 609 Nanjing 610 China 612 Email: chen.ran@zte.com.cn 613 Fangwei Hu 614 ZTE Corporation 615 No.889 Bibo Rd 616 Shanghai 617 China 619 Email: hu.fangwei@zte.com.cn 621 Mahesh Sivakumar 622 Cisco Systems, Inc. 623 510 McCarthy Blvd 624 Milpitas,California 95035 625 United States 627 Email: masivaku@cisco.com