idnits 2.17.1 draft-zhang-bier-te-yang-04.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 26 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 84 has weird spacing: '...main-id uin...' == Line 87 has weird spacing: '... adj-if uin...' == Line 100 has weird spacing: '...fwd-bsl uin...' == Line 105 has weird spacing: '...f-index bit...' == Line 120 has weird spacing: '... number uin...' == (4 more instances...) -- The document date (October 29, 2017) is 2363 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 504, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-bier-architecture' is defined on line 509, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 521, but no explicit reference was found in the text == Unused Reference: 'RFC6087' is defined on line 526, but no explicit reference was found in the text == Unused Reference: 'RFC7223' is defined on line 530, but no explicit reference was found in the text == Outdated reference: A later version (-06) exists of draft-eckert-bier-te-arch-05 == Outdated reference: A later version (-03) exists of draft-eckert-bier-te-frr-02 ** 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-bier-yang-02 ** Obsolete normative reference: RFC 6087 (Obsoleted by RFC 8407) ** Obsolete normative reference: RFC 7223 (Obsoleted by RFC 8343) Summary: 6 errors (**), 0 flaws (~~), 15 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: May 2, 2018 Fangwei. Hu 6 ZTE Corporation 7 Mahesh. Sivakumar 8 Cisco Systems, Inc. 9 Huanan. Chen 10 China Telecom 11 October 29, 2017 13 BIER TE YANG module 14 draft-zhang-bier-te-yang-04 16 Abstract 18 This document defines a YANG data model for BIER TE configuration and 19 operation. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on May 2, 2018. 38 Copyright Notice 40 Copyright (c) 2017 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 2 57 3. BIER-TE configuration . . . . . . . . . . . . . . . . . . . . 4 58 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 4 59 5. BIER TE YANG module . . . . . . . . . . . . . . . . . . . . . 4 60 6. Normative References . . . . . . . . . . . . . . . . . . . . 11 61 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 63 1. Introduction 65 [I-D.eckert-bier-te-arch] introduces an architecture for BIER-TE: 66 Traffic Engineering for Bit Index Explicit Replication (BIER). This 67 document defines a YANG data model for BIER TE. The content is in 68 keeping with the TE architecture draft. 70 2. Design of the Data Model 72 Instead of using respective sub-domain-id, si and bsl information 73 like in BIER yang draft [I-D.ietf-bier-bier-yang], this document 74 tries to group these sub-domain-id, si and bsl information in a new 75 bier-common grouping to simplify the reference. Later yang modules 76 may import the common grouping easily. Further, if this optimization 77 is recognized, then BIER yang draft [I-D.ietf-bier-bier-yang] will be 78 updated to group these sub-domain-id, si and bsl information as well. 80 module: ietf-bier-te 81 augment /rt:routing: 82 +--rw bier-te 83 +--rw te-subdomain* [subdomain-id] 84 +--rw subdomain-id uint16 85 +--rw adj-id* [adjID] 86 | +--rw adjID adjid 87 | +--rw adj-if uint32 88 | +--rw (te-adjID-type) 89 | +--:(p2p) 90 | +--:(bfer) 91 | +--:(leaf-bfer) 92 | +--:(lan) 93 | +--:(spoke) 94 | +--:(ring-clockwise) 95 | +--:(ring-counterclockwise) 96 | +--:(ecmp) 97 | +--:(virtual-link) 98 | +--:(other) 99 +--rw te-bsl* [fwd-bsl] 100 | +--rw fwd-bsl uint16 101 | +--rw te-si* [si] 102 | +--rw si uint16 103 | +--rw ft-label? rt-types:mpls-label 104 | +--rw te-f-index* [te-f-index] 105 | +--rw te-f-index bit-string 106 | +--rw (te-adj-type) 107 | | +--:(connected) 108 | | +--:(routed) 109 | | +--:(local-decap) 110 | | +--:(ecmp) 111 | | +--:(other) 112 | +--rw f-bm bit-string 113 | +--rw f-intf uint32 114 | +--rw ecmp? boolean 115 | +--rw ecmp-index? uint16 116 | +--rw frr? boolean 117 +--rw ecmp-path* [index] 118 | +--rw index uint32 119 | +--rw number* [number] 120 | +--rw number uint16 121 | +--rw out-if uint32 122 +--rw btaft* [adj-index] 123 +--rw adj-index uint32 124 +--rw bitposition bit-string 125 +--rw resetbitmask bit-string 126 +--rw addbitmask bit-string 128 notifications: 129 +---n bier-te-notification 130 +--ro adjID-is-zero* [if-index] 131 +--ro if-index 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) 144 3. BIER-TE configuration 146 The BIER-TE information is indexed by the sub-domain ID. Maybe there 147 are some global BIER-TE information, it should be added in later 148 version. 150 One interface can be used in different sub-domain, so the BIER TE 151 adjacency information is managed by BIER TE other than by interface. 153 Because the BIER-TE is controlled by controller now, the information 154 about IGP is not defined. If in the future the IGP is used to carry 155 the information about BIER-TE, the IGP extension will be added in 156 this document. 158 4. Notifications 160 If the adjacency id of one adjacency is set to zero, the value is 161 invalid. The notification should be sent to controller and network 162 manager. 164 5. BIER TE YANG module 166 file "ietf-bier-te.yang" 168 module ietf-bier-te { 170 namespace "urn:ietf:params:xml:ns:yang:ietf-bier-te"; 172 prefix bier-te; 174 import ietf-routing { 175 prefix "rt"; 176 } 178 import ietf-routing-types { 179 prefix "rt-types"; 180 } 182 organization " IETF BIER(Bit Indexed Explicit Replication ) Working Group"; 183 contact 184 "WG List: 185 WG Chair: Tony Przygienda 186 187 WG Chair: Greg Shepherd 188 190 Editor: Zheng Zhang 191 193 Editor: Cui Wang 194 195 Editor: Ran Chen 196 197 Editor: Fangwei Hu 198 199 Editor: Mahesh Sivakumar 200 201 "; 203 description 204 "This module contains a collection of YANG definitions for 205 managing BIER TE information."; 207 revision 2017-10-23 { 208 description 209 "."; 210 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 211 } 213 revision 2017-04-26 { 214 description 215 "Add label for combination of [SD, SI, BSL]."; 216 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 217 } 219 revision 2016-10-13 { 220 description 221 "Add reference of BIER common structure."; 222 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 223 } 225 revision 2016-03-01 { 226 description 227 "Initial version."; 228 reference "https://tools.ietf.org/html/draft-zhang-bier-te-yang"; 229 } 231 /* 232 * Features 233 */ 234 feature bier-te-frr { 235 description 236 "Support ECMP feature in BIER TE."; 237 } 239 grouping te-frr { 240 description "The TE fast reroute information."; 241 list btaft { 242 key "adj-index"; 243 description "The adjacency index of the frr paths."; 244 leaf adj-index { 245 type uint32; 246 mandatory true; 247 description "The frr adjacency index."; 248 } 249 leaf bitposition { 250 type bit-string; 251 mandatory true; 252 description "The bitposition information."; 253 } 254 leaf resetbitmask { 255 type bit-string; 256 mandatory true; 257 description "The deleting bitmask of the forwarding item."; 258 } 259 leaf addbitmask { 260 type bit-string; 261 mandatory true; 262 description "The adding bitmask of the forwarding item."; 263 } 264 } 265 } 267 grouping te-adj-type { 268 description "The collection of all possible adjacency type."; 269 choice te-adj-type { 270 mandatory true; 271 case connected { 272 description "The type of adjacency is connected. Mostly connected interfaces."; 273 } 274 case routed { 275 description "The type of adjacency is routed. Mostly not connected interfaces."; 276 } 277 case local-decap { 278 description "Means that the packet should be decapsulated and forward out BIER domain."; 279 } 280 case ecmp { 281 description "There is more than one path in the adjacency with equal cost."; 282 } 283 case other { 284 description "Means that the packet should be discarded."; 285 } 286 description "The collection of all possible adjacency type."; 287 } 288 } 289 grouping te-adjID-type { 290 description "The collection of all possible adjacency type."; 291 choice te-adjID-type { 292 mandatory true; 293 case p2p { 294 description "Describes p2p adjacency."; 295 } 296 case bfer { 297 description "Describes bfer adjacency."; 298 } 299 case leaf-bfer { 300 description "Describes leaf-bfer adjacency. There is no next BFR that the packet should be forwarded."; 301 } 302 case lan { 303 description "Describes lan adjacency.."; 304 } 305 case spoke { 306 description "Describes spoke adjacency of hub-and-spoke."; 307 } 308 case ring-clockwise { 309 description "Describes clockwise adjacency in ring."; 310 } 311 case ring-counterclockwise { 312 description "Describes counterclockwise adjacency in ring."; 313 } 314 case ecmp { 315 description "Describes ecmp adjacency."; 316 } 317 case virtual-link { 318 description "Describes virtual adjacency between two indirect connect nodes."; 319 } 320 case other { 321 description "Describes other id type of adjacency."; 322 } 323 description "The collection of all possible adjacency type."; 324 } 325 } 327 typedef adjid { 328 type uint32; 329 description "The type for adjacency ID."; 330 } 332 typedef bit-string { 333 type uint16; 334 description "The bit mask of one bitstring."; 335 } 336 grouping te-adjID { 337 list adj-id { 338 key "adjID"; 339 description "This ID information of one adjacency."; 340 leaf adjID { 341 type adjid; 342 mandatory true; 343 description "The adjacency id."; 344 } 345 leaf adj-if { 346 /* type if:if-index; */ 347 type uint32; /* for compilation */ 348 mandatory true; 349 description "The corresponding interface of this adjacency."; 350 } 351 uses te-adjID-type; 352 } 353 description "This group presents adjacency ID information for BIER TE."; 354 } 356 grouping te-ecmp { 357 description "The ecmp information."; 358 list ecmp-path { 359 key "index"; 360 description "The index of the ecmp paths."; 361 leaf index { 362 type uint32; 363 mandatory true; 364 description "The ecmp index."; 365 } 366 list number { 367 key "number"; 368 description "The list of the ecmp paths."; 369 leaf number { 370 type uint16; 371 mandatory true; 372 description "The number of the ecmp paths."; 373 } 374 leaf out-if { 375 /* type if:if-index; */ 376 type uint32; /* for compilation */ 377 mandatory true; 378 description "The outgoing interface."; 379 } 380 } 381 } 382 } 383 grouping te-items { 384 description "The BIER TE forwarding items collection."; 385 uses te-adj-type; 386 leaf f-bm { 387 type bit-string; 388 mandatory true; 389 description "The bitmask of the forwarding item."; 390 } 391 leaf f-intf { 392 /* type if:if-index; */ 393 type uint32; /* for compilation */ 394 mandatory true; 395 description "The out interface of this forwarding item."; 396 } 397 leaf ecmp { 398 type boolean; 399 description "The capibility of ecmp paths."; 400 } 401 leaf ecmp-index { 402 type uint16; 403 description "The index of ecmp path."; 404 } 405 leaf frr { 406 type boolean; 407 description "The capibility of fast re-route."; 408 } 409 } 411 grouping te-fwd-item { 412 list te-si { 413 key "si"; 414 description "The forwarding items of one set identifier."; 415 leaf si{ 416 type uint16; 417 mandatory true; 418 description "The set identifier of this forwarding item."; 419 } 420 leaf ft-label { 421 type rt-types:mpls-label; 422 description "The label of forwarding table."; 423 } 424 list te-f-index { 425 key "te-f-index"; 426 description "The forwarding information of one BIER TE item."; 427 leaf te-f-index { 428 type bit-string; 429 mandatory true; 430 description "The bit index of BIER TE forwarding item."; 432 } 433 uses te-items; 434 } 435 } 436 description "The forwarding items in one set identifier."; 437 } 439 grouping te-info { 440 description "The BIER TE forwarding information."; 441 list te-subdomain { 442 key "subdomain-id"; 443 description "The forwarding items of one sub-domain."; 444 leaf subdomain-id { 445 type uint16; 446 description "The sub-domain-id of this sub-domain."; 447 } 448 uses te-adjID; 450 list te-bsl { 451 key "fwd-bsl"; 452 description "The forwarding items in one bitstringlength."; 453 leaf fwd-bsl { 454 type uint16; 455 description "The value of bitstringlength."; 456 } 457 uses te-fwd-item; 458 } 459 uses te-ecmp; 460 uses te-frr { 461 if-feature bier-te-frr; 462 } 463 } 464 } 466 /* 467 * data nodes 468 */ 469 augment "/rt:routing" { 470 description "The BIER TE information."; 471 container bier-te { 472 description "The BIER TE information container."; 473 uses te-info; 474 } 475 } 477 /* 478 * Notifications 479 */ 480 notification bier-te-notification { 481 description 482 "This notification is sent when a condition changes in BIER TE."; 483 list adjID-is-zero { 484 key "if-index"; 485 description "The adjacency id is zero."; 486 leaf if-index { 487 type uint32; 488 description "The adjacency id of this interface is zero."; 489 } 490 uses te-adjID-type; 491 } 492 } 493 } 494 496 6. Normative References 498 [I-D.eckert-bier-te-arch] 499 Eckert, T., Cauchie, G., Braun, W., and M. Menth, "Traffic 500 Engineering for Bit Index Explicit Replication BIER-TE", 501 draft-eckert-bier-te-arch-05 (work in progress), June 502 2017. 504 [I-D.eckert-bier-te-frr] 505 Eckert, T., Cauchie, G., Braun, W., and M. Menth, 506 "Protection Methods for BIER-TE", draft-eckert-bier-te- 507 frr-02 (work in progress), June 2017. 509 [I-D.ietf-bier-architecture] 510 Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and 511 S. Aldrin, "Multicast using Bit Index Explicit 512 Replication", draft-ietf-bier-architecture-08 (work in 513 progress), September 2017. 515 [I-D.ietf-bier-bier-yang] 516 Chen, R., hu, f., Zhang, Z., dai.xianxian@zte.com.cn, d., 517 and M. Sivakumar, "YANG Data Model for BIER Protocol", 518 draft-ietf-bier-bier-yang-02 (work in progress), August 519 2017. 521 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 522 the Network Configuration Protocol (NETCONF)", RFC 6020, 523 DOI 10.17487/RFC6020, October 2010, 524 . 526 [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG 527 Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 528 January 2011, . 530 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 531 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 532 . 534 Authors' Addresses 536 Zheng(Sandy) Zhang 537 ZTE Corporation 538 No. 50 Software Ave, Yuhuatai Distinct 539 Nanjing 540 China 542 Email: zhang.zheng@zte.com.cn 544 Cui(Linda) Wang 545 ZTE Corporation 547 Email: lindawangjoy@gmail.com 549 Ran Chen 550 ZTE Corporation 551 No. 50 Software Ave, Yuhuatai Distinct 552 Nanjing 553 China 555 Email: chen.ran@zte.com.cn 557 Fangwei Hu 558 ZTE Corporation 559 No.889 Bibo Rd 560 Shanghai 561 China 563 Email: hu.fangwei@zte.com.cn 564 Mahesh Sivakumar 565 Cisco Systems, Inc. 566 510 McCarthy Blvd 567 Milpitas,California 95035 568 United States 570 Email: masivaku@cisco.com 572 Huanan Chen 573 China Telecom 574 109 West Zhongshan Ave 575 Guangzhou, Guangdong 510630 576 China 578 Phone: +86 20 38639346 579 Email: chenhuanan@gsta.com