idnits 2.17.1 draft-xiaobn-ccamp-flexe-yang-mod-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 239 has weird spacing: '...slot-id uin...' == Line 241 has weird spacing: '...nst-num uin...' == Line 259 has weird spacing: '...nst-num uin...' == Line 263 has weird spacing: '...nst-num uin...' == Line 269 has weird spacing: '...nst-num uin...' == (2 more instances...) -- The document date (June 6, 2019) is 1783 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'G.709' is defined on line 936, but no explicit reference was found in the text == Unused Reference: 'G.798' is defined on line 940, but no explicit reference was found in the text == Unused Reference: 'G.8023' is defined on line 945, but no explicit reference was found in the text == Unused Reference: 'G.872' is defined on line 950, but no explicit reference was found in the text == Unused Reference: 'I-D.izh-ccamp-flexe-fwk' is defined on line 1005, but no explicit reference was found in the text == Unused Reference: 'RFC8174' is defined on line 1011, but no explicit reference was found in the text == Outdated reference: A later version (-07) exists of draft-izh-ccamp-flexe-fwk-05 Summary: 0 errors (**), 0 flaws (~~), 14 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force X. Niu, Ed. 3 Internet-Draft Q. Wang, Ed. 4 Intended status: Informational ZTE 5 Expires: December 8, 2019 Y. Xu 6 CAICT 7 S. Munagapati 8 Cisco 9 June 6, 2019 11 A YANG Data Model for Flex Ethernet(FlexE) 12 draft-xiaobn-ccamp-flexe-yang-mod-02 14 Abstract 16 Flex Ethernet(FlexE) implementation agreement have been published by 17 OIF. FlexE provides a generic mechanism for supporting a variety of 18 Ethernet MAC rates that may or may not correspond to any existing 19 Ethernet PHY rate. 21 This document describes a YANG data model for FlexE. It can be used 22 to manage and control devices supporting FlexE functions. 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at https://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on December 8, 2019. 41 Copyright Notice 43 Copyright (c) 2019 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (https://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 59 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 61 2.2. FlexE terminology used in this document . . . . . . . . . 3 62 3. FlexE Reference Configuration Model . . . . . . . . . . . . . 4 63 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4 64 4.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 4 65 5. YANG Data Model for FlexE (Tree Structure) . . . . . . . . . 5 66 6. FlexE types Module . . . . . . . . . . . . . . . . . . . . . 7 67 7. FlexE YANG Module . . . . . . . . . . . . . . . . . . . . . . 10 68 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 69 9. Authors (Full List) . . . . . . . . . . . . . . . . . . . . . 18 70 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 19 71 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 72 12. Security Considerations . . . . . . . . . . . . . . . . . . . 20 73 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 74 13.1. Normative References . . . . . . . . . . . . . . . . . . 20 75 13.2. Informative References . . . . . . . . . . . . . . . . . 22 76 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 78 1. Introduction 80 Flex Ethernet (FlexE) implementation agreement version 1.1 81 [OIFFLEXE1] and 2.0 [OIFFLEXE2] have been published by OIF. FlexE 82 provides a generic mechanism for supporting a variety of Ethernet MAC 83 rates that may or may not correspond to any existing Ethernet PHY 84 rate. This includes MAC rates that are both greater than (through 85 bonding) and less than (through sub-rate and channelization) the 86 Ethernet PHY rates used to carry FlexE. 88 This document defines a date model of FlexE, using YANG[RFC7950]. 89 This model mainly deals with the data model of the FlexE Group and 90 the FlexE client. It can be used by an application to configure and 91 modify the parameters of the FlexE Group and the FlexE client, and to 92 receive notifications, e.g. mismatch errors, from devices supporting 93 FlexE functions. 95 Requirements for the FlexE YANG model are considered. And FlexE YANG 96 tree and YANG files are given. 98 2. Terminology 100 A simplified graphical representation of the data model is used in 101 this document. The meaning of the symbols in the YANG data tree 102 presented later in this document is defined in [RFC8340]. They are 103 provided below for reference. 105 o Brackets "[" and "]" enclose list keys. 107 o Abbreviations before data node names: "rw" means configuration 108 (read-write) and "ro" state data (read-only). 110 o Symbols after data node names: "?" means an optional node, "!" 111 means a presence container, and "*" denotes a list and leaf-list. 113 o Parentheses enclose choice and case nodes, and case nodes are also 114 marked with a colon (":"). 116 o Ellipsis ("...") stands for contents of subtrees that are not 117 shown. 119 o Some of the key terms used in this document are listed as follow. 121 The terminology for describing YANG data models is found in 122 [RFC7950]. 124 2.1. Requirements Language 126 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 127 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 128 document are to be interpreted as described in RFC 2119 [RFC2119]. 130 2.2. FlexE terminology used in this document 132 a. CSG: Calendar Slot Granularity. It can be 5G or 25G. 134 b. FlexE Calendar: In FlexE IA v1.1, the total capacity of a FlexE 135 Group is represented as a collection of slots which have a 136 granularity of 5G. The calendar for a FlexE Group composed of n 137 100G PHYs is represented as an array of 20n slots (each 138 representing 5G of bandwidth). This calendar is partitioned into 139 sub-calendars, with 20 slots per 100G PHY. Each FlexE client is 140 mapped into one or more calendar slots (based on the bandwidth 141 the FlexE client flow will need). In FlexE IA v2.0[OIFFLEXE2], 142 the total capacity of a FlexE Group is represented as a 143 collection of slots which may have a granularity of 5G or 25G. 144 The calendar for a FlexE Group composed of n 100G FlexE instances 145 from m 100G/200G/400G PHYs is represented as an array of 20n 146 slots (each representing 5G of bandwidth) or 4n slots (25G 147 granularity). 149 c. FlexE Client: An Ethernet flow based on a MAC data rate that may 150 or may not correspond to any Ethernet PHY rate. 152 d. FlexE Group: A FlexE Group is composed of from 1 to n 100G FlexE 153 Instances that are carried by a group of from 1 to m bonded 154 Ethernet PHYs. 156 e. FlexE instance: A 100G FlexE Instance is a unit of information 157 consisting of 100G of capacity able to carry FlexE Client data, 158 together with its associated overhead. 160 Detailed description of these terms can be found in [OIFFLEXE1] and 161 [OIFFLEXE2] . 163 3. FlexE Reference Configuration Model 165 FlexE can be implemented between the FlexE mux and demux in two end 166 devices connected directly by the FlexE links. In this case, FlexE 167 is just a link connection technology. 169 FlexE can also be transported by transport networks. There are three 170 kinds of transport network mapping mechanisms for FlexE signals, that 171 is, FlexE unaware transport, FlexE termination in the transport 172 network and FlexE aware transport. 174 How to configure the ingress or egress of transport network about 175 FlexE mapping relationship may be application specific. In this 176 document, the part of YANG data model for the transport network 177 mapping for FlexE is not included at present. 179 4. Requirements 181 4.1. Requirements 183 This section summarizes the management requirements for the FlexE 184 Group and the FlexE Client. 186 Req-1 The model SHALL support the management of the FlexE Group, 187 consisting of one or more 100G FlexE instances which carried by one 188 or more 100GE, 200GE, 400GE Ethernet PHY(s). 190 The detailed management covers the CURD functions (create, update, 191 read and delete), and lock/unlock. 193 Req-2 The model SHOULD be able to verify that the collection of 194 Ethernet PHY(s) included in a FlexE Group have the same 195 characteristics (e.g. number of PHYs, rate of PHYs, etc.) at the 196 local FlexE shims. If inconsistency exists, notifications (e.g. 197 errors) SHOULD be invoked. 199 Req-3 The model SHOULD be able to verify that the collection of FlexE 200 instances included in a FlexE Group have the same characteristics 201 (e.g. calendar slot granularity, unequipped slots, etc.) at the local 202 FlexE shims. If inconsistency exists, notifications (e.g. errors) 203 SHOULD be invoked. 205 Req-4 The model SHALL allow the addition (or removal) of one or more 206 FlexE clients on a FlexE Group. The addition (or removal) of a FlexE 207 client flow SHALL NOT affect the services for the other FlexE client 208 signals whose size and calendar slot assignments are not changed. 210 Req-5 The model SHALL allow FlexE client signals to flexibly span the 211 set of FlexE instances which comprise the FlexE Group. 213 Req-6 The model SHALL support a FlexE client flow resizing without 214 affecting any existing FlexE clients within the same FlexE Group. 216 Req-7 The model SHALL support the switching of a calendar 217 configuration. There are two calendar configurations, A and B. 219 5. YANG Data Model for FlexE (Tree Structure) 221 module: ietf-flexe-yang 222 +--rw flexe-configuration 223 +--rw flexe-groups 224 | +--rw flexe-group* [group-number] 225 | +--rw group-number uint32 226 | +--rw group-attributes 227 | +--rw flexe-gp-avb-bw? rt-types:bandwidth-ieee-float32 228 | +--rw cal-slot-gran? flexe-tp:cal-slot-gran 229 | +--rw flexe-phy-type? flexe-tp:flexe-phy-type 230 | +--rw bonded-phys 231 | | +--rw flexe-phys* [phy-number-in-group] 232 | | +--rw phy-number-in-group uint8 233 | | +--rw local-phy-interface? if:interface-ref 234 | | +--rw remote-phy-interface? if:interface-ref 235 | +--rw flexe-instances 236 | | +--rw flexe-instance* [flexe-inst-num] 237 | | | +--rw flexe-inst-num uint8 238 | | | +--rw unavb-sub-cal-slot-list* [sub-cal-slot-id] 239 | | | +--rw sub-cal-slot-id uint8 240 | | +--rw uneqipped-flexe-instance* [flexe-inst-num] 241 | | +--rw flexe-inst-num uint8 242 | +--rw expected-group-number? uint32 243 | +--rw expected-phy-map? string 244 | +--rw expected-cal-cfg? flexe-tp:calendar-AorB 245 | +--rw tx-calendar? flexe-tp:calendar-AorB 246 | +--rw rx-calendar? flexe-tp:calendar-AorB 247 | +--rw tx-calendar-neg? enumeration 248 | +--rw reply-ca-mode? enumeration 249 +--rw flexe-clients 250 +--rw flexe-client* [client-number] 251 +--rw client-number uint16 252 +--rw bandwidth 253 | +--rw signal-type? flexe-client-signal-rate 254 | +--rw mac-rate? rt-types:bandwidth-ieee-float32 255 +--rw flexe-group-number? uint32 256 +--rw alloc-slots 257 | +--rw tx-alloc-A-slots 258 | | +--rw instance-slots* [flexe-inst-num slot-id] 259 | | +--rw flexe-inst-num uint8 260 | | +--rw slot-id uint8 261 | +--rw tx-alloc-B-slots 262 | | +--rw instance-slots* [flexe-inst-num slot-id] 263 | | +--rw flexe-inst-num uint8 264 | | +--rw slot-id uint8 265 | +--rw (tx-calendar-neg)? 266 | +--:(STATIC-MODE) 267 | | +--rw rx-alloc-slots 268 | | | +--rw instance-slots* [flexe-inst-num slot-id] 269 | | | +--rw flexe-inst-num uint8 270 | | | +--rw slot-id uint8 271 | | +--rw rx-expected-A-slots 272 | | | +--rw instance-slots* [flexe-inst-num slot-id] 273 | | | +--rw flexe-inst-num uint8 274 | | | +--rw slot-id uint8 275 | | +--rw rx-expected-B-slots 276 | | +--rw instance-slots* [flexe-inst-num slot-id] 277 | | +--rw flexe-inst-num uint8 278 | | +--rw slot-id uint8 279 | +--:(MASTER-SLAVE) 280 +--rw client-interface? if:interface-ref 282 Figure 1 284 6. FlexE types Module 286 file "ietf-flexe-types@2019-06-06.yang" 287 module ietf-flexe-types { 288 yang-version 1.1; 289 namespace "urn:ietf:params:xml:ns:yang:ietf-flexe-types"; 290 prefix "flexe-tp"; 291 import ietf-routing-types { 292 prefix rt-types; 293 description "Import ietf-routing-types module."; 294 } 295 organization 296 "Internet Engineering Task Force (IETF) CCAMP WG"; 297 contact 298 "WG List: 299 Editor: Xiaobing Niu (niu.xiaobing@zte.com.cn); 300 Editor: Qilei Wang (wang.qilei@zte.com.cn); "; 301 description 302 "This module defines a YANG data types used in FlexE YANG modules. 304 Copyright (c) 2019 IETF Trust and the persons identified as 305 authors of the code. All rights reserved. 307 Redistribution and use in source and binary forms, with or 308 without modification, is permitted pursuant to, and subject 309 to the license terms contained in, the Simplified BSD License 310 set forth in Section 4.c of the IETF Trust's Legal Provisions 311 Relating to IETF Documents(http://trustee.ietf.org/license-info). 313 This version of this YANG module is part of RFC TBD; see 314 the RFC itself for full legal notices."; 315 revision 2019-06-06{ 316 description 317 "Version 01."; 318 reference 319 "draft-xiaobn-ccamp-flexe-yang-mod-02.txt"; 320 } 321 revision 2019-03-11{ 322 description 323 "Initial version."; 324 reference 325 "draft-xiaobn-ccamp-flexe-yang-mod-00.txt"; 326 } 328 /* typedefs */ 329 typedef cal-slot-gran { 330 type enumeration { 331 enum csg-5G { 332 value 1; 333 description "Calendar slot with a 5G granularity"; 334 } 335 enum csg-25G { 336 value 2; 337 description "Calendar slot with a 25G granularity"; 338 } 339 } 340 description 341 "Defines a type representing the granularity of a calendar slot."; 342 } 344 typedef flexe-client-signal-rate { 345 type enumeration { 346 enum flexe-client-signal-10Gbps{ 347 value 1; 348 description 349 "FlexE Client signal rate of 10Gbps"; 350 } 351 enum flexe-client-signal-40Gbps{ 352 value 2; 353 description 354 "FlexE Client signal rate of 40Gbps"; 355 } 356 enum flexe-client-signal-25mGbps{ 357 value 3; 358 description 359 "FlexE Client signal rate of m*25Gbps"; 360 } 361 } 362 description 363 "Defines FlexE Client signal rate, including 10, 40, m*25Gbps."; 364 } 365 typedef flexe-phy-type { 366 type enumeration { 367 enum flexe-phy-100GBASE-R { 368 value 1; 369 description "100GBASE-R PHY"; 370 } 371 enum flexe-phy-200GBASE-R { 372 value 2; 373 description "200GBASE-R PHY"; 374 } 375 enum flexe-phy-400GBASE-R { 376 value 3; 377 description "400GBASE-R PHY"; 378 } 379 } 380 description 381 "Defines types of PHYs in a FlexE group"; 382 } 383 typedef calendar-AorB { 384 type enumeration { 385 enum calendar-A { 386 value 0 ; 387 description 388 "Set the A calendar configuration."; 389 } 390 enum calendar-B { 391 value 1 ; 392 description 393 "Set the B calendar configuration."; 394 } 395 } 396 description 397 "Calendar configuration A or B"; 398 } 399 /* interface states: OK, SF, SD */ 400 typedef intf-state { 401 type enumeration { 402 enum ok { 403 value 0 ; 404 description 405 "The interface state of the FlexE Group is OK."; 406 } 407 enum sf { 408 value 1 ; 409 description 410 "The interface state of the FlexE Group is SF."; 411 } 412 enum sd { 413 value 2 ; 414 description 415 "The interface state of the FlexE Group is SD."; 416 } 417 } 418 description 419 "Interface state of port group."; 420 } 421 /* grouping */ 422 grouping flexe-client-bandwidth{ 423 leaf signal-type{ 424 type flexe-client-signal-rate; 425 description 426 "Client signal types: 10, 40, m*25 Gbps."; 427 } 428 leaf mac-rate { 429 type rt-types:bandwidth-ieee-float32; 430 description 431 "Bandwidth of clients."; 432 } 433 description 434 "The bandwidth of a FlexE client."; 435 } 436 } 438 440 7. FlexE YANG Module 442 file "ietf-flexe-yang@2019-06-06.yang" 443 module ietf-flexe-yang { 444 yang-version 1.1; 445 namespace "urn:ietf:params:xml:ns:yang:ietf-flexe-yang"; 446 prefix "flexe"; 447 import ietf-routing-types { 448 prefix rt-types; 449 description "Import ietf-routing-types module."; 450 reference "RFC8294"; 451 } 452 import ietf-interfaces { 453 prefix if; 454 description "Import ietf-interfaces module."; 455 reference "RFC7223"; 456 } 457 import ietf-flexe-types { 458 prefix flexe-tp; 459 description "Import ietf-flexe-types module."; 460 } 461 organization 462 "Internet Engineering Task Force (IETF) CCAMP WG"; 463 contact 464 "WG List: 465 Editor: Xiaobing Niu (niu.xiaobing@zte.com.cn); 466 Editor: Qilei Wang (wang.qilei@zte.com.cn); 467 Editor: Sivakumar Munagapati (smunagap@cisco.com)"; 468 description 469 "This module defines a YANG data model for FlexE. 471 Copyright (c) 2019 IETF Trust and the persons identified as 472 authors of the code. All rights reserved. 474 Redistribution and use in source and binary forms, with or 475 without modification, is permitted pursuant to, and subject 476 to the license terms contained in, the Simplified BSD License 477 set forth in Section 4.c of the IETF Trust's Legal Provisions 478 Relating to IETF Documents(http://trustee.ietf.org/license-info). 480 This version of this YANG module is part of RFC TBD; see the RFC 481 itself for full legal notices."; 482 revision 2019-06-06 { 483 description 484 "Version 02."; 485 reference 486 "draft-xiaobn-ccamp-flexe-yang-mod-02.txt"; 487 } 488 revision 2019-05-17 { 489 description 490 "Version 01."; 491 reference 492 "draft-xiaobn-ccamp-flexe-yang-mod-01.txt"; 493 } 494 revision 2019-03-11 { 495 description 496 "Initial version."; 497 reference 498 "draft-xiaobn-ccamp-flexe-yang-mod-00.txt"; 499 } 501 grouping slot-list 502 { 503 description 504 "Calendar slots in FlexE instances."; 505 list instance-slots{ 506 key "flexe-inst-num slot-id"; 507 description 508 "List of slots for the FlexE client."; 509 leaf flexe-inst-num{ 510 type uint8 ; 511 description 512 "It refers to the FlexE instance of a calendar slot. 513 Clause 6.1 FlexE Group in FlexE IA 2.0"; 514 } 515 leaf slot-id { 516 type uint8; 517 description 518 "Id number of a sub-calendar slot in a FlexE instance. 519 For 5G granularity, the range of slot-id is [0,19]; 520 For 25G granularity, the range of slot-id is [0,3]; 521 Refer to clause 6.7 in FlexE IA 2.0. "; 522 } 523 } 525 } 527 /* Configuration of FlexE */ 528 container flexe-configuration{ 529 description 530 "FlexE configuration, including configurations of FlexE groups 531 and FlexE clients."; 532 container flexe-groups { 533 description 534 "Container for the FlexE Group"; 535 list flexe-group { 536 key group-number; 537 description 538 "List of FlexE Group"; 539 leaf group-number { 540 type uint32 { 541 range 1..1048574 ; 542 } 543 description 544 "The FlexE Group number is selected from the range 1~0xFFFFE. 545 The value of 0x00000 and 0xFFFFF may not be used to 546 designate a FlexE Group."; 547 } 548 container group-attributes { 549 description 550 "The attributes of a FlexE Group"; 551 leaf flexe-gp-avb-bw{ 552 type rt-types:bandwidth-ieee-float32; 553 description 554 "Availbale bandwidth allocated in the FlexE Group. 555 Considering the FlexE Client MAC rates supported by FlexE 556 Groups are 10, 40, m*25 Gbps, or a subset of these rates, 557 it's recommended to confine the bandwidth allocated for a 558 FlexE group into a integer compound from litmited types 559 of MAC rateds."; 560 } 561 leaf cal-slot-gran{ 562 type flexe-tp:cal-slot-gran; 563 description 564 "The granularity of calendar slot is 5G or 25G"; 565 reference 566 "OIF FlexE IA 2.0"; 567 } 568 leaf flexe-phy-type{ 569 type flexe-tp:flexe-phy-type; 570 description 571 "Types of PHYs, such as 100/200/400GBASE-R"; 572 reference 573 "OIF FlexE IA 2.0"; 574 } 575 container bonded-phys { 576 description 577 "PHYs bonded to form a FlexE Group"; 578 list flexe-phys { 579 key phy-number-in-group; 580 description 581 "One of bonded PHYs in a FlexE Group"; 582 leaf phy-number-in-group{ 583 type uint8{ 584 range "1 .. 254"; 585 } 586 description 587 "Refer to the clause 6.1 in FlexE IA 2.0. 588 For 100GBASE-R, the FlxeE PHY num and the 100G 589 FlexE instance num are the same and in the range 590 [1-254]; For 200GBASE-R, each PHY num is in the 591 range [1-126]. For 400GBASE-R, each PHY num is 592 in the range [1-62]"; 593 } 594 leaf local-phy-interface{ 595 type if:interface-ref; 596 description 597 "Local PHY interface related to the current PHY in a 598 FlexE group."; 599 } 600 leaf remote-phy-interface{ 601 type if:interface-ref; 602 description 603 "Remote PHY interface related to the current PHY in 604 a FlexE group."; 605 } 606 } 607 } 609 container flexe-instances { 610 description 611 "FlexE instances in a FlexE Group"; 612 list flexe-instance { 613 key flexe-inst-num; 614 description 615 "List of a FlexE instance in a FlexE Group. Not including 616 those unequipped instances in the bonded PHYs."; 617 leaf flexe-inst-num{ 618 type uint8 ; 619 description 620 "Logical FlexE instance number"; 622 reference 623 "Clause 6.1 FlexE Group in FlexE IA 2.0. 624 For 100G, instance num=PHY num; 625 For 200G, 8-bit instance num consists of the PHY num 626 in the upper seven bits, and 0 or 1 in the lower order 627 bit. 628 For 400G, 8-bit instance num consists of the PHY num 629 in the upper six bits, and 0,1,2, or 3 in the two 630 lower order bits. "; 631 } 632 list unavb-sub-cal-slot-list { 633 key sub-cal-slot-id; 634 description 635 "List of sub-calendar slots unavailable in a FlexE 636 Instance."; 637 leaf sub-cal-slot-id { 638 type uint8; 639 description 640 "Identification number of a sub-calendar slot in a 641 FlexE instance. 642 For 5G granularity, the range of slot-id is [0,19]; 643 For 25G granularity, the range of slot-id is [0,3]; 644 Refer to clause 6.7 in FlexE IA 2.0. "; 645 } 646 } 647 } 648 list uneqipped-flexe-instance { 649 key flexe-inst-num; 650 description 651 "Unquipped FlexE instances in the bonded PHYs. 652 Strictly speaking, a unequipped instance does not belong 653 to any FlexE Group, because in the overhead frame, the 654 FlexE Group number is set to 0x00000. 655 Refer to Clause 6.5 Unequipped 100G FlexE Instances."; 656 leaf flexe-inst-num{ 657 type uint8 ; 658 description 659 "Clause 6.1 FlexE Group in FlexE IA 2.0"; 660 } 661 } 662 } 663 leaf expected-group-number { 664 type uint32 { 665 range 1..1048574 ; 666 } 667 description 668 "The expected FlexE group number is configured at the FlexE 669 demux. Its vaule is in the range 1~0xFFFFE. 671 Refer to ExGID in G.8023."; 672 } 673 leaf expected-phy-map { 674 type string { 675 length "256"; 676 pattern "[0-1]*"; 677 } 678 description 679 "The expected FlexE PHY MAP is configured at the FlexE 680 demux. The length of PHY MAP is 8*32=256. If a FlexE PHY 681 ( for FlexE IA V1.1) or FlexE instance( for FlexE IA V2.0) 682 is configured in the FlexE Group, the corresponding bit is 683 set to 1. 684 Refer to ExPHYMAP in G.8023."; 685 } 686 leaf expected-cal-cfg { 687 type flexe-tp:calendar-AorB; 688 description 689 "The expected calendar configuration( ExCC in ITU-T G.8023) 690 is configured on FlexE demux. 691 Refer to ExCC in G.8023."; 692 } 693 leaf tx-calendar { 694 type flexe-tp:calendar-AorB; 695 description 696 "Calendar configuration in the transmit direction. 697 Refer to TxCC in G.8023. "; 698 } 699 leaf rx-calendar { 700 type flexe-tp:calendar-AorB; 701 description 702 "Calendar configuration in the receive direction"; 703 } 704 leaf tx-calendar-neg { 705 type enumeration { 706 enum STATIC-MODE { 707 value 1 ; 708 description 709 "STATIC mode. In this mode, calendar slots on mux and 710 demux need to be configured"; 711 } 712 enum MASTER-SLAVE { 713 value 2 ; 714 description 715 "MASTER-SLAVE mode. In this mode, calendar slots only 716 need to be configured on mux"; 717 } 718 } 719 description 720 "TX calendar negotiation methods"; 721 } 722 leaf reply-ca-mode { 723 type enumeration { 724 enum never { 725 value 1 ; 726 description 727 "never reply CA (Configuration Ack)"; 728 } 729 enum immediately { 730 value 2 ; 731 description 732 "immediately reply CA (Configuration Ack)"; 733 } 734 enum ask-controller { 735 value 3 ; 736 description 737 "Ask controller for more control"; 738 } 739 } 740 description 741 "Reply CA mode"; 742 } 743 } 744 } 745 } 746 container flexe-clients { 747 description 748 "FlexE clients information"; 749 list flexe-client { 750 key client-number ; 751 description 752 "Attributes of FlexE client" ; 753 leaf client-number { 754 type uint16 { 755 range 1..65534 ; 756 } 757 description 758 "Client number in the range of 1~0xFFFE. 759 The value 0x0000 indicates a calendar slot which is unused 760 (but available). 761 The value 0xFFFF (all ones) indicates a calendar slot that 762 is unavailable. 763 Refer to Clause 7.3.4 in FlexE IA 2.0."; 764 reference 765 "FlexE IA 2.0."; 766 } 767 container bandwidth { 768 description "Client bandwidth"; 769 uses flexe-tp:flexe-client-bandwidth; 770 } 771 leaf flexe-group-number { 772 type uint32 { 773 range 1..1048574 ; 774 } 775 description 776 "The FlexE Group is used to transport the FlexE client."; 777 } 778 container alloc-slots{ 779 description 780 "Slots are allocated on the mux(Transmit-direction)."; 781 container tx-alloc-A-slots{ 782 uses slot-list; 783 description 784 "Slots in A calendar are allocated on the mux. 785 Refer to TxCCA in G.8023."; 786 } 787 container tx-alloc-B-slots{ 788 uses slot-list; 789 description 790 "Slots in B calendar are allocated on the mux. 791 Refer to TxCCB in G.8023."; 792 } 793 choice tx-calendar-neg{ 794 description 795 "According to the mode, to determine what should be 796 configured."; 797 case STATIC-MODE{ 798 container rx-alloc-slots{ 799 uses slot-list; 800 description 801 "Slots for a specific FlexE client allocated on the 802 demux(Receive-direction)."; 803 } 804 container rx-expected-A-slots{ 805 uses slot-list; 806 description 807 "The expected received slots for a specific FlexE 808 client in A calendar are configured on the demux. 809 Refer to ExCCA in G.8023."; 810 reference 811 "ITU-T G.8023"; 812 } 813 container rx-expected-B-slots{ 814 uses slot-list; 815 description 816 "The expected received slots for a specific FlexE 817 client in B calendar are configured on the demux. 818 Refer to ExCCB in G.8023."; 819 reference 820 "ITU-T G.8023"; 821 } 822 } 823 case MASTER-SLAVE{ 825 } 826 } 827 } 829 leaf client-interface { 830 type if:interface-ref; 831 description 832 "A FlexE Client is used as an interface."; 833 } 834 } 835 } 836 } 837 } 839 841 8. Acknowledgements 843 9. Authors (Full List) 845 Xiaobing NIU (editor) 847 ZTE 849 Beijing, China 851 Email: niu.xiaobing@zte.com.cn 853 Qilei Wang (editor) 855 ZTE 857 Nanjing, China 859 Email: wang.qilei@zte.com.cn 860 Yunbin Xu 862 CAICT 864 Beijing, China 866 Email: xuyunbin@caict.ac.cn 868 Sivakumar Munagapati 870 Cisco 872 USA 874 Email: smunagap@cisco.com 876 10. Contributors 878 11. IANA Considerations 880 This document registers the following namespace URIs in the IETF XML 881 registry[RFC3688]: 883 URI: urn:ietf:params:xml:ns:yang:ietf-flexe-yang 885 Registrant Contact: The IESG. 887 XML: N/A, the requested URI is an XML namespace. 889 This document registers the following namespace URIs in the IETF XML 890 registry[RFC3688]: 892 URI: urn:ietf:params:xml:ns:yang:ietf-flexe-types 894 Registrant Contact: The IESG. 896 XML: N/A, the requested URI is an XML namespace. 898 This document registers the following YANG modules in the YANG Module 899 Names registry[RFC6020] : 901 name: ietf-flexe-yang 902 namespace: urn:ietf:params:xml:ns:yang:ietf-flexe-yang 904 prefix: flexe 906 reference: RFC XXXX (TDB) 908 name: ietf-flexe-types 910 namespace: urn:ietf:params:xml:ns:yang:ietf-flexe-types 912 prefix: flexe-tp 914 reference: RFC XXXX (TDB) 916 12. Security Considerations 918 The YANG module specified in this document defines a schema for data 919 that is designed to be accessed via network management protocols such 920 as NETCONF[RFC6241] or RESTCONF[RFC8040]. The lowest NETCONF layer 921 is the secure transport layer, and the mandatory-to-implement secure 922 transport is Secure Shell (SSH)[RFC6242]. The lowest RESTCONF layer 923 is HTTPS, and the mandatory-to-implement secure transport is 924 TLS[RFC8446]. 926 There are a number of data nodes defined in this YANG module that are 927 writable/creatable/deletable. These data nodes may be considered 928 sensitive or vulnerable in some network environments. Write 929 operations (e.g., edit-config) to these data nodes without proper 930 protection can have a negative effect on network operations. 932 13. References 934 13.1. Normative References 936 [G.709] ITU-T, "Interfaces for the optical transport network, 937 Amendment 2 ; 06/2018", https://www.itu.int/itu- 938 t/recommendations/rec.aspx?rec=12789, June 2018. 940 [G.798] ITU-T, "Characteristics of optical transport network 941 hierarchy equipment functional blocks ; 08/2018", 942 https://www.itu.int/itu- 943 t/recommendations/rec.aspx?rec=13335, August 2018. 945 [G.8023] ITU-T, "Characteristics of equipment functional blocks 946 supporting Ethernet physical layer and Flex Ethernet 947 interfaces ; 06/2018", https://www.itu.int/itu- 948 t/recommendations/rec.aspx?rec=13544, June 2018. 950 [G.872] ITU-T, "Architecture of optical transport networks; 951 01/2017", https://www.itu.int/itu- 952 t/recommendations/rec.aspx?rec=13086, January 2017. 954 [OIFFLEXE1] 955 OIF, "Flex Ethernet Implementation Agreement 1.1(OIF- 956 FLEXE-01.1); 06/2017", https://www.oiforum.com/wp- 957 content/uploads/2019/01/FLEXE1.1.pdf, June 2017. 959 [OIFFLEXE2] 960 OIF, "Flex Ethernet Implementation Agreement 2.0(OIF- 961 FLEXE-02.0); 06/2018", https://www.oiforum.com/wp- 962 content/uploads/2019/01/OIF-FLEXE-02.0-1.pdf, June 2018. 964 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 965 Requirement Levels", BCP 14, RFC 2119, 966 DOI 10.17487/RFC2119, March 1997, 967 . 969 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 970 DOI 10.17487/RFC3688, January 2004, 971 . 973 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 974 the Network Configuration Protocol (NETCONF)", RFC 6020, 975 DOI 10.17487/RFC6020, October 2010, 976 . 978 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 979 and A. Bierman, Ed., "Network Configuration Protocol 980 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 981 . 983 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 984 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 985 . 987 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 988 RFC 7950, DOI 10.17487/RFC7950, August 2016, 989 . 991 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 992 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 993 . 995 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 996 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 997 . 999 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 1000 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 1001 . 1003 13.2. Informative References 1005 [I-D.izh-ccamp-flexe-fwk] 1006 Hussain, I., Valiveti, R., Wang, Q., Andersson, L., Chen, 1007 M., and z. zhenghaomian@huawei.com, "GMPLS Routing and 1008 Signaling Framework for Flexible Ethernet (FlexE)", draft- 1009 izh-ccamp-flexe-fwk-05 (work in progress), March 2018. 1011 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1012 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1013 May 2017, . 1015 Authors' Addresses 1017 Xiaobing Niu (editor) 1018 ZTE 1019 Beijing 1020 CN 1022 Email: niu.xiaobing@zte.com.cn 1024 Qilei Wang (editor) 1025 ZTE 1026 Nanjing 1027 CN 1029 Email: wang.qilei@zte.com.cn 1031 Yunbin Xu 1032 CAICT 1033 Beijing 1034 CN 1036 Email: xuyunbin@caict.ac.cn 1038 Sivakumar Munagapati 1039 Cisco 1040 USA 1042 Email: smunagap@cisco.com