idnits 2.17.1 draft-zhang-bier-te-yang-02.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 24 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 102 has weird spacing: '...f-index bit...' == Line 117 has weird spacing: '... number uin...' == (11 more instances...) -- The document date (October 26, 2016) is 2739 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 541, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-bier-architecture' is defined on line 546, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 558, but no explicit reference was found in the text == Unused Reference: 'RFC6087' is defined on line 563, but no explicit reference was found in the text == Unused Reference: 'RFC7223' is defined on line 567, 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-04 == Outdated reference: A later version (-08) exists of draft-ietf-bier-bier-yang-00 ** 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: April 29, 2017 Fangwei. Hu 6 ZTE Corporation 7 Mahesh. Sivakumar 8 Cisco Systems, Inc. 9 October 26, 2016 11 BIER TE YANG module 12 draft-zhang-bier-te-yang-02 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 April 29, 2017. 36 Copyright Notice 38 Copyright (c) 2016 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 . . . . . . . . . . . . . . . . . . . . 4 56 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 5 57 5. BIER TE YANG module . . . . . . . . . . . . . . . . . . . . . 5 58 6. Normative References . . . . . . . . . . . . . . . . . . . . 12 59 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 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 te-f-index* [te-f-index] 102 | +--rw te-f-index bit-string 103 | +--rw (te-adj-type) 104 | | +--:(connected) 105 | | +--:(routed) 106 | | +--:(local-decap) 107 | | +--:(ecmp) 108 | | +--:(other) 109 | +--rw f-bm bit-string 110 | +--rw f-intf uint32 111 | +--rw ecmp? boolean 112 | +--rw ecmp-index? uint16 113 | +--rw frr? boolean 114 +--rw ecmp-path* [index] 115 | +--rw index uint32 116 | +--rw number* [number] 117 | +--rw number uint16 118 | +--rw out-if uint32 119 +--rw btaft* [adj-index] 120 +--rw adj-index uint32 121 +--rw bitposition bit-string 122 +--rw resetbitmask bit-string 123 +--rw addbitmask bit-string 124 augment /rt:routing-state: 125 +--ro bier-te-state 126 +--ro te-subdomain* [subdomain-id] 127 +--ro subdomain-id bier:sub-domain-id 128 +--ro adj-id* [adjID] 129 | +--ro adjID adjid 130 | +--ro adj-if uint32 131 | +--ro (te-adjID-type) 132 | +--:(p2p) 133 | +--:(bfer) 134 | +--:(leaf-bfer) 135 | +--:(lan) 136 | +--:(spoke) 137 | +--:(ring-clockwise) 138 | +--:(ring-counterclockwise) 139 | +--:(ecmp) 140 | +--:(virtual-link) 141 | +--:(other) 142 +--ro te-bsl* [fwd-bsl] 143 | +--ro fwd-bsl uint16 144 | +--ro te-si* [si] 145 | +--ro si bier:si 146 | +--ro te-f-index* [te-f-index] 147 | +--ro te-f-index bit-string 148 | +--ro (te-adj-type) 149 | | +--:(connected) 150 | | +--:(routed) 151 | | +--:(local-decap) 152 | | +--:(ecmp) 153 | | +--:(other) 154 | +--ro f-bm bit-string 155 | +--ro f-intf uint32 156 | +--ro ecmp? boolean 157 | +--ro ecmp-index? uint16 158 | +--ro frr? boolean 159 +--ro ecmp-path* [index] 160 | +--ro index uint32 161 | +--ro number* [number] 162 | +--ro number uint16 163 | +--ro out-if uint32 164 +--ro btaft* [adj-index] 165 +--ro adj-index uint32 166 +--ro bitposition bit-string 167 +--ro resetbitmask bit-string 168 +--ro addbitmask bit-string 169 notifications: 170 +---n bier-te-notification 171 +--ro adjID-is-zero* [if-index] 172 +--ro if-index uint32 173 +--ro (te-adjID-type) 174 +--:(p2p) 175 +--:(bfer) 176 +--:(leaf-bfer) 177 +--:(lan) 178 +--:(spoke) 179 +--:(ring-clockwise) 180 +--:(ring-counterclockwise) 181 +--:(ecmp) 182 +--:(virtual-link) 183 +--:(other) 185 3. BIER-TE configuration 187 The BIER-TE information is indexed by the sub-domain ID. Maybe there 188 are some global BIER-TE information, it should be added in later 189 version. 191 One interface can be used in different sub-domain, so the BIER TE 192 adjacency information is managed by BIER TE other than by interface. 194 Because the BIER-TE is controlled by controller now, the information 195 about IGP is not defined. If in the future the IGP is used to carry 196 the information about BIER-TE, the IGP extension will be added in 197 this document. 199 4. Notifications 201 If the adjacency id of one adjacency is set to zero, the value is 202 invalid. The notification should be sent to controller and network 203 manager. 205 5. BIER TE YANG module 207 file "ietf-bier-te.yang" 209 module ietf-bier-te { 211 namespace "urn:ietf:params:xml:ns:yang:ietf-bier-te"; 213 prefix bier-te; 215 import ietf-routing { 216 prefix "rt"; 217 } 219 import ietf-bier { 220 prefix "bier"; 221 } 223 organization " IETF BIER(Bit Indexed Explicit Replication ) Working Group"; 224 contact 225 "WG List: 226 WG Chair: Tony Przygienda 227 228 WG Chair: Greg Shepherd 229 231 Editor: Zheng Zhang 232 233 Editor: Cui Wang 234 235 Editor: Ran Chen 236 237 Editor: Fangwei Hu 238 240 "; 242 description 243 "This module contains a collection of YANG definitions for 244 managing BIER TE information."; 246 revision 2016-10-13 { 247 description 248 "Initial version."; 249 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 250 } 252 revision 2016-03-01 { 253 description 254 "Initial version."; 255 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 256 } 258 /* 259 * Features 260 */ 261 feature bier-te-frr { 262 description 263 "Support ECMP feature in BIER TE."; 264 } 266 grouping te-frr { 267 description "The TE fast reroute information."; 268 list btaft { 269 key "adj-index"; 270 description "The adjacency index of the frr paths."; 271 leaf adj-index { 272 type uint32; 273 mandatory true; 274 description "The frr adjacency index."; 275 } 276 leaf bitposition { 277 type bit-string; 278 mandatory true; 279 description "The bitposition information."; 280 } 281 leaf resetbitmask { 282 type bit-string; 283 mandatory true; 284 description "The deleting bitmask of the forwarding item."; 285 } 286 leaf addbitmask { 287 type bit-string; 288 mandatory true; 289 description "The adding bitmask of the forwarding item."; 290 } 291 } 292 } 294 grouping te-adj-type { 295 description "The collection of all possible adjacency type."; 296 choice te-adj-type { 297 mandatory true; 298 case connected { 299 description "The type of adjacency is connected. Mostly connected interfaces."; 300 } 301 case routed { 302 description "The type of adjacency is routed. Mostly not connected interfaces."; 303 } 304 case local-decap { 305 description "Means that the packet should be decapsulated and forward out BIER domain."; 306 } 307 case ecmp { 308 description "There is more than one path in the adjacency with equal cost."; 309 } 310 case other { 311 description "Means that the packet should be discarded."; 312 } 313 description "The collection of all possible adjacency type."; 314 } 315 } 317 grouping te-adjID-type { 318 description "The collection of all possible adjacency type."; 319 choice te-adjID-type { 320 mandatory true; 321 case p2p { 322 description "Describes p2p adjacency."; 323 } 324 case bfer { 325 description "Describes bfer adjacency."; 326 } 327 case leaf-bfer { 328 description "Describes leaf-bfer adjacency. There is no next BFR that the packet should be forwarded."; 329 } 330 case lan { 331 description "Describes lan adjacency.."; 332 } 333 case spoke { 334 description "Describes spoke adjacency of hub-and-spoke."; 335 } 336 case ring-clockwise { 337 description "Describes clockwise adjacency in ring."; 338 } 339 case ring-counterclockwise { 340 description "Describes counterclockwise adjacency in ring."; 341 } 342 case ecmp { 343 description "Describes ecmp adjacency."; 344 } 345 case virtual-link { 346 description "Describes virtual adjacency between two indirect connect nodes."; 347 } 348 case other { 349 description "Describes other id type of adjacency."; 350 } 351 description "The collection of all possible adjacency type."; 352 } 353 } 355 typedef adjid { 356 type uint32; 357 description "The type for adjacency ID."; 358 } 360 typedef bit-string { 361 type uint16; 362 description "The bit mask of one bitstring."; 363 } 365 grouping te-adjID { 366 list adj-id { 367 key "adjID"; 368 description "This ID information of one adjacency."; 369 leaf adjID { 370 type adjid; 371 mandatory true; 372 description "The adjacency id."; 373 } 374 leaf adj-if { 375 /* type if:if-index; */ 376 type uint32; /* for compilation */ 377 mandatory true; 378 description "The corresponding interface of this adjacency."; 379 } 380 uses te-adjID-type; 381 } 382 description "This group presents adjacency ID information for BIER TE."; 383 } 384 grouping te-ecmp { 385 description "The ecmp information."; 386 list ecmp-path { 387 key "index"; 388 description "The index of the ecmp paths."; 389 leaf index { 390 type uint32; 391 mandatory true; 392 description "The ecmp index."; 393 } 394 list number { 395 key "number"; 396 description "The list of the ecmp paths."; 397 leaf number { 398 type uint16; 399 mandatory true; 400 description "The number of the ecmp paths."; 401 } 402 leaf out-if { 403 /* type if:if-index; */ 404 type uint32; /* for compilation */ 405 mandatory true; 406 description "The outgoing interface."; 407 } 408 } 409 } 410 } 412 grouping te-items { 413 description "The BIER TE forwarding items collection."; 414 uses te-adj-type; 415 leaf f-bm { 416 type bit-string; 417 mandatory true; 418 description "The bitmask of the forwarding item."; 419 } 420 leaf f-intf { 421 /* type if:if-index; */ 422 type uint32; /* for compilation */ 423 mandatory true; 424 description "The out interface of this forwarding item."; 425 } 426 leaf ecmp { 427 type boolean; 428 description "The capibility of ecmp paths."; 429 } 430 leaf ecmp-index { 431 type uint16; 432 description "The index of ecmp path."; 433 } 434 leaf frr { 435 type boolean; 436 description "The capibility of fast re-route."; 437 } 438 } 440 grouping te-fwd-item { 441 list te-si { 442 key "si"; 443 description "The forwarding items of one set identifier."; 444 leaf si{ 445 type bier:si; 446 mandatory true; 447 description "The set identifier of this forwarding item."; 448 } 449 list te-f-index { 450 key "te-f-index"; 451 description "The forwarding information of one BIER TE item."; 452 leaf te-f-index { 453 type bit-string; 454 mandatory true; 455 description "The bit index of BIER TE forwarding item."; 456 } 457 uses te-items; 458 } 459 } 460 description "The forwarding items in one set identifier."; 461 } 463 grouping te-info { 464 description "The BIER TE forwarding information."; 465 list te-subdomain { 466 key "subdomain-id"; 467 description "The forwarding items of one sub-domain."; 468 leaf subdomain-id { 469 type bier:sub-domain-id; 470 description "The sub-domain-id of this sub-domain."; 471 } 472 uses te-adjID; 474 list te-bsl { 475 key "fwd-bsl"; 476 description "The forwarding items in one bitstringlength."; 477 leaf fwd-bsl { 478 type uint16; 479 description "The value of bitstringlength."; 481 } 482 uses te-fwd-item; 483 } 484 uses te-ecmp; 485 uses te-frr { 486 if-feature bier-te-frr; 487 } 488 } 489 } 491 /* 492 * Configuration data nodes 493 */ 494 augment "/rt:routing" { 495 description "The BIER TE information."; 496 container bier-te-config { 497 description "The BIER TE information container."; 498 uses te-info; 499 } 500 } 502 /* 503 * Operational state data nodes 504 */ 505 augment "/rt:routing-state" { 506 description "BIER TE state information."; 507 container bier-te-state { 508 description "The BIER TE information in nodes."; 509 uses te-info; 510 } 511 } 513 /* 514 * Notifications 515 */ 516 notification bier-te-notification { 517 description 518 "This notification is sent when a condition changes in BIER TE."; 519 list adjID-is-zero { 520 key "if-index"; 521 description "The adjacency id is zero."; 522 leaf if-index { 523 type uint32; 524 description "The adjacency id of this interface is zero."; 525 } 526 uses te-adjID-type; 527 } 528 } 530 } 531 533 6. Normative References 535 [I-D.eckert-bier-te-arch] 536 Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Traffic 537 Engineering for Bit Index Explicit Replication BIER-TE", 538 draft-eckert-bier-te-arch-04 (work in progress), July 539 2016. 541 [I-D.eckert-bier-te-frr] 542 Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Fast 543 ReRoute (FRR) Extensions for BIER-TE", draft-eckert-bier- 544 te-frr-00 (work in progress), July 2016. 546 [I-D.ietf-bier-architecture] 547 Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and 548 S. Aldrin, "Multicast using Bit Index Explicit 549 Replication", draft-ietf-bier-architecture-04 (work in 550 progress), July 2016. 552 [I-D.ietf-bier-bier-yang] 553 Chen, R., hu, f., Zhang, Z., dai.xianxian@zte.com.cn, d., 554 and M. Sivakumar, "YANG Data Model for BIER Protocol", 555 draft-ietf-bier-bier-yang-00 (work in progress), July 556 2016. 558 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 559 the Network Configuration Protocol (NETCONF)", RFC 6020, 560 DOI 10.17487/RFC6020, October 2010, 561 . 563 [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG 564 Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 565 January 2011, . 567 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 568 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 569 . 571 Authors' Addresses 572 Zheng(Sandy) Zhang 573 ZTE Corporation 574 No. 50 Software Ave, Yuhuatai Distinct 575 Nanjing 576 China 578 Email: zhang.zheng@zte.com.cn 580 Cui(Linda) Wang 581 ZTE Corporation 582 No. 50 Software Ave, Yuhuatai Distinct 583 Nanjing 584 China 586 Email: wang.cui1@zte.com.cn 588 Ran Chen 589 ZTE Corporation 590 No. 50 Software Ave, Yuhuatai Distinct 591 Nanjing 592 China 594 Email: chen.ran@zte.com.cn 596 Fangwei Hu 597 ZTE Corporation 598 No.889 Bibo Rd 599 Shanghai 600 China 602 Email: hu.fangwei@zte.com.cn 604 Mahesh Sivakumar 605 Cisco Systems, Inc. 606 510 McCarthy Blvd 607 Milpitas,California 95035 608 United States 610 Email: masivaku@cisco.com