< draft-jiang-ccamp-flexe-yang-00.txt   draft-jiang-ccamp-flexe-yang-01.txt >
Internet Working Group Y. Jiang Internet Working Group Y. Jiang
Internet-Draft X. He Internet Draft X. He
Intended status: Standards Track Huawei Intended status: Standards Track Huawei
W. Cheng W. Cheng
China Mobile China Mobile
Expires: September 2019 March 1, 2019 J. Wang
Y. Han
Fiberhome
Expires: January 2020 July 8, 2019
YANG Data Model for FlexE Interface Management YANG Data Model for FlexE Interface Management
draft-jiang-ccamp-flexe-yang-00 draft-jiang-ccamp-flexe-yang-01
Abstract Abstract
This document defines a YANG data model for the configuration of This document defines a YANG data model for the configuration of
FlexE 2.0 interface, and its FlexE clients. The YANG module in this FlexE 2.0 interface, and its FlexE clients. The YANG module in this
document conforms to the Network Management Datastore Architecture document conforms to the Network Management Datastore Architecture
(NMDA). (NMDA).
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other months and may be updated, replaced, or obsoleted by other documents
documents at any time. It is inappropriate to use Internet-Drafts at any time. It is inappropriate to use Internet-Drafts as
as reference material or to cite them other than as "work in reference material or to cite them other than as "work in progress."
progress."
This Internet-Draft will expire on September 1, 2019. This Internet-Draft will expire on January 8, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License. warranty as described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction .............................................. 2 1. Introduction ........................................... 2
1.1. Conventions used in this document ...................... 3 1.1. Conventions used in this document ................... 3
1.2. Terminology ............................................ 3 1.2. Terminology ......................................... 3
2. YANG model hierarchy for FlexE interface .................. 4 2. YANG model hierarchy for FlexE interface ............... 3
3. YANG Module for FlexE interface ........................... 6 3. YANG Module for FlexE interface ........................ 6
4. Security Considerations .................................. 12 4. YANG Module for FlexE client interface ............... 1 2
5. IANA Considerations ...................................... 13 5. Security Considerations .............................. 1 3
6. References ............................................... 13 6. IANA Considerations .................................. 1 5
6.1. Normative References .................................. 13 7. References ........................................... 1 5
6.2. Informative References ................................ 14 7.1. Normative References .............................. 1 5
7. Acknowledgments .......................................... 14 7.2. Informative References ............................ 1 6
8. Acknowledgments ...................................... 1 6
1. Introduction 1. Introduction
The Flex Ethernet (FlexE) 2.0 Implementation Agreement [FLEXE] The Flex Ethernet (FlexE) 2.0 Implementation Agreement [FLEXE]
defined by the OIF provides the support of a variety of Ethernet defined by the OIF provides the support of a variety of Ethernet MAC
MAC rates that may or may not correspond to any existing Ethernet rates that may or may not correspond to any existing Ethernet PHY
PHY rate. This includes MAC rates that are both greater than rate. This includes MAC rates that are both greater than (through
(through bonding) and less than (through sub-rate and bonding) and less than (through sub-rate and channelization) the
channelization) the Ethernet PHY rates used to carry FlexE. FlexE Ethernet PHY rates used to carry FlexE. Besides 100GBASE-R PHYs,
2.0 further supports the bonding of 200GBASE-R PHYs or the bonding FlexE 2.0 further supports the bonding of 200GBASE-R PHYs or
of 400GBASE-R PHYs. 400GBASE-R PHYs respectively.
In the FlexE, multiple Ethernet PHYs (each PHY can further consist In the FlexE, multiple Ethernet PHYs (each PHY can further consist
of one or more FlexE Instances) are bonded into a FlexE Group, and of one or more FlexE Instances) are bonded into a FlexE Group, and
the total capacity of the FlexE Group is represented as a the total capacity of the FlexE Group is represented as a collection
collection of slots (e.g., each slot has a granularity of 5Gbps or of slots (e.g., each slot has a granularity of 5Gbps or 25Gbps).
25Gbps). Based on their bandwidth needs, FlexE Clients are each Based on their bandwidth needs, FlexE Clients are each mapped into
mapped into one or more slots. The FlexE mechanism operates using a one or more slots in a FlexE group. The FlexE mechanism operates
calendar consisting of these slots. using a calendar consisting of these slots.
This calendar is partitioned into sub-calendars for each FlexE This calendar is partitioned into sub-calendars for each FlexE
instance. For example, the calendar for a FlexE Group composed of n instance. For example, the calendar for a FlexE Group composed of n
100G PHYs is partitioned into 20n slots (each representing 5Gbps of 100G PHYs is partitioned into 20n slots (each slot representing
bandwidth when the slot granularity is 5Gbps). 5Gbps of bandwidth when the slot granularity is 5Gbps).
This document defines a YANG data model for the configuration of a This document defines a YANG data model for the configuration of a
Flex Ethernet interface (i.e., FlexE Group). The data model is Flex Ethernet interface (i.e., FlexE Group). The data model is
augmented based on the generic interfaces data model as defined in augmented based on the generic interfaces data model as defined in
[RFC8343], the FlexE attributes are based on the FlexE 2.0 [RFC8343], the FlexE attributes are based on the FlexE 2.0
Implementation Agreement as specified in [FLEXE]. With the help of Implementation Agreement as specified in [FLEXE]. With the help of
this YANG module, the FlexE Groups can be managed just as network this YANG module, the FlexE Groups can be managed just as network
interfaces on a network device (e.g., a router or bridge). interfaces on a network device (e.g., a router or bridge).
The YANG module in this document conforms to the Network Management The YANG module in this document conforms to the Network Management
skipping to change at page 3, line 30 skipping to change at page 3, line 32
Most terminologies used in this document are extracted from [FLEXE]. Most terminologies used in this document are extracted from [FLEXE].
FlexE: Flex Ethernet FlexE: Flex Ethernet
FlexE Client: An Ethernet flow based on a MAC data rate that may or FlexE Client: An Ethernet flow based on a MAC data rate that may or
may not correspond to any Ethernet PHY rate. may not correspond to any Ethernet PHY rate.
FlexE Group: A FlexE Group is composed of from 1 to n Ethernet PHYs. FlexE Group: A FlexE Group is composed of from 1 to n Ethernet PHYs.
FlexE Instance: A FlexE Instance is a unit of information FlexE Instance: A FlexE Instance is a unit of information consisting
consisting of 100G of capacity able to carry FlexE Client data, of 100G of capacity able to carry FlexE Client data, together with
together with its associated overhead. its associated overhead.
Ethernet PHY: an entity representing Ethernet Physical Coding Ethernet PHY: an entity representing Ethernet Physical Coding
Sublayer (PCS), Physical Media Attachment (PMA), and Physical Media Sublayer (PCS), Physical Media Attachment (PMA), and Physical Media
Dependent (PMD) layers. Each PHY is consisted of one or more FlexE Dependent (PMD) layers. Each PHY is consisted of one or more FlexE
Instance (e.g., a 400GBASE-R PHY has four FlexE Instances) Instance (e.g., a 400GBASE-R PHY has four FlexE Instances)
FlexE Calendar: The total capacity of a FlexE Group is represented FlexE Calendar: The total capacity of a FlexE Group is represented
as a collection of slots. The calendar for a FlexE Group composed as a collection of slots. The calendar for a FlexE Group composed
of n 100G PHYs is represented as an array of 20n slots (each of n PHYs is represented in each PHY as an array of slots (e.g.,
representing 5Gbps of bandwidth). This calendar is partitioned each representing 5Gbps of bandwidth).
into sub-calendars, e.g., a sub-calendar with 20 slots per 100G PHY.
2. YANG model hierarchy for FlexE interface 2. YANG model hierarchy for FlexE interface
This section describes the hierarchy of the YANG module for FlexE This section describes the hierarchy of the YANG module for FlexE
interface management. interface management.
Configuration and status of FlexE interface information include: Configuration and status of FlexE interface information include:
- flexe-group specifies a FlexE group consisting of multiple PHYs. - flexe-group specifies a management interface for configuration of
a FlexE group.
- flexe-client-list specifies a list of FlexE client, each client - flexe-phy-list specifies a list of PHYs in a Flex Group.
is mapped to some slots in this FlexE group. flexe-client-status
- 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 indicates whether there is any fault in any mapped slot for this
client. client.
The readers are assumed to be familiar with FlexE 2.0, as all FlexE The readers are assumed to be familiar with FlexE 2.0, as all FlexE
terminologies are described in details in [FLEXE]. terminologies are described in details in [FLEXE].
In order to simplify the YANG module of the FlexE interface and to In order to simplify the YANG module of the FlexE interface and to
follow the YANG style of terminology, neither sub-calendar nor follow the YANG style of terminology, neither sub-calendar nor
calendar in FlexE are modelled explicitly. However, a sub-calendar calendar in FlexE are modelled explicitly. However, a calendar-slot-
is represented by a calendar-slot-list per instance, and calendar list per PHY is modeled which represents all the slots in a PHY
is actually a conglomerate of all the slots in calendar slot lists (i.e., all sub-calendars of the FlexE instances in this PHY), and
for all FlexE instances in all FlexE PHYs of this FlexE Group. 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 A simplified YANG tree diagram [RFC8340] representing the data model
model is typically used by YANG modules. This document uses the is typically used by YANG modules. This document uses the same tree
same tree diagram syntax as described in [RFC8340]. diagram syntax as described in [RFC8340].
module: ietf-flexe module: ietf-flexe
augment /if:interfaces/if:interface: augment /if:interfaces/if:interface:
+--rw flexe-group +--rw flexe-group
+--rw group-number? uint32 +--rw group-number? uint32
+--rw slot-granularity? slot-granularity-enumeration +--rw slot-granularity? slot-granularity-enumeration
+--rw flexe-phy-type? flexe-phy-enumeration +--rw flexe-phy-type? flexe-phy-enumeration
+--rw flexe-calendar-inuse? calendar-enumeration
+--rw flexe-phy-list* [phy-number] +--rw flexe-phy-list* [phy-number]
| +--rw phy-number uint8 | +--rw phy-number uint8
| +--rw flexe-inst-list* [instance-number] | +--rw flexe-phy-if? if:interface-ref
| +--rw instance-number uint8 | +--ro phy-status? uint8
| +--rw calendar-slot-list* [slot-id] | +--rw calendar-slot-list* [slot-id]
| +--rw slot-id uint8 | +--rw slot-id uint8
| +--rw flexe-slot-status? slot-status-enumeration | +--rw flexe-slot-status? slot-status-enumeration
+--rw flexe-client-list* [client-id] +--rw flexe-client-list* [client-id]
+--rw client-id uint16 | +--rw client-id uint16
+--rw group-number? uint32 | +--rw flexe-client-if? if:interface-ref
+--rw mapped-slot-list* [mapped-slot-id] | +--rw mapped-slot-list* [mapped-slot-id]
| +--rw mapped-slot-id uint8 | | +--rw mapped-slot-id uint8
| +--rw mapped-phy-number? uint8 | | +--rw mapped-phy-number? uint8
| +--rw mapped-inst-number? uint8 | +--ro flexe-client-status? uint8
+--ro flexe-client-status? uint8 +--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
3. YANG Module for FlexE interface 3. YANG Module for FlexE interface
This module imports typedef "interface-ref" from [RFC8343]. This module imports iana-if-type [RFC7224] and ietf-interfaces
[RFC8343].
<CODE BEGINS> file "ietf-flexe@2019-02-25.yang" <CODE BEGINS> file "ietf-flexe@2019-07-05.yang"
module ietf-flexe { module ietf-flexe {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-flexe"; namespace "urn:ietf:params:xml:ns:yang:ietf-flexe";
prefix "flexe"; prefix "flexe";
import iana-if-type { import iana-if-type {
prefix ianaift; prefix ianaift;
} }
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
reference reference
"RFC8343: A YANG Data Model for Interface Management"; "RFC8343: A YANG Data Model for Interface Management";
} }
organization "IETF CCAMP Working Group"; organization "IETF CCAMP Working Group";
contact contact
"WG Web: http://tools.ietf.org/wg/ccamp/ "WG Web: http://tools.ietf.org/wg/ccamp/
WG List: <mailto:ccamp@ietf.org> WG List: <mailto:ccamp@ietf.org>
Author: Yuanlong Jiang Author: Yuanlong Jiang
<mailto:jiangyuanlong@huawei.com> <mailto:jiangyuanlong@huawei.com>
Author: Xiang He Author: Xiang He
<mailto: hexiang@huawei.com> <mailto: hexiang@huawei.com>
Author: Weiqiang Cheng Author: Weiqiang Cheng
<mailto: chengweiqiang@chinamobile.com>"; <mailto: chengweiqiang@chinamobile.com>";
description description
"This YANG module defines a data model for the configuration "This YANG module defines a data model for the configuration
of FlexE interface."; of FlexE interface.";
revision "2019-02-25" { revision "2019-07-05" {
description "Initial version"; description "Initial version";
reference reference
"draft-jiang-ccamp-flexe-yang-00: YANG Data Model for FlexE "draft-jiang-ccamp-flexe-yang-01: YANG Data Model for FlexE
Interface Management "; Interface Management ";
} }
identity flexEthernet {
base ianaift:iana-interface-type;
description
"Flex Ethernet.";
}
typedef slot-granularity-enumeration { typedef slot-granularity-enumeration {
type enumeration { type enumeration {
enum slot-5g { enum slot-5g {
value 1; value 1;
description description
"5Gbps per slot."; "5Gbps per slot.";
} }
enum slot-25g { enum slot-25g {
value 2; value 2;
description description
"25Gbps per slot."; "25Gbps per slot.";
} }
enum slot-others { enum slot-others {
value 254; value 254;
description description
"Other type of granularities per slot."; "Other type of granularities per slot.";
} }
} }
description description
"The bandwidth granularity of a slot. Options for this "The bandwidth granularity of a slot. Options for this
enumeration are specified by the OIF standard, currently only enumeration are specified by the OIF standard, currently only
5G and 25G are defined."; 5G and 25G are defined.";
reference reference
"OIF Flex 2.0: Section 6.7"; "OIF Flex 2.0: Section 6.7";
} }
typedef slot-status-enumeration { typedef slot-status-enumeration {
type enumeration { type enumeration {
enum unavailable { enum unavailable {
value 1; value 1;
description description
"slot is unavailable for FlexE client."; "slot is unavailable for FlexE client.";
skipping to change at page 8, line 27 skipping to change at page 8, line 35
} }
} }
description description
"The current type of PHYs bonded in a FlexE Group. Values for "The current type of PHYs bonded in a FlexE Group. Values for
this enumeration are specified by the OIF standard."; this enumeration are specified by the OIF standard.";
reference reference
"OIF Flex 2.0: Section 5.2.1.5"; "OIF Flex 2.0: Section 5.2.1.5";
} }
typedef calendar-enumeration {
type enumeration {
enum "CALENDAR-A" {
description "Using Calendar A";
}
enum "CALENDAR-B" {
description "Using Calendar B";
}
}
description
"FlexE Calendar in use, values for this enumeration
are specified by the OIF standard.";
reference
"OIF Flex 2.0: Section 6.7";
}
augment "/if:interfaces/if:interface" { augment "/if:interfaces/if:interface" {
when "if:type = 'ianaift:flexethernet'" { when "if:type = 'ianaift:flexEthernet'" {
description "Applies to Flex Ethernet interfaces"; description "Applies to Flex bonded Ethernet interfaces";
} }
description description
"Augment interface model with OIF Flex Ethernet interface "Augment interface model with OIF Flex Ethernet interface
specific configuration nodes. Each FlexE interface specific configuration nodes. Each flexEthernet interface
represents a FlexE Group configured in a device."; represents a FlexE Group configured in a device.";
container flexe-group { container flexe-group {
description description
"The struct containing all FlexE related configuration "The struct containing all FlexE related configuration
(see OIF FlexE 2.0 Section 6.1). (see OIF FlexE 2.0 Section 6.1).
Note that max number of FlexE groups in a network is 63."; Note that max number of FlexE groups in a network is 63.";
leaf group-number { leaf group-number {
type uint32 { type uint32 {
range "1..1048574"; range "1..1048574";
} }
description description
"FlexE Group Number as defined in Section 7.3.6 of FlexE "FlexE Group Number as defined in Section 7.3.6 of FlexE
2.0."; 2.0.";
} }
skipping to change at page 9, line 23 skipping to change at page 9, line 16
leaf group-number { leaf group-number {
type uint32 { type uint32 {
range "1..1048574"; range "1..1048574";
} }
description description
"FlexE Group Number as defined in Section 7.3.6 of FlexE "FlexE Group Number as defined in Section 7.3.6 of FlexE
2.0."; 2.0.";
} }
leaf slot-granularity { leaf slot-granularity {
type slot-granularity-enumeration; type slot-granularity-enumeration;
default "slot-5g"; default "slot-5g";
description description
"The granularity of a slot in a FlexE group."; "The granularity of a slot in a FlexE group.";
} }
leaf flexe-phy-type {
leaf flexe-phy-type {
type flexe-phy-enumeration; type flexe-phy-enumeration;
default "PHY-100GBASE-R"; default "PHY-100GBASE-R";
description description
"The type of PHYs bonded in a FlexE Group."; "The type of PHYs bonded in a FlexE Group.";
} }
leaf flexe-calendar-inuse { list flexe-phy-list {
type calendar-enumeration;
default "CALENDAR-A";
description
"The FlexE Calendar in use for a FlexE Group.";
}
list flexe-phy-list { key "phy-number";
description
"List of PHYs bonded in a FlexE group per FlexE 2.0.";
key "phy-number"; leaf phy-number {
type uint8 {
range "1 .. 254";
}
description description
"List of PHYs bonded in a FlexE group per FlexE 2.0."; "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 phy-number { leaf flexe-phy-if {
type uint8 { type if:interface-ref;
range "1 .. 254";
}
description description
"PHY number of a FlexE PHY. "Reference to a Flexe PHY interface.";
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].";
}
list flexe-inst-list { }
key "instance-number"; leaf phy-status {
description type uint8;
"List of instances in a FlexE PHY as defined in OIF. config false;
Max elements of flexe-inst-list in a FlexE PHY: description
If PHY type is 100GBASE-R, max-elements is 1. "Fault status for a FlexE PHY. Status includes:
If PHY type is 200GBASE-R, max-elements is 2. OK, Local Fault, Remote Fault and etc.";
If PHY type is 400GBASE-R, max-elements is 4."; }
leaf instance-number { list calendar-slot-list {
type uint8; key "slot-id";
description leaf slot-id {
"Instance number of an instance. Its range relies on type uint8;
phy-number of the PHY wherein this instance belongs: description
If PHY type is 100GBASE-R: "slot id of a slot in an instance.";
instance-number=phy-number }
If PHY type is 200GBASE-R: description
instance-number=2*phy-number+[0, 1] "List of slots in a FlexE PHY. Max elements of
If PHY type is 400GBASE-R: slot-list for a FlexE PHY is dependent on the PHY
instance-number=4*phy-number+[0, 3] "; 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.";
list calendar-slot-list { leaf flexe-slot-status {
key "slot-id"; type slot-status-enumeration;
leaf slot-id { default unused;
type uint8; description
description "Slot status of a slot in an instance.";
"slot id of a slot in an instance."; }
} } //calendar-slot-list
description } //flexe-phy-list
"List of slots in a FlexE instance, i.e., sub-
calendar per instance in FlexE 2.0. Max elements of
calendar-slot-list for a FlexE instance is:
If slot-granularity=slot-5g, max-elements is 20.
If slot-granularity=slot-25g, max-elements is 4.";
leaf flexe-slot-status { list flexe-client-list {
type slot-status-enumeration;
default unused;
description
"Slot status of a slot in an instance.";
}
} //calendar-slot-list
} //flexe-inst-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
'flexeClient'.";
}
key "client-id"; list mapped-slot-list {
key "mapped-slot-id";
description description
"List of FlexE clients in a FlexE Group."; "List of mapped-slots for a FlexE client.";
leaf client-id { leaf mapped-slot-id {
type uint16; type uint8;
description description
"FlexE client ID as defined in FlexE IA."; "Slot id of a slot in an instance for a client.";
} }
leaf group-number { leaf mapped-phy-number {
type uint32 { type uint8;
range "1..1048574";
}
description description
"FlexE Group Number of the FlexE group for this client."; "PHY number of a slot for a client.";
} }
list mapped-slot-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.";
}
leaf mapped-inst-number {
type uint8; description
"Instance number of a slot for a client.";
}
} // mapped-slot-list
leaf flexe-client-status { leaf flexe-client-status {
type uint8; type uint8;
config false; config false;
description description
"Fault status for a client indicated in its mapped "Fault status for a client indicated in its mapped
slots. If any slot is in fault, the client status slots. If any slot is in fault, the client status
is indicated in fault. Status includes: is indicated in fault. Status includes:
OK, Local Fault, Remote Fault and etc."; OK, Local Fault, Remote Fault and etc.";
} }
} //flexe-client-list } //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 } //flexe-group
} //augment } //augment
} }
<CODE ENDS> <CODE ENDS>
4. Security Considerations 4. YANG Module for FlexE client interface
The YANG module specified in this document defines a schema for The following YANG data module augments the interface container
data that is designed to be accessed via network management defined in RFC 8343 for FlexE client interfacs.
protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The
lowest NETCONF layer is the secure transport layer, and the <CODE BEGINS> file "ietf-interfaces-flexe-client@2019-07-05.yang"
mandatory-to-implement secure transport is Secure Shell (SSH) module ietf-interfaces-flexe-client {
[RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory- yang-version 1.1;
to-implement secure transport is TLS [RFC8446].
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";
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
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 The NETCONF access control model [RFC8341] provides the means to
restrict access for particular NETCONF or RESTCONF users to a restrict access for particular NETCONF or RESTCONF users to a
preconfigured subset of all available NETCONF or RESTCONF protocol preconfigured subset of all available NETCONF or RESTCONF protocol
operations and content. operations and content.
There are a number of data nodes defined in this YANG module are There are a number of data nodes defined in this YANG module are
writable, and the involved subtrees that are sensitive include: writable, and the involved subtrees that are sensitive include:
/flexe/flexe-group-list specifies a list of FlexE Group, and each /flexe/flexe-group/flexe-phy-list specifies a list of FlexE PHYs.
group consists of multiple PHYs.
/flexe/flexe-client-list specifies a list of FlexE Client, and each /flexe/flexe-group/flexe-client-list specifies a list of FlexE
client is mapped to some slots in a FlexE Group. Client, and each client is mapped to some slots in a FlexE PHY.
Write operations (e.g., edit-config) to these data nodes without Write operations (e.g., edit-config) to these data nodes without
proper protection can have a negative effect on network operations. proper protection can have a negative effect on network operations.
Specifically, an inappropriate configuration of them may cause an Specifically, an inappropriate configuration of them may cause an
interrupt of a client flow or even break down of a whole FlexE interrupt of a client flow or even break down of a whole FlexE
interface. interface.
5. IANA Considerations 6. IANA Considerations
It is proposed that IANA register the following URI in the "IETF It is proposed that IANA register the following URI in the "IETF XML
XML registry" [RFC3688]: registry" [RFC3688]:
URI: urn:ietf:params:xml:ns:yang:ietf-flexe URI: urn:ietf:params:xml:ns:yang:ietf-flexe
Registrant Contact: The IESG Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace XML: N/A; the requested URI is an XML namespace
It is proposed that IANA register the following YANG module in the It is proposed that IANA register the following YANG module in the
"YANG Module Names" registry: "YANG Module Names" registry:
Name: ietf-flexe Name: ietf-flexe
Namespace: urn:ietf:params:xml:ns:yang:ietf-flexe Namespace: urn:ietf:params:xml:ns:yang:ietf-flexe
Prefix: flexe Prefix: flexe
Reference: this document Reference: this document
It is proposed that IANA register a new IANAifType TBD for It is proposed that IANA register a new IANAifType TBD for
the interface type of Flex Ethernet in the "IANA Interface Type the interface type of Flex Ethernet in the "IANA Interface Type
YANG Module" [RFC7224]. 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].
6. References 7. References
6.1. Normative References 7.1. Normative References
[FLEXE] OIF, "Flex Ethernet 2.0 Implementation Agreement", FlexE [FLEXE] OIF, "Flex Ethernet 2.0 Implementation Agreement", FlexE
2.0, June 2018 2.0, June 2018
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997 Requirement Levels", BCP 14, RFC 2119, March 1997
[RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688,
January 2004 January 2004
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and Bierman, [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and Bierman,
A., "Network Configuration Protocol (NETCONF)", RFC 6241, A., "Network Configuration Protocol (NETCONF)", RFC 6241,
June 2011 June 2011
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, June 2011 Shell (SSH)", RFC 6242, June 2011
[RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", RFC [RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", RFC 7224,
7224, May 2014 May 2014
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, January 2017 Protocol", RFC 8040, January 2017
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, May 2017 2119 Key Words", BCP 14, RFC 8174, May 2017
[RFC8341] Bierman, A. and Bjorklund, M., "Network Configuration [RFC8341] Bierman, A. and Bjorklund, M., "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 8341, March Protocol (NETCONF) Access Control Model", RFC 8341,
2018 March 2018
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore
(NMDA)", RFC 8342, March 2018 Architecture (NMDA)", RFC 8342, March 2018
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 8343, March 2018 Management", RFC 8343, March 2018
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Protocol Version 1.3", RFC 8446, August 2018 Version 1.3", RFC 8446, August 2018
6.2. Informative References 7.2. Informative References
[RFC8340] Bjorklund, M., and Berger, L., "YANG Tree Diagrams", RFC [RFC8340] Bjorklund, M., and Berger, L., "YANG Tree Diagrams", RFC
8340, March 2018 8340, March 2018
7. Acknowledgments 8. Acknowledgments
The authors would like to thank Zitao Wang and Zhongjian Zhang for The authors would like to thank Yongjian Hu, Zitao Wang and
discussions on YANG. Zhongjian Zhang for discussions on YANG.
Authors' Addresses Authors' Addresses
Yuanlong Jiang Yuanlong Jiang
Huawei Technologies Co., Ltd. Huawei Technologies Co., Ltd.
Bantian, Longgang district Bantian, Longgang district
Shenzhen 518129, China Shenzhen 518129, China
Email: jiangyuanlong@huawei.com Email: jiangyuanlong@huawei.com
Xiang He Xiang He
Huawei Technologies Co., Ltd. Huawei Technologies Co., Ltd.
Huawei Campus, No. 156 Beiqing Rd. Huawei Campus, No. 156 Beiqing Rd.
Beijing 100095 Beijing 100095
Email: hexiang9@huawei.com Email: hexiang9@huawei.com
Weiqiang Cheng Weiqiang Cheng
China Mobile China Mobile
No.32 Xuanwumen West Street No.32 Xuanwumen West Street
Beijing 100053, China Beijing 100053, China
Email: chengweiqiang@chinamobile.com Email: chengweiqiang@chinamobile.com
Junfang Wang
Fiberhome
Email: wjf@fiberhome.com
Yalei Han
Fiberhome
Email: ylhan@fiberhome.com
 End of changes. 66 change blocks. 
238 lines changed or deleted 320 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/