<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced. 
    An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM
                     "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->


<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="info"
     docName="draft-hussain-ccamp-flexe-usecases-01"
     ipr="trust200902">

    <!-- ***** FRONT MATTER ***** -->

    <front>
        <title abbrev="FlexE Usecases">FlexE Usecases
        </title>

        <author fullname="Iftekhar Hussain"
                initials="I."
                surname="Hussain">
            <organization>Infinera Corp</organization>
            <address>
                <postal>
                    <street> 169 Java Drive</street>
                    <city>Sunnyvale</city>
                    <region>CA</region>
                    <code>94089</code>
                    <country>USA</country>
                </postal>
                <phone>+1-408-572-5200</phone>
                <email>IHussain@infinera.com</email>
            </address>
        </author>
        <author fullname="Radha Valiveti"
                initials="R.S."
                surname="Valiveti">
            <organization>Infinera Corp</organization>
            <address>
                <postal>
                    <street> 169 Java Drive</street>
                    <city>Sunnyvale</city>
                    <region>CA</region>
                    <code>94089</code>
                    <country>USA</country>
                </postal>
                <phone>+1-408-572-5200</phone>
                <email>rvaliveti@infinera.com</email>
            </address>
        </author>
        <author fullname="Khuzema Pithewan"
                initials="K."
                surname="Pithewan">
            <organization>Infinera Corp</organization>
            <address>
                <postal>
                    <street> 169 Java Drive</street>
                    <city>Sunnyvale</city>
                    <region>CA</region>
                    <code>94089</code>
                    <country>USA</country>
                </postal>
                <phone>+1-408-572-5200</phone>
                <email>kpithewan@infinera.com</email>
            </address>
        </author>


        <date month="July"
              year="2016"/>

        <!-- Meta-data Declarations -->

        <area>General</area>
        <workgroup>Internet Engineering Task Force</workgroup>
        <keyword>template</keyword>

        <abstract>
            <t>Traditionally, Ethernet MAC rates were constrained to match the rates of the Ethernet PHY(s). OIF's implementation agreement <xref target="OIFMLG3"> </xref> was
            the first step in allowing MAC rates to be different than the PHY rates. OIF has recently approved another implementation agreement <xref target="OIFFLEXE1"> </xref> 
            which allows complete decoupling of the MAC data rates and the Ethernet PHY(s) that support them. This includes support for (a) MAC rates which are greater than the rate 
            of a single PHY (satisfied by bonding of multiple PHY(s)), (b) MAC rates which are less than the rate of a PHY (sub-rate), (c) support of multiple FlexE client signals
            carried over a single PHY, or over a collection of bonded PHY(s). This draft catalogs the usecases that are encountered when these Flexible rate Ethernet client signals are 
            transported over OTN networks. 
            </t>
        </abstract>
    </front>

    <middle>
        <section title="Introduction"
                 anchor="section-introduction">
            <t> 
            Traditionally, Ethernet MAC rates were constrained to match the rates of the Ethernet PHY(s). OIF's implementation agreement <xref target="OIFMLG3"> </xref> was
            the first step in allowing MAC rates to be different than the PHY rates standardized by IEEE. OIF has recently approved another implementation agreement <xref target="OIFFLEXE1"> </xref> 
            which allows complete decoupling of the MAC data rates and the Ethernet PHY(s) that support them. This includes support for (a) MAC rates which are greater than the rate 
            of a single PHY (satisfied by bonding of multiple PHY(s)), (b) MAC rates which are less than the rate of a PHY (sub-rate), (c) support of multiple FlexE client signals
            carried over a single PHY, or over a collection of bonded PHY(s). The capabilities supported by the OIF FlexE implementation agreement version 1.0 are:</t>
            <t><list style="letters">
                    <t> Support a large rate Ethernet MAC over bonded Ethernet PHYs, e.g. supporting a 200G MAC over 2 bonded 100GBASE-R PHY(s) </t>
                    <t> Support a sub-rate Ethernet MAC over a single Ethernet PHY, e.g. supportnig a 50G MAC over a 100GBASE-R PHY</t>
                    <t> Support a collection of flexible Ethernet clients over a single Ethernet PHY, e.g. supporting two MACs with the rates 25G, 50G over a single 100GBASE-R PHY</t>
                    <t> Support a sub-rate Ethernet MAC over bonded PHYs, e.g. supporting a 150G Ethernet client over 2 bonded 100GBASE-R PHY(s)</t>
                    <t> Support a collection of Ethernet MAC clients over bonded Ethernet PHYs, e.g. supporting a 50G, and 150G MAC over 2 bonded Ethernet PHY(s)</t>
                </list></t>

            <t>Optical Transport Networks (defined by <xref target="G709"></xref> and  <xref target="G798"></xref>) have, until recently, only dealt with bit (or 
                codeword) transparent transport of Ethernet client signals. The introduction of the FlexE capabilities
                at the OTN client interfaces requires the OTNs to examine the various usecases. 
                This Internet-Draft examines the various usecases that arise when transporting the Flexible Rate Ethernet
                signals in Optical transport networks. This list of usecases will help identify the Control Plane (i.e. Routing
                and Signaling) extensions that may be required).</t>

            <section title="Requirements Language">
                <t>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 <xref target="RFC2119">RFC 2119</xref>.</t>
            </section>
        </section>

        <section title="Terminology">
            <t><list style="letters">
                    <t>Ethernet PHY: an entity representing 100G-R Physical Coding Sublayer (PCS), Physical Media Attachment (PMA), and Physical Media Dependent (PMD) layers. </t>
                    <t>FlexE Group: a group of from 1 to 254 bonded Ethernet PHYs.</t>
                    <t>FlexE Client: an Ethernet flow based on a MAC data rate that may or may not correspond to any Ethernet PHY rate (e.g., 10, 40, m x 25 Gb/s). </t>
                    <t>FlexE Shim: the layer that maps or demaps the FlexE clients carried over a FlexE group. </t>
                    <t>FlexE Calendar: Representation of a FlexE group of n PHYs as a calendar of 20n slots logical length with 20 slots per PHY for scheduling of slots (i.e., a PHY bandwidth) among the FlexE clients. </t>
                </list></t>
        </section>

        <?rfc needLines="8" ?>

        <section title="FlexE Transport Usecases">
            <section title="FlexE unware transport"
                     anchor="section-flexe-unaware">
                <t> The FlexE shim layer in a router maps the FlexE client(s) over the FlexE group. 
                The transport network is unware of the FlexE. Each of the FlexE group PHY is carried independently across the transport network over the same fiber route. 
                The FlexE shim in the router tolerates end-to-end skew across the network. This usecase allows to utilize Network Processor Unit (NPU) and router port rate 
                full capacities with legacy transport equipment that provides PCS-codeword transparent transport of 100GbE. It allows striping of PHYs in the FlexE group over multiple transport line cards. </t>
                <figure title = "FlexE unaware transport"
                                align="center"
                                anchor="fig_flex_unaware">
                    <preamble>==================================================================</preamble>
                    <artwork align="center"><![CDATA[
    +                            FlexE Ethernet Client(s)       +
    +-----------------------------------------------------------+
    +                                                           +
                     + FlexE skew tolerance
                     +----------------------------------------+
                     +  for end-to-distance                   +

+-----------+ 2x100GE +---------+   +----------+     +------------+
|           |         |         |   |          |     |            |
| Router1   |         |         |   |          |     |            |
|FlexE Shim +---------+ A-end   |   |  Z-end   +-----+Router 2    |
|           |         | (FlexE  |   |  (FlexE  |     |(FlexE Shim)|
|           +---^-----+ unaware)|   |  unaware)+-----+            |
|           |   |     |         |   |          |     |            |
|           |   |     |         |   |          |     |            |
+-----------+   +     +---------+   +----------+     +------------+
                 FlexE Group

                     \----------Transport----------/
                                network
+--------------+                                  +----------------+
| FlexE Clients|                                  | FlexE Client(s)|
+--------------+                                  +----------------+
| FlexE Shim   |                                  |  FlexE Shim    |
+----+----+----+                                  +----+------+----+
|PHY |  |  PHY |                                  |  PHY |   | PHY |
+---+---+--+---+                                  +---+--+   +--+--+
    |      |          +-----+           +-----+       |         |
    |      +----------+ PHY |           | PHY |-------+         |
    |                 +-----+           +-----+                 |
    |                 | ODU4+-----------+ ODU4|                 |
    |                 +-----+           +-----+                 |
    |                                                           |
    |                 +-----+           +-----+                 |
    +-----------------+ PHY |           | PHY +-----------------+
                      +-----+           +-----+
                      | ODU4+-----------+ ODU4|
                      +-----+           +-----+
                    ]]>
                    </artwork>
                    <postamble>==================================================================</postamble>
                </figure>       
            </section>

            <section title="FlexE Aware" anchor="section-flexe-aware">
                <section title="FlexE Aware Case - No Resizing" anchor="section-flexe-partial-noresize">
                    <t> This scenario represents an optimization of the FlexE unaware transport presented in <xref target="section-flexe-unaware"></xref>, and illustrated in <xref target="fig_flex_unaware"></xref>. 
            In this application (see <xref target="fig_flexe_aware"></xref>), the devices at the edge of the transport network do not terminate the FlexE shim layer, but are aware of the format of the FlexE overhead. They "snoop" the FlexE overhead to determine the subset of the set of all calendar slots that are available for use (i.e. these calendar slots may be used, or unused). The transport network edge removes the unavailable calendar slots at the ingress to the network, and adds the same unavailable calendar slots back when exiting the network. The result is that the FlexE Shim layers at both routers see exactly the same input that they saw in the FlexE unware scenario -- with the added benefit that the line (or DWDM) side bandwidth has been optimized to be sufficient to carry only the available calendar slots in all of the Ethernet PHY(s) in the FlexE group. This mode may be used in cases where the bandwidth of the Ethernet PHY is greater than the bit rate supported by a wavelength (and it is known that that all calendar slots in the PHY are not "available").
                    </t>

                    <t>The transport network edge device could learn of the set of unavailable calendar slots in a variety of ways; a few examples are listed below:</t>
                    <t><list style="letters">
                            <t> The set of unavailable calendar slots could be configured against each Ethernet PHY in the FlexE group. The FlexE demux function in the transport network edge device (A) compares the information about calendar slots which are expected to be unavailable (as per user supplied configuration), with the corresponding information encoded by the customer edge device in the FlexE overhead (as specified in <xref target="OIFFLEXE1"></xref>). If there is a mismatch between the unavailable calendar slots in any of the PHYs within a FlexE group, the transport edge node software could raise an alarm to report the inconsistency between the provisioning information at the transport network edge, and the customer edge device.</t>
                            <t> The Transport network edge could be configured to act in a "slave" mode. In this mode, the FlexE demux function at the Transport network edge (A)  receives the information about the available/unavailable calendar slots by observing the FlexE overhead (as specified in <xref target="OIFFLEXE1"></xref>) and uses this information to select (a) the set of wavelengths (with appropriate capacities) or (b) the bandwidth of the ODUflex (or fixed rate ODUs) that could carry the FlexE PCS end-to-end.</t>
                        </list></t>
                    <t>In the basic FlexE aware mode, the transport network edge does not expect the number of unavailable calendar slots to change dynamically.
                    </t>
                    <t>Note that the process of removing unavailable calendar slots from a FlexE PHY is called "crunching" (see <xref target="OIFFLEXE1"></xref>). The following additional notes apply to <xref target="fig_flexe_aware"></xref>: </t>
                    <t><list style="letters">
                            <t> The crunched FlexE PHYs are independently transported through the transport network. The number of used (and unused) calendar slots can be different across the FlexE group. In particular, if all the calendar slots in a FlexE PHY are in use, the crunching operation leaves the original signal intact.</t>
                            <t> In this illustration, the different FlexE PHY(s) are transported using ODUflex containers in the transport network. These ODUflex connections can be of different rates.</t>
                            <t> When the crunched FlexE PHY(s) have a rate that is identical to that of a standard Ethernet PHY, it is possible that the transport network may utilize standard ODU containers such as ODU2e, ODU4 etc.</t>
                        </list></t>
                    <figure title = "FlexE Aware Transport"
                                align="left"
                                anchor="fig_flexe_aware">
                        <preamble>================================================================</preamble>
                        <artwork align="left"><![CDATA[
                             FlexE Ethernet Client(s)
           +-----------------------------------------------------+
                       FlexE skew tolerance
               +---------------------------------------------+
                        for end+to+distance
                                                           
       +--------+ 2 x 100GE +---------+      +---------+    +------+
       |  R1    |           |         |      |         +----+  R2  |
       |  (FlexE+-----------+  NE A   |      |  NE Z   |    |(FlexE|
       |  Shim) |           | (FlexE  |      | (FlexE  +----+ Shim |
       |        +-----^-----+ aware)  |      | aware)  |    |      |
       |        |     |     |         |      |         |    |      |
       +--------+     +     +---------+      +---------+    +------+
                 FlexE Group
                            \+--------+Transport+--------+/
                                       network
      +-------------+                                +-------------+
      |FlexE clients|                                |FlexE clients|
      +-------------+                                +-------------+
      | FlexE Shim  |                                | FlexE Shim  |
      +------+------+                                +------+------+
      |  PHY |  PHY |                                |  PHY |  PHY |
      +---+--+--+---+                                +---+--+---+--+
          |     |                                        |      |
          |     |       +--------+            +--------+ |      |
          |     +-------+PHY-c   |            |PHY-c   +-+      |
          |             +--------+            +--------+        |
          |             |ODUflex +------------+ODUflex |        |
          |             +--------+            +--------+        |
          |                                                     |
          |             +--------+            +--------+        |
          +-------------+PHY-c   |            |PHY-c   +--------+
                        +--------+            +--------+
                        |ODUflex +------------+ODUflex |
                        +--------+            +--------+

              | Legend:
              | R1, R2 - Routers (supporting the FlexE clients)
              | NE A, Z  - Transport Network Edge nodes
              | PHY-c  -   Crunched FlexE PHY(s)
                    ]]>
                        </artwork>
                        <postamble>===============================================================</postamble>
                    </figure>                   
                </section>
            </section>

            <section title="FlexE Termination - Transport">
                <t> These usecases build upon the basic router-transport equipment connectivity illustrated in <xref target="fig_flex_unaware"></xref>. 
                The FlexE shim layer at the router maps to the set of FlexE clients over the FlexE group, as usual. This section considers various usecases in which the equipment located at the 
                edge of the transport network is fully aware of the FlexE OH, and FlexE Shim layers on the transport network edge, and the customer edge are peers. In the router to network direction, the transport edge node terminates the FlexE shim layer, and extracts one or more FlexE 
                client signals, and transports them through the network. That is, these usecases are distinguished from the FlexE unaware cases in that the FlexE group, and the FlexE shim layer 
                end at the transport network edge, and only the extracted FlexE client signals transit the optical network. In the network to router direction, the transport edge node maps a set of FlexE clients to the FlexE group (i.e.
                performing the same functions as the router which connects to the transport network).The various usecases differ in the combination of service endpoints in the transport 
                network. 

                In the FlexE termination scenarios, the distance between the FlexE Shims is limited the normal Ethernet link distance. The FlexE shims in the router, and the equipment need
                to support a small amount skew.
                </t>

                <section title="FlexE Client at Both endpoints" anchor
                         ="section-flexe-client-both-ends">
                    <t> In this scenario, service consists of transporting a FlexE client through the transport network, and possibly combining this FlexE client with other FlexE clients into a
                    FlexE group at the endpoints. The FlexE client signal can be transported in two manners within the OTN: (i) directly over one or more wavelengths (ii) mapped into an ODUflex (of
                    the appropriate rate) and then switched across the OTN. <xref target="fig_flexe_term_1"> </xref> illustrates the scenario involving the mapping of a FlexE client to an ODUflex envelope; this
                    figure only shows the signal "stack" at the service endpoints, and doesn't illustrate the switching of the ODUflex entity through the OTN. The ODUflex mapping will be beneficial in scenarios
                    where the rate of the FlexE client is less than the capacity of a single wavelength deployed on the DWDM side of the OTN network, and allows the network operators to packet multiple FlexE client
                    signals into the same wavelength -- thereby improving the network efficiency. 
                    Although <xref target="fig_flexe_term_1"> </xref>  illustrates the scenario in which one FlexE client is transported within the OTN, the following points should be noted: </t>
                    <t>
                        <list style="letters">
                            <t> When the FlexE Shim termination function recovers multiple FlexE client signals (at node A), the FlexE signals can be transported independently. In other words, it is not a 
                    requirement that all the FlexE client signals be co-routed.</t>
                            <t> Conversely, at the egress node, FlexE clients from different endpoints can be combined via the FlexE shim, eventually exiting the transport edge node over an Ethernet group.</t>
                        </list>
                    </t>
                    <figure title = "FlexE termination: FlexE clients at both endpoints"
                                    align="center"
                                    anchor="fig_flexe_term_1">
                        <preamble>==================================================================</preamble>
                        <artwork align="center"><![CDATA[
 +--------+ 2 x 100GE +---------+       +----------+      +--------+
 |        |           |         |       |          |      |        |
 | Router1|           |         |       |          |      |        |
 | FlexE  +-----------+ A-end   |       |  Z-end   +------+Router2 |
 | Shim   |           | (FlexE  |       |  (FlexE  |      |FlexE   |
 |        +-----^-----+  term)          |  term)   +------+ Shim   |
 |        |     |     |         |       |          |      |        |
 |        |     |     |         |       |          |      |        |
 +--------+     +     +---------+       +----------+      +--------+
           FlexE Group
                     \+--------+Transport+--------+/
                                 network

 +-----------+   +--------------+    +-------------+   +-----------+
 | Client(s) |   | Client       |    | Client      |   | Client(s) |
 +-----------+   +--------+-----+    +------+------+   +-----------+
 | FlexE Shim|   | Shim   |     |    |      | Shim |   | FlexE Shim|
 +-----------+   +--------+ ODU |    | ODU  +------+   +-----------+
 | PHY(s)    |   | PHY(s) | flex|    | flex |PHY(s)|   | PHY(s)    |
 +---+-------+   +---+----+--+--+    +---+--+---+--+   +---+-------+
 |               |           |           |      |          |
 +---------------+           +-----------+------+----------+
                    ]]>
                        </artwork>
                        <postamble>=================================================================</postamble>
                    </figure>   
                </section>
                <section title="Interworking of FlexE Client w/ Native Client at the other endpoint">
                    <t>The OIF implementation agreement <xref target="OIFMLG3"></xref> currently supports FlexE client signals carried over one or more 100GBASE-R PHY(s). There is a calendar of 5G timeslots
                associated with each PHY, and each FlexE client can make use of a number of timeslots (possibly distributed across the members of the FlexE group. This implies that the FlexE client rates
                are multiples of 5Gbps. When the rates of the FlexE client signals matches the MAC rates corresponding to existing Ethernet PHYs, i.e. 10GBASE-R/40GBASE-R/100GBASE-R, there is a need for the
                FlexE client signal to interwork with the native Ethernet client received from a single (non-FlexE capable) Ethernet PHY. This capability is expected to be extended to any future Ethernet PHY
                rates that the IEEE may define in future (e.g. 25G, 50G, 200G etc.). In these cases, although the bit rate of the FlexE client matches the MAC rate of other endpoint, the 64B66B PCS codewords
                for the FlexE client need to be transformed (via ordered set translation) to match the specification for the specific Ethernt PHY. These details are described in Section 7.2.2 of 
                        <xref target="OIFMLG3"></xref> and are not eloborated any further in this document.</t>

                    <t> <xref target="fig_flex_term_2"></xref> illustrates a scenario involving the interworking of a 10G FlexE client with a 10GBASE-R native Ethernet signal. In this example, the network wrapper
                is ODU2e.</t>
                    <figure title = "FlexE client interop with Native Ethernet Client"
                                    align="center"
                                    anchor="fig_flex_term_2">
                        <preamble>==================================================================</preamble>
                        <artwork align="center"><![CDATA[
 +--------+ 2 x 100GE +-------+           +-------+      +--------+
 |        |           |       |           |       |      |        |
 | Router1|           |       |           |       |      |        |
 |(FlexE  +-----------+ A-end |           | Z-end | 10GE |Router 2|
 | Shim)  |           |(FlexE |           |       +------+        |
 |        +-----^-----+ term) |           |       |      |        |
 |        |     |     |       |           |       |      |        |
 |        |     |     |       |           |       |      |        |
 +--------+     +     +-------+           +-------+      +--------+
          FlexE Group
                     \+---------Transport---------+/
                                 network

 +-----------+   +---------------+
 | Client(s) |   | Client        |     +------------+    +---------+
 +-----------+   +-------+-------+     |   10GE PCS |    | 10GE PCS|
 | FlexE Shim|   | Shim  |       |     +-------+----+    +---------+
 +-----------+   +-------+  ODU  |     | ODU2e | PHY|    | PHY     |
 | PHY(s)    |   | PHY(s)|  2e   |     +---+---+--+-+    +-----+---+
 +---+-------+   +---+-------+---+         |      |            |
     |               |       |             |      |            |
     |               |       |             |      |            |
     +---------------+       +-------------+      +------------+
                    ]]>
                        </artwork>
                        <postamble>=================================================================</postamble>
                    </figure>                   
                </section>
                <section title="Interworking of FlexE client w/ Client from OIF_MLG">
                    <t> As explained in the Introduction section (<xref target="section-introduction"></xref> OIFMLG3 <xref target="OIFMLG3"></xref> introduced support for carrying 10GE and 40GE client signals
                over a group of 100GBASE-R Ethernet PHY(s). While the most recent implementation agreement doesn't call it out explicitly, it is expected that  the FlexE clients (as 
                defined in <xref target="OIFFLEXE1"></xref>), and 10GBASE-R/40GBASE-R clients supported by OIFMLG3 <xref target="OIFMLG3"></xref>) will interoperate.
                    </t>

                    <t> <xref target="fig_flexe_term_3"></xref> illustrates a scenario involving the interworking of a 10G FlexE client with a 10GBASE-R client supported by an OIFMLG3 interface. 
                In this example, the network wrapper is ODU2e.</t>
                    <figure title = "FlexE client interop with Ethernet Client supported by MLG3"
                                    align="center"
                                    anchor="fig_flexe_term_3">
                        <preamble>==================================================================</preamble>
                        <artwork align="center"><![CDATA[
 +--------+ 2 x 100GE +---------+       +---------+      +---------+
 |        |           |         |       |         |      |         |
 | Router1|           |         |       |         |      |         |
 | FlexE  +-----------+ A-end   |       |  Z-end  +------+Router 2 |
 | Shim   |           | (FlexE  |       |         |      |(MLG-3.0)|
 |        +-----^-----+ term)   |       |         +------+         |
 |        |     |     |         |       |         |      |         |
 |        |     |     |         |       |         |      |         |
 +--------+     +     +---------+       +---------+      +---------+
           FlexE Group

                      \+--------+Transport+--------+/
                                 network

+-----------+   +-------------+      +--------------+   +----------+
| Client(s) |   | Client      |      | 10GE PCS     |   | 10GE Cl. |
+-----------+   +--------+----+      +------+-------+   +----------+
| FlexE Shim|   | Shim   |    |      |      | MLG3  |   | MLG3     |
+-----------+   +--------+ ODU|      | ODU  +-------+   +----------+
| PHY(s)    |   | PHY(s) | 2e |      | 2e   | PHY(s)|   | PHY(s)   |
+---+-------+   +---+----+--+-+      +---+--+---+---+   +---+------+
    |               |       |            |      |            |
    +---------------+       +------------+      +------------+
                    ]]>
                        </artwork>
                        <postamble>=================================================================</postamble>
                    </figure>                   
                </section>
                <section title="FlexE Client BW Resizing"
                         anchor="section-flexe-bw-resizing">
                    <t>This section covers an extension of the scenario presented in <xref target="section-flexe-client-both-ends"></xref>. Each FlexE client signal defined in <xref target="OIFFLEXE1"></xref>
                has a rate which is a multiple of 5G, and occupies the required number of calendar slots (5G granularity) in the FlexE group (possibly distributed among the PHY(s) which have been
                bonded. The OIF implementation agreement defines two calendars, one currently active, and the future calendar to which the sender wants to transition to. This capability can be used 
                to coordinate a synchronized switchover of calendars between the two FlexE Shim functions -- one located in the customer eddge device (typically a router), and the transport network
                edge. In this scenario, there are three independent resizing domains which must be coordinated (see <xref target="fig_flexe_term_1"></xref>).</t>
                    <t><list style="letters">
                            <t> Between the router 1 and Transport edge node A-end </t>
                            <t> Between the transport edge nodes A, Z</t>
                            <t> Between the transport edge node Z, and router 2</t>
                        </list></t>
                    <t>It is possible to coordinate the resize operations in these domains in such a manner that the FlexE clients get the benefit of an end-to-end bandwidth change (increase/decrease), without 
                involving any additional provisioning steps in the provider network. Note for the FlexE unaware use case (<xref target="section-flexe-unaware"></xref>), 
                the client BW can be resized by FlexE shim coordination between router 1 and router 2. </t>
                </section>
                <section title="Back-to-Back FlexE">
                    <t> This section covers a degenerate FlexE aware scenario where router1, router2, and router3 are interconnected through back-to-back FlexE groups without an intermediate transport network (see <xref target="fig_flexe_term_4"></xref>).
                    </t>
                    <figure title = "Back-to-Back FlexE"
                                    align="center"
                                    anchor="fig_flexe_term_4">
                        <preamble>==================================================================</preamble>
                        <artwork align="center"><![CDATA[
 +--------+ 2 x 100GE +---------+ 3 x 100GE +---------+
 |        |           |         |           |         |
 | Router1|           |         |           |         |
 | FlexE  +-----------+ Router2 +-----------+ Router3 |
 | Shim   |           | FlexE   +-----------+ FlexE   |
 |        +-----^-----+ Shim    +-----^-----+ Shim    |
 |        |     |     |         |     |     |         |
 |        |     |     |         |     |     |         |
 +--------+     +     +---------+     +     +---------+
           FlexE Group           FlexE Group
                    ]]>
                        </artwork>
                        <postamble>=================================================================</postamble>
                    </figure>

                </section>

            </section>

        </section>
        <section title="FlexE Transport over Wavelength(s) Usecases">
            <t> The list of aforementioned FlexE usecases can also be supported by mapping FlexE directly over one or more wavelengths. An example for the FlexE unaware transport over wavelength is depicted in <xref target="fig_flexe_unaware_over_wave"></xref>. Equivalent network diagrams for the other usecases can be obtained by replacing an OTN container with an Optical Channel (OCh).</t>

            <figure title = "FlexE unaware transport over wavelength"
                                align="center"
                                anchor="fig_flexe_unaware_over_wave">
                <preamble>==================================================================</preamble>
                <artwork align="center"><![CDATA[
    +                            FlexE Ethernet Client(s)       +
    +-----------------------------------------------------------+
    +                                                           +
                     + FlexE skew tolerance
                     +----------------------------------------+
                     +  for end-to-distance                   +

+-----------+ 2x100GE +---------+   +----------+     +------------+
|           |         |         |   |          |     |            |
| Router1   |         |         |   |          |     |            |
|FlexE Shim +---------+ A-end   |   |  Z-end   +-----+Router 2    |
|           |         | (FlexE  |   |  (FlexE  |     |(FlexE Shim)|
|           +---^-----+ unaware)|   |  unaware)+-----+            |
|           |   |     |         |   |          |     |            |
|           |   |     |         |   |          |     |            |
+-----------+   +     +---------+   +----------+     +------------+
                 FlexE Group

                     \----------Transport----------/
                                network
+--------------+                                  +----------------+
| FlexE Clients|                                  | FlexE Client(s)|
+--------------+                                  +----------------+
| FlexE Shim   |                                  |  FlexE Shim    |
+----+----+----+                                  +----+------+----+
|PHY |  |  PHY |                                  |  PHY |   | PHY |
+---+---+--+---+                                  +---+--+   +--+--+
    |      |          +-----+           +-----+       |         |
    |      +----------+ PHY |           | PHY |-------+         |
    |                 +-----+           +-----+                 |
    |                 | OCh +-----------+ OCh |                 |
    |                 +-----+           +-----+                 |
    |                                                           |
    |                 +-----+           +-----+                 |
    +-----------------+ PHY |           | PHY +-----------------+
                      +-----+           +-----+
                      | OCh +-----------+ OCh |
                      +-----+           +-----+
                    ]]>
                </artwork>
                <postamble>==================================================================</postamble>
            </figure>           

        </section>
        <section title="Requirements">
            <t> This section summarizes solution requirements for the usecases described in this document to help identify the Control Plane (i.e. Routing and Signaling) extensions that may be required.</t>
            <t><list style="letters">
                    <t> The solution SHALL support a FlexE group to address abovementioned usecases including FlexE unaware (where FlexE mux and demux can be separated by longer distances), FlexE aware (where FlexE mux and demux can be separated by shorter distances), and FlexE partially aware.</t>
                    <t> The solution SHALL support a flexible mechanism for configuring a FlexE group --  such as a signaling protocol or a SDN controller/management system with network access to the FlexE mux/demux at each end of the FlexE group.</t>
                    <t> The solution SHALL support the ability to add/remove Ethernet PHYs to/from a FlexE group. </t>
                    <t> The solution SHOULD allow decoupling of FlexE group's initial configuration and bring up operation from an addition (or removal) of FlexE clients to the FlexE group. For instance, it SHOULD be possible to configure and bring up a FlexE group without any FlexE client (e.g., with all calendar slots set to unused or unavailable).</t>
                    <t> The solution SHALL allow adding or removing a FlexE client to a FlexE group without affecting traffic on other clients. </t>
                    <t> The solution SHALL allow resizing of FlexE client BW through coordination of calendar updates within a single FlexE group. There SHOULD be no expectation that FlexE client BW resizing be hitless in all network scenarios.</t>
                    <t> For the FlexE unaware case, each of the 100GBASE-R PHYs in the FlexE group SHALL be carried independently across transport network using a PCS codeword transparent mapping. All PHYs of the FlexE group SHALL be interconnected between the same two FlexE shims. The Ethernet PHYs SHOULD be carried over the same fiber route across the transport network (i.e., co-routed)</t>
                    <t> For the FlexE partially aware case, each of the 100GBASE-R PHYs in the FlexE group SHALL be carried independently across transport network. All PHYs of the FlexE group SHALL be interconnected between the same two FlexE shims. The Ethernet PHYs SHOULD be carried over the same fiber route across the transport network. In the transport network, in mux direction, the OTN mapper SHALL be able to discard unavailable slots (e.g., this can be based on static configuration as the rate of a wavelength is not expected to change in-service). In the transport network, in the demux direction, the OTN mapper SHALL be able to restore unavailable slots to match the original PHY rate.</t>
                    <t> For the FlexE aware case, the FlexE group SHALL be terminated at the transport network edge. It SHOULD be possible to carry (switch) each FlexE client extracted from the FlexE group independently across transport network using OTN mapping (e.g., ODUflex). </t>
                </list></t>

        </section>

        <section anchor="Acknowledgements"
                 title="Acknowledgements">
            <t></t>
        </section>

        <!-- Possibly a 'Contributors' section ... -->

        <section anchor="IANA"
                 title="IANA Considerations">
            <t>This memo includes no request to IANA.</t>
        </section>

        <section anchor="Security"
                 title="Security Considerations">
            <t>None.</t>
        </section>
    </middle>

    <!--  *****BACK MATTER ***** -->

    <back>
        <!-- References split into informative and normative -->

        <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

        <references title="Normative References">
            <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
            &RFC2119;

            <reference anchor="OIFFLEXE1">
                <!-- the following is the minimum to make xml2rfc happy -->
                <front>
                    <title>FLex Ethernet Implementation Agreement Version 1.0 (OIF-FLEXE-01.0)</title>
                    <author>
                        <organization> OIF</organization>
                    </author>
                    <date year="2016"
                          month="March"/>
                </front>
            </reference>

            <reference anchor="G709">
                <!-- the following is the minimum to make xml2rfc happy -->
                <front>
                    <title>Optical Transport Network Interfaces</title>
                    <author>
                        <organization> ITU</organization>
                    </author>
                    <date year="2016"
                          month="February"/>
                </front>
            </reference>

            <reference anchor="G798">
                <!-- the following is the minimum to make xml2rfc happy -->
                <front>
                    <title>Characteristics of optical transport network hierarchy equipment functional blocks</title>
                    <author>
                        <organization> ITU</organization>
                    </author>
                    <date year="2012"
                          month="February"/>
                </front>
            </reference>
        </references>

        <references title="Informative References">
            <reference anchor="OIFMLG3">
                <!-- the following is the minimum to make xml2rfc happy -->
                <front>
                    <title>Multi-Lane Gearbox Implementation Agreement Version 3.0 (OIF-MLG-3.0)</title>
                    <author>
                        <organization> OIF</organization>
                    </author>
                    <date year="2016"
                          month="April"/>
                </front>
            </reference>
        </references>

        <section anchor="app-additional"
                 title="Additional Stuff">
            <t>This becomes an Appendix.</t>
        </section>
    </back>
</rfc>
