Internet Engineering Task Force X. Niu, Ed. Internet-Draft Q. Wang, Ed. Intended status: Informational ZTE Expires: May 6, 2020 Y. Xu CAICT S. Munagapati Cisco November 3, 2019 A YANG Data Model for Flex Ethernet(FlexE) draft-xiaobn-ccamp-flexe-yang-mod-03 Abstract Flex Ethernet(FlexE) implementation agreement have been published by OIF. FlexE provides a generic mechanism for supporting a variety of Ethernet MAC rates that may or may not correspond to any existing Ethernet PHY rate. This document describes a YANG data model for FlexE. It can be used to manage and control devices supporting FlexE functions. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on May 6, 2020. Copyright Notice Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of Niu, et al. Expires May 6, 2020 [Page 1] Internet-Draft FlexE yang model November 2019 publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2.2. FlexE terminology used in this document . . . . . . . . . 3 3. FlexE Reference Configuration Model . . . . . . . . . . . . . 4 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 4 5. YANG Data Model for FlexE (Tree Structure) . . . . . . . . . 5 6. FlexE types Module . . . . . . . . . . . . . . . . . . . . . 7 7. FlexE YANG Module . . . . . . . . . . . . . . . . . . . . . . 10 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 9. Authors (Full List) . . . . . . . . . . . . . . . . . . . . . 19 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 20 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 12. Security Considerations . . . . . . . . . . . . . . . . . . . 20 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 13.1. Normative References . . . . . . . . . . . . . . . . . . 21 13.2. Informative References . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 1. Introduction Flex Ethernet (FlexE) implementation agreement version 1.1 [OIFFLEXE1] , 2.0 [OIFFLEXE2] and 2.1[OIFFLEXE2.1] have been published by OIF. FlexE provides a generic mechanism for supporting a variety of Ethernet MAC rates that may or may not correspond to any existing Ethernet PHY rate. This includes MAC rates that are both greater than (through bonding) and less than (through sub-rate and channelization) the Ethernet PHY rates used to carry FlexE. This document defines a date model of FlexE, using YANG[RFC7950]. This model mainly deals with the data model of the FlexE Group and the FlexE client. It can be used by an application to configure and modify the parameters of the FlexE Group and the FlexE client, and to receive notifications, e.g. mismatch errors, from devices supporting FlexE functions. Requirements for the FlexE YANG model are considered. And FlexE YANG tree and YANG files are given. Niu, et al. Expires May 6, 2020 [Page 2] Internet-Draft FlexE yang model November 2019 2. Terminology A simplified graphical representation of the data model is used in this document. The meaning of the symbols in the YANG data tree presented later in this document is defined in [RFC8340]. They are provided below for reference. o Brackets "[" and "]" enclose list keys. o Abbreviations before data node names: "rw" means configuration (read-write) and "ro" state data (read-only). o Symbols after data node names: "?" means an optional node, "!" means a presence container, and "*" denotes a list and leaf-list. o Parentheses enclose choice and case nodes, and case nodes are also marked with a colon (":"). o Ellipsis ("...") stands for contents of subtrees that are not shown. o Some of the key terms used in this document are listed as follow. The terminology for describing YANG data models is found in [RFC7950]. 2.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 2.2. FlexE terminology used in this document a. CSG: Calendar Slot Granularity. It can be 5G or 25G. b. FlexE Calendar: In FlexE IA v1.1, the total capacity of a FlexE Group is represented as a collection of slots which have a granularity of 5G. The calendar for a FlexE Group composed of n 100G PHYs is represented as an array of 20n slots (each representing 5G of bandwidth). This calendar is partitioned into sub-calendars, with 20 slots per 100G PHY. Each FlexE client is mapped into one or more calendar slots (based on the bandwidth the FlexE client flow will need). In FlexE IA v2.0[OIFFLEXE2], the total capacity of a FlexE Group is represented as a collection of slots which may have a granularity of 5G or 25G. The calendar for a FlexE Group composed of n 100G FlexE instances from m 100G/200G/400G PHYs is represented as an array of 20n Niu, et al. Expires May 6, 2020 [Page 3] Internet-Draft FlexE yang model November 2019 slots (each representing 5G of bandwidth) or 4n slots (25G granularity). c. FlexE Client: An Ethernet flow based on a MAC data rate that may or may not correspond to any Ethernet PHY rate. d. FlexE Group: A FlexE Group is composed of from 1 to n 50G or 100G FlexE Instances that are carried by a group of from 1 to m bonded Ethernet PHYs. e. FlexE instance: A 100G FlexE Instance is a unit of information consisting of 100G of capacity able to carry FlexE Client data, together with its associated overhead. In FlexE IA v2.1[OIFFLEXE2.1], 50G FlexE Instance is defined. Detailed description of these terms can be found in [OIFFLEXE1] and [OIFFLEXE2] . 3. FlexE Reference Configuration Model FlexE can be implemented between the FlexE mux and demux in two end devices connected directly by the FlexE links. In this case, FlexE is just a link connection technology. FlexE can also be transported by transport networks. There are three kinds of transport network mapping mechanisms for FlexE signals, that is, FlexE unaware transport, FlexE termination in the transport network and FlexE aware transport. How to configure the ingress or egress of transport network about FlexE mapping relationship may be application specific. In this document, the part of YANG data model for the transport network mapping for FlexE is not included at present. 4. Requirements 4.1. Requirements This section summarizes the management requirements for the FlexE Group and the FlexE Client. Req-1 The model SHALL support the management of the FlexE Group, consisting of one or more 100G FlexE instances which carried by one or more 100GE, 200GE, 400GE Ethernet PHY(s). The model SHALL support the management of the FlexE Group, consisting of one or more 50G FlexE instances which carried by one or more 50GE Ethernet PHY(s). Niu, et al. Expires May 6, 2020 [Page 4] Internet-Draft FlexE yang model November 2019 The detailed management covers the CURD functions (create, update, read and delete), and lock/unlock. Req-2 The model SHOULD be able to verify that the collection of Ethernet PHY(s) included in a FlexE Group have the same characteristics (e.g. number of PHYs, rate of PHYs, etc.) at the local FlexE shims. If inconsistency exists, notifications (e.g. errors) SHOULD be invoked. Req-3 The model SHOULD be able to verify that the collection of FlexE instances included in a FlexE Group have the same characteristics (e.g. calendar slot granularity, unequipped slots, etc.) at the local FlexE shims. If inconsistency exists, notifications (e.g. errors) SHOULD be invoked. Req-4 The model SHALL allow the addition (or removal) of one or more FlexE clients on a FlexE Group. The addition (or removal) of a FlexE client flow SHALL NOT affect the services for the other FlexE client signals whose size and calendar slot assignments are not changed. Req-5 The model SHALL allow FlexE client signals to flexibly span the set of FlexE instances which comprise the FlexE Group. Req-6 The model SHALL support a FlexE client flow resizing without affecting any existing FlexE clients within the same FlexE Group. Req-7 The model SHALL support the switching of a calendar configuration. There are two calendar configurations, A and B. 5. YANG Data Model for FlexE (Tree Structure) module: ietf-flexe-yang +--rw flexe-configuration +--rw flexe-groups | +--rw flexe-group* [group-number] | +--rw group-number uint32 | +--rw group-attributes | +--rw flexe-gp-avb-bw? rt-types:bandwidth-ieee-float32 | +--rw cal-slot-gran? flexe-tp:cal-slot-gran | +--rw flexe-phy-type? flexe-tp:flexe-phy-type | +--rw bonded-phys | | +--rw flexe-phys* [phy-number-in-group] | | +--rw phy-number-in-group uint8 | | +--rw local-phy-interface? if:interface-ref | | +--rw remote-phy-interface? if:interface-ref | +--rw flexe-instances | | +--rw flexe-instance* [flexe-inst-num] Niu, et al. Expires May 6, 2020 [Page 5] Internet-Draft FlexE yang model November 2019 | | | +--rw flexe-inst-num uint8 | | | +--rw unavb-sub-cal-slot-list* [sub-cal-slot-id] | | | +--rw sub-cal-slot-id uint8 | | +--rw uneq-flexe-instance* [flexe-inst-num] | | +--rw flexe-inst-num uint8 | +--rw expected-group-number? uint32 | +--rw expected-phy-map? string | +--rw expected-cal-cfg? flexe-tp:calendar-AorB | +--rw tx-calendar? flexe-tp:calendar-AorB | +--rw rx-calendar? flexe-tp:calendar-AorB | +--rw tx-calendar-neg? enumeration | +--rw reply-ca-mode? enumeration +--rw flexe-clients +--rw flexe-client* [client-number] +--rw client-number uint16 +--rw bandwidth | +--rw signal-type? flexe-client-signal-rate | +--rw mac-rate? rt-types:bandwidth-ieee-float32 +--rw flexe-group-number? uint32 +--rw alloc-slots | +--rw tx-alloc-A-slots | | +--rw instance-slots* [flexe-inst-num slot-id] | | +--rw flexe-inst-num uint8 | | +--rw slot-id uint8 | +--rw tx-alloc-B-slots | | +--rw instance-slots* [flexe-inst-num slot-id] | | +--rw flexe-inst-num uint8 | | +--rw slot-id uint8 | +--rw (tx-calendar-neg)? | +--:(STATIC-MODE) | | +--rw rx-alloc-slots | | | +--rw instance-slots* [flexe-inst-num slot-id] | | | +--rw flexe-inst-num uint8 | | | +--rw slot-id uint8 | | +--rw rx-expected-A-slots | | | +--rw instance-slots* [flexe-inst-num slot-id] | | | +--rw flexe-inst-num uint8 | | | +--rw slot-id uint8 | | +--rw rx-expected-B-slots | | +--rw instance-slots* [flexe-inst-num slot-id] | | +--rw flexe-inst-num uint8 | | +--rw slot-id uint8 | +--:(MASTER-SLAVE) +--rw client-interface? if:interface-ref Figure 1 Niu, et al. Expires May 6, 2020 [Page 6] Internet-Draft FlexE yang model November 2019 6. FlexE types Module file "ietf-flexe-types@2019-11-04.yang" module ietf-flexe-types { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-flexe-types"; prefix "flexe-tp"; import ietf-routing-types { prefix rt-types; description "Import ietf-routing-types module."; } organization "Internet Engineering Task Force (IETF) CCAMP WG"; contact "WG List: Editor: Xiaobing Niu (niu.xiaobing@zte.com.cn); Editor: Qilei Wang (wang.qilei@zte.com.cn); "; description "This module defines a YANG data types used in FlexE YANG modules. Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents(http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC TBD; see the RFC itself for full legal notices."; revision 2019-11-04{ description "Version 02."; reference "draft-xiaobn-ccamp-flexe-yang-mod-03.txt"; } revision 2019-06-06{ description "Version 01."; reference "draft-xiaobn-ccamp-flexe-yang-mod-02.txt"; } revision 2019-03-11{ description "Initial version."; reference "draft-xiaobn-ccamp-flexe-yang-mod-00.txt"; Niu, et al. Expires May 6, 2020 [Page 7] Internet-Draft FlexE yang model November 2019 } /* typedefs */ typedef cal-slot-gran { type enumeration { enum csg-5G { value 1; description "Calendar slot with a 5G granularity"; } enum csg-25G { value 2; description "Calendar slot with a 25G granularity"; } } description "Defines a type representing the granularity of a calendar slot."; } typedef flexe-client-signal-rate { type enumeration { enum flexe-client-signal-10Gbps{ value 1; description "FlexE Client signal rate of 10Gbps"; } enum flexe-client-signal-40Gbps{ value 2; description "FlexE Client signal rate of 40Gbps"; } enum flexe-client-signal-25mGbps{ value 3; description "FlexE Client signal rate of m*25Gbps"; } } description "Defines FlexE Client signal rate, including 10, 40, m*25Gbps."; } typedef flexe-phy-type { type enumeration { enum flexe-phy-100GBASE-R { value 1; description "100GBASE-R PHY"; } enum flexe-phy-200GBASE-R { value 2; description "200GBASE-R PHY"; Niu, et al. Expires May 6, 2020 [Page 8] Internet-Draft FlexE yang model November 2019 } enum flexe-phy-400GBASE-R { value 3; description "400GBASE-R PHY"; } enum flexe-phy-50GBASE-R { value 4; description "50GBASE-R PHY"; } } description "Defines types of PHYs in a FlexE group"; } typedef calendar-AorB { type enumeration { enum calendar-A { value 0 ; description "Set the A calendar configuration."; } enum calendar-B { value 1 ; description "Set the B calendar configuration."; } } description "Calendar configuration A or B"; } /* interface states: OK, SF, SD */ typedef intf-state { type enumeration { enum ok { value 0 ; description "The interface state of the FlexE Group is OK."; } enum sf { value 1 ; description "The interface state of the FlexE Group is SF."; } enum sd { value 2 ; description "The interface state of the FlexE Group is SD."; } } Niu, et al. Expires May 6, 2020 [Page 9] Internet-Draft FlexE yang model November 2019 description "Interface state of port group."; } /* grouping */ grouping flexe-client-bandwidth{ leaf signal-type{ type flexe-client-signal-rate; description "Client signal types: 10, 40, m*25 Gbps."; } leaf mac-rate { type rt-types:bandwidth-ieee-float32; description "Bandwidth of clients."; } description "The bandwidth of a FlexE client."; } } 7. FlexE YANG Module file "ietf-flexe-yang@2019-11-04.yang" module ietf-flexe-yang { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-flexe-yang"; prefix "flexe"; import ietf-routing-types { prefix rt-types; description "Import ietf-routing-types module."; reference "RFC8294"; } import ietf-interfaces { prefix if; description "Import ietf-interfaces module."; reference "RFC7223"; } import ietf-flexe-types { prefix flexe-tp; description "Import ietf-flexe-types module."; } organization "Internet Engineering Task Force (IETF) CCAMP WG"; contact "WG List: Editor: Xiaobing Niu (niu.xiaobing@zte.com.cn); Niu, et al. Expires May 6, 2020 [Page 10] Internet-Draft FlexE yang model November 2019 Editor: Qilei Wang (wang.qilei@zte.com.cn); Editor: Sivakumar Munagapati (smunagap@cisco.com)"; description "This module defines a YANG data model for FlexE. Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents(http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC TBD; see the RFC itself for full legal notices."; revision 2019-11-04 { description "Version 03."; reference "draft-xiaobn-ccamp-flexe-yang-mod-03.txt"; } revision 2019-06-06 { description "Version 02."; reference "draft-xiaobn-ccamp-flexe-yang-mod-02.txt"; } revision 2019-05-17 { description "Version 01."; reference "draft-xiaobn-ccamp-flexe-yang-mod-01.txt"; } revision 2019-03-11 { description "Initial version."; reference "draft-xiaobn-ccamp-flexe-yang-mod-00.txt"; } grouping slot-list { description "Calendar slots in FlexE instances."; list instance-slots{ key "flexe-inst-num slot-id"; description Niu, et al. Expires May 6, 2020 [Page 11] Internet-Draft FlexE yang model November 2019 "List of slots for the FlexE client."; leaf flexe-inst-num{ type uint8 ; description "It refers to the FlexE instance of a calendar slot. Clause 6.1 FlexE Group in FlexE IA 2.1"; } leaf slot-id { type uint8; description "Id number of a sub-calendar slot in a FlexE instance. In a 100G FlexE instance, for 5G granularity, the range of slot-id is [0,19]; for 25G granularity, the range of slot-id is [0,3]; In a 50G FlexE instance, for 5G granularity, the range of slot-id is [0,9]; for 25G granularity, the range of slot-id is [0,1]; Refer to clause 6.8 in FlexE IA 2.1. "; } } } /* Configuration of FlexE */ container flexe-configuration{ description "FlexE configuration, including configurations of FlexE groups and FlexE clients."; container flexe-groups { description "Container for the FlexE Group"; list flexe-group { key group-number; description "List of FlexE Group"; leaf group-number { type uint32 { range 1..1048574 ; } description "The FlexE Group number is selected from the range 1~0xFFFFE. The value of 0x00000 and 0xFFFFF may not be used to designate a FlexE Group."; } container group-attributes { description "The attributes of a FlexE Group"; leaf flexe-gp-avb-bw{ type rt-types:bandwidth-ieee-float32; Niu, et al. Expires May 6, 2020 [Page 12] Internet-Draft FlexE yang model November 2019 description "Availbale bandwidth allocated in the FlexE Group. Considering the FlexE Client MAC rates supported by FlexE Groups are 10, 40, m*25 Gbps, or a subset of these rates, it's recommended to confine the bandwidth allocated for a FlexE group into a integer compound from litmited types of MAC rateds."; } leaf cal-slot-gran{ type flexe-tp:cal-slot-gran; description "The granularity of calendar slot is 5G or 25G"; reference "OIF FlexE IA 2.1"; } leaf flexe-phy-type{ type flexe-tp:flexe-phy-type; description "Types of PHYs, such as 50/100/200/400GBASE-R"; reference "OIF FlexE IA 2.1"; } container bonded-phys { description "PHYs bonded to form a FlexE Group"; list flexe-phys { key phy-number-in-group; description "One of bonded PHYs in a FlexE Group"; leaf phy-number-in-group{ type uint8{ range "1 .. 254"; } description "Refer to the clause 6.1 in FlexE IA 2.0. For 100GBASE-R, the FlxeE PHY num and the 100G FlexE instance num are the same and in the range [1-254]; For 200GBASE-R, each PHY num is in the range [1-126]. For 400GBASE-R, each PHY num is in the range [1-62]. For 50GBASE-R, each PHY num is in the range [1-126]."; } leaf local-phy-interface{ type if:interface-ref; description "Local PHY interface related to the current PHY in a FlexE group."; } Niu, et al. Expires May 6, 2020 [Page 13] Internet-Draft FlexE yang model November 2019 leaf remote-phy-interface{ type if:interface-ref; description "Remote PHY interface related to the current PHY in a FlexE group."; } } } container flexe-instances { description "FlexE instances in a FlexE Group"; list flexe-instance { key flexe-inst-num; description "List of a FlexE instance in a FlexE Group. Not including those unequipped instances in the bonded PHYs."; leaf flexe-inst-num{ type uint8 ; description "Logical FlexE instance number"; reference "Clause 6.1 FlexE Group in FlexE IA 2.1. For 50G and 100G, instance num=PHY num; For 200G, 8-bit instance num consists of the PHY num in the upper seven bits, and 0 or 1 in the lower order bit. For 400G, 8-bit instance num consists of the PHY num in the upper six bits, and 0,1,2, or 3 in the two lower order bits. "; } list unavb-sub-cal-slot-list { key sub-cal-slot-id; description "List of sub-calendar slots unavailable in a FlexE Instance."; leaf sub-cal-slot-id { type uint8; description "Id number of a sub-calendar slot in a FlexE instance. In a 100G FlexE instance, for 5G granularity, the range of slot-id is [0,19]; for 25G granularity, the range of slot-id is [0,3]; In a 50G FlexE instance, for 5G granularity, the range of slot-id is [0,9]; for 25G granularity, the range of slot-id is [0,1]; Refer to clause 6.8 in FlexE IA 2.1. "; } Niu, et al. Expires May 6, 2020 [Page 14] Internet-Draft FlexE yang model November 2019 } } list uneq-flexe-instance { key flexe-inst-num; description "Unequipped FlexE instances in the bonded PHYs. Strictly speaking, a unequipped instance does not belong to any FlexE Group, because in the overhead frame, the FlexE Group number is set to 0x00000. Refer to Clause 6.6 Unequipped 100G FlexE Instances in FlexE IA 2.1."; leaf flexe-inst-num{ type uint8 ; description "Clause 6.1 FlexE Group in FlexE IA 2.1"; } } } leaf expected-group-number { type uint32 { range 1..1048574 ; } description "The expected FlexE group number is configured at the FlexE demux. Its vaule is in the range 1~0xFFFFE. Refer to ExGID in G.8023."; } leaf expected-phy-map { type string { length "256"; pattern "[0-1]*"; } description "The expected FlexE PHY MAP is configured at the FlexE demux. The length of PHY MAP is 8*32=256. If a FlexE PHY ( for FlexE IA V1.1) or FlexE instance( for FlexE IA V2.0) is configured in the FlexE Group, the corresponding bit is set to 1. Refer to ExPHYMAP in G.8023."; } leaf expected-cal-cfg { type flexe-tp:calendar-AorB; description "The expected calendar configuration( ExCC in ITU-T G.8023) is configured on FlexE demux. Refer to ExCC in G.8023."; } leaf tx-calendar { Niu, et al. Expires May 6, 2020 [Page 15] Internet-Draft FlexE yang model November 2019 type flexe-tp:calendar-AorB; description "Calendar configuration in the transmit direction. Refer to TxCC in G.8023. "; } leaf rx-calendar { type flexe-tp:calendar-AorB; description "Calendar configuration in the receive direction"; } leaf tx-calendar-neg { type enumeration { enum STATIC-MODE { value 1 ; description "STATIC mode. In this mode, calendar slots on mux and demux need to be configured"; } enum MASTER-SLAVE { value 2 ; description "MASTER-SLAVE mode. In this mode, calendar slots only need to be configured on mux"; } } description "TX calendar negotiation methods"; } leaf reply-ca-mode { type enumeration { enum never { value 1 ; description "never reply CA (Configuration Ack)"; } enum immediately { value 2 ; description "immediately reply CA (Configuration Ack)"; } enum ask-controller { value 3 ; description "Ask controller for more control"; } } description "Reply CA mode"; Niu, et al. Expires May 6, 2020 [Page 16] Internet-Draft FlexE yang model November 2019 } } } } container flexe-clients { description "FlexE clients information"; list flexe-client { key client-number ; description "Attributes of FlexE client" ; leaf client-number { type uint16 { range 1..65534 ; } description "Client number in the range of 1~0xFFFE. The value 0x0000 indicates a calendar slot which is unused (but available). The value 0xFFFF (all ones) indicates a calendar slot that is unavailable. Refer to Clause 7.3.4 in FlexE IA 2.1."; reference "FlexE IA 2.1."; } container bandwidth { description "Client bandwidth"; uses flexe-tp:flexe-client-bandwidth; } leaf flexe-group-number { type uint32 { range 1..1048574 ; } description "The FlexE Group is used to transport the FlexE client."; } container alloc-slots{ description "Slots are allocated on the mux(Transmit-direction)."; container tx-alloc-A-slots{ uses slot-list; description "Slots in A calendar are allocated on the mux. Refer to TxCCA in G.8023."; } container tx-alloc-B-slots{ uses slot-list; description Niu, et al. Expires May 6, 2020 [Page 17] Internet-Draft FlexE yang model November 2019 "Slots in B calendar are allocated on the mux. Refer to TxCCB in G.8023."; } choice tx-calendar-neg{ description "According to the mode, to determine what should be configured."; case STATIC-MODE{ container rx-alloc-slots{ uses slot-list; description "Slots for a specific FlexE client allocated on the demux(Receive-direction)."; } container rx-expected-A-slots{ uses slot-list; description "The expected received slots for a specific FlexE client in A calendar are configured on the demux. Refer to ExCCA in G.8023."; reference "ITU-T G.8023"; } container rx-expected-B-slots{ uses slot-list; description "The expected received slots for a specific FlexE client in B calendar are configured on the demux. Refer to ExCCB in G.8023."; reference "ITU-T G.8023"; } } case MASTER-SLAVE{ } } } leaf client-interface { type if:interface-ref; description "A FlexE Client is used as an interface. The attributes of the interface can be configured."; } } } } Niu, et al. Expires May 6, 2020 [Page 18] Internet-Draft FlexE yang model November 2019 } 8. Acknowledgements 9. Authors (Full List) Xiaobing NIU (editor) ZTE Beijing, China Email: niu.xiaobing@zte.com.cn Qilei Wang (editor) ZTE Nanjing, China Email: wang.qilei@zte.com.cn Yunbin Xu CAICT Beijing, China Email: xuyunbin@caict.ac.cn Sivakumar Munagapati Cisco USA Email: smunagap@cisco.com Niu, et al. Expires May 6, 2020 [Page 19] Internet-Draft FlexE yang model November 2019 10. Contributors 11. IANA Considerations This document registers the following namespace URIs in the IETF XML registry[RFC3688]: URI: urn:ietf:params:xml:ns:yang:ietf-flexe-yang Registrant Contact: The IESG. XML: N/A, the requested URI is an XML namespace. This document registers the following namespace URIs in the IETF XML registry[RFC3688]: URI: urn:ietf:params:xml:ns:yang:ietf-flexe-types Registrant Contact: The IESG. XML: N/A, the requested URI is an XML namespace. This document registers the following YANG modules in the YANG Module Names registry[RFC6020] : name: ietf-flexe-yang namespace: urn:ietf:params:xml:ns:yang:ietf-flexe-yang prefix: flexe reference: RFC XXXX (TDB) name: ietf-flexe-types namespace: urn:ietf:params:xml:ns:yang:ietf-flexe-types prefix: flexe-tp reference: RFC XXXX (TDB) 12. Security Considerations The YANG module specified in this document defines a schema for data that is designed to be accessed via network management protocols such as NETCONF[RFC6241] or RESTCONF[RFC8040]. The lowest NETCONF layer Niu, et al. Expires May 6, 2020 [Page 20] Internet-Draft FlexE yang model November 2019 is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH)[RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS[RFC8446]. There are a number of data nodes defined in this YANG module that are writable/creatable/deletable. These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations. 13. References 13.1. Normative References [G.709] ITU-T, "Interfaces for the optical transport network, Amendment 2 ; 06/2018", https://www.itu.int/itu- t/recommendations/rec.aspx?rec=12789, June 2018. [G.798] ITU-T, "Characteristics of optical transport network hierarchy equipment functional blocks ; 08/2018", https://www.itu.int/itu- t/recommendations/rec.aspx?rec=13335, August 2018. [G.8023] ITU-T, "Characteristics of equipment functional blocks supporting Ethernet physical layer and Flex Ethernet interfaces ; 06/2018", https://www.itu.int/itu- t/recommendations/rec.aspx?rec=13544, June 2018. [G.872] ITU-T, "Architecture of optical transport networks; 01/2017", https://www.itu.int/itu- t/recommendations/rec.aspx?rec=13086, January 2017. [OIFFLEXE1] OIF, "Flex Ethernet Implementation Agreement 1.1(OIF- FLEXE-01.1); 06/2017", https://www.oiforum.com/wp- content/uploads/2019/01/FLEXE1.1.pdf, June 2017. [OIFFLEXE2] OIF, "Flex Ethernet Implementation Agreement 2.0(OIF- FLEXE-02.0); 06/2018", https://www.oiforum.com/wp- content/uploads/2019/01/OIF-FLEXE-02.0-1.pdf, June 2018. [OIFFLEXE2.1] OIF, "Flex Ethernet Implementation Agreement 2.1(OIF- FLEXE-02.1); 07/2019", https://www.oiforum.com/wp- content/uploads/OIF-FLEXE02.1.pdf, July 2019. Niu, et al. Expires May 6, 2020 [Page 21] Internet-Draft FlexE yang model November 2019 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, . [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, . [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, . [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, . [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . 13.2. Informative References [I-D.izh-ccamp-flexe-fwk] Hussain, I., Valiveti, R., Wang, Q., Andersson, L., Chen, M., and z. zhenghaomian@huawei.com, "GMPLS Routing and Signaling Framework for Flexible Ethernet (FlexE)", draft- izh-ccamp-flexe-fwk-05 (work in progress), March 2018. Niu, et al. Expires May 6, 2020 [Page 22] Internet-Draft FlexE yang model November 2019 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . Authors' Addresses Xiaobing Niu (editor) ZTE Beijing CN Email: niu.xiaobing@zte.com.cn Qilei Wang (editor) ZTE Nanjing CN Email: wang.qilei@zte.com.cn Yunbin Xu CAICT Beijing CN Email: xuyunbin@caict.ac.cn Sivakumar Munagapati Cisco USA Email: smunagap@cisco.com Niu, et al. Expires May 6, 2020 [Page 23]