idnits 2.17.1 draft-jiang-ccamp-flexe-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 1, 2019) is 1881 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) -- Possible downref: Non-RFC (?) normative reference: ref. 'FLEXE' Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Working Group Y. Jiang 2 Internet-Draft X. He 3 Intended status: Standards Track Huawei 4 W. Cheng 5 China Mobile 6 Expires: September 2019 March 1, 2019 8 YANG Data Model for FlexE Interface Management 9 draft-jiang-ccamp-flexe-yang-00 11 Abstract 13 This document defines a YANG data model for the configuration of 14 FlexE 2.0 interface, and its FlexE clients. The YANG module in this 15 document conforms to the Network Management Datastore Architecture 16 (NMDA). 18 Status of this Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six 29 months and may be updated, replaced, or obsoleted by other 30 documents at any time. It is inappropriate to use Internet-Drafts 31 as reference material or to cite them other than as "work in 32 progress." 34 This Internet-Draft will expire on September 1, 2019. 36 Copyright Notice 38 Copyright (c) 2019 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 46 respect to this document. Code Components extracted from this 47 document must include Simplified BSD License text as described in 48 Section 4.e of the Trust Legal Provisions and are provided without 49 warranty as described in the Simplified BSD License. 51 Table of Contents 53 1. Introduction .............................................. 2 54 1.1. Conventions used in this document ...................... 3 55 1.2. Terminology ............................................ 3 56 2. YANG model hierarchy for FlexE interface .................. 4 57 3. YANG Module for FlexE interface ........................... 6 58 4. Security Considerations .................................. 12 59 5. IANA Considerations ...................................... 13 60 6. References ............................................... 13 61 6.1. Normative References .................................. 13 62 6.2. Informative References ................................ 14 63 7. Acknowledgments .......................................... 14 65 1. Introduction 67 The Flex Ethernet (FlexE) 2.0 Implementation Agreement [FLEXE] 68 defined by the OIF provides the support of a variety of Ethernet 69 MAC rates that may or may not correspond to any existing Ethernet 70 PHY rate. This includes MAC rates that are both greater than 71 (through bonding) and less than (through sub-rate and 72 channelization) the Ethernet PHY rates used to carry FlexE. FlexE 73 2.0 further supports the bonding of 200GBASE-R PHYs or the bonding 74 of 400GBASE-R PHYs. 76 In the FlexE, multiple Ethernet PHYs (each PHY can further consist 77 of one or more FlexE Instances) are bonded into a FlexE Group, and 78 the total capacity of the FlexE Group is represented as a 79 collection of slots (e.g., each slot has a granularity of 5Gbps or 80 25Gbps). Based on their bandwidth needs, FlexE Clients are each 81 mapped into one or more slots. The FlexE mechanism operates using a 82 calendar consisting of these slots. 84 This calendar is partitioned into sub-calendars for each FlexE 85 instance. For example, the calendar for a FlexE Group composed of n 86 100G PHYs is partitioned into 20n slots (each representing 5Gbps of 87 bandwidth when the slot granularity is 5Gbps). 89 This document defines a YANG data model for the configuration of a 90 Flex Ethernet interface (i.e., FlexE Group). The data model is 91 augmented based on the generic interfaces data model as defined in 92 [RFC8343], the FlexE attributes are based on the FlexE 2.0 93 Implementation Agreement as specified in [FLEXE]. With the help of 94 this YANG module, the FlexE Groups can be managed just as network 95 interfaces on a network device (e.g., a router or bridge). 97 The YANG module in this document conforms to the Network Management 98 Datastore Architecture (NMDA) [RFC8342]. 100 1.1. Conventions used in this document 102 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 103 NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", 104 "MAY", and "OPTIONAL" in this document are to be interpreted as 105 described in BCP 14 [RFC2119] [RFC8174] when, and only when, they 106 appear in all capitals, as shown here. 108 1.2. Terminology 110 Most terminologies used in this document are extracted from [FLEXE]. 112 FlexE: Flex Ethernet 114 FlexE Client: An Ethernet flow based on a MAC data rate that may or 115 may not correspond to any Ethernet PHY rate. 117 FlexE Group: A FlexE Group is composed of from 1 to n Ethernet PHYs. 119 FlexE Instance: A FlexE Instance is a unit of information 120 consisting of 100G of capacity able to carry FlexE Client data, 121 together with its associated overhead. 123 Ethernet PHY: an entity representing Ethernet Physical Coding 124 Sublayer (PCS), Physical Media Attachment (PMA), and Physical Media 125 Dependent (PMD) layers. Each PHY is consisted of one or more FlexE 126 Instance (e.g., a 400GBASE-R PHY has four FlexE Instances) 128 FlexE Calendar: The total capacity of a FlexE Group is represented 129 as a collection of slots. The calendar for a FlexE Group composed 130 of n 100G PHYs is represented as an array of 20n slots (each 131 representing 5Gbps of bandwidth). This calendar is partitioned 132 into sub-calendars, e.g., a sub-calendar with 20 slots per 100G PHY. 134 2. YANG model hierarchy for FlexE interface 136 This section describes the hierarchy of the YANG module for FlexE 137 interface management. 139 Configuration and status of FlexE interface information include: 141 - flexe-group specifies a FlexE group consisting of multiple PHYs. 143 - flexe-client-list specifies a list of FlexE client, each client 144 is mapped to some slots in this FlexE group. flexe-client-status 145 indicates whether there is any fault in any mapped slot for this 146 client. 148 The readers are assumed to be familiar with FlexE 2.0, as all FlexE 149 terminologies are described in details in [FLEXE]. 151 In order to simplify the YANG module of the FlexE interface and to 152 follow the YANG style of terminology, neither sub-calendar nor 153 calendar in FlexE are modelled explicitly. However, a sub-calendar 154 is represented by a calendar-slot-list per instance, and calendar 155 is actually a conglomerate of all the slots in calendar slot lists 156 for all FlexE instances in all FlexE PHYs of this FlexE Group. 158 A simplified YANG tree diagram [RFC8340] representing the data 159 model is typically used by YANG modules. This document uses the 160 same tree diagram syntax as described in [RFC8340]. 162 module: ietf-flexe 163 augment /if:interfaces/if:interface: 164 +--rw flexe-group 165 +--rw group-number? uint32 166 +--rw slot-granularity? slot-granularity-enumeration 167 +--rw flexe-phy-type? flexe-phy-enumeration 168 +--rw flexe-calendar-inuse? calendar-enumeration 169 +--rw flexe-phy-list* [phy-number] 170 | +--rw phy-number uint8 171 | +--rw flexe-inst-list* [instance-number] 172 | +--rw instance-number uint8 173 | +--rw calendar-slot-list* [slot-id] 174 | +--rw slot-id uint8 175 | +--rw flexe-slot-status? slot-status-enumeration 176 +--rw flexe-client-list* [client-id] 177 +--rw client-id uint16 178 +--rw group-number? uint32 179 +--rw mapped-slot-list* [mapped-slot-id] 180 | +--rw mapped-slot-id uint8 181 | +--rw mapped-phy-number? uint8 182 | +--rw mapped-inst-number? uint8 183 +--ro flexe-client-status? uint8 185 3. YANG Module for FlexE interface 187 This module imports typedef "interface-ref" from [RFC8343]. 189 file "ietf-flexe@2019-02-25.yang" 190 module ietf-flexe { 191 yang-version 1.1; 192 namespace "urn:ietf:params:xml:ns:yang:ietf-flexe"; 193 prefix "flexe"; 195 import iana-if-type { 196 prefix ianaift; 197 } 198 import ietf-interfaces { 199 prefix if; 200 reference 201 "RFC8343: A YANG Data Model for Interface Management"; 202 } 204 organization "IETF CCAMP Working Group"; 205 contact 206 "WG Web: http://tools.ietf.org/wg/ccamp/ 207 WG List: 208 Author: Yuanlong Jiang 209 210 Author: Xiang He 211 212 Author: Weiqiang Cheng 213 "; 214 description 215 "This YANG module defines a data model for the configuration 216 of FlexE interface."; 218 revision "2019-02-25" { 219 description "Initial version"; 220 reference 221 "draft-jiang-ccamp-flexe-yang-00: YANG Data Model for FlexE 222 Interface Management "; 223 } 225 typedef slot-granularity-enumeration { 226 type enumeration { 227 enum slot-5g { 228 value 1; 229 description 230 "5Gbps per slot."; 231 } 232 enum slot-25g { 233 value 2; 234 description 235 "25Gbps per slot."; 236 } 237 enum slot-others { 238 value 254; 239 description 240 "Other type of granularities per slot."; 241 } 242 } 243 description 244 "The bandwidth granularity of a slot. Options for this 245 enumeration are specified by the OIF standard, currently only 246 5G and 25G are defined."; 247 reference 248 "OIF Flex 2.0: Section 6.7"; 249 } 251 typedef slot-status-enumeration { 252 type enumeration { 253 enum unavailable { 254 value 1; 255 description 256 "slot is unavailable for FlexE client."; 257 } 258 enum unused { 259 value 2; 260 description 261 "slot is unused."; 262 } 263 enum used { 264 value 3; 265 description 266 "slot is used."; 267 } 268 } 269 description 270 "The status of a slot. Options for this enumeration are 271 specified by the OIF standard, 'used' is implicit."; 272 reference 273 "OIF Flex 2.0: Section 7.3.4 and Section 7.6"; 274 } 276 typedef flexe-phy-enumeration { 277 type enumeration { 278 enum 'PHY-100GBASE-R' { 279 value 1; 280 description 281 "100GBASE-R PHY, as defined in FlexE 1.0."; 282 } 283 enum 'PHY-200GBASE-R' { 284 value 2; 285 description 286 "200GBASE-R PHY, as defined in FlexE 2.0."; 287 } 288 enum 'PHY-400GBASE-R' { 289 value 3; 290 description 291 "400GBASE-R PHY, as defined in FlexE 2.0."; 292 } 293 } 295 description 296 "The current type of PHYs bonded in a FlexE Group. Values for 297 this enumeration are specified by the OIF standard."; 298 reference 299 "OIF Flex 2.0: Section 5.2.1.5"; 300 } 302 typedef calendar-enumeration { 303 type enumeration { 304 enum "CALENDAR-A" { 305 description "Using Calendar A"; 306 } 307 enum "CALENDAR-B" { 308 description "Using Calendar B"; 309 } 310 } 311 description 312 "FlexE Calendar in use, values for this enumeration 313 are specified by the OIF standard."; 314 reference 315 "OIF Flex 2.0: Section 6.7"; 316 } 318 augment "/if:interfaces/if:interface" { 320 when "if:type = 'ianaift:flexethernet'" { 321 description "Applies to Flex Ethernet interfaces"; 322 } 324 description 325 "Augment interface model with OIF Flex Ethernet interface 326 specific configuration nodes. Each FlexE interface 327 represents a FlexE Group configured in a device."; 329 container flexe-group { 330 description 331 "The struct containing all FlexE related configuration 332 (see OIF FlexE 2.0 Section 6.1). 333 Note that max number of FlexE groups in a network is 63."; 335 leaf group-number { 336 type uint32 { 337 range "1..1048574"; 338 } 339 description 340 "FlexE Group Number as defined in Section 7.3.6 of FlexE 341 2.0."; 342 } 344 leaf slot-granularity { 345 type slot-granularity-enumeration; 346 default "slot-5g"; 347 description 348 "The granularity of a slot in a FlexE group."; 349 } 351 leaf flexe-phy-type { 352 type flexe-phy-enumeration; 353 default "PHY-100GBASE-R"; 354 description 355 "The type of PHYs bonded in a FlexE Group."; 356 } 358 leaf flexe-calendar-inuse { 359 type calendar-enumeration; 360 default "CALENDAR-A"; 361 description 362 "The FlexE Calendar in use for a FlexE Group."; 363 } 365 list flexe-phy-list { 367 key "phy-number"; 368 description 369 "List of PHYs bonded in a FlexE group per FlexE 2.0."; 371 leaf phy-number { 372 type uint8 { 373 range "1 .. 254"; 374 } 375 description 376 "PHY number of a FlexE PHY. 377 If PHY type is 100GBASE-R, phy-number is [1,254]. 378 If PHY type is 200GBASE-R, phy-number is [1,126]. 379 If PHY type is 400GBASE-R, phy-number is [1, 62]."; 380 } 382 list flexe-inst-list { 383 key "instance-number"; 384 description 385 "List of instances in a FlexE PHY as defined in OIF. 386 Max elements of flexe-inst-list in a FlexE PHY: 387 If PHY type is 100GBASE-R, max-elements is 1. 388 If PHY type is 200GBASE-R, max-elements is 2. 389 If PHY type is 400GBASE-R, max-elements is 4."; 391 leaf instance-number { 392 type uint8; 393 description 394 "Instance number of an instance. Its range relies on 395 phy-number of the PHY wherein this instance belongs: 396 If PHY type is 100GBASE-R: 397 instance-number=phy-number 398 If PHY type is 200GBASE-R: 399 instance-number=2*phy-number+[0, 1] 400 If PHY type is 400GBASE-R: 401 instance-number=4*phy-number+[0, 3] "; 402 } 404 list calendar-slot-list { 405 key "slot-id"; 406 leaf slot-id { 407 type uint8; 408 description 409 "slot id of a slot in an instance."; 410 } 411 description 412 "List of slots in a FlexE instance, i.e., sub- 413 calendar per instance in FlexE 2.0. Max elements of 414 calendar-slot-list for a FlexE instance is: 415 If slot-granularity=slot-5g, max-elements is 20. 416 If slot-granularity=slot-25g, max-elements is 4."; 418 leaf flexe-slot-status { 419 type slot-status-enumeration; 420 default unused; 421 description 422 "Slot status of a slot in an instance."; 423 } 424 } //calendar-slot-list 425 } //flexe-inst-list 426 } //flexe-phy-list 428 list flexe-client-list { 430 key "client-id"; 431 description 432 "List of FlexE clients in a FlexE Group."; 433 leaf client-id { 434 type uint16; 435 description 436 "FlexE client ID as defined in FlexE IA."; 437 } 438 leaf group-number { 439 type uint32 { 440 range "1..1048574"; 441 } 442 description 443 "FlexE Group Number of the FlexE group for this client."; 444 } 446 list mapped-slot-list { 447 key "mapped-slot-id"; 448 description 449 "List of mapped-slots for a FlexE client."; 450 leaf mapped-slot-id { 451 type uint8; 452 description 453 "Slot id of a slot in an instance for a client."; 454 } 455 leaf mapped-phy-number { 456 type uint8; 457 description 458 "PHY number of a slot for a client."; 459 } 460 leaf mapped-inst-number { 461 type uint8; description 462 "Instance number of a slot for a client."; 463 } 465 } // mapped-slot-list 467 leaf flexe-client-status { 468 type uint8; 469 config false; 470 description 471 "Fault status for a client indicated in its mapped 472 slots. If any slot is in fault, the client status 473 is indicated in fault. Status includes: 474 OK, Local Fault, Remote Fault and etc."; 475 } 477 } //flexe-client-list 478 } //flexe-group 479 } //augment 480 } 482 484 4. Security Considerations 486 The YANG module specified in this document defines a schema for 487 data that is designed to be accessed via network management 488 protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The 489 lowest NETCONF layer is the secure transport layer, and the 490 mandatory-to-implement secure transport is Secure Shell (SSH) 491 [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory- 492 to-implement secure transport is TLS [RFC8446]. 494 The NETCONF access control model [RFC8341] provides the means to 495 restrict access for particular NETCONF or RESTCONF users to a 496 preconfigured subset of all available NETCONF or RESTCONF protocol 497 operations and content. 499 There are a number of data nodes defined in this YANG module are 500 writable, and the involved subtrees that are sensitive include: 502 /flexe/flexe-group-list specifies a list of FlexE Group, and each 503 group consists of multiple PHYs. 505 /flexe/flexe-client-list specifies a list of FlexE Client, and each 506 client is mapped to some slots in a FlexE Group. 508 Write operations (e.g., edit-config) to these data nodes without 509 proper protection can have a negative effect on network operations. 510 Specifically, an inappropriate configuration of them may cause an 511 interrupt of a client flow or even break down of a whole FlexE 512 interface. 514 5. IANA Considerations 516 It is proposed that IANA register the following URI in the "IETF 517 XML registry" [RFC3688]: 518 URI: urn:ietf:params:xml:ns:yang:ietf-flexe 519 Registrant Contact: The IESG 520 XML: N/A; the requested URI is an XML namespace 522 It is proposed that IANA register the following YANG module in the 523 "YANG Module Names" registry: 524 Name: ietf-flexe 525 Namespace: urn:ietf:params:xml:ns:yang:ietf-flexe 526 Prefix: flexe 527 Reference: this document 529 It is proposed that IANA register a new IANAifType TBD for 530 the interface type of Flex Ethernet in the "IANA Interface Type 531 YANG Module" [RFC7224]. 533 6. References 535 6.1. Normative References 537 [FLEXE] OIF, "Flex Ethernet 2.0 Implementation Agreement", FlexE 538 2.0, June 2018 540 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 541 Requirement Levels", BCP 14, RFC 2119, March 1997 543 [RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688, 544 January 2004 546 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and Bierman, 547 A., "Network Configuration Protocol (NETCONF)", RFC 6241, 548 June 2011 550 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 551 Shell (SSH)", RFC 6242, June 2011 553 [RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", RFC 554 7224, May 2014 556 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 557 Protocol", RFC 8040, January 2017 559 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 560 2119 Key Words", BCP 14, RFC 8174, May 2017 562 [RFC8341] Bierman, A. and Bjorklund, M., "Network Configuration 563 Protocol (NETCONF) Access Control Model", RFC 8341, March 564 2018 566 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 567 and R. Wilton, "Network Management Datastore Architecture 568 (NMDA)", RFC 8342, March 2018 570 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 571 Management", RFC 8343, March 2018 573 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) 574 Protocol Version 1.3", RFC 8446, August 2018 576 6.2. Informative References 578 [RFC8340] Bjorklund, M., and Berger, L., "YANG Tree Diagrams", RFC 579 8340, March 2018 581 7. Acknowledgments 583 The authors would like to thank Zitao Wang and Zhongjian Zhang for 584 discussions on YANG. 586 Authors' Addresses 588 Yuanlong Jiang 589 Huawei Technologies Co., Ltd. 590 Bantian, Longgang district 591 Shenzhen 518129, China 592 Email: jiangyuanlong@huawei.com 594 Xiang He 595 Huawei Technologies Co., Ltd. 596 Huawei Campus, No. 156 Beiqing Rd. 597 Beijing 100095 598 Email: hexiang9@huawei.com 600 Weiqiang Cheng 601 China Mobile 602 No.32 Xuanwumen West Street 603 Beijing 100053, China 604 Email: chengweiqiang@chinamobile.com