CCAMP Working Group                                              M. Wang
Internet-Draft                                                    L. Han
Intended status: Standards Track                            China Mobile
Expires: April 28, 2022                                          F. Yang
                                                     Huawei Technologies
                                                                Y. Jiang
                                                              Individual
                                                        October 25, 2021


                  YANG Data Model for FlexE Management
                   draft-wang-ccamp-flexe-yang-cm-01

Abstract

   This document defines a service provider targeted YANG data model for
   the configuration and management of a Flex Ethernet (FlexE) network,
   including FlexE groups.  It also supports the configuration of each
   FlexE client as an interface.  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 April 28, 2022.

Copyright Notice

   Copyright (c) 2021 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
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect



Wang, et al.             Expires April 28, 2022                 [Page 1]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


   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
     1.1.  Conventions used in this document . . . . . . . . . . . .   2
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  YANG model hierarchy for FlexE  . . . . . . . . . . . . . . .   3
   3.  YANG Module for FlexE group interface . . . . . . . . . . . .   4
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   5.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     5.1.  Normative References  . . . . . . . . . . . . . . . . . .   9
     5.2.  Informative References  . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   From a service provider's point of view, a transport network with
   FlexE support are usually deployed with all FlexE Groups configured
   at first, and then FlexE clients are added one by one at a later
   stage.

   Furthermore, when a FlexE transport network is used to backhaul 5G
   mobile services, synchronization channel can also be imbed in a FlexE
   PHY.  The specific PHY used for synchronization channel can be
   retrieved for management.

   Thus, this document defines a service provider targeted YANG data
   model for the configuration and management of a Flex Ethernet (FlexE)
   network, including FlexE groups.  It also supports the configuration
   of each FlexE client as an interface.  The data model of the FlexE
   client is augmented based on the generic interfaces data model as
   defined in [RFC8343], the FlexE attributes are based on the FlexE 2.1
   Implementation Agreement as specified in [FLEXE].

   The YANG modules 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.



Wang, et al.             Expires April 28, 2022                 [Page 2]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


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.

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

   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), i.e., timeslot-list string.

2.  YANG model hierarchy for FlexE

   This section describes the hierarchy of the YANG modules for the
   FlexE management.

   Configuration management of FlexE groups include:

   - flexe-groups specifies management configuration of all FlexE
   groups, and flexe-phys further specifies management configuration of
   a list of PHYs in a specific Flex Group.

   Configuration management of a FlexE client include:

   - flexe-client specifies the FlexE slots used for the FlexE Client in
   the 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].

   A tree diagram of the module is depicted as the following:









Wang, et al.             Expires April 28, 2022                 [Page 3]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


      module: ietf-flexe-cm
         +--rw flexe
            +--rw flexe-groups
               +--rw flexe-group* [group-index]
                  +--rw index              uint32
                  +--rw group-num?         uint32
                  +--rw negotiation-mode?  negotiation-mode-type
                  +--ro total-bandwidth?   string
                  +--ro free-bandwidth?    string
                  +--ro sync-phy-number    uint32
                  +--rw flexe-phys
                    +--rw flexe-phy-list* [port-name]
                        +--rw port-name        if:interface-ref
                        +--rw phy-number?      uint32
                        +--ro free-timeslot-list? string
                        +--ro used-timeslot-list? string

        augment /if:interfaces/if:interface:
           +--rw flexe-client
              +--rw client-index?        uint32
              +--rw group-index?         leafref
              +--rw client-num?          uint32
              +--rw timeslot-lists
                 +--rw timeslot-list*    [port-name]
                    +--rw port-name?     if:interface-ref
                    +--rw time-slot?     string


