[Docs] [txt|pdf] [Tracker] [Email] [Diff1] [Diff2] [Nits]

Versions: 00 01 02

Internet Working Group                                       Y. Jiang
Internet Draft                                                  X. He
Intended status: Standards Track                               Huawei
                                                             W. Cheng
                                                         China Mobile
                                                              J. Wang
                                                               Y. Han
                                                            Fiberhome
Expires: January 2020                                    July 8, 2019


            YANG Data Model for FlexE Interface Management
                  draft-jiang-ccamp-flexe-yang-01


Abstract

   This document defines a YANG data model for the configuration of
   FlexE 2.0 interface, and its FlexE clients. The YANG module in this
   document conforms to the Network Management Datastore Architecture
   (NMDA).

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 January 8, 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
   (http://trustee.ietf.org/license-info) in effect on the date of
   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



Jiang, et al               Expires January 8, 2020          [Page 1]


Internet-Draft                FlexE YANG Model            July 2019


   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
      1.1.  Conventions used in this document ................... 3
      1.2.  Terminology ......................................... 3
   2.    YANG model hierarchy for FlexE interface ............... 3
   3.    YANG Module for FlexE interface ........................ 6
   4.    YANG Module for FlexE client interface ............... 1 2
   5.    Security Considerations .............................. 1 3
   6.    IANA Considerations .................................. 1 5
   7.    References ........................................... 1 5
      7.1.  Normative References .............................. 1 5
      7.2.  Informative References ............................ 1 6
   8.    Acknowledgments ...................................... 1 6



1. Introduction

   The Flex Ethernet (FlexE) 2.0 Implementation Agreement [FLEXE]
   defined by the OIF provides the support of 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. Besides 100GBASE-R PHYs,
   FlexE 2.0 further supports the bonding of 200GBASE-R PHYs or
   400GBASE-R PHYs respectively.

   In the FlexE, multiple Ethernet PHYs (each PHY can further consist
   of one or more FlexE Instances) are bonded into a FlexE Group, and
   the total capacity of the FlexE Group is represented as a collection
   of slots (e.g., each slot has a granularity of 5Gbps or 25Gbps).
   Based on their bandwidth needs, FlexE Clients are each mapped into
   one or more slots in a FlexE group. The FlexE mechanism operates
   using a calendar consisting of these slots.

   This calendar is partitioned into sub-calendars for each FlexE
   instance. For example, the calendar for a FlexE Group composed of n
   100G PHYs is partitioned into 20n slots (each slot representing
   5Gbps of bandwidth when the slot granularity is 5Gbps).

   This document defines a YANG data model for the configuration of a
   Flex Ethernet interface (i.e., FlexE Group). The data model is


Jiang, et al               Expires January 8, 2020              [Page 2]


Internet-Draft                FlexE YANG Model            July 2019


   augmented based on the generic interfaces data model as defined in
   [RFC8343], the FlexE attributes are based on the FlexE 2.0
   Implementation Agreement as specified in [FLEXE]. With the help of
   this YANG module, the FlexE Groups can be managed just as network
   interfaces on a network device (e.g., a router or bridge).

   The YANG module in this document conforms to the Network Management
   Datastore Architecture (NMDA) [RFC8342].

1.1. Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
   "MAY", and "OPTIONAL" in this document are to be interpreted as
   described in BCP 14 [RFC2119] [RFC8174] when, and only when, they
   appear in all capitals, as shown here.

1.2. Terminology

   Most terminologies used in this document are extracted from [FLEXE].

   FlexE: Flex Ethernet

   FlexE Client: An Ethernet flow based on a MAC data rate that may or
   may not correspond to any Ethernet PHY rate.

   FlexE Group: A FlexE Group is composed of from 1 to n Ethernet PHYs.

   FlexE Instance: A FlexE Instance is a unit of information consisting
   of 100G of capacity able to carry FlexE Client data, together with
   its associated overhead.

   Ethernet PHY: an entity representing Ethernet Physical Coding
   Sublayer (PCS), Physical Media Attachment (PMA), and Physical Media
   Dependent (PMD) layers. Each PHY is consisted of one or more FlexE
   Instance (e.g., a 400GBASE-R PHY has four FlexE Instances)

   FlexE Calendar: The total capacity of a FlexE Group is represented
   as a collection of slots.  The calendar for a FlexE Group composed
   of n PHYs is represented in each PHY as an array of slots (e.g.,
   each representing 5Gbps of bandwidth).


2. YANG model hierarchy for FlexE interface

   This section describes the hierarchy of the YANG module for FlexE
   interface management.


Jiang, et al               Expires January 8, 2020              [Page 3]


Internet-Draft                FlexE YANG Model            July 2019


   Configuration and status of FlexE interface information include:

   - flexe-group specifies a management interface for configuration of
   a FlexE group.

   - flexe-phy-list specifies a list of PHYs in a Flex Group.

   - flexe-client-list specifies a list of FlexE client, each client is
   mapped to some slots in this FlexE group. flexe-client-status
   indicates whether there is any fault in any mapped slot for this
   client.

   The readers are assumed to be familiar with FlexE 2.0, as all FlexE
   terminologies are described in details in [FLEXE].

   In order to simplify the YANG module of the FlexE interface and to
   follow the YANG style of terminology, neither sub-calendar nor
   calendar in FlexE are modelled explicitly. However, a calendar-slot-
   list per PHY is modeled which represents all the slots in a PHY
   (i.e., all sub-calendars of the FlexE instances in this PHY), and
   calendar is actually a conglomerate of all the slots in calendar
   slot lists for all FlexE PHYs of this FlexE Group.

   A simplified YANG tree diagram [RFC8340] representing the data model
   is typically used by YANG modules. This document uses the same tree
   diagram syntax as described in [RFC8340].

   module: ietf-flexe
     augment /if:interfaces/if:interface:
       +--rw flexe-group
          +--rw group-number?         uint32
          +--rw slot-granularity?     slot-granularity-enumeration
          +--rw flexe-phy-type?       flexe-phy-enumeration
          +--rw flexe-phy-list* [phy-number]
          |  +--rw phy-number            uint8
          |  +--rw flexe-phy-if?         if:interface-ref
          |  +--ro phy-status?           uint8
          |  +--rw calendar-slot-list* [slot-id]
          |     +--rw slot-id              uint8
          |     +--rw flexe-slot-status?   slot-status-enumeration
          +--rw flexe-client-list* [client-id]
          |  +--rw client-id              uint16
          |  +--rw flexe-client-if?       if:interface-ref
          |  +--rw mapped-slot-list* [mapped-slot-id]
          |  |  +--rw mapped-slot-id       uint8
          |  |  +--rw mapped-phy-number?   uint8
          |  +--ro flexe-client-status?   uint8


Jiang, et al               Expires January 8, 2020              [Page 4]


Internet-Draft                FlexE YANG Model            July 2019


          +--ro flexe-group-status?   uint8

   A tree diagram of the module for FlexE client interface is depicted
   as the following:
   module: ietf-interfaces-flexe-client
     augment /if:interfaces/if:interface:
       +--rw flexe-client
          +--ro mac-address
          +--rw group-number?           uint32







































Jiang, et al               Expires January 8, 2020              [Page 5]


Internet-Draft                FlexE YANG Model            July 2019


3. YANG Module for FlexE interface

   This module imports iana-if-type [RFC7224] and ietf-interfaces
   [RFC8343].

   <CODE BEGINS> file "ietf-flexe@2019-07-05.yang"
   module ietf-flexe {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-flexe";
     prefix "flexe";

     import iana-if-type {
       prefix ianaift;
     }
     import ietf-interfaces {
       prefix if;
       reference
        "RFC8343: A YANG Data Model for Interface Management";
     }

     organization "IETF CCAMP Working Group";
     contact
       "WG Web:   http://tools.ietf.org/wg/ccamp/
        WG List:  <mailto:ccamp@ietf.org>
        Author:   Yuanlong Jiang
                  <mailto:jiangyuanlong@huawei.com>
        Author:   Xiang He
                  <mailto: hexiang@huawei.com>
        Author:   Weiqiang Cheng
                  <mailto: chengweiqiang@chinamobile.com>";
     description
       "This YANG module defines a data model for the configuration
        of FlexE interface.";

     revision "2019-07-05" {
       description "Initial version";
       reference
        "draft-jiang-ccamp-flexe-yang-01: YANG Data Model for FlexE
         Interface Management ";
     }

     identity flexEthernet {
       base ianaift:iana-interface-type;
       description
         "Flex Ethernet.";
     }



Jiang, et al               Expires January 8, 2020              [Page 6]


Internet-Draft                FlexE YANG Model            July 2019


     typedef slot-granularity-enumeration {
       type enumeration {
         enum slot-5g {
           value 1;
           description
             "5Gbps per slot.";
         }
         enum slot-25g {
           value 2;
           description
             "25Gbps per slot.";
         }
         enum slot-others {
           value 254;
           description
             "Other type of granularities per slot.";
         }
       }
       description
         "The bandwidth granularity of a slot. Options for this
         enumeration are specified by the OIF standard, currently only
         5G and 25G are defined.";
       reference
         "OIF Flex 2.0: Section 6.7";
     }

     typedef slot-status-enumeration {
       type enumeration {
         enum unavailable {
           value 1;
           description
             "slot is unavailable for FlexE client.";
         }
         enum unused {
           value 2;
           description
             "slot is unused.";
         }
         enum used {
           value 3;
           description
             "slot is used.";
         }
       }
       description
         "The status of a slot. Options for this enumeration are
          specified by the OIF standard, 'used' is implicit.";


Jiang, et al               Expires January 8, 2020              [Page 7]


Internet-Draft                FlexE YANG Model            July 2019


       reference
         "OIF Flex 2.0: Section 7.3.4 and Section 7.6";
     }

     typedef flexe-phy-enumeration {
       type enumeration {
         enum 'PHY-100GBASE-R' {
           value 1;
           description
             "100GBASE-R PHY, as defined in FlexE 1.0.";
         }
         enum 'PHY-200GBASE-R' {
           value 2;
           description
             "200GBASE-R PHY, as defined in FlexE 2.0.";
         }
         enum 'PHY-400GBASE-R' {
           value 3;
           description
             "400GBASE-R PHY, as defined in FlexE 2.0.";
         }
       }

       description
         "The current type of PHYs bonded in a FlexE Group. Values for
          this enumeration are specified by the OIF standard.";
       reference
         "OIF Flex 2.0: Section 5.2.1.5";
     }



     augment "/if:interfaces/if:interface" {

       when "if:type = 'ianaift:flexEthernet'" {
         description "Applies to Flex bonded Ethernet interfaces";
       }

       description
         "Augment interface model with OIF Flex Ethernet interface
          specific configuration nodes. Each flexEthernet interface
          represents a FlexE Group configured in a device.";

       container flexe-group {
         description
           "The struct containing all FlexE related configuration
            (see OIF FlexE 2.0 Section 6.1).


Jiang, et al               Expires January 8, 2020              [Page 8]


Internet-Draft                FlexE YANG Model            July 2019


            Note that max number of FlexE groups in a network is 63.";

         leaf group-number {
           type uint32 {
             range "1..1048574";
           }
           description
             "FlexE Group Number as defined in Section 7.3.6 of FlexE
              2.0.";
         }


         leaf slot-granularity {
           type slot-granularity-enumeration;
           default "slot-5g";
           description
              "The granularity of a slot in a FlexE group.";
         }
         leaf flexe-phy-type {
             type flexe-phy-enumeration;
             default "PHY-100GBASE-R";
             description
               "The type of PHYs bonded in a FlexE Group.";
         }

        list flexe-phy-list {

          key "phy-number";
          description
            "List of PHYs bonded in a FlexE group per FlexE 2.0.";

          leaf phy-number {
            type uint8 {
              range "1 .. 254";
            }
            description
              "PHY number of a FlexE PHY.
               If PHY type is 100GBASE-R, phy-number is [1,254].
               If PHY type is 200GBASE-R, phy-number is [1,126].
               If PHY type is 400GBASE-R, phy-number is [1, 62].";
          }

          leaf flexe-phy-if {
              type if:interface-ref;
              description
                  "Reference to a Flexe PHY interface.";



Jiang, et al               Expires January 8, 2020              [Page 9]


Internet-Draft                FlexE YANG Model            July 2019


          }
          leaf phy-status {
             type uint8;
             config false;
             description
               "Fault status for a FlexE PHY. Status includes:
                    OK, Local Fault, Remote Fault and etc.";
           }

          list calendar-slot-list {
            key "slot-id";
            leaf slot-id {
              type uint8;
              description
                "slot id of a slot in an instance.";
           }
            description
              "List of slots in a FlexE PHY. Max elements of
               slot-list for a FlexE PHY is dependent on the PHY
               bandwidth (X)G and the slot granularity (Y)G, i.e.,
               X/Y. For example, for a 400GBASE-R PHY:
               If slot-granularity=slot-5g, max-elements is 80.
               If slot-granularity=slot-25g, max-elements is 16.";

            leaf flexe-slot-status {
              type slot-status-enumeration;
              default unused;
              description
                "Slot status of a slot in an instance.";
            }
          } //calendar-slot-list
        } //flexe-phy-list

        list flexe-client-list {

          key "client-id";
          description
            "List of FlexE clients in a FlexE Group.";
          leaf client-id {
            type uint16;
            description
              "FlexE client ID as defined in FlexE IA.";
          }
          leaf flexe-client-if {
            type if:interface-ref;
            description
              "The type of a flexe client interface must be


Jiang, et al               Expires January 8, 2020             [Page 10]


Internet-Draft                FlexE YANG Model            July 2019


               'flexeClient'.";
          }

          list mapped-slot-list {
            key "mapped-slot-id";
            description
               "List of mapped-slots for a FlexE client.";
            leaf mapped-slot-id {
              type uint8;
              description
                   "Slot id of a slot in an instance for a client.";
            }
            leaf mapped-phy-number {
              type uint8;
              description
                "PHY number of a slot for a client.";
            }

          } // mapped-slot-list

          leaf flexe-client-status {
            type uint8;
            config false;
            description
              "Fault status for a client indicated in its mapped
               slots. If any slot is in fault, the client status
               is indicated in fault. Status includes:
               OK, Local Fault, Remote Fault and etc.";
          }

        } //flexe-client-list
        leaf flexe-group-status {
          type uint8;
          config false;
          description
            "Fault status for a FlexE Group. If any PHY is in fault,
             the FlexE Group status is indicated in fault. Status
             includes:
                      OK, Local Fault, Remote Fault and etc.";
        }
       } //flexe-group
     }  //augment
   }

   <CODE ENDS>




Jiang, et al               Expires January 8, 2020             [Page 11]


Internet-Draft                FlexE YANG Model            July 2019



4. YANG Module for FlexE client interface

   The following YANG data module augments the interface container
   defined in RFC 8343 for FlexE client interfacs.


   <CODE BEGINS> file "ietf-interfaces-flexe-client@2019-07-05.yang"
   module ietf-interfaces-flexe-client {
     yang-version 1.1;

     namespace
       "urn:ietf:params:xml:ns:yang:ietf-interfaces-flexe-client";

     prefix flexcl;

     import ietf-interfaces {
       prefix if;
     }

     import ietf-yang-types {
       prefix yang;
     }

     import iana-if-type {
       prefix ianaift;
     }

     organization "IETF CCAMP Working Group";
     contact
       "WG Web:   http://tools.ietf.org/wg/ccamp/
        WG List:  <mailto:ccamp@ietf.org>
        Author:   Yuanlong Jiang
                  <mailto:jiangyuanlong@huawei.com>
        Author:   Xiang He
                  <mailto: hexiang@huawei.com>
        Author:   Weiqiang Cheng
                  <mailto: chengweiqiang@chinamobile.com>";

     description
       "This module contains YANG definitions for configuration of
        'FlexE client' interfaces.  FlexE Client is defined in
        OIF Flexible Ethernet 2.0 Implementation Aggreament.";

     revision 2019-07-05 {
       description "Initial revision";



Jiang, et al               Expires January 8, 2020             [Page 12]


Internet-Draft                FlexE YANG Model            July 2019


       reference
         "Internet draft: draft-jiang-ccamp-flexe-yang-01";
     }

     identity flexeClient {
       base ianaift:iana-interface-type;
       description
         "FlexE Client.";
     }

     /*
      * Configuration parameters for FlexE client interfaces.
      */
     augment "/if:interfaces/if:interface" {
       when "derived-from-or-self(if:type, 'ianaift:flexeClient')" {
         description "Applies to FlexE client interfaces";
       }
       description
         "Augment the interface model with parameters for
          FlexE client interfaces";

       container flexe-client {
         description
           "Contains parameters for FlexE client interfaces
            which expose an Ethernet MAC layer.";
         leaf mac-address {
           type yang:mac-address;
           config false;
           description
             "The MAC address of the FlexE client.";
         }
         leaf group-number {
           type uint32 {
             range "1..1048574";
           }
           description
             "FlexE Group Number of the FlexE group binding this
              client.";
         }
         // statistics can further be defined for the MAC layer
       }
     }
   }
   <CODE ENDS>


5. Security Considerations


Jiang, et al               Expires January 8, 2020             [Page 13]


Internet-Draft                FlexE YANG Model            July 2019


   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 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].

   The NETCONF access control model [RFC8341] provides the means to
   restrict access for particular NETCONF or RESTCONF users to a
   preconfigured subset of all available NETCONF or RESTCONF protocol
   operations and content.

   There are a number of data nodes defined in this YANG module are
   writable, and the involved subtrees that are sensitive include:

   /flexe/flexe-group/flexe-phy-list specifies a list of FlexE PHYs.

   /flexe/flexe-group/flexe-client-list specifies a list of FlexE
   Client, and each client is mapped to some slots in a FlexE PHY.

   Write operations (e.g., edit-config) to these data nodes without
   proper protection can have a negative effect on network operations.
   Specifically, an inappropriate configuration of them may cause an
   interrupt of a client flow or even break down of a whole FlexE
   interface.






