3.  YANG Module for FlexE group interface

   The following YANG data module augments the interface container
   defined in [RFC8343] for a FlexE group interface.  It imports iana-
   if-type [RFC7224] and ietf-interfaces [RFC8343].

   <CODE BEGINS> file "ietf-flexe-cm@2021-06-18.yang"
   module ietf-flexe-cm {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-flexe-cm";
     prefix "flexe-cm";

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



Wang, et al.             Expires April 28, 2022                 [Page 4]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


     organization "IETF CCAMP Working Group";
     contact
      "WG Web:   http://tools.ietf.org/wg/ccamp/
       WG List:  <mailto:ccamp@ietf.org>
       Author:   Minxue Wang
                 <mailto: wangminxue@chinamobile.com>
       Author:   Liuyan Han
                 <mailto: hanliuyan@chinamobile.com>
       Author:   Fan Yang
                 <mailto:shirley.yangfan@huawei.com>
       Author:   Yuanlong Jiang
                 <mailto:jiangyuanlong21@yeah.net>";
     description
      "This YANG module defines a data model for the configuration
       of a FlexE network and its clients.";

     revision "2021-06-18" {
       description "Initial version";
       reference
       "draft-wang-ccamp-flexe-yang-cm-00: YANG Data Model for FlexE
        Management";
     }

     typedef negotiation-mode-type {
       type enumeration {
         enum "dynamic" {
           value 1;
           description
             "Dynamic mode.";
         }
         enum "static" {
           value 2;
           description
             "Static mode.";
         }
       }
       description
         "Negotiation mode of a FlexE group.";
     }

     container flexe {
       description
         "Specify FlexE configuration information.";
       container flexe-groups {
         description
           "List of FlexE groups.";
         list flexe-group {
           key "index";



Wang, et al.             Expires April 28, 2022                 [Page 5]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


           description
             "Configure FlexE group.";
           leaf index {
             type uint32 {
               range "1..65535";
             }
             description
               "FlexE group index.";
           }
           leaf group-num {
             type uint32 {
               range "1..1048574";
             }
             description
               "FlexE group number, as specified in OIF FlexE 2.1.";
           }
           leaf negotiation-mode {
             type negotiation-mode-type;
             default "dynamic";
             description
               "FlexE group calendar negotiation mode.";
           }
           leaf total-bandwidth {
             type string {
               length "1..9";
             }
             config false;
             description
               "FlexE group total bandwidth in Gbit/s, such as 10.";
           }
           leaf free-bandwidth {
             type string {
               length "1..9";
             }
             config false;
             description
               "FlexE group free bandwidth in Gbit/s, such as 100.";
           }
           leaf sync-phy-number {
             type uint32 {
               range "1..254";
             }
             config false;
             description
               "The FlexE PHY number used for synchronization management
                channel in a FlexE group, which is one of the PHY number
                value in a FlexE group.";
           }



Wang, et al.             Expires April 28, 2022                 [Page 6]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


           container flexe-phys {
             description
               "List of physical port information in a FlexE Group.";
             list flexe-phy {
               key "port-name";
               description
                 "FlexE PHY port name.";
               leaf port-name {
                 type if:interface-ref;
                 description
                   "Physical port name. ";
               }
               leaf flexe-phy-number {
                 type uint32 {
                   range "1..254";
                 }
                 description
                   "Number of a FlexE physical port. The PHY number of
                 a 100G port is an integer ranging from 1 to 254.
                 The PHY number of a 50G port is an integer ranging
                 from 1 to 126.";
               }
               leaf free-timeslot-list {
                 type string {
                   length "1..199";
                 }
                 config false;
                 description
                   "Free timeslots.";
               }
               leaf used-timeslot-list {
                 type string {
                   length "1..199";
                 }
                 config false;
                 description
                   "Timeslots that have been used.";
               }
             }
           }
         }
       }
     }

     augment "/if:interfaces/if:interface" {
       when "if:type = 'ianaift:flexEclient'" {
         description "Applies to FlexE client interfaces";
       }



Wang, et al.             Expires April 28, 2022                 [Page 7]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


       description
         "Augment interface model with FlexE client interface specific
         configuration nodes. Each flexEclient interface represents a
         FlexE Client configured in a device.";

       container flexe-client {
         description
           "FlexE client.";
         leaf client-index {
           type uint32 {
             range "1..65535";
           }
           description
             "FlexE client index.";
         }
         leaf group-index {
           type leafref {
           path "/flexe-cm:flexe/flexe-cm:flexe-groups/flexe-cm:flexe-group"
            + "/flexe-cm:index";
           }
           description
             "A local FlexE group index configured for a client on one
              equipment for the sake of simplicity on configuration and
              management.";
         }
         leaf client-num {
           type uint32 {
             range "1..65534";
           }
           description
             "FlexE Client number.";
         }
         container timeslot-lists {
           description
             "List of binding timeslots.";
           list timeslot-list {
             key "port-name";
             description
               "Configure binding timeslots.";
             leaf port-name {
               type if:interface-ref;
               description
                 "FlexE physical port name.";
             }
             leaf time-slot {
               type string {
                 length "1..199";
               }



Wang, et al.             Expires April 28, 2022                 [Page 8]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


               description
                 "Set timeslot. The string consists of one or more
               numbers separated by commas (,) or hyphens (-).";
             }
           }
         }
       }
     }
   }
   <CODE ENDS>

4.  Security Considerations

   TBD

5.  References

5.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC7224]  Bjorklund, M., "IANA Interface Type YANG Module",
              RFC 7224, DOI 10.17487/RFC7224, May 2014,
              <https://www.rfc-editor.org/info/rfc7224>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore Architecture
              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
              <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8343]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
              <https://www.rfc-editor.org/info/rfc8343>.






Wang, et al.             Expires April 28, 2022                 [Page 9]


Internet-Draft       draft-wang-ccamp-flexe-yang-cm         October 2021


5.2.  Informative References

   [FLEXE]   OIF, "Flex Ethernet 2.1 Implementation Agreement", FlexE
             2.1, July 2019

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://www.rfc-editor.org/info/rfc8340>.

Authors' Addresses

   Minxue Wang
   China Mobile
   No.32 Xuanwumen west street
   Beijing  100053
   China

   Email: wangminxue@chinamobile.com


   Liuyan Han
   China Mobile
   No.32 Xuanwumen west street
   Beijing  100053
   China

   Email: hanliuyan@chinamobile.com


   Fan Yang
   Huawei Technologies
   Huawei Campus, No. 156 Beiqing Rd.
   Beijing  100095
   China

   Email: shirley.yangfan@huawei.com


   Yuanlong Jiang
   Individual

   Email: jiangyuanlong21@yeah.net









Wang, et al.             Expires April 28, 2022                [Page 10]