Jiang, et al               Expires January 8, 2020             [Page 14]


Internet-Draft                FlexE YANG Model            July 2019


6. IANA Considerations

   It is proposed that IANA register the following URI in the "IETF XML
   registry" [RFC3688]:
   URI: urn:ietf:params:xml:ns:yang:ietf-flexe
   Registrant Contact: The IESG
   XML: N/A; the requested URI is an XML namespace

   It is proposed that IANA register the following YANG module in the
   "YANG Module Names" registry:
   Name:         ietf-flexe
   Namespace:    urn:ietf:params:xml:ns:yang:ietf-flexe
   Prefix:       flexe
   Reference:    this document

   It is proposed that IANA register a new IANAifType TBD for
   the interface type of Flex Ethernet in the "IANA Interface Type
   YANG Module" [RFC7224].
   It is proposed that IANA register a new IANAifType TBD for
   the interface type of Flex client in the "IANA Interface Type
   YANG Module" [RFC7224].



7. References

7.1. Normative References

   [FLEXE]   OIF, "Flex Ethernet 2.0 Implementation Agreement", FlexE
             2.0, June 2018

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997

   [RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688,
             January 2004

   [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and Bierman,
             A., "Network Configuration Protocol (NETCONF)", RFC 6241,
             June 2011

   [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
             Shell (SSH)", RFC 6242, June 2011

   [RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", RFC 7224,
             May 2014



Jiang, et al               Expires January 8, 2020             [Page 15]


Internet-Draft                FlexE YANG Model            July 2019


   [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
             Protocol", RFC 8040, January 2017

   [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
             2119 Key Words", BCP 14, RFC 8174, May 2017

   [RFC8341] Bierman, A. and Bjorklund, M., "Network Configuration
             Protocol (NETCONF) Access Control Model", RFC 8341,
             March              2018

   [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
             and R. Wilton, "Network Management Datastore
             Architecture (NMDA)", RFC 8342, March 2018

   [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
             Management", RFC 8343, March 2018

   [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
             Version 1.3", RFC 8446, August 2018

7.2. Informative References

   [RFC8340] Bjorklund, M., and Berger, L., "YANG Tree Diagrams", RFC
             8340, March 2018

8. Acknowledgments

   The authors would like to thank Yongjian Hu, Zitao Wang and
   Zhongjian Zhang for discussions on YANG.



















Jiang, et al               Expires January 8, 2020             [Page 16]


Internet-Draft                FlexE YANG Model            July 2019




   Authors' Addresses


   Yuanlong Jiang
   Huawei Technologies Co., Ltd.
   Bantian, Longgang district
   Shenzhen 518129, China
   Email: jiangyuanlong@huawei.com


   Xiang He
   Huawei Technologies Co., Ltd.
   Huawei Campus, No. 156 Beiqing Rd.
   Beijing 100095
   Email: hexiang9@huawei.com


   Weiqiang Cheng
   China Mobile
   No.32 Xuanwumen West Street
   Beijing 100053, China
   Email: chengweiqiang@chinamobile.com



   Junfang Wang
   Fiberhome
   Email: wjf@fiberhome.com


   Yalei Han
   Fiberhome
   Email: ylhan@fiberhome.com













Jiang, et al               Expires January 8, 2020             [Page 17]


Html markup produced by rfcmarkup 1.129d, available from https://tools.ietf.org/tools/rfcmarkup